Академический Документы
Профессиональный Документы
Культура Документы
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 2
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.
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 4
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 ...
Qu es Corba?
Es necesario que exista una versin de Corba para la plataforma donde se quiere implementar
Qu es Corba?
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
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)
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.
Corba us RMI
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.
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.
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
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.
Bibliografa