La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Sincronización de Objectos Compartidos usando MatchMaker a través de Web Services Thomas Pieper DCC, Universidad de Chile.

Presentaciones similares


Presentación del tema: "Sincronización de Objectos Compartidos usando MatchMaker a través de Web Services Thomas Pieper DCC, Universidad de Chile."— Transcripción de la presentación:

1 Sincronización de Objectos Compartidos usando MatchMaker a través de Web Services Thomas Pieper DCC, Universidad de Chile

2  MiddleWare creado por COLLIDE (COLlaborative Learning in Intelligent Distributed Environment)  http://www.collide.info http://www.collide.info  Pensado para facilitar el desarrollo de aplicaciones colaborativas en Java  El desarrollador no necesita diseñar un protocolo de comunicaciones ni el servidor. MatchMaker también maneja la concurrencia mediante monitores de Java  Clientes comparten objetos, típicamente asociados a elementos de interfaces gráficas MatchMaker

3  Arquitectura de Servidor Central: clientes envían eventos al servidor y este los reparte al resto de los clientes  Servidor puede manejar varias sesiones simultáneamente. Cada sesión posee un “árbol de sincronización”  Tanto cliente como servidor tienen un árbol de sincronización que representa la lógica de la aplicación y mantiene el estado de la sesión  Clientes pueden: crear sesión, unirse a una sesión existente, salir de una sesión y seguir trabajando offline, destruir una sesión

4 MatchMaker  El Árbol de Sincronización resuelve el problema de los latecomers ya que este se envia completo cuando un cliente se une a una sesión. Luego la sincronización es por eventos.  El Árbol de Sicronización permite también que hayan distintas versiones para un mismo cliente. Ejemplo: Versión para alumno Versión para Profesor Versión para Palm ETC

5 RMI  Versión más reciente de MatchMaker utiliza RMI como herramienta de comunicación  RMI (Remote Method Invocation): Implementación de CORBA exclusivo para aplicaciones Java.  Facilita la programación de aplicaciones en red a través del paradigma de objetos remotos y llamadas a procedimientos remotos (RPC).

6 RMI  En un esquema muy resumido:  El servidor pone objetos accesibles desde la red: class Hello { public String Hola() { return "Hola Mundo"; }  Un programa cliente crea una referencia a esos objetos… HelloInterface hello = (HelloInterface) Naming.lookup ("//localhost/Hello");  … e invoca métodos de ese objeto remoto como si fuera local: String holamundo = hello.Hola();

7 Web Services El Web es a las Personas como Web Services es a las Aplicaciones  Las personas sabemos leer; las aplicaciones saben parsear  Ejemplo: Consultar el nombre de una persona en el sitio del Registro Civil a través de su RUT  Web Services: mensajería en XML usando SOAP (Simple Object Access Protocol) como protocolo de RPC y HTTP como capa de comunicaciones.

8 Web Services  Ejemplo de mensaje SOAP: <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2001/09/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <ns1:getWeatherResponse xmlns:ns1="urn:examples:weatherservice" SOAP-ENV:encodingStyle="http://www.w3.org/2001/09/soap-encoding"> 65

9 Web Services  Ejemplo de Web Service: API de Google  http://www.google.com/apihttp://www.google.com/api  http://www.googlefight.comhttp://www.googlefight.com  WSDL: Web Service Description Languaje. Documento XML que describe como podemos comunicarnos con el Web Service  WSDL: Describe los métodos disponibles, los argumentos que reciben y lo que retornan  Ejemplo de documento WSDL:  http://api.google.com/GoogleSearch.wsdlhttp://api.google.com/GoogleSearch.wsdl

10 Apache AXIS  AXIS: Apache EXtensible Interaction System Framework para manejar SOAP y Web Services. Hay versiones para Java y C++  La versión para Java se instala como si fuera una aplicación web (conjunto de ServLets) dentro de un contenedor web.  Filosofía de AXIS: Crear web services de manera tan fácil como “arrastrar y soltar” clases Java dentro del contenedor web.

11 Apache AXIS  Ejemplo de Web Service: public class Calculadora { public int sumar (int i1, int i2) { return i1 + i2; } public int restar (int i1, int i2) { return i1 - i2; }  Para programar Web Services más complejos, AXIS provee herramientas que facilitan mucho su desarrollo: Java2WSDL y WSDL2Java

12 Apache AXIS  Ejemplo de cliente (sin AXIS): public class CalcClient { public static void main (String[] args) throws Exception { String endpoint = "http://localhost:8080/axis/Calculadora.jws"; Integer i1 = new Integer("1"); Integer i2 = new Integer("2"); Service service = new Service(); Call call = (Call) service.createCall(); call.setTargetEndpointAddress (new java.net.URL(endpoint) ); call.setOperationName ("sumar"); call.addParameter( "op1", XMLType.XSD_INT, ParameterMode.IN ); call.addParameter( "op2", XMLType.XSD_INT, ParameterMode.IN ); call.setReturnType( XMLType.XSD_INT ); Integer resultado = (Integer) call.invoke (new Object [] { i1, i2 }); System.out.println ("Resultado: " + resultado); }

13 Apache AXIS  Ejemplo de cliente (con AXIS): public class CalcClient { public static void main (String[] args) throws Exception { CalculadoraService service = new CalculadoraServiceLocator ("http://localhost:8080/axis/Calculadora.jws"); Calculadora calc = service.getcalculadora(); int resultado = calc.sumar (1, 2); System.out.println ("Resultado: " + resultado); }


Descargar ppt "Sincronización de Objectos Compartidos usando MatchMaker a través de Web Services Thomas Pieper DCC, Universidad de Chile."

Presentaciones similares


Anuncios Google