Documentos de Académico
Documentos de Profesional
Documentos de Cultura
MIDDLEWARE: Arquitectura
para Aplicaciones Distribuidas
Dr. Víctor J. Sosa Sosa
vjsosa@tamps.cinvestav.mx
Contenido
Middleware: Introducción
Definición
Genealogía
Aplicaciones actuales:
Servicios Web
Computación Ubicua
Grid Computing
Integración de Aplicaciones
Desarrollos en Cinvestav-Tamps
Conclusiones
1
07/03/2014
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 y proveen de un
modelo de programación conveniente para los desarrolladores de
aplicaciones.
2
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. Típicamente, 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
metodología 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 más esfuerzo y tiempo
en identificar los requerimientos de software.
3
07/03/2014
Middleware: Ejemplos
• Ejemplos de middleware estándar 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.
4
07/03/2014
Middleware: Abstracción
Middlewares
Servicios
Web
RPC
Sockets
Tiempo
5
07/03/2014
Aplicación Aplicación
Sockets Presentación Presentación
11
Main(){
Argumentos Resultados
some code; Resultados Argumentos
...
Proceso Servidor
call rpc(a,b,c); receive(x,y,invocador)
...
más código;
Stub Procedure rpc(x,y,z){
} Cliente Stub que usa x,y;
código
Servidor
...
return(z=result);
send((x=a, y=b), rpc) }
Petición Respuesta
receive(c=z, rpc)
Respuesta Petición
send(z,invocador)
Red Red
12
6
07/03/2014
13
Invocación
A B local F
D
Modelo de Respuesta
Objetos
Distribuidos Objeto Remoto
m1 m4
Una interfaz remota especifica los m2 Implementación
m5
de métodos
métodos que pueden ser invocados m3 m6
remotamente
14
7
07/03/2014
Invocación
Adaptador
Invocación Dinámica IDL
de
Dinámica de IDL Interface Skeleton Skeleton
Repositorio de Objetos
Interfaces Stubs ORB (DSI)
Interfaces (IR)
(DII)
ORB
15
CORBA: Compilación
Procesa las
definiciones en IDL Definiciones IDL
para generar Stubs
Precompilador
Código de
Implementación
Skeletons
Repositorio
de
Compilador
Interfaces
Cliente Servidor
8
07/03/2014
17
18
9
07/03/2014
19
4.- Revisa
esto: WSDL
5.- Invoca
operación X
Cliente
< SOAP >
20
10
07/03/2014
Servidor Cliente
Contenedor de Web Services
3
2 1
Implementación Stub Stub Aplicación
del Servicio Servidor Cliente Cliente
4 5
6
WSDL
int operacionX(int a, int b)
int operacionY(int c, int d)
21
Microsoft .NET
22
11
07/03/2014
Java 2EE
23
24
12
07/03/2014
Generaciones:
Mainframes Computación
PCs Ubicua
25
26
13
07/03/2014
27
28
14
07/03/2014
Algunos recursos pueden ser usados por todos los usuarios del Grid
mientras que otros pueden tener restricciones específicas
29
Grid Computing
La Grid virtualiza recursos
heterogéneos dispersos
geográficamente
30
15
07/03/2014
16
07/03/2014
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.
17
07/03/2014
Permiten expresar la
lógica de la aplicación de
forma explícita y
expresada en un lenguaje
de alto nivel (normalmente
gráfico).
18
07/03/2014
Middleware
Integrador de
Fuentes de
Datos
Heterogéneas
BD CSV XML
19
07/03/2014
Middleware para
Almacenamiento
Externo en
Dispositivos
Móviles
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.
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.
20
07/03/2014
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.
21