Middleware z Dr. José Raúl Pérez Cázares (raul.perez@itesm.mx) z ITESM z Departamento de Ciencias Computacionales Interoperabilidad Macintosh PS Cómputo Cliente/Servidor DECStation Servidor OS/2 MacOS UNIX Cliente Base de datos Acceso Remoto ? WAN Crear aplicaciones distribuidas en ambientes heterogéneos es una tarea muy difícil. Lógica de Presentación P Lógica de Negocio N Gestión de Datos D + Lógica necesaria para la distribución Cómputo Cliente/Servidor-2 P P N P El modelo ISO/OSI Aplicación P N D P N Presentación Sesión Lógica de distribución P N D N D N D Transporte D D Red Enlace de datos Física 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. Implementando aplicaciones con TCP Aplicación Aplicación Aplicación Presentación Presentación Presentación Sesión Transporte Sesión Petición Sesión Red Enlace de datos Física Transporte Input Stream Transporte Output Stream Respuesta El uso directo de protocolos de transporte implica: Implementando aplicaciones con UDP Mapeo manual de los parámetros de la petición hacia streams de bytes Aplicación Aplicación Presentación Sesión Datagramas de Petición Transporte Presentación Sesión Activación manual de los componentes No se garantiza la seguridad mediante tipos de datos Transporte Datagramas de Respuesta Identificación y localización manual de componentes distribuidos Sincronización manual de la interacción entre componentes distribuidos No se garantiza la calidad de servicio Middleware-2 Middleware Aplicación Para apoyar a los diseñadores de aplicaciones distribuidas se requiere una capa de software que implemente servicios de sesión y presentación Resolución manual de la heterogeneidad de los datos Presentación Sesión Transporte Red Enlace de datos Física • 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 Servicios del Middleware Los servicios ofrecidos por la capa Middleware son : Aplicación • Directorio API de Servicios de Middleware API de Servicios de Middleware • Comunicaciones • Seguridad Código para la plataforma A Código para la plataforma B Plataforma A Plataforma B • Administración de transacciones Beneficios del 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. ••• Tipos de middleware • Remote Procedure Call (RPC) • Message Oriented Middleware (MOM) • Se libera al programador de las complejidades de comunicaciones, de construir y mantener un directorio, y de desarrollar funciones de seguridad. • TP Monitors • Object Request Brokers (ORB) • 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. • 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. Un Sistema RPC Cliente Llamador Stub Servicio RPC Servicio RPC B A Servidor Stub Proced. Llamado Call Call C Servidor Cliente Stub Stub D E Return Return RED Desarrollo de aplicaciones con RPC Desarrollo de aplicaciones con RPC-2 Fuente en IDL API Definición del servicio en IDL Cliente Stub Compilador IDL Compilador IDL Servidor Stub Procedimiento local Stub RPC Run Time RPC Run Time Stub Procedimiento remoto SERVIDOR API = Application Programming Interface IDL = Interface Definition Language CLIENTE RPCs Comerciales Middleware Orientado a Objetos Motor Motor Piloto 1..4 1 Avión1 • Distributed Computing Environment (DCE) de Open Software Foundation (OSF) 1..4 1..2 1 Avión 1 * * Vuelo 1 * 1 Avión militar Avión comercial Línea aérea Avión militar Avión comercial Avión de carga Avión de pasajeros Avión de carga Avión de pasajeros • Open Network Computing (ONC) de SUN Microsystems Object Request Broker Middleware Orientado a Objetos-2 Desarrollo de Aplicaciones con ORB 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 Definición de interfases Generación del Stub del servidor Generación del Stub del cliente Implementación del servidor Implementación Del cliente Registro del servidor Desarrollo de Aplicaciones con ORB-2 Database oriented middleware Definiciones IDL GUI Aplicación SQL Compilador IDL Middleware de gestión de datos Código de implementación del servidor Stub Stub 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. SQL dBase SQL SQL Oracle Progress Servidor Cliente El problema de las bases múltiples Solución mediante interfaz común Aplicación Aplicación SQL API SQL API SQL API SQL API Oracle Driver Progress Driver Paradox Driver SQL Server Driver FAP Oracle Oracle FAP Progress Progress FAP = Format And Protocols FAP Paradox Paradox SQL API Común Oracle Driver FAP SQL Server SQL Server FAP Oracle Oracle Progress Driver FAP Progress Progress Paradox Driver SQL Server Driver FAP Paradox Paradox FAP SQL Server SQL Server ODBC Solución mediante interfaz común-2 ODBC (Open Database Conectivity ) es un componente de Algunas propuestas de estándares para APIs SQL son : la estrategia Windows Open Services Architecture (WOSA) de Microsoft para el acceso a datos en ambientes heterogeneos Aplicación Aplicación Aplicación • Embedded SQL (ISO SQL-92) ODBC API ODBC Driver Manager (Microsoft) • Open Database Connectivity (ODBC) de Microsoft Oracle Driver FAP Progress FAP Oracle Oracle ODBC SQL Server Paradox Driver Progress Driver Driver FAP SQL Server FAP Paradox Progress Service Provider Interface (SPI) Paradox SQL Server Solución mediante "Open SQL Gateway" ODBC es soportado tanto por proveedors de RDBMS como por proveedores de herramientas de desarrollo. Aplicación SQL API Común 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. Gateway Driver FAP del Gateway Gateway Server Oracle Gateway Server Gateway Server Gateway Server Progress Paradox SQL Server EDA/SQL Solución mediante "Open SQL Gateway"-2 Algunas propuestas de estándares para SQL Gateways son : Aplicación Decision Support System SQL API EDA Extender EDA/Link Communications • Remote Data Access (RDA) de ISO/SAG (SQL Access Gruop) EDA/SQL FAP • Distributed Relational Data Access (DRDA) de IBM EDA/SQL Server • Enterprise Data Access/SQL (EDA/SQL) de Information Builders Inc (IBI) Drivers Oracle Progress Paradox SQL Server