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