Diseño
Análisis del Problema
Al analisar el problema nos encontramos con tres acercamientos a solucionar.
1.- Un enterno agradable para los usuarios.
Para el usuario común es importante manejarse en un entorno gráfico amigable. Para implementar el entorno gráfico utilizamos NetBeans IDE 6.5.1 que permite desarrollar GUI's de forma rapida y facil, desplazando botones, espacios de texto, checkbox's, etc.
2.- Conectividad en Java
La arquitectura utilizada para establecer el enlace entre los dos usuarios fue el modelo cliente/servidor. Esto significa que previamente los usuarios deben coordinarse para establecer quien va a hacer de cliente y quien de servidor.
3.- Encriptación de los datos.
Para la encriptación utilizamos el sistema criptografico con clave pública RSA, el cual es un algoritmo asimetrico que utiliza una llave publica, la cual se distribuye y otra privada la cual es guardada en secreto por su propietario.
Diagrama UML
Diagrama de Transferencia de datos
Dificultades
De seguro lo mas complicado a llevar a cabo fue la implementación de los sockets al desarrollar el cliente/servidor. Ya que coordinar la apertura/cierre de los sockets con los Threads se complicaba mucho, de hecho existen algunos bugs en el programa respecto a lo mismo.