CORBA Una arquitectura para integrar ambientes distribuidos y heterogéneos Carlos Alberto Olarte Julio 2002.

1 CORBA Una arquitectura para integrar ambientes distribu...
Author: Amparo Meraz
0 downloads 1 Views

1 CORBA Una arquitectura para integrar ambientes distribuidos y heterogéneos Carlos Alberto Olarte Julio 2002

2 Contenido  El problema de los ambientes distribuidos  Arquitectura OMA  Arquitectura CORBA  Objetos de servicios  Facilidaes comunes  Object Bussiness  Resumen

3 El problema de los ambientes distribuidos

4 Un ambiente distribuido típico Comp 1Comp 2Comp 3Comp 1Comp 2Comp 3Comp 1Comp 2Comp 3

5 Complejidad de los sistemas distribuidos  Los datos están distribuidos  Diferentes lenguajes  Diferentes formatos  La computación es distribuida  Diferentes servidores (Plataforma y S.O)  Diferentes clientes (Plataforma y S.O)  Los usuarios están distribuidos

6 Ventajas de los ambientes distribuidos  Se logra hacer uso de las ventajas de cada proveedor de plataformas  Los componentes pueden ser desarrollados por diferentes proveedores  Los componentes bien definidos pueden ser reutilizados

7 Debilidades de los ambientes distribuidos  Se pierde un poco de control  La depuración puede llegar a ser muy compleja  Sin herramientas adecuadas la gestión y administración puede salirse de las manos

8 Arquitectura OMA Una solución al problema

9 Arquitectura OMA  Propuesta por OMG  Solución al problema de los ambientes distribuidos  Intenta promover un estándar para la comunicación y construcción de componentes distribuidos

10 Componentes Common Object Services Object Request Broker Application Obj Common Facilities

11 ORB  Canal de comunicación  Invocaciones estáticas y dinámicas  Transparencia en el lenguaje  Sistema autodescribible  Transparencia local / remota  Seguridad en las transacciones  Mensajes polimórficos

12 Object Services  Aumento de la funcionalidad del ORB  Los servicios que incluyen:  Nombrado  Ciclo de Vida  Persistencia  Control de concurrencia y Transacciones  Eventos  Relación, Licencia, Propiedad

13 Common Facilities  Colecciones de componentes  Horizontales  Interfaces de Usuarios  Administración de la información  Administración del sistema  Manejo de tareas (WokFlow)  Verticales  Salud, Finanzas, Telcos, etc

14 Application/Bussiness Objects  Objetos propios de la aplicación  Deben ser componentes bien definidos  Deben poder ser reutilizables  Deben ser distribuibles

15 CORBA Una implementación de OMA

16 S. K. ORB I. C. I. S. La arquitectura Object Request Broker Core ImpRep IntRep D.I. Object Adapter D.S.IS.I.S. Client ObjectImplementation

17 ORB  Canal de Comunicación  Cuenta con las características del ORB de OMA (transparencia, seguridad, transaccionalidad, etc) CORBA API CORBA OA ORB

18 ...continuación  CDRs (Common Data Representation)  Interoperabilidad entre ORBS gracias a los protocolos  GIOP  ESIOP  IIOP  Posibilidad de crear puentes entre ORBs y crear federaciones

19 IDL como estandarización para la definición de los componentes  Lenguaje puramente declarativo  Debe describir cualquier componente que “vive” en el ORB  Contrato entre el cliente y el servidor  Se puede precompilar para generar clases en un lenguaje de alto nivel que implemente el componente

20 Componentes del IDL  Módulo  Interfaces  Operaciones  Tipos de Datos  Permite herencia múltiple, definición de arrays (secuencias) y lanzar excepciones module formas { exception FrmExp; interfaz cuadrado { attribute long area; void dibujar() raises (FrmExp); } };

21 Del lado del cliente  IDL Stubs  Definen como invocar los servicios (estáticamente)  Extraídos directamente del IDL  DII (Dinamic invocation Interface)  Descubrir los objetos (metadatos) en tiempo de ejecución

22 ... continuación  Interfaz del repositorio  Base de datos en tiempo de ejecución de las interfaces IDL  Permite a los componentes autodescribirse modificando los metadatos de este repositorio  Provee chequeo de tipos a la invocación de los métodos

23 ... continuación  Interfaz del ORB  APIs básicas para interactuar con el ORB en el lenguaje  Ej: To_string, to_object

24 Del lado del servidor  Server IDL Stubs (Esqueletos)  Generados a partir del IDL  Base para implementar el servidor  Dinamic Skeleton Interface (DSI)  API para ubicar el método y pasar los parámetros dinámicamente  Permiten hacer los puentes entre ORBs

25 ... continuación  Object Adapter  Proveen el ambiente de ejecución para el servidor (instancias de nuevos servidores)  Proveen las referencias a los objetos y sus Ids  Gestionan las peticiones de los clientes a los respectivos métodos del servidor  Registran las clases en el repositorio

26 ... continuación  Implementation Repository  Repositorio en tiempo de ejecución de las clases soportadas por el servidor  Incluyen trazabilidad, auditoria y funciones administrativas  Interfaz ORB  Similar a la interfaz con el ORB del cliente

27 Invocación Dinámica Vs Estática Estática  Fácil de programar  Chequeo de tipos robusto  Mejor desempeño  Auto documentada Dinámica  Ambiente de ejecución flexible  Adición de clases sin recompilar el cliente  Util para descubrir servicios en tiempo de ejecución

28 Cómo se implementa cada una? Estática  Definir el IDL  Precompilar el IDL  Implementar el Servidor  Compilar  Implementar el cliente (haciendo invocaciones “locales”)  Inic el Servidor  Hacer las invocaciones Dinámica  Obtener la descripción del repositorio  Crear la lista de argumentos  Crear el requerimiento  Invocar el requerimiento

29 Object Services Objetos con interfaz IDL sobre el bus del ORB

30 Visión OMA Bussiness Objects ORB Object Services Horizontal Facilities Vertical Facilities

31 Naming Service  Cómo referenciar objetos?  IOR (Interoperable Object Reference)  Mediante Nombre  Mecanismo para localizar otros objetos  Organización jerárquica a partir de contextos

32 ... continuación  Obtiene referencias a partir de nombre comunes  Sus interfaces:  NamingContext (resolve,list,bind,unbind)  BindingIterator (Next_one,next_n,destroy)

33 ... escenario América Sur Norte Colombia Ecuador Chile USA Canada Context Name Objects

34 Trader Service  Servicio de páginas amarillas  Interés de los servidores por publicar sus servicios (competencia)  Disponer de “atributos” (etiquetas) a los componentes del sistema  Búsquedas de los objetos de acuerdo a sus “atributos”

35 ...arquitectura del servicio Trader Exporter Importer Withdraw() register() Search() Select()

36 ClienteServiceType Factory createType ServiceType ServiceOffer Factory createServiceOffer ServiceOffer ExporterImporter Registrar DefProp getPropValue Search/Select

37 Life Cycle Service  Provee operaciones para crear, copiar, mover y eliminar objetos  Permite mantener asociaciones entre objetos que se relacionan  Mantiene la jerarquía después de efectuar las operaciones

38 ... continuación  Interfaces del servicio:  Factory Finder (find_factories)  GenericFactory(crete_object)  LifeCycleObject(copy,move,remove)  Interfaces de los componentes del servicio:  OperationFactory(create_compund_operations)  Operations(copy,move,remove,destroy)  Node(copy_node,move_node,remove_node)  Role(copy_role,move_role)  Relationship(copy_relation_ship,move_relationship)

39 ...escenario Folder A Folder B En

40 Event Service  Registrar / Desregistrar intereses en eventos  Control sobre notificaciones y eventos  El canal de eventos soporta:  Modelo Push: El Proveedor notifica al canal y esta notifica a los clientes  Modelo Pull: El Cliente hace la petición al canal y éste intenta pregunta al servidor

41 ... escenario ORB ORB ServidorEventChannelCliente Push mmm. el dólar subió Evento: El dólar subió Servidor EventChannelCliente Que pasa? Evento: El dólar subió Pull

42 Transaction Service (OTS)  Soporta transacciones planas o anidadas  Soporta transacciones que puedan expandirse sobre varios ORBs  Para volver un componente transaccional solo debe heredar una interfaz

43 ... continuación  El OTS esta compuesto de:  Un cliente transaccional que provee invocaciones de inicio y fin de la transacción  Un servidor transaccional que es la colección de objetos que se ven afectados por la transacción. Estos se encargan de transmitir el contexto de la transacción a los otros servidores  Un servidor recuperable que son objetos que tienen recursos protegidos y su estado se ve afectado por el commit o rollback.

44 ... Escenario ORB Transaction Context Cliente Transaccional Servidor Transaccional Servidor Recuperable Inic Trans Método Transaccional Propagación

45 ... continuación  Las interfaces involucradas:  Current – para el cliente – (begin,commit, rollback, get_status, suspend, etc)  Coordinator: La utilizan los objetos recuperables para participar en la transacción  Resource: Es implementada por un servidor recuperable (prepare, commit_one_phase, commit, rollback)  SubtransactionAwareResource: Implementable por servidores recuperables para transacciones anidadas (commit_subtransaction,rollback_....)

46 ClienteRecurso ARecurso BCurrentCoordinator begin Acción1 get_control Register_resource Acción2 get_control Register_resource commit prepare prepare commit commit

47 Concurrency Control Service  Control de candados para:  Servicios transaccionales (el servicio transaccional debe liberarlos automáticamente)  Servicios no transaccionales, en los que el cliente debe liberar los candados  Interfaces  LockSetFactory (create, create_relates, create_transaccional,create_transaccional_related)  Lockset(lock,try_lock,unlock,change_mode,get_co oridinator)  TransactionalLockSet (igual al anterior)  LockCoordinator (drop_locks)

48 Persistence and Object Databases (POS)  Provee una interfaz única para múltiples tipos de datastores Memoria P.O.S Interfaz única PDS especializados Archivos RBD ODB Otros

49 ... continuación  POS soporta almacenamiento de 1 (SQL) y 2 niveles (ODBMs)  Los Objetos persistentes pueden delegar sus tareas al POS u obtener control total sobre su persistencia  Para el cliente es totalmente la transparencia de la persistencia

50 ... arquitectura del POS Cliente POM DDOODMSDA SQL Databases ODBMs Simple Object Stores POs Persistent Obj Manager PDSs Datastores

51 ... continuación  Interfaces:  PIDFactory: Crear Persistent Object ID (create_PID_from_key,create_PID_from_string,cr eate_PID_from_string_and_key)  POFactory: (create_PO)  PID: (get_PIDString)  PO: (connect,disconnect,store,restore, delete)  POM: Comunicación con los datastores (connect, disconnect, store, restore, delete)  PDS: (connect, disconnect, store, restore, delete)

52 ... ODBMS  Reemplazo de los RDBMS para la tecnología de los POs  Cuenta con control de concurrencia, candados, protección transaccional, copias de respaldo  Posibilidad de crear nuevos tipos de información y estructuras

53 ... continuación  Evita el uso de las FK para las búsquedas haciéndolas más eficiente  Vistas flexibles de estructuras compuestas  Alta integración con los lenguajes de alto nivel (OO)  Posibilidad de crear nuevas estructuras por medio de la herencia  Controla el ciclo de vida de los Obj. (copy, move, delete) manteniendo las relaciones  Soporte a diferentes versiones de los objetos

54 ... continuación  Provee un ODL (Object Definition Language), que es un superconjunto del IDL para definir colecciones, relaciones, etc independientes del lenguaje  Provee un OQL (Object Query Language), que provee operaciones de Select (Upd, Ins, Del se realizan mediante extensiones al lenguaje de alto nivel)

55 Query Service  Los objetos proveen atributos por los cuales se puedan consultar (sin romper su encapsulamiento)  El servicio de query agrupa varias consultas y las puede filtrar (optimizaciones)

56 ... continuación  Interfaces de colección:  CollectionFactory(create)  Collection(add_element,insert, replace, remove element_at)  Iterator (reset, next)  Interfaces de consulta:  QueryManager(create)  QueryEvaluator(evaluate)  Query(prepare,execute, get_status, get_result)  QueryableCollection: Hereda de Collection y QueryEvaluator)

57 ClienteQueryManager Query QueryableCollection Iterator create prepare execute Get_result create_iterator next next

58 Collection Service  Unificación para el tratamiento de colecciones (colas, pilas, listas, vectores, etc) en los objetos CORBA

59 Relationship Service  Permite relacionar objetos dentro del mundo entre sí  Mejor que los punteros convencionales porque no son unidireccionales y permiten roles  Navegación transparente y ágil por medio de las relaciones  Asociaciones en tiempo de ejecución

60 ... Continuación  Interfaces Base:  IdentifiableObject: (is_identical)  RelationshipFactory: (create)  RoleFactory: (create_role)  Relationship: (destroy)  Rol: permite la navegación (link,unlink, get_other_rol,get_other_related_object, etc)  RelationshipIterator: Itera sobre las relaciones adicionales a las que pertenece el rol (next_one, next_n, destroy)

61 ... Continuación  Las relaciones se puede ver como grafos por medio de las siguientes interfaces:  NodeFactory: (create_node)  Node: (add_rol, remove_rol, roles_of_type)  Traversal (next_one, next_n, destroy)  Traversal_criteria (visit_node,next_one,next_n, destroy)  Role heredado del Rol Base (get_edges)  EdgeIterator (next_one, next_n, destroy)

62 Externalization Service  Export / import de los objetos  Alternativa para la persistencia  Permite portar objetos entre ORBs no conectados  Conjunto de interfaces para hacer streams (read, write) a partir de los objetos

63 ...continuación  Almacenamieto y recuperación de objetos relacionados (RelationShip Service) y conjuntos de ellos (context)  Formato de almacenamiento universal entre ORBs

64 ClienteStream WriteKey Streamable Write_to_stream Write_Object StreamIO Write primitives Write Graph Node Ext_node W_prim W_Obj W_Graph Role Ext_rol Externalize (streamable) (streamable)

65 Licensing Service  Control de uso sobre los componentes  Medida del uso de los componentes

66 Property Service  Etiquetar objetos en tiempo de ejecución  Adición de atributos sin regenerar IDL

67 Object Time Service  Componentes:  TimeModel: Estructuras básicas para el manejo del tiempo  CosTime: Objetos propios del servicio (UTO, TIO)  CosTimeEvent: Registrar eventos periódicos en el tiempo o en un instante específico del mismo (modelo push de CosEvent)

68 Arquitectura CosTime Time Service UTO TIO Universal_time newUTC newTIO Absolute_time compare_time overlap

69 Arquitectura CosTimerEvent TimerEventService TimerEventHandler TimerEventHandler Register unregister TimerEvent Set_timer cancel_timer status time_set

70 Security Service  Proveer control de acceso (autenticación, autorización, auditorías, encripción sobre los componentes)  Los esquemas son diferentes a los habituales servicios cliente/servidor:  Los objetos pueden ser clientes o servidores  Solo se “ve” la punta del iceberg de los objetos (hay muchas acciones dinámicas en tiempo de ejecución)

71 ... continuación  La interacción entre los objetos no es clara (encapsulamiento)  Los objetos son polimórficos (es fácil reemplazar componentes por troyanos)  Los servidores pueden llegar a ser muchos  Los objetos se crean y se destruyen “sin control”

72 Change Managment Service  Control de versión sobre los componentes  Favorece la creación de “industrias” de componentes

73 Common Facilities Frameworks para ayudar a la contstrucción de Object Bussiness

74 Visión OMA Bussiness Objects ORB Object Services Horizontal Facilities Vertical Facilities

75 Horizontales  User Interface Common Facility  Protocolos para comunicar componentes gráficos  Estándares para poder disponer varios componentes en una misma GUI  Manejo de la geometría y aspectos visuales  Disponer componentes dentro de otros componentes

76 ...continuación  Information Managment Facility:  Representación de los datos  Aspectos de seguridad y privacidad  Complemento de la interfaz del repositorio para conocer las interfaces de los objetos implementados

77 ... continuación  System Management Facility:  Permite recolectar información de carga (recursos) de los componentes  Recolección de los eventos sucedidos con un objeto  Seleccionar niveles de servicio de los objetos (disponibilidad, desempeño, etc)  Registrar, filtrar, reenviar mensajes (sobre el servicio de eventos)  Programar eventos sobre el CosTimeEvent service

78 ... continuación  Task Management Common Facility  Control sobre WorkFlows  Control sobre largas transacciones  Creación de reglas de negocio  Creación de agentes de búsqueda de información

79 Vertical Facilities  Control de imágenes (manejos de tipos BLOB)  Facturación, monitoreo de componentes para el comercio electrónico  Computer Integrated Manufacturing (CIM) - control de procesos, trazabilidad, aseguramiento de la calidad

80 ... continuación  Simulaciones distribuidas (control de tráfico, escenarios de negocios, vídeo juegos)  Exploraciones de gas y petróleo (algoritmos propios para esta tarea)  Servicios de facturación (transacciones, cambios de moneda, ordenes de compra, etc)

81 Object Bussiness (Application Object) Componentes bien definidos y reutilizables

82 Visión OMA Bussiness Objects ORB Object Services Horizontal Facilities Vertical Facilities

83 Bussiness Objects  Deben ser reutilizables (bien definidos)  Objetos tal cual como se ven en la realidad  Definidos por interfaces IDL  Interacción trasparente con ayuda de los servicios CORBA  Flexibles (no atados a un sistema monolítico)

84 ...continuación  Deben ser libres del contexto (utilizables en diferentes situaciones)

85 Modelo de Objetos  Bussiness Objects:  Encapsulan los datos, reglas del negocio (como reaccionar a eventos)  Implementan procesos en sí mismos  Definen como cambiar su estado  Bussiness Process Objects:  Encapsulan la lógica del negocio a nivel más general (procesos)  Implementan procesos que involucran varios objetos

86 ... Continuación  Realizan transacciones  Definen como deben cambiar los objetos de acuerdo al entorno  Presentation Object  Representación visual de los objetos  Comunicación con los Object Bussiness para extraer y modificar datos  Algunos no son GUI (interfaces con otros sistemas)

87 Resumen  OMA Arquitectura para la distribución de procesos en ambientes heterogéneos  CORBA una implementación de OMA con un bus de datos bien definido para la comunicación entre los componentes

88  Objetos de servicio, extensión al bus de comunicación proveyendo servicios de nombrado, comercio, eventos, seguridad, propiedades, etc  Facilidades horizontales, una serie de APIs con interfaces IDL que proveen mecanismos comunes a múltiples tipos de aplicaciones basadas en componentes

89  Facilidades verticales, marcos de trabajo propios para tipos específicos de aplicaciones (finanzas, salud, etc)  Object Bussiness, componentes a desarrollar para que sean totalmente flexibles, bien definidos, autodescribibles, lo mas aproximados a la realidad y reutilizables en varios escenarios

90 FIN