SlideShare una empresa de Scribd logo
Programación orientada a objetos Sistemas distribuidos
Introducción Para aplicar el sistema de la Biblioteca como un sistema distribuido, se utilizaría el mecanismo de programación RMI (RemoteMethodInvocation) ya que es un simple pero potente framework basado en Java para diseñar objetos distribuidos, los cuales pueden desarrollarse rápidamente y administrarse a través de la red. El sistema Biblioteca es programado en Java con la IDE Eclipse Europa, y por lo tanto el RMI sería el adecuado.
RMI RemoteMethodInvocation
Definición Es un mecanismo ofrecido por Java para invocar un método de manera remota.  Forma parte del entorno estándar de ejecución de Java y provee de un mecanismo simple para la comunicación de servidores en aplicaciones distribuidas basadas exclusivamente en Java.
RMI se caracteriza por la facilidad de su uso en la programación por estar específicamente diseñado para Java; proporciona paso de objetos por referencia (no permitido por SOAP), recolección de basura distribuida (GarbageCollector distribuido) y paso de tipos arbitrarios (funcionalidad no provista por CORBA). Por medio de RMI, un programa Java puede exportar un objeto, lo que significa que éste queda accesible a través de la red y el programa permanece a la espera de peticiones en un puerto TCP. A partir de este momento, un cliente puede conectarse e invocar los métodos proporcionados por el objeto.
	La invocación se compone de los siguientes pasos: Encapsulado (marshalling) de los parámetros (utilizando la funcionalidad de serialización de Java). Invocación del método (del cliente sobre el servidor). El invocador se queda esperando una respuesta. Al terminar la ejecución, el servidor serializa el valor de retorno (si lo hay) y lo envía al cliente. El código cliente recibe la respuesta y continúa como si la invocación hubiera sido local.
La arquitectura RMI
La definición de un servicio remoto se hace usando una interfaz de JAVA .  La implementación se codifica en una clase. Programa Servidor Programa Cliente Interfaz Implementación Sistema RMI
Elementos Toda aplicación RMI normalmente se descompone en 2 partes: Un servidor, que crea algunos objetos remotos, crea referencias para hacerlos accesibles, y espera a que el cliente los invoque. Un cliente, que obtiene una referencia a objetos remotos en el servidor, y los invoca. Cliente Servidor Result = Obj.method1(val1) DefObj { int method1(int v)             { } string method2(string v)             { } int method3(int v)             { } int method4(int v)             { }   }
RMI soporta 2 clases que implementan la misma interfaz. La primera implementa el servicio y se ejecuta en el servidor. La segunda actúa como un proxy para el servicio remoto y se ejecuta en el cliente. << Interface >> Service Cliente Servidor Service Proxy Service Implementation RMI
Niveles de arquitectura Client Server Application Skeletons Stubs Remote Reference Layer RMI System Transport
APLICACIÓN La capa de la aplicación está situada en el nivel superior del sistema RMI. Una invocación remota de un cliente a un servidor de objetos remotos viaja a través de las capas del sistema RMI.
STUB - SKELETON Esta capa es la que interactúa directamente con la capa de aplicación. Todas las llamadas a objetos remotos y acciones junto con sus parámetros y retorno de objetos tienen lugar en esta capa.
Un stub es responsable de: Inicializar la llamada al objeto remoto.  Hacer el marshaling de argumentos a un marshalstream, obtenido de la capa de referencia remota.  Informa a la capa de referencia remota que debe invocarse la llamada.  Hacer unmarshaling al valor de retorno o excepción desde un marshalstream.  Informar al nivel de referencia remota que la llamada está completa.  Un skeleton es responsable de: Hacer unmarshaling a los argumentos desde el marshalstream.  Hacer la llamada a la implementacion del objeto remoto.  Hacer marshaling al valor de retorno de la llamada o una excepcion sobre el marshalstream.
REFERENCIA REMOTA Es responsable del manejo de la parte semántica de las invocaciones remotas. También es responsable de la gestión de la replicación de objetos y realización de tareas específicas de la implementación con los objetos remotos, como el establecimiento de las persistencias semánticas y estrategias adecuadas para la recuperación de conexiones perdidas.
TRANSPORTE Responsable de: Establecer conexiones a JVM remotas.  Administrar las conexiones.  Escuchar las llamadas entrantes.  Mantener una tabla de objetos remotos que residen en la JVM.  Establecer una conexión para una llamada entrante.  Localizar el despachador del objetivo de la llamada remota y pasar la conexión a este despachador.
Proceso:
Clases, métodos y aplicaciónes  a utilizar java.rmi.Naming 	Esta clase contiene los métodos estáticos que permiten el acceso a objetos remotos utilizando un URL para especificar el nombre y lugar del objeto remoto. java.rmi.Remote 	De esta clase se deben de heredar las clases a utilizar para indicar que puede llamarse desde cualquier máquina virtual Java. java.rmi.RemoteException Todos los métodos deben de lanzar esta excepción en su cláusula throws, además de las excepciones que pueda manejar. rmiredistry Es una aplicación del servidor que se utiliza para registrar un nombre y un lugar de un objeto remoto. Esto se realiza a partir de un servidor que contiene un objeto remoto.
Ventajas y Desventajas De usar el RMI
Ventajas de RMI Hace parte del estándar del lenguaje Java. Aprovecha las ventajas del lenguaje Java. Los detalles de comunicación son transparentes para el programador. Permite el desarrollo rápido y fácil de objetos distribuidos. Es una plataforma amigable para empezar en el área de aplicaciones distribuidas. Desventajas de RMI No permite la fácil integración con sistemas heredados. No es rápido. Java RMI no es ampliamente aceptado, no es interoperable.

Más contenido relacionado

La actualidad más candente

Rmi
RmiRmi
Rmi
RmiRmi
Rmi
Tensor
 
Comunicación distribuida
Comunicación distribuidaComunicación distribuida
Comunicación distribuida
Tensor
 
11 ad java-rmi
11 ad java-rmi11 ad java-rmi
11 ad java-rmi
Audiomas Soni
 
Presentacion jade
Presentacion jadePresentacion jade
Presentacion jade
Magdiel Espinoza
 
Sintaxis Java
Sintaxis JavaSintaxis Java
Sintaxis Java
Daniel Alvarez
 
Sma jade
Sma jadeSma jade
Sma jadekasas12
 
La herramienta de desarrollo de agentes JADE
La herramienta de desarrollo de agentes JADELa herramienta de desarrollo de agentes JADE
La herramienta de desarrollo de agentes JADE
pcuestaesei
 
Java
JavaJava
La herramienta de desarrollo de agentes Jade
La herramienta de desarrollo de agentes JadeLa herramienta de desarrollo de agentes Jade
La herramienta de desarrollo de agentes Jade
pcuestaesei
 
Jade Agentes inteligentes básico
Jade Agentes inteligentes básicoJade Agentes inteligentes básico
Jade Agentes inteligentes básico
Octavio Abundez
 

La actualidad más candente (11)

Rmi
RmiRmi
Rmi
 
Rmi
RmiRmi
Rmi
 
Comunicación distribuida
Comunicación distribuidaComunicación distribuida
Comunicación distribuida
 
11 ad java-rmi
11 ad java-rmi11 ad java-rmi
11 ad java-rmi
 
Presentacion jade
Presentacion jadePresentacion jade
Presentacion jade
 
Sintaxis Java
Sintaxis JavaSintaxis Java
Sintaxis Java
 
Sma jade
Sma jadeSma jade
Sma jade
 
La herramienta de desarrollo de agentes JADE
La herramienta de desarrollo de agentes JADELa herramienta de desarrollo de agentes JADE
La herramienta de desarrollo de agentes JADE
 
Java
JavaJava
Java
 
La herramienta de desarrollo de agentes Jade
La herramienta de desarrollo de agentes JadeLa herramienta de desarrollo de agentes Jade
La herramienta de desarrollo de agentes Jade
 
Jade Agentes inteligentes básico
Jade Agentes inteligentes básicoJade Agentes inteligentes básico
Jade Agentes inteligentes básico
 

Similar a Semana 13 sistemas distribuidos

Diapositivas De Java Rmi
Diapositivas De Java  RmiDiapositivas De Java  Rmi
Diapositivas De Java Rmisandra milena
 
Rmi
RmiRmi
Tema RMI en java e invocación utilizando
Tema RMI en java e invocación utilizandoTema RMI en java e invocación utilizando
Tema RMI en java e invocación utilizando
AntonioFloresLara
 
Comunicación distribuida
Comunicación distribuidaComunicación distribuida
Comunicación distribuida
Tensor
 
COMUNICACIÓN DISTRIBUIDA
COMUNICACIÓN DISTRIBUIDACOMUNICACIÓN DISTRIBUIDA
COMUNICACIÓN DISTRIBUIDA
Diana
 
algorimo distribuidos
algorimo distribuidosalgorimo distribuidos
algorimo distribuidos
Víctor Aurelio Bocanegra Rios
 
Actividad 16
Actividad 16Actividad 16
Actividad 16grachika
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidosJaziel Torres
 
RMI_Concepto_Elementos_Funciones_Ventajas_Desventajas
RMI_Concepto_Elementos_Funciones_Ventajas_DesventajasRMI_Concepto_Elementos_Funciones_Ventajas_Desventajas
RMI_Concepto_Elementos_Funciones_Ventajas_Desventajas
Stalin Eduardo Tusa Vitar
 
Actividad ...... 16
Actividad ...... 16Actividad ...... 16
Actividad ...... 16grachika
 
RPC
RPCRPC
presentacion de Aplicaciones de Java
presentacion de Aplicaciones de Javapresentacion de Aplicaciones de Java
presentacion de Aplicaciones de Java
ingyon
 
Agentes moviles
Agentes movilesAgentes moviles
Agentes moviles
YeseniaLaraFlores
 
Remote Procedure Call (RPC)
Remote Procedure Call (RPC)Remote Procedure Call (RPC)
Remote Procedure Call (RPC)Taty Millan
 

Similar a Semana 13 sistemas distribuidos (20)

Java Rmi[1]
Java  Rmi[1]Java  Rmi[1]
Java Rmi[1]
 
Ejemplosencillocon rmi
Ejemplosencillocon rmiEjemplosencillocon rmi
Ejemplosencillocon rmi
 
Diapositivas De Java Rmi
Diapositivas De Java  RmiDiapositivas De Java  Rmi
Diapositivas De Java Rmi
 
RMI
RMIRMI
RMI
 
Rmi
RmiRmi
Rmi
 
Tema RMI en java e invocación utilizando
Tema RMI en java e invocación utilizandoTema RMI en java e invocación utilizando
Tema RMI en java e invocación utilizando
 
Comunicación distribuida
Comunicación distribuidaComunicación distribuida
Comunicación distribuida
 
COMUNICACIÓN DISTRIBUIDA
COMUNICACIÓN DISTRIBUIDACOMUNICACIÓN DISTRIBUIDA
COMUNICACIÓN DISTRIBUIDA
 
algorimo distribuidos
algorimo distribuidosalgorimo distribuidos
algorimo distribuidos
 
Actividad 16
Actividad 16Actividad 16
Actividad 16
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidos
 
RMI_Concepto_Elementos_Funciones_Ventajas_Desventajas
RMI_Concepto_Elementos_Funciones_Ventajas_DesventajasRMI_Concepto_Elementos_Funciones_Ventajas_Desventajas
RMI_Concepto_Elementos_Funciones_Ventajas_Desventajas
 
Actividad ...... 16
Actividad ...... 16Actividad ...... 16
Actividad ...... 16
 
RPC
RPCRPC
RPC
 
Rpc te
Rpc teRpc te
Rpc te
 
presentacion de Aplicaciones de Java
presentacion de Aplicaciones de Javapresentacion de Aplicaciones de Java
presentacion de Aplicaciones de Java
 
Agentes moviles
Agentes movilesAgentes moviles
Agentes moviles
 
Remote Procedure Call (RPC)
Remote Procedure Call (RPC)Remote Procedure Call (RPC)
Remote Procedure Call (RPC)
 
Servicios web
Servicios webServicios web
Servicios web
 
Diccionario 2
Diccionario 2Diccionario 2
Diccionario 2
 

Más de TerryJoss

Semana 10 eventos excepciones y errores
Semana 10   eventos excepciones y erroresSemana 10   eventos excepciones y errores
Semana 10 eventos excepciones y erroresTerryJoss
 
Semana 13 ejemplo del uso del rmi
Semana 13   ejemplo del uso del rmiSemana 13   ejemplo del uso del rmi
Semana 13 ejemplo del uso del rmiTerryJoss
 
Semana 12 interfaces gráficas de usuario
Semana 12   interfaces gráficas de usuarioSemana 12   interfaces gráficas de usuario
Semana 12 interfaces gráficas de usuarioTerryJoss
 
Semana 12 interfaces gráficas de usuario
Semana 12   interfaces gráficas de usuarioSemana 12   interfaces gráficas de usuario
Semana 12 interfaces gráficas de usuarioTerryJoss
 
Semana 11 pruebas unitarias
Semana 11   pruebas unitariasSemana 11   pruebas unitarias
Semana 11 pruebas unitariasTerryJoss
 
Diagramas de clases y actividades
Diagramas de clases y actividadesDiagramas de clases y actividades
Diagramas de clases y actividadesTerryJoss
 
Diagrama de actividades
Diagrama de actividadesDiagrama de actividades
Diagrama de actividadesTerryJoss
 
Proyecto biblioteca
Proyecto bibliotecaProyecto biblioteca
Proyecto bibliotecaTerryJoss
 

Más de TerryJoss (11)

Semana 10 eventos excepciones y errores
Semana 10   eventos excepciones y erroresSemana 10   eventos excepciones y errores
Semana 10 eventos excepciones y errores
 
Semana 13 ejemplo del uso del rmi
Semana 13   ejemplo del uso del rmiSemana 13   ejemplo del uso del rmi
Semana 13 ejemplo del uso del rmi
 
Semana 12 interfaces gráficas de usuario
Semana 12   interfaces gráficas de usuarioSemana 12   interfaces gráficas de usuario
Semana 12 interfaces gráficas de usuario
 
Semana 12 interfaces gráficas de usuario
Semana 12   interfaces gráficas de usuarioSemana 12   interfaces gráficas de usuario
Semana 12 interfaces gráficas de usuario
 
Semana 11 pruebas unitarias
Semana 11   pruebas unitariasSemana 11   pruebas unitarias
Semana 11 pruebas unitarias
 
Diagramas de clases y actividades
Diagramas de clases y actividadesDiagramas de clases y actividades
Diagramas de clases y actividades
 
Diagrama de actividades
Diagrama de actividadesDiagrama de actividades
Diagrama de actividades
 
Memento
MementoMemento
Memento
 
Facade
FacadeFacade
Facade
 
Prototype
PrototypePrototype
Prototype
 
Proyecto biblioteca
Proyecto bibliotecaProyecto biblioteca
Proyecto biblioteca
 

Último

Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
AlejandraCasallas7
 
maestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdfmaestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdf
JimmyTejadaSalizar
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
AlejandraCasallas7
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
IsabellaRubio6
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
coloradxmaria
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVATECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
LilibethEstupian
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
JulyMuoz18
 
Informació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdfInformació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdf
Festibity
 
modelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptxmodelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptx
evelinglilibethpeafi
 
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
AMADO SALVADOR
 
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdfProjecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Festibity
 
Trabajo tecnología sobre Conceptos Básicos De Programación
Trabajo tecnología sobre Conceptos Básicos De ProgramaciónTrabajo tecnología sobre Conceptos Básicos De Programación
Trabajo tecnología sobre Conceptos Básicos De Programación
SofiaCollazos
 
Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
ItsSofi
 
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
CesarPazosQuispe
 
Conceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdfConceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdf
ValeriaAyala48
 
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor OficialCatalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
AMADO SALVADOR
 
Ventajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloroVentajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloro
durangense277
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
cofferub
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
cristianrb0324
 
herramientas de sitio web 3.0 2024
herramientas de sitio web 3.0  2024herramientas de sitio web 3.0  2024
herramientas de sitio web 3.0 2024
julio05042006
 

Último (20)

Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
 
maestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdfmaestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdf
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVATECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
 
Informació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdfInformació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdf
 
modelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptxmodelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptx
 
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
 
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdfProjecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
Projecte Iniciativa TIC 2024 KAWARU CONSULTING. inCV.pdf
 
Trabajo tecnología sobre Conceptos Básicos De Programación
Trabajo tecnología sobre Conceptos Básicos De ProgramaciónTrabajo tecnología sobre Conceptos Básicos De Programación
Trabajo tecnología sobre Conceptos Básicos De Programación
 
Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
 
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
 
Conceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdfConceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdf
 
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor OficialCatalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
 
Ventajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloroVentajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloro
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
 
herramientas de sitio web 3.0 2024
herramientas de sitio web 3.0  2024herramientas de sitio web 3.0  2024
herramientas de sitio web 3.0 2024
 

Semana 13 sistemas distribuidos

  • 1. Programación orientada a objetos Sistemas distribuidos
  • 2. Introducción Para aplicar el sistema de la Biblioteca como un sistema distribuido, se utilizaría el mecanismo de programación RMI (RemoteMethodInvocation) ya que es un simple pero potente framework basado en Java para diseñar objetos distribuidos, los cuales pueden desarrollarse rápidamente y administrarse a través de la red. El sistema Biblioteca es programado en Java con la IDE Eclipse Europa, y por lo tanto el RMI sería el adecuado.
  • 4. Definición Es un mecanismo ofrecido por Java para invocar un método de manera remota. Forma parte del entorno estándar de ejecución de Java y provee de un mecanismo simple para la comunicación de servidores en aplicaciones distribuidas basadas exclusivamente en Java.
  • 5. RMI se caracteriza por la facilidad de su uso en la programación por estar específicamente diseñado para Java; proporciona paso de objetos por referencia (no permitido por SOAP), recolección de basura distribuida (GarbageCollector distribuido) y paso de tipos arbitrarios (funcionalidad no provista por CORBA). Por medio de RMI, un programa Java puede exportar un objeto, lo que significa que éste queda accesible a través de la red y el programa permanece a la espera de peticiones en un puerto TCP. A partir de este momento, un cliente puede conectarse e invocar los métodos proporcionados por el objeto.
  • 6. La invocación se compone de los siguientes pasos: Encapsulado (marshalling) de los parámetros (utilizando la funcionalidad de serialización de Java). Invocación del método (del cliente sobre el servidor). El invocador se queda esperando una respuesta. Al terminar la ejecución, el servidor serializa el valor de retorno (si lo hay) y lo envía al cliente. El código cliente recibe la respuesta y continúa como si la invocación hubiera sido local.
  • 8. La definición de un servicio remoto se hace usando una interfaz de JAVA . La implementación se codifica en una clase. Programa Servidor Programa Cliente Interfaz Implementación Sistema RMI
  • 9. Elementos Toda aplicación RMI normalmente se descompone en 2 partes: Un servidor, que crea algunos objetos remotos, crea referencias para hacerlos accesibles, y espera a que el cliente los invoque. Un cliente, que obtiene una referencia a objetos remotos en el servidor, y los invoca. Cliente Servidor Result = Obj.method1(val1) DefObj { int method1(int v) { } string method2(string v) { } int method3(int v) { } int method4(int v) { } }
  • 10. RMI soporta 2 clases que implementan la misma interfaz. La primera implementa el servicio y se ejecuta en el servidor. La segunda actúa como un proxy para el servicio remoto y se ejecuta en el cliente. << Interface >> Service Cliente Servidor Service Proxy Service Implementation RMI
  • 11. Niveles de arquitectura Client Server Application Skeletons Stubs Remote Reference Layer RMI System Transport
  • 12. APLICACIÓN La capa de la aplicación está situada en el nivel superior del sistema RMI. Una invocación remota de un cliente a un servidor de objetos remotos viaja a través de las capas del sistema RMI.
  • 13. STUB - SKELETON Esta capa es la que interactúa directamente con la capa de aplicación. Todas las llamadas a objetos remotos y acciones junto con sus parámetros y retorno de objetos tienen lugar en esta capa.
  • 14. Un stub es responsable de: Inicializar la llamada al objeto remoto. Hacer el marshaling de argumentos a un marshalstream, obtenido de la capa de referencia remota. Informa a la capa de referencia remota que debe invocarse la llamada. Hacer unmarshaling al valor de retorno o excepción desde un marshalstream. Informar al nivel de referencia remota que la llamada está completa. Un skeleton es responsable de: Hacer unmarshaling a los argumentos desde el marshalstream. Hacer la llamada a la implementacion del objeto remoto. Hacer marshaling al valor de retorno de la llamada o una excepcion sobre el marshalstream.
  • 15. REFERENCIA REMOTA Es responsable del manejo de la parte semántica de las invocaciones remotas. También es responsable de la gestión de la replicación de objetos y realización de tareas específicas de la implementación con los objetos remotos, como el establecimiento de las persistencias semánticas y estrategias adecuadas para la recuperación de conexiones perdidas.
  • 16. TRANSPORTE Responsable de: Establecer conexiones a JVM remotas. Administrar las conexiones. Escuchar las llamadas entrantes. Mantener una tabla de objetos remotos que residen en la JVM. Establecer una conexión para una llamada entrante. Localizar el despachador del objetivo de la llamada remota y pasar la conexión a este despachador.
  • 18. Clases, métodos y aplicaciónes a utilizar java.rmi.Naming Esta clase contiene los métodos estáticos que permiten el acceso a objetos remotos utilizando un URL para especificar el nombre y lugar del objeto remoto. java.rmi.Remote De esta clase se deben de heredar las clases a utilizar para indicar que puede llamarse desde cualquier máquina virtual Java. java.rmi.RemoteException Todos los métodos deben de lanzar esta excepción en su cláusula throws, además de las excepciones que pueda manejar. rmiredistry Es una aplicación del servidor que se utiliza para registrar un nombre y un lugar de un objeto remoto. Esto se realiza a partir de un servidor que contiene un objeto remoto.
  • 19. Ventajas y Desventajas De usar el RMI
  • 20. Ventajas de RMI Hace parte del estándar del lenguaje Java. Aprovecha las ventajas del lenguaje Java. Los detalles de comunicación son transparentes para el programador. Permite el desarrollo rápido y fácil de objetos distribuidos. Es una plataforma amigable para empezar en el área de aplicaciones distribuidas. Desventajas de RMI No permite la fácil integración con sistemas heredados. No es rápido. Java RMI no es ampliamente aceptado, no es interoperable.