Download Comparativa de programación cliente/servidor con Java y
Document related concepts
no text concepts found
Transcript
CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament d’Arquitectura de Computadors Comparativa de programación cliente/servidor con Java y Corba (apunts de l’assignatura en format transparència) Comparativa de programación cliente/servidor con Java y Corba 1. ¿Qué herramientas conocemos para la programación Cliente/Servidor? 2. ¿Qué es Corba? 3. ¿Qué ofrece Java para aplicaciones Cliente/Servidor? 4. Corba us Java Sockets 5. Corba us RMI 6. RMI + JINI 7. ¿Qué le falta a Corba y a RMI? 8. ¿Qué nos depara el futuro? 9. Bibliografía CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament. d’Arquitectura de Computadors - UPC 2 ¿Qué herramientas conocemos para la programación Cliente/Servidor? Sockets – Implementados en todos los S.O. Modernos – Comunican dos procesos que pueden estar alojados en dos màquinas diferentes – El cliente debe conocer la máquina y puerto donde se ubica el servidor – Se debe establecer un protocolo cliente/servidor para el correcto funcionamiento de la aplicación. CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament. d’Arquitectura de Computadors - UPC 3 ¿Qué herramientas conocemos para la programación Cliente/Servidor? RPC’s – Basado en Sockets – Abstrae al programador del uso de Sockets • Máquina Host • Puerto • Protocolo – Sigue siendo necesaria la distinción del código cliente y del código servidor – Requiere del Port-Mapper • Publicar RPC • Preguntar por RPC, etc... CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament. d’Arquitectura de Computadors - UPC 4 ¿Qué es Corba? Corba es: – Un producto de la O.M.G. (Object Management Group) – Un entorno para la ejecución de P.O.O. Distribuido. – Como añadir a las RPC’s el paradigma de la P.O.O. • Herencia • Poliformismo • ... CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament. d’Arquitectura de Computadors - UPC 5 ¿Qué es Corba? Corba se puede implementar en multitud de lenguajes: – – – – Java C++ Eiffel ... Es necesario que exista una versión de Corba para la plataforma donde se quiere implementar CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament. d’Arquitectura de Computadors - UPC 6 ¿Qué es Corba? Estructura parecida a las RPC’s: – Fragmento IDL -> Stub Cliente – Esqueleto IDL -> Stub Servidor – ORB -> “Port-Mapper” + Marshall/Unmarshall, ... CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament. d’Arquitectura de Computadors - UPC 7 ¿Qué ofrece Java para aplicaciones Cliente/Servidor? Java Sockets – ... RMI – – – – Remote Method Invocation Solución que aporta Sun (Java) para la P.O.O. Distribuidos Incorpora un Garbage Collector Distribuido Cualquier plataforma para la que haya disponible una JVM puede implementar RMI CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament. d’Arquitectura de Computadors - UPC 8 ¿Qué ofrece Java para aplicaciones Cliente/Servidor? Estructura similar a Corba: CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament. d’Arquitectura de Computadors - UPC 9 Corba us Java Sockets Sockets: – Requieren del conocimiento por parte del cliente de la máquina y puerto donde está el servidor. – La comunicación cliente/servidor debe implementar un protocolo tratado en tiempo de programación – Para un servicio concreto, la comunicación es n clientes a 1 servidor (Sobrecarga del servidor) CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament. d’Arquitectura de Computadors - UPC 10 Corba us Java Sockets CORBA: – La localidad de los servicios es transparente al programador, solo hay que conocer el nombre que se ha dado al servicio para poder llamarlo – No hace falta protocolo. Se emplean llamadas a métodos de objetos – Si n clientes solicitan un mismo servicio, se pueden hospedar n servidores en n máquinas. Balanceo de carga. CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament. d’Arquitectura de Computadors - UPC 11 Corba us RMI Basados en la misma idea RMI: – Solo se puede usar con aplicaciones 100% Java – Hace falta conocer el nombre del servicio y la máquina que lo hospeda – Al estar implementado sobre la JVM, es lento CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament. d’Arquitectura de Computadors - UPC 12 CORBA us RMI CORBA – Se puede implementar en muchos lenguajes, incluso combinaciones de ellos. – Basta con conocer el nombre del servicio. La localidad es transparente. – Es más rápido que RMI. CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament. d’Arquitectura de Computadors - UPC 13 RMI + JINI JINI es otro entorno para Java que complementa a RMI Es como un servidor de nombres para objetos Java Con JINI, RMI adquiere la transparencia de localidad. Ya no hace falta conocer el nombre de la máquina donde está el servicio. Se lo podemos preguntar a JINI. CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament. d’Arquitectura de Computadors - UPC 14 ¿Qué le falta a Corba y a RMI? Hace falta separar el código cliente del código servidor. A veces es difícil diferenciarlos. No aportan un espacio de memoria compartida distribuida. No se puden distribuir Threads. Sobrecarga de trabajo en tiempo de implementación para el programador. – Publicar los servicios – Adquirir los servicios Necesita de herramientas especiales – Compiladores, etc... CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament. d’Arquitectura de Computadors - UPC 15 ¿Qué nos depara el futuro? Por ejemplo: – Para Java: • cJVM: JVM modificada para poder trabajar con threads distribuidos (espacio de direcciones distribuido, ...) • JavaParty: Proceso de precompilación para convertir una aplicación 100% Java Puro en una aplicación distribuida bajo RMI. Proporciona también la posibilidad de distribuir Threads -> Espacio de direcciones distribuido. Solo son proyectos de investigación en una fase demasiado atrasada como para poder aplicarse comercialmente. CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament. d’Arquitectura de Computadors - UPC 16 Bibliografía http://java.sun.com http://www.omg.org http://wwwipd.ira.uka.de/JavaParty cJVM Internet, ... CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament. d’Arquitectura de Computadors - UPC 17