1 / 17

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

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?

kreeli
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  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

  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.

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

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

  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

  7. ¿Qué es Corba? • Estructura parecida a las RPC’s: • Fragmento IDL -> Stub Cliente • Esqueleto IDL -> Stub Servidor • ORB -> “Port-Mapper” + Marshall/Unmarshall, ...

  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

  9. ¿Qué ofrece Java para aplicaciones Cliente/Servidor? • Estructura similar a Corba:

  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)

  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.

  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

  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.

  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.

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

  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.

  17. Bibliografía • http://java.sun.com • http://www.omg.org • http://wwwipd.ira.uka.de/JavaParty • cJVM • Internet, ...

More Related