Facultad de Ingeniería PROYECTO 1 Arquitecturas Cliente

Anuncio
Facultad de Ingeniería
PROYECTO 1
Arquitecturas Cliente/Servidor
Prof. Yasmine Macedo Reza
Fecha de Entrega
7 de abril 2014
Número de integrantes
2 a 3 alumnos
Objetivos
• Implementar clientes y servidores utilizando sockets que se comuniquen entre sí.
• Implementar un servidor concurrente (Threads)
• Utilizar filosofía Productor/Consumidor (que todos los clientes tengan acceso a algún
recurso compartido del servidor)
METAS
• Entender el funcionamiento de la filosofía cliente/servidor.
• Entender el uso de hilos para multiprocesamiento y de programación concurrente.
ENTREGAR
• Se deberá entregar código fuente en un archivo .zip, .tar o .tgz
• Las clases deberán estar en un paquete llamado mx.unam.fi.cteserv.paquete
(En donde paquete es un nombre que identifique su código)
• Reporte de cómo se implementó cada uno de los pasos(Explicación y fragmento de
código):
1. Requerimientos (Que se quiere obtener o para que se va a utilizar. Definición
del protocolo)
2. Análisis (¿Qué se necesita para lograrlo? (Diagrama de interacción))
3. Diseño (Bosquejo de clases principales)
4. Implementación (¿Cómo se logró?)
5. Pruebas (¿Funciona cómo se desea?)
ESPECIFICACIONES
1. Proponer funcionalidad y protocolo (previa autorización del profesor) con al menos 8
diferentes funcionalidades.
2. Elegir TCP.
3. Crear una aplicación cliente/servidor en Java con las siguientes características:
a. Realizar una interfaz gráfica sencilla, para el cliente y para el servidor.
(Puede ser a base de la salida estándar pero con menú)
b. Implementar las clases necesarias para definir el funcionamiento de
aplicación.
c. El servidor debe ser concurrente (multithread).
d. Que el servidor tenga el control a un medio compartido por todos los
hilos que atienden a los clientes.
4. Crear un Cliente con otro lenguaje (C, phyton o C#), este cliente no tiene que llevar
interfaz gráfica, es decir puede enviarse la petición directamente al ejecutar el cliente.
5. Enviar el código fuente con la documentación requerida y hacer una breve
presentación del proyecto frente al grupo.
Referencias:
Esta página contiene ejemplos de los componentes de la interfaz gráfica.
http://docs.oracle.com/javase/tutorial/ui/features/compWin.html
Posibles proyectos:
•
Sistemas de pedidos
•
Juegos
•
Sistema de bitácoras (Obtener información del servidor)
•
Algún protocolo en versión Beta.
•
No se acepta como proyecto un chat
Descargar