23

Contenidofpech/sd/files/Middleware... · 3 Introducción 4 Middleware Software de conectividad que consiste en un conjunto de servicios que permiten interactuar a múltiples procesos

Embed Size (px)

Citation preview

Page 1: Contenidofpech/sd/files/Middleware... · 3 Introducción 4 Middleware Software de conectividad que consiste en un conjunto de servicios que permiten interactuar a múltiples procesos

1

Middleware: Evolución en el desarrollo de aplicaciones

distribuidas

2

ContenidoContenido

Introducción

Middleware

� Introducción

� Evolución en el desarrollo de

aplicaciones distribuidas

Servicios Web

Grid Computing

Fernando Pech May

Fernando Pech May

Page 2: Contenidofpech/sd/files/Middleware... · 3 Introducción 4 Middleware Software de conectividad que consiste en un conjunto de servicios que permiten interactuar a múltiples procesos

3

IntroducciIntroduccióónn

4

Middleware� 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 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”.

Page 3: Contenidofpech/sd/files/Middleware... · 3 Introducción 4 Middleware Software de conectividad que consiste en un conjunto de servicios que permiten interactuar a múltiples procesos

5

� El lugar donde normalmente ubicamos a los Midllewares, así

como el tipo de servicios que éstos ofrecen, varía según la

perspectiva de quien los utiliza. Por ejemplo:

� los desarrolladores de aplicaciones distribuidas suelen ubicar al

Middleware como la capa de software que se encuentra justo debajo

de la interfaz de programación de aplicaciones (API por sus siglas en

inglés).

�los especialistas de redes de interconexión se refieren al

Middleware como todo aquello que se encuentra por encima de IP.

�los que trabajan con aplicaciones, herramientas y mecanismos que

se encuentran entre estos dos extremos, clasifican a los Middlewares

como: Middlewares específicos de la aplicación (alto nivel);

Middlewares medios o los que se consideran genéricos, y

Middlewares específicos de los recursos (bajo nivel).

Middleware

6

� Lo anterior refleja que los Middlewares se extienden más allá de la red y pueden abarcar recursos para procesamiento, almacenamientoy cualquier otro elemento que esté conectado a la red.

� No todos los Middleware son iguales. Ejemplos: CORBA y SocketsTCP/IP.– Mientras que los Sockets no ofrecen control de tipos ni homogeneización

de arquitecturas, CORBA, DCOM, etc., ofrecen estas posibilidades.

� En la actualidad se cuenta con muchos productos y estándares Middlewares que dan soporte a los sistemas orientados a objetos:– DCOM (Distributed Component Object Model )

– CORBA (Common Object Request Broker Architecture)

– Java RMI

– Web Services (XML)

– RM-ODP (Modelos de referencia para procesamiento distribuido abierto del ISO/ITU-T)

Middleware

Page 4: Contenidofpech/sd/files/Middleware... · 3 Introducción 4 Middleware Software de conectividad que consiste en un conjunto de servicios que permiten interactuar a múltiples procesos

7

Middleware

� 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

8

Genealogía

del Middleware

Page 5: Contenidofpech/sd/files/Middleware... · 3 Introducción 4 Middleware Software de conectividad que consiste en un conjunto de servicios que permiten interactuar a múltiples procesos

9

Middlewares

Evolución Aplicaciones Distribuidas

Tiempo

Sockets

RPC

DCOM CORBA RMI

Servicios

Web

10

Evolución de Aplicaciones Evolución de Aplicaciones

DistribuidasDistribuidas

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

Page 6: Contenidofpech/sd/files/Middleware... · 3 Introducción 4 Middleware Software de conectividad que consiste en un conjunto de servicios que permiten interactuar a múltiples procesos

11

Evolución de Aplicaciones Evolución de Aplicaciones

DistribuidasDistribuidas

Remote Procedure Call (RPC)

• Creado por Bireel & Nelson en 1984

• Permiten a los programas llamar procedimientos

localizados en otras máquinas

• Un proceso X en una máquina A, puede llamar a

un procedimiento localizado en una máquina B

• Información puede llevarse del proceso

invocador al invocado dentro de los parámetros

• Ningún mensaje u operación de E/S es visible

para el programador

12

Evolución de Aplicaciones Evolución de Aplicaciones

DistribuidasDistribuidas

Rutina

LlamanteRutina

Llamada

Stub

ClienteStub

Servidor

Red Red

ArgumentosResultados

Petición Petición

ArgumentosResultados

RespuestaRespuesta

Modo de operación

Proceso Cliente

Main(){

some code;

...

call rpc(a,b,c);

...

más código;

}

send((x=a, y=b), rpc)

receive(c=z, rpc)

Proceso Servidor

Procedure rpc(x,y,z){

código que usa x,y;

...

return(z=result);

}

receive(x,y,invocador)

send(z,invocador)

Page 7: Contenidofpech/sd/files/Middleware... · 3 Introducción 4 Middleware Software de conectividad que consiste en un conjunto de servicios que permiten interactuar a múltiples procesos

13

Evolución de Aplicaciones Evolución de Aplicaciones

DistribuidasDistribuidas

REMOTE METHOD INVOCATION (RMI)REMOTE METHOD INVOCATION (RMI)REMOTE METHOD INVOCATION (RMI)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

14

Evolución de Aplicaciones Evolución de Aplicaciones

DistribuidasDistribuidas

Modelo de Objetos DistribuidosModelo de Objetos DistribuidosModelo de Objetos DistribuidosModelo de Objetos Distribuidos

A FB

C

D

EInvocación

local

Invocación

local

Invocación

localInvocación

remota

Invocación

remota

Petición

Respuesta

Un objeto remoto es aquel

capaz de recibir RMIs (B, F)

Objeto Remoto

Datos

Implementación

de métodos

m1

m2

m3

m4

m5m6

Interfaz Remota

Una interfaz remota especifica los

métodos que pueden ser invocados

remotamente

Page 8: Contenidofpech/sd/files/Middleware... · 3 Introducción 4 Middleware Software de conectividad que consiste en un conjunto de servicios que permiten interactuar a múltiples procesos

15

Evolución de Aplicaciones Evolución de Aplicaciones

DistribuidasDistribuidas

Common Object Request Broker Architecture(CORBA)

• En 1989 se conforma el Grupo de Administración de

Objetos (OMG - Object Management Group) para

coordinar las especificaciones para cómputo

distribuido independiente de plataforma y lenguaje

• CORBA es una solución basada en un modelo

abierto propuesto por OMG

•Se basa en el protocolo Internet InterORB (IIOP) de

comunicación entre ORB

•Object Request Broker (ORB) son los gestores de

mensajes entre las distintas capas del sistema

16

Evolución de Aplicaciones Evolución de Aplicaciones

DistribuidasDistribuidas

Arquitectura de CORBA

CORBA proporciona una infraestructura de comunicaciones para

la colaboración entre objetos heterogéneos distribuidos

CORBA simplifica la interoperabilidad entre aplicaciones, así como

también proporciona las bases para la colaboración entre objetos

distribuidos

Cliente Implementación del Objeto

Repositorio de

Interfaces (IR)

Invocación

Dinámica de

Interfaces

(DII)

IDL

Stubs

Interface

ORB

Adaptador

de

Objetos

Invocación

Dinámica

Skeleton

(DSI)

IDL

Skeleton

ORB

Page 9: Contenidofpech/sd/files/Middleware... · 3 Introducción 4 Middleware Software de conectividad que consiste en un conjunto de servicios que permiten interactuar a múltiples procesos

17

Evolución de Aplicaciones Evolución de Aplicaciones

DistribuidasDistribuidas

Procesamiento de definiciones IDL para generar StubsDefiniciones IDL

Precompilador

Skeletons

Código de

Implementación

Repositorio

de

Interfaces

Repositorio

de

Implementación

Stubs

del

Cliente

Skeletons

del

Servidor

Stubs del

Cliente

Stubs del

Cliente

Compilador

Implementación

del

Objeto

18

Evolución de Aplicaciones Evolución de Aplicaciones

DistribuidasDistribuidas

CORBACORBACORBACORBA

•VentajasVentajasVentajasVentajas::::

Clientes y servidores pueden estar escritos en cualquier lenguaje gracias al alto grado de abstracción del lenguaje de definición de interface (Interface Definition Language,IDL)

Alto rendimiento

• InconvenientesInconvenientesInconvenientesInconvenientes::::

Escribir aplicaciones distribuidas con CORBA no es trivial.

La especificación CORBA es muy pesada y los fabricantes han implementado un subconjunto.

Problemas de compatibilidad entre los ORB’s.

Page 10: Contenidofpech/sd/files/Middleware... · 3 Introducción 4 Middleware Software de conectividad que consiste en un conjunto de servicios que permiten interactuar a múltiples procesos

19

Evolución de Aplicaciones Evolución de Aplicaciones

DistribuidasDistribuidas

DISTRIBUTED COMPONENT OBJECT MODEL (DCOM)DISTRIBUTED COMPONENT OBJECT MODEL (DCOM)DISTRIBUTED COMPONENT OBJECT MODEL (DCOM)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)”

VentajasVentajasVentajasVentajas::::

• DCOM permite el uso de varios lenguajes de programación

• DCOM soporta recolección distribuida de basura

InconvenientesInconvenientesInconvenientesInconvenientes::::

• Muy ligado a los sistemas operativos de Microsoft, aunqueexisten implementaciones para Unix, y Apple Macintosh

20

Servicios Servicios WebWeb

Page 11: Contenidofpech/sd/files/Middleware... · 3 Introducción 4 Middleware Software de conectividad que consiste en un conjunto de servicios que permiten interactuar a múltiples procesos

21

Antecedente: Aplicaciones Web

22

Servicios WebServicios Web

DefinicionesDefinicionesDefinicionesDefiniciones

• 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 self-contained que pueden ser

descritas, publicadas, localizadas e invocadas sobre

la Internet (o cualquier otra red)

Page 12: Contenidofpech/sd/files/Middleware... · 3 Introducción 4 Middleware Software de conectividad que consiste en un conjunto de servicios que permiten interactuar a múltiples procesos

23

Servicios WebServicios Web

Arquitectura Orientada a Servicios (SOA)Arquitectura Orientada a Servicios (SOA)Arquitectura Orientada a Servicios (SOA)Arquitectura Orientada a Servicios (SOA)

Proveedor de Proveedor de Proveedor de Proveedor de ServiciosServiciosServiciosServicios

Registro de Registro de Registro de Registro de ServiciosServiciosServiciosServicios

Solicitante del Solicitante del Solicitante del Solicitante del ServicioServicioServicioServicio

Publicar

Localizar

Invocar

Descripción

del servicio

Descripción

del servicio

24

1.- ¿Qué

servicio Web

puede hacer X?

2.- El servicio K

en el servidor AServidor UDDI

3.- ¿Cómo te invoco

servicio K?

4.- Revisa

esto: WSDL

5.- Invoca

operación X

< SOAP >

6.- Resultado de

la operación X

< SOAP >

Servidor A

Cliente

Web Services: Invocación básica (I)

Page 13: Contenidofpech/sd/files/Middleware... · 3 Introducción 4 Middleware Software de conectividad que consiste en un conjunto de servicios que permiten interactuar a múltiples procesos

25

Web Services: Invocación básica (II)

Stub

Cliente

Aplicación

Cliente

Implementación

del Servicio

1

6

Stub

Servidor

3

4

WSDL

int operacionX(int a, int b)

int operacionY(int c, int d)

Contenedor de Web Services

Servidor

2

5

Cliente

26

Plataformas de Plataformas de

Desarrollo para Desarrollo para

Servicios WebServicios WebMicrosoft .NET

Page 14: Contenidofpech/sd/files/Middleware... · 3 Introducción 4 Middleware Software de conectividad que consiste en un conjunto de servicios que permiten interactuar a múltiples procesos

27

Plataformas de Plataformas de

Desarrollo para Desarrollo para

Servicios WebServicios WebJava 2EE

28

¿¿Hacia dHacia dóónde vamos ?nde vamos ?

UbiquitousUbiquitous ComputingComputing

GridGrid ComputingComputing

Page 15: Contenidofpech/sd/files/Middleware... · 3 Introducción 4 Middleware Software de conectividad que consiste en un conjunto de servicios que permiten interactuar a múltiples procesos

29

Ubiquitous Computing

30

UbiquitousUbiquitousUbiquitousUbiquitous ComputingComputingComputingComputing

¿¿Hacia dHacia dóónde vamos ?nde vamos ?

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”3a. Generación : “Muchas computadoras, una persona”

El Ubiquitous computing 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.

Page 16: Contenidofpech/sd/files/Middleware... · 3 Introducción 4 Middleware Software de conectividad que consiste en un conjunto de servicios que permiten interactuar a múltiples procesos

31

Generaciones:

MainframesPCs

Computación

Ubicua

32

UbiquitousUbiquitousUbiquitousUbiquitous ComputingComputingComputingComputing

La computación ubicua se caracteriza por dos

atributos principales:

• UbicuidadUbicuidad. Donde las interacciones son dirigidas

hacia múltiples interfaces en lugar de una sola

computadora

• TransparenciaTransparencia. Donde la tecnología esta tan

incorporada en nuestra vida que es invisible para

nosotros

¿¿Hacia dHacia dóónde vamos ?nde vamos ?

Page 17: Contenidofpech/sd/files/Middleware... · 3 Introducción 4 Middleware Software de conectividad que consiste en un conjunto de servicios que permiten interactuar a múltiples procesos

33

Aplicaciones

� Numerosas aplicaciones soportadas a través de Internet se enriquecen y amplían sus servicios; e-commerce, e-banking, e-education, e-goverment, e-business.

– Ejemplos:

• El aumento de la potencia de las agendas digitales personales permitirá que se conviertan en asistentes personales, manejadas mediante la voz, no sólo gestionarán nuestra agenda, si no que se convertirán, gracias a numerosos sensores(biométricos, de localización, etc.), en vigilantes de nuestra salud, guías turísticos, consejeros financieros, localizadores.

• Los espacios inteligentes son otro campo de aplicación de la computación ubicua; viviendas, salas de reuniones, consultas médicas, centros de educación y entrenamiento, centros de mando militar, gabinetes de crisis, todo tipo de vehículos, etc. Dispondrán de acceso a todo tipo de información, facilitarán el trabajo distribuido y colaborativo con otros individuos en la misma sala o de forma remota, identificará a los usuarios y sus acciones, realizarán sumarios de las actividades y deliberaciones llevadas a cabo, etc.

34

AUTOMÓVIL

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

Aplicaciones

Page 18: Contenidofpech/sd/files/Middleware... · 3 Introducción 4 Middleware Software de conectividad que consiste en un conjunto de servicios que permiten interactuar a múltiples procesos

35

LUGAR MÓVIL DE TRABAJO

• CONVERSIÓN DE OFICINAS TRADICIONALES• LAPTOP• PDA• IMPRESORAS• FAX

TECNOLOGÍA WIRELESS

Aplicaciones

36

HOGAR

• TELÉFONOS MÓVILES• COMPUTADORAS• APARATOS DE ENTRETENIMIENTO• CONTROL DE PUERTAS Y VENTANAS• SISTEMAS DE AIRE ACONDICIONADO Y CALEFACCIÓN• DISPOSITIVOS DOMÉSTICOS• SISTEMAS DE SEGURIDAD

TRANSMISIÓN DE INFORMACIÓN VÍA LÍNEAS DE POTENCIA Y WIRELESS

Aplicaciones

Page 19: Contenidofpech/sd/files/Middleware... · 3 Introducción 4 Middleware Software de conectividad que consiste en un conjunto de servicios que permiten interactuar a múltiples procesos

37

COMUNICACIONES 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 (GENERAL PACKET RADIO SERVICE)

Y UMTS (UNIVERSAL MOBILE TELECOMMUNICATIONS SYSTEM)

Aplicaciones

38

SISTEMAS DE LOCALIZACIÓN

• GPS (Global Positioning System)• GSM (Global System for Mobile Communications)

Aplicaciones

Page 20: Contenidofpech/sd/files/Middleware... · 3 Introducción 4 Middleware Software de conectividad que consiste en un conjunto de servicios que permiten interactuar a múltiples procesos

39

Grid Computing

40

¿¿Hacia dHacia dóónde vamos ?nde vamos ?

GridGridGridGrid ComputingComputingComputingComputing

Un 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

Page 21: Contenidofpech/sd/files/Middleware... · 3 Introducción 4 Middleware Software de conectividad que consiste en un conjunto de servicios que permiten interactuar a múltiples procesos

41

42

¿¿Hacia dHacia dóónde vamos ?nde vamos ?

GridGridGridGrid ComputingComputingComputingComputing

El grid virtualiza recursos heterogeneos

dispersos geográficamente

Page 22: Contenidofpech/sd/files/Middleware... · 3 Introducción 4 Middleware Software de conectividad que consiste en un conjunto de servicios que permiten interactuar a múltiples procesos

43

¿¿Hacia dHacia dóónde vamos ?nde vamos ?

Tipos de Recursos en un Tipos de Recursos en un Tipos de Recursos en un Tipos de Recursos en un GridGridGridGrid

• Procesamiento

• Almacenamiento

• Comunicaciones

• Software y licencias

• Equipo especial

• Capacidades

• Arquitecturas

• Políticas

44

¿¿Hacia dHacia dóónde vamos ?nde vamos ?

GridGridGridGrid ComputingComputingComputingComputing

El recurso más común son los ciclos de cómputo

proporcionados por los procesadores de las

máquinas en el Grid.

Formas principales de procesamiento en un Formas principales de procesamiento en un Formas principales de procesamiento en un Formas principales de procesamiento en un GridGridGridGrid

1. Ejecutar una aplicación existente en una máquina

disponible en el Grid en lugar de hacerlo localmente

2. Ejecutar una aplicación diseñada para dividir su

trabajo de tal forma que las partes separadas

puedan ejecutarse en paralelo en diferentes

procesadores

3. Ejecutar una aplicación que necesita ser ejecutada

muchas veces en muchas máquinas en el Grid

Page 23: Contenidofpech/sd/files/Middleware... · 3 Introducción 4 Middleware Software de conectividad que consiste en un conjunto de servicios que permiten interactuar a múltiples procesos

45

¿¿Hacia dHacia dóónde vamos ?nde vamos ?

GridGridGridGrid ComputingComputingComputingComputing

• El segundo recurso más común usado en un Grid es el

almacenamiento de datos.

• Un grid proporciona una vista integrada de almacenamiento de

datos en ocasiones llamada “data grid”

• Cada máquina en el Grid usualmente proporciona alguna

cantidad de almacenamiento para el uso del Grid, aunque

temporalmente

Tipos de almacenamiento proporcionados por el Tipos de almacenamiento proporcionados por el Tipos de almacenamiento proporcionados por el Tipos de almacenamiento proporcionados por el GridGridGridGrid

• Memoria unida al procesador (Memoria de acceso rápido pero

volátil)

• Almacenamiento secundario (Medios de almacenamiento

permanentes)

46

Conclusiones�Unos de los grandes retos de la computación distribuida ha sido la

interoperabilidad entre equipos (Corba, Web Services) y su

escalabilidad.

� Cuando las aplicaciones crecen es deseable aprovechar la

capacidad de cómputo que se tienen en muchas máquinas que viven

en el ocio (grid computing).

�Los dispositivos inalámbricos pueden tener la capacidad de

movilidad, lo que da pie a aplicaciones que desean interactuar

según el contexto donde están sin problemas de comunicación

(computación ubicua).

� Conforme avanzan las tecnologías de comunicaciones y

miniaturización surgen nuevos nichos de oportunidad para los

sistemas distribuidos tanto a gran escala como ubicuos, lo que

confirma que es un área de la informática que se mantiene en

constante evolución..