Antecedentes: TRiEM 2005-06
Durante el periodo 2005-06 el grupo de investigación BCDS de la UdG trabajó con el Hospital de Día de Gerona de la FEM en el proyecto TRiEM, desarrollando el prototipo de una aplicación multiplataforma de videoconferencia con grabación, para permitir a los especialistas del centro llevar a cabo actividades de rehabilitación, asistencia remota o monitorización a distancia (el paciente en su casa y el especialista en el centro) a través de Internet.
La aplicación consiste en un cliente de mensajería instantánea modificado y que está escrito en el lenguaje de programación Java (y, por lo tanto, multiplataforma) y hace un uso extensivo del estándar XMPP. El prototipo creado disponía de las siguientes funcionalidades: videoconferencia, grabación audio/vídeo, bloc de notas, librería multimedia y chat.
El sistema fue diseñado para usar una infraestructura estándar de bajo coste; tanto en términos de equipamiento informático (CPU, tarjeta gráfica, webcams) como en comunicaciones. Por ejemplo: el prototipo puede ofrecer una comunicación de audio y vídeo buena a dos bandas con una conexión básica que suele ser de 3 Mbps de bajada y 300 kbps de subida.
La aplicación AXARM
La aplicación AXARM parte de la base inicial del proyecto TRiEM. Una de las principales tareas que se ha perseguido es hacer una refactorización completa de toda la aplicación. La idea general era modificar el software para hacer más manejables los cambios sin perder o ganar (inicialmente) nuevas funcionalidades. Esta nueva modularización permite entonces añadir nuevas funcionalidades en forma de extensiones (plugins) que pueden ser a nivel de software (enviar vídeos pregrabados a un paciente) o pueden incorporar elementos extras de hardware para ayudar a la monitorización de un paciente (joysticks, alfombras de baile, etc).
El proceso de la refactorización es progresivo: una vez familiarizado con el código es necesario identificar qué partes son del núcleo y cuáles acabarán siendo plugins. De este modo, se consigue deshacer su estructura monolítica, ampliar su alcance y hacerlo más extensible con una arquitectura modular. Las partes del núcleo están disponibles para usarlas en los plugins actuales y futuros, facilitando así el trabajo de creación. Al ser modular, un programador puede desarrollar nuevas funcionalidades sin conocer todo el programa. La documentación de cómo desarrollar una extensión (su API) y algunos ejemplos, son suficientes por poder extender la aplicación.
Extensiones

