Generación de aplicaciones web con IFML

Características

Vamos a describir las características del enterno de desarrollo WebRatio que implementa el modelado mediante IFML.

En sus inicios, la plataforma Webratio utilizaba WebML para la realización de los modelos de la aplicación.

En estos momentos, IFML es el lenguaje de modelo por defecto de WebRatio.

La plataforma WebRatio

  • Dispone de las funcionalidades para diseñar modelos de datos y navegacionales utilizando IFML.
  • WebRatio crea un único fichero XML con todos los modelos definidos.
  • Permite utilizar cualquier gestor de base de datos.
  • Crea en la base de datos y de forma automática las tablas, atributos y relaciones indicados en el modelo conceptual.
  • Genera automáticamente el código JSP de una aplicación Web a partir del modelo navegacional.

El desarrollo de aplicaciones web con IFML se compone de los siguientes procesos.

- Modelado.
- Personalización e integración.
- Generación automática de código.
- Creación de la aplicación.

La plataforma WebRatio se integra con herramientas de Gestión del Ciclo de Vida. Todas las fuentes del proyecto se comparten mediante un servidor de trabajo colaborativo y un servidor de gestión de subversiones.

El problema de utilizar el control de versiones (VCS) es la incapacidad actual de resolver conflictos. Al presentarse conflictos en los modelos, el VCS mostrará las diferencias en el codigo XML de éstos, el cual será practicamente ininteligible.

A través de los componentes personalizados de WebRatio, es posible integrar a la aplicación una amplia variedad de sistemas y servicios como SAP, IBM Mainframe, Dropbox...

La Plataforma WebRatio facilita la integración de los sistemas de TICs con soluciones externas, facilitando la invocación y publicación de Web Services (REST, SOAP), así como servicios para la gestión de contactos y redes sociales como Facebook.

Modelo

Web ratio ofrece 4 tipos de modelos:

  • Modelo de interacción de flujo: describe la interfaz de la aplicación: como el usuario interactúa con la aplicacion, la estructura de navegación, el contenido proporcionado, y las acciones disponibles. El modelo de flujo usa la notación IFML, que es un estándar de la OMG.

  • Modelo de dominio: describe la organización de datos de la aplicación y almacena la información obtenida del usuario y almacenada por la aplicación. Puede ser representada en UML y ER (entidad relación).

  • Modelo de flujo de ejecución: describe la secuencia de las operaciones para obtener la lógica de negocio a traves de eventos y gatillos en la interfaz de usuario. Junto con el modelo de interacción de flujo, el modelo de flujo de ejecución permite describir de una forma completa todas las características deseadas de una aplicación.

  • Modelo del proceso de negocio: describe un proceso empresarial. El modelo de proceso empresarial, usada junto con los demás modelos, permite obtener la implementación de la aplicación y automatizar el proceso de negocio. El modelo de proceso de negocio es expresada en notación BPMN (estándar OMG).

Nosotros nos centraremos en el modelo de interacción de flujo y modelo de dominio, que esta descrita con IFML y UML.

Interaction Flow Modeling Language

El lenguaje de modelado para los flujos de interacción, IFML, es el resultado de la experiencia con WebML, y se enfoca en su generalización para cualquier plataforma. IFML ha sido diseñado para expresar el contenido, la interacción con el usuario y el comportamiento del front-end de las aplicaciones que pertenecen a los siguientes dominios:

  • Aplicaciones Web tradicionales basadas en HTML+HTTP
  • RIAs soportadas por el estándar HTML5.
  • Aplicaciones móviles.
  • Aplicaciones cliente-servidor.
  • Aplicaciones de escritorio.

Interfaces usuario-máquina (HMI) integradas para el control de las aplicaciones. Aplicaciones multicanales y contextualizadas. Cabe anotar que IFML no cubre el modelado de conenidos de la presentación del front-end de una aplicación y tampoco las especificaciones de gráficos bidimensionales y tridimensionales. IFML está orientado principalmente a aplicaciones de negocios de uso intensivo de datos.

Fuertemente inspirado por WebML, actualmente representa su generalización desde el dominio Web a un dominio genérico para la representación del Front-end de cualquier tipo de aplicación (Web, Escritorio, Mobile, etc.)

IFML Sirve Para Representar:

  • La visualización de los contenidos de las interfaces de usuario.
  • Patrones de navegación.
  • Eventos de usuario y su interacción.
  • Binding a la lógica de negocio.
  • Binding a las capas de persistencia.

Ventajas

  • Especificación formal de las diferentes perspectivas del fron-end.
  • Aislamiento de las problemáticas de la UI.
  • Separación de los conceptos (interacción de usuario vs backend)
  • Simplificación de la comunicación entre los expertos de UI y skateholders no técnicos.
  • Generación automática del código para el front-end de las aplicaciones.

Aspectos Introducidos

  • Modelado de eventos genéricos (de usuario y de sistema).
  • Flujo entre componentes y contenedores.
  • ViewComponent
  • Details, List, Form
  • Flow, Data Flow
  • Action
  • Port

Componentes

ViewContainer

Elemento de la interfaz que contiene elementos mostrando contenido y permitiendo interacción o otros Viewcontainers.

ViewContainer

ViewComponent

Elemento de la interfaz que muestra contenido o permite una entrada de datos.

ViewComponent

Event

Un evento que afecta al estado de la aplicación

Event

Action

Una pieza de la lógica de negocio activada por un evento.

Action

Una dependencia de entrada-salida. La fuente del enlace tiene una salida que es asociada con la entrada del objetivo del enlace

Navigation Flow

Data Flow

Intercambio de datos entre ViewComponents o Acción como consecuencia de una interacción previa con el usuario.

Data flow

Parameter Binding Group

Conjunto de ParameterBindings asociados a un InteractionFlow (siendo su navegación o flujo de datos)

Binding

Ejemplo real

Gmail