Implementacin de la tecnologa de componentes CCM sobre
Implementación de la tecnología de componentes CCM sobre el middleware de distribución Ice Directores: Patricia López Martínez y José María Drake Moyano Autor: Laura Barros Bastante Grupo Computadores y Tiempo Real Departamento de Electrónica y Computadores Universidad de Cantabria Programa Oficial de Postgrado en Ciencias, Tecnología y Computación Máster en Computación Santander, julio de 2008
Gestión de seguridad en espacios públicos Máster en Computación
Middleware Ice de Zero. C C++ C# Ice. Util Ice. Box Ice. Grid Freeze Ice. SSL Glacier Ice. Storm Ice. Patch GPL Máster en Computación
CCM: Container Component Model ¡ ¿De donde parte? l ¡ ¿Qué es? : l ¡ Proyectos europeos MERCED, COMPARE y FRESCOR sobre diseño de software para sistemas embarcados. Tecnología para el desarrollo de aplicaciones basadas en componentes sobre plataformas distribuidas. ¿En que se basa? : l Modelo de referencia Lw. CCM de OMG, pero: ¡ ¡ ¡ Elimina su dependencia de CORBA. Se basa en código de negocio reutilizable para diferentes plataformas y contenedor generado automáticamente. ¿Qué añade? : l Requisitos no funcionales, mediante: ¡ ¡ Incorpora modelo de aspectos no funcionales. Gestión de recursos a través de los contenedores. Máster en Computación
Tecnologías CCM Middleware no orientado a componentes Ice-CCM C++-CCM D&C Java-CCM Máster en Computación Sin middleware Tiempo Real Ada-CCM
Proceso de desarrollo de un componente Ice-CCM Specifier Developer PIM: Platform Independent Model Required functionality D&C Component Interface description (. ccd. xml file) Packager Non-functional Model (. mdl. xml files) Functional and Non-functional metadata (. pcd. xml file) Slice Interface description (. ice. xml file) D&C Component Implementation description (. cid. xml file) Jar Packager BIM_Generator Component Business Interface Code of Business Component BIM: Business Implementation Model Edited by the operator. Generated by a tool. Máster en Computación D&C Component Package (Code, Non-functional, metadata, . . )
Descripción externa de un componente ¡ Objetivo: la herramienta de despliegue y los clientes podrán gestionar cualquier componente independientemente de su funcionalidad. ¡ Objetivo: compatibilidad de los componentes desarrollados en Java con los codificados en otros lenguajes. Sound. Generator ¡ Interfaces funcionales definidas mediante lenguaje SLICE <<interface>> I_Player Sound. Generator player. Port sound. Threadperiod: float Solo nombrarlos sound. Thread I_Logger logger. Port play() fail(). . <<interface>> I_Logger log() … ¡ Interfaces de la tecnología definidas mediante lenguaje SLICE <<interface>> Periodic. Activation Update() Periodic. Activation Máster en Computación <<interface>> Sound. Generator extends CCMObject{};
Especificación de un componente Ice-CCM ¡ Proporciona toda la información que requiere un diseñador para decidir si debe usar el componente. l l Puertos ofrecidos (Facet) Puertos requeridos (Receptacles) Parámetros de configuración Modelo reactivo . . . Máster en Computación
Proceso de desarrollo de un componente Ice-CCM Specifier Developer PIM: Platform Independent Model Required functionality D&C Component Interface description (. ccd. xml file) Packager Non-functional Model (. mdl. xml files) Functional and Non-functional metadata (. pcd. xml file) Slice Interface description (. ice. xml file) D&C Component Implementation description (. cid. xml file) Jar Packager BIM_Generator Component Business Interface Code of Business Component BIM: Business Implementation Model Edited by the operator. Generated by a tool. Máster en Computación D&C Component Package (Code, Non-functional, metadata, . . )
Estructura interna de la implementación ¡ ¡ Objetivo: Reutilización del código de negocio. No referencias a ICE. Libertad de desarrollo, aunque debe implementar: l Interfaz de gestión l Interfaces que definen su funcionalidad l Interfaces de activación Máster en Computación
Especificación de la implementación de un componente Ice-CCM ¡ ¡ Informa que es un componente de negocio reutilizable con diferentes middlewares. Contiene múltiples ficheros con códigos y datos (recursos y capacidades que se requieren del entorno para que pueda ser instanciado el componente). . Máster en Computación
Proceso de desarrollo de un componente Java-CCM Specifier Developer PIM: Platform Independent Model Required functionality D&C Component Interface description (. ccd. xml file) Packager Non-functional Model (. mdl. xml files) Functional and Non-functional metadata (. pcd. xml file) Slice Interface description (. ice. xml file) D&C Component Implementation description (. cid. xml file) Jar Packager BIM_Generator Component Business Interface Code of Business Component D&C Component Package (Code, Non-functional, metadata, . . ) BIM: Business Implementation Model Edited by the operator. Objetivo: Paquete comercializable Generated by a tool. Máster en Computación
Especificación de la configuración de un componente Ice-CCM ¡ Fichero que describe lo que se requiere para manejar cada una de las implementaciones disponibles- Por cada implementación: l Identificación de las implementaciones. l Recursos que requiere del procesador para se instanciados. l Ficheros de código y datos que constituyen la instanciación. l Procedimiento de ejecución . . . Máster en Computación
Proceso de desarrollo de una aplicación Assembl er Functional requiremen ts Tool generated Plann er D&C Component Assembly description (. ccd. xml file) D&C Deployment Plan (. cdp. xml file) Platform Instaled description component &model packages (. pdm. xml files) Hand writen Execut or Execution. Mana ger Main procedure (. exe files) Component. Container. Gener ator Máster en Computación Launcher. Mana ger Execution platform
Modelo de la plataforma Ice-CCM ¡ Proporciona la información de la plataforma de ejecución que se necesita para el despliegue de la aplicación. l Identifica los procesadores, redes de comunicación y recursos globales disponibles en la plataforma. l Para cada elemento identifica los recursos de que dispone. . Máster en Computación
Plan de despliegue de la aplicación Ice-CCM ¡ Plan de despliegue: proporciona la información necesaria para la instalación, despliegue, configuración y lanzamiento de una aplicación. . Máster en Computación
Proceso de desarrollo de una aplicación Assembl er Functional requiremen ts Tool generated Plann er D&C Component Assembly description (. ccd. xml file) D&C Deployment Plan (. cdp. xml file) Platform Instaled description component &model packages (. pdm. xml files) Hand writen Execut or Execution. Mana ger Main procedure (. exe files) Component. Container. Gener ator Máster en Computación Launcher. Mana ger Execution platform
Estructura interna de un componente M Reference. Interfa ce Compone (Tool generated nt code) Execut Facets M or L M Busine L ss facets Node Wrapp er L Managing. Interfa ce Contex Business t code L L Business Receptacle s L Activation port (Opaque code) Threading Manager Container ¡ Middleware interface Languaje L interface M M M Home M interface Home (Tool generated code) Objetivo: el código de negocio (Business code) es opaco y es el contenedor el que lo adapta a la plataforma. Máster en Computación
Estructura del contenedor Ice-CCM Navigation Receptacl es Events CCMObje ct the. Cont ext JSSSound. Generator. Con text sound. Thread. Manag Sound. Generator. Wrapp er er Periodic. Activation. Mana the. Im the. Exec ger pl Sound. Generator. I mpl JSSSound. Generator. Ex ec Sound. Generator_Mng Introducido por el diseñador. Generado automáticamente. Máster en Computación
Implementación Java del Contenedor ¡ Objetivo: diseñar los elementos del contenedor utilizando el modelo de referencia (framework) estandarizado CCM de OMG. l Implementación de las Interfaces de la tecnología CCM. IDL (Ligh. Weight CCM) SLICE (ICE) interface Navigation { Object provide_facet (in Feature. Name name) raises (Invalid. Name); Facet. Descriptions get_all_facets(); Facet. Descriptions get_named_facets (in Name. List names) raises (Invalid. Name); boolean same_component (in Object object_ref); }; interface Navigation { Object* provide. Facet (string name) throws Invalid. Name; Facet. Descriptions get. All. Facets(); Facet. Descriptions get. Named. Facets (Name. List names) throws Invalid. Name; bool same. Component (Object* object. Ref); }; l ¡ Implementación Java del: ¡ Wrapper, Executor, Context, Home. Objetivo: Entorno de desarrollo de aplicaciones basado en herramientas automáticas. l Reglas de generación y plantillas de las clases del contenedor. Máster en Computación
Componente ejecutable Java-CCM <<Slice>> i. Player. ice <<Slice>> ccmcomponent. ice <<Slice>> Sound Generator. ice i. Logger. ice <<Java>> JJSound. Generator. java slice 2 java <<Java>> multimedia <<Java>> ccm <<D&C>> Sound. Generator. ccd <<Java>> JSSSound. Generator Context. java <<Java>> database JSSSound. Generator. cid <<Java>> JSSSound. Generator Exec. java <<Java>> JSSSound. Generator Wrapper. java <<Java>> JSSSound. Generator Home. Wrapper. java Máster en Computación Componente Ejecutable
Aplicación Homeland. Alarm (HOLA) Event. Connector New. Alarm Logger 1 1 1 IAlarm. Req 1 1 IOCard IAlarm. Reg ISensor Update 1 Alarm. GUI n Alarm Manager n Sound Generator n IAlarm Control IActuator Media Source n IActuator Media Monitor n IActuator Máster en Computación
Plataforma de ejecución Máster en Computación
Adaptación de la tecnología de componentes al middleware ICE. Conclusiones Actuaciones Objetivo Formulación de las interfaces que definen la funcionalidad de los componentes mediante el lenguaje SLICE Compatibilidad de componentes de distintos lenguajes Adaptación del estándar D&C de OMG para los modelos de los componentes, de las aplicaciones y de las plataformas Posibilidad de añadir requisitos no funcionales Los componentes se distribuyen en un único paquete. jar que incluye el código, el modelo y la información introspectiva del componente Paquete comercializable. Reutilización del componente en diversas aplicaciones Diseño de la arquitectura de los contenedores Implementación del código de negocio independiente de Ice Formulación de las reglas y parametrización del código Java de los contenedores de los componentes Desarrollo de herramientas Formulación las estrategias de configuración de los componentes haciendo uso de las propiedades ICE Aprovechamiento de las capacidades de Ice Desarrollo de un prototipo muy sencillo de gestor de componentes en un nudo de la plataforma Gestión del ciclo de vida de los componentes Elaboración de un demostrador de la tecnología: Homeland Alarm Descripción de la especificación D&C de la plataforma y del plan de despliegue Máster en Computación
Líneas futuras ¡ ¡ ¡ Extensión de la tecnología Java-CCM a tiempo real estricto. Incorporación de la planificación jerárquica y contratos de reserva de recursos. Incorporación de la tecnología MDA. Máster en Computación
Gracias por su atención L. Barros, P. López, J. M. Drake: ”Tecnología de componentes CCM basada en conectores” XIX Jornadas de Concurrencia y Sistemas Distribuidos, Albacete, 11 -13 Junio de 2008. http: //www. ctr. unican. es/publications/lbb-plm-jmd-2008 a. pdf Grupo Computadores y Tiempo Real Universidad de Cantabria Programa Oficial de Postgrado en Ciencias, Tecnología y Computación Máster en Computación Santander, julio de 2008
- Slides: 26