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

Slides:



Advertisements
Presentaciones similares
JEE Introducción a Java Enterprise Edition (JEE) y el modelo Enterprise Java Beans (EJB)
Advertisements

Web Services.
APLICACIONES DISTRIBUIDAS
Servicios Web XML 03 de Junio de 2004 Fernando Alonso Blázquez.
Java nos ofrece System.out para escribir en pantalla, pero también tenemos System.in para leer. System.in es un objeto de una clase de java que se llama.
CJ02 – Técnicas avanzadas en java 1.4 y 5.0
ADELA TORRES JONATHAN BEJARANO
Aplicaciones Cliente-Servidor
Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores.
Lenguajes Servicios Web
Servicios Web.
Modularidad Estructura de datos.
"java del lado del servidor" Servlet y JSP Java Server Pages.
Tipos de Servicios Web.
IMPLEMENTACIÓN DE ARQUITECTURA EMPRESARIAL
Desarrollando y consumiendo Web Services con Visual FoxPro
Introducción a Remoting
Intercambio de información Procesamiento Sin intervención del usuario Acelerando tiempos de respuesta Normalización Entre plataformas Entre lenguajes.
Entornos orientados a objetos
RMI Remote Method Invocation
Java 2 Platform Enterprise Edition
RMI (Remote Method Invocation)
Introducción XML y WebServices.
Objetos Distribuidos – Aplicaciones RMI
Método en Java.
Redes P2P Dr. Víctor J. Sosa-Sosa
Sistemas Operativos Distribuidos Plataforma Cliente/Servidor
El patrón de diseño Proxy Raúl Heras Alberto Blasco José Manuel Arévalo.
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
1 Ingeniería del Software Ejercicios de Implementación  Caso de Uso Total Gasto (Junio 2003)  Caso de Uso Mejor Usuario (Septiembre 2003)  Caso de Uso.
Input – Scanner y Cajas de diálogo
Suponiendo que además en la clase U hay: import java.util.*; class U{ static Scanner teclado = new Scanner(System.in); static public int readInt(String.
Presentación Web Services Interoperability and SOAP Keith Ballinger Microsoft Corporation Alvaro Castromán Alfonso Odriozola.
CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament d’Arquitectura de Computadors (Seminaris de CASO) Autors Alberto Guirao Rico Jesús Barahona Esteve.
Invocación de Métodos Remotos RMI: Remote Method Invocation
Representational State Transfer (REST)
Servicios Web. Servicios web Son programas con funcionalidad accesible a través de protocolo http que permiten la ejecución remota de métodos y funciones.
Java. Java nació el año 1991, por un par de ingenieros de la Sun Microsystems.
JAVA RMI The Java Remote Method Invocation ELO330 – Programación de Sistemas Cesar Vásquez I
María Gertrudis López1 Yosly Hernández1 Cira Beleño1 Doris Pernalete2
RMI Remote Method Invocation 2da. Clase del 19 de Junio
OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA ING. MARISCAL.
Introducción a los Servicios Web con Java M.C. Juan Carlos Olivares Rojas Julio 2011.
APACHE AXIS 2.
Arquitectura Orientada a Servicios Alicia Maita Harold Martínez Esteban Reyes Verónica Betancout - SOA -
Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores.
Universidad Nacional de San Juan Facultad de Ciencias Exactas, Físicas y Naturales “WEB SERVICES” Integrantes: Ene Adriana Guevara Vanina Martínez Cintia.
Cambiando la manera de diseñar aplicaciones distribuidas Diseño orientado a las comunicaciones: Primero se diseña el protocolo de las comunicaciones y.
Manuel I. Capel Tuñón Ramón A. Carrasco González
Comunicaciones basadas en la web Cc52n 2005/1. Web-based communication Se basan en el esque ma cliente servidor que implementa la web usa protocolos web.
Contacta un Servlet o un JSP
MatchMaker A Framework to Support Collaborative Java Applications Jens Hardings P.
Borland User Group - Guatemala Introducción a WebServices y ejemplos de interoperabilidad entre Win32,.Net y Java Axel Canteo – Banco de Comercio Juan.
Construcción de Sistemas Colaborativos (Arquitectura y construcción)
Introducción a los Webservices. Contenidos Definición Definición Protocolos que hacen posible la existencia de los Webservices Protocolos que hacen posible.
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) LENGUAJES DE PROGRAMACIÓN PARA EL DESARROLLO DE INTERFACES.
Confidential // Neoris 1 Confidential // Do Not Reproduce without prior written permission from Neoris Servlets.
TEMA: SERVICIOS WEB INTEGRANTES DEL EQUIPO: CELESTE ROMANO PEDRO VELAZQUEZ PEDRO MONTESINOS.
DESARROLLO DE APLICACIONES PARA AMBIENTES DISTRIBUÍDOS ALUMNOS: MARIANA MIGNÓN RÉDING CARLOS ANTONIO CARRASCO MARTÍNEZ PROFESOR: DR. JOSÉ BERNARDO PARRA.
Presentación de la solución Junio Concepto ROUTING TIER ROUTING TIER FRONT END TIER FRONT END TIER COMM TIER COMM TIER TRANSLATE TIER TRANSLATE.
Guadalupe Andrade Mociño.  Significa Modelo Vista Controlador  Es un patrón de diseño  Esta compuesto por tres grandes capas: modelo, vista y controlador.
Your Logo ING. FREDY ALEXANDER MARTINEZ. Here comes your footer  Page 2 Este patrón fue descrito por primera vez por Trygve Reenskaug en 1979, y la implementación.
Servicios Web Conjunto de aplicaciones o de tecnologías con capacidad para interoperar en la Web. Estas aplicaciones o tecnologías intercambian datos entre.
Patrón de diseño BROKER
Notario electrónico Consejería de Justicia y Administración Pública Dirección General de Organización, Inspección y Calidad de los Servicios Antonio Pedro.
Servicios Web-SOA Aula: Fomento 05/06/2006 a 08/05/2006.
ENTERPRISE JAVA BEANS. ACCESO AL EJB EJB_HOME. Accesible mediante JNDI. Permite crear y destruir EJB. EJB_OBJECT Expone los métodos del negocio del EJB.
Java RMI. Entornos orientados a objetos  Tendencia actual hacia sistemas compuestos por un conjunto de objetos que interactúan entre sí.  Un programa.
Servicios Web XML 03 de Junio de 2004 Fernando Alonso Blázquez.
Transcripción de la presentación:

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

 MiddleWare creado por COLLIDE (COLlaborative Learning in Intelligent Distributed Environment)   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

 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

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

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

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();

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.

Web Services  Ejemplo de mensaje SOAP: <SOAP-ENV:Envelope xmlns:SOAP-ENV=" xmlns:xsi=" xmlns:xsd=" <ns1:getWeatherResponse xmlns:ns1="urn:examples:weatherservice" SOAP-ENV:encodingStyle=" 65

Web Services  Ejemplo de Web Service: API de Google    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: 

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.

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

Apache AXIS  Ejemplo de cliente (sin AXIS): public class CalcClient { public static void main (String[] args) throws Exception { String endpoint = " 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); }

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