12.07.2015 Views

Download PDF in Spanish - CTR - Universidad de Cantabria

Download PDF in Spanish - CTR - Universidad de Cantabria

Download PDF in Spanish - CTR - Universidad de Cantabria

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Metamo<strong>de</strong>lo UML para el mo<strong>de</strong>lado <strong>de</strong> tiempo real <strong>de</strong>aplicaciones distribuidas basadas en componentesPatricia López Martínez, José M. Drake and Julio L. Med<strong>in</strong>aDepartamento <strong>de</strong> Electrónica y Computadores, <strong>Universidad</strong> <strong>de</strong> <strong>Cantabria</strong>,39005-Santan<strong>de</strong>r, SPAIN{med<strong>in</strong>ajl,lopezpa,drakej}@unican.esResumen: El mo<strong>de</strong>lo <strong>de</strong> tiempo real es la base <strong>de</strong>l proceso <strong>de</strong> especificación,análisis, diseño y validación <strong>de</strong> cualquier aplicación <strong>de</strong> tiempo real. Tradicionalmenteeste mo<strong>de</strong>lo se ha formulado siguiendo el mo<strong>de</strong>lo reactivo con el que laaplicación ha sido concebida. S<strong>in</strong> embargo, en sistemas complejos, en los que lasaplicaciones <strong>de</strong> tiempo real se diseñan utilizando una metodología basada encomponentes, el aspecto estructural <strong>de</strong> la aplicación dom<strong>in</strong>a la construcción <strong>de</strong>lmo<strong>de</strong>lo <strong>de</strong> tiempo real y <strong>de</strong> él <strong>de</strong>be <strong>de</strong>ducirse posteriormente el mo<strong>de</strong>lo reactivo.En este trabajo, se presentan los conceptos fundamentales <strong>de</strong>l metamo<strong>de</strong>lo quese propone a f<strong>in</strong> <strong>de</strong> formalizar la construcción <strong>de</strong> los mo<strong>de</strong>los <strong>de</strong> comportamientotemporal <strong>de</strong> aplicaciones distribuidas y <strong>de</strong> tiempo real basadas en componentes.La metodología <strong>de</strong> mo<strong>de</strong>lado que representa, es modular <strong>de</strong>s<strong>de</strong> trespuntos <strong>de</strong> vista complementarios. En primer lugar, permite <strong>de</strong>scribir mediantemódulos <strong>de</strong> mo<strong>de</strong>lado <strong>in</strong><strong>de</strong>pendientes el comportamiento temporal <strong>de</strong> los componentessoftware o hardware reusables en los que se basan el diseño <strong>de</strong> las aplicaciones,y asimismo, hace posible que se construya el mo<strong>de</strong>lo <strong>de</strong> una aplicación<strong>de</strong>term<strong>in</strong>ada mediante el ensamblado <strong>de</strong> los mo<strong>de</strong>los <strong>de</strong> sus componentes. Ensegundo lugar, mo<strong>de</strong>la <strong>de</strong> forma <strong>in</strong><strong>de</strong>pendiente la capacidad <strong>de</strong> procesamiento<strong>de</strong> la plataforma hardware/software <strong>de</strong> ejecución, y la cantidad <strong>de</strong> capacidad <strong>de</strong>procesamiento que requiere la ejecución <strong>de</strong> las activida<strong>de</strong>s que se ejecutan en laaplicación. Y en tercer lugar, el mo<strong>de</strong>lo se construye siguiendo la estructura <strong>de</strong>componentes <strong>de</strong> la aplicación (mo<strong>de</strong>lo estructural), y sobre él, se formula <strong>de</strong>forma <strong>in</strong><strong>de</strong>pendiente la carga <strong>de</strong> trabajo que ejecuta (mo<strong>de</strong>lo reactivo).Palabras clave: Mo<strong>de</strong>lo <strong>de</strong> tiempo real, UML, Sistemas basados en componentes,Análisis <strong>de</strong> planificabilidad1 Introducción 1Los sistemas <strong>de</strong> tiempo real que se utilizan actualmente en la <strong>in</strong>dustria son muy complejos.Utilizan plataformas distribuidas constituidas por <strong>de</strong>cenas <strong>de</strong> nudos procesadores,que ejecutan un gran número <strong>de</strong> aplicaciones <strong>in</strong><strong>de</strong>pendientes o asociadas, muchas<strong>de</strong> las cuales tienen requisitos <strong>de</strong> tiempo real, y otras exigen niveles preestablecidos <strong>de</strong>calidad <strong>de</strong> servicio. Los procesos <strong>de</strong> <strong>de</strong>sarrollo <strong>de</strong> estos tipos <strong>de</strong> aplicaciones se basanen la disponibilidad <strong>de</strong> un mo<strong>de</strong>lo que <strong>de</strong>scriba cualitativamente y cuantitativamente elcomportamiento temporal <strong>de</strong>l sistema completo. Este mo<strong>de</strong>lo, que se <strong>de</strong>nom<strong>in</strong>a1. Este trabajo ha sido f<strong>in</strong>anciado por la Comisión Interm<strong>in</strong>isterial <strong>de</strong> Ciencia y Tecnología <strong>de</strong>l gobiernoespañol <strong>de</strong>ntro <strong>de</strong>l proyecto <strong>de</strong> <strong>in</strong>vestigación TIN 2005-08665-C03-02.


mo<strong>de</strong>lo <strong>de</strong> tiempo real, es el medio <strong>de</strong> que se vale el diseñador para formular los requisitostemporales durante la fase <strong>de</strong> especificación, razonar en las fases <strong>de</strong> diseño sobrela arquitectura y el mo<strong>de</strong>lo <strong>de</strong> concurrencia que son más a<strong>de</strong>cuados, y certificar la planificabilida<strong>de</strong>n las fases <strong>de</strong> validación. El mo<strong>de</strong>lo <strong>de</strong> tiempo real es una abstracción<strong>de</strong>l sistema que contiene <strong>de</strong> forma relacionada toda la <strong>in</strong>formación que se necesita parapre<strong>de</strong>cir y evaluar su comportamiento temporal.Aunque hay diferentes metodologías para formular los mo<strong>de</strong>los, el más utilizado esel conocido como "Mo<strong>de</strong>lo Transaccional" [1][2], con el que el sistema se mo<strong>de</strong>lamediante dos <strong>de</strong>scripciones complementarias:• Mo<strong>de</strong>lo <strong>de</strong> flujo <strong>de</strong> control o transaccional, es un mo<strong>de</strong>lo reactivo que <strong>de</strong>scribe laaplicación en función <strong>de</strong>l conjunto <strong>de</strong> secuencias <strong>de</strong> activida<strong>de</strong>s o transaccionesque concurren en ella y que se <strong>de</strong>senca<strong>de</strong>nan como respuesta a los eventos proce<strong>de</strong>ntes<strong>de</strong>l entorno o <strong>de</strong> temporización generados por el reloj. Este mo<strong>de</strong>lo constituyeel marco en el que se especifican los requisitos <strong>de</strong> tiempo real.• Mo<strong>de</strong>lo <strong>de</strong> uso <strong>de</strong> recursos o <strong>de</strong> contención, que <strong>de</strong>scribe los recursos limitados <strong>de</strong>procesamiento y <strong>de</strong> s<strong>in</strong>cronización que se disponen para llevar a cabo concurrentementeel conjunto <strong>de</strong> activida<strong>de</strong>s, y que condicionan el modo en que pue<strong>de</strong>hacerse uso <strong>de</strong> la capacidad <strong>de</strong> ejecución disponible en el sistema.La importancia actual <strong>de</strong> la metodología <strong>de</strong> mo<strong>de</strong>lado transaccional es consecuencia<strong>de</strong> tres hechos. En primer lugar, basados en él se han <strong>de</strong>sarrollado un amplio conjunto<strong>de</strong> métodos y herramientas <strong>de</strong> análisis <strong>de</strong> planificabilidad, estimación <strong>de</strong> tiempo <strong>de</strong>respuesta, asignación óptima <strong>de</strong> priorida<strong>de</strong>s, etc.[2][3][4]. En segundo lugar, la mayoría<strong>de</strong> los sistemas operativos [5] y lenguajes <strong>de</strong> programación para diseño <strong>de</strong> sistemas<strong>de</strong> tiempo real ofrecen recursos <strong>de</strong> s<strong>in</strong>cronización y políticas <strong>de</strong> planificación que tienensu fundamento en el hecho <strong>de</strong> que los sistemas <strong>de</strong> tiempo real basados en ellos sonanalizables utilizando esta metodología <strong>de</strong> mo<strong>de</strong>lado. En tercer lugar, el perfil "UMLprofile for Schedulability, Performance and Time" (SPT) [6] propuesto por OMGcomo estándar para garantizar la <strong>in</strong>teroperatividad <strong>de</strong> herramientas CASE <strong>de</strong> diseño <strong>de</strong>tiempo real, tiene sus fundamentos en esta metodología <strong>de</strong> mo<strong>de</strong>lado.Los sistemas distribuidos <strong>de</strong> tiempo real son actualmente muy relevantes <strong>de</strong>bido albajo coste y a la gran anchura <strong>de</strong> banda <strong>de</strong> las re<strong>de</strong>s <strong>de</strong> comunicación <strong>de</strong> que se dispone.La arquitectura software <strong>de</strong> una aplicación que se ejecuta en una plataforma distribuidaes semejante a la que se utiliza en un entorno monoprocesador, s<strong>in</strong> embargo,mientras que en ésta la comunicación entre tareas sólo requiere <strong>de</strong> los servicios <strong>de</strong>l sistemaoperativo, en el caso distribuido, cuando los procesos son <strong>de</strong> nudos diferentes serealiza mediante <strong>in</strong>tercambio <strong>de</strong> mensajes y requiere también los servicios <strong>de</strong>l software<strong>de</strong> comunicaciones. El mo<strong>de</strong>lo <strong>de</strong> tiempo real <strong>de</strong> una aplicación distribuida es muchomás complejo que el <strong>de</strong> la misma aplicación en entorno monoprocesador, las transaccionesson <strong>in</strong>ternudos, y para garantizar sus requisitos temporales hay que gestionar unnúmero mayor <strong>de</strong> recursos y emplear protocolos más complejos [7][8].Tradicionalmente, las aplicaciones <strong>de</strong> tiempo real han tenido una arquitectura sencillaque implementaba directamente el mo<strong>de</strong>lo transaccional utilizado en su especificación,haciendo uso para ello <strong>de</strong> los recursos que a tal f<strong>in</strong> ofrecen los sistemasoperativos <strong>de</strong> tiempo real. Como se muestra en la figura 1, para abordar la complejidad


Fig. 1. Niveles <strong>de</strong> modularización y mo<strong>de</strong>lado <strong>de</strong> aplicaciones <strong>de</strong> tiempo real<strong>de</strong> estos sistemas, gestionar la diversidad <strong>de</strong> versiones que se generan, y cumplir losplazos que requiere la evolución <strong>de</strong>l mercado, se ha impuesto la componentización <strong>de</strong>su diseño en todos sus niveles: en los sistemas operativos, en el software <strong>de</strong> <strong>in</strong>termediacióny en el diseño <strong>de</strong>l código <strong>de</strong> la propia aplicación [9][10].La componentización es un patrón estructural que es <strong>in</strong><strong>de</strong>pendiente <strong>de</strong>l proceso <strong>de</strong>diseño <strong>de</strong> tiempo real, pero que al <strong>in</strong>troducir cambios profundos en la metodología <strong>de</strong><strong>de</strong>sarrollo <strong>de</strong> las aplicaciones, <strong>in</strong>terfiere con los métodos tradicionales <strong>de</strong> diseño <strong>de</strong>tiempo real. En las metodologías tradicionales, las aplicaciones son <strong>de</strong>s<strong>de</strong> su <strong>in</strong>icioconcebidas y <strong>de</strong>scritas como conjuntos <strong>de</strong> tareas o transacciones concurrentes <strong>de</strong>ntro<strong>de</strong> un paradigma <strong>de</strong> sistema reactivo, y es en una fase posterior, cuando se organiza elcódigo asociando las operaciones utilizadas en paquetes o librerías. Por el contrario, enlas metodologías basadas en componentes, el sistema se concibe y diseña como unacomposición <strong>de</strong> módulos reusables proce<strong>de</strong>ntes <strong>de</strong> catálogos, y es posteriormente enlas fases <strong>de</strong> ref<strong>in</strong>amiento <strong>de</strong>l diseño, cuando las líneas <strong>de</strong> flujo <strong>de</strong> control se i<strong>de</strong>ntificany se asocian a procesos que <strong>in</strong>troducen el mo<strong>de</strong>lo <strong>de</strong> concurrencia. En el diseño <strong>de</strong> lossistemas basados en componentes, hay que hacer compatibles los dos puntos <strong>de</strong> vista:el estructural (estático) que i<strong>de</strong>ntifica las operaciones como servicios <strong>de</strong> las <strong>in</strong>stancias<strong>de</strong> los componentes y el reactivo (d<strong>in</strong>ámico) don<strong>de</strong> las activida<strong>de</strong>s (<strong>in</strong>vocación <strong>de</strong> lasoperaciones) se organizan por tareas o procesos.Una metodología <strong>de</strong> mo<strong>de</strong>lado concebida para <strong>de</strong>scribir aplicaciones <strong>de</strong> tiempo realdiseñadas utilizando componentes, <strong>de</strong>be seguir estando orientada a <strong>de</strong>scribir el mo<strong>de</strong>loreactivo <strong>de</strong> la aplicación, pero <strong>de</strong>be basarse en elementos <strong>de</strong> mo<strong>de</strong>lado que puedani<strong>de</strong>ntificarse con la estructura <strong>de</strong> componentes <strong>de</strong> la aplicación. A tal f<strong>in</strong>, se ha <strong>de</strong> disponer<strong>de</strong> recursos <strong>de</strong> mo<strong>de</strong>lado para formular el mo<strong>de</strong>lo <strong>de</strong> tiempo real <strong>de</strong> un componente,como un elemento autocontenido <strong>de</strong> abstracciones y datos que <strong>de</strong>scriban lascaracterísticas <strong>de</strong> temporización y s<strong>in</strong>cronización <strong>in</strong>cluidas en su código, y que tengalas características <strong>de</strong> completitud y componibilidad necesarias para que el mo<strong>de</strong>lo <strong>de</strong>tiempo real <strong>de</strong> la aplicación pueda construirse por composición <strong>de</strong> los mo<strong>de</strong>los <strong>de</strong>tiempo real <strong>de</strong> los componentes que forman parte <strong>de</strong> ella (<strong>de</strong> forma análoga a como secompone el código <strong>de</strong> la aplicación ensamblando los códigos <strong>de</strong> los componentes).


En trabajos previos [11] [12] se ha propuesto la metodología MAST (Mo<strong>de</strong>l<strong>in</strong>g andAnalysis Suite for Real-Time Applications) <strong>de</strong> mo<strong>de</strong>lado y análisis <strong>de</strong> sistemas <strong>de</strong>tiempo real distribuidos, que sigue el mo<strong>de</strong>lo transaccional propuesto por la organizaciónOMG [6]. En este trabajo se <strong>de</strong>scribe a nivel conceptual, la estrategia que se utilizapara que los mo<strong>de</strong>los tengan las características <strong>de</strong> componibilidad que requiere elmo<strong>de</strong>lado <strong>de</strong> sistemas <strong>de</strong> tiempo real construidos con componentes. En este documento,los mo<strong>de</strong>los se presentan como una extensión <strong>de</strong> la metodología MAST quehemos <strong>de</strong>nom<strong>in</strong>ado "Component-Based System Real-Time Mo<strong>de</strong>l" (CBS-RTM), perolos conceptos y soluciones que se proponen transcien<strong>de</strong>n <strong>de</strong> ella y son directamenteaplicables a otras metodologías existentes compatibles con el perfil SPT-OMG [6].2 Estructura <strong>de</strong>l metamo<strong>de</strong>lo CBS-RTMEl metamo<strong>de</strong>lo CBS-RTM <strong>de</strong>f<strong>in</strong>e la semántica y los atributos <strong>de</strong> los elementos <strong>de</strong>mo<strong>de</strong>lado y las formas en que se pue<strong>de</strong>n asociar para constituir un mo<strong>de</strong>lo <strong>de</strong> tiemporeal. En la figura 2, se muestra la estructura <strong>de</strong> paquetes en que se ha organizado loselementos <strong>de</strong>l metamo<strong>de</strong>lo:• El paquete Core <strong>de</strong>f<strong>in</strong>e los tipos <strong>de</strong> elementos que constituyen la base conceptualcomún sobre la que se <strong>de</strong>f<strong>in</strong>en los elementos con los que se construyen los mo<strong>de</strong>los<strong>de</strong> los componentes y <strong>de</strong> las aplicaciones. Incorpora los conceptos duales <strong>de</strong>scriptore <strong>in</strong>stancia <strong>de</strong> mo<strong>de</strong>lo, los elementos raíces para mo<strong>de</strong>lar la capacidad <strong>de</strong>procesamiento <strong>de</strong> los recursos y el requerimiento <strong>de</strong> procesamiento <strong>de</strong> las activida<strong>de</strong>s,y los tipos básicos sobre tiempo, capacidad, prioridad, etc.• El paquete Component <strong>de</strong>f<strong>in</strong>e los elementos <strong>de</strong> mo<strong>de</strong>lado que <strong>de</strong>scriben el comportamientotemporal <strong>de</strong> los componentes software, <strong>de</strong> los recursos <strong>de</strong> las plataformashardware/software y <strong>de</strong> las cargas <strong>de</strong> trabajo <strong>de</strong> las aplicaciones.• El paquete Application <strong>de</strong>f<strong>in</strong>e los elementos <strong>de</strong> mo<strong>de</strong>lado <strong>de</strong>l comportamiento <strong>de</strong>tiempo real <strong>de</strong> las aplicaciones construidas por composición <strong>de</strong> componentes software<strong>de</strong> aplicación (bus<strong>in</strong>ess components), <strong>de</strong>splegados en plataformas <strong>de</strong> ejecuciónmultiprocesadoras y distribuidas.Component PackageApplication Packagertm_Workloadrtm_Componentrtm_Trigger<strong>in</strong>grtm_Tim<strong>in</strong>gRequirementrtm_Applicationrtm_Usagertm_ResourceCore Packagertm_Corertm_typesFig. 2. Paquetes con que se <strong>de</strong>f<strong>in</strong>e el metamo<strong>de</strong>lo CBS-RTM


3 Paquete Core: Núcleo <strong>de</strong>l metamo<strong>de</strong>lo y clases <strong>de</strong> más alto nivelLos dos conceptos claves <strong>de</strong> la metodología <strong>de</strong> formulación <strong>de</strong> los mo<strong>de</strong>los <strong>de</strong> tiemporeal que se proponen son <strong>de</strong>scriptor (rtm_Descriptor) e <strong>in</strong>stancia (rtm_Instance) <strong>de</strong>mo<strong>de</strong>lo <strong>de</strong> tiempo real, que como se muestra en la figura 3, constituyen las clases raíces<strong>de</strong>l metamo<strong>de</strong>lo que <strong>de</strong>scribe los mo<strong>de</strong>los <strong>de</strong> tiempo real que se <strong>de</strong>f<strong>in</strong>en en lametodología CBS-RTM:• Un rtm_Descriptor es una plantilla parametrizada que contiene la <strong>in</strong>formacióncompleta relativa a un elemento consi<strong>de</strong>rado como clase, que es relevante paraque <strong>de</strong>scribir el comportamiento temporal <strong>de</strong> cualquier <strong>in</strong>stancia <strong>de</strong>l mismo que seutilice en la ejecución <strong>de</strong> una aplicación <strong>de</strong> la que forme parte. El <strong>de</strong>scriptor proporcionala <strong>in</strong>formación semántica y cuantitativa que es común a todos los entesque puedan resultar <strong>de</strong> su <strong>in</strong>stanciación. Es <strong>in</strong><strong>de</strong>pendiente <strong>de</strong> la aplicación en laque se utiliza, o <strong>de</strong> cualquier otro elemento <strong>de</strong>l que requiera hacer uso para implementarsu funcionalidad. A tal f<strong>in</strong>, el <strong>de</strong>scriptor tiene <strong>de</strong>f<strong>in</strong>idos parámetros quereferencian, pero <strong>de</strong>jan <strong>in</strong><strong>de</strong>f<strong>in</strong>idas, características que serán <strong>de</strong>f<strong>in</strong>idas a nivel <strong>de</strong><strong>in</strong>stancia.• Un rtm_Instance es una parte <strong>de</strong>l mo<strong>de</strong>lo completo <strong>de</strong> tiempo real <strong>de</strong> una aplicación,que <strong>de</strong>scribe el comportamiento temporal <strong>de</strong> una <strong>in</strong>stancia concreta <strong>de</strong> unaclase <strong>de</strong> elemento (recurso o servicio <strong>de</strong>l sistema) en el contexto <strong>de</strong> un modo <strong>de</strong>ejecución <strong>de</strong> la aplicación al que <strong>de</strong>nom<strong>in</strong>amos situación <strong>de</strong> tiempo real ("rtm-Situation"). La rtm_Instance se genera a partir <strong>de</strong>l rtm_Descriptor <strong>de</strong> la clase <strong>de</strong>elemento <strong>de</strong>l que es <strong>in</strong>stancia, resolviendo los parámetros que presenta <strong>in</strong><strong>de</strong>f<strong>in</strong>idos,con valores y referencias a <strong>in</strong>stancias <strong>de</strong> mo<strong>de</strong>lo concretas, que son las queexisten en el contexto <strong>de</strong> la RT-Situation que se está mo<strong>de</strong>lando.Las clases rtmd_Descriptor y rtmi_Instance 1 <strong>de</strong> este metamo<strong>de</strong>lo se correspon<strong>de</strong>nsemánticamente y conceptualmente con las clases <strong>de</strong> igual nombre <strong>de</strong>f<strong>in</strong>idas en la secciónGeneral_Resource_Mo<strong>de</strong>ll<strong>in</strong>g <strong>de</strong>l perfil SPT[6]. En la figura 3 se muestra, que almás alto nivel, estos <strong>de</strong>scriptores e <strong>in</strong>stancias se especializan en tres tipos <strong>de</strong> clases:• Las clases rtmd_Component/rtmi_Component <strong>de</strong>f<strong>in</strong>en elementos contenedoresTie_TypeDECLAREDAGGREGATED*rtmd_Resourcertmd_Descriptorname : I<strong>de</strong>ntifiertie : Tie_Type*rtmd_Component***rtmi_Resourcertmi_Instancename : I<strong>de</strong>ntifierrtmi_Component** *rtmd_Usage* *rtmi_UsageFig. 3. Clases raíces <strong>de</strong> más alto nivel <strong>de</strong>l metamo<strong>de</strong>lo1. Para que sea explícita la naturaleza <strong>de</strong> los elementos que se <strong>de</strong>f<strong>in</strong>en <strong>de</strong>l metamo<strong>de</strong>lo, se han añadidolos prefijos rtmd a los elementos que son <strong>de</strong>scriptores, y rtmi a los que son <strong>in</strong>stancias.


que agrupan todos los elementos <strong>de</strong> mo<strong>de</strong>lado que constituyen el mo<strong>de</strong>lo <strong>de</strong> unmódulo hardware o software. Los elementos <strong>de</strong> estas clases realizan dos funciones:en primer lugar, la propia función <strong>de</strong> contenedor que sirve para <strong>de</strong>clarar losmo<strong>de</strong>los <strong>de</strong> los recursos, los mo<strong>de</strong>los <strong>de</strong> las formas <strong>de</strong> uso <strong>de</strong> los recursos hardware/software,y los parámetros y referencias a mo<strong>de</strong>los externos con los que seformula el mo<strong>de</strong>lo <strong>de</strong>l módulo. En segundo lugar, <strong>de</strong>f<strong>in</strong>e el ámbito <strong>de</strong> visibilidad<strong>de</strong> los i<strong>de</strong>ntificadores, parámetros y elementos <strong>de</strong> mo<strong>de</strong>lado.• Las clases rtmd_Resource/rtmi_Resource <strong>de</strong>f<strong>in</strong>en los mo<strong>de</strong>los <strong>de</strong> los recursossoftware (sistemas operativos, mutexes, drivers, etc.) y hardware (procesadores,re<strong>de</strong>s <strong>de</strong> comunicación, temporizadores, etc.) que <strong>de</strong>scriben cualitativamente ycuantitativamente la capacidad <strong>de</strong> procesamiento <strong>de</strong> que se dispone y las característicascon las que pue<strong>de</strong> utilizarse.• Las clases rtmd_Usage/rtmi_Usage <strong>de</strong>scriben los mo<strong>de</strong>los <strong>de</strong> tiempo real <strong>de</strong> lasformas <strong>de</strong> uso <strong>de</strong> un servicio en un recurso, esto es, representan una abstracciónque <strong>de</strong>scribe los recursos y la cantidad <strong>de</strong> procesamiento <strong>de</strong> ellos que se utilizacuando se acce<strong>de</strong> a un servicio <strong>de</strong> un componente, (por ejemplo ejecutando unaoperación software, transfiriendo un mensaje por la red, etc.).4 Paquete ComponentEl paquete Component contiene las <strong>de</strong>f<strong>in</strong>iciones <strong>de</strong> las primitivas <strong>de</strong> mo<strong>de</strong>lado que seutilizan para <strong>de</strong>scribir el mo<strong>de</strong>lo <strong>de</strong> comportamiento temporal <strong>de</strong> módulos reusableshardware y software (recursos hardware y software <strong>de</strong> la plataforma, componentessoftware <strong>de</strong> aplicación, elementos <strong>de</strong> carga <strong>de</strong> trabajo, etc.). También contiene los elementoscontenedores que se necesitan para organizar los mo<strong>de</strong>los. Todos estos elementos<strong>de</strong> mo<strong>de</strong>lado sirven para <strong>de</strong>scribir los módulos hardware y software que son parte<strong>de</strong> una aplicación <strong>de</strong> una forma autocontenida y reusable.El paquete rtm_Component <strong>de</strong>f<strong>in</strong>e los elementos contenedores que permiten organizarlos mo<strong>de</strong>los con una estructura similar a la que tiene el sistema y la aplicación. Lafigura 4 muestra los elementos contenedores <strong>de</strong>f<strong>in</strong>idos en el metamo<strong>de</strong>lo. El elementobásico es rtmd_Component, que sirve para agrupar en un elemento los mo<strong>de</strong>los <strong>de</strong> losrecursos y <strong>de</strong> las formas <strong>de</strong> uso <strong>de</strong> los recursos que constituyen el mo<strong>de</strong>lo <strong>de</strong> unmódulo reusable hardware/software. También pue<strong>de</strong>n contener recursivamente otrosrtmd_Component, lo que posibilita <strong>de</strong>f<strong>in</strong>ir mo<strong>de</strong>los <strong>de</strong> módulos en función <strong>de</strong> losmo<strong>de</strong>los <strong>de</strong> los elementos <strong>de</strong> que se compone. En el metamo<strong>de</strong>lo, se <strong>in</strong>cluye un tipo <strong>de</strong>contenedor específico <strong>de</strong> modos <strong>de</strong> uso <strong>de</strong> un recurso que se <strong>de</strong>nom<strong>in</strong>a rtmd_Interface,rtmd_Component(from rtm_Core)**rtmd_Resource(from rtm_Core)***rtmd_Usage(from rtm_Core)**rtmd_Interface*Fig. 4. Elementos contenedores <strong>de</strong>f<strong>in</strong>idos en el metamo<strong>de</strong>lo CBS-RTM


que se utiliza para <strong>de</strong>f<strong>in</strong>ir <strong>de</strong> forma estructurada los mo<strong>de</strong>los <strong>de</strong> grupos <strong>de</strong> procedimientosque constituyen un mismo servicio ofrecido por diferentes componentes.El paquete rtm_Resource <strong>de</strong>f<strong>in</strong>e los elementos <strong>de</strong> mo<strong>de</strong>lado <strong>de</strong> tiempo real que tienencomo elemento raíz la clase rtmd_Resource y que se utilizan para <strong>de</strong>scribir lacapacidad <strong>de</strong> procesamiento que proporcionan los diferentes recursos <strong>de</strong> la plataformaque ejecuta las activida<strong>de</strong>s que constituyen la aplicación, así como las limitaciones asu uso que <strong>in</strong>troducen los elementos <strong>de</strong> s<strong>in</strong>cronización que se necesitan para planificarel acceso concurrente <strong>de</strong> las activida<strong>de</strong>s a recursos <strong>de</strong> acceso limitado. La figura 5muestra el conjunto <strong>de</strong> elementos <strong>de</strong> mo<strong>de</strong>lado <strong>de</strong>f<strong>in</strong>idos:• rtmd_Process<strong>in</strong>gResource: mo<strong>de</strong>la la capacidad <strong>de</strong> un elemento hardware parallevar a cabo activida<strong>de</strong>s <strong>de</strong> la aplicación, tales como ejecución <strong>de</strong> segmentos <strong>de</strong>código o transferencia <strong>de</strong> mensajes.• rtmd_Processor: mo<strong>de</strong>la la capacidad <strong>de</strong> un procesador para ejecutar código.• rtmd_Network: mo<strong>de</strong>la la capacidad <strong>de</strong> una red <strong>de</strong> comunicación para transferirmensajes entre procesadores.• rtmd_Timer: mo<strong>de</strong>la el consumo <strong>de</strong> capacidad <strong>de</strong> procesamiento <strong>de</strong>l procesadorque conlleva la gestión <strong>de</strong>l temporizador, así como la granularidad <strong>de</strong>l tiempo enla activida<strong>de</strong>s temporizadas.• rtmd_Driver: mo<strong>de</strong>la el consumo <strong>de</strong> capacidad <strong>de</strong> procesamiento <strong>de</strong>l procesadorque se emplea en la gestión <strong>de</strong>l envío y recepción <strong>de</strong> mensajes por una red <strong>de</strong>comunicación.• rtmd_PrimaryScheduler/rtmd_SecondaryScheduler: mo<strong>de</strong>la el consumo <strong>de</strong> capacidad<strong>de</strong> procesamiento que se emplea en la gestión <strong>de</strong>l planificador. Un planificadorrepresenta el elemento <strong>de</strong>l sistema operativo que gestiona la distribución <strong>de</strong> lacapacidad <strong>de</strong> procesamiento entre las tareas en espera <strong>de</strong> ser ejecutadas. El metamo<strong>de</strong>loprevé una estructura jerárquica <strong>de</strong> planificadores: los planificadores primariosgestionan directamente la capacidad <strong>de</strong> un recurso <strong>de</strong> procesamientohardware y los planificadores secundarios gestionan en segundo nivel la capacidad<strong>de</strong> procesamiento que ha sido asignada a un proceso. Estos elementos tambiénrtmd_Resource(from rtm_Core)rtmd_PrimarySchedulerscheduler 1hostrtmd_Process<strong>in</strong>gResourcertmd_Schedul<strong>in</strong>gServerhostrtmd_Processorrtmd_Networkscheduler 1rtmd_SecondarySchedulersystemTimer 1rtmd_Timer1host*rtmd_Driverrtmd_SharedResourceFig. 5. Pr<strong>in</strong>cipales clases relativas al mo<strong>de</strong>lado <strong>de</strong> elementos <strong>de</strong> recursos <strong>de</strong> ejecución


mo<strong>de</strong>lan la política <strong>de</strong> planificación que cualifica la estrategia con la que se distribuyela capacidad <strong>de</strong> procesamiento. La metodología permite mo<strong>de</strong>lar diferentespolíticas específicas <strong>de</strong> planificación basadas en priorida<strong>de</strong>s fijas, EDF, o protocolos<strong>de</strong> transferencia <strong>de</strong> mensajes basados en paquetes.• rtmd_Schedul<strong>in</strong>gServer: mo<strong>de</strong>la entida<strong>de</strong>s <strong>de</strong> planificación tales como procesos,tareas, hilos <strong>de</strong> un procesador o sesiones <strong>de</strong> comunicación <strong>de</strong> una red. Cada unotiene agregado una estructura específica <strong>de</strong> datos que <strong>in</strong>dica al planificador lacaracterísticas <strong>de</strong> su planificación. Se permiten políticas <strong>de</strong> planificación basadasen priorida<strong>de</strong>s, EDF, <strong>de</strong> <strong>in</strong>terrupción, servidores esporádicos, etc.• rtmd_SharedResource: mo<strong>de</strong>la un recurso <strong>de</strong> s<strong>in</strong>cronización entre procesos que<strong>de</strong>ben acce<strong>de</strong>r a un recurso compartido en régimen <strong>de</strong> exclusión mutua. Sólo seadmiten protocolos que impi<strong>de</strong>n <strong>in</strong>versión <strong>de</strong> prioridad tales como el techo <strong>in</strong>mediato<strong>de</strong> prioridad, herencia <strong>de</strong> prioridad o protocolo basado en pila (SRP).El paquete rtm_Usages contiene los elementos <strong>de</strong> mo<strong>de</strong>lado que se utilizan para<strong>de</strong>scribir la capacidad <strong>de</strong> procesamiento que usan las activida<strong>de</strong>s que se ejecutan <strong>de</strong>ntro<strong>de</strong> una aplicación. Todos los elementos <strong>de</strong>f<strong>in</strong>idos en este paquete tienen como elementoraíz la clase rtmd_Usage. Correspon<strong>de</strong>n, por ejemplo, al mo<strong>de</strong>lo <strong>de</strong> la ejecución<strong>de</strong>l código <strong>de</strong> un procedimiento lógico <strong>de</strong> un componente, al mo<strong>de</strong>lo <strong>de</strong> las activida<strong>de</strong>sque se realizan en background (p.e. la gestión <strong>de</strong>l timer) o el mo<strong>de</strong>lo <strong>de</strong> la respuesta auna <strong>in</strong>terrupción hardware o temporizada. En la figura 6 se muestran las clases raíces<strong>de</strong>f<strong>in</strong>idas en el metamo<strong>de</strong>lo para mo<strong>de</strong>lar los usos <strong>de</strong> los recursos:• rtmd_Operation: mo<strong>de</strong>la la ejecución <strong>de</strong> una sección <strong>de</strong> código o la transferencia<strong>de</strong> un mensaje. Específicamente <strong>de</strong>scribe la cantidad <strong>de</strong> procesamiento querequiere la ejecución <strong>de</strong> una actividad que se planifica en un mismo proceso, s<strong>in</strong>requerir s<strong>in</strong>cronización con otros procesos. Declara los recursos compartidos a losque <strong>de</strong>be haber accedido para po<strong>de</strong>r realizarse, y los recursos que libera tras suconclusión. En el metamo<strong>de</strong>lo se <strong>de</strong>f<strong>in</strong>en diferentes operaciones especializadas:- rtmd_SimpleOperation: mo<strong>de</strong>la la ejecución <strong>de</strong> una sección simple <strong>de</strong> código.Tiene como atributos los tiempos <strong>de</strong> ejecución <strong>de</strong> peor, mejor y caso promedio,formulados como valores normalizados a la capacidad <strong>de</strong> un procesador <strong>de</strong>referencia.rtmd_Usage(from rtm_Core)rtmd_Job* locked* unlockedrtmi_SharedResourcertmd_Operationrtmd_RPCOperation*rtmd_CompositeOperationrtmd_SimpleOperationwcet : NormalizedExecutionTimeacet : NormalizedExecutionTimebcet : NormalizedExecutionTimertmd_MessageTransmissionmaxMessageSize : BitCountm<strong>in</strong>MessageSize : BitCountavgMessageSize : BitCountFig. 6. Clases raíces <strong>de</strong>f<strong>in</strong>idas en el paquete rtmd_Usages.


- rtmd_MessageTransmission: mo<strong>de</strong>la la transferencia <strong>de</strong> un mensaje simple poruna red.- rtmd_CompositeOperation: mo<strong>de</strong>la una operación compleja compuesta por unasecuencia <strong>de</strong> los diferentes tipos <strong>de</strong> operaciones.- rtmd_RPCOperation: mo<strong>de</strong>lan el uso <strong>de</strong> un recurso que se <strong>in</strong>voca remotamente,y complementa su mo<strong>de</strong>lo con todas aquellas características propias <strong>de</strong>luso <strong>de</strong>l recurso (y no <strong>de</strong>l mecanismo con el que se realice la <strong>in</strong>vocación) queson necesarias para mo<strong>de</strong>lar la <strong>in</strong>vocación remota. En la figura 7 se muestra lacorrespondiente sección <strong>de</strong>l metamo<strong>de</strong>lo, y los nuevos datos que se <strong>in</strong>corporan:las operaciones <strong>de</strong> construcción (marshall<strong>in</strong>g) y <strong>de</strong>codificación <strong>de</strong> los mensajes(unmarshall<strong>in</strong>g) y las características <strong>de</strong> los mensajes <strong>de</strong> <strong>in</strong>vocación y <strong>de</strong> retorno<strong>de</strong> resultados.rtmd_RPCOperationogMarshall<strong>in</strong>gogUnmarshall<strong>in</strong>gicMarshall<strong>in</strong>gicUnmarshall<strong>in</strong>grtmd_SimpleOperation<strong>in</strong>voked 1rtmd_OperationogMessageicMessagertmd_MessageTransmissionFig. 7. Elementos <strong>de</strong>l mo<strong>de</strong>lo <strong>de</strong> una operación remota.• rtmd_Job: Mo<strong>de</strong>lan el uso <strong>de</strong> un conjunto <strong>de</strong> recursos que se realiza cuando se<strong>in</strong>voca un procedimiento que ejecuta un conjunto <strong>de</strong> activida<strong>de</strong>s relacionadasentre sí por flujo <strong>de</strong> control, pero que se ejecutan en múltiples servidores <strong>de</strong> planificación.El caso típico <strong>de</strong> uso <strong>de</strong> recurso que se mo<strong>de</strong>la con este elemento es la<strong>in</strong>vocación <strong>de</strong> un servicio <strong>de</strong> un componente, que para su implementaciónrequiere la <strong>in</strong>vocación <strong>de</strong> servicios <strong>de</strong> otros componentes locales o remotos, ycuyos threads han <strong>de</strong> s<strong>in</strong>cronizarse. Como se muestra en la figura 8, la <strong>de</strong>scripción<strong>de</strong> un Job es compleja ya que <strong>in</strong>volucra conjuntos <strong>de</strong> operaciones, schedul<strong>in</strong>g server,eventos y elementos <strong>de</strong> control (fork, jo<strong>in</strong>t, branch and merge).rtmd_Jobrtmi_Schedul<strong>in</strong>gServer1rtmi_Operation1rtmi_RPCOperation*rtmi_Activityrtmi_RPCActivity<strong>in</strong>put1output1start 1 end 1events *<strong>in</strong>putsrtmi_Event *outputs**rtmi_EventHandler1 rtmi_Tim<strong>in</strong>gRequirementFig. 8. Descripción <strong>de</strong>l mo<strong>de</strong>lo <strong>de</strong> un job.*


El paquete rtm_Workload <strong>de</strong>scribe los recursos que se han <strong>de</strong>f<strong>in</strong>ido para <strong>de</strong>scribirlos elementos <strong>de</strong>l mo<strong>de</strong>lo reactivo que pue<strong>de</strong>n ser gestionados por un componente <strong>de</strong>la aplicación. La carga <strong>de</strong> trabajo <strong>de</strong> un sistema <strong>de</strong> tiempo real se <strong>de</strong>scribe mediante unconjunto <strong>de</strong> transacciones, cada una <strong>de</strong> ellas mo<strong>de</strong>lada por un elemento <strong>de</strong>l tiportmd_Transaction. Cada transacción <strong>de</strong>scribe la secuencia <strong>de</strong> activida<strong>de</strong>s que se <strong>de</strong>benejecutar como respuesta a un evento <strong>de</strong>l entorno o temporizado. Asimismo, una transaccióncontiene la <strong>de</strong>scripción <strong>de</strong>l patrón <strong>de</strong> generación <strong>de</strong> los eventos que la <strong>in</strong>vocan,y también los requisitos temporales que se requieren en su ejecución.La transacción se mo<strong>de</strong>la mediante un grafo en el que los nudos son activida<strong>de</strong>s ymanejadores <strong>de</strong> eventos y los arcos son eventos entre ellos, y en conjunto representalas relaciones <strong>de</strong> flujo que existen entre las activida<strong>de</strong>s que la constituyen. Comomuestra la figura 9, una transacción se <strong>de</strong>f<strong>in</strong>e por medio <strong>de</strong> tres tipos <strong>de</strong> elementos::• rtmi_Event: representa una <strong>de</strong>pen<strong>de</strong>ncia <strong>de</strong> flujo entre activida<strong>de</strong>s. Pue<strong>de</strong> tenerasociado un elemento rtmi_Tim<strong>in</strong>gRequirement, que representa un requisito temporalque <strong>de</strong>be satisfacer la generación <strong>de</strong>l evento. Se <strong>de</strong>f<strong>in</strong>en diferentes tipos <strong>de</strong>requisitos temporales relativos a plazos (<strong>de</strong>adl<strong>in</strong>e), a fluctuaciones (jitter) y al porcentaje<strong>de</strong> fallos que se admite (miss ratio). Asimismo, pue<strong>de</strong>n hacer referencia aun evento externo (global) o al evento que <strong>in</strong>voca la actividad (local).• rtmi_ExternalEvent: mo<strong>de</strong>la una secuencia <strong>de</strong> eventos que <strong>in</strong>vocan la transacción,ya sean proce<strong>de</strong>ntes <strong>de</strong>l entorno o temporizados generados por el reloj. Describeprobabilísticamente los tiempos en que se generan, utilizando diferentes patronescomo s<strong>in</strong>gulares, periódicos, esporádicos, en ráfaga, etc.• rtmi_EventHandlers: representan acciones que son activadas con la llegada <strong>de</strong> unevento, y que a su vez son origen <strong>de</strong> nuevos eventos. Hay dos tipos <strong>de</strong> manejadores<strong>de</strong> eventos. Las activida<strong>de</strong>s representan la ejecución <strong>de</strong> una operación por unente <strong>de</strong> planificación en un recurso. Los otros manejadores <strong>de</strong> eventos representandiferentes opciones <strong>de</strong> distribución <strong>de</strong> eventos entre activida<strong>de</strong>s, tales como retrasos(<strong>de</strong>lay), <strong>in</strong>vocación concurrente (fork), <strong>in</strong>vocación alternativa (branch), convergencias<strong>in</strong>cronizada (jo<strong>in</strong>t) o convergencia alternativa (merge).rtmd_Usage(from rtm_Core)rtmi_Schedul<strong>in</strong>gServer(from rtm_Resource)11rtmi_Operation(from rtm_Usage)1rtmi_RPCOperation(from rtm_Usage)*rtmi_Activityrtmi_RPCActivity*rtmi_EventHandler1<strong>in</strong>putrtmd_Transaction*<strong>in</strong>puts * outputs **rtmi_ExternalEventFig. 9. Elementos <strong>de</strong> mo<strong>de</strong>lado <strong>de</strong> una transacción*rtmi_Event*rtmi_T im<strong>in</strong>gRequ irement


5 Application Package.El paquete Application ofrece los recursos necesarios para formular el mo<strong>de</strong>lo <strong>de</strong> unaaplicación cuya configuración se ha realizado agregando componentes <strong>de</strong> tiempo real,y que se encuentra <strong>de</strong>splegada en una plataforma compuesta por recursos hardware/software <strong>de</strong> los que se dispone <strong>de</strong> su mo<strong>de</strong>lo <strong>de</strong> tiempo real.En la figura 10 se muestra que el mo<strong>de</strong>lo <strong>de</strong> tiempo real <strong>de</strong> una aplicación se compone<strong>de</strong>l mo<strong>de</strong>lo <strong>de</strong> cada una <strong>de</strong> sus situaciones <strong>de</strong> tiempo real. Cada rtmi_RTSituationmo<strong>de</strong>la un modo <strong>de</strong> operación <strong>de</strong> la aplicación, <strong>de</strong>splegada sobre una <strong>de</strong>term<strong>in</strong>ada plataforma<strong>de</strong> ejecución, en la que hay <strong>de</strong>f<strong>in</strong>idos requisitos <strong>de</strong> tiempo real. Cada situación<strong>de</strong> tiempo real constituye un mo<strong>de</strong>lo completo, analizable e <strong>in</strong><strong>de</strong>pendiente, que pue<strong>de</strong>ser procesado por las herramientas <strong>de</strong> análisis <strong>de</strong> planificabilidad y estimación <strong>de</strong> larespuesta temporal.:rtmi_Application*rtmi_RT Situationplatform 1 1 logicalrtmi_Component(from rtm_Core)*workloadrtmi_Transaction(from rtm _W orkload)Fig. 10. Clases para el mo<strong>de</strong>lado <strong>de</strong> una aplicación.La formulación <strong>de</strong>l mo<strong>de</strong>lo <strong>de</strong> una situación <strong>de</strong> tiempo real conlleva dos tareascomplementarias:• Declaración <strong>de</strong> las <strong>in</strong>stancias <strong>de</strong> los mo<strong>de</strong>los <strong>de</strong> los componentes software y <strong>de</strong> losrecursos <strong>de</strong> la plataforma que participan en la aplicación, lo que se correspon<strong>de</strong>con la formulación estructural <strong>de</strong>l mo<strong>de</strong>lo <strong>de</strong> tiempo real <strong>de</strong> la aplicación.• Declaración <strong>de</strong> las <strong>in</strong>stancias <strong>de</strong> las transacciones que constituyen la carga <strong>de</strong> trabajo<strong>de</strong> la aplicación en ese modo, lo que se correspon<strong>de</strong> con la formulación <strong>de</strong>lmo<strong>de</strong>lo reactivo <strong>de</strong> la aplicación.6. Ejemplo <strong>de</strong> formulación <strong>de</strong>l mo<strong>de</strong>lo <strong>de</strong> tiempo real <strong>de</strong> una aplicación.A f<strong>in</strong> <strong>de</strong> ilustrar los conceptos que se han <strong>de</strong>f<strong>in</strong>ido a través <strong>de</strong>l metamo<strong>de</strong>loCBS_RTM, se propone un ejemplo sencillo consistente en una aplicación distribuida y<strong>de</strong> tiempo real cuya función es leer diferentes señales digitales, y cuando su estado nosea el correcto, generar ciertas acciones <strong>de</strong> alarma consistentes en establecer otraslíneas digitales y generar sonidos en un altavoz. En la figura 11.a se muestra el mo<strong>de</strong>lológico <strong>de</strong> la aplicación, basado en tres clases <strong>de</strong> componentes software:• Agent: Es un componente <strong>de</strong> tipo cliente activo que controla la ejecución concurrente<strong>de</strong> múltiples tareas <strong>de</strong> verificación <strong>de</strong> alarma utilizando un hilo <strong>de</strong> flujo<strong>in</strong><strong>de</strong>pendiente para cada una <strong>de</strong> ellas.• IO_Card: En un componente pasivo que ofrece la <strong>in</strong>terfaz I_Digital, a través <strong>de</strong> la


Agent1..n 0..nsensor <strong>in</strong>strument1I_Digital actuatorIO_Cardspeaker1I_PlayerSoundGeneratorSoundGeneratoreng<strong>in</strong>eProcessor(PC 1.1GH + Marte OS)eng<strong>in</strong>eSensor:IO_Car<strong>de</strong>ng<strong>in</strong>eActuator:IO_CardRT_CORBAsensoractuatorpanelProcessor(PC 2.2GH + MarteOS)alarmControl:AgentlocalBus(CAN bus 1 Mhz)speakersensoractuatorRT_CORBAboardSpeaker:Ext_Speaker<strong>in</strong>strumentboardPanel:IO_Card(a)Fig. 11. Ejemplo carAlarm: (a) Arquitectura software. (b) Plataforma y <strong>de</strong>spliegueque los clientes pue<strong>de</strong>n leer una línea digital <strong>de</strong> entrada (función readState) y estableceruna línea digital <strong>de</strong> salida (procedure writeState).• SoundGenerator: Es un componente que ofrece la <strong>in</strong>terfaz I_Player, a través <strong>de</strong>lque un cliente pue<strong>de</strong> generar sonidos <strong>de</strong> alarma (procedure play). Para generar elsonido utiliza un conjunto <strong>de</strong> líneas digitales con las que controla el dispositivoque genera físicamente el sonido.En la figura 11.b se muestra el <strong>de</strong>spliegue <strong>de</strong> la aplicación carAlarm que va a serobjeto <strong>de</strong> mo<strong>de</strong>lado. La plataforma <strong>de</strong> ejecución está compuesta <strong>de</strong> dos nudos <strong>de</strong>nom<strong>in</strong>adospanelProcessor y eng<strong>in</strong>eProcessor operando con MaRTE OS, que se comunicanentre sí a través <strong>de</strong>l bus CAN <strong>de</strong> comunicaciones localBus. La aplicación utiliza losrecursos <strong>de</strong> distribución RT Corba. Los componentes alarmControl <strong>de</strong> tipo Agent, elcomponente boardSpeaker <strong>de</strong> tipo Ext_Speaker y el componente boardPanel <strong>de</strong>l tipoIO_Card en el procesador paneProcessor y los componentes eng<strong>in</strong>eSensor y eng<strong>in</strong>eActuator,ambos <strong>de</strong>l tipo IO_Card en el procesador eng<strong>in</strong>eProcesor.El planteamiento que se realiza en este trabajo, es la elaboración <strong>de</strong>l mo<strong>de</strong>lo <strong>de</strong>tiempo real <strong>de</strong> la aplicación en dos fases. Cuando se adquieren los componentes software(Agent, IO_Card y Ext_Speaker), se registran sus mo<strong>de</strong>los <strong>de</strong> tiempo real, juntocon su código y la <strong>in</strong>formación <strong>in</strong>trospectiva asociada (metadata). Asimismo, cuandose <strong>de</strong>sarrollan aplicaciones utilizando ciertas plataformas hardware y software, se formulany validan los mo<strong>de</strong>los <strong>de</strong> tiempo real que caracterizan su comportamiento.Cuando se <strong>de</strong>sarrolla una nueva aplicación, se elabora el mo<strong>de</strong>lo <strong>de</strong> sus situaciones <strong>de</strong>tiempo real, componiendo <strong>in</strong>stancias <strong>de</strong> los mo<strong>de</strong>los <strong>de</strong> los componentes y <strong>de</strong> losrecursos <strong>de</strong> la plataforma que han sido <strong>de</strong>f<strong>in</strong>idas <strong>de</strong> acuerdo con el contexto <strong>de</strong> la apli-(b)Fig. 12. Descriptores e <strong>in</strong>stancias <strong>de</strong>l mo<strong>de</strong>lo <strong>de</strong> la aplicación carAlarm


cación. En la figura 12, se muestran los <strong>de</strong>scriptores y las <strong>in</strong>stancias que participan enel mo<strong>de</strong>lado <strong>de</strong> la aplicación carAlarm cuyo <strong>de</strong>spliegue muestra la figura 11.La formulación <strong>de</strong>l mo<strong>de</strong>lo <strong>de</strong> tiempo real <strong>de</strong>l ejemplo es muy simple, y resulta <strong>de</strong><strong>in</strong>stanciar los mo<strong>de</strong>los <strong>de</strong> los módulos hardware y software que <strong>in</strong>tervienen en la aplicación(mo<strong>de</strong>lo estructural), y <strong>de</strong> <strong>in</strong>stanciar los mo<strong>de</strong>los <strong>de</strong> las transacciones que concurrenen la situación <strong>de</strong> tiempo real que se mo<strong>de</strong>la..Para formular el mo<strong>de</strong>lo el mo<strong>de</strong>lo <strong>de</strong> tiempo real <strong>de</strong> la aplicación, el diseñadortiene que realizar dos pasos: <strong>de</strong>clarar las <strong>in</strong>stancias haciendo referencia a los <strong>de</strong>scriptores<strong>de</strong> los que son <strong>in</strong>stancias y que se encuentran almacenados en el Registro, y asignarvalores a los parámetros <strong>de</strong>f<strong>in</strong>idos en ellos, <strong>de</strong> acuerdo con el contexto <strong>de</strong> la situaciónque se mo<strong>de</strong>la. En la figura 13, se muestra el mo<strong>de</strong>lo <strong>de</strong> la aplicación <strong>de</strong>l ejemplo quese ha <strong>de</strong>scrito. El mo<strong>de</strong>lo <strong>de</strong> tiempo real <strong>de</strong> la aplicación tiene como elemento raízcarAlarmApplication. El mo<strong>de</strong>lo contiene el mo<strong>de</strong>lo <strong>de</strong> una única situación <strong>de</strong> tiemporeal carAlarm. En el mo<strong>de</strong>lo <strong>de</strong> la plataforma platform se <strong>de</strong>claran los mo<strong>de</strong>los <strong>de</strong> dosnudos procesadores, <strong>de</strong> una red <strong>de</strong> comunicaciones bus y <strong>de</strong> un servicio <strong>de</strong> comunica-Fig. 13. Formulación UML <strong>de</strong>l mo<strong>de</strong>lo <strong>de</strong> la aplicación carAlarm


ciones rci. Cada nudo procesador, representa el mo<strong>de</strong>lo <strong>de</strong>l propio procesador, <strong>de</strong> sureloj, <strong>de</strong> su planificador y <strong>de</strong> los recursos <strong>de</strong> comunicación necesarios para mantener lacomunicación CORBA. La red <strong>de</strong> comunicaciones representa el mo<strong>de</strong>lo <strong>de</strong> tiempo real<strong>de</strong>l propio bus CAN, y <strong>de</strong> los drivers <strong>in</strong>stalados en sendos procesadores para su gestión.El mo<strong>de</strong>lo <strong>de</strong> la propia aplicación se encuentra ubicado en el elemento logical. Secompone <strong>de</strong> los mo<strong>de</strong>los <strong>de</strong> las <strong>in</strong>stancias que participan en la ejecución <strong>de</strong> la situación<strong>de</strong> tiempo real: boardSpeaker, alarmControl, eng<strong>in</strong>eSensor, eng<strong>in</strong>eActuator, boardPanelSensory boardPanelActuator. Estos dos últimos son mo<strong>de</strong>los <strong>de</strong>l mismo componentes<strong>in</strong>stanciado boardPanel en su doble papel <strong>de</strong> sensor y actuador.La <strong>de</strong>claración <strong>de</strong> una <strong>in</strong>stancia <strong>de</strong> un <strong>de</strong>scriptor <strong>de</strong> un componente se realizamediante dos atributos: url que hace referencia al fichero <strong>de</strong>l Registro en el que seencuentra el mo<strong>de</strong>lo, y base que i<strong>de</strong>ntifica el elemento <strong>de</strong> mo<strong>de</strong>lado que se referencia.Al <strong>de</strong>clarar una <strong>in</strong>stancia se ha <strong>de</strong> asignar valores a todos los parámetros que tenía <strong>de</strong>f<strong>in</strong>idosel <strong>de</strong>scriptor.En el mo<strong>de</strong>lo <strong>de</strong> la figura 13, la carga <strong>de</strong> trabajo se ha realizado <strong>de</strong>clarando las <strong>in</strong>stancias<strong>de</strong> las transacciones oilAlarmControl, oilDisplay y waterDisplay, en el mo<strong>de</strong>lo<strong>de</strong>l componente activo alarmControl que es responsable <strong>de</strong> su gestión.La sencillez <strong>de</strong> la elaboración <strong>de</strong>l mo<strong>de</strong>lo <strong>de</strong> una aplicación, contrasta con la complejidad<strong>de</strong> los mo<strong>de</strong>los <strong>de</strong> los componentes, en los que no sólo se ha <strong>de</strong> <strong>de</strong>scribir elcomportamiento temporal <strong>de</strong>l recurso hardware o <strong>de</strong>l componente software, s<strong>in</strong>o queha <strong>de</strong> formularse <strong>de</strong> forma parametrizada. En la figura 14, se muestra el mo<strong>de</strong>lo <strong>de</strong>l<strong>de</strong>scriptor <strong>de</strong>l componente pasivo IOCard, cuya función es el control <strong>de</strong> una tarjetahardware <strong>de</strong> adquisición <strong>de</strong> datos. Para simplificar la figura, sólo se <strong>de</strong>scribe <strong>de</strong> formacompleta el mo<strong>de</strong>lo <strong>de</strong> procedimiento writeState.El mo<strong>de</strong>lo <strong>de</strong>l componente software se formula como el rtmd_Component IOCard.En el mo<strong>de</strong>lo <strong>de</strong> la figura se mo<strong>de</strong>lan dos procedimientos readState y writeState quecorrespon<strong>de</strong>n a las operaciones que permiten leer el estado o establecer el estado <strong>de</strong>una línea digital controlada por la tarjeta <strong>de</strong> IO. Estos procedimientos pue<strong>de</strong>n ser <strong>in</strong>vocadosremotamente a través <strong>de</strong> CORBA (o <strong>de</strong> otro software <strong>de</strong> comunicaciones), por loque se <strong>de</strong>scriben mediante rtmd_RPCOperation y rtmd_APCOperation respectivamente.En el caso <strong>de</strong> la operación writeState que es APC, el mo<strong>de</strong>lo <strong>de</strong>scribe tanto laFig. 14. Mo<strong>de</strong>lo <strong>de</strong>l <strong>de</strong>scriptor <strong>de</strong>l componente software IO_Card


temporización <strong>de</strong> la ejecución <strong>de</strong>l código que la lleva a cabo localmente (localReadState),como también la temporización <strong>de</strong> la operación <strong>de</strong> serialización <strong>de</strong> los argumentos<strong>de</strong> entrada (outgo<strong>in</strong>gMarshall<strong>in</strong>g), <strong>de</strong> recuperación <strong>de</strong> los mismos (outgo<strong>in</strong>gUnmarshall<strong>in</strong>g) y las características <strong>de</strong>l mensaje <strong>de</strong>pendientes <strong>de</strong> la operación <strong>in</strong>vocada,que se requiere para codificar sus datos <strong>de</strong> entrada. En el caso <strong>de</strong> una operaciónRPC, que implica un mensaje <strong>de</strong> retorno, también se <strong>in</strong>cluyen la temporización <strong>de</strong> lasoperaciones <strong>de</strong> serialización y recuperación <strong>de</strong> los datos <strong>de</strong> retorno (<strong>in</strong>com<strong>in</strong>gMarshall<strong>in</strong>gy <strong>in</strong>com<strong>in</strong>gUnmarshall<strong>in</strong>g) y <strong>de</strong>l mensaje <strong>de</strong> retorno (<strong>in</strong>com<strong>in</strong>gMessage).Este mo<strong>de</strong>lo sólo <strong>de</strong>clara dos parámetros: @theHost que hace referencia al nudo enel que se <strong>in</strong>stala cada <strong>in</strong>stancia que se mo<strong>de</strong>le, a través <strong>de</strong> la que se acce<strong>de</strong> a las características<strong>de</strong> capacidad <strong>de</strong> procesamiento y <strong>de</strong> planificación, y @theMutexPriority quecorrespon<strong>de</strong> al techo <strong>de</strong> prioridad que se asigna al mutex que permite <strong>in</strong>vocar <strong>de</strong> formaconcurrente sus operaciones. A ambos se <strong>de</strong>ben asignar valores cuando se mo<strong>de</strong>le una<strong>in</strong>stancia <strong>de</strong>l componente (véase por ejemplo el mo<strong>de</strong>lado <strong>de</strong> la <strong>in</strong>stancia boardSensoren la figura 13).7. ConclusionesEn este trabajo se <strong>de</strong>scribe una estrategia para formular el mo<strong>de</strong>lo <strong>de</strong> tiempo real <strong>de</strong> unsistema mediante la composición <strong>de</strong> los mo<strong>de</strong>los <strong>de</strong> tiempo real que <strong>de</strong>scriben el comportamientotemporal <strong>de</strong> los módulos hardware y software <strong>de</strong> que se compone el sistema.Con esta estrategia se facilita el diseño <strong>de</strong> aplicaciones <strong>de</strong> tiempo real basadas encomponentes ya que permite asociar mo<strong>de</strong>los <strong>de</strong> comportamiento temporal a los componentessoftware que son <strong>in</strong><strong>de</strong>pendientes <strong>de</strong> la aplicación en que se utilizan y portanto son reusables. Asimismo, se simplifica el diseño <strong>de</strong> sistemas <strong>de</strong> tiempo real distribuidos,en los que se <strong>de</strong>be evaluar el comportamiento <strong>de</strong> una aplicación en diferentesplataformas <strong>de</strong> ejecución y con diferentes configuraciones <strong>de</strong> distribución.La clave <strong>de</strong> la estrategia <strong>de</strong> mo<strong>de</strong>lado es el uso <strong>de</strong> los conceptos <strong>de</strong> <strong>de</strong>scriptor e <strong>in</strong>stancia<strong>de</strong> mo<strong>de</strong>lo. El primero es una plantilla parametrizable que permite formular lascaracterísticas <strong>de</strong> comportamiento <strong>de</strong> un módulo hardware o software <strong>de</strong> forma autocontenida,supliendo la <strong>de</strong>pen<strong>de</strong>ncia <strong>de</strong> otros módulos por referencias que quedan<strong>in</strong><strong>de</strong>term<strong>in</strong>adas. El segundo es el mo<strong>de</strong>lo concreto y f<strong>in</strong>al que <strong>de</strong>scribe el comportamientotemporal <strong>de</strong> una <strong>in</strong>stancia software o <strong>de</strong> un módulo hardware en el contexto <strong>de</strong>un modo <strong>de</strong> operación <strong>de</strong>l sistema que se analiza. La <strong>in</strong>stancia <strong>de</strong>l mo<strong>de</strong>lo se <strong>de</strong>riva <strong>de</strong>l<strong>de</strong>scriptor <strong>de</strong> mo<strong>de</strong>lo, asignando a los parámetros <strong>de</strong> éste, bien valores concretos oreferencias a otras <strong>in</strong>stancias concretas <strong>de</strong>f<strong>in</strong>idas en el propio mo<strong>de</strong>lo.Esta metodología se ha utilizado para simplificar el mo<strong>de</strong>lado <strong>de</strong> tiempo real <strong>de</strong> sistemasdistribuidos complejos, reutilizando los mo<strong>de</strong>los <strong>de</strong> plataformas <strong>de</strong> ejecución(sistemas operativos, protocolos <strong>de</strong> comunicación, servicios <strong>de</strong> <strong>in</strong>termediación etc.) y<strong>de</strong> componentes software (librerías <strong>de</strong> funciones, servidores remotos, drivers, etc.).Utilizándola como base, se está actualmente <strong>de</strong>sarrollando herramientas que simplifiquenel diseño y la validación <strong>de</strong> sistemas <strong>de</strong> tiempo real basados en componentes.References[1] J. Liu, Real-Time Systems. ISBN 0-13-099651-3. Prentice Hall Inc., 2000.


[2] H. Kopetz, R. Za<strong>in</strong>l<strong>in</strong>ger, G. Fohler, H. Kantz, P. Puschner, and W. Schutz, ”The <strong>de</strong>sign ofreal-time systems: from specification to implementation and verification” Software Eng<strong>in</strong>eer<strong>in</strong>gJournal, Vol.6 , no. 3, pp. 72-82. May, 1991.[3] M. Kle<strong>in</strong>, T. Ralya, B. Pollak, R. Obenza, and M. González Harbour, A Practitioner's Handbookfor Real-Time Systems Analysis, Kluwer Aca<strong>de</strong>mic Pub., 1993.[4] A. Cheng, “Real-time Systems Schedul<strong>in</strong>g, Analysis and Verification”. ISBN 0-471-18406-3. John Wiley & Sons Inc., New Jersey, 2002[5] IEEE Std 1003.13 TM -2003: ”IEEE Standard for Information Technology-Standarized ApplicationEnvironment Profile (AEP)-POSIX R Realtime and Embed<strong>de</strong>d Application Support”,2003.[6] Object Management Group: "UML Profile for Schedulability, Performance and Time Specification",Version 1.0. OMG document formal/03-09-01, September, 2003.[7] J.J. Gutiérrez, M. González Harbour. “Optimized Priority Assignment for Tasks and Messages<strong>in</strong> Distributed Real-Time Systems”, Proc. of the 3rd Workshop on Parallel and DistributedReal-Time Systems, California, 1995[8] K. T<strong>in</strong><strong>de</strong>ll and J. Clark, Holistic Schedulability Analysis for Distributed Hard Real-TimeSystems. Microprocess<strong>in</strong>g & Microprogramm<strong>in</strong>g, Vol 50, N0s. 2-3, 1994.[9] J. Stankovic. "VEST: a toolset for construct<strong>in</strong>g and analyz<strong>in</strong>g component based operat<strong>in</strong>gsystems for embed<strong>de</strong>d and real-time systems", Proc. of the Embed<strong>de</strong>d Software, First InternationalWorkshop (EMSOFT 2001), Tahoe City, CA, USA, October 2001.[10]A. Tesanovic, D. Nyström, J. Hansson, and C. Norström: "Aspects and Components <strong>in</strong> Real-Time System Development: Towards Reconfigurable and Reusable Software", J. ofEmbed<strong>de</strong>d Comput<strong>in</strong>g, February, 2004.[11]M. González Harbour, J.J. Gutiérrez, J.C.Palencia and J.M.Drake: "MAST: Mo<strong>de</strong>l<strong>in</strong>g andAnalysis Suite for Real-Time Applications" Proc. of the ECRTS June 2001.[12].L. Med<strong>in</strong>a, M.González Harbour, J.M. Drake: "MAST Real-time View: A Graphic UMLTool for Mo<strong>de</strong>l<strong>in</strong>g Object_Oriented Real_Time Systems", RTSS, December, 2001.[13]MAST: Mo<strong>de</strong>l<strong>in</strong>g and Analysis Suite for Real-Time Applications. “http://mast.unican.es”and “http://mast.unican.es/umlmast”.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!