Comparati v a de programació n client e /servidor con Java y Corba

17
CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament d’Arquitectura de Computadors (apunts de l’assignatura en format transparència) Comparativa de programación cliente/servidor con Java y Corba

description

Comparati v a de programació n client e /servidor con Java y Corba. 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? - PowerPoint PPT Presentation

Transcript of Comparati v a de programació n client e /servidor con Java y Corba

Page 1: Comparati v a  de programació n  client e /servidor  con  Java  y  Corba

CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament d’Arquitectura de Computadors

(apunts de l’assignatura en format transparència)

Comparativa de programación cliente/servidor con Java y Corba

Page 2: Comparati v a  de programació n  client e /servidor  con  Java  y  Corba

CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

2

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

Page 3: Comparati v a  de programació n  client e /servidor  con  Java  y  Corba

CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

3

¿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.

Page 4: Comparati v a  de programació n  client e /servidor  con  Java  y  Corba

CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

4

¿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...

Page 5: Comparati v a  de programació n  client e /servidor  con  Java  y  Corba

CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

5

¿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

• ...

Page 6: Comparati v a  de programació n  client e /servidor  con  Java  y  Corba

CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

6

¿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

Page 7: Comparati v a  de programació n  client e /servidor  con  Java  y  Corba

CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

7

¿Qué es Corba?

Estructura parecida a las RPC’s:– Fragmento IDL -> Stub Cliente– Esqueleto IDL -> Stub Servidor– ORB -> “Port-Mapper” + Marshall/Unmarshall, ...

Page 8: Comparati v a  de programació n  client e /servidor  con  Java  y  Corba

CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

8

¿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

Page 9: Comparati v a  de programació n  client e /servidor  con  Java  y  Corba

CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

9

¿Qué ofrece Java para aplicaciones Cliente/Servidor?

Estructura similar a Corba:

Page 10: Comparati v a  de programació n  client e /servidor  con  Java  y  Corba

CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

10

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)

Page 11: Comparati v a  de programació n  client e /servidor  con  Java  y  Corba

CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura 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 métodos de objetos

– Si n clientes solicitan un mismo servicio, se pueden hospedar n servidores en n máquinas. Balanceo de carga.

Page 12: Comparati v a  de programació n  client e /servidor  con  Java  y  Corba

CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura 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 máquina que lo

hospeda– Al estar implementado sobre la JVM, es lento

Page 13: Comparati v a  de programació n  client e /servidor  con  Java  y  Corba

CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura 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 más rápido que RMI.

Page 14: Comparati v a  de programació n  client e /servidor  con  Java  y  Corba

CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura 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 máquina donde está el servicio. Se lo podemos preguntar a JINI.

Page 15: Comparati v a  de programació n  client e /servidor  con  Java  y  Corba

CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

15

¿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...

Page 16: Comparati v a  de programació n  client e /servidor  con  Java  y  Corba

CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura 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 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.

Page 17: Comparati v a  de programació n  client e /servidor  con  Java  y  Corba

CONCEPTES AVANÇATS DE SISTEMES OPERATIUS

Departament. d’Arquitectura de Computadors - UPC

17

Bibliografía

http://java.sun.com http://www.omg.org http://wwwipd.ira.uka.de/JavaParty cJVM Internet, ...