APLICACIONES DISTRIBUIDAS HENRY MAURICIO ROMERO QUIROGA 160001428.

24
APLICACIONES APLICACIONES DISTRIBUIDAS DISTRIBUIDAS HENRY MAURICIO ROMERO QUIROGA 160001428

Transcript of APLICACIONES DISTRIBUIDAS HENRY MAURICIO ROMERO QUIROGA 160001428.

Page 1: APLICACIONES DISTRIBUIDAS HENRY MAURICIO ROMERO QUIROGA 160001428.

APLICACIONES APLICACIONES DISTRIBUIDASDISTRIBUIDAS

HENRY MAURICIO ROMERO QUIROGA

160001428

Page 2: APLICACIONES DISTRIBUIDAS HENRY MAURICIO ROMERO QUIROGA 160001428.

APLICACIONES APLICACIONES DISTRIBUIDASDISTRIBUIDAS

DCOMRMICORBANetremoting

Page 3: APLICACIONES DISTRIBUIDAS HENRY MAURICIO ROMERO QUIROGA 160001428.

((Common Object Request Broker ArchitectureCommon Object Request Broker Architecture arquitectura común de arquitectura común de intermediarios en peticiones a intermediarios en peticiones a objetos) Es un objetos) Es un estándar que establece una estándar que establece una plataforma de desarrollo de plataforma de desarrollo de sistemas distribuidos facilitando la sistemas distribuidos facilitando la invocación de métodos remotos invocación de métodos remotos bajo un paradigma orientado a bajo un paradigma orientado a objetos.objetos.

CORBACORBA

Page 4: APLICACIONES DISTRIBUIDAS HENRY MAURICIO ROMERO QUIROGA 160001428.

• corbacorba fue definido y está fue definido y está controlado por elcontrolado por el Object Object Management GroupManagement Group (OMG) (OMG) que que define lasdefine las APIs APIs

•“Envuelve" el código escrito en otro lenguaje en un paquete que contiene información adicional sobre las capacidades del código que contiene, y sobre cómo llamar a sus métodos.

Page 5: APLICACIONES DISTRIBUIDAS HENRY MAURICIO ROMERO QUIROGA 160001428.

Tipos de Implementaciones de Tipos de Implementaciones de

corbacorba AdaAdaCCC++C++SmalltalkSmalltalkJavaJavaPython Python PerlPerlTCL TCL

Page 6: APLICACIONES DISTRIBUIDAS HENRY MAURICIO ROMERO QUIROGA 160001428.

• Al compilar una interfaz en Al compilar una interfaz en IDLIDL

se genera código para el cliente se genera código para el cliente y el servidor (el implementador y el servidor (el implementador del objeto).del objeto).

• CORBA es más que una CORBA es más que una especificación multiplataforma, especificación multiplataforma, también define servicios también define servicios habitualmente necesarios como habitualmente necesarios como seguridad y transacciones.seguridad y transacciones.

Page 8: APLICACIONES DISTRIBUIDAS HENRY MAURICIO ROMERO QUIROGA 160001428.

RMIRMI

RMIRMI ( (Java Remote Method Java Remote Method InvocationInvocation) es un mecanismo ) es un mecanismo ofrecido en Java para invocar un ofrecido en Java para invocar un método remotamente.método remotamente.

Page 9: APLICACIONES DISTRIBUIDAS HENRY MAURICIO ROMERO QUIROGA 160001428.

RMI puede darse el lujo de ser muy RMI puede darse el lujo de ser muy amigable para los programadores:amigable para los programadores:

Proveyendo pasaje por referencia de Proveyendo pasaje por referencia de objetos.objetos.

““Recolección de basura" distribuida.Recolección de basura" distribuida. Pasaje de tipos arbitrarios Pasaje de tipos arbitrarios

Por medio de RMI, un programa Java puede exportar un objeto.

Page 10: APLICACIONES DISTRIBUIDAS HENRY MAURICIO ROMERO QUIROGA 160001428.

ContextoContexto A pesar de que RMI es un ORB en el A pesar de que RMI es un ORB en el

sentido general, no es un modelo sentido general, no es un modelo compatible con CORBA.compatible con CORBA.

RMI es nativo de Java, es decir, es una RMI es nativo de Java, es decir, es una extensión al núcleo del lenguaje. extensión al núcleo del lenguaje.

fue diseñada para resolver problemas fue diseñada para resolver problemas escribiendo y organizando código escribiendo y organizando código ejecutable. ejecutable.

Page 11: APLICACIONES DISTRIBUIDAS HENRY MAURICIO ROMERO QUIROGA 160001428.

ArquitecturaArquitectura

Primera capaPrimera capa Es la de aplicación y se corresponde Es la de aplicación y se corresponde

con la implementación real de las con la implementación real de las aplicaciones cliente y servidor. aplicaciones cliente y servidor.

Segunda capaSegunda capa Es la capa proxy, o capa stub-Es la capa proxy, o capa stub-

skeleton. Esta capa es la que skeleton. Esta capa es la que interactúa directamente con la capa interactúa directamente con la capa de aplicación. de aplicación.

Page 12: APLICACIONES DISTRIBUIDAS HENRY MAURICIO ROMERO QUIROGA 160001428.

Tercera capaTercera capa

Es la de referencia remota, y es Es la de referencia remota, y es responsable del manejo de la parte responsable del manejo de la parte semántica de las invocaciones semántica de las invocaciones remotas. remotas.

Cuarta CapaCuarta Capa

Es la de transporte. Es la Es la de transporte. Es la responsable de realizar las responsable de realizar las conexiones necesarias y manejo del conexiones necesarias y manejo del transporte de los datos de una transporte de los datos de una máquina a otra. máquina a otra.

Page 13: APLICACIONES DISTRIBUIDAS HENRY MAURICIO ROMERO QUIROGA 160001428.

ElementosElementos

Toda aplicación RMI Toda aplicación RMI normalmente se descompone normalmente se descompone en 2 partes:en 2 partes:

1.1. Un servidor Un servidor

2.2. Un cliente Un cliente

Page 14: APLICACIONES DISTRIBUIDAS HENRY MAURICIO ROMERO QUIROGA 160001428.

DCOMDCOM

Distributed Component Object Distributed Component Object ModelModel ((DCOMDCOM)), , Modelo de Modelo de Objetos de Componentes Objetos de Componentes DistribuidosDistribuidos, es una tecnología , es una tecnología propietaria de Microsoft para propietaria de Microsoft para desarrollar componentes software desarrollar componentes software distribuidos sobre varios distribuidos sobre varios ordenadores y que se comunican ordenadores y que se comunican entre sí. entre sí.

Page 15: APLICACIONES DISTRIBUIDAS HENRY MAURICIO ROMERO QUIROGA 160001428.

En términos de las extensiones En términos de las extensiones que añade a COM, DCOM tenía que añade a COM, DCOM tenía que resolver los problemas de:que resolver los problemas de:

AplanamientoAplanamiento Recolección de basura distribuida Recolección de basura distribuida Uno de los factores clave para Uno de los factores clave para

resolver estos problemas es el uso resolver estos problemas es el uso de de DCE/RPCDCE/RPC como el mecanismo como el mecanismo RPC RPC subyacente bajo DCOM.subyacente bajo DCOM.

Page 16: APLICACIONES DISTRIBUIDAS HENRY MAURICIO ROMERO QUIROGA 160001428.

DCOM fue uno de los mayores DCOM fue uno de los mayores competidores de CORBA. Los competidores de CORBA. Los defensores de ambas tecnologías defensores de ambas tecnologías sostenían que algún día serían el sostenían que algún día serían el modelo de código y servicios modelo de código y servicios sobre Internet. sobre Internet.

Page 17: APLICACIONES DISTRIBUIDAS HENRY MAURICIO ROMERO QUIROGA 160001428.

Versiones alternativas e Versiones alternativas e implementaciones implementaciones

El El Open GroupOpen Group tiene una tiene una implementación DCOM llamada implementación DCOM llamada COMsourceCOMsource, cuyo código fuente está , cuyo código fuente está disponible, así como la disponible, así como la documentación completa, suficiente documentación completa, suficiente para su uso y suficiente también para su uso y suficiente también para implementar una versión para implementar una versión interoperable de DCOM. interoperable de DCOM.

Page 18: APLICACIONES DISTRIBUIDAS HENRY MAURICIO ROMERO QUIROGA 160001428.

El equipo de El equipo de WineWine también está también está implementando DCOM. Lo hacen implementando DCOM. Lo hacen para conseguir la para conseguir la interoperabilidad binaria, y no interoperabilidad binaria, y no están interesados en la parte de están interesados en la parte de distribución sobre la red de distribución sobre la red de DCOM, que es proporcionada por DCOM, que es proporcionada por MSRPCMSRPC

Page 19: APLICACIONES DISTRIBUIDAS HENRY MAURICIO ROMERO QUIROGA 160001428.

NETREMOTING

Microsoft® .NET Remoting proporciona el Microsoft® .NET Remoting proporciona el marco que permite a los objetos interactuar marco que permite a los objetos interactuar entre sí desde distintos dominios de entre sí desde distintos dominios de aplicaciones e incluye servicios como la aplicaciones e incluye servicios como la activación y la compatibilidad con la activación y la compatibilidad con la duración de los objetos, junto con los duración de los objetos, junto con los canales de comunicación responsables del canales de comunicación responsables del transporte de mensajes a y desde transporte de mensajes a y desde aplicaciones remotas aplicaciones remotas

Page 20: APLICACIONES DISTRIBUIDAS HENRY MAURICIO ROMERO QUIROGA 160001428.

Los formateadores se emplean para Los formateadores se emplean para codificar y descodificar los mensajes codificar y descodificar los mensajes antes de que éstos se envíen por el antes de que éstos se envíen por el canal.canal.

Las aplicaciones pueden hacer uso de Las aplicaciones pueden hacer uso de la codificación binaria en los casos en la codificación binaria en los casos en los que el rendimiento es un factor los que el rendimiento es un factor fundamental, o bien, la codificación fundamental, o bien, la codificación XML, en aquellos otros en los que el XML, en aquellos otros en los que el aspecto esencial es la aspecto esencial es la interoperabilidad con otros marcos interoperabilidad con otros marcos remotos.remotos.

Page 21: APLICACIONES DISTRIBUIDAS HENRY MAURICIO ROMERO QUIROGA 160001428.

CANALESCANALES

Los canales se utilizan para Los canales se utilizan para transportar mensajes a y desde transportar mensajes a y desde objetos remotos. Cuando un cliente objetos remotos. Cuando un cliente llama a un método en un objeto llama a un método en un objeto remoto, los parámetros, así como remoto, los parámetros, así como otros detalles relacionados con la otros detalles relacionados con la llamada, se transportan a través del llamada, se transportan a través del canal al objeto remoto. canal al objeto remoto.

Page 22: APLICACIONES DISTRIBUIDAS HENRY MAURICIO ROMERO QUIROGA 160001428.

La selección del canal está sujeta La selección del canal está sujeta a las siguientes reglas: a las siguientes reglas:

Al menos un canal debe estar registrado con Al menos un canal debe estar registrado con el marco de servicios remotos para poder el marco de servicios remotos para poder llamar a un objeto remoto. Los canales llamar a un objeto remoto. Los canales deben registrarse antes que los objetos.deben registrarse antes que los objetos.

Los canales se registran por dominio de Los canales se registran por dominio de aplicación. En un único proceso pueden aplicación. En un único proceso pueden existir varios dominios. Cuando el proceso existir varios dominios. Cuando el proceso termina, todos los canales que éste registra termina, todos los canales que éste registra se destruyen automáticamente. se destruyen automáticamente.

Page 23: APLICACIONES DISTRIBUIDAS HENRY MAURICIO ROMERO QUIROGA 160001428.

No se puede registrar el mismo No se puede registrar el mismo canal que escucha en el mismo canal que escucha en el mismo puerto más de una vez. puerto más de una vez.

Los clientes se pueden comunicar Los clientes se pueden comunicar con el objeto remoto utilizando con el objeto remoto utilizando cualquier canal registrado. El cualquier canal registrado. El marco de servicios remotos marco de servicios remotos garantiza que el objeto remoto se garantiza que el objeto remoto se conecta al canal adecuado cuando conecta al canal adecuado cuando el cliente intenta realizar la el cliente intenta realizar la conexión.conexión.

Page 24: APLICACIONES DISTRIBUIDAS HENRY MAURICIO ROMERO QUIROGA 160001428.

EJEMPLOSEJEMPLOS

http://es.gotdotnet.com/quickstart/hohttp://es.gotdotnet.com/quickstart/howto/doc/Remoting/quickstart.aspxwto/doc/Remoting/quickstart.aspx