(apunts de lassignatura en format transparncia) Comparativa de programacin cliente/servidor con Java y Corba
CONCEPTES AVANATS DE SISTEMES OPERATIUS Departament. dArquitectura de Computadors - UPC 2 Comparativa de programacin cliente/servidor con Java y Corba 1. Qu herramientas conocemos para la programacin 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. Bibliografa CONCEPTES AVANATS DE SISTEMES OPERATIUS Departament. dArquitectura de Computadors - UPC 3 Qu herramientas conocemos para la programacin Cliente/Servidor? Sockets Implementados en todos los S.O. Modernos Comunican dos procesos que pueden estar alojados en dos mquinas diferentes El cliente debe conocer la mquina y puerto donde se ubica el servidor Se debe establecer un protocolo cliente/servidor para el correcto funcionamiento de la aplicacin. CONCEPTES AVANATS DE SISTEMES OPERATIUS Departament. dArquitectura de Computadors - UPC 4 Qu herramientas conocemos para la programacin Cliente/Servidor? RPCs Basado en Sockets Abstrae al programador del uso de Sockets Mquina Host Puerto Protocolo Sigue siendo necesaria la distincin del cdigo cliente y del cdigo servidor Requiere del Port-Mapper Publicar RPC Preguntar por RPC, etc... CONCEPTES AVANATS DE SISTEMES OPERATIUS Departament. dArquitectura de Computadors - UPC 5 Qu es Corba?
Corba es: Un producto de la O.M.G. (Object Management Group) Un entorno para la ejecucin de P.O.O. Distribuido. Como aadir a las RPCs el paradigma de la P.O.O. Herencia Poliformismo ...
CONCEPTES AVANATS DE SISTEMES OPERATIUS Departament. dArquitectura de Computadors - UPC 6 Qu es Corba? Corba se puede implementar en multitud de lenguajes: Java C++ Eiffel ... Es necesario que exista una versin de Corba para la plataforma donde se quiere implementar CONCEPTES AVANATS DE SISTEMES OPERATIUS Departament. dArquitectura de Computadors - UPC 7 Qu es Corba? Estructura parecida a las RPCs: Fragmento IDL -> Stub Cliente Esqueleto IDL -> Stub Servidor ORB -> Port-Mapper + Marshall/Unmarshall, ...
CONCEPTES AVANATS DE SISTEMES OPERATIUS Departament. dArquitectura de Computadors - UPC 8 Qu ofrece Java para aplicaciones Cliente/Servidor? Java Sockets ... RMI Remote Method Invocation Solucin 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 AVANATS DE SISTEMES OPERATIUS Departament. dArquitectura de Computadors - UPC 9 Qu ofrece Java para aplicaciones Cliente/Servidor? Estructura similar a Corba: CONCEPTES AVANATS DE SISTEMES OPERATIUS Departament. dArquitectura de Computadors - UPC 10 Corba us Java Sockets Sockets: Requieren del conocimiento por parte del cliente de la mquina y puerto donde est el servidor. La comunicacin cliente/servidor debe implementar un protocolo tratado en tiempo de programacin Para un servicio concreto, la comunicacin es n clientes a 1 servidor (Sobrecarga del servidor) CONCEPTES AVANATS DE SISTEMES OPERATIUS Departament. dArquitectura de Computadors - UPC 11 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 mtodos de objetos Si n clientes solicitan un mismo servicio, se pueden hospedar n servidores en n mquinas. Balanceo de carga.
CONCEPTES AVANATS DE SISTEMES OPERATIUS Departament. dArquitectura de Computadors - UPC 12 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 mquina que lo hospeda Al estar implementado sobre la JVM, es lento CONCEPTES AVANATS DE SISTEMES OPERATIUS Departament. dArquitectura de Computadors - UPC 13 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 ms rpido que RMI. CONCEPTES AVANATS DE SISTEMES OPERATIUS Departament. dArquitectura de Computadors - UPC 14 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 mquina donde est el servicio. Se lo podemos preguntar a JINI. CONCEPTES AVANATS DE SISTEMES OPERATIUS Departament. dArquitectura de Computadors - UPC 15 Qu le falta a Corba y a RMI? Hace falta separar el cdigo cliente del cdigo servidor. A veces es difcil diferenciarlos. No aportan un espacio de memoria compartida distribuida. No se puden distribuir Threads. Sobrecarga de trabajo en tiempo de implementacin para el programador. Publicar los servicios Adquirir los servicios Necesita de herramientas especiales Compiladores, etc... CONCEPTES AVANATS DE SISTEMES OPERATIUS Departament. dArquitectura de Computadors - UPC 16 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 precompilacin para convertir una aplicacin 100% Java Puro en una aplicacin distribuida bajo RMI. Proporciona tambin la posibilidad de distribuir Threads -> Espacio de direcciones distribuido. Solo son proyectos de investigacin en una fase demasiado atrasada como para poder aplicarse comercialmente. CONCEPTES AVANATS DE SISTEMES OPERATIUS Departament. dArquitectura de Computadors - UPC 17 Bibliografa http://java.sun.com http://www.omg.org http://wwwipd.ira.uka.de/JavaParty cJVM Internet, ...