Documentation for a newer release is available. View Latest

Introducción al tutorial

Primeros pasos

Uso de un entorno de AWS proporcionado por Icon

Cuando uses los entornos de AWS suministrados por Icon, la configuración ya está hecha y no tienes que hacer nada más. El proyecto principal se ha descargado en el escritorio, en la carpeta 'ipf-tutorial'. En distintos momentos, los tutoriales se referirán al '<install-root>' del proyecto del tutorial; en tu caso, es simplemente la carpeta desktop/ipf-tutorial.

Si lo revisas, verás una carpeta 'solutions' que contiene las distintas soluciones para cada paso del tutorial. Empezarás usando la solución 'initial'.

Configurar tu propio entorno

Si utilizas tu propio entorno, asegúrate de tener instalados los siguientes elementos antes de comenzar este tutorial:

  1. Maven, versión 3.9.0 o superior (Maven)

  2. MPS/Flo-designer, versión 2022.3.3 (MPS)

  3. IntelliJ (u otro IDE) (IntelliJ)

  4. Java 17 (JDK17)

También necesitarás acceso a los repositorios del proyecto, que se encuentran en bitbucket. Te recomendamos usar un cliente de git para recuperar los proyectos, aunque también se pueden descargar desde la web. Toma nota de la ubicación en la que instales el proyecto, ya que la necesitarás en los tutoriales posteriores.

Si no puedes acceder al repositorio del tutorial, ponte en contacto con el soporte de Icon (support@iconsolutions.com), que podrá ayudarte.

El enfoque preferido para ejecutar la aplicación de ejemplo es usar contenedores docker. No obstante, el tutorial puede ejecutarse como una aplicación Java estándar siempre que se disponga de acceso a MongoDB y Kafka.

Conceptos a tener en cuenta

Ten en cuenta que este tutorial presupone conocimientos básicos de:

  • La aplicación de ejemplo utiliza el Spring Framework

  • Aplicaciones Event Sourced: esto significa que por cada cambio realizado en un pago se generará un evento. Estos eventos representan una definición del cambio, incluidos todos los puntos de datos que han sido modificados.

  • Maven como herramienta de construcción

  • En el núcleo de IPF está el DSL: es el lenguaje de pagos de Icon que permite definir flujos de pagos. Se utiliza dentro de JetBrains MPS para crear flujos y genera un conjunto de componentes Java que forman la base de cualquier implementación. Estos componentes usan la Arquitectura Hexagonal (también llamada Puertos y Adaptadores), que separa áreas de responsabilidad mediante interfaces (Puertos) e implementaciones (Adaptadores).

Presentación de la aplicación básica

Este tutorial comienza construyendo una aplicación sencilla que utiliza algunos de los componentes principales de IPF. Empecemos definiendo algunos conceptos clave:

  • Un Flujo: un flujo es un único proceso de pago.

  • Un Dominio IPF: un dominio IPF es el contenedor de uno o varios flujos. Proporciona la API para acceder y trabajar con esos flujos.

  • Una Aplicación IPF: en este caso, una aplicación IPF es una sencilla aplicación Spring Boot que proporciona un entorno en el que puede ejecutarse un dominio IPF.

  • Un Evento: el módulo de procesamiento de IPF funciona procesando eventos.

  • El Almacén de datos del Journal: el almacén de datos del journal es el almacén maestro de datos de IPF que contiene todos los eventos. Para este tutorial, usamos Mongo.

Uniendo todo, nuestra aplicación inicial se configura así:

home 2

Uso del código del tutorial

La aplicación del tutorial se divide en cuatro carpetas:

home 3

Estas contienen:

  • ipf-tutorial-docker: contiene los componentes de soporte de la aplicación en una configuración docker. Permite poner en marcha fácilmente un entorno docker que incluye los contenedores de soporte necesarios (mongo, kafka, simuladores, etc.).

  • ipf-tutorial-docs: contiene esta documentación del tutorial en formato AsciiDoc.

  • solutions: aquí están los códigos de solución de cada sección de este tutorial.

  • supporting-apps: algunas secciones del tutorial requieren acceso a aplicaciones simuladoras. En estas secciones se explica cómo utilizarlas.

Para comenzar, abre en IntelliJ <install-root>/solutions/initial/pom.xml. Esto cargará la versión inicial de la aplicación. Podemos usarla a lo largo de nuestro trabajo con el tutorial, ampliándola en cada paso para enriquecer nuestra aplicación.

Sin embargo, si en algún momento necesitas pasar al código esperado, puedes saltar directamente a la solución abriendo: install-root>/solutions/<tutorial-name>/pom.xml.

Este tutorial se divide en varios itinerarios de aprendizaje.

Una vez completado, puedes recorrer la ruta del DSL:

Estos tutoriales del DSL construyen un flujo complejo para mostrar cómo usar distintas funciones del DSL.

Una vez finalizados, profundizamos un poco más en la implementación y nos centramos en la interacción con otros sistemas en la ruta de conectores:

Después vemos algunas consideraciones de tiempo de ejecución en:

Y por último, vemos cómo bootstrapear tu propia aplicación mediante:

El tutorial está dirigido principalmente a ingenieros; sin embargo, hay muchas secciones (especialmente en la ruta del DSL) en las que gran parte del trabajo puede realizarse sin tareas de ingeniería, y esas secciones de ingeniería podrían omitirse si fuera necesario. A lo largo de los tutoriales se indica claramente dónde se requiere conocimiento de ingeniería.