1. Ing. Raúl Jaziel torres torres Matrícula: 1162800 Sistemas Distribuidos
2. Introducción A lo largo del tiempo, se ha pretendido lograr que el procesamiento de la información no se haga en un solo equipo, sino que mas bien se haga en diferentes incluso que estén en lugares lejanos. Es así como nacieron los sistemas distribuidos, en esta presentación conoceremos las principales plataformas que trabajan como sistemas distribuidos. Al finalizar se escogerá una sola para implementar el proyecto propuesto, mostrando las razones por las cuales se eligió .
3. Definición Sistemas Distribuidos Un sistema distribuido se define como una colección de computadores autónomos conectados por una red, y con el software distribuido adecuado para que el sistema sea visto por los usuarios como una única entidad capaz de proporcionar facilidades de computación. Entre las plataformas en las cuales se pueden implementar esta metodología están: Sockets CORBA RMI DCOM SERVLETS Java Beans
4. Sockets Son puntos o mecanismos de comunicación entre procesos que permiten que un proceso que se ejecuta en un ordenador, hable (emita o reciba información) con otro proceso, incluso estando estos procesos en distintas máquinas de una red. Las implementaciones de sockets soportan los siguientes protocolos de comunicaciones: Dominio Unix Dominio Internet (TCP/IP) Dominio Xerox NS La comunicación entre procesos a través de sockets se basa en la filosofía CLIENTE-SERVIDOR
5. Sockets El mecanismo de comunicación vía sockets tiene los siguientes pasos: El proceso servidor crea un socket con nombre y espera la conexión. El proceso cliente crea un socket sin nombre. El proceso cliente realiza una petición de conexión al socket servidor. El cliente realiza la conexión a través de su socket mientras el proceso servidor mantiene el socket servidor original con su nombre.
6. CORBA Es un middlewaremarco de trabajo estándar y abierto de objetos distribuidos que permite a los componentes en la red interoperar en un ambiente común independiente de la plataforma, lenguaje de desarrollo, sistema operativo o el tipo de red que se este utilizando. Trabaja con 2 pilares fundamentales, que son: ORB (Object RequestBroker), que es un componente software que dirige la comunicación entre objetos CORBA, y el segundo es el IDL, que se encarga de definir las interfaces de los componentes de la aplicación sobre los que se construyen las aplicaciones CORBA
7. CORBA Tres de las principales diferencias entre el modelo de objetos de CORBA y los modelos tradicionales radican en la forma semi-transparente de distribuir los objetos en CORBA, el tratamiento de las referencias a objetos y el uso de los llamados adaptadores de objetos (como el BOA -Basic ObjectAdapter-). Para un cliente CORBA, una llamada a un método remoto es exactamente igual a una llamada a un método local.
8. RMI Es el sistema de invocación remota de métodos, que permite a un objeto que se está ejecutando en una Máquina Virtual Java (VM) llamar a métodos de otro objeto que está en otra VM diferente. RMI proporciona comunicación remota entre programas escritos en Java Las aplicaciones RMI normalmente comprenden dos programas separados: un servidor y un cliente. RMI proporciona el mecanismo por el que se comunican y se pasan información del cliente al servidor y viceversa
9. RMI Cuando se utiliza RMI para desarrollar aplicaciones distribuida, se deben seguir los siguientes pasos: Diseñar e implementar los componentes de la aplicación: Lo primero es definir la arquitectura de la aplicación y determinar los componentes que seran objetos locales y los que seran remotos. Compilar fuentes y generar los Stubs: Este es un proceso de dos pasos. En el primer paso, se utiliza el compilador javac para compilar los ficheros fuentes de Java, los cuales contienen las implementaciones de las interfaces remotas, las clases del servidor, y del cliente. En el segundo paso es utilizar el compilador rmic para crear los stubs de los objetos remotos. RMI utiliza una clase stub del objeto remoto como un proxy en el cliente para que los clientes puedan comunicarse con un objeto remoto particular
10. RMI Hacer accesible las Clases a través de la Red: Los ficheros de clases Java con sus interfaces remotas, los stubs y otras clases que necesitamos descargar en los clientes, deben estar accesible a través de un servidor Web. Ejecutar la Aplicación: Se debe ejecutar o lanzar el registro de objetos remotos y luego el servidor y el cliente.
11. DCOM El Modelo de Objeto Componente Distribuido, es un protocolo que permite a componentes de software comunicarse de una manera segura, eficiente y confiable con otros componentes, localizados en otro computador de una red Microsoft. La arquitectura DCOM esta basada en: Objeto DCOM: Es un componente que soporta una o mas interfaces. Interface DCOM: no es mas que un grupo predefinido de funciones relacionadas. Clase DCOM : Es aquella que implementa una o mas interfaces. Servidor DCOM: Provee la estructura necesaria alrededor de un objeto para hacerlo disponible a los clientes.
12. DCOM Para implementar DCOM se pueden seguir estos pasos, usando como lenguaje de programación el lenguaje Java. Crear el IDL DCOM (y ODL) para su objeto Generar GUIs para sus interfaces IDL Crear el archivo de typelibrary Crear los wrappers java para las clases DCOM en Java Implementar sus clases DCOM en Java Compilar su implementación Registrar su clase Java Escribir el Código Cliente Compilar el Cliente Registrar el Cliente Iniciar el cliente
13. SERVLETS Son módulos que extienden los servidores orientados a petición-respuesta, como los servidores web compatibles con Java. Los Servlets son un sustituto eficaz de los CGI ‘s ya que proveen la forma de generar documentos dinámicos que son fáciles de escribir y ejecutar. También evitan el problema de desarrollar la programación según la plataforma utilizada.
14. SERVLETS La interfaz ServletRequest permite al servlet acceder a información como, los nombres de parámetros pasados por el cliente, el protocolo usado por el cliente, y los nombres de los hosts remotos que hacen la solicitud y el servidor que la recibe. Esta interfaz permite a los servlets el acceso a métodos que permiten manejar la presentación de la respuesta como salida en el navegador, a través de los cuales consiguen los datos desde el cliente que usa protocolos como HTTP POST , etc.
15. Java Beans Un Java Bean o Bean es un componente hecho en software que se puede reutilizar y que puede ser manipulado de forma visual por una herramienta de programación en lenguaje Java. Para tal manipulación se define una interfaz en el momento de diseño, a través de la cual se puede interrogar al componente y conocer sus propiedades y los tipos de eventos o sucesos que puede generar como respuesta a diversas acciones.
16. Las características de los Java Beans son: Introspection: Permite analizar a la herramienta de programación o IDE como trabaja el Bean Customization: El programador puede alterar la apariencia y la conducta del Bean. Events: Informa al IDE de los sucesos que puede generar en respuesta a las acciones del usuario o del sistema, y también los sucesos que puede manejar. Properties: Una propiedad es un atributo del JavaBean que afecta a su apariencia o a su conducta Persistence: Se puede guardar el estado de los Beans que han sido personalizados por el programador, cambiando los valores de sus propiedades
17. Arquitectura Elegida para el Proyecto La arquitectura que elegí para que en dado caso se implementara el proyecto propuesto como sistema distribuido es: Sockets Las razones por las cuales elegí esta arquitectura son: Fácil implementación Se tiene un mayor control sobre la comunicación Consume menos ancho de banda Es mas seguro
18. Implementación Como vimos en la presentación la implementación de sockets se hacen mediante 4 pasos que son: El proceso servidor crea un socket con nombre y espera la conexión. El proceso cliente crea un socket sin nombre. Para estos primeros dos pasos tenemos que escoger el tipo de socket y el dominio sobre el cual se quiere implementar este.
19. Implementación Entre los diferentes tipos que existen y dominios elegí los siguientes: SOCK_STREAM: Sirve para establecer comunicaciones confiables en modo conectado ningún dato transmitido se pierde, los datos llegan en el orden que han sido transmitidos). En eldominioInternet está asociado al protocolo TCP. AF_INET: Protocolos de Internet, donde el cliente y el servidor pueden estar en cualquier máquina de la red Internet.
20. Implementación Los pasos que siguen son: 3) El proceso cliente realiza una petición de conexión al socket servidor. 4) El cliente realiza la conexión a través de su socket mientras el proceso servidor mantiene el socket servidor original con su nombre. En el servidor se haría asi la llamada: intsocket ( intdominio, inttipo, intprotocolo ) crea un socket sin nombre de un dominio, tipo y protocolo específico dominio : AF_INET, tipo : SOCK__STREAM protocolo : 0 ( protocolo por defecto )