Una Introducción a la IPF
IPF, el Payments Framework from Icon, es un conjunto de herramientas o marco que permite a las organizaciones construir soluciones de procesamiento de pagos más rápidamente que una construcción interna y con mucha mayor flexibilidad que los motores de pago estándar. Este artículo ofrece una visión general de IPF sin asumir que el lector tiene algún conocimiento de Java desarrollo. También hay un serie de videos disponible el introduce IPF. Si puede reproducir los videos, le recomendamos que comience allí.
Orquestación de Pagos y Flujos DSL
El Payments DSL(Domain Specific Language) es cómo payment flows/lasorquestaciones se definen en el Icon Payment Framework(IPF) utilizando una herramienta llamada MPS que, cuando se combina con nuestro idioma y custom Los elementos de la interfaz gráfica están marcados como la parte de Flow Designer de IPF Studio. Los flujos de pago se definen como máquinas de estados y varios pueden combinarse para procesar un pago hasta su finalización.
| MPS es en realidad JetBrains MPS, una herramienta que permite a los clientes utilizar nuestros DSLs con facilidad. |
Como parte del proceso de construcción del IPF, se genera documentación relacionada con el(los) flujo(s) definido(s).
¿Dónde se encuentra la información?
IPF utiliza Event Patrones de Sourcing y Segregación de Responsabilidad de Consultas (CQRS). Esto significa que almacena una serie de eventos, o hechos, que han ocurrido durante el ciclo de vida de la transacción. Events podría ser 'PaymentValidated', 'PaymentBooked', 'PaymentSettled' etc.
CQRS &Event La obtención significa que hay un registro de solo adición para cada transacción. Este registro documenta todos los hechos y SOLO documenta los hechos. No hay actualizaciones de hechos ni eliminación de hechos.- solo hechos nuevos. Esta colección de hechos se denomina el almacén de eventos y es el 'lado de escritura' o 'fuente de eventos' de IPF. El lado de escritura se separa como una solución a muchos de los NFR de IPF.
Los eventos/hechos se transmiten a la ODS base de datos que se utiliza para todas las consultas y se denomina 'lado de lectura', que es eventualmente consistente con el lado de escritura (después de, digamos, unos 100 ms). La vista del lado de lectura puede generarse en varias formas basadas en los eventos, por lo que puede ver una vista de transacción normal que muestra cómo se ve un pago en el estado actual de procesamiento, pero también puede ver un registro de auditoría completo de lo que sucedió. Los clientes pueden tener tantos lados de lectura como deseen, cada uno construyendo su propia vista a partir del flujo de eventos.
Para obtener más información sobre event sourcing, por favor lea Akka Persistence.
El message log se utiliza para almacenar todos los mensajes enviados y recibidos por IPF a CSMs, sistemas bancarios, etc. Estos se denominan Mensajes Externos.
Modelo de Datos de Flujo
Fundamentalmente, IPF tiene tres conceptos diferentes en su modelo de datos de flujo.
Estructura de Datos del Mensaje (MDS)
Estructura de Datos del Mensaje los objetos son aquellos que se originan de ISO20022 objetos-por ejemplo un pain.001 La instrucción contiene un encabezado de grupo, una o más instrucciones, y dentro de cada instrucción, una o más transacciones de transferencia de crédito. Cada una se considera distinta. MDS objeto, que pertenece al pago original o unit of work. Se utilizan típicamente en flujos para modelar el mensaje de pago que inició un flujo y cualquier mensaje de pago generado y recibido por un flujo. Los MDS siempre están en JSON formato.
Processing Data Estructura (PDS)
Processing Data Structures(PDS) los objetos son aquellos que han sido definidos por un usuario de IPF. Pueden contener elementos y tipos ISO2022, así como cualquier estructura arbitraria que un cliente desee tener. Los PDS siempre están en JSON formato.
Mensajes Externos
Estos son los mensajes reales enviados y recibidos por el flujo. Están en el formato que necesiten estar, por ejemplo. XML, archivo plano propietario,JSON, BSON etc.
Entidades de Procesamiento
Todos los datos procesados por un IPF flow debe pertenecer a un entidad de procesamiento, como se muestra en el diagrama a continuación.
Intercambio de Datos con Sistemas Externos
IPF tiene un mapping framework que, desde una perspectiva no desarrolladora, podemos pensar en ellos como adaptadores que convierten una acción en el DSL en algo tangible en código. Por ejemplo dominio externo las acciones realizan una solicitud a algo externo a una implementación de IPF y el adaptador convierte esto en una solicitud al sistema externo API/la interfaz entiende y lo envía a través de un transporte que puede manejar.
Utilizando un ejemplo del mundo real, la acción 'pantalla de pago' en el DSL utiliza un adaptador para llamar a un particular API sobre ese sistema de Sanciones a través de HTTP, o quizás 'consulte el saldo' en el sistema contable a través de MQ.
Si escucha a personas hablando sobre mappers, puentes o conectores, estos son diferentes componentes técnicos que forman lo que un no desarrollador puede considerar como un adaptador. Además de permitir que se envíen acciones desde el flujo, los adaptadores pueden realizar las mismas tareas para recibir entradas (por ejemplo, el resultado de una verificación de sanciones) o un mensaje que inicia un flujo, por ejemplo, una iniciación de pago desde un canal. Los adaptadores pueden estar relacionados con sistemas bancarios o servicios comerciales de IPF (por ejemplo, Alcance en el diagrama anterior).
Módulos Opcionales Adicionales (AOMs)
IPF está licenciado de dos maneras diferentes. La licencia básica incluye elementos que cada cliente necesitaría para construir una solución de procesamiento de pagos sensata. Los Módulos Opcionales Adicionales (AOMs) son elementos que solo algunos clientes necesitarán, y cada módulo se licencia por separado.
Los módulos adicionales opcionales actuales son:
Scheme Pack s
IPF tiene un concepto de Scheme packs(técnicamente conocido como CSM Services, consulte el diagrama anterior) que oculta las complejidades de diferentes CSMs de los flujos DSL. Por ejemplo, si CSM’A' envía una respuesta positiva a un recall utilizando un Pacs004, mientras que CSM’B' envía una respuesta positiva a un recall utilizando un Camt029 y un Pacs008, los cuales están estandarizados de tal manera que el flujo DSL para el procesamiento de respuestas positivas no necesita conocer cómo diferentes CSMs implementan respuestas positivas. IPF tiene varios CSM paquetes disponibles como módulos opcionales adicionales y el cliente también puede crear los suyos para cualquier relación ACH o bilateral deseada con la que desee intercambiar mensajes de pago.
Configuraciones y Ajustes
IPF ofrece dos enfoques para la configuración:
Configuración Estática
-
Estas son configuraciones que no es probable que se actualicen con frecuencia y/o en tiempo real.
-
Las configuraciones estáticas son parte de la base de código controlada por versiones y cualquier cambio requiere que el servicio sea reimplementado para que tenga efecto.
-
Ejemplos incluyen Kafka parámetros de conectividad, URLs de base de datos, etc.
-
También es útil para configuraciones que requieren un alto nivel de control y pruebas.
Configuración Dinámica
-
Configuraciones que es probable que se actualicen con frecuencia y/o donde los cambios deben tener efecto en tiempo real sin necesidad de volver a implementar el servicio.
-
Las configuraciones dinámicas utilizan un patrón de diseño propietario de IPF llamado " Dynamic Processing Settings " (DPS).
-
Los ejemplos incluyen límites de compensación bilateral, extensiones a CSM horario de atención,CSM configuración de selección etc.
Para más información, consulte aquí.
Human Task Manager
Human Task Manager(a menudo denominado como HTM) proporciona a los flujos la capacidad de crear tareas para operadores humanos, así como la opción de devolver los resultados de las tareas al flujo. Ejemplos del tipo de cosas Human Task Manager puede ser utilizado para incluir:
-
Gestionar Devoluciones No Coincidentes
-
Manejar la falta de respuesta del esquema
-
Informar al Cliente
-
Manejar el fallo de la reserva
-
Enriquecer manualmente BIC
La funcionalidad para encontrar y gestionar tareas es parte de IPF, mientras que cada tarea en sí misma es definida por los clientes de IPF, incluyendo un custom pantalla para la tarea.
Funciones Empresariales
Una función empresarial es una pieza discreta de lógica empresarial central que puede ser utilizada por flujos. Ejemplos de funciones empresariales incluyen Validar BIC, Verificación de duplicados y Desconstruir IBAN.
Bulker y Debulker
IPF viene con dos características para manejar archivos de transacciones masivas.Granelero, que agrupa transacciones en archivos por lotes según la configuración y Desmenuzador que interrupciones recibidas bulked archivos en componentes individuales según la configuración.
Bulker
Puede pensar el bulker como proporcionar varios bulking buckets. Los flujos crean transacciones y las colocan en el bucket correcto. Luego, a un volumen configurado, esperan ser bulked o cuando se alcanza un momento en el tiempo configurado, las transacciones son bulked y un archivo masivo producido para el envío.
Debulker
Basado en la configuración, el archivo SCF entrante (efectivamente un sobre para agrupar PACS 8) se descompone en un objeto de datos para cada PACS 8 recibido (basado en el encabezado del grupo) y un objeto de datos para cada transacción contenida dentro de los PACS 8. Los flujos pueden ser opcionalmente triggered para cada objeto de datos producido por el debulker, incluyendo uno que represente el sobre SCF.
Monitoreo de Actividades Empresariales
IPF viene con una capacidad que permite la creación de varios métricas empresariales y tableros técnicos que muestran cómo están funcionando las soluciones construidas con IPF.
Operational Dashboard
IPF viene con un Operational Dashboard que recomendamos utilizar para interactuar con ODS y su implementación de IPF; puede utilizar cualquier interfaz que desee. La Operational Dashboard está fuertemente customisable, se pueden eliminar componentes de interfaz gráfica listos para usar, se pueden agregar componentes específicos del cliente y también mappings Las pantallas estándar pueden ser especificadas por los clientes para ajustarse a su modelo de datos de flujo. Además de esto, la apariencia y la sensación están bajo el control de los clientes.
El Operational Dashboard utiliza el mecanismo de autenticación y autorización de los clientes, no gestiona usuarios por sí mismo.
Servicio de Alcance
El servicio de alcanzabilidad es un servicio dedicado a la gestión de información relacionada con la alcanzabilidad y a la toma de decisiones de enrutamiento basadas en esos datos. Carga datos de industria fuentes como ACH's (Ya sea como parte de un paquete de esquema IPF opcional o mediante un cargador creado por los clientes) y SWIFT así como datos provenientes del banco.
Los datos abarcan áreas que incluyen CSM participación, detalles de la fiesta, límites, etc. Ejemplos del tipo de funcionalidad proporcionada por el servicio de alcanzabilidad son Seleccione CSM Agente y Valide la Alcanzabilidad Intraentidad.
System Events
System eventsse puede considerar como un registro de aplicación tradicional. Al igual que los registros tradicionales, tienen un nivel (INFO, DEBUG, ERROR o WARN) y un tipo (Funcional o Técnico). Hay un catálogo de eventos incluidos con IPF, pero los clientes también pueden crear sus propios eventos de sistema personalizados. Las soluciones construidas con IPF publican eventos de sistema basados en la configuración y cualquier sistema interesado puede escuchar los eventos.