Uso de patrones arquitectónicos web para el diseño de una aplicación domótica - Ballari, Tulio (2001)
En los últimos años los sitios Web han ido ganando en interacción y funcionalidad para pasar de ser no sólo una forma de presentar información y contenido sino también aplicaciones con soporte a complejidad de software tradicional. Así, muchas aplicaciones están siendo portadas a la Web, aprovechando las características de uniformidad, ubicuidad y extensibilidad que este medio presenta. En este contexto, el dominio de aplicaciones de Domótica se está viendo muy favorecida por el medio Web, entendiendo por Domótica –palabra surgida de doméstico e informática- como la disciplina que estudia el desarrollo de infraestructuras inteligentes en casas y edificios, como así también las tecnologías de información para soportarlas [8]. Nuestra línea de investigación se centró en una primer etapa, en el diseño y construcción de una aplicación distribuida Web para el control y monitoreo de módulos domóticos, a saber: los subsistemas de Iluminación y de Cochera [7, 3]. En esta segunda etapa, estamos integrando arquitecturas de software y hardware, centrada esta última en el mecanismo CAN (Controlled Area Network) [6]. El objetivo de la aplicación fue el de controlar mediante la Web el funcionamiento de los módulos de iluminación y cochera de un edificio (maqueta), con dispositivos de sensado y actuación. La aplicación, por ejemplo el módulo de cochera, mantiene el control del estado de los dispositivos físicos intervinientes, y brinda la posibilidad de acceder al edificio con la debida autenticación del usuario. Desde el punto de vista arquitectural, se decidió por una arquitectura de software de tres capas, bajo el modelo cliente-servidor, con aspectos específicos para controlar y monitorear los dispositivos y eventos en tiempo real (esto es, soft real-time). Es de especial importancia el requerimiento de actualización del estado de los dispositivos en los clientes, ante los eventos ocurridos en el modelo físico, que es realizado por el servidor mediante el mecanismo denominado callback. Por una parte, uno de los objetivos del proyecto fue la elección de una plataforma flexible y genérica para el desarrollo de aplicaciones centradas en la Web, evaluando las distintas arquitecturas e implementaciones posibles. Una meta específica fue el crear componentes reusables basándonos para su construcción en distintos patrones arquitecturales y de diseño. Por otra parte, es necesario contar con un proceso de desarrollo sistemático y bien definido, para poder guiar al desarrollador en la distintas fases y en el proceso de documentación, el cual proceso debe ser lo suficientemente flexible como para que se adapte a la naturaleza del proyecto. Para tal fin utilizamos el proceso RUP (Rational Unified Process) [5]. En el resto de esta comunicación, nos concentraremos en la visión arquitectural, principalmente en los patrones arquitectónicos y en los principios del desarrollo.