Proyecto 3 Programación de aplicaciones Cliente/Servidor



Documentos relacionados
Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

MICQ. Trabajo Práctico Final Seminario de Ingeniería en Informática I Facultad de Ingeniería, UBA. Junio Cátedra: Pablo Cosso

CAPÍTULO 3 Servidor de Modelo de Usuario

Introducción a las Redes de Computadoras. Obligatorio

Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable

Administración de sistemas UNIX/Linux Práctica Colección de scripts para la configuración de una infraestructura de máquinas UNIX

Apéndice 5 Manual de usuario de ColeXión. ColeXión 1.0. Manual de usuario

Servidores Donantonio

Creación y administración de grupos de dominio

Tutorial: Primeros Pasos con Subversion

Estructuras de datos: Proyecto 2

Introducción a las redes de computadores

Adelacu Ltda. Fono Graballo+ Agosto de Graballo+ - Descripción funcional - 1 -

ALGUNAS AYUDAS PARA EL ACCESO AL AULA DIGITAL Contenido

Guía de instalación y configuración de IBM SPSS Modeler Social Network Analysis 16

Internet, conceptos básicos

Aviso Legal El presente libro electrónico se distribuye bajo Attribution-NonCommercial- NoDerivs 3.0 Unported

COPIAS DE SEGURIDAD AUTOMÁTICAS DE DIRECCIONES CALLEÇPAÑA

4. Programación Paralela

ENVÍO DE POR MEDIO DE SMTP

Modelo de Objetos Distribuidos

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS COORDINACION DE COMPUTACIÓN PROYECTO DE CÁTEDRA. MATERIA: Introducción a la Programación

MANUAL DE USUARIO AVMsorguar

(PHP y APACHE), y el programa de comunicación Skype, para controlar de manera

Capítulo V. Implementación

Iptables, herramienta para controlar el tráfico de un servidor

Sistema operativo Discos duros Usuarios

Qué necesito saber para tener mi sitio web en Internet?

Proyectos Finales. Redes de Computadoras Proyecto 1. Sistema de almacenamiento virtual sobre una plataforma P2P utilizando JXTA.

Oficina Online. Manual del administrador

I. Verdadero o Falso (16 puntos)

Ingeniería de Software. Pruebas

Arquitectura de sistema de alta disponibilidad

Unidad II. Interfaz Grafica (continuación ) Basado en clases de Ing. Carlos A. Aguilar

pymegnu v2.0 PRESENTACIÓN DE PRODUCTOS

Clientes Donantonio. Especificación de requisitos software. Juan José Amor David Escorial Ismael Olea

DOCENTES FORMADORES UGEL 03 PRIMARIA

Acronis License Server. Guía del usuario

Sistema de Control de Accesos API-WIN

Guías _SGO. Gestione administradores, usuarios y grupos de su empresa. Sistema de Gestión Online

Capítulo 5. Cliente-Servidor.

Familia de Windows Server 2003

Introducción a la Firma Electrónica en MIDAS

Capitulo 5. Implementación del sistema MDM

Práctica 1: Instalación de un servidor de aplicaciones web y diseño de la vista de una aplicación

En los últimos años, se ha presentado una enorme demanda por servicios portátiles,

GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo.

Para detalles y funcionalidades ver Manual para el Administrador

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

Información para nuevas tarifas y programar cita para visa de USA

TELEPROCESOS Y SISTEMAS DISTRIBUIDOS

Administración Local Soluciones

INSTRUCTIVO CORREOS ELECTRÓNICOS

MANUAL DE ACTUALIZACIÓN DEL DEA. Versión del DEA del 10/04/2012

Tema 1. Conceptos fundamentales de los Sistemas Operativos

DECLARACIÓN DE PRIVACIDAD DE FONOWEB

Manual para la utilización de PrestaShop

Anexo I. Politicas Generales de Seguridad del proyecto CAT

Podemos descargar la distribucion de gnu/linux de los repositorios de Ubuntu

Creación y administración de grupos locales

Instalación. Interfaz gráfico. Programación de Backups. Anexo I: Gestión de la seguridad. Manual de Usuario de Backup Online 1/21.

Manual del Estudiante

GUIA DE LABORATORIO #10 Nombre de la Practica: Proxy y Filtrado web en ClearOS Laboratorio de Redes Tiempo Estimado: 2 Horas y 30 Minutos

Accede a su DISCO Virtual del mismo modo como lo Hace a su disco duro, a través de:

Guía de acceso a Meff por Terminal Server

LICENCIATURA EN EDUCACION FISICA RECREACION Y DEPORTES

Unidad Didáctica 12. La publicación

LiLa Portal Guía para profesores

Manual de Usuario Canal Empresa FACTEL

Preliminares. Tipos de variables y Expresiones

Conceptos Generales en Joomla

Autenticación Centralizada

Almacenamiento virtual de sitios web HOSTS VIRTUALES

Iniciar flujo a partir de un archivo XML

Manual de Usuario Sistema PMU EN:LÍNEA Versión 1.0

Elementos requeridos para crearlos (ejemplo: el compilador)

INFORME DE CIERRE ETAPA 5

Almacenamiento virtual de sitios web HOST VIRTUALES

Estructuras de Datos y Algoritmos Tecnólogo en Informática

Guía rápida del usuario DoliShop

GUÍA Nro. 1 TECNOLOGÍA DE INTERNET. TIII PIII

Manual de usuario servidor de archivos para El Colegio de la Frontera Sur

UNIVERSIDAD DE SALAMANCA

Guia rápida EPlus Cliente-Servidor

WINDOWS : TERMINAL SERVER

IBM SPSS Statistics Versión 22. Instrucciones de instalación para Linux (Licencia de usuario autorizado)

PROBLEMAS CON SU CLAVE? Cliente Nuevo Puedo solicitar acceso a la Banca en Línea (Contrato Uso de Canales de Autoatención) a través del Portal?

Sistema de Control de Accesos

Unidad II. - Las técnicas en las que se basó, las categorías de análisis o ejes centrales que permiten guiar el proceso de investigación.

Guía para configurar el monitor TCPIP

Esta guía describe los pasos y actividades para realizar actas de reuniones por medio de Google Drive

El proceso de Instalación de Microsoft SQL Server 2008

Sintaxis y Convenciones de Java. M. en C. Erika Vilches

Manual PARA EL ADMINISTRADOR DE LA WEB DE PRÁCTICAS PRE PROFESIONALES Y PASANTÍAS

EDITRAN/CL. Manual de Usuario e Instalación. Módulo de Cliente Departamental. Windows

Servidor FTP en Ubuntu Juan Antonio Fañas

Transcripción:

Universidad Simón Bolívar Departamento de Computación y T.I. Taller de Redes de Computadoras I Enero-Marzo 2010 Proyecto 3 Programación de aplicaciones Cliente/Servidor Objetivos: Modificar el proyecto 2 para que use RMI para la comunicación entre Cliente/Servidor en lenguaje Java. Introducción La introducción es la misma del proyecto 2, el programa debe realizar lo mismo, solo que en vez de implementar la comunicación entre cliente-servidor con socket debe realizarse en RMI. En la actualidad, existen grandes colecciones de fotografía en Internet como Corbis y Getty Images que venden los derechos de reproducir fotos a publicistas, diseñadores gráficos y otros interesados en adquirir imágenes. Estos sitios permiten navegar en la colección de fotos y buscar imágenes en base a categorías, palabras clave y otros criterios. Luego los derechos de reproducir las fotografías seleccionadas, de forma irrestricta o un cierto número de veces, son vendidos a los usuarios. Un grupo de fotógrafos se ha puesto de acuerdo para organizar un repositorio de imágenes peer-to-peer con el fin de intercambiar libremente fotos tomadas por ellos. Esta red está formada por varios nodos, cada uno de los cuales le pertenece a un usuario. Un nodo es una aplicación de red cuyo servicio consiste en ofrecer fotografías almacenadas localmente en la computadora del usuario a otros nodos de la red. Los nodos estarán interconectados entre ellos con el fin de compartir información. A través de una aplicación de consulta, un usuario puede interrogar a otros nodos de la red sobre las fotografías disponibles, y descargar las fotografías que le interesen. Esta aplicación será llamada fotos a lo largo del enunciado. Arquitectura del sistema Como se dijo anteriormente, el sistema tendrá una arquitectura peer-to-peer. No habrá en general un nodo que tenga todas las fotografías, sino que éstas estarán repartidas entre los nodos de la red. De hecho, no se espera que haya redundancia en el almacenamiento: en general, una misma foto no estará repetida en dos nodos distintos. Por otra parte, cada nodo tendrá un cierto número de nodos vecinos. Que un nodo B sea vecino de A significa que A conoce la dirección o nombre de B. En general no existirá un nodo que conozca la dirección de todos los nodos. Al contrario, un nodo

tendrá una cierta vecindad y sólo conocerá la dirección o nombre de otros nodos de la red de forma indirecta. Esta estructura de red puede ser representada fácilmente como un grafo dirigido en donde cada nodo de la red equivale a un nodo del grafo y donde existe una arista del nodo A al nodo B ssi B es vecino de A 1. En la figura se muestra un ejemplo de red. Algoritmo de búsqueda El algoritmo a utilizar consiste en una búsqueda en profundidad distribuida. Cuando el programa fotos realiza una consulta a un nodo, este nodo debe buscar entre sus fotografías almacenadas aquellas que satisfagan el criterio de búsqueda. Seguidamente, el nodo le debe pasar la consulta a sus nodos vecinos, quienes buscan entre sus fotografías almacenadas y le pasan la consulta a sus vecinos. Este proceso continúa hasta que todos los nodos alcanzables desde el nodo inicial hayan sido visitados. Note que cuando un nodo haya obtenido sus resultados y el de todos sus vecinos, debe retornárselos al nodo que le envió la consulta, de existir uno. Por otra parte, es importante que al implementar el algoritmo usted diseñe un mecanismo que garantice que cada nodo alcanzable sea visitado exactamente una vez. Consultas Una fotografía tendrá asociada la siguiente información: Título Autor Descripción Palabras clave Stop (f1.4, f2, etc.) Tiempo de exposición (en milisegundos) Película (blanco y negro o color) Por simplicidad, el programa fotos sólo permitirá realizar dos tipos de consulta: 1 Note que esta relación no es simétrica.

Por autor: una foto es relevante si su autor tiene como subcadena la cadena ingresada por el usuario. Por palabras clave: una foto es relevante si sus palabras clave incluyen como subcadena la cadena ingresada por el usuario. Estructura de directorio El programa nodo, al ser ejecutado, buscará en un directorio especificado las fotos a ser servidas, así como sus atributos. Las fotos estarán cada una en un archivo JPG. Para cada uno de estos archivos, existirá un archivo XML con el mismo nombre que indicará los atributos de la foto. Las fotos tendrán extensión.jpg y los archivos de atributos.xml. <?xml El elemento <foto> raíz del archivo XML tendrá como nombre foto, y dentro de él habrá un elemento para <titulo> version="1.0" encoding="iso-8859-1"?> cada uno de los atributos de la foto mencionados anteriormente. Las palabras clave se indicarán cada una un elemento separado. A continuación se presenta un ejemplo <titulo/> Título de la foto del formato XML que deben tener los archivos. <pelicula="color"/> <autor <descripcion> Un texto name="carlos algo largo Pérez"/> </descripcion> <palabrasclave> que está asociada a que la imagen tiene la información <entrada palabra="oceano"/> </foto> </palabrasclave> <exposicion palabra="costa tiempo="5" stop="f1.4"/> de Marfil"/> Protocolo Usted debe diseñar los protocolos de comunicación entre las distintas aplicaciones. Éstos deben cumplir las características vistas en clase de buen diseño de protocolos, como ser extensibles, tolerantes a fallas, bien estructurados e incorporar mensajes fácilmente leídos por los humanos. Utilice el lenguaje XML para definir los mensajes cuando sea conveniente. Al contrario que en el proyecto 2, puede enviar sí les hace falta objetos de tipo XMLElements, entre los componentes del sistema.

Interfaz de fotos: La aplicación fotos recibirá las acciones a realizar en forma interactiva siguiendo la definición de los siguientes comandos: Para las consultas: C {-t <cadena> -k <cadena>} Donde: -t especifica que la consulta se realizará sobre títulos de las imágenes -k especifica que la consulta se realizará sobre las palabras claves. <cadena> es una cadena de caracteres que se refiere al patrón a buscar. Petición de fotos: D servidor:nombrearchivo Donde: servidor es el nombre o dirección que identifica a un servidor en la red. nombrearchivo: es el nombre del archivo que se debe solicitar al servidor especificado. Petición de número de nodos alcanzables: A Salida Q Note que los comandos deben ser reconocidos en minúsculas o mayúsculas. puede haber al menos un espacio en blanco entre cada par de elementos consecutivos de un comando, es decir, entre el comando y sus parámetros y entre éstos. Ejecución de los programas Fotos Línea de comandos: $ fotos -s <máquina servidor> -p <puerto> Donde

<servidor>: es el nombre o dirección IP del nodo al que se conectará fotos para hacer las solicitudes. <puerto>: es el puerto por el cual estará escuchando el programa nodos en la máquina servidor Nodos Línea de comandos: $ nodo -p <puerto> -f <maquinas> -l <archivotrazas> -d <directorio> Donde <puerto>: es el puerto por el cual estará escuchando el servidor. <maquinas>: es el nombre del archivo donde estarán especificados los nombres o direcciones IP de los nodos vecinos <archivotrazas>: nombre del archivo de texto donde el servidor escribirá la información sobre las operaciones realizadas: consultas recibidas, de quién las recibió, petición de archivos, etc. <directorio>: nombre del directorio donde estarán los archivos JPG y XML que representan las fotos, como se explicó anteriormente. Sobre los Shell Script Para cada una de las aplicaciones definidas en este enunciado, Ud. debe implementar un Shell Script (SS) sencillo que permita encapsular la definición de variables de ambiente necesaria para la ejecución de las aplicaciones: CLASSPATH y PATH. Luego debe hacer la invocación de los comandos necesarios. Recuerde que sus proyectos pueden ser #!/bin/bash corridos en cuentas que no tendrán necesariamente configuraciones compatibles con los requerimientos de su aplicación. Estos shell scripts tienen como función establecer el ambiente necesario para la ejecución de sus aplicaciones. A continuación # un ejemplo de cómo sería el para el comando fotos, asumiendo que la clase principal export en el CLASSPATH=nano-xml-lite.jar:dir1:dir2:. directorio esta instalado el OpenJDK se llama PATH=$PATH:/usr/bin Fotos.java: java Fotos $* Recuerde colocar permiso de ejecución a los shell script.

Sobre la entrega del proyecto Los programas deben ser escritos en lenguaje Java usando el JDK instalado en las máquinas del LDC. Asegúrese de especificar esto en los shell scripts que escriba de manera que su aplicación pueda correrse sin problemas. Para establecer comunicación entre los diferentes componentes del sistema, Ud. debe usar RMI. La manipulación de archivos y mensajes XML debe hacerse usando la biblioteca anoxml/lite 2.2.3 publicada en Aula Virtual. También se encuentra publicada una pequeña documentación de esta biblioteca. La entrega se debe realizar de la siguiente forma: El archivo tar.gz hasta el día domingo 21 de marzo a las 11 pm. El sobre con el código e informe impresos el día lunes 22 de marzo al comienzo de la hora de clases. El informe, que debe tener máximo cinco páginas, debe explicar los siguientes puntos: Diseño del protocolo Estado del proyecto otas adicionales Para efectos de implementación, cada grupo puede usar como puerto los números de cinco dígitos de la forma ZXXXX donde XXXX deben ser los últimos cuatro dígitos del carnet de uno de los integrantes de equipo y Z cualquier dígito. El archivo tar.gz que entregue debe tener un archivo Makefile que permita compilar los componentes del sistema. La corrida del proyecto forma parte importante de la evaluación (los proyectos que no corran no serán corregidos). El programa debe poder correr en cualquiera de las estaciones Linux del LDC. Los formatos, nombres de los comandos, etc., deberán ser estrictamente los especificados en este enunciado. Por simplicidad se pide que no se implemente ningún tipo de interfaz gráfica.