Generación
Descripción general
La generación ocurre cuando un proyecto basado en flo-lang se construye utilizando maven. Este proceso interpreta el código DSL que ha sido definido en MPS para generar los siguientes artefactos:
-
Código-este es un conjunto completo de ejecutables (Java) código.
-
Documentación-esta es una representación en ASCII de la información proporcionada en el DSL.
-
Casos de Prueba-cada camino a través de los flujos diseñados resultará en un caso de prueba separado que puede utilizarse para verificar su capacidad. Estos se generan en forma de scripts BDD (
.storyse proporcionan). También se proporciona un arnés de prueba IPF para facilitar la ejecución de estas pruebas. -
Visualización-se proporcionan una serie de artefactos, tanto SVG como orientados a gráficos, para permitir la visualización de los flujos generados en otras herramientas (predominantemente el almacén de datos operacionales, o ODS).
Unidad Generacional
La unidad generacional es el 'Modelo'. Esto significa que cualquier cosa definida dentro de un modelo se generará como una unidad única y, por lo tanto, existe como un solo paquete. Cualquier cosa generada dentro de un modelo se empaquetará junta y, por ende, se desplegará junta. Ahora consideremos qué sucede después de haber modelado nuestro proceso y cómo podemos utilizar esto para generar un IPF application.
Supongamos que tenemos un modelo simple que contiene un flujo y una llamada a algún componente de DSL de ejemplo. Este podría ser cualquiera de los componentes discutidos en la sección de <LINK TO CONCEPTS SECTION>[conceptos], por ejemplo, una llamada a un dominio externo. Cuando se invoca la generación en este modelo, veremos que se crean una serie de elementos clave:
Elementos Generados Clave
En la imagen anterior, podemos ver que hay cuatro aspectos clave a tener en cuenta durante el proceso de generación:
-
Las Clases ESB- estas clases forman colectivamente el Akka Event-Comportamiento Sourced, que sirve como el motor que orquesta el procesamiento de un flujo a medida que recibe diversas entradas a lo largo de su ciclo de vida.
-
La clase Dominio del Modelo- Esta clase sirve como la interfaz central para interactuar con el dominio modelado por IPF y proporciona un conjunto de métodos que permiten la provisión de todo lo que el dominio necesita para funcionar.
-
La clase Model Operations- Esta clase proporciona acceso a una serie de funciones relacionadas con el comportamiento que ofrece el dominio (por ejemplo, abortar el flujo). También proporciona acceso al descriptor del flujo. El descriptor contiene información útil sobre la configuración de un flujo y, por lo tanto, es utilizado por varios otros componentes que interactúan con flo-lang.
-
Las clases Port- el modelo flo-lang generado se adhiere a los principios de la arquitectura hexagonal, con las clases de puerto representando las interfaces a través de las cuales un IPF application interactúa con el dominio. Como parte del proceso de generación, cada componente DSL en el modelo flo-lang definirá su propio puerto, permitiendo que la lógica de negocio requerida se aplique a través de una implementación de adaptador.
Por brevedad, solo se ha incluido una selección de los artefactos generados más relevantes anteriormente. Entre los muchos otros, algunos ejemplos notables incluyen historias de prueba y archivos asciidoc. |