Actualizado el 21 de Marzo del 2018 (Publicado el 6 de Marzo del 2018)
932 visualizaciones desde el 6 de Marzo del 2018
87,6 KB
7 paginas
Creado hace 16a (10/10/2008)
Tema V
Tecnología de objetos
distribuidos y arquitectura de
componentes.
Bibliografía
(cid:127) Szyperski, C. 1998. Component Software. Addison-Wesley.
(cid:127) Ruiz Cortés, 1998. A. CORBA: Una visión general.
http://www.lsi.us.es/~aruiz
(cid:127) Sevilla Ruiz, D. 2000. CORBA & Components.
http://www.ditec.um.es/~dsevilla/ccm/.
(cid:127) Object Management Group. 1995. CORBA Overview.
http://www.infosys.tuwien.ac.at/Research/Corba/OMG
(cid:127) 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
(cid:127) Schmidt, D.C. 2000. Overview of CORBA.
http://www.cs.wustl.edu/~schmidt/corba.html
1
2
Índice
Introducción
Evolución de la arquitectura de los sistemas informáticos
1. Introducción.
2. OMA (Object Management Architecture).
3. CORBA (Common Object Request Broker Architecture).
4. Conclusiones.
3
Sistemas monolíticos
Presentación
Negocio
Datos
C/S 2 capas
Presentación
Negocio
Negocio
Datos
BD
C/S 3 capas
Presentación
Negocio
Datos
4
Arquitectura multicapa
subcapas
Presentación
Negocio
Datos
BD
Arquitectura de componentes (II)
(cid:127) 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.
(cid:127) 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.
(cid:127) COMPONENTE ≠ OBJETO
5
7
Arquitectura de componentes (I)
(multicapa y 3-tier)
3:Component system
2:Component frameworks
1:Components
( tier ≈ grada )
(cid:127) Tier 1: Arquitectura de componentes individuales.
(cid:127) Tier 2: Arquitectura de los marcos de componentes. Macro-
componentes definidos para realizar una función de negocio concreta.
(cid:127) Tier 3: Arquitectura del sistema de componentes. Super-componente
que define todo el sistema.
6
Arquitectura de componentes (III)
(cid:127) 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
(cid:127) Solución:
– Middleware de componentes
8
Arquitectura de componentes (IV)
OMA (Object Management Architecture)
(cid:127) Alternativas:
– Sockets.
(cid:127) Implementación costosa.
– Remote Procedure Calls (RPC).
(cid:127) No soporta objetos explícitamente.
– Microsoft Distributed Component Object Model (DCOM)
(cid:127) Menos maduro, menos portable y además propietario.
– Java Remote Method Invocation (RMI)
(cid:127) Solo para JAVA.
– Common Object Request Broker Architecture (CORBA)
(cid:127) Multiplataforma, multilenguaje, ...
OMA: Objetivos técnicos
(cid:127) Transparencia distribución
(cid:127) Rendimiento local y
remoto
(cid:127) Comportamiento dinámico
(cid:127) Sistema de nombrado
(cid:127) Consultas: nombre,
atributos, relaciones
(cid:127) Control de la concurrencia
(cid:127) Transacciones
(cid:127) Robustez, disponibilidad
(cid:127) Mantenimiento de
versiones
(cid:127) Notificación de eventos
(cid:127) Semántica de Relaciones
entre objetos
(cid:127) API en C para todas las
operaciones
(cid:127) Administración y gestión
(cid:127)
(cid:127) Estandarización
Internacionalización
9
11
(cid:127) 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:
(cid:127) 1991: CORBA 1.1
(cid:127) 1995: CORBA 2.0 (Modelo de Referencia)
(cid:127) 2000: CORBA 2.4 (actual)
(cid:127) 2000-2001: CORBA 3.0 (Modelo de Componentes) (en desarrollo)
10
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)
Object services (CORBAservices) (II)
(cid:127) 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
CORBAfacilities
(cid:127) Definen servicios comunes ofrecidos a las aplicaciones:
– Horizontales: define colecciones de objetos prefabricados
(cid:127) Interfaz de usuario
(cid:127) Gestión de la información
(cid:127) Gestión de sistemas
(cid:127) Gestión de tareas
– Verticales: define servicios comunes para un dominio completo
(framework tier)
(cid:127) Objetos de negocio
(cid:127) Comercio electrónico
(cid:127) Finanzas
(cid:127) Manufacturación
(cid:127) Medicina
(cid:127) Telecomunicaciones
13
15
– 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
Application objects
(cid:127) Definen servicios específicos de un determinado negocio o
aplicación.
(cid:127) Suponen el nivel más alto de los servicios soportados por la
arquitectura OMA
16
CORBA
(Common Object Request Broker Architecture)
(cid:127) CORBA es un middleware orientado a objetos / componentes.
(cid:127) Los objetos cliente solicitan servicios a los objetos servidor
mediante invocación de método
(cid:127) Separa interfaz e implementación
(cid:127) Es independiente del lenguaje: los objetos clientes y servidores
se implementan en cualquier lenguaje (de los soportados)
(cid:127) 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
17
transparente al cliente
Comunicación C/S en CORBA
Cliente
Servidor
Invocation
Interface
Object
Adapter
Object Request Broker (ORB)
19
IDL (Interface Definition Language)
(cid:127) CORBA incorpora un lenguaje de definición de interfaces
(IDL)
Independiente del lenguaje de implementación.
(cid:127)
(cid:127) Mapea hacia los lenguajes de programación habituales.
(cid:127) Los ORBs llevan incorporados su traductor de IDL a los
lenguajes de implementación soportados
Ada
Delphi
C++
SmallTalk
C
Java
IDL
Object Request Broker (ORB)
Arquitectura de CORBA
Interface
Repository
Client
IDL COMPILER
operación(args)
OBJ
REF
resultado(args)
Implementation
Repository
Object
(Servant)
Dynamic
Invocation
Interface
IDL
Stubs
ORB
Interface
IDL
Static
Skeletons
Dynamic
Skeleton
Interface
Object
Adapter
Object Request Broker (ORB)
18
20
Componentes primarios en CORBA (I)
Componentes primarios en CORBA (II)
(cid:127) Object :
– Entidad de programación CORBA.
– Tiene una identidad, una interfaz, y una implementación (conocida como Servant).
(cid:127) 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.
(cid:127) 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.
(cid:127) 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.
– Permite conexión con otros ORBs.
21
(cid:127) ORB Interface :
(cid:127)
(cid:127)
– 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
Componentes primarios en CORBA (III)
Componentes primarios en CORBA (IV)
(cid:127) Dynamic Invocation Interface :
– Permite la construcción dinámica de invocaciones a objetos.
– No llama a una rutina espec
Comentarios de: Tema V - Tecnología de objetos distribuidos y arquitectura de componentes (0)
No hay comentarios