1- Application

La aplicación específica del sistema, puede constituirse por una parte reactiva y otra no, ambas pueden colaborar entre sí para lograr la funcionalidad del sistema. La parte reactiva utiliza el framework RKH.


2- Reactive part

Se constituye por uno o más Statecharts que se ejecutan en forma simultánea en contexto de sus objetos activos. Estos colaboran entre sí y con su entorno, enviando y recibiendo mensajes asincrónicos.

La aplicación utiliza RKH de manera transparente a la plataforma en uso, mediante la capa de abstracción de plataforma (PAL) y el BSP (Board Support Package). De esta manera, la aplicación se define como cross-platform.

El comportamiento reactivo de un objeto activo puede o no representarse mediante máquinas de estados.


3- Non-reactive part

Parte de la aplicación que no es necesariamente reactiva, por lo general se ejecutan en contexto de hilos del OS/RTOS subyacente y se comunica con la parte reactiva mediante mensajes asincrónicos.


4- Configuration

Define las opciones de configuración del framework RKH independientes de la plataforma subyacente, de acuerdo con las necesidades de la aplicación.


5- Neutral code

Código independiente de la plataforma sobre la cual se ejecuta el framework RKH. Hace uso de las funciones provistas por la plataforma subyacente, a través de la capa PAL, por el BSP, por la aplicación en la implementación de las acciones de los autómatas y las operaciones propias de los objetos activos. Esto último se basa en el principio de Inversión de Dependencias (DIP).


6- Board Support Package (BSP)

Concentra las dependencias de la plataforma que no están estrictamente definidas por el port de RKH. De esta forma, el BSP aumenta la flexibilidad del port en uso, permitiendo que una misma aplicación pueda ejecutarse sobre un mismo port pero en diferentes placas o entornos. Así, las aplicaciones de usuario se convierten en cross-platform. Adicionalmente, RKH define ciertas funciones que requiere proveer el BSP.


7- Platform Abstraction Layer (PAL)

Permite aislar el código de RKH de la plataforma subyacente. La selección de plataforma (port) se realiza en momento de compilación. Específicamente, el archivo rkhplat.h incluye condicionalmente el archivo rkhport.h que corresponda, según la opción de compilación para el port deseado. De igual manera, el archivo rkhtype.h incluye condicionalmente el archivo rkht.h que corresponda, según la misma opción de compilación.

OS/RTOS collaboration

De acuerdo a la configuración provista, la capa PAL desacopla, de manera independiente, los servicios nativos e internos de RKH como Event Queue, Memory Pool y Scheduler, de forma tal que puedan ser provistos externamente, por ejemplo, por un OS/RTOS, sin necesidad de modificar ni el framework RKH ni la aplicación.


8- PORT

Concentra las dependencias de la plataforma que requiere RKH. Se constituye básicamente por los archivos rkhport.h, rkhport.c y rkht.h.


9- Plataforma

Se constituye por el procesador, el compilador y el OS/RTOS en caso que exista.