You are on page 1of 17

CONCEPTES AVANATS DE SISTEMES OPERATIUS

Departament dArquitectura de Computadors


(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, ...

You might also like