El presente proyecto describe el diseño y la implementación de un servidor de ficheros en red 9P multiplataforma.
Los protocolos de sistemas de ficheros en red permiten crear sistemas de ficheros distribuidos. Una determinada máquina tiene los recursos, que son puestos a disposición de más máquinas a través de un protocolo.
El protocolo 9P es el protocolo de ficheros de red integrado en el sistema operativo PLAN 9. Es un protocolo de nivel de aplicación, generalmente empleado sobre TCP. En cada transacción cliente-servidor de 9P se intercambian mensajes, el cliente envía un mensaje de petición al servidor, T-mensaje, y el servidor envía un mensaje de respuesta al cliente, R-mensaje. Las comunicaciones guardan estado y el servidor recuerda las acciones del cliente.
Los objetivos para esta implementación son, fundamentalmente, que podamos establecer comunicaciones con los clientes 9P (ceñirnos al protocolo), que sea una implementación portable entre arquitecturas distintas y que tenga un rendimiento adecuado.
El diseño del servidor 9P implementado aquí es modular. Principalmente existe un componente encargado de las comunicaciones cliente-servidor, y otro componente que desempeña la labor de acceder a los recursos que se están sirviendo.
La selección de Java, como lenguaje para implementar el diseño modular anterior, no fue algo arbitrario. Java tiene una portabilidad excelente entre distintas plataformas, con el diseño adecuado se pueden implementar aplicaciones fácilmente modificables y portables entre distintas arquitecturas.
Las pruebas hechas al software resultante han resultado satisfactorias, los resultados verificaron los objetivos propuestos. Hemos probado el servidor en varias plataformas diferentes, sin modificar su implementación, con resultados satisfactorios. También hemos probado varios clientes de 9P diferentes, sin problemas en la interpretación del protocolo. Respecto al rendimiento, hemos logrado un rendimiento aceptable para nuestro fin.