Title: Implementaci
1Implementació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
Realizado por Helder Castro
Director Julio Medina Pasaje
Master en Computación Septiembre 2008
2Contexto del trabajo
- Lenguaje de programación C/C
- Plataforma LINUX
- Componente de entrada/salida
- Middleware ICE
3Middleware Ice de ZeroC
- Metodología de componentes es poder construir
aplicaciones ensamblando módulos software
reutilizables - Aplicaciones distribuidas, requieren un
middleware de comunicación
4Acceso de entrada/salida al Hardware
Aplicaciones Usuario
Componente
Espacio usuario
Interfaz llamada al sistema (comedilib)
Comedi
Espacio Kernel
Hardware
Plataforma Hardware
5Objetivos 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
6Proceso de desarrollo de un componente
Domain Experience
Specifier
Developer
?
?
?
Packager
7Especificación del componente daIOCard
- Describe su funcionalidad externa
- Analizar aplicaciones previas dentro de un
dominio
8Elementos que definen la interfaz del componente
daIOCard
Interfaz de gestión
Interfaz de activación periódica
Tipos del dominio
9Interface iDigitalIO
- La funcionalidad de los puertos que ofrece, se
describe a través de las interfaces
- La interfaz se describe en el lenguaje Slice
10Interfaz iAnalogIO
11Fichero io.ice
12Fichero daIOCard.ccd.xml
13Implementació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
configDataString
analogIOPort
iAnalogIO
14Elementos del código de negocio de un componente
PCI9111IO Card_impl.h
PCI9111IO Card_impl.cpp
Io.h
ltltslicegtgt
Io.ice
ltltRDgtgt
Io.cpp
PCI9111IOCard .pcd.xml
Io_Business.h
- Implementar la funcionalidad de negocio del
componente - Formular el modelo de comportamiento no funcional
ltltRDgtgt
daIOCard.ccd.xml
ccmice.h
PCI9111IOCard .cmd.xml
Código de negocio de la Implementación
PCI911IOCard
Especificación del componente
15Estructura de la implementación del componente
16Estructura de la implementación del componente -
acciones
17Espera de eventos basada en callback
18Empaquetamiento del componente daIOCard
Required functionality
Specifier
Developer
?
?
?
Packager
19Proceso de desarrollo de una aplicación
? Hand writen
Tool generated
20El contenedor adapta el componente a la plataforma
21Estructura del contenedor
Navigation
Receptacles
Events
Implementación
Contenedor
CCMObject
pollingThread
PCI9111IOCard_Wrapper
theImpl
PeriodicActivation
theExec
PCI9111IOCard_Exec
Pci9111ioCard_Impl
22Arquitectura del sistema de prueba
23Esquema del montaje de pruebas
24GUI pruebas
25Conclusiones
- 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
26Aspectos a realizar
- Crear una herramienta para automatizar la
creación de un componente - Hacer una analice temporal del comportamiento de
la aplicación
27