MIDDLEWARE: Arquitectura para Aplicaciones Distribuidas Dr. Víctor J. Sosa Sosa

Documentos relacionados
Middleware: Evolución en el desarrollo de aplicaciones distribuidas. Contenido

MIDDLEWARE: Arquitectura para Aplicaciones Distribuidas Dr. Víctor J. Sosa Sosa

Comunicación entre procesos

Una arquitectura de componentes provee, desde el punto de vista de un. sistema computacional, la definición de las partes esenciales del proceso de

Capitulo 3. Remote Method Invocation: RMI

TEMA 1. Introducción a las arquitecturas distribuidas

Sistemas Distribuidos Orientados a Objetos

APLICACIONES DE INTERNET: SOAP

Descripción de Servicios

Introducción a Web Services

Servicios Telemáticos Avanzados 4º Grado en Ingeniería en Tecnologías de Telecomunicación Especialidad de Telemática

Tema VI. Servicios Web I. Introducción

Invocación remota de métodos. Jorge Iván Meza Martínez

TEMA 5. Otras arquitecturas distribuidas III. Otros entornos de objetos distribuidos

Programación Web Tema 1: Arquitectura C / S

PROGRAMACION DISTRIBUIDA

Tema 1: Introducción a los Sistemas Distribuidos. Sistemas Distribuidos Marcos López Sanz [Curso ]

Aspectos pragmáticos de los lenguajes de programación

Tema 3.1: Introducción a Servicios Web

Implementación de Componentes

Fundamentos de CORBA

Fecha de elaboración: 25/05/2010 Fecha de última actualización: 17/06/2010. F1182 Aplicaciones distribuidas 1/8

SOA: Panorama WEB-SERVICES

Java RMI. Sistemas distribuidos

Antecedentes de REST: sockets, RPC, SOAP, WSDL

Sistemas Informáticos Industriales

Objetos Distribuidos

ARQUITECTURAS DE SOFTWARE

Tecnología de objetos distribuidos y arquitectura de componentes. Índice. Bibliografía. Introducción. Tema V

PROCESAMIENTO DISTRIBUIDO

Computación cliente/servidor

3 ALTERNATIVAS DE SOLUCIÓN

Especialista en Aplicaciones distribuidas en Java con Tecnología RMI

BROKER Publicador Suscriptor. Jonnathan Corredor Lorena Arrieta Alejandro Mosquera

servicios. El API es definido al nivel de código fuente y proporciona el nivel de

Cambios en Ingeniería de Software

PATRONES DE DISEÑO FRAMEWORKS

Introducción a los Servicios Web

RMI. Aplicaciones Distribuidas

Introducción a Sistemas Peer to Peer

Grado en Ingeniería del Software

Tema 1: Introducción a las tecnologías de integración de aplicaciones

5.1 Introducción a Servicios Web

IMPLEMENTACIÓN DE INTEGRACIÓN DE SISTEMAS HEREDADOS UTILIZANDO WEB SERVICES

Tecnología Cliente Servidor con Arquitectura Corba. Sistema de una Empresa Telefónica

Henry Tenorio Guzmán A76456

Web Services. Profs. María Feldgen y Osvaldo Clúa. (Profesores María Feldgen y Osvaldo Clúa) 1: Sistemas Distribuidos

El Modelo de Integración basado en Servicios

WBEM WEB-BASED BASED ENTERPRISE MANAGEMENT. Gestión de Redes de Telecomunicaciones. I.E.. Esp. Alejandro Toledo Tovar

Fecha de elaboración: 28 de mayo de 2010 Fecha de última actualización: 17 de Junio de 2010

Capítulo 7: Introducción a la dinámica de servicios Web

Arquitectura cliente/servidor

INFORMATICA III. Cap. I: Plataformas

CARTA DESCRIPTIVA (FORMATO MODELO EDUCATIVO UACJ VISIÓN 2020)

Tema 1: Principios de Java

Tema 1: Introducción a las tecnologías

UNIVERSIDAD RICARDO PALMA FACULTAD DE INGENIERÍA

Introducción a los sistemas distribuidos. Jorge Iván Meza Martínez

Integrando telefonía IP. con una aplicación de. gestión de tiempos

AVANCE TECNOLÓGICO EXIGENCIAS DE LA EMPRESA ENTORNO GENERAL

RMI: Invocación de método remoto

Objetos Distribuidos - Componentes. Middleware

SISTEMAS DISTRIBUIDOS MÓDULO 9. Web Services en Sistemas Distribuidos. Arquitectura Orientada a Servicios

Introducción a Web Services. Taller de Programación 2017

Facultad de Ingeniería Industrial y de Sistemas v1.0 MA781U PROCESOS DISTRIBUIDOS

ARQUITECTURAS. Carlos Reveco D. IN73J Arquitectura, Diseño y Construcción de un Negocio con Apoyo TI.

Tema 1: Patrones Arquitectónicos

Arquitectura de Software para la Distribución, Administración de Objetos y Componentes (ASDAOC)

Sistemas Distribuidos. Prog. Distribuida bajo Internet

1 Introducción a los sistemas distribuidos

Tema 1: Introducción a las tecnologías de integración de aplicaciones

Enterprise Java Beans. JBoss AS. Ronier Rodríguez

DISEÑO E IMPLEMENTACIÓN DE APLICACIONES EMPRESARIALES CON MOVILIDAD.

1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio).

Sistemas Distribuidos

SISTEMAS DISTRIBUIDOS MÓDULO 9

Desarrollo de un framework para Grid Computing usando tecnología Open Source

Bases de Datos en Internet Agenda

MODULO I. Ingeniería de Software INF SERVICIOS WEB. Resumen preparado por Miguel Cotaña

Sistemas Distribuidos

TECNOLOGIAS PARA LA INTEGRACION DE SOLUCIONES. Facultad de Estadística e Informática

DESPLIEGUE DE UNA NUBE DE COMPUTACIÓN PRIVADA OPENSTACK EN UN ENTORNO ACADÉMICO

Desarrollo y servicios web

Sistemas Distribuidos. Soporte de Sistemas Operativos

Arquitectura de Software

Diagrama de despliegue

Sistemas de Información

APLICACIONES MÓVILES NATIVAS. Sesión 6: Programación móvil en java y android

Protocolos Arquitectura TCP/IP

JAVA EE 5. Arquitectura, conceptos y ejemplos.

Protocolos Arquitectura TCP/IP

Carlos A. Olarte BDII. CORBA Una arquitectura para integrar ambientes distribuidos y

IFCD0210 Desarrollo de Aplicaciones con Tecnologías Web

Computación 1. Roles en la interconexión

1 o GII. Universidad de Murcia Facultad de Informática. Calendario de Exámenes 2018 Convocatoria de junio

Arquitectura tecnológica de la empresa

Capítulo III: JGTel. JGTel es un prototipo el cual permite comunicar a un usuario de computadora con

Retos del cómputo moderno Distribuido, paralelo e integrado

Transcripción:

MIDDLEWARE: Arquitectura para Aplicaciones Distribuidas Dr. Víctor J. Sosa Sosa vjsosa@tamps.cinvestav.mx Contenido Middleware: Introducción Definición Genealogía Ambientes distribuidos: Servicios Web Computación Ubicua Grid Computing Integración de Aplicaciones Conclusiones 1

Middleware:Definición Software de conectividad que consiste en un conjunto de servicios que permiten interactuar a múltiples procesos que se ejecutan en distintas máquinas a través de una red. Ocultan la heterogeneidad, abstrae la complejidad subyacente y proveen de un modelo de programación conveniente para los desarrolladores de aplicaciones. La organización IETF (Internet Engineering Task Force) en mayo de 1997 lo definió como sigue: Un Middleware puede ser visto como un conjunto de servicios y funciones reutilizables, expandibles, que son comúnmente utilizadas por muchas aplicaciones para funcionar bien dentro de un ambiente interconectado. Es un software que puede incrementar significativamente la reusabilidad mediante soluciones utilizables rápidamente y basadas en estándares aplicables a problemas y tareas comunes en programación. Permite concentrarse en asuntos propios de la aplicación y olvidarse de problemas comunes, estructurales o no, ya resueltos previamente de forma elegante y satisfactoria. 3 Middleware: Características Resumen de características Independiza el servicio de su implantación, del sistema operativo y de los protocolos de comunicaciones. Permite la convivencia de distintos servicios en un mismo sistema. Permite la transparencia en el sistema. En general pueden ser vistos como Abstracción de programación Infraestructura 2

Middleware: Ejemplos Ejemplos de middleware para dominios específicos incluyen: ODBC/JDBC, para bases de datos, Lotus para groupware, HTTP y SSL para la Web, CORBA, DCOM y JAVA RMI para objetos distribuidos. No todos los Middleware son iguales. e.g.: CORBA y Sockets TCP/IP. Mientras que los Sockets no ofrecen control de tipos ni homogeneización de arquitecturas, CORBA, DCOM, etc., ofrecen estas posibilidades. 5 Middleware: Genealogía en las Aplicaciones Distribuidas 6 3

Middleware: Abstracción Middlewares Servicios Web DCOM CORBA RMI RPC Sockets Tiempo Sockets Constituye la interfaz de programación de la capa de transporte. Es un mecanismo de comunicación bidireccional El más ampliamente usado Nacieron con la familia de protocolos TCP/IP Existe prácticamente en cualquier plataforma de computación Aplicación Presentación Sesión Transporte Red Enlace Física Aplicación Presentación Sesión Transporte Red Enlace Física 8 4

Remote Procedure Call (RPC) Rutina Llamante Main(){ Argumentos some code;... call rpc(a,b,c);... más código; Stub } Cliente Petición Proceso Cliente Red Resultados send((x=a, y=b), rpc) receive(c=z, rpc) Respuesta Argumentos Petición Rutina Llamada Procedure rpc(x,y,z){ código Stub que usa x,y;... Servidor return(z=result); } Respuesta Red Resultados Proceso Servidor receive(x,y,invocador) send(z,invocador) 9 Remote Method Invocation (RMI) Permite la invocación remota de métodos en objetos que residen en diferentes máquinas virtuales Permite la invocación de métodos remotos por Applets Integra el Modelo de Objetos Distribuidos al lenguaje Java de modo natural, preservando en lo posible la semántica de objetos en Java Permite la distinción entre objetos locales y remotos Permite diferentes semánticas en las referencias a objetos remotos: no persistentes (vivas), persistentes, de activación lenta Facilita el desarrollo de aplicaciones distribuidas 10 5

Remote Method Invocation (RMI) Petición Invocación remota Invocación local C Invocación local E Un objeto remoto es aquel capaz de recibir RMIs (B, F) Invocación remota Modelo de Objetos Distribuidos A Respuesta B Invocación local Una interfaz remota especifica los métodos que pueden ser invocados remotamente D Interfaz Remota m1 m2 m3 Objeto Remoto Datos Implementación de métodos F m4 m5 m6 11 Common Object Request Broker Architecture (CORBA) Cliente Implementación del Objeto Repositorio de Interfaces (IR) Invocación Dinámica de Interfaces (DII) IDL Stubs Interface ORB Invocación Dinámica Skeleton (DSI) IDL Skeleton Adaptador de Objetos ORB CORBA proporciona una infraestructura de comunicaciones para la colaboración entre objetos heterogéneos distribuidos 12 6

Procesa las definiciones en IDL para generar Stubs Repositorio de Interfaces CORBA: Compilación Definiciones IDL Precompilador Skeletons Compilador Código de Implementación Stubs del Cliente Skeletons del Servidor Implementación del Objeto Repositorio de Implementación Cliente Servidor DISTRIBUTED COMPONENT OBJECT MODEL (DCOM) DCOM permite llamadas a los objetos remotos Soporta interfaces múltiples escritas en un lenguaje IDL similar a C++ El protocolo de intercambio de información es el Object Remote Procedure Call (ORPC) Ventajas: DCOM permite el uso de varios lenguajes de programación DCOM soporta recolección distribuida de basura Inconvenientes: Muy ligado a los sistemas operativos de Microsoft, aunque existen implementaciones para Unix, y Apple Macintosh 14 7

Servicios Web: Genealogía 15 Servicios Web: Definiciones Componente de software reutilizable y distribuido que ofrece una funcionalidad concreta, independiente tanto del lenguaje de programación en que está implementado como de la plataforma de ejecución Aplicaciones auto-contenidas que pueden ser descritas, publicadas, localizadas e invocadas sobre la Internet (o cualquier otra red) 16 8

Servicios Web: Invocación básica (I) 2.- El servicio K en el servidor A Servidor UDDI 1.- Qué servicio Web puede hacer X? 3.- Cómo te invoco servicio K? 4.- Revisa esto: WSDL Servidor A 5.- Invoca operación X < SOAP > 6.- Resultado de la operación X < SOAP > Cliente 17 Servicios Web: Invocación básica (II) Servidor Contenedor de Web Services Implementación del Servicio 4 3 Stub Servidor 2 5 Stub Cliente 6 1 Aplicación Cliente Cliente WSDL int operacionx(int a, int b) int operaciony(int c, int d) 18 9

Servicios Web: Plataformas Microsoft.NET 19 Servicios Web: Plataformas Java 2EE 20 10

Middleware para Computación Ubicua Esta propuesta se ha posicionado como la tercera generación o paradigma en la computación 1a. Generación : Una computadora, muchas personas 2a. Generación : Una computadora, una persona 3a. Generación : Muchas computadoras, una persona La computación ubicua nos lleva al incremento en el uso de sistemas de cómputo a través del ambiente físico, haciéndolos disponibles y a la vez invisibles al usuario. 21 Mainframes Generaciones: PCs Computación Ubicua 22 11

Computación Ubicua: Automóviles Dispositivos de múltiple propósitos Interfaces Operaciones concurrentes Computadoras (bus local e internet) Wireless corto alcance (llaves) y área amplia (Celular) Sistemas de seguridad Funciones personalizadas (no pc) 23 Computación Ubicua: Hogar Teléfonos móviles Transmisión de información Computadoras vía líneas de potencia e Aparatos de entretenimiento inalámbricas Control de puertas y ventanas Sistemas de aire acondicionado y calefacción Dispositivos domésticos Sistemas de seguridad 24 12

Computación Ubicua: Personales Teléfonos móviles y tradicionales Localizadores Fax Computadoras Video grabadoras Consolas de juegos Cámaras digitales Grabadores de música y video Tecnologías GPRS y UMTS. Sistemas de localización GPS 25 Middleware para Computación Distribuida (Grid Computing) Una Grid es una colección de máquinas, algunas veces referidas como nodos, recursos, miembros, donadores, clientes, hosts, motores, y muchos otros términos. Todos contribuyen a que cualquier combinación de recursos en el Grid se visualicen como un todo. Algunos recursos pueden ser usados por todos los usuarios del Grid mientras que otros pueden tener restricciones específicas 26 13

Grid Computing La Grid virtualiza recursos heterogéneos dispersos geográficamente 27 Grid Computing: Abstracción 14

Grid Computing: E-Ciencia 15

Middleware en Integración de Aplicaciones Empresariales (EAI) La EAI (Enterprise Application Integration) representa un paso en la evolución de los middleware abordando aspectos de integración. En arquitecturas de 3-niveles se facilita la integración de gestores de recursos diferentes, desarrollando la lógica de la nueva aplicación en el middleware. La funcionalidad resultante puede ser expuesta como un nuevo servicio, que puede ser integrado por servicios de más alto nivel, y así sucesivamente. Integración con el Uso de brokers de mensajes 16

Sistemas de Flujo de Trabajo Son útiles para gestionar el direccionamiento de la información, pero no soportan la heterogeneidad de las aplicaciones. Permiten expresar la lógica de la aplicación de forma explícita y expresada en un lenguaje de alto nivel (normalmente gráfico). EAI = Sistema de Flujo de Trabajo + Brokers de mensajes 17

Middlewares: Ejemplos en Cinvestav-Tamps Middleware Integrador de Fuentes de Datos Heterogéneas BD CSV XML Middlewares: Ejemplos en Cinvestav-Tamps Middleware para Almacenamiento Externo en Dispositivos Móviles 18

Cometarios Finales La necesidad de crear ciclos de desarrollo de software más rápidos, disminuyendo el esfuerzo e incrementando la reutilización del software, son las motivaciones principales para la creación y uso de los middlewares y las arquitecturas basadas en middlewares. Cuando los middlewares se implementan adecuadamente: Protegen a los desarrolladores de software del trabajo tedioso, propenso a errores y de los detalles de la plataforma, por ejemplo, la programación a nivel del sockets. Amortizan los costos del ciclo de vida del software mediante aprovechar la experiencia puesta en desarrollos previos e implementaciones con patrones de diseño que son reutilizables, evitando construirlos manualmente para cada uso. Cometarios Finales Proporcionan un conjunto consistente de abstracciones de alto nivel orientadas a la red que son más cercanas a los requerimientos de la aplicación con el fin de simplificar el desarrollo de sistemas distribuidos y embebidos. Proveen de una amplia gama de servicios orientados al desarrollador que están listos para ser utilizados y son reutilizables, tales como, los servicios de nombrado, logging y seguridad que son necesarios para operar efectivamente en un ambiente de interconectado. No olvidar considerar que su mal uso se traduce en ineficiencia, ya que ocupan más capas de software. 19

Gracias por su atención! Preguntas? Dr. Víctor J. Sosa Sosa vjsosa@tamps.cinvestav.mx 20