Está en la página 1de 21

07/03/2014

MIDDLEWARE: Arquitectura
para Aplicaciones Distribuidas
Dr. Vctor J. Sosa Sosa
vjsosa@tamps.cinvestav.mx

Contenido
Middleware: Introduccin
Definicin
Genealoga

Aplicaciones actuales:
Servicios Web
Computacin Ubicua
Grid Computing

Integracin de Aplicaciones
Desarrollos en Cinvestav-Tamps
Conclusiones

07/03/2014

Middleware:Definicin

Software de conectividad que consiste en un conjunto de servicios que


permiten interactuar a mltiples procesos que se ejecutan en distintas
mquinas a travs de una red. Ocultan la heterogeneidad y proveen de un
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.

Es un software que puede incrementar significativamente la reusabilidad


mediante soluciones utilizables rpidamente y basadas en estndares aplicables
a problemas y tareas comunes en programacin. Permite concentrarse en
asuntos propios de la aplicacin y olvidarse de problemas comunes, estructurales
o no, ya resueltos previamente de forma elegante y satisfactoria.

Middleware: Ms definiciones

Middleware es un software de computadora que conecta componentes de


software o aplicaciones para que puedan intercambiar datos entre stas. Es
utilizado a menudo para soportar aplicaciones distribuidas. Esto incluye servidores
web, servidores de aplicaciones, sistemas de gestin de contenido y herramientas
similares. Middleware es especialmente esencial para tecnologas como XML,
SOAP, servicios web y arquitecturas orientada a servicios.
Comentario: Middleware es una incorporacin relativamente reciente en la
computacin. Obtuvo popularidad en los 80 como una solucin al problema de
cmo conectar nuevas aplicaciones con viejos sistemas. De todas maneras el
trmino ha sido usado desde 1968. Tambin facilitaba el procesamiento
distribuido: conexin de mltiples aplicaciones para crear una aplicacin ms
grande,
generalmente
sobre
una
red.

07/03/2014

Middleware vs Framework

Un framework*, en el desarrollo de software, es una estructura de soporte


definida, mediante la cual otro proyecto de software puede ser organizado
y desarrollado. Tpicamente, puede incluir soporte de programas,
bibliotecas y un lenguaje interpretado entre otros software para ayudar a
desarrollar y unir los diferentes componentes de un proyecto.
Representa una arquitectura de software que modela las relaciones
generales de las entidades del dominio. Provee una estructura y una
metodologa de trabajo la cual extiende o utiliza las aplicaciones del
dominio.

* http://es.wikipedia.org/wiki/Framework

Middleware vs Framework

Framework (plataforma, entorno, marco de trabajo): Desde el punto de vista del


desarrollo de software, un framework es una estructura de soporte definida, en la
cual otro proyecto de software puede ser organizado y desarrollado.
Los frameworks suelen incluir:
* Soporte de programas.
* Bibliotecas.
* Lenguaje de scripting.
* Software para desarrollar y unir diferentes componentes de un proyecto de
desarrollo de programas.
Los frameworks permiten:
* Facilitar el desarrollo de software.
* Evitar los detalles de bajo nivel, permitiendo concentrar ms esfuerzo y tiempo
en identificar los requerimientos de software.

07/03/2014

Middleware: Ejemplos
Ejemplos de middleware estndar para dominios
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.

07/03/2014

Middleware: Genealoga en las


Aplicaciones Distribuidas

Middleware: Abstraccin
Middlewares

Servicios
Web

DCOM

CORBA

RMI

RPC
Sockets
Tiempo

07/03/2014

Sockets
Constituye la interfaz de
programacin de la capa de
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

Aplicacin
Presentacin

Sesin

Sesin

Transporte

Transporte

Red

Red

Enlace

Enlace

Fsica

Fsica

11

Remote Procedure Call (RPC)


Rutina

Rutina
Llamada

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

Argumentos

Peticin

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


receive(c=z,
rpc)
Respuesta

Argumentos

Resultados

Proceso Servidor

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

Peticin

send(z,invocador)
Red

Red

12

07/03/2014

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

13

Remote Method Invocation (RMI)


Peticin

Invocacin
remota

Modelo de
Objetos
Distribuidos

Invocacin E
local

Invocacin
local

Invocacin
local

Un objeto remoto es aquel


capaz de recibir RMIs (B, F)
Invocacin
remota

Respuesta
Objeto Remoto

Interfaz Remota

Una interfaz remota especifica los


mtodos que pueden ser invocados
remotamente

m1
m2
m3

Datos
Implementacin
de mtodos

m4
m5
m6

14

07/03/2014

Common Object Request Broker Architecture


(CORBA)
Cliente

Repositorio de
Interfaces (IR)

Invocacin
Dinmica de
Interfaces
(DII)

Implementacin del Objeto

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

15

CORBA: Compilacin
Procesa las
definiciones en IDL
para generar Stubs

Definiciones IDL
Precompilador

Cdigo de
Implementacin

Skeletons
Repositorio
de
Interfaces

Compilador
Stubs
del
Cliente
Cliente

Skeletons
del
Servidor

Implementacin
del
Objeto

Repositorio
de
Implementacin

Servidor

07/03/2014

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::
Ventajas
DCOM permite el uso de varios lenguajes de programacin
DCOM soporta recoleccin distribuida de basura

Inconvenientes::
Inconvenientes
Muy ligado a los sistemas operativos de Microsoft, aunque existen
implementaciones para Unix, y Apple Macintosh

17

Servicios Web: Genealoga

18

07/03/2014

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)

19

Servicios Web: Invocacin bsica (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.- Revisa
esto: WSDL

5.- Invoca
operacin X
< SOAP >
Servidor A

Cliente

6.- Resultado de
la operacin X
< SOAP >

20

10

07/03/2014

Servicios Web: Invocacin bsica (II)

Servidor

Cliente

Contenedor de Web Services


3

Implementacin
del Servicio

Stub
Servidor
4

Stub
Cliente

Aplicacin
Cliente

5
6

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

21

Servicios Web: Plataformas

Microsoft .NET

22

11

07/03/2014

Servicios Web: Plataformas

Java 2EE

23

Middleware para Computacin Ubicua


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

1a. Generacin : Una computadora, muchas personas


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.

24

12

07/03/2014

Generaciones:
Mainframes
PCs

Computacin
Ubicua

25

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
Funciones personalizadas (no pc)

26

13

07/03/2014

Computacin Ubicua: Hogar


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

27

Computacin Ubicua: Personales


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

28

14

07/03/2014

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
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 tener restricciones especficas

29

Grid Computing
La Grid virtualiza recursos
heterogneos
dispersos
geogrficamente

30

15

07/03/2014

Grid Computing: Abstraccin

Grid Computing: E-Ciencia

16

07/03/2014

Middleware en Integracin de
Aplicaciones Empresariales (EAI)
La EAI (Enterprise Application Integration) representa un paso en la
evolucin de los middleware abordando aspectos de integracin.
En arquitecturas de 3-niveles se facilita la integracin de gestores de
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, y as sucesivamente.

17

07/03/2014

Integracin con el Uso de brokers de mensajes

Sistemas de Flujo de Trabajo


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

18

07/03/2014

EAI = Sistema de Flujo de Trabajo +


Brokers de mensajes

Middlewares: Ejemplos en Cinvestav-Tamps

Middleware
Integrador de
Fuentes de
Datos
Heterogneas

BD

CSV

XML

19

07/03/2014

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

20

07/03/2014

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
operar efectivamente en un ambiente de interconectado.
No olvidar considerar que su mal uso se traduce en ineficiencia, ya que
ocupan ms capas de software.

Gracias por su atencin!


Preguntas?
Dr. Vctor J. Sosa Sosa
vjsosa@tamps.cinvestav.mx

21

También podría gustarte