SlideShare una empresa de Scribd logo
Introducción
al middleware
Introducción
Temario
Introducción
Web Services
Middleware basado en Mensajes
Portales y mashups
Enterprise Service Bus (ESB)
Introducción
¿Qué es el middleware?
o Es el “pegamento” (glue) que ayuda a la conexión entre
programas (o bases de datos).
o Más formalmente:
Es el soft-sistema que permite las interacciones a nivel de
aplicación entre programas en un ambiente distribuido.
Por soft-sistema (system software) se entiende el software
posicionado entre una aplicación y un sistema de menor nivel
(S.Op, DBMS, Servicio Red).
Un ambiente computacional se dice distribuido cuando sus
programas o BDs están ubicados en dos o más computadores.
Introducción
¿ Para qué usar middleware ?
o Dadas dos aplicaciones que se quieren conectar, se usa
para resolver la comunicación entre los procesos.
Si las aplicaciones se conectan directamente a soft de red,
entonces no se necesita middleware.
Si no hay middleware se complica el desarrollo de aplicaciones:
Se debe programar módulos de bajo nivel.
Este desarrollo se repite para cada aplicación a conectar.
o El soft de middleware permite realizar esta conexión a
través de interfases de alto nivel, que permiten, por ej.,
ver un procedimiento remoto como si fuera local.
INCO - Facultad de Ingeniería – Montevideo, Uruguay
Introducción
Escenarios de uso:
o Cliente/Servidor en la misma máquina.
Se usa en sistemas de un computador, por ej. pequeñas oficinas,
en casa, o en portables.
o C/S a pequeña escala.
Aplicación clásica en una LAN con un único servidor.
Es la forma predominante de C/S.
o C/S a gran escala.
Esquema multiservidor, que dan imagen de un único sistema.
o C/S altamente distribuido.
Cada máquina es cliente y servidor, y negocia con las otras
máquinas mediante agentes.
Programa
Sistema
de Red
Programa
Sistema
de Red
Introducción
Esquema de conexión sin middleware.
o Los programas deben resolver la conexión usando
medios de bajo nivel, cercanos al Sistema de Red.
Programa
Sistema
de Red
Middleware
Programa
Sistema
de Red
Middleware
Introducción
Esquema de conexión con middleware.
o La capa de Middleware permite programar la comunicación
mediante herramientas de alto nivel.
o Por ejemplo: procedimientos, mensajes, acceso a objetos.
Introducción: Arquitectura (1)
Aplicación en Arquitectura +3 niveles.
Servidor WEB
Cliente Cliente Cliente Cliente Cliente
Servidor
Aplicaciones
Servidor
DBMS
Servidor
DBMS
Servidor
Aplicaciones
Servidor
Aplicaciones
Servidor
Aplicaciones
Conexión
a DBMS
¿?
TPM¿?
TPM¿?
Conexión
a DBMS
RMI
Introducción: Tipos Middl. (1)
Comunican 2 sistemas:
o Drivers a DBMSs.
Acceso a DBMS desde un programa u otro DBMS.
o Remote Procedure Call (RPC, RMI, Remoting).
Invocación a procedimientos remotos como si fueran locales al programa.
o Web Services.
Invocación a procedimientos a través de HTTP.
Comunican múltiples sistemas:
o Message Oriented Middleware (MOM).
Envío de mensajes entre aplicaciones.
o Object Request Brokers (ORB).
Invocación a procedimientos y propiedades de objetos.
Introducción: Tipos Middl. (2)
Comunican múltiples sistemas:
o Intregration brokers:
Comunican “n” aplicaciones en base a mensajes.
El “Integration broker” centraliza las comunicaciones:
Recibe mensajes de las aplicaciones.
Aplica reglas para determinar a qué aplicaciones deben enviarse.
o Enterprise Service Bus:
Implementa mecanismos de comunicación:
Basado en invocaciones (de tipo RMI, Remoting, WS).
Basado en mensajes.
Son la evolución de los ORBs e Integration Brokers.
Introducción: Arquitectura (2)
Aplicación en Arquitectura +3 niveles.
Servidor WEB
Cliente Cliente Cliente Cliente Cliente
Servidor
Aplicaciones
Servidor
DBMS
Servidor
DBMS
Servidor
Aplicaciones
Servidor
Aplicaciones
Servidor
Aplicaciones
Conexión
a DBMS
MOM
TPMTPM
TPMESB
Conexión
a DBMS
RPC
Introducción: Tipos Middl. (3)
Portal servers.
o Integrar aplicaciones (modularizadas) que se ejecutan en
Portales.
Java: Servidores JSR 168 y JSR 286: portlets.
Microsoft: Sharepoint: webparts.
o Son integrables a través del protocolo WSRP:
Web Service for Remote Portal.
Mashup servers.
o Integran aplicaciones heterogeneas.
o Por ejemplo: Mapas, portlets/webparts, email, etc.
Introd.: características (1)
Los middleware se caracterizan por implementar la
interacción entre las aplicaciones de diferentes
formas:
o Interacción sincrónica:
Cuando una aplicación es “invocada” por otra, se ejecuta
inmediatamente.
o Interacción (sincrónica) bloqueante:
Cuando una aplicación invoca a otra, la primera queda esperando
la respuesta de la segunda.
o Interacción (sincrónica) no-bloqueante:
¿ como sería ?
Introd.: características (2)
o Interacción asíncrona:
Una aplicación invoca otra pero no espera su ejecución
inmediata.
Se implementa en base a mensajes.
o Asegurando consistencia en los datos:
Transaccionalidad (2PC).
Consistencia en ambiente debilmente acoplado.
Mensajes persistentes.
Evolución Middleware
Semantic Management of Middleware. Ramesh Jain. Amit Sheth. Springer 2006.
Programa
Sistema
de Red
Comm
Middleware
Programa
Sistema
de Red
Comm
Middleware
SQL o APIPhysical
Link
Network
Transport
Session
Presentation
Application
Basic Middleware
Características:
o Resuelven la comunicación entre 2 programas.
o Cubre de las capas 5 a la 7 del stack OSI.
Ejemplos:
o RPC, MOM, Data Middleware.
RPC: Remote Procedure Call
Esconde la red, invocando procedimientos.
o Cliente invoca a una función del servidor remoto y se bloquea
hasta tener el resultado.
o Se pasan parámetros de la forma normal.
Componentes:
o Aplicaciones: cliente y servidor se programan como locales.
o Stub: Empaqueta, convierte...
Lenguaje IDL (Interface Definition Language).
Compilador IDL genera Stubs (C y S), que se linkeditan al prog.
o Runtime:
En cliente invoca el RPC y se bloquea.
En servidor, recibe invocaciones (prioridades, seguridad... )
INCO - Facultad de Ingeniería – Montevideo, Uruguay
RPC
aplicación
stub
runtime
1
2
10
9
aplicación
stub
runtime
6
7
5
4
8
3
cliente servidor
Ejecuta aplicación,
llama a función.
Sigue la ejecución.
Empaqueta, convierte.
Llama al runtime.
Desempaqueta,
convierte.
Invoca RPC.
Se bloquea.
Recibe resultado.
Ejecuta función.
Envía resultado.
Desempaqueta,
convierte.
Empaqueta, convierte.
Recibe RPC.
Levanta servicio.
Envía resultado.
RPC
Consideraciones:
o Conversión de datos:
XDR: External Data Representation (canónica).
NDR: Network Data Representation (en C o en S).
o Seguridad: autenticación, encriptación, …
o Tolerancia a fallos:
reintentos, semántica de sólo una vez.
o Servicio de directorio:
Cliente puede invocar a un servidor conocido (hard-coded) o
preguntar quien corre el servicio (binding).
o Runtime en servidor:
Según el servidor, se podría priorizar llamados, controlar seguridad, manejar
threads, controlar acceso a recursos compartidos.
Asynchronous Middleware
Permiten activar un proceso sin que el
“invocador” quede bloqueado
o Facilita la integración de aplicaciones en contextos
de acoplamiento débil.
Basado en envio de mensajes.
o Por eso se les conoce como Message Oriented
Middleware (MOM).
MOM: Message Oriented Middleware
Comunicación usando colas de mensajes:
o Aplicaciones sólo ponen y sacan mensajes de colas.
o No se conectan. C y S pueden correr en diferentes tiempos.
o No necesariamente se requiere respuesta.
Consideraciones:
o Se pueden implementar esquemas 1-N o N-1
Muchos clientes, varias instancias del servidor.
o Colas pueden estar en disco o en memoria.
o Pueden ser FIFO, por prioridades, balance de carga...
cola1
cola2
RPC vs. MOM
RPC:
o Síncrono: Se requiere una conexión. Cliente se bloquea.
o Respuesta inmediata. Se asegura tiempo de respuesta.
o Ideal para aplicaciones que sincronizar acciones.
o Ejemplo: Aplicaciones interactivas, transacciones.
MOM:
o Asíncrono: Clente y servidor operan en diferentes tiempos.
o Respuesta (eventualmente) lenta. No se asegura totalmente un
tiempo de respuesta.
o Ideal para informar, para aplicaciones poco conectadas.
Data Middleware
Características:
o Conectan programas con DBMS o DBMSs entre si a través de un
API, con uso opcional de lenguaje de consulta.
o Fuertemente asociados a tecnologías de DBMS.
o Incluyen un componente cliente y otro servidor.
Ejemplos:
o ODBC, OLEDB, JDBC
Programa
Sistema
de Red
Middleware
DBMS (cli)
DBMS
Sistema
de Red
Middleware
DBMS (srv)
SQL o API
INCO - Facultad de Ingeniería – Montevideo, Uruguay
SQL Middleware
Objetivo ideal:
o Diferentes DBMS, que dan la ilusión de ser un único sistema: sistema
federado.
o Diferentes clientes accediendo al sistema federado.
Problema:
o SQL no es tan estandar: SQL (‘86), SQL2 (‘92), SQL3 (‘99).
Cada vendedor tiene sus propias extensiones (dialectos).
o Diferencias en:
APIs (Application Programming Interface).
Driver: Runtime que acepta llamadas, formatea mensajes (FAP:
Format and Protocols) y maneja el intercambio.
Stacks. Sólo algunos usan transp standard: sockets, named pipes
JDBC
Driver Driver
JDBC
Driver Manager
Driver Driver
JDBC
Driver Manager
2 niveles 3 niveles
Platform
Middleware
Platform Middleware
Características:
o Permiten la comunicación entre programas a través de
mecanismos de mayor nivel que los otros Basic Middleware.
o Combinan técnicas de los Basic Middleware.
Sistema
de Red
Programa
Sistema
de Red
Platform
Middleware
Programa
Programa
Platform Middleware
Además proveen funciones tales como:
o Gestión de memoria y procesos del S. Op.
o Carga de programas, inicio y fin, pasaje de mensajes.
o A veces balance de carga y gestión de transacciones.
Ejemplos:
o Application Servers y ORBs (CORBA, JEE, .NET.)
o TPM (Tuxedo, CICS, Encina )
o Integration Brokers (IBM MQSeries, MS Biztalk).
o Enterprise Service Bus.
ORBs: Object Request Broker
Permiten:
o Programar ensamblando componentes (building blocks).
Empaquetados como piezas de código indep y
autocontenidas.
No está asociado a un programa, lenguaje o implementación.
Accedidos por invocaciones a métodos.
Interfase bien definida (IDL: Interface Definition Language).
o Portabilidad e Interoperabilidad:
Transparentes al lenguaje, compilador, ubicación, s.
operativo.
Se importan dentro de paletas o toolbars.
Puede ser invocado a través de espacios de direcciones,
redes, lenguajes, sist operativos y herramientas.
ORB: Object Request Broker
Es un bus de comunicación entre objetos:
o Permite hacer/recibir requerimientos en forma transparente:
Objetos locales o remotos.
o Funcionamiento:
Objeto cliente invoca un método en un objeto remoto.
ORB:
Localiza una instancia del objeto servidor.
Invoca el método.
Retorna el resultado al cliente.
Applic Applic Applic
ORB
ORB: Object Request Broker
Funcionalidades:
o Control de transacciones y bloqueo:
Integridad “todo o nada”.
Locks para serializar acceso a recursos.
o Persistencia.
o Relacionamiento:
Relaciones dinámicas o permanentes con otros componentes.
o Auto-testeo:
Correr programas de diagnóstico para determinar problemas.
o Auto-instalación:
Instalarse y registrarse con S.O y/o registry.
Des-instalarse.
INCO - Facultad de Ingeniería – Montevideo, Uruguay
Procesamiento de
Transacciones
Flat transactions: todo o nada
o Problemas con:
Validaciones / anulaciones parciales:
Interacción con humanos:
Presentación de opciones en pantalla, usuario debe elegir.
¿Cuánto tiempo quedan los locks?
Transacciones grandes:
Se debe poder guardar contexto, para luego retomar.
Operaciones masivas:
Actualizaciones de millones de registros. ¿Y si falla?
Operaciones en grandes redes o internet:
No sirve tenerlas sincronizadas en el commit.
Monitores Transaccionales
Objetivo:
o Es un sistema especializado en la creación, ejecución y
manejo de aplicaciones de procesamiento de transacciones.
Características:
o Sistemas transaccionales tienen:
Muchas transacciones pequeñas.
Muchos usuarios concurrentes.
o Coordinan las transacciones con:
Subsistemas ACID locales.
Manejadores de recursos.
DBMS, manejadores de colas, objetos persistentes, transporte de
mensajes.
aplicación
TPM
DBMS
aplicación aplicación
DBMS
Monitores Transaccionales
OTM: Object Transaction Monitors
o Combinan ORBs con monitores de transacciones.
Maneja contenedores que corren los componentes que
brindan los servicios.
o Maneja objetos logrando: transaccionalidad,
robustez, persistencia, seguridad, performance.
o Carga un conjunto de objetos (pool), distribuye la
carga, provee tolerancia a fallos, y coordina
transacciones multi-componentes.
Monitores Transaccionales
TPM OTM
Servidores de Aplicaciones
Contexto:
o Arquitecturas en múltiples capas:
Cliente: interface usuario.
Servidor Web:
Acceso HTTP, interface usuario.
Servidor de Aplicaciones:
Lógica del negocio.
Lógica de los datos.
Gestión de Transacciones.
Acceso a la BD.
Balance de carga en configuraciones paralelas.
Servidor de Base de Datos: almacenamiento.
Servidores de Aplicaciones
Cubren:
o Nivel Servidor de Aplicaciones.
o Casi seguro: Gestión de Transacciones.
o Web Server.
Grandes familias:
o JEE: Propuesta de Java.
o COM/DCOM/COM+ .NET: Propuestas de MS
Gateways
Características:
o Realizan la traducción entre 2 o más protocolos.
o Existen gateways para:
DBMS, MOM.
Platform Midd: Corba COM, .NET JEE.
Middleware A
Sistema
de Red
Programa
Sistema
de Red
Middleware A
Programa
Middleware B
Gateway
Prot. B Sistema
de Red
Mid A Mid B
Gateway
Prot. B
Platform Middleware
Middleware que permite integrar aplicaciones a escala
empresarial.
Provee al menos:
o Capacidad para integrar aplicaciones:
Syncrónica y asincrónicamente
En equipos distribuidos.
o Control de transacciones.
Incluye:
o Application Servers.
o Integration Brokers.
o Enterprise Service Bus.
Integration Broker
Características:
o Son intermediarios que facilitan la interacción entre
programas.
Principalmente orientados a mensajes.
o Proveen dos funciones de interés:
Transformation:
Transforma mensajes o contenidos de archivos.
Transforma modelos de datos de diferentes aplicaciones a un modelo
común.
Flow automation (or flow control):
Son tratamientos inteligentes de flujos, por ejemplo: ruteo inteligente
y/o basado en contenidos.
Integration Broker
Características:
o También pueden ofrecer:
Business process management (p.ej, workflow)
Interpretan reglas de negocio y responden a eventos de negocio
y excepciones. Ayudan a automatizar tareas.
Message warehousing.
Administrative monitoring.
o Algunos requieren un MOM en especial (ej. IBM
MQSeries),otros tienen interfases a una gran
variedad de productos.
Integration Brokers
Arquitec. “Hub & Spoke”:
o Altamente centralizada.
Centrada en el HUB (message
broker) es una pieza monolítica
de software.
Realiza las operaciones de
transformación y ruteo de
mensejes.
Estas funcionalidades no puede
ser conectadas a otro HUB.
Estos servicios son propietarios.
o Los Spokes son aplicaciones a
integrar.
o La excesiva centralización
complica la escalabilidad.
ESB
Arquitectura de BUS.
o Incluye procesos que ejecutan las
funcionalidades tales como ruteo,
transformaciones, transacciones, etc.
o Estos servicios son conectables a
otros ESB.
o Varios ESB pueden conectarse y
hacer visibles los servicios
publicados: favorece la escalabilidad.
o Están basados en estándares y/o
facilitan la interoperabilidad entre
aplicaciones.
Por ejemplo: Web Services.
ESB, SOA, Applic. Server y
eventos
ESB como Bus de Servicios:
o Fuertemente asociados a la implementación de arquitecturas orientadas a
servicios.
Las aplicaciones a integrar se “publican” como ofreciendo y/o
consumiendo servicios.
ESB interactuando con Applic. Servers
o Se construyeron pensando en integrar aplicaciones ejecutándose en
Applic. Servers.
Las funcionalidades asíncronas:
o Basadas en colas de mensajes.
o Incluyen gestión de eventos para la suscripción (a mensajes
publicados en colas o canales)
ESB vs. Integration Brokers
o Los ESB resultan más abiertos y escalables.
o También más interoperables con otros productos.
o Las ventajas se deben en gran parte:
La historia y evolución de los productos.
Los ESB surgieron posteriormente a los Integration Brokers, y
corrigieron muchas de sus defectos.
Varios ESB se basan en Integration Brokers:
Biztalk Server de Microsoft.
Productos de IBM WebSphere.
Middleware para User interaction
Las aplicaciones que interactuan con el usuario
también deben integrarse:
o Con los procesos de back-end, que implementan
funcionalidades de negocio.
o Con otros aplicaciones que implementan interacción con
el usuario.
o Con servicios utilitarios:
Por ejemplo: mapas, gestión de videos, etc.
¿ Como hacer posible esta integración ?
User interaction Middleware
o Modularización de aplicaciones.
Las aplicaciones que implementan la User Interaction
deben implementarse basadas en componentes:
o Estandarización de protocolos.
Estas componentes deben poder interoperar entre si lo
más posible.
o Orientación a servicios.
La interacción entre estos componentes y los otros
externos debe seguir los mismos modelos que con los
otros middleware.
User interaction Middleware
Portales (Portal Servers).
o Son servidores de:
“portlets” en plataforma Java.
“webparts en plataforma Microsoft (Sharepoint).
o La interacción entre ellos es posible:
Dentro de la misma plataforma.
Utilizando WSRP (Web Service for Remote Portal) en
plataformas diferentes.
o Se integran con las Platform Middleware.
User Interaction Middleware
Mashup.
o Apuntan a facilitar el desarrollo de aplicaciones que
combinan multiples funcionalidades con User
Interaction.
o Por ej:
Mapas + portlets + email + chat + videos.
o Menos estandarizado que los Portal Server.
o Compatibles con los Portal Servers.
o Tratan de ser más livianos que los Portal Servers.

Más contenido relacionado

PPTX
cours Android.pptx
PDF
An Introduction to Rancher
PDF
Jenkins to Gitlab - Intelligent Build-Pipelines
PDF
Transiciones de Procesos
PPT
Arquitectura de sistemas distribuidos
PDF
Metodologías para desarrollo de software
PDF
Low Code Integration with Apache Camel.pdf
PPTX
Diagramas de paquetes
cours Android.pptx
An Introduction to Rancher
Jenkins to Gitlab - Intelligent Build-Pipelines
Transiciones de Procesos
Arquitectura de sistemas distribuidos
Metodologías para desarrollo de software
Low Code Integration with Apache Camel.pdf
Diagramas de paquetes

La actualidad más candente (20)

PPTX
Infrastructure as Code (IaC)
PPT
Sistema de Archivos Distribuidos
PDF
Inside the InfluxDB storage engine
PPTX
Understanding container security
PDF
Kinh nghiệm triển khai K8s tại Stringee - Mr Trần Tiến.pdf
PDF
Arquitectura basada a Eventos para principiantes con Apache Kafka
PPTX
Clean Architecture
PDF
Modelo, vista, controlador
PDF
Introduction to Docker Containers - Docker Captain
PDF
Las diez principales amenazas para las bases de datos
PDF
Service discovery with Eureka and Spring Cloud
PPTX
Sistemas operativos distribuidos y sistemas distribuidos
PDF
클라우드 네이티브로의 전환을 위한 여정
PDF
IEEE 1016 1998: Software design description
DOCX
Cuestionario procesos
PDF
D2 domain driven-design
ODP
¿Qué es docker?
PPTX
Patrones diseño y arquitectura
PPTX
Kubernates vs Openshift: What is the difference and comparison between Opensh...
PPTX
Kotlin: El despertar de la fuerza!
Infrastructure as Code (IaC)
Sistema de Archivos Distribuidos
Inside the InfluxDB storage engine
Understanding container security
Kinh nghiệm triển khai K8s tại Stringee - Mr Trần Tiến.pdf
Arquitectura basada a Eventos para principiantes con Apache Kafka
Clean Architecture
Modelo, vista, controlador
Introduction to Docker Containers - Docker Captain
Las diez principales amenazas para las bases de datos
Service discovery with Eureka and Spring Cloud
Sistemas operativos distribuidos y sistemas distribuidos
클라우드 네이티브로의 전환을 위한 여정
IEEE 1016 1998: Software design description
Cuestionario procesos
D2 domain driven-design
¿Qué es docker?
Patrones diseño y arquitectura
Kubernates vs Openshift: What is the difference and comparison between Opensh...
Kotlin: El despertar de la fuerza!
Publicidad

Similar a Introduccion al middleware (20)

PDF
PPTX
Clase002
PPTX
Arquitectura de sistemas distribuidos-grupo Maria
PPTX
Arquitectura de sistemas distribuidos-Grupo de Maria
PPT
07 middleware
PPT
07 middleware
PPTX
sistemas distribuidos
PPTX
SEMANA 6.pptx
DOCX
Abad yacila y granda cardoza melissa
PPTX
Backend middleware frontend (2)
DOCX
Sistemas arquitectónicos centralizados, descentralizados e híbridos.
PDF
Sesion 08 tel202 2010-1
PPS
Seguridad de sistemas distribuidos
DOC
Diccionario 2
DOCX
Sistemas Distribuidos
PPTX
Términos de Programación Distribuida 6
PDF
Modelos de sistema
PPTX
SERVIDORES – GNU LINUX
DOCX
Respuestas
PPTX
Sistemas distribuidos 2
Clase002
Arquitectura de sistemas distribuidos-grupo Maria
Arquitectura de sistemas distribuidos-Grupo de Maria
07 middleware
07 middleware
sistemas distribuidos
SEMANA 6.pptx
Abad yacila y granda cardoza melissa
Backend middleware frontend (2)
Sistemas arquitectónicos centralizados, descentralizados e híbridos.
Sesion 08 tel202 2010-1
Seguridad de sistemas distribuidos
Diccionario 2
Sistemas Distribuidos
Términos de Programación Distribuida 6
Modelos de sistema
SERVIDORES – GNU LINUX
Respuestas
Sistemas distribuidos 2
Publicidad

Más de Tensor (20)

PDF
Libertad
PPTX
Método de la regla falsa (o metodo de la falsa posición)
PPTX
Metodo de la bisección
PPTX
Transito vehicular
PPTX
Teoria de colas
PDF
Practica 7 2016
PDF
Practica 6 2016
PPTX
Game maker
PDF
Practica 5 2016
PPTX
Procesamiento de archivos
PPTX
Cadenas y funciones de cadena
PPTX
Simulación en promodel clase 04
PDF
Reduccion de orden
PDF
Variación+de+parametros
PDF
Coeficientes indeterminados enfoque de superposición
PDF
Bernoulli y ricatti
PDF
Practica no. 3 tiempo de servicio
PPTX
Clase 14 ondas reflejadas
PDF
Ondas em
PPTX
Clase 7 ondas electromagneticas
Libertad
Método de la regla falsa (o metodo de la falsa posición)
Metodo de la bisección
Transito vehicular
Teoria de colas
Practica 7 2016
Practica 6 2016
Game maker
Practica 5 2016
Procesamiento de archivos
Cadenas y funciones de cadena
Simulación en promodel clase 04
Reduccion de orden
Variación+de+parametros
Coeficientes indeterminados enfoque de superposición
Bernoulli y ricatti
Practica no. 3 tiempo de servicio
Clase 14 ondas reflejadas
Ondas em
Clase 7 ondas electromagneticas

Último (20)

PDF
COMPLETO__PROYECTO_VIVAN LOS NIÑOS Y SUS DERECHOS_EDUCADORASSOS.pdf
PDF
Escuela de Negocios - Robert kiyosaki Ccesa007.pdf
PDF
OK OK UNIDAD DE APRENDIZAJE 5TO Y 6TO CORRESPONDIENTE AL MES DE AGOSTO 2025.pdf
PDF
La Evaluacion Formativa en Nuevos Escenarios de Aprendizaje UGEL03 Ccesa007.pdf
PDF
DI, TEA, TDAH.pdf guía se secuencias didacticas
PDF
Unidad de Aprendizaje 5 de Educacion para el Trabajo EPT Ccesa007.pdf
PDF
IDH_Guatemala_2.pdfnjjjkeioooe ,l dkdldp ekooe
PDF
Híper Mega Repaso Histológico Bloque 3.pdf
PDF
Escuelas Desarmando una mirada subjetiva a la educación
PDF
Punto Critico - Brian Tracy Ccesa007.pdf
PDF
Crear o Morir - Andres Oppenheimer Ccesa007.pdf
PDF
Guia de Tesis y Proyectos de Investigacion FS4 Ccesa007.pdf
PDF
Unidad de Aprendizaje 5 de Matematica 1ro Secundaria Ccesa007.pdf
PDF
Didactica de la Investigacion Educativa SUE Ccesa007.pdf
PPTX
Presentación de la Cetoacidosis diabetica.pptx
PPTX
Doctrina 1 Soteriologuia y sus diferente
PDF
TRAUMA_Y_RECUPERACION consecuencias de la violencia JUDITH HERMAN
PDF
GUIA DE: CANVA + INTELIGENCIA ARTIFICIAL
PDF
5°-UNIDAD 5 - 2025.pdf aprendizaje 5tooo
PDF
Romper el Circulo de la Creatividad - Colleen Hoover Ccesa007.pdf
COMPLETO__PROYECTO_VIVAN LOS NIÑOS Y SUS DERECHOS_EDUCADORASSOS.pdf
Escuela de Negocios - Robert kiyosaki Ccesa007.pdf
OK OK UNIDAD DE APRENDIZAJE 5TO Y 6TO CORRESPONDIENTE AL MES DE AGOSTO 2025.pdf
La Evaluacion Formativa en Nuevos Escenarios de Aprendizaje UGEL03 Ccesa007.pdf
DI, TEA, TDAH.pdf guía se secuencias didacticas
Unidad de Aprendizaje 5 de Educacion para el Trabajo EPT Ccesa007.pdf
IDH_Guatemala_2.pdfnjjjkeioooe ,l dkdldp ekooe
Híper Mega Repaso Histológico Bloque 3.pdf
Escuelas Desarmando una mirada subjetiva a la educación
Punto Critico - Brian Tracy Ccesa007.pdf
Crear o Morir - Andres Oppenheimer Ccesa007.pdf
Guia de Tesis y Proyectos de Investigacion FS4 Ccesa007.pdf
Unidad de Aprendizaje 5 de Matematica 1ro Secundaria Ccesa007.pdf
Didactica de la Investigacion Educativa SUE Ccesa007.pdf
Presentación de la Cetoacidosis diabetica.pptx
Doctrina 1 Soteriologuia y sus diferente
TRAUMA_Y_RECUPERACION consecuencias de la violencia JUDITH HERMAN
GUIA DE: CANVA + INTELIGENCIA ARTIFICIAL
5°-UNIDAD 5 - 2025.pdf aprendizaje 5tooo
Romper el Circulo de la Creatividad - Colleen Hoover Ccesa007.pdf

Introduccion al middleware

  • 1. Introducción al middleware Introducción Temario Introducción Web Services Middleware basado en Mensajes Portales y mashups Enterprise Service Bus (ESB)
  • 2. Introducción ¿Qué es el middleware? o Es el “pegamento” (glue) que ayuda a la conexión entre programas (o bases de datos). o Más formalmente: Es el soft-sistema que permite las interacciones a nivel de aplicación entre programas en un ambiente distribuido. Por soft-sistema (system software) se entiende el software posicionado entre una aplicación y un sistema de menor nivel (S.Op, DBMS, Servicio Red). Un ambiente computacional se dice distribuido cuando sus programas o BDs están ubicados en dos o más computadores. Introducción ¿ Para qué usar middleware ? o Dadas dos aplicaciones que se quieren conectar, se usa para resolver la comunicación entre los procesos. Si las aplicaciones se conectan directamente a soft de red, entonces no se necesita middleware. Si no hay middleware se complica el desarrollo de aplicaciones: Se debe programar módulos de bajo nivel. Este desarrollo se repite para cada aplicación a conectar. o El soft de middleware permite realizar esta conexión a través de interfases de alto nivel, que permiten, por ej., ver un procedimiento remoto como si fuera local.
  • 3. INCO - Facultad de Ingeniería – Montevideo, Uruguay Introducción Escenarios de uso: o Cliente/Servidor en la misma máquina. Se usa en sistemas de un computador, por ej. pequeñas oficinas, en casa, o en portables. o C/S a pequeña escala. Aplicación clásica en una LAN con un único servidor. Es la forma predominante de C/S. o C/S a gran escala. Esquema multiservidor, que dan imagen de un único sistema. o C/S altamente distribuido. Cada máquina es cliente y servidor, y negocia con las otras máquinas mediante agentes. Programa Sistema de Red Programa Sistema de Red Introducción Esquema de conexión sin middleware. o Los programas deben resolver la conexión usando medios de bajo nivel, cercanos al Sistema de Red.
  • 4. Programa Sistema de Red Middleware Programa Sistema de Red Middleware Introducción Esquema de conexión con middleware. o La capa de Middleware permite programar la comunicación mediante herramientas de alto nivel. o Por ejemplo: procedimientos, mensajes, acceso a objetos. Introducción: Arquitectura (1) Aplicación en Arquitectura +3 niveles. Servidor WEB Cliente Cliente Cliente Cliente Cliente Servidor Aplicaciones Servidor DBMS Servidor DBMS Servidor Aplicaciones Servidor Aplicaciones Servidor Aplicaciones Conexión a DBMS ¿? TPM¿? TPM¿? Conexión a DBMS RMI
  • 5. Introducción: Tipos Middl. (1) Comunican 2 sistemas: o Drivers a DBMSs. Acceso a DBMS desde un programa u otro DBMS. o Remote Procedure Call (RPC, RMI, Remoting). Invocación a procedimientos remotos como si fueran locales al programa. o Web Services. Invocación a procedimientos a través de HTTP. Comunican múltiples sistemas: o Message Oriented Middleware (MOM). Envío de mensajes entre aplicaciones. o Object Request Brokers (ORB). Invocación a procedimientos y propiedades de objetos. Introducción: Tipos Middl. (2) Comunican múltiples sistemas: o Intregration brokers: Comunican “n” aplicaciones en base a mensajes. El “Integration broker” centraliza las comunicaciones: Recibe mensajes de las aplicaciones. Aplica reglas para determinar a qué aplicaciones deben enviarse. o Enterprise Service Bus: Implementa mecanismos de comunicación: Basado en invocaciones (de tipo RMI, Remoting, WS). Basado en mensajes. Son la evolución de los ORBs e Integration Brokers.
  • 6. Introducción: Arquitectura (2) Aplicación en Arquitectura +3 niveles. Servidor WEB Cliente Cliente Cliente Cliente Cliente Servidor Aplicaciones Servidor DBMS Servidor DBMS Servidor Aplicaciones Servidor Aplicaciones Servidor Aplicaciones Conexión a DBMS MOM TPMTPM TPMESB Conexión a DBMS RPC Introducción: Tipos Middl. (3) Portal servers. o Integrar aplicaciones (modularizadas) que se ejecutan en Portales. Java: Servidores JSR 168 y JSR 286: portlets. Microsoft: Sharepoint: webparts. o Son integrables a través del protocolo WSRP: Web Service for Remote Portal. Mashup servers. o Integran aplicaciones heterogeneas. o Por ejemplo: Mapas, portlets/webparts, email, etc.
  • 7. Introd.: características (1) Los middleware se caracterizan por implementar la interacción entre las aplicaciones de diferentes formas: o Interacción sincrónica: Cuando una aplicación es “invocada” por otra, se ejecuta inmediatamente. o Interacción (sincrónica) bloqueante: Cuando una aplicación invoca a otra, la primera queda esperando la respuesta de la segunda. o Interacción (sincrónica) no-bloqueante: ¿ como sería ? Introd.: características (2) o Interacción asíncrona: Una aplicación invoca otra pero no espera su ejecución inmediata. Se implementa en base a mensajes. o Asegurando consistencia en los datos: Transaccionalidad (2PC). Consistencia en ambiente debilmente acoplado. Mensajes persistentes.
  • 8. Evolución Middleware Semantic Management of Middleware. Ramesh Jain. Amit Sheth. Springer 2006. Programa Sistema de Red Comm Middleware Programa Sistema de Red Comm Middleware SQL o APIPhysical Link Network Transport Session Presentation Application Basic Middleware Características: o Resuelven la comunicación entre 2 programas. o Cubre de las capas 5 a la 7 del stack OSI. Ejemplos: o RPC, MOM, Data Middleware.
  • 9. RPC: Remote Procedure Call Esconde la red, invocando procedimientos. o Cliente invoca a una función del servidor remoto y se bloquea hasta tener el resultado. o Se pasan parámetros de la forma normal. Componentes: o Aplicaciones: cliente y servidor se programan como locales. o Stub: Empaqueta, convierte... Lenguaje IDL (Interface Definition Language). Compilador IDL genera Stubs (C y S), que se linkeditan al prog. o Runtime: En cliente invoca el RPC y se bloquea. En servidor, recibe invocaciones (prioridades, seguridad... ) INCO - Facultad de Ingeniería – Montevideo, Uruguay RPC aplicación stub runtime 1 2 10 9 aplicación stub runtime 6 7 5 4 8 3 cliente servidor Ejecuta aplicación, llama a función. Sigue la ejecución. Empaqueta, convierte. Llama al runtime. Desempaqueta, convierte. Invoca RPC. Se bloquea. Recibe resultado. Ejecuta función. Envía resultado. Desempaqueta, convierte. Empaqueta, convierte. Recibe RPC. Levanta servicio. Envía resultado.
  • 10. RPC Consideraciones: o Conversión de datos: XDR: External Data Representation (canónica). NDR: Network Data Representation (en C o en S). o Seguridad: autenticación, encriptación, … o Tolerancia a fallos: reintentos, semántica de sólo una vez. o Servicio de directorio: Cliente puede invocar a un servidor conocido (hard-coded) o preguntar quien corre el servicio (binding). o Runtime en servidor: Según el servidor, se podría priorizar llamados, controlar seguridad, manejar threads, controlar acceso a recursos compartidos. Asynchronous Middleware Permiten activar un proceso sin que el “invocador” quede bloqueado o Facilita la integración de aplicaciones en contextos de acoplamiento débil. Basado en envio de mensajes. o Por eso se les conoce como Message Oriented Middleware (MOM).
  • 11. MOM: Message Oriented Middleware Comunicación usando colas de mensajes: o Aplicaciones sólo ponen y sacan mensajes de colas. o No se conectan. C y S pueden correr en diferentes tiempos. o No necesariamente se requiere respuesta. Consideraciones: o Se pueden implementar esquemas 1-N o N-1 Muchos clientes, varias instancias del servidor. o Colas pueden estar en disco o en memoria. o Pueden ser FIFO, por prioridades, balance de carga... cola1 cola2 RPC vs. MOM RPC: o Síncrono: Se requiere una conexión. Cliente se bloquea. o Respuesta inmediata. Se asegura tiempo de respuesta. o Ideal para aplicaciones que sincronizar acciones. o Ejemplo: Aplicaciones interactivas, transacciones. MOM: o Asíncrono: Clente y servidor operan en diferentes tiempos. o Respuesta (eventualmente) lenta. No se asegura totalmente un tiempo de respuesta. o Ideal para informar, para aplicaciones poco conectadas.
  • 12. Data Middleware Características: o Conectan programas con DBMS o DBMSs entre si a través de un API, con uso opcional de lenguaje de consulta. o Fuertemente asociados a tecnologías de DBMS. o Incluyen un componente cliente y otro servidor. Ejemplos: o ODBC, OLEDB, JDBC Programa Sistema de Red Middleware DBMS (cli) DBMS Sistema de Red Middleware DBMS (srv) SQL o API INCO - Facultad de Ingeniería – Montevideo, Uruguay SQL Middleware Objetivo ideal: o Diferentes DBMS, que dan la ilusión de ser un único sistema: sistema federado. o Diferentes clientes accediendo al sistema federado. Problema: o SQL no es tan estandar: SQL (‘86), SQL2 (‘92), SQL3 (‘99). Cada vendedor tiene sus propias extensiones (dialectos). o Diferencias en: APIs (Application Programming Interface). Driver: Runtime que acepta llamadas, formatea mensajes (FAP: Format and Protocols) y maneja el intercambio. Stacks. Sólo algunos usan transp standard: sockets, named pipes
  • 13. JDBC Driver Driver JDBC Driver Manager Driver Driver JDBC Driver Manager 2 niveles 3 niveles Platform Middleware Platform Middleware Características: o Permiten la comunicación entre programas a través de mecanismos de mayor nivel que los otros Basic Middleware. o Combinan técnicas de los Basic Middleware. Sistema de Red Programa Sistema de Red Platform Middleware Programa Programa
  • 14. Platform Middleware Además proveen funciones tales como: o Gestión de memoria y procesos del S. Op. o Carga de programas, inicio y fin, pasaje de mensajes. o A veces balance de carga y gestión de transacciones. Ejemplos: o Application Servers y ORBs (CORBA, JEE, .NET.) o TPM (Tuxedo, CICS, Encina ) o Integration Brokers (IBM MQSeries, MS Biztalk). o Enterprise Service Bus. ORBs: Object Request Broker Permiten: o Programar ensamblando componentes (building blocks). Empaquetados como piezas de código indep y autocontenidas. No está asociado a un programa, lenguaje o implementación. Accedidos por invocaciones a métodos. Interfase bien definida (IDL: Interface Definition Language). o Portabilidad e Interoperabilidad: Transparentes al lenguaje, compilador, ubicación, s. operativo. Se importan dentro de paletas o toolbars. Puede ser invocado a través de espacios de direcciones, redes, lenguajes, sist operativos y herramientas.
  • 15. ORB: Object Request Broker Es un bus de comunicación entre objetos: o Permite hacer/recibir requerimientos en forma transparente: Objetos locales o remotos. o Funcionamiento: Objeto cliente invoca un método en un objeto remoto. ORB: Localiza una instancia del objeto servidor. Invoca el método. Retorna el resultado al cliente. Applic Applic Applic ORB ORB: Object Request Broker Funcionalidades: o Control de transacciones y bloqueo: Integridad “todo o nada”. Locks para serializar acceso a recursos. o Persistencia. o Relacionamiento: Relaciones dinámicas o permanentes con otros componentes. o Auto-testeo: Correr programas de diagnóstico para determinar problemas. o Auto-instalación: Instalarse y registrarse con S.O y/o registry. Des-instalarse.
  • 16. INCO - Facultad de Ingeniería – Montevideo, Uruguay Procesamiento de Transacciones Flat transactions: todo o nada o Problemas con: Validaciones / anulaciones parciales: Interacción con humanos: Presentación de opciones en pantalla, usuario debe elegir. ¿Cuánto tiempo quedan los locks? Transacciones grandes: Se debe poder guardar contexto, para luego retomar. Operaciones masivas: Actualizaciones de millones de registros. ¿Y si falla? Operaciones en grandes redes o internet: No sirve tenerlas sincronizadas en el commit. Monitores Transaccionales Objetivo: o Es un sistema especializado en la creación, ejecución y manejo de aplicaciones de procesamiento de transacciones. Características: o Sistemas transaccionales tienen: Muchas transacciones pequeñas. Muchos usuarios concurrentes. o Coordinan las transacciones con: Subsistemas ACID locales. Manejadores de recursos. DBMS, manejadores de colas, objetos persistentes, transporte de mensajes. aplicación TPM DBMS aplicación aplicación DBMS
  • 17. Monitores Transaccionales OTM: Object Transaction Monitors o Combinan ORBs con monitores de transacciones. Maneja contenedores que corren los componentes que brindan los servicios. o Maneja objetos logrando: transaccionalidad, robustez, persistencia, seguridad, performance. o Carga un conjunto de objetos (pool), distribuye la carga, provee tolerancia a fallos, y coordina transacciones multi-componentes. Monitores Transaccionales TPM OTM
  • 18. Servidores de Aplicaciones Contexto: o Arquitecturas en múltiples capas: Cliente: interface usuario. Servidor Web: Acceso HTTP, interface usuario. Servidor de Aplicaciones: Lógica del negocio. Lógica de los datos. Gestión de Transacciones. Acceso a la BD. Balance de carga en configuraciones paralelas. Servidor de Base de Datos: almacenamiento. Servidores de Aplicaciones Cubren: o Nivel Servidor de Aplicaciones. o Casi seguro: Gestión de Transacciones. o Web Server. Grandes familias: o JEE: Propuesta de Java. o COM/DCOM/COM+ .NET: Propuestas de MS
  • 19. Gateways Características: o Realizan la traducción entre 2 o más protocolos. o Existen gateways para: DBMS, MOM. Platform Midd: Corba COM, .NET JEE. Middleware A Sistema de Red Programa Sistema de Red Middleware A Programa Middleware B Gateway Prot. B Sistema de Red Mid A Mid B Gateway Prot. B Platform Middleware Middleware que permite integrar aplicaciones a escala empresarial. Provee al menos: o Capacidad para integrar aplicaciones: Syncrónica y asincrónicamente En equipos distribuidos. o Control de transacciones. Incluye: o Application Servers. o Integration Brokers. o Enterprise Service Bus.
  • 20. Integration Broker Características: o Son intermediarios que facilitan la interacción entre programas. Principalmente orientados a mensajes. o Proveen dos funciones de interés: Transformation: Transforma mensajes o contenidos de archivos. Transforma modelos de datos de diferentes aplicaciones a un modelo común. Flow automation (or flow control): Son tratamientos inteligentes de flujos, por ejemplo: ruteo inteligente y/o basado en contenidos. Integration Broker Características: o También pueden ofrecer: Business process management (p.ej, workflow) Interpretan reglas de negocio y responden a eventos de negocio y excepciones. Ayudan a automatizar tareas. Message warehousing. Administrative monitoring. o Algunos requieren un MOM en especial (ej. IBM MQSeries),otros tienen interfases a una gran variedad de productos.
  • 21. Integration Brokers Arquitec. “Hub & Spoke”: o Altamente centralizada. Centrada en el HUB (message broker) es una pieza monolítica de software. Realiza las operaciones de transformación y ruteo de mensejes. Estas funcionalidades no puede ser conectadas a otro HUB. Estos servicios son propietarios. o Los Spokes son aplicaciones a integrar. o La excesiva centralización complica la escalabilidad. ESB Arquitectura de BUS. o Incluye procesos que ejecutan las funcionalidades tales como ruteo, transformaciones, transacciones, etc. o Estos servicios son conectables a otros ESB. o Varios ESB pueden conectarse y hacer visibles los servicios publicados: favorece la escalabilidad. o Están basados en estándares y/o facilitan la interoperabilidad entre aplicaciones. Por ejemplo: Web Services.
  • 22. ESB, SOA, Applic. Server y eventos ESB como Bus de Servicios: o Fuertemente asociados a la implementación de arquitecturas orientadas a servicios. Las aplicaciones a integrar se “publican” como ofreciendo y/o consumiendo servicios. ESB interactuando con Applic. Servers o Se construyeron pensando en integrar aplicaciones ejecutándose en Applic. Servers. Las funcionalidades asíncronas: o Basadas en colas de mensajes. o Incluyen gestión de eventos para la suscripción (a mensajes publicados en colas o canales) ESB vs. Integration Brokers o Los ESB resultan más abiertos y escalables. o También más interoperables con otros productos. o Las ventajas se deben en gran parte: La historia y evolución de los productos. Los ESB surgieron posteriormente a los Integration Brokers, y corrigieron muchas de sus defectos. Varios ESB se basan en Integration Brokers: Biztalk Server de Microsoft. Productos de IBM WebSphere.
  • 23. Middleware para User interaction Las aplicaciones que interactuan con el usuario también deben integrarse: o Con los procesos de back-end, que implementan funcionalidades de negocio. o Con otros aplicaciones que implementan interacción con el usuario. o Con servicios utilitarios: Por ejemplo: mapas, gestión de videos, etc. ¿ Como hacer posible esta integración ? User interaction Middleware o Modularización de aplicaciones. Las aplicaciones que implementan la User Interaction deben implementarse basadas en componentes: o Estandarización de protocolos. Estas componentes deben poder interoperar entre si lo más posible. o Orientación a servicios. La interacción entre estos componentes y los otros externos debe seguir los mismos modelos que con los otros middleware.
  • 24. User interaction Middleware Portales (Portal Servers). o Son servidores de: “portlets” en plataforma Java. “webparts en plataforma Microsoft (Sharepoint). o La interacción entre ellos es posible: Dentro de la misma plataforma. Utilizando WSRP (Web Service for Remote Portal) en plataformas diferentes. o Se integran con las Platform Middleware. User Interaction Middleware Mashup. o Apuntan a facilitar el desarrollo de aplicaciones que combinan multiples funcionalidades con User Interaction. o Por ej: Mapas + portlets + email + chat + videos. o Menos estandarizado que los Portal Server. o Compatibles con los Portal Servers. o Tratan de ser más livianos que los Portal Servers.