PI (Portable Interface)

Portable Interfaces

PI (Portable Interface), es un framework para el desarrollo y despliegue de aplicaciones java altamente modular y configurable diseñada para ser escalable y responder a las necesidades cambiantes y exigentes de las empresas que necesitan transferir, trasformar y procesar información importante del negocio de manera oportuna y confiable.

Portable a varias plataformas permitiendo así un crecimiento balanceado de acuerdo a las necesidades de la empresa.

Su finalidad es proveer una infraestructura a base de plugins para el desarrollo e integración de soluciones enfocadas al manejo, transporte y transformación de información hacia y desde los diferentes sistemas que pueda tener la empresa.

Arquitectura

  • Core: Componente principal, encargado de gestionar el ciclo de vida de cada componente del framework.
  • Shells: Componentes que permiten comunicarse con el framework y ejecutar comandos. Actualmente se tienen Shells para ejecución vía consola, TCP.
  • Comandos: Son los componentes encargados de realizar la lógica de negocio.

Teniendo en cuenta estos tipos de componentes es posible implementar diferentes tipos de arquitecturas, funcionalidades y modos de ejecución, como por ejemplo:

  • Cliente servidor
  • Distribuida
  • Monolítica

Interacción

Actualmente el framework cuenta con 2 shell’s estándar:

  • SocketShell: Trabaja basado en peticiones por socket, se debe enviar la instrucción a ejecutar a un socket definido por el cliente.
  • ConsoleShells: Trabaja en base a peticiones en línea de comandos; se ejecuta la tarea a través de una instrucción ingresada manualmente o a través de un menú.

Comandos

  • FLOWCOMMAND: Comando para llevar a cabo la ejecución de flujos de tipo entrada procesamiento y salida de datos adecuados a las estructuras requeridas por el proceso de negocio. Estos flujos se llevan a cabo a través de la definición de una fuente de datos, las transformaciones que se requieran y la salida de los mismos en una base de datos, archivo plano, keyed o cualquier fuente de almacenamiento.
  • Reader: Plugin que se encarga de leer una fuente de datos.
  • Proceso: Se encarga de dar formato a los datos obtenidos por el reader.
  • Writer: Se encarga de almacenar los datos según el formato establecido por el Process.
  • FTPCOMMAND: Comando para llevar a cabo la transferencia de archivos a través del protocolo FTP.
  • TCPCOMMAND: Comando para la ejecución de flujos o procesos configurados en un portable interface remoto a través del protocolo TCP/IP.
  • SPCOMMAND: Comando para ejecutar stored procedures creados en una base de datos específica que puede estar local o en un equipo remoto.
  • EXECUTEPROCESS: Comando para la ejecución de procesos de negocio configurados en forma secuencial en un archivo de configuración llamado process file.
  • COMPRESSFILE: Comando para comprimir o descomprimir archivos en el sistema de archivos local.