Paradigmas/Modelos de SD (3)



Documentos relacionados
Modelos de los sistemas distribuidos. Jorge Iván Meza Martínez

5.1 Introducción a Servicios Web

Comunicación entre procesos

Especificación de la secuencia de mensajes que se han de intercambiar. Especificación del formato de los datos en los mensajes.

Sistemas de Información Introducción a los Sistemas de Información: El Modelo Cliente/Servidor

Arquitectura cliente/servidor

Arquitectura cliente/servidor

Patrones de Alto nivel: Patrones de Arquitectura Patrones de nivel medio: Patrones de Diseño Patrones de bajo nivel: Idioms

WebSphere es una familia de productos de software propietario de IBM

SERVICE ORIENTED ARCHITECTURE (SOA) CONTENIDO

Objetos Distribuidos - Componentes. Middleware

TEMA 5. Otras arquitecturas distribuidas II. Objetos distribuidos y CORBA

JAVA EE 5. Arquitectura, conceptos y ejemplos.

SISTEMAS DISTRIBUIDOS DE REDES 3.- ESTANDAR CORBA Características

4 ARQUITECTURA DE COMUNICACIONES

Tema 1: INTRODUCCIÓN A LOS SISTEMAS DISTRIBUIDOS Sistemas Distribuidos

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

La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la

Arquitectura de Software

Curso de Redes Computadores 1 Tema 3 Introducción a la capa de transporte. Interfaz de programación en redes. Sockets.

Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas:

PORTAL DE INTEGRACIÓN DE BANCOS DE INFORMACIÓN DISPERSOS A TRAVÉS DE WEB SERVICES Autor: Ing. Walther Antonioli Ravetto

Desarrollo y servicios web

Cliente/Servidor en Java

ARQUITECTURAS CLIENTE/SERVIDOR

La vida en un mundo centrado en la red

Introducción a SOA (II) Huibert Aalbers Senior Certified Software IT Architect

Arquitecturas cliente/servidor

GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo.

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

Service Oriented Architecture

Windows Server Windows Server 2003

Tema 1 Introducción. Arquitectura básica y Sistemas Operativos. Fundamentos de Informática

Sistemas Ubicuos 4. Descubrimiento de servicios

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

ARQUITECTURA DE DISTRIBUCIÓN DE DATOS

SIEWEB. La intranet corporativa de SIE

Modelo de Objetos Distribuidos

Comunicación Indirecta

Enterprise JavaBeans

2.1 Compuertas para Bases de Datos

Nombre del documento: Programa de Estudio de asignatura de Especialidad. Referencia a la Norma ISO 9001: Página 1 de 6

Arquitectura de Proyectos de IT

MACROPROCESO GESTIÓN TECNOLÓGICA

Tema 6: Comparativa CORBA/Servicios Web

PRACTICA CAPITULO 2 MODULO 1 PROTOCOLOS Y LA FUNCIONALIDAD DE LA CAPA DE APLICACIÓN

Web Services en Java. Taller de Programación. Instituto de Computación Facultad de Ingeniería Universidad de la República

1. Introducción 2. Historia 3. Características clave 4. Cuestiones de diseño

Capítulo 5. Cliente-Servidor.

Tema 1. Arquitectura Cliente/Servidor

SISTEMAS DE INFORMACIÓN II TEORÍA

Service Oriented Architecture: Con Biztalk?

Arquitectura de sistema de alta disponibilidad

Sistemas de Operación II

Unidad I Fundamentos de Sistemas Distribuidos. M.C. Juan Carlos Olivares Rojas

Capítulo 1. Componentes de CORBA.

Acoplamiento e interoperabilidad

INTRODUCCIÓN. El protocolo TCP, funciona en el nivel de transporte del modelo de referencia OSI, proporcionando un transporte fiable de datos.

Capítulo V. Implementación

1.264 Tema 16. Middleware heredado

QUE ES COMLINE MENSAJES? QUE TIPO DE MENSAJES PROCESA COMLINE MENSAJES?

Introducción a los Servicios Web. Ing. José Luis Bugarin ILUMINATIC SAC jbugarin@consultorjava.com

Capitulo I. Introducción

TEMA: PROTOCOLOS TCP/IP

Nivel aplicación Interacción Cliente Servidor. ELO322: Redes de Computadores Agustín J. González

CAPITULO 8. Planeamiento, Arquitectura e Implementación

Módulo 2 Comunicación

MARCANDO LA DIFERENCIA

4. Programación Paralela

INTRODUCCION. Tema: Protocolo de la Capa de aplicación. FTP HTTP. Autor: Julio Cesar Morejon Rios

Llamada a métodos remotos (RMI). Curso 04/05. Tema 9. Departament d Informàtica. Universitat de València. 1. Introducción 2

E-learning: E-learning:

Introducción. Sistemas Operativos. Pedro Chávez Lugo 23 de marzo de 2010

Estandar FIPA Foundation for Intelligent Physical Agents

La utilización de las diferentes aplicaciones o servicios de Internet se lleva a cabo respondiendo al llamado modelo cliente-servidor.

Introducción a las redes de computadores

Unidad 1: Conceptos generales de Sistemas Operativos.

M.T.I. Arturo López Saldiña

ESCUELA NORMAL PROF. CARLOS A CARRILLO

Estilos de Arquitectura y. Patrones de Diseño Arquitectónico. Patrones de Arquitectura

VISIÓN GENERAL HERRAMIENTAS COMERCIALES

LABORATORIO DE RC: PRÁCTICA 4: IMPLEMENTACIÓN DE UN CLIENTE DE CORREO

.NET y J2EE VALORACIÓN Y COMPARACIÓN DE LOS ELEMENTOS DE LAS DOS PLATAFORMAS. Definiciones...2 C# y Java...3 Similitudes...4 Ventajas...

WINDOWS : TERMINAL SERVER

Tema 1. Conceptos fundamentales de los Sistemas Operativos

Modelos de sistema - 2

Remote Method Invocation (RMI) de Java

TECNOLOGÍAS ASOCIADAS A LAS APLICACIONES WEB

Servicios Web con Java EE

Servicios Web con Java EE

Título: Optimización de Procesos de Negocio con SOA / BPM Nombre y Apellido: Mario Bolo bolo@ar.ibm.com Fecha: 15/08/2012

1. Definición de puerto 2. Sockets 3. Conceptos cliente/servidor 4. Definición de Stream 5. Concurrencia, multiprogramación y multitarea 6.

INFRAESTRUCTURA Y COMUNICACIONES DGA

Plataforma de Administración Electrónica de la Comunidad Autónoma de la Región de

Paradigma cliente-servidor

Transcripción:

Paradigmas/Modelos de SD (3) Sistemas Distribuidos I.T.I. Sistemas (2005-06) César Llamas Bello Universidad de Valladolid 1 Abstracciones, Paradigmas Abstraciones: ocultan detalles Paradigmas (Modelos): Patron, ejemplo. Level of abstraction high low Object space, collaborative applications Network services, object request broker, mobile agent Remote procedure call, remote method invocation Client-server, Message services peer-to-peer Message passing 2 1

Introducción El modelo arquitectónico describe: Interacciones entre componentes Enlace con la plataforma de red: simplifica y abstrae las funciones y roles de los componentes individuales El enfoque CDK es un poco confuso Seguiremos el enfoque de Liu, aunque veremos antes algún concepto interesante. 3 Íntroducción Modelos de requisitos no funcionales Modelo de interacción Modelo de fallo Modelo de seguridad 4 2

Capas de soft Servicios de la aplicación Middleware Sistema operativo Hardware Plataforma Componentes importantes: Plataforma Middleware 5 Capas de soft Plataforma Contiene los servicios propios de cada computadora concreta Depende del hardware y del S.O. 6 3

Middleware Permite enmascarar la heterogeneidad Puede dar un modelo y una interfaz de programación utilizable Puede soportar abstracciones como: Llamadas a procedimientos remotos (RPC) Comunicación en grupo (JXTA) Eventos, replicación, servicios multimedia, etc... (IBM MS, Lotus N. ) 7 Middleware Qué forma tiene el middleware? : Bibliotecas adicionales: Procedimientos remotos (RPC) Objetos remotos (RMI, CORBA, JXTA) Herramientas de programación Lenguajes de definición de interfaces (IDL) + Compiladores para ellos Servicios básicos de ayuda servicios de nombres, para buscar objetos de notificación de eventos, (WebSphere M. Broker) De control de transacciones, etc. 8 4

Qué limitaciones impone? Middleware Se incrementa la complejidad arquitectónica: Hay más niveles Hay que aprender más herramientas Se pierde el control de bajo nivel sobre los modos de fallo Se depende de terceras partes,... 9 Sistema de subastas públicas Ejemplo de aplicación Se inicia una sesión de subastas anunciando un objeto a subastar. Se admiten pujas Al final de la subasta, el subastador anuncia el resultado. 10 5

Paso de mensajes Partes: emisor y receptor, que intercambian roles. Cada mensaje pertenece a un catalogo de primitivas de un protocolo que comparten emisor y receptor. Las operaciones básicas son envía() y recibe() En caso de conexión hay también conecta() y desconecta() /* no confundir con primitivas del protocolo */ El API de socketsda soporte a este paradigma. 11 Cada interlocutor asume un rol: Cliente-Servidor El proceso servidor proporciona un servicio. El proceso cliente requiere el servicio: emite peticiones y espera respuestas del servicio. Estos roles vienen asignados en el protocolo. La sincronización es sencilla, al estilo de la invocación de un procedimiento De echo C-S es la base de RPC. Es la base de muchos servicios de red: HTTP, FTP, DNS, finger, gopher, smtp, 12 6

Cliente-Servidor Petición de servicio Proceso cliente Proceso servidor Servicio Host Servidor Hosts Clientes 13 Cliente-Servidor (ej.) Cada participante asume el papel de cliente y de servidor (aunque sobre interfaces diversas). Inicio subasta Puja Pujador Fin subasta Subastador Nueva puja Como cliente Como servidor Como cliente Como servidor 14 7

Peer-to-Peer Los procesos participantes juegan papeles iguales, con habilidades y responsabilidades equivalentes. Cada uno puede emitir y recibir peticiones, sobre la misma interfaz de interacción. C-S es más apropiado para servicios centralizados P2P es más apropiado para entornos colaborativos y conexiones punto a punto. 15 Ejemplo: Napster, para Peer-to-Peer intercambio de archivos. Utiliza el modelo C-S para directorio, y P2P entre usuarios. Se puede implementar sobre muchos tipos de plataforma, y además: JXTA y Jabber. Según Liu: subastador pujadores. Se parece sospechosamente a C-S. Pero mejor: pujadores comunicándose entre ellos las ofertas. Hay que buscar nuevos algoritmos 16 8

Sistemas basados en mensajes Elaboración del paradigma básico del paso de mensajes. PointtoPointMessageModel Publish/Subscribe Message Model Tablón de anuncios Receptor Servicio de mensajería Colas de mensajes Emisor 17 Receptor Servicio de mensajería Punto a punto Emisor Colas de mensajes propietarias Cada receptor tiene una cola propia. Liu se hace un lio El receptor puede fijar una política de acceso: urgencia, interés, 18 9

Receptor Servicio de mensajería Publish/Subscribe Emisor Colas de mensajes con nombre Cada cola de mensaje se crea con un nombre para cierto fin. Los receptores registran su interés en las colas de mensajes, que reciben eventos de notificación de cambios. Es un modelo de multicast basado en tablón de anuncios. 19 Ej. Subastas: Pub/subs El subastador crea una subasta (cola de mensajes) y registra su interés en cierto tipo de evento: nueva puja Los pujadores registran su interés en cierto tipo de evento de la subasta: En este caso apertura de pujas, cierre de pujas y nueva puja Cada vez que se incluye un mensaje, en la cola se envía un evento de nueva puja. 20 10

Mensajería Los middleware suelen permitir diversos modelos, incluyendo el síncrono. Suelen ciertos servicios que deben estar activos en los sistemas participantes. Java Messaging service es un ejemplo de servicio de mensajería. Otros conocidos son IBM MQ series y MS MQ. Todos ellos se asientan sobre servicios de notificación de mensajes. 21 RPC Lleva el modelo cliente-servidor al nivel de programación, donde se basa en el mecanismo de invocación de procedimientos locales. Aquí el detalle está en que: El código del procedimiento reside en otra máquina y reside en el contexto de ejecución de otro proceso. Es un modelo orientado a acciones, más que orientado a datos. 22 11

cliente servidor RPC var = proc (args ) thread El middleware de RPC se encarga de empaquetar y desempaquetar los argumentos y el valor devuelto. También se ocupa de la red y de cumplir con el modelo síncrono de invocación de procedimiento. 23 /* programa principal */ bla; bla; bla; var = proc(3, 27); bla; bla; /* procedimiento suplente */ intproc(inta, intb) { /* empaqueta a y b */ /* pide al servidor que ejecute proc en el servidor, a través de la red */ /* espera respuesta */ /* desempaqueta el resultado */ return resultado; } despachador Crea un hilo sirviente Desempaqueta argumentos /* auténtico procedimiento */ intproc(inta, intb) { bla; bla; } Empaqueta resultados 24 12

Estándares: RPC El original es Sun RPC (1982) ONC RPC adoptó el estándar de Sun. Apollodomain, HP, DCE RPC (de Open Group) Una última versión es XML-RPC que ha evolucionado en SOAP (Simple Object Access Protocol) Ejemplo: El servidor ofrece una interfaz con registro y pujas. Los clientes ofrecen una interfaz con: anuncio de subasta, nueva puja, fin de sesión. Ver (D.14) 25 Objetos distribuidos Los objetos reciben mensajes, que disparan métodos de servicio. Existen dos aproximaciones: Invocación de métodos remotos, sobre objetos remotos. (RMI) Invocación de métodos remotos sobre un agente intermediario de objetos. (ORB) (mediador de objetos) 26 13

RMI Invocación de métodos remotos (lo veremos más adelante). Cada clase define un servicio Los procesos pueden manejar referencias remotas a objetos remotos. El ejemplo es muy similar al caso de antes. 27 ORB Los ORB actúan como buses de mediación que: Implementan el mecanismo de direccionamiento de objetos Dan aspecto de objetos a los procesos conectados a él. Permite conectar objetos de servicio en lenguajes muy diversos (Fortran, Cobol, C, ) Y unifican dicho aspecto bajo un : protocolo de mediación. CORBA (de OMG) sigue esta aproximación (cap. 10). Existen puentes RMI-CORBA (bajo IIOP) 28 14

Componentes Objetos componentes (?) Surge un componente cuando El propio software se convierte en clase, se le dota de cierta interfaz y un un ciclo de existencia. De esta forma se convierte en un artefacto utilizable. Componentes distribuidos viviendo en su servidor de aplicaciones. Ejemplos: DCOM, Enterprise Java Beans, WebServices 29 Espacios de objetos Generalización de los espacios de tuplas (LINDA) Una implementación es JavaSpaces, que es la base de JINI (suena como Genie) Un espacio de objetos es una entidad común a un conjunto de procesos distribuidos, con primitivas para: Depositar objetos (en principio JavaBeans) Leer objetos Tomar objetos Establecer eventos de notificación sobre cambios en objetos. 30 15

Espacios de objetos El espacio de objetos se convierte en: Un canal de comunicación entre procesos. Un mecanismo de sincronización entre procesos.."جن "jinni Genie is the English term for the Arabic In pre-islamic Arabian mythology and in Islam, a jinni (also "djinni" or "djini") is a member of the jinn (or "djinn"), a race of creatures. The word "jinn" literally means anything which has the connotation of concealment, invisibility, seclusion and remoteness. 31 Espacios de objetos Tiene un aspecto similar a un bulletin board, en cuanto a que permite un multicast efectivo. Pero la interfaz es mucho más flexible 32 16

Agentes móviles Migración de procesos. Exige plataformas compatibles en ejecución. Cada entorno de ejecución es diferente Los agentes toman ventaja de este entorno y reducen las comunicaciones. También realizan tareas de seguridad Y plantean problemas de seguridad. 33 Servicios de red Federaciones de servicios de red: Servicio de nombres básico (paginas blancas) Servicio de paginas amarillas Servicio de adherencia a la federación. Es una implementación de sistemas basados en agentes. Ejemplos: WSDP y JINI 34 17

Groupware Aproximación muy especializada. Aproximación basada en mensajes todos con todos. Lotus Quickplace Aproximación de whiteboard Tablero de dibujo común Blackboard??? SMART, Netmeeting 35 Middleware Pros y Cons (véase D.9) Abstraction vs. Overhead (sobrecarga) Runtime support tiempo extra y recursos extra. Scalability Es más simple con aprox. Más abstractas. Platform independency Ej. Java RMI vs CORBA vs DCOM vs.net 36 18

Elegir una herramienta visto desde S.E. Puntos de interés Madurez y estabilidad de la herramienta Tolerancia a fallos provista por la herramienta Disponibilidad de las herramientas de desarrollo Mantenibilidad Reutilización de código..y Facilidad de aprendizaje y Gestionabilidad del proceso generado. 37 Modelos vistos Paso de mensajes Cliente servidor P2P Sistemas de mensajes RPC y RMI Espacios de objetos Agentes móviles Servicios de Red Aplicaciones colaborativas. Trade-offs Resumen 38 19