Sunteți pe pagina 1din 20

MIDDLEWARE: Arquitectura

para Aplicaciones Distribuidas Dr.VctorJ.SosaSosa vjsosa@tamps.cinvestav.mx

Contenido
Middleware: Introduccin
Definicin Genealoga

Aplicaciones actuales: A li i t l
Servicios Web Computacin Ubicua Grid Computing

Integracin de Aplicaciones Desarrollos en Cinvestav-Tamps Conclusiones

Middleware:Definicin iddl fi i i
Software de conectividad que consiste en un conjunto de servicios que permiten interactuar a mltiples procesos que se ejecutan en distintas mquinas a t d una red. O lt i travs de d Ocultan l h t la heterogeneidad y proveen d un id d de modelo de programacin conveniente para los desarrolladores de aplicaciones. La organizacin 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 comnmente utilizadas por muchas aplicaciones para funcionar bien dentro de un ambiente interconectado interconectado.

Es un software que puede incrementar significativamente la reusabilidad mediante soluciones utilizables rpidamente y basadas en estndares aplicables a problemas y t bl tareas comunes en programacin. P i Permite concentrarse en it t asuntos propios de la aplicacin y olvidarse de problemas comunes, estructurales o no, ya resueltos previamente de forma elegante y satisfactoria.

Middleware:Ejemplos
Ejemplos de middleware estndar para dominios j p p especficos 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 homogeneizacin de arquitecturas, CORBA, DCOM, etc., ofrecen estas posibilidades.

Middleware:Genealogaenlas AplicacionesDistribuidas

Middleware: Abstraccin
Middlewares

Servicios Web RMI

DCOM

CORBA RPC

Sockets Tiempo

Sockets
Constituye la interfaz de p g programacin de la capa de p transporte. Es un mecanismo de comunicacin bidireccional El ms ampliamente usado Nacieron con la familia de protocolos TCP/IP Existe prcticamente en cualquier plataforma de computacin

Aplicacin Presentacin Sesin Transporte Red Enlace Fsica

Aplicacin Presentacin Sesin Transporte Red Enlace Fsica

Remote Procedure Call (RPC)


Proceso Cliente
Argumentos

Rutina Llamante

Rutina Llamada Ll d

Main(){ Resultados some code; ... call rpc(a,b,c); ... ms cdigo; Stub } Cliente

Argumentos

Proceso Servidor
Procedure rpc(x,y,z){ Stub cdigo que usa x,y; Servidor ... return(z=result); }

Resultados

receive(x,y,invocador)

Peticin

send((x=a, y=b), rpc) receive(c=z, rpc) Respuesta


Red

Peticin

Respuesta

send(z,invocador) d( i d )
Red

Remote Method Invocation (RMI)


Permite la invocacin remota de mtodos en objetos que residen en diferentes mquinas virtuales Permite la invocacin de mtodos remotos por Applets Integra el Modelo de Objetos Distribuidos al lenguaje Java de modo natural, preservando en lo posible la semntica de objetos en Java Permite la distincin entre objetos locales y remotos Permite diferentes semnticas en las referencias a objetos remotos: no persistentes (vivas), persistentes, de activacin lenta Facilita el desarrollo de aplicaciones distribuidas

10

Remote Method Invocation (RMI)


Peticin
Invocacin local

Un bj t U objeto remoto es aquel t l capaz de recibir RMIs (B, F)


E
Invocacin remota

Invocacin remota

Invocacin local

B
Respuesta

Invocacin local

Modelo de Objetos Distribuidos

Objeto Remoto Datos m4 m5 m6

Interfaz Remota

Una interfaz remota especifica los mtodos que pueden ser invocados remotamente

m1 m2 m3

Implementacin de mtodos

11

Common Object Request Broker Architecture ( (CORBA) )


Cliente Implementacin del Objeto

Repositorio de Interfaces (IR)

Invocacin Dinmica de Interfaces (DII)

IDL Stubs

Interface ORB

Invocacin Dinmica Skeleton (DSI)

IDL Skeleton

Adaptador de Objetos

ORB

CORBA proporciona una infraestructura de comunicaciones para la colaboracin entre objetos heterogneos distribuidos

12

CORBA: Compilacin
Procesa las definiciones en IDL para generar Stubs
Definiciones IDL Precompilador Skeletons Repositorio de Interfaces Stubs del Cliente Cliente Compilador Skeletons del Servidor Implementacin del Objeto Servidor Repositorio de Implementacin

Cdigo de Implementacin

DISTRIBUTED COMPONENT OBJECT MODEL (DCOM)


DCOM permite llamadas a los objetos remotos Soporta interfaces mltiples escritas en un lenguaje IDL similar a C++ El protocolo de intercambio de informacin es el Object Remote Procedure Call (ORPC) Ventajas: DCOM permite el uso de varios lenguajes de programacin DCOM soporta recoleccin distribuida de basura Inconvenientes: Muy ligado a los sistemas operativos de Microsoft, aunque existen implementaciones para Unix, y Apple Macintosh

14

Servicios Web: Genealoga

15

Servicios Web: Definiciones


Componente de software reutilizable y distribuido que ofrece una funcionalidad concreta, independiente tanto del lenguaje de programacin en que est implementado como de la plataforma de ejecucin Aplicaciones auto-contenidas que pueden ser descritas, publicadas, localizadas e invocadas sobre la Internet (o cualquier otra red)

16

Servicios Web: Invocacinbsica(I)


2.- El servicio K en el servidor A
Servidor UDDI

1.- Qu servicio Web puede hacer X?

3.- Cmo te invoco servicio K?

4.4 - Revisa esto: WSDL

5.- Invoca operacin X < SOAP >


Servidor A

Cliente

6.- Resultado de la operacin X < SOAP >

17

Servicios Web: Invocacinbsica(II)

Servidor Contenedor de Web Services 3 2

Cliente Cli t

1
Stub Cliente Aplicacin Cliente 6

Implementacin del Servicio


4 WSDL
int operacionX(int a int b) a, int operacionY(int c, int d)

Stub Servidor S id 5

18

Servicios Web: Plataformas

Microsoft .NET

19

Servicios Web: Plataformas

Java 2EE

20

Middleware para Computacin Ubicua


Esta propuesta se ha posicionado como la tercera generacin o paradigma en la computacin

1a. Generacin : U computadora, muchas personas 1 G i Una t d h 2a. Generacin : Una computadora, una persona 3a. Generacin : Muchas computadoras, una persona
La computacin ubicua nos lleva al incremento en el uso de sistemas de cmputo a travs del ambiente fsico, hacindolos disponibles y a la vez invisibles al usuario.

21

Generaciones:
Mainframes PCs Computacin Ubicua

22

Computacin Ubicua: Automviles


Dispositivos de mltiple propsitos Interfaces Operaciones concurrentes Computadoras (bus local e internet) Wireless corto alcance (llaves) y rea amplia (Celular) Sistemas de seguridad g Funciones personalizadas (no pc)

23

Computacin Ubicua: Hogar


Telfonos mviles Transmisin de informacin va lneas de potencia e Computadoras inalmbricas Aparatos de entretenimiento Control de puertas y ventanas Sistemas de aire acondicionado y calefaccin Dispositivos domsticos Sistemas de seguridad g

24

Computacin Ubicua: Personales


Telfonos mviles y tradicionales Localizadores Fax Computadoras Video grabadoras Consolas de juegos Cmaras digitales g Grabadores de msica y video
Tecnologas GPRS y UMTS. Sistemas de localizacin GPS

25

Middleware para Computacin Distribuida (Grid Computing)


Una Grid es una coleccin de mquinas, algunas veces referidas como nodos, recursos, miembros, donadores, clientes, hosts, motores, y muchos otros trminos. Todos contribuyen a que cualquier motores , combinacin 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 t i t t d tener restricciones especficas ti i fi

26

Grid Computing
La Grid virtualiza recursos heterogneos dispersos geogrficamente

27

Grid Computing: Abstraccin

Grid Computing: E-Ciencia

Middleware en Integracin de Aplicaciones Empresariales (EAI)


La L EAI (E t (Enterprise A li ti i Application I t Integration) representa un paso en l ti ) t la evolucin de los middleware abordando aspectos de integracin. En arquitecturas de 3-niveles se facilita la integracin de gestores de q g g recursos diferentes, desarrollando la lgica de la nueva aplicacin en el middleware. La funcionalidad resultante puede ser expuesta como un nuevo servicio, que puede ser integrado por servicios de ms alto nivel, nivel y as sucesivamente sucesivamente.

Integracin con el Uso de brokers de mensajes

Sistemas de Flujo de Trabajo


Son tiles para gestionar p g el direccionamiento de la informacin, pero no soportan la heterogeneidad de las aplicaciones aplicaciones. Permiten expresar la lgica de la aplicacin de forma explcita y expresada en un lenguaje de alto nivel (normalmente grfico). grfico)

EAI = Sistema de Flujo de Trabajo + Brokers de mensajes

Middlewares: Ejemplos en Cinvestav-Tamps

Middleware Integrador de Fuentes de Datos Heterogneas

BD

CSV

XML

Middlewares: Ejemplos en Cinvestav-Tamps

Middleware para Almacenamiento Externo en Dispositivos Mviles

Cometarios Finales
La necesidad de crear ciclos de desarrollo de software ms rpidos rpidos, disminuyendo el esfuerzo e incrementando la reutilizacin del software, son las motivaciones principales para la creacin 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 tedioso, a errores y de los detalles de la plataforma, por ejemplo, la programacin 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 diseo 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 ms cercanas a los requerimientos de la aplicacin con el fin de simplificar el desarrollo de sistemas distribuidos y embebidos. Proveen de una amplia gama de servicios orientados al desarrollador que estn listos para ser utilizados y son reutilizables, tales como, los servicios de nombrado logging y seguridad que son necesarios para nombrado, operar efectivamente en un ambiente de interconectado. No olvidar considerar que su mal uso se traduce en ineficiencia, ya que ocupan ms capas d software. de ft

Gracias por su atencin! Preguntas? Dr.VctorJ.SosaSosa Dr. Vctor J. Sosa Sosa vjsosa@tamps.cinvestav.mx

S-ar putea să vă placă și