El eBook describe en detalle M&P el primer "Model Driven
Distributed System" completamente operacional implementado en el año 2006.
M&P permite la implementación rápida de Aplicaciones Data-Driven, Event-Driven y
Process-Driven (Workflow).
En esta sección desarrollaremos el concepto de "Model Driven System" y enumeraremos sus principales ventajas.
Elementos de innovación en M&P
M&P incorpora un amplio espectro de innovaciones conceptuales y
técnicas que se enumeran en la sección "Elementos de innovación en M&P" cuyo valor agregado y sinergia se describen en el eBook, pero es su
característica de "Model Driven System" la que lo hace único entre opciones alternativas.
El concepto de Modelo
Tradicionalmente el desarrollo de las aplicaciones informáticas se realiza en etapas, que pueden resumirse en:
Recolección de Requerimientos
Especificación Formal de la Aplicación
Construcción (programación) de la Aplicación
Para la Especificación Formal de las aplicaciones se utilizan Modelos de diversos tipos.
Un Modelo es una descripción de la estructura y el comportamiento de un sistema (una
aplicación en nuestro caso).
La descripción se realiza utilizando elementos provistos por un Sistema de
Modelización.
Niveles de Abstracción
La Modelización puede hacerse
con diferentes Niveles de Abstracción.
El termino "abstracción" en este contexto significa "abstracción de detalles" o "poda de detalles".
Así, cuanto mas abstracto es un Modelo, menos detalles incluye.
Normalmente se consideran tres niveles de abstracción: Conceptual, Lógico
y Físico.
El nivel Conceptual es el mas abstracto y el Físico es el menos abstracto.
Modelización
El proceso de
Modelización puede ser
Top-Down, Bottom-Up o Mixto (recursivo entre niveles).
El proceso ideal es el Top-Down, en el que se define primero el Modelo Conceptual y se agregan detalles para obtener sucesivamente el
Modelo Lógico y el Modelo Físico.
Agregado automático
de detalles "por default"
Por lo general en la traducción a un nivel menor se agregan detalles tomados de un conjunto predefinido de detalles, y existe un mecanismo de agregado
automático por default".
De la inteligencia del mecanismo de agregado automático por default depende la eficiencia del proceso de
construcción de la aplicación.
El nivel del procesador de un computador
Como el procesador de un computador digital opera en un nivel de
abstracción mínimo (Nivel Físico) es necesario traducir los modelos mas abstractos a este nivel de
abstracción mínimo. El proceso de traducción se denomina habitualmente "programación" y en la
mayoría de los casos se hace manualmente.
Lenguajes de programación
de alto nivel
Para facilitar la programación se han desarrollado lenguajes de
programación "de alto nivel" (de abstracción) y se utiliza un programa denominado
"compilador" para traducir automáticamente las expresiones de ese mayor nivel al nivel
Físico en que opera el computador.
El programa compilador incorpora por default los detalles requeridos por el procesador.
Generadores de
código de alto nivel
Extrapolando
la línea anterior se implementan sistemas generadores de código de alto nivel. Estos sistemas, que a partir de especificaciones de mayor nivel, generan
código en un lenguaje de alto nivel (que luego es compilado), se basan
también en la incorporación de detalles por default.
Un Generador de Aplicaciones es un sistema generador de código que tiene la capacidad de generar la totalidad (o gran parte) del
código de una
aplicación.
La generación automática, análogamente a la robotización industrial, sustituye trabajo humano y provee una elevada productividad y calidad,
sin embargo, como veremos, presenta algunos inconvenientes.
Competencia de Salto en Alto
La competencia por lograr la traducción
automática desde el mayor nivel de abstracción posible (el Conceptual) al nivel mínimo
(el Físico) en que opera el computador la ganará aquel que desarrolle el sistema mas inteligente de
incorporación de detalles por default.
Un sistema inteligente de incorporación de detalles por default debe:
operar con un amplio espectro de aplicaciones (data-driven, event-driven y process-driven).
optimizar la performance de la aplicación.
Tomando el camino opuesto
Con el objetivo de ganar la competencia decidimos tomar el camino opuesto al de la
generación de código: desarrollar un
computador virtual capaz de operar directamente con especificaciones de
nivel Conceptual. La idea fuerza es especificar solo aquellos detalles de la
aplicación que constituyen su "esencia". La corporización de la
esencia es realizada por el computador virtual.
Como resultado de esta estrategia hemos implementado (en el año 2006) el primer "Model Driven System" completamente operacional
y lo denominamos "M&P" (Model & Player).
En M&P el computador virtual contiene toda la inteligencia y funcionalidad necesarias para la operación de
una Aplicación, incluída la interacción con los
Usuarios (ver Algunas Imágenes).
El computador virtual de M&P desempeña el rol de Model Player.
En cualquiera de las dos "vías" anteriores (programación manual y
automática) los programas constituyen el elemento central del procesamiento.
En la Vía de los Model Driven Systems (que denominamos Tercera Vía) el elemento central es el Modelo.
M&P como Model Driven System permite la ejecución directa de especificaciones de muy alto nivel minimizando la necesidad de construir programas previamente.
Ventajas sobre los Generadores de Aplicaciones
En los Generadores de Aplicaciones la cantidad de
código generado puede ser muy grande, especialmente en el caso de aplicaciones extensas y complejas, y cada programa generado debe ser compilado, distribuido e instalado para su utilización.
Los Generadores de Aplicaciones presentan el inconveniente de que cada cambio introducido en el Modelo base requiere la regeneración, compilación, distribución e instalación de todos los programas afectados por el cambio.
También las mejoras y optimizaciones del propio Generador de Aplicaciones
requiere la regeneración-compilación-distribución de los programas destinatarios
del cambio.
Y los inconvenientes se agravan cuando se implementan sistemas distribuidos.
Un Model Driven System no presenta estos inconvenientes. En un Model Driven System, una vez modificado el Modelo, los cambios entran en vigencia
inmediatamente. Sólo es necesario distribuir e instalar el Modelo cuya dimensión es de unos pocos kilobytes.
M&P inaugura la Tercera Vía
M&P es el primer "Model Driven
Distributed System" completamente operacional.
M&P demuestra que es posible implementar rápidamente, a bajo costo, aplicaciones "Model Driven"
dinámicas, flexibles y extensibles, que además tienen muy elevada performance.
Algunas
características de M&P
Una aplicación M&P se define mediante los siguientes elementos que se describen en el
eBook:
Uno o varios Modelos que describen la Estructura de la aplicación
y tienen formato XML.
Uno o varios Plugins que definen el Comportamiento de la aplicación. Los Plugins se codifican en C#. VB o cualquiera de los lenguajes disponibles en el MS .NET Framework.
Uno o varios Starter-Files que permiten configurar dinámicamente la
aplicación adaptándola a diversas circunstancias.
Las aplicaciones basadas en M&P almacenan su información en Bases de Datos Relacionales (MS Sql, Oracle, MS Access, etc.).
M&P permite almacenar con facilidad información multimedia en las bases de datos e interactuar con ella en las
interfaces de usuario.
La Modelización es Orientada a Objetos y permite modelizar fácilmente tanto aplicaciones Data-Driven como aplicaciones Event-Driven y Process-Driven (también llamadas aplicaciones "Workflow").
M&P cuenta con un subsistema integrado de Seguridad para manejar las
Autenticaciones y Autorizaciones de los usuarios.
El Full DB Editor de M&P permite la edición directa de datos y la
navegación referencial por la base de datos de la aplicación sin necesidad de formular consultas (queries).
El Model Creator de M&P permite la creación y edición rápida
de los Modelos.
El Model Creator permite la creación rápida de los Modelos mediante ingeniería
inversa
de bases de datos existentes.
Cuando una modificación del Modelo impacta sobre la definición de la base de datos, el Model Creator facilita la introducción de los cambios requeridos en la base de datos.
M&P corre en las siguientes Plataformas: Windows: Windows Vista, Windows XP SP2, Windows 2000 SP4.
El Resultado
M&P permite la implementación rápida, a bajo costo, de
Aplicaciones flexibles y extensibles, que se adaptan dinámicamente para
responder a las demandas del negocio y a nuevas oportunidades en un panorama
comercial volátil. Aplicaciones que además tienen muy elevada performance
operativa.