Arquitectura de EzWeb v.0.2

En esta página se muestra en detalle la arquitectura de la plataforma, en su versión 0.2.

Módulos y componentes de la plataforma

La plataforma está compuesta por los siguientes módulos (en la figura anterior se representan aquellos con los que el usuario interactua):

Servidor

La parte servidora se encarga de realizar las tareas de persistencia de datos de la plataforma. Se trata de un único módulo que responde a peticiones realizadas a distintas URLs, siguiendo una filosofía y un diseño REST. Este módulo además se encarga de servir la interfaz de la plataforma al cliente, así como los módulos necesarios para que la plataforma comience su ejecución, siguiendo un modelo AJAX.

El servidor tiene tres tareas principales organizadas en sus correspondientes módulos y agrupados aun nivel superior a modo de servidor RESTFul.

  • Servidor de Persistencia: es la tarea fundamental del servidor de la plataforma EzWeb. Ofrecerá una API REST a través de la cual, la capa del cliente podrá crear, actualizar, actualizar y borrar recursos en la base de datos del servidor.
  • Motor de Búsqueda: el servidor ofrecerá un motor de búsqueda de recursos para mejorar la experiencia del usuario del catálogo.
  • Proxy: el servidor ofrecerá también a través de la API REST, la posibilidad de realizar llamadas AJAX desde los gadgets a un servidor externo al de la plataforma. La existencia de este módulo tiene como objetivo la realización de funciones de proxy HTTP para proporcionar un medio a través del cual la plataforma pueda llevar a cabo peticiones HTTP procedentes de los iGadgets. Esto permite ofrecer un medio de intercomunicación con servicios que puedan ser proporcionados de manera externa a EzWeb.

La información detallada sobre la arquitectura correspondiente al servidor se encuentra aquí.

Cliente

El cliente de la aplicación se ejecuta en el navegador del usuario, y es el que ofrece toda la funcionalidad de la plataforma, por medio de los módulos descritos a continuación. Los módulos, una vez cargados, accederan a los datos ofrecidos por el servidor y los descargarán para comenzar la ejecución de la plataforma.

El catálogo es el módulo de la plataforma cuya finalidad es servir de gestor de recursos en el lado del cliente. Mediante él se podrán añadir nuevos gadgets, mostrar los ya existentes y la información asociada a ellos así como realizar búsquedas sobre los mismos, añadir distintos tipos de información al respecto de los mismos y añadir instancias de gadgets al Dragboard.

La información más detallada sobre el desarrollo del módulo del catálogo se encuentra en Arquitectura del Catálogo.

Entorno operacional

Este módulo es la parte de la aplicación que se encarga de la composición del mashup. Cada usuario tendrá su propia instancia del Entorno Operacional. Dicho usuario podrá tener en su propio Entorno Operacional tantos espacios de trabajo (Workspaces) como desee, cada uno de los cuales estará dividido en pestañas (Tabs) donde los usuarios podrán instanciar sus gadgets.

A continuación presentamos el diagrama de clases correspondiente a la arquitectura del entorno operacional: Arquitectura del Entorno Operacional.

Workspace

El Workspace contará con gran parte de la lógica de control del Entorno Operacional. Un Workspace es cada uno de los espacios de trabajo que un usuario utiliza para componer sus mashups de gadgets. Un usuario puede tener a sus disposición tantos Worspaces como considere necesario. Puede consultar de forma detallada la Arquitectura del Workspace.

Tab

Cada uno de los Workspaces podrá contener tantas pestañas (Tabs) como desee el usuario. Estos Tabs serán las áreas de la pantalla que están destinadas a la composición de los mashups. En ellas el usuarios podrán ubicar los gadgets que deseen. Para consultar la arquitectura de este módulo acceda al siguiente enlace: Arquitectura del Tab.

Dragboard

El Dragboard es el módulo encargado de la gestión de las instancias de gadgets y de la presentación de los mismos. El conjunto de funcionalidades que proporciona está destinado a la presentación de los iGadgets, la gestión de las preferencias de usuarios y la configuración de la apariencia del entorno en el que se manejan las propias instancias de gadgets.

La arquitectura de este módulo se puede consultar en el siguiente enlace: Arquitectura del Dragboard

Wiring

El módulo de wiring ha de encargarse de ofrecer los mecanismos necesarios para proporcionar comunicación local (sin intercambio de datos con el servidor), entre las instancias de gadgets incluidas en el entorno operacional de un usuario. Ha de ofrecer un modelo de comunicación, un modo de definir que puede enviar un gadget a otros, una API que posibilite esta comunicación y una interfaz de usuario que le permita configurar las comunicaciones deseadas. Todo ello como parte del núcleo de la plataforma. Se entiende comunicación entre gadgets como el envío de información desde un gadget hacia otros, de forma que estos conozcan instantaneamente dicha información.

Las características principales son:

  • Ofrecerá una interfaz para “atar” (comunicar) instancias de gadgets, de manera tanto automática (para el futuro) como manual, y también para pestañas.
  • El modelo de comunicación será una pizarra con publish/subscribe.
  • La conexión es por medio del dato, abstrayendo qué gadget ofrece un determinado dato (se consigue bajo acoplamiento entre gadgets).
  • El template incorporará la información necesaria acerca de entradas y salidas de datos.
  • Las conexiones establecidas y el valor de los datos compartidos persistirá entre sesiones.
  • El módulo ofrecerá una API para los desarrolladores de gadgets (para que puedan indicar la actualización un dato).
  • El módulo ha de permitir definir filtros de datos (pasar a mayusculas, reordenar nombre-apellidos)(para el futuro).

La información más detallada sobre el desarrollo del módulo de wiring se encuentra en Análisis y arquitectura del módulo de Wiring.0.2.

Núcleo de la plataforma

Este módulo aportará gran parte de la lógica de control de la plataforma junto con una serie de componentes que serán utilizados por el resto de módulos que componen la capa del cliente. Además, contará con los mecanismos necesarios para permitir la comunicación entre la capa del cliente y la capa del servidor.

Operation Manager

Es el módulo principal en el núcleo de la plataforma EzWeb. Es el encargado de iniciar el resto de módulos que componen la capa del cliente de la plataforma. Además, durante toda la ejecución de la aplicación realizará tareas de coodinación entre módulos. La arquitectura de este módulo se presenta a continuación: Arquitectura del Operation Manager.

Layout Manager

El módulo Layout Manager es el encargado de gestionar la interfaz de usuario de la plataforma EzWeb. Será la encargada de indicar en todo momento al módulo Operation Manager qué debe ser visible en cada momento. Puede acceder al diseño de este módulo en el siguiente enlace: Arquitectura del Layout Manager?.

Variable Manager

El Variable Manager será el encargado de la gestión del completo mecanismo de variables que ofrece EzWeb para que sean utilizadas en los gadgets. El mecanismo de variables utiliza el patrón publicador/subscritor. Las gadgets se suscriben a las variables de lectura y son notificados a través de su manejador cuando el valor de la variable es modificado. Puede acceder a la Arquitectura del Variable Manager.

Gadget Model

Aporta los componentes necesarios para representar un gadget en memoria. Pulse sobre este enlace para acceder a la Arquitectura del Gadget Model.

Context Manager

El entorno operacional del usuario está ligado al contexto, el entorno operacional es su espacio personal de trabajo y ha sido configurado para satisfacer las necesidades particulares de cada usuario. Por tanto, es interesante que los gadgets puedan adaptarse y ser sensibles al contexto, dando al término contexto el significado más amplio posible, de manera que comprenda elementos tales como el nombre de usuario, idiomas, tamaños que ha configurado para los gadgets, etc.

El Context Manager es el módulo que se ocupa de la carga de conceptos y variables de contexto de los diferentes gadgets en los workspaces. Asimismo contiene la interfaz pública para añadir y eliminar instancias de gadgets y notificar la propagación de los valores de los gadgets.

En el siguiente enlace se detalla la Arquitectura del Context Manager.

Showcase

Actúa como intermediario entre el catálogo de la plataforma y el entorno operacional. Acceda a la Arquitectura del Showcase.

Log Manager

Gestiona la consola de información al usuario de EzWeb. Haciendo click aquí se accede a la Arquitectura del Log Manager.

Persistence Engine

El módulo del Persistence Engine centraliza las comunicaciones entre la capa del cliente y la capa del servidor de la plataforma EzWeb. En este enlace se detalla la Arquitectura del Persistence Engine.

Comunicación entre módulos

A continuación se muestra la interconexión de los módulos, mostrando para ello las interfaces de los mismos.

Interfaces

FIXME: Sustituir por la v0.2 de las interfaces entre módulos

Arquitectura de un gadget EzWeb

Template

Código

Attachments