Dr. José Raúl Pérez Cázares (
[email protected])
ITESM
Departamento de Ciencias
Computacionales
Interoperabilidad
PS
Macintosh
DECStation
OS/2
MacOS
UNIX
?
WAN
Crear aplicaciones distribuidas en
ambientes heterogéneos
es una tarea muy difícil.
Middleware
Cómputo Cliente/Servidor
Cliente
Acceso Remoto
Servidor
Base
de datos
Lógica de
Presentación
P
Gestión de
Datos
D
Lógica de
Negocio
N
+
Lógica necesaria para la distribución
Cómputo Cliente/Servidor-2
El modelo ISO/OSI
P
P
N
P
N
Lógica de distribución
N
D
N
D
D
P
P
N
D
P
N
D
D
Presentación
Distribuida
Presentación
Remota
Lógica
Distribuida
Gestión de datos
Remota
Gestión de datos
Distribuida
La capa de transporte
• Nivel 4 del modelo OSI
• Relacionada con el
transporte de información
en la red
• 2 alternativas en redes
UNIX/Windows:
– TCP and
– UDP.
Aplicación
Presentación
Sesión
Transporte
Red
Enlace de datos
Física
Aplicación
Presentación
Sesión
Transporte
Red
Enlace de datos
Física
Implementando aplicaciones
con TCP
Aplicación
Presentación
Sesión
Petición
Transporte
Input Stream
Output Stream
Respuesta
Aplicación
Presentación
Sesión
Transporte
Implementando aplicaciones
con UDP
Aplicación
Presentación
Sesión
Transporte
Datagramas
de Petición
Aplicación
Presentación
Sesión
Transporte
Datagramas de Respuesta
El uso directo de protocolos de
transporte implica:
Mapeo manual de los parámetros de la petición hacia
streams de bytes
Resolución manual de la heterogeneidad de los datos
Identificación y localización manual de componentes
distribuidos
Activación manual de los componentes
No se garantiza la seguridad mediante tipos de datos
Sincronización manual de la interacción entre
componentes distribuidos
No se garantiza la calidad de servicio
Middleware
Para apoyar a los diseñadores
de aplicaciones distribuidas se
requiere una capa de software
que implemente servicios de
sesión y presentación
Aplicación
Presentación
Sesión
Transporte
Red
Enlace de datos
Física
Middleware-2
• Es una capa que se encuentra entre las aplicaciones y
la red
• Hace la distribución transparente
• Resuelve la heterogeneidad de:
– Hardware
– Sistemas operativos
– Redes
– Lenguajes de programación
Middleware-3
Programación portable y facil de
distribuir de las aplicaciones
Aplicación
Aplicación
API de
Servicios de Middleware
API de
Servicios de Middleware
Código para
la plataforma A
Código para
la plataforma B
Servicios del Middleware
Los servicios ofrecidos por la capa
Middleware son :
• Directorio
• Comunicaciones
• Seguridad
• Administración de transacciones
Plataforma A
Plataforma B
• • •
Beneficios del Middleware
Tipos de middleware
• Simplifica el desarrollo de aplicaciones ya que reduce la
cantidad de código a desarrollar. Los desarrolladores pueden
concentrarse en los aspectos primordiales de la aplicación.
• Se libera al programador de las complejidades de
comunicaciones, de construir y mantener un
directorio, y de desarrollar funciones de seguridad.
• Una aplicación desarrollada para una plataforma puede ser
portada hacia plataformas distintas que utilicen la misma
interfaz. Los vendedores de software no requieren mantener
una versión para cada plataforma existente en el mercado.
• Remote Procedure Call (RPC)
• Message Oriented Middleware (MOM)
• TP Monitors
• Object Request Brokers (ORB)
• Data base oriented middleware
Remote Procedure Call
RPC es una extensión del mecanismo de invocación
de procedimientos locales para permitir que un cliente
invoque a un servidor de manera transparente como si
ambos residieran en el mismo sistema.
Cliente
Stub
Servidor
Stub
Cliente
Un Sistema RPC
Servidor
Llamador
Stub
Servicio
RPC
Servicio
RPC
Stub
Proced.
Llamado
Call
A
E
Call
B
D
C
Return
Return
RED
Desarrollo de aplicaciones con RPC
Desarrollo de aplicaciones con RPC-2
API
Definición
del servicio
en IDL
Compilador
IDL
Cliente
Stub
Servidor
Stub
API = Application Programming Interface
IDL = Interface Definition Language
Fuente en IDL
Compilador
IDL
RPC
Run
Time
RPC
Run
Time
Procedimiento
remoto
Stub
SERVIDOR
Procedimiento
local
Stub
CLIENTE
RPCs Comerciales
• Distributed Computing Environment (DCE) de Open
Software Foundation (OSF)
• Open Network Computing (ONC) de SUN
Microsystems
Middleware Orientado a
Objetos
Motor
1..4
1..4
1
1
Avión
1
1
Avión militar Avión comercial
Piloto
1..2
1..2
*
*
Vuelo
*
*
1
1
*
*
1
1
Línea aérea
Motor
1..4
1..4
1
1
Avión
1
1
Avión militar Avión comercial
Avión de cargaAvión de pasajeros
Avión de cargaAvión de pasajeros
Object Request Broker
Middleware Orientado a Objetos-2
Tecnologias existentes de middleware OO
• RMI de SUN
• CORBA del Object Management Group (OMG)
• Dot Net de Microsoft
• Cada una tiene su propio IDL el cual debe incluir
tipos objeto, manejo de excepciones, herencia, ...
• Cada uno tiene una manera de hacer referencia a
un objeto específico
Desarrollo de Aplicaciones con
ORB
Definición de
interfases
Generación del
Stub del servidor
Implementación
del servidor
Registro del
servidor
Generación del
Stub del cliente
Implementación
Del cliente
Desarrollo de Aplicaciones con
ORB-2
Definiciones IDL
Compilador IDL
Stub
Stub
Cliente
Servidor
implementación
Código de
del servidor
Database oriented middleware
GUI
Aplicación
SQL
Middleware de
gestión de datos
SQL
SQL
SQL
dBase
Oracle
Progress
Es un mecanismo para pasar comandos
SQL y sus datos asociados desde un
proceso cliente hasta un servidor (no
necesariamente relacional). El
middleware transporta el comando y lo
traduce en el dialecto SQL de la
plataforma.
El problema de las bases múltiples
Aplicación
SQL API
Oracle
Driver
SQL API
SQL API
SQL API
Progress
Driver
Paradox
Driver
SQL Server
Driver
FAP
Oracle
FAP
Progress
FAP
Paradox
FAP
SQL Server
Oracle
Progress
Paradox
SQL
Server
FAP = Format And Protocols
Solución mediante interfaz común
Aplicación
SQL API Común
Paradox
Driver
Progress
Driver
Oracle
Driver
SQL Server
Driver
FAP
Oracle
FAP
Progress
FAP
Paradox
FAP
SQL Server
Oracle
Progress
Paradox
SQL
Server
Solución mediante interfaz común-2
Algunas propuestas de estándares para APIs SQL
son :
• Embedded SQL (ISO SQL-92)
• Open Database Connectivity (ODBC) de Microsoft
ODBC
ODBC (Open Database Conectivity ) es un componente de
la estrategia Windows Open Services Architecture (WOSA)
de Microsoft para el acceso a datos en ambientes heterogeneos
Aplicación
Aplicación
Aplicación
ODBC Driver Manager (Microsoft)
Oracle
Driver
Progress
Driver
Paradox
Driver
SQL Server
Driver
FAP
Oracle
FAP
Progress
FAP
Paradox
FAP
SQL Server
Oracle
Progress
Paradox
SQL
Server
ODBC API
Service
Provider
Interface
(SPI)
ODBC
Solución mediante "Open SQL Gateway"
ODBC es soportado tanto por proveedors de RDBMS
como por proveedores de herramientas de desarrollo.
ODBC es un cliente, no es el middleware completo. A mas
bajo nivel se utiliza el middleware propietario de la base de
datos. Un cliente debe entonces manejar todo la pila de
componentes de ODBC y el middleware propietario de la
base específica.
Aplicación
SQL API Común
Gateway Driver
FAP del
Gateway
Gateway
Server
Progress
Gateway
Server
Oracle
Gateway
Server
Paradox
Gateway
Server
SQL
Server
Solución mediante "Open SQL Gateway"-2
Algunas propuestas de estándares para SQL
Gateways son :
• Remote Data Access (RDA) de ISO/SAG (SQL
Access Gruop)
• Distributed Relational Data Access (DRDA) de IBM
• Enterprise Data Access/SQL (EDA/SQL) de
Information Builders Inc (IBI)
EDA/SQL
Aplicación
Decision Support System
SQL API
EDA Extender
EDA/Link Communications
EDA/SQL
FAP
EDA/SQL
Server
Drivers
Oracle
Progress
Paradox
SQL
Server
Comentarios de: Middleware (0)
No hay comentarios