Implementación de la tecnología de componentes CCM en lenguaje C/C++ y sobre la plataforma LINUX Realizado por: Helder Castro Director: Julio Medina Pasaje.

1 Implementación de la tecnología de componentes CCM en l...
Author: Fidel Cornelio
0 downloads 0 Views

1 Implementación de la tecnología de componentes CCM en lenguaje C/C++ y sobre la plataforma LINUX Realizado por: Helder Castro Director: Julio Medina Pasaje Grupo Computadores y Tiempo Real Universidad de Cantabria Master en Computación Septiembre 2008

2 Contexto del trabajo Lenguaje de programación C/C++ Plataforma LINUX Componente de entrada/salida Middleware ICE

3 Middleware Ice de ZeroC Metodología de componentes es poder construir aplicaciones ensamblando módulos software reutilizables Aplicaciones distribuidas, requieren un middleware de comunicación

4 Acceso de entrada/salida al Hardware Aplicaciones Usuario Comedi Hardware Espacio usuario Espacio Kernel Plataforma Hardware Interfaz llamada al sistema (comedilib) Componente

5 Objetivos del trabajo Desarrollo del componente daIOCard dentro de la tecnología ICE-CCM para gestionar una tarjeta Implementar la tecnología ICE- CCM para componentes desarrollados en el lenguaje C/C++ Probar los drivers de software abierto Comedi Disponer de un componente de entrada/salida para señales digitales y analógicas PeriodicActivation pollingThread managingPort digitalPort analogPort iDigitalIO iAnalogIO daIOCardMng daIOCard configData: String

6 Proceso de desarrollo de un componente Domain Experience Functional and Non- functional metadata (.pcd.xml file) PCI9111 IOCard.deb Realizado por un operador Generado por una herramienta   D&C Component Interface description (.ccd.xml file) Slice Interface description (.ice.xml file)  D&C Component Implementation description(.cid.xml file) Non-functional Model (.mdl.xml files) Component Business Interface Code of Business Component   Specifier Developer Packager

7 Especificación del componente daIOCard Especificador Aplicación Experiencia previas > Especificación componente > Especificación interfaz > Especificación no funcional Especificación del componente Describe su funcionalidad externa Analizar aplicaciones previas dentro de un dominio

8 Elementos que definen la interfaz del componente daIOCard daIOCard pollingThread configData:String daIOCard_mng PeriodicActivation iDigitalIO iAnalogIO digitalIOPort analogIOPort daIOCard_mng > getDigitalIOPort(): iDigitalIO* getAnalogIOPort(): iAnalogIO* setConfigData(config: string) getConfigData():String PeriodicActivation > update() Interfaz de gestión Interfaz de activación periódica Tipos del dominio

9 Interface iDigitalIO La funcionalidad de los puertos que ofrece, se describe a través de las interfaces La interfaz se describe en el lenguaje Slice

10 Interfaz iAnalogIO

11 Fichero io.ice

12 Fichero daIOCard.ccd.xml

13 Implementación PCI9111IOCard PCI9111IOCard configData:String iDigitalIO iAnalogIO digitalIOPort analogIOPort icePCI9111IOCard Código de una implementación del componente, proporciona una solución a la funcionalidad del componente No necesita ser experto en la adaptación del sistema Los detalles del middleware La implementación es independiente de la plataforma

14 Elementos del código de negocio de un componente daIOCard.ccd.xml Io.h Io.cpp Io_Business.h ccmice.h PCI9111IO Card_impl.h PCI9111IO Card_impl.cpp PCI9111IOCard.cmd.xml PCI9111IOCard.pcd.xml > Io.ice > Especificación del componente Código de negocio de la Implementación PCI911IOCard Implementar la funcionalidad de negocio del componente Formular el modelo de comportamiento no funcional

15 Estructura de la implementación del componente

16 Estructura de la implementación del componente - acciones

17 Espera de eventos basada en callback

18 Empaquetamiento del componente daIOCard Required functionality Functional and Non- functional metadata (.pcd.xml file) PCI9111 IOCard.deb Realizado por un operador Generado por una herramienta   D&C Component Interface description (.ccd.xml file) Slice Interface description (.ice.xml file)  D&C Component Implementation description(.cid.xml file) Non-functional Model (.mdl.xml files) Component Business Interface Code of Business Component   Specifier Developer Packager

19 Proceso de desarrollo de una aplicación  Hand writen Tool generated Functional requirements Instaled component packages D&C Component Assembly description (.ccd.xml file)  Assembler Platform description &model (.pdm.xml files) D&C Deployment Plan (.cdp.xml file)  Planner Main procedure (.exe files) ComponentContainerGenerator Executor ExecutionManager LauncherManager Execution platform

20 El contenedor adapta el componente a la plataforma Platform Bussiness Component code Component container code Component instance (Opaque code) (Tool generate code)

21 Estructura del contenedor CCMObject theExec PCI9111IOCard_Wrapper PCI9111IOCard_ExecPci9111ioCard_Impl theImpl PeriodicActivation pollingThread Navigation ReceptaclesEventsImplementación Contenedor

22 Arquitectura del sistema de prueba

23 Esquema del montaje de pruebas

24 GUI pruebas

25 Conclusiones Se ha establecido el procedimiento que debe seguirse para deducir a partir de la especificación de un componente Se ha propuesto la estructura que debe tener el contenedor que adapta el código de negocio para ser ejecutado en una plataforma LINUX Se ha propuesto la estructura del elemento Executor

26 Aspectos a realizar Crear una herramienta para automatizar la creación de un componente Hacer una analice temporal del comportamiento de la aplicación

27 Gracias por su atención