La entrega#
Cada alumno deberá implementar el servicio o cliente que le fuera asignado en Campus Virtual.
Se entregará únicamente el enlace al repositorio en GitHub o cualquier otro repositorio accesible a través de Internet en la tarea habilitada para tal efecto en la plataforma de Campus Virtual. Dicho repositorio debe ser privado, con el fin de evitar plagios, y únicamente se invitará a poder ver el repositorio a los profesores de la asignatura.
Se considerará como entregable el commit etiquetado como ordinaria-final
.
Trabajo en equipo
Aunque la práctica es individual, se recomienda encarecidamente la colaboración entre alumnos, de modo que cada uno con vuestro servicio o cliente podáis ayudar y ser ayudados por otro compañero que esté implementando otro servicio o el cliente.
De ese modo podréis probar si vuestro servicio se comporta como el cliente o los servicios de vuestros compañeros esperan y estudiar si el comportamiento de la interfaz es el esperado.
Formato de la entrega#
El repositorio debe incluir los siguientes ficheros:
run_service
: debe estar en la raíz del directorio del proyecto y debe ejecutar la instancia del microservicio implementado. El fichero debe ser ejecutable. En caso de implementar el cliente, este fichero no debe existir en el repositorio..run_client
: debe estar en la raíz del directorio del proyecto y debe lanzar el programa cliente. El fichero debe ser ejecutable. En caso de implementar un servicio, este fichero no debe existir en el repositorio.README.md
: debe estar en la raíz del directorio del proyecto. Será un pequeño documento en lenguaje Markdown o texto plano que explicará paso a paso cómo se debe realizar la configuración del servicio o cliente y cómo lanzarlo usando uno de los scripts listados anteriormente.También debe incluir, bajo el título, la URL al repositorio del proyecto, así como cualquier otra información relevante del proyecto que el alumno considere oportuna.
Además, tanto los servicios como el cliente deberán aceptar como entrada el proxy al TopicManager de IceStorm en forma de propiedad en el fichero de configuración.
La propiedad deberá llamarse IceStorm.TopicManager
. Ésto implica hacer un pequeño cambio en el código
para que sea capaz de leer el Topic Manager de esa manera:
topic_manager = IceStorm.TopicManagerPrx.checkedCast(
self.communicator().propertyToProxy("IceStorm.TopicManager")
)
No se admitirá que el proxy al objeto Topic Manager se proporcione como una cadena escrita directamente en el código, por línea de órdenes o en una propiedad con nombre diferente al descrito en el párrafo anterior. A continuación, algunos ejemplos de soluciones que no serán admitidas:
topic_manager = IceStorm.TopicManagerPrx.checkedCast(
self.communicator().stringToProxy("IceStorm/TopicManager -t: tcp -h localhost -p 10000")
)
topic_manager = IceStorm.TopicManagerPrx.checkedCast(
self.communicator().stringToProxy(argv[1])
)
topic_manager = IceStorm.TopicManagerPrx.checkedCast(
self.communicator().propertyToProxy("TopicMgr")
)
Documentación de entrega#
No se solicitará memoria de prácticas ni documentación adicional en la entrega. La evolución del proyecto se consultará con el historial de commits de GIT. Por tanto, no se recomienda subir la práctica en uno o dos commits.
Defensa de prácticas#
La defensa de la práctica es obligatoria si los profesores lo requieren. En ese caso, si algún alumno no se presentara, la práctica se considerará no presentada.
Cada alumno requerido para realizar la defensa será convocado por uno de los profesores de prácticas a una hora específica para revisar la práctica con ellos y ejecutarla.
Se hará especial hincapié en ello en los siguientes casos:
Repositorio con muy pocos commits.
El buscador de plagios alerte sobre dos o más entregas.
Una vez publicadas las notas, los alumnos tendrán derecho a revisión si no estuvieran de acuerdo.