Arquitectura Cliente/Servidor

Download Report

Transcript Arquitectura Cliente/Servidor

Tema V
Tecnología de objetos
distribuidos y arquitectura de
componentes.
1
Bibliografía
• Szyperski, C. 1998. Component Software. Addison-Wesley.
• Ruiz Cortés, 1998. A. CORBA: Una visión general.
http://www.lsi.us.es/~aruiz
• Sevilla Ruiz, D. 2000. CORBA & Components.
http://www.ditec.um.es/~dsevilla/ccm/.
• Object Management Group. 1995. CORBA Overview.
http://www.infosys.tuwien.ac.at/Research/Corba/OMG
• Bernabéu Aubán, J.M. 1999. Sistemas de Objetos Distribuidos: El estándar
CORBA. http://www.iti.upv.es/~josep/docencia/sdb/CORBA/CORBA.html
• Schmidt, D.C. 2000. Overview of CORBA.
http://www.cs.wustl.edu/~schmidt/corba.html
2
Índice
1. Introducción.
2. OMA (Object Management Architecture).
3. CORBA (Common Object Request Broker Architecture).
4. Conclusiones.
3
Introducción
Evolución de la arquitectura de los sistemas informáticos
C/S 2 capas
Sistemas monolíticos
Presentación
Negocio
C/S 3 capas
Presentación
Presentación
Negocio
Datos
Negocio
Negocio
Datos
Datos
BD
4
Arquitectura multicapa
subcapas
Presentación
Negocio
Datos
BD
5
Arquitectura de componentes (I)
(multicapa y 3-tier)
3:Component system
2:Component frameworks
1:Components
( tier  grada )
• Tier 1: Arquitectura de componentes individuales.
• Tier 2: Arquitectura de los marcos de componentes. Macrocomponentes definidos para realizar una función de negocio concreta.
• Tier 3: Arquitectura del sistema de componentes. Super-componente
que define todo el sistema.
6
Arquitectura de componentes (II)
• Cada componente del tier 3 se define con un conjunto de
componentes del tier 2, y cada uno del tier 2 por un
conjunto del tier 1.
• COMPONENTE = módulo + conjunto de recursos
– Módulo = conjunto de clases y puede que elementos de proceso no
orientados a objeto (procedimientos y funciones).
– Conjunto de recursos = múltiples interfaces que cada uno
representa un servicio ofrecido por el componente.
• COMPONENTE
 OBJETO
7
Arquitectura de componentes (III)
• Problemas:
– No basta una modelización correcta de jerarquía de
clases e interacciones, se necesita una infraestructura
(nivel de transporte) de comunicación que permita el
flujo transparente de mensajes entre objetos de distintas
aplicaciones en distintas máquinas
– Se debe evitar el crecimiento exponencial de interfaces
• Solución:
– Middleware de componentes
8
Arquitectura de componentes (IV)
• Alternativas:
– Sockets.
• Implementación costosa.
– Remote Procedure Calls (RPC).
• No soporta objetos explícitamente.
– Microsoft Distributed Component Object Model (DCOM)
• Menos maduro, menos portable y además propietario.
– Java Remote Method Invocation (RMI)
• Solo para JAVA.
– Common Object Request Broker Architecture (CORBA)
• Multiplataforma, multilenguaje, ...
9
OMA (Object Management Architecture)
• OMG: Object Management Group, Inc.
http://www.omg.org
– Fundado en 1989.
– Objetivo: Desarrollo de estándares para la reutilización,
portabilidad e interoperabilidad de software orientado a objetos
en entornos heterogéneos y distribuidos.
– Solución: Definen OMA (Object Management Architecture) de la
cual CORBA es una parte.
– Historia:
•
•
•
•
1991: CORBA 1.1
1995: CORBA 2.0 (Modelo de Referencia)
2000: CORBA 2.4 (actual)
2000-2001: CORBA 3.0 (Modelo de Componentes) (en desarrollo)
10
OMA: Objetivos técnicos
• Transparencia distribución
• Rendimiento local y
remoto
• Comportamiento dinámico
• Sistema de nombrado
• Consultas: nombre,
atributos, relaciones
• Control de la concurrencia
• Transacciones
• Robustez, disponibilidad
• Mantenimiento de
versiones
• Notificación de eventos
• Semántica de Relaciones
entre objetos
• API en C para todas las
operaciones
• Administración y gestión
• Internacionalización
• Estandarización
11
Arquitectura del modelo de referencia OMA
Application
objects
CORBA
facilities
CORBA 2.0 Object Request Broker (ORB)
Object services
(CORBAservices)
12
Object services (CORBAservices) (I)
• Definen 16 servicios comunes ofrecidos a los objetos:
– Naming service : Identificación de objetos
– Object security service : Servicio de seguridad
– Object trader service : Mercader de objetos. Los ofrece a los clientes.
– Object transaction service : Permite transacciones con commit-rollback
– Change management service : Gestor de versiones de implementación.
– Concurrency service : Gestión de bloqueos para permitir concurrencia
– Event notification service : Objetos que son mensajes de eventos
– Externalization service : Permite copiar objetos por valor
– Licensing service : Permite obtener licencias de uso de un objeto
– Lifecycle service : Crea, copia, mueve y borra objetos y grupos de
objetos relacionados
13
Object services (CORBAservices) (II)
– Object collections service : Crea colecciones de objetos (basado en
SMALLTALK) (árboles, listas, colas, conjuntos,...)
– Object query service : Permite localizar los objetos por el valor de
sus atributos (parecido al Trader, pero en lugar de servicios ofrece
atributos)
– Persistent object service : Permite al objeto sobrevivir a la
terminación del programa que lo creó
– Properties service : Asocia propiedades al objeto (modificable,
borrable o sólo lectura)
– Relationship service : Permite relaciones entre objetos
– Time service : Soluciona el problema del reloj asíncrono en los
SID. Usa time-stamping.
14
CORBAfacilities
• Definen servicios comunes ofrecidos a las aplicaciones:
– Horizontales: define colecciones de objetos prefabricados
•
•
•
•
Interfaz de usuario
Gestión de la información
Gestión de sistemas
Gestión de tareas
– Verticales: define servicios comunes para un dominio completo
(framework tier)
•
•
•
•
•
•
Objetos de negocio
Comercio electrónico
Finanzas
Manufacturación
Medicina
Telecomunicaciones
15
Application objects
• Definen servicios específicos de un determinado negocio o
aplicación.
• Suponen el nivel más alto de los servicios soportados por la
arquitectura OMA
16
CORBA
(Common Object Request Broker Architecture)
• CORBA es un middleware orientado a objetos / componentes.
• Los objetos cliente solicitan servicios a los objetos servidor
mediante invocación de método
• Separa interfaz e implementación
• Es independiente del lenguaje: los objetos clientes y servidores
se implementan en cualquier lenguaje (de los soportados)
• Crea transparencia de localización a través del ORB :
–
–
–
–
de objetos: la invocación siempre se hace en local
de red: el ORB la gestiona
de activación: los servidores se activan automáticamente
de estado persistente: permite que el servidor guarde persistencia y es
transparente al cliente
17
IDL (Interface Definition Language)
• CORBA incorpora un lenguaje de definición de interfaces
(IDL)
• Independiente del lenguaje de implementación.
• Mapea hacia los lenguajes de programación habituales.
• Los ORBs llevan incorporados su traductor de IDL a los
lenguajes de implementación soportados
C
C++
Java Delphi Ada SmallTalk
IDL
Object Request Broker (ORB)
18
Comunicación C/S en CORBA
Cliente
Invocation
Interface
Servidor
Object
Adapter
Object Request Broker (ORB)
19
Arquitectura de CORBA
Interface
Repository
IDL COMPILER
Implementation
Repository
operación(args)
Client
Dynamic
Invocation
Interface
OBJ
REF
IDL
Stubs
Object
resultado(args)
ORB
Interface
IDL
Static
Skeletons
(Servant)
Dynamic
Skeleton
Interface
Object
Adapter
Object Request Broker (ORB)
20
Componentes primarios en CORBA (I)
• Object :
– Entidad de programación CORBA.
– Tiene una identidad, una interfaz, y una implementación (conocida como Servant).
• Servant (sirviente) :
– Implementación de una entidad en un lenguaje de programación (en cualquiera de
los soportados).
– Define las operaciones que soporta un determinado interfaz CORBA IDL.
• Client :
– Entidad de programa que invoca una operación a una implementación de objeto.
– Idealmente será tan simple como una invocación a un método.
• Object Request Broker (ORB) (corredor de peticiones a objetos) :
– Núcleo de la arquitectura CORBA.
– Proporciona transparencia entre los clientes y las implementaciones de los objetos.
– Cuando un cliente invoca una operación, ORB busca la implementación del objeto,
lo activa si es necesario, transmite la petición y devuelve la respuesta.
21
– Permite conexión con otros ORBs.
Componentes primarios en CORBA (II)
• ORB Interface :
– Interfaz de comunicación con el ORB para solicitarle servicios al propio ORB:
conversión de referencias de objetos a cadenas, ...
• IDL stubs (cabos) :
–
–
–
–
–
–
El stub es la interfaz que ve el cliente
Representante del servidor en el lado cliente (proxy)
Realiza invocación remota
Define rutinas específicas para operaciones particulares en objetos particulares
Definido en IDL y se transforma al lenguaje de programación del Cliente
La transformación entre CORBA IDL y el lenguaje de programación se realiza
automáticamente por el IDL compiler
• IDL skeletons (esqueletos) :
– Ofrece una interfaz estática a cada servicio del objeto
– Definido en IDL y se transforma al lenguaje de programación del Servant
22
Componentes primarios en CORBA (III)
• Dynamic Invocation Interface :
– Permite la construcción dinámica de invocaciones a objetos.
– No llama a una rutina específica para una operación particular en un objeto
particular.
– El cliente especifica el objeto a ser invocado, la operación y el conjunto de
parámetros (esto lo obtiene del Interface Repository)
• Dynamic Skeleton Interface :
– Permite el manejo dinámico de las invocaciones a objetos.
– No es accedido por un esqueleto específico para una operación determinada.
– Se proporciona acceso a través de un nombre de operación y parámetros.
23
Componentes primarios en CORBA (IV)
• Object Adapter :
– Conecta al ORB con la implementación del objeto para realizar los
servicios que el ORB proporciona (a otros objetos y clientes):
•
•
•
•
•
•
generación e interpretación de referencias a objetos
invocación de métodos
seguridad de las interacciones
activación y desactivación del objeto y su implementación
mapeo de las referencias de los objetos a sus implementaciones
registro de implementaciones.
24
Componentes primarios en CORBA (V)
• Interface Repository :
– Almacena información relativa a las interfaces IDL definidas en el Sistema
Distribuido.
– El ORB solicita los servicios al IR para:
• comunicarse con otros ORB de distinta implementación.
• verificar los parámetros de la petición
• verificar la existencia de ciclos en los grafos de herencia
– Los clientes solicitan los servicios al IR para:
• navegar por la lista de interfaces
• facilitar la instalación y distribución de objetos
– Un ORB puede tener varios IR según la necesidad (prueba, release, externos, ...
• Implementation Repository :
– Almacena información de administración de cada uno de los objetos: cuáles están
instanciados, como activarlos, permisos, etc.
25
Conclusiones
• Independiente del Sistema Operativo y del lenguaje de
programación
• Intenta hacer transparente a los programadores todos los
aspectos que sea posible.
• Facilita la reutilización de software, incluso cuando no esté
implementado en un OOL.
• Incorpora mecanismos de seguridad: autentificación,
encriptación,...
• Tecnología OO.
• Estándar comercial y abierto.
• CORBA 3.0 Modelo de componentes (CCM)
26