02 - Modelos de Computación Distribuida
02 - Modelos de Computación Distribuida
02 - Modelos de Computación Distribuida
• Cada lenguaje que soporta CORBA tiene su propio traductor IDL y como su nombre lo dice,
Java IDL soporta la traducción para Java.
• Para soportar la interacción entre objetos en programas separados, Java IDL proporciona un
ORB (Object Request Broker).
• El ORB es una librería clase que facilita la comunicación de bajo nivel entre las aplicaciones
Java IDL y otras aplicaciones.
JAVA RMI - ¿RMI o IDL?
• Java RMI es una solución 100% Java para objetos remotos que proporciona todas las ventajas de
las capacidades de Java "una vez escrito, ejecutarlo en cualquier parte".
• Los servidores y clientes desarrollados con Java RMI se muestran en cualquier lugar en la
red sobre cualquier plataforma que soporta el ambiente de ejecución de Java.
• Java IDL, en contraste, está basado en una industria estándar para solicitar, de manera remota, a
objetos escritos en cualquier lenguaje de programación.
• Como resultado, Java IDL proporciona un medio para conectar aplicaciones "transferidas"
que aún cubren las necesidades de comercio pero que fueron escritos en otros lenguajes.
• Actualmente Java RMI y Java IDL emplean protocolos diferentes para la comunicación entre
objetos sobre diferentes plataformas.
• Java IDL utiliza el protocolo estándar de CORBA IIOP (Internet Inter-Orb Protocol).
• Al igual que IDL, IIOP facilita la residencia de objetos en diversas plataformas y escritos en
diversos lenguajes para interactuar de manera estándar.
• Actualmente Java RMI utiliza el protocolo JRMP (Java Remote Messaging Protocol), un
protocolo desarrollado específicamente para los objetos remotos de Java.
JAVA RMI - ¿RMI o IDL?
• En Java IDL, un cliente interactúa con un objeto remoto por referencia.
• Esto es, el cliente nunca tiene una copia actual del objeto servidor en su propio
ambiente de ejecución.
• En su lugar, el cliente utiliza stubs en la ejecución local para manipular el objeto
servidor residiendo sobre la plataforma remota.
• En contraste, RMI facilita que un cliente interactúe con un objeto remoto por referencia, o
por su valor descargándolo y manipulándolo en el ambiente de ejecución local.
• Esto se debe a que todos los objetos en RMI son objetos Java.
• RMI utiliza las capacidades de serialización del objeto, que proporciona el lenguaje Java,
para transportar los objetos desde el servidor al cliente.
• Java IDL, dado que interactúa con objetos escritos en cualquier lenguaje, no toma ventaja
de "una vez escrito, ejecutarlo en cualquier parte", característica del lenguaje de
programación Java.
Arquitectura de CORBA
• CORBA define una arquitectura para los objetos distribuidos.
• Common Object Request Broker Architecture (CORBA) es un estándar definido por Object
Management Group (OMG) que permite que diversos componentes de software escritos
en múltiples lenguajes de programación y que corren en diferentes computadoras, puedan
trabajar juntos; es decir, facilita el desarrollo de aplicaciones distribuidas en entornos
heterogéneos.
• CORBA fue el primer producto propuesto por OMG. Su objetivo es ayudar a reducir la
complejidad, disminuir los costes y acelerar la introducción de nuevas aplicaciones
informáticas, promoviendo la teoría y la práctica de la tecnología de objetos en los sistemas
distribuidos.
• Es una tecnología que oculta la programación a bajo nivel de aplicaciones distribuidas.
• No obstante también brinda al programador una tecnología orientada a objetos; las
funciones objetos y estos objetos pueden estar en diferentes máquinas, pero el
programador accederá a ellos a través de funciones normales dentro de su programa.
Arquitectura de CORBA
• CORBA es más que una especificación multiplataforma, también define
servicios habitualmente necesarios como seguridad y transacciones. Y así este
no es un sistema operativo en sí, en realidad es un middleware.
• El paradigma básico de CORBA es el de un pedido servicios de un objeto
distribuido. Todo definido por el OMG está en términos de este paradigma
básico.
• Los servicios que un objeto proporciona son dados por su interfaz .
• Los interfaces se definen en la lengua de la definición de interfaz de OMG
(IDL).
• Los objetos distribuidos son identificados por las referencias del objeto, que
son mecanografiadas por los interfaces de IDL.
Arquitectura de CORBA: Características
Entre las principales características de CORBA, encontramos:
• Independencia en el lenguaje de programación y sistema operativo: CORBA fue
diseñado para liberar a los ingenieros de las limitaciones en cuanto al diseño del
software.
• Actualmente soporta Ada, C, C++, C++11, Lisp, Ruby, Smalltalk, Java, COBOL, PL/I y
Python.
• Posibilidad de interacción entre diferentes tecnologías: uno de los principales
beneficios de la utilización de CORBA es la posibilidad de normalizar las interfaces entre
las diversas tecnologías y poder así combinarlas.
• Transparencia de distribución: ni cliente ni servidor necesitan saber si la aplicación está
distribuida o centralizada, pues el sistema se ocupa de todo eso.
• Transparencia de localización: el cliente no necesita saber donde ejecuta el servicio y el
servicio no necesita saber donde ejecuta el cliente.
Arquitectura de CORBA: Características
• Integración de software existente: se amortiza la inversión previa reutilizando el
software con el que se trabaja, incluso con sistemas heredados.
• Activación de objetos: los objetos remotos no tienen por qué estar en memoria
permanentemente, y se hace de manera invisible para el cliente.
• Otras como: el tipado fuerte de datos, la alta capacidad de configuración, libertad
de elección de los detalles de transferencia de datos, o la compresión de los datos.
Web services (Servicio web)
• Un servicio web (en inglés, web service o web services) es una tecnología que utiliza
un conjunto de protocolos y estándares que sirven para intercambiar datos entre
aplicaciones.
• Distintas aplicaciones de software desarrolladas en lenguajes de programación
diferentes, y ejecutadas sobre cualquier plataforma, pueden utilizar los servicios
web para intercambiar datos en redes de ordenadores como Internet.
• La interoperabilidad se consigue mediante la adopción de estándares abiertos.
• Las organizaciones OASIS y W3C son los comités responsables de la arquitectura y
reglamentación de los servicios Web.
• Para mejorar la interoperabilidad entre distintas implementaciones de servicios
Web se ha creado el organismo WS-I, encargado de desarrollar diversos perfiles
para definir de manera más exhaustiva estos estándares.
• Es una máquina que atiende las peticiones de los clientes web y les envía los
recursos solicitados.
Web services (Servicio web)
• Un servicio web (en inglés, web service o web services) es una tecnología que utiliza
un conjunto de protocolos y estándares que sirven para intercambiar datos entre
aplicaciones.
• Distintas aplicaciones de software desarrolladas en lenguajes de programación
diferentes, y ejecutadas sobre cualquier plataforma, pueden utilizar los servicios
web para intercambiar datos en redes de ordenadores como Internet.
• La interoperabilidad se consigue mediante la adopción de estándares abiertos.
• Las organizaciones OASIS y W3C son los comités responsables de la arquitectura y
reglamentación de los servicios Web.
• Para mejorar la interoperabilidad entre distintas implementaciones de servicios
Web se ha creado el organismo WS-I, encargado de desarrollar diversos perfiles
para definir de manera más exhaustiva estos estándares.
• Es una máquina que atiende las peticiones de los clientes web y les envía los
recursos solicitados.
Web services: Estándares empleados
• Web Services Protocol Stack: conjunto de servicios y protocolos de los servicios web.
• XML (Extensible Markup Language): formato estándar para los datos que se vayan a intercambiar.
• SOAP (Simple Object Access Protocol) o XML-RPC (XML Remote Procedure Call): protocolos sobre los que se
establece el intercambio.
• Otros protocolos: los datos en XML también pueden enviarse de una aplicación a otra mediante protocolos
normales como Hypertext Transfer Protocol (HTTP), File Transfer Protocol (FTP), o Simple Mail Transfer Protocol
(SMTP).
• WSDL (Web Services Description Language): es el lenguaje de la interfaz pública para los servicios web. Es una
descripción basada en XML de los requisitos funcionales necesarios para establecer una comunicación con los
servicios web.
• UDDI (Universal Description, Discovery and Integration): protocolo para publicar la información de los servicios
web. Permite comprobar qué servicios web están disponibles.
• WS-Security (Web Service Security): protocolo de seguridad aceptado como estándar por OASIS (Organization
for the Advancement of Structured Information Standards). Garantiza la autenticación de los actores y la
confidencialidad de los mensajes enviados.
• REST (Representational State Transfer): arquitectura que, haciendo uso del protocolo HTTP, proporciona una API
que utiliza cada uno de sus métodos (GET, POST, PUT, DELETE, etcétera) para poder realizar diferentes
operaciones entre la aplicación que ofrece el servicio web y el cliente.
Web services (Servicio web)
• Un servicio web (en inglés, web service o web services) es una tecnología que utiliza
un conjunto de protocolos y estándares que sirven para intercambiar datos entre
aplicaciones.
• Distintas aplicaciones de software desarrolladas en lenguajes de programación
diferentes, y ejecutadas sobre cualquier plataforma, pueden utilizar los servicios
web para intercambiar datos en redes de ordenadores como Internet.
• La interoperabilidad se consigue mediante la adopción de estándares abiertos.
• Las organizaciones OASIS y W3C son los comités responsables de la arquitectura y
reglamentación de los servicios Web.
• Para mejorar la interoperabilidad entre distintas implementaciones de servicios
Web se ha creado el organismo WS-I, encargado de desarrollar diversos perfiles
para definir de manera más exhaustiva estos estándares.
• Es una máquina que atiende las peticiones de los clientes web y les envía los
recursos solicitados.