270 likes | 409 Views
Implementación de la tecnología de componentes CCM en lenguaje C/C++ y sobre la plataforma LINUX. Grupo Computadores y Tiempo Real Universidad de Cantabria. Director: Julio Medina Pasaje. Realizado por: Helder Castro. Master en Computación Septiembre 2008. Contexto del trabajo.
E N D
Implementación de la tecnología de componentes CCM en lenguaje C/C++ y sobre la plataforma LINUX Grupo Computadores y Tiempo Real Universidad de Cantabria Director: Julio Medina Pasaje Realizado por: Helder Castro Master en Computación Septiembre 2008
Contexto del trabajo Lenguaje de programación C/C++ Plataforma LINUX Componente de entrada/salida Middleware ICE
Metodología de componentes es poder construir aplicaciones ensamblando módulos software reutilizables Aplicaciones distribuidas, requieren un middleware de comunicación Middleware Ice de ZeroC
Acceso de entrada/salida al Hardware Aplicaciones Usuario Componente Espacio usuario Interfaz llamada al sistema (comedilib) Comedi Espacio Kernel Hardware Plataforma Hardware
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 daIOCardMng managingPort iDigitalIO digitalPort daIOCard pollingThread configData: String analogPort iAnalogIO Objetivos del trabajo PeriodicActivation
D&C Component Interface description (.ccd.xml file) Slice Interface description (.ice.xml file) Code of Business Component Component Business Interface Non-functional Model (.mdl.xml files) D&C Component Implementation description(.cid.xml file) Realizado por un operador Generado por una herramienta Functional and Non-functional metadata (.pcd.xml file) PCI9111 IOCard.deb Proceso de desarrollo de un componente Domain Experience Specifier Developer Packager
Aplicación <<D&C>> Especificación componente Experiencia previas Especificador <<Slice>> Especificación componente Especificación interfaz <<Ext-D&C>> Especificación no funcional Especificación del componente Especificación del componente daIOCard • Describe su funcionalidad externa • Analizar aplicaciones previas dentro de un dominio
<<interface>> daIOCard_mng daIOCard_mng getDigitalIOPort(): iDigitalIO* getAnalogIOPort(): iAnalogIO* setConfigData(config: string) getConfigData():String daIOCard digitalIOPort daIOCard iDigitalIO configData:String analogIOPort iAnalogIO pollingThread <<interface>> PeriodicActivation update() PeriodicActivation Elementos que definen la interfaz del componente daIOCard Interfaz de gestión Interfaz de activación periódica Tipos del dominio
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
Implementación PCI9111IOCard • 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 icePCI9111IOCard iDigitalIO PCI9111IOCard digitalIOPort configData:String analogIOPort iAnalogIO
Elementos del código de negocio de un componente PCI9111IO Card_impl.h PCI9111IO Card_impl.cpp Io.h <<slice>> Io.ice <<R&D>> Io.cpp PCI9111IOCard .pcd.xml Io_Business.h • Implementar la funcionalidad de negocio del componente • Formular el modelo de comportamiento no funcional <<R&D>> daIOCard.ccd.xml ccmice.h PCI9111IOCard .cmd.xml Código de negocio de la Implementación PCI911IOCard Especificación del componente
D&C Component Interface description (.ccd.xml file) Slice Interface description (.ice.xml file) Code of Business Component Component Business Interface Non-functional Model (.mdl.xml files) D&C Component Implementation description(.cid.xml file) Realizado por un operador Generado por una herramienta Functional and Non-functional metadata (.pcd.xml file) PCI9111 IOCard.deb Empaquetamiento del componente daIOCard Required functionality Specifier Developer Packager
Assembler Planner Executor ExecutionManager Functional requirements D&C Deployment Plan (.cdp.xml file) D&C Component Assembly description (.ccd.xml file) Main procedure (.exe files) Platform description &model (.pdm.xml files) Execution platform LauncherManager ComponentContainerGenerator Instaled component packages Proceso de desarrollo de una aplicación Hand writen Tool generated
Component instance Bussiness Component code (Opaque code) (Tool generate code) Component container code Platform El contenedor adapta el componente a la plataforma
Estructura del contenedor Navigation Implementación Receptacles Events Contenedor CCMObject pollingThread PCI9111IOCard_Wrapper PeriodicActivation theImpl theExec Pci9111ioCard_Impl PCI9111IOCard_Exec
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
Aspectos a realizar • Crear una herramienta para automatizar la creación de un componente • Hacer una analice temporal del comportamiento de la aplicación