Download Diapositiva 1
Document related concepts
no text concepts found
Transcript
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 ZeroC C++ C# ICE IceUtil IceBox IceGrid Freeze IceSSL Glacier IceStorm IcePatch GPL Máster en Computación CCM: Container Component Model ¿De donde parte? ¿Qué es?: 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?: Modelo de referencia LwCCM 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?: 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 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. SoundGenerator Interfaces funcionales definidas mediante lenguaje SLICE <<interface>> I_Player I_Player I_Logger SoundGenerator playerPort soundThreadperiod: float loggerPort play() fail() .... log() … Interfaces de la tecnología definidas mediante lenguaje SLICE <<interface>> PeriodicActivation Update() Solo nombrarlos <<interface>> I_Logger soundThread PeriodicActivation Máster en Computación <<interface>> SoundGenerator SoundGenerator 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. 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: Interfaz de gestión Interfaces que definen su funcionalidad 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: Identificación de las implementaciones. Recursos que requiere del procesador para se instanciados. Ficheros de código y datos que constituyen la instanciación. Procedimiento de instanciación. Procedimiento de ejecución ... Máster en Computación Proceso de desarrollo de una aplicación Assembler Planner Functional requirements D&C Component Assembly description (.ccd.xml file) Instaled component packages Tool generated D&C Deployment Plan (.cdp.xml file) Executor ExecutionManager Main procedure (.exe files) Platform description &model (.pdm.xml files) ComponentContainerGenerator Hand writen Máster en Computación LauncherManager 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. Identifica los procesadores, redes de comunicación y recursos globales disponibles en la plataforma. 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 Assembler Planner Functional requirements D&C Component Assembly description (.ccd.xml file) Instaled component packages Tool generated D&C Deployment Plan (.cdp.xml file) Executor ExecutionManager Main procedure (.exe files) Platform description &model (.pdm.xml files) ComponentContainerGenerator Hand writen Máster en Computación LauncherManager Execution platform Estructura interna de un componente M ReferenceInterface M Component (Tool generated code) L ManagingInterface Facets Executor Context M Business code L L M Business facets L L (Opaque code) Business Receptacles Wrapper L Activation port Node Threading Manager L M M Middleware interface Languaje interface Home M interface Home (Tool generated code) Container 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 Receptacles Events CCMObject theContext JSSSoundGeneratorContext SoundGeneratorWrapper theImpl SoundGeneratorImpl theExec JSSSoundGeneratorExec SoundGenerator_Mng Introducido por el diseñador. Generado automáticamente. soundThreadManager Máster en Computación PeriodicActivationManager Implementación Java del Contenedor Objetivo: diseñar los elementos del contenedor utilizando el modelo de referencia (framework) estandarizado CCM de OMG. Implementación de las Interfaces de la tecnología CCM. IDL (LighWeight CCM) SLICE (ICE) interface Navigation { Object provide_facet (in FeatureName name) raises (InvalidName); FacetDescriptions get_all_facets(); FacetDescriptions get_named_facets (in NameList names) raises (InvalidName); boolean same_component (in Object object_ref); }; interface Navigation { Object* provideFacet (string name) throws InvalidName; FacetDescriptions getAllFacets(); FacetDescriptions getNamedFacets (NameList names) throws InvalidName; bool sameComponent (Object* objectRef); }; Implementación Java del: Wrapper, Executor, Context, Home. Objetivo: Entorno de desarrollo de aplicaciones basado en herramientas automáticas. Reglas de generación y plantillas de las clases del contenedor. Máster en Computación Componente ejecutable Java-CCM <<Slice>> iPlayer.ice <<Slice>> <<Slice>> ccmcomponent.ice <<Slice>> Sound Generator.ice iLogger.ice <<Java>> JJSoundGenerator.java slice2java <<Java>> multimedia <<Java>> ccm <<D&C>> <<D&C>> SoundGenerator.ccd <<Java>> JSSSoundGenerator Context.java <<Java>> database JSSSoundGenerator.cid <<Java>> JSSSoundGenerator Exec.java <<Java>> JSSSoundGenerator Wrapper.java <<Java>> JSSSoundGenerator HomeWrapper.java Máster en Computación Componente Ejecutable Aplicación HomelandAlarm (HOLA) EventConnector NewAlarm 1 1 Logger 1 1 1 IAlarmReg IAlarmReq IOCard ISensor Update 1 AlarmGUI 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 CentralComputer FieldComputer Windows XP LINUX JVM «Ala rmAgen t» agent: BAAJav aAgent OperatorComputer Windows XP JVM JVM «Hom elandAla rmGui» gui :SWTJavaHOLAGUI «MediaSource» vi deoSource1 :JMFMediaSource «MediaMonitor» vid eoMoni tor :JMFMedi aMonito r «Logger» logger1 :MySQLJavaLogg er «SoundGenerator» player1 :SSGJ avaPlayer «MediaSource» videoSource1 :JMFMediaSource «Logger» logger1 :MySQLCLogger «MediaMon itor» videoMonitor :JMFMediaMonitor «I OCard» card1: PCI9111Comed iIOCard «S ou nd Gen era tor» player1 : SS GJ ava Pla yer ICE ICE TCP/IP TCP/IP Ethernet Máster en Computación ICE TCP/IP 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-2008a.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