Tecnología y Arquitectura
En virtud de la importancia del proyecto se han realizado reuniones técnicas con integrantes de JUFEJUS Foro Informático, Instituto de Innovación y Tecnología y áreas de gestión de CSJN y Provincia de Buenos Aires, acordando un diseño inicial basado en una arquitectura que garantice la interoperabilidad en las diversas etapas, permitiendo una integración plena de los organismos.
- Diagrama de interacción de servicios para el intercambio de documentos electrónicos.
- Esquema de servicios para mantenimiento del directorio de organismos del BUS-Judicial.
A partir de estas reuniones, y partiendo de los aportes del Lic. Gustavo Pérez Villar, se acordó una arquitectura base para el BUS-JUSTICIA. Dicha arquitectura cumple las premisas del proyecto, permitiendo además un crecimiento futuro en nuevos servicios y etapas, como así también en soporte de un alto volumen de intercambio digital.
La disponibilidad de la plataforma NUBE-JUFEJUS permite contar con un ambiente operacional en crecimiento para soportar los servicios BUS-JUSTICIA. Dicha plataforma se encuentra en proceso de puesta en producción. La arquitectura de BUS-JUSTICIA podrá usar la plataforma NUBE-JUFEJUS, así como la integración de otros servicios en otras plataformas de cloud que sean necesarias.
Se propone un modelo concreto de "Service BUS" de documentos electrónicos que permita el intercambio seguro entre los distintos Poderes Judiciales, entidades públicas y privadas en diferentes etapas.
Características de la arquitectura
Arquitectura basada en microservicios con una cola de mensajes asincrónica.
Completamente orientado a eventos.
Mecanismos de control distribuidos y descentralizados (mínimo 3 nodos de control).
Arquitectura escalable horizontalmente.
Diseño que permite en un futuro evolucionar en un Service BUS para otros organismos de los estados nacionales y provinciales, tanto públicos como privados.
Diseño técnico
Orientado a microservicios
El diseño del BUS-JUSTICIA está completamente orientado a microservicios, lo que permite aplicar metodologías de desarrollo ágiles y utilizar técnicas de integración y despliegue continuo para gestionar los ciclos de desarrollo, testing y producción.
Brinda total independencia en el desarrollo de cada servicio involucrado, permitiendo trabajar en paralelo con equipos independientes: los servicios no comparten recursos entre sí y las interacciones son completamente asincrónicas, basadas en mensajes.
Escalabilidad
Combinada con las funcionalidades de la plataforma Kubernetes, la arquitectura permite una gran escalabilidad, ya que la solución se basa en servicios independientes y altamente específicos.
Esto permite configurar la plataforma para que escale cada servicio en forma independiente, con distintos criterios de escalamiento automático, pudiendo escalar y desescalar por demanda y consumiendo recursos solo para funcionalidades puntuales.