Desarrollo
Comúnmente resulta engorroso y toma bastante tiempo mantener la lista de contactos de trabajo actualizada y con cada uno de los campos llenos (e-mail, foto, puesto de trabajo, etc.). Además, surge un problema al extraviar teléfonos o agendas por el hecho de perder contactos y oportunidades de negocios.
Arquitectura Utilizada
El sistema consta de un servidor que es capaz de respaldar el perfil de cada usuario, manteniendo, a los clientes siempre actualizados, mediante el acceso dinámico a una base de datos. Se requiere un login y password, con fines de autentificar a los usuarios, posterior a esto, la base de datos asigna a cada uno de los usuarios un identificador id, mediante el cual es capaz de generar solicitudes de contactos entre ellos. Múltiples clientes pueden ser atendidos simultáneamente por el servidor, que se mantiene constantemente encuestando cambios en la base de datos, para así notificárselos a los distintos usuarios.
Arquitectura del Cliente
El diseño del cliente de la aplicación fue realizado con un mondelo de capas, donde se distinguen claramente tres, tal como se muestra en la gigura. La primera capa, GUI, es la encargada de dibujar la pantalla y de interactuar directamente con el usuario. Por otro lado, el motor, es el encargado de toda la inteligencia del cliente, en donde se hace el procesamiento de los datos que provienen tanto de la GUI como del módulo cliente, el cual se encarga de empaquetar la información y enviarla a través de TCP al servidor.
La implementación del módulo cliente incluye el uso de 2 hebras, las cuales se encargan básicamente de manejar los datos de subida y de bajada. La GUI y el motor comparten otra hebra de ejecución.
Arquitectura del Servidor
Al igual que el cliente, el servidor también fue diseñado e implementado utilizando un modelo de capas.
En primer lugar se encuentra el módulo Server, que es el encargado de atender las conexiones y requerimientos de los distintos clientes, además de mantener la conexión. Utiliza 2 hebras de ejecución por cada cliente, una para enviar datos y otra para recibirlos.
El motor es la inteligencia del sistema, es decir, la capa de negocios. Es el encargado de procesar las peticiones de los clientes y generar las consultas pertienentes para la sabe de datos.
Finalmente se encuentra la base de datos, la cual, por medio de su propio motor independiente, procesa y responde ante las consultas de la capa anterior.
Comunicaciones de LOGIN
A continuación se muestra la secuencia de comunicación entre el usuario y la base de datos.
Primero el cliente debe loggearse en la base de datos. Posteriormente a la autentificación, la base de datos responde con los contactos previamente guardados para el usuario (Contactos de la propia empresa o que lo hayan agregado).
El cliente está consultando por cambios periódicamente al servidor, para mantener todos sus contactos actualizados.
Tarjeta de contactos
Las solicitudes de amistad de un usuario, son encoladas en la lista del otro usuario, otorgándole a este la decisión de si quiere o no agregar al contacto desde el cual se envió la solicitud. La interfaz de usuario, permite obtener una vista jerarquizada de los contactos recibidos, tipo árboles, donde existen subdivisiones por departamento, y por empresas.
Existe otra interfaz de usuario que permite actualizar los campos personales.
En la figura se muestra que un usuario pretende agregar a otro, el servidor que accede a la base de datos queda a la espera de la confirmación de amistad de A a B, tanto B como A pueden acceder a los contactos de ambos después de ponerse de acuerdo