pdi-ruteo

所属分类:中间件编程
开发工具:Java
文件大小:1275KB
下载次数:0
上传日期:2021-01-19 15:48:14
上 传 者sh-1993
说明:  AGESIC的互操作平台是一个解决方案,它能够集成中间件中心...
(La plataforma de interoperabilidad de AGESIC es una solución que brinda capacidades de integración y middleware entre proveedores y consumidores de servicios. Entre otras, provee la funcionalidad de ruteo de invocaciones a servicios, esto permite ocultar los endpoints a los consumidores y aplicar maniobras sobre los mismos de forma transparente ...)

文件列表:
_recursos (0, 2021-01-19)
_recursos\pmd (0, 2021-01-19)
_recursos\pmd\agesic.xml (10711, 2021-01-19)
assembler (0, 2021-01-19)
assembler\build-all.sh (615, 2021-01-19)
assembler\do-full-deploy.sh (400, 2021-01-19)
assembler\do-full-disable.sh (331, 2021-01-19)
assembler\do-full-enable.sh (378, 2021-01-19)
assembler\do-remote-deploy.sh (650, 2021-01-19)
backoffice (0, 2021-01-19)
backoffice\pom.xml (3848, 2021-01-19)
backoffice\recursos (0, 2021-01-19)
backoffice\recursos\pdi-backoffice.service (263, 2021-01-19)
backoffice\recursos\pdi-backoffice.sh (185, 2021-01-19)
backoffice\src (0, 2021-01-19)
backoffice\src\main (0, 2021-01-19)
backoffice\src\main\java (0, 2021-01-19)
backoffice\src\main\java\uy (0, 2021-01-19)
backoffice\src\main\java\uy\gub (0, 2021-01-19)
backoffice\src\main\java\uy\gub\agesic (0, 2021-01-19)
backoffice\src\main\java\uy\gub\agesic\pdi (0, 2021-01-19)
backoffice\src\main\java\uy\gub\agesic\pdi\backoffice (0, 2021-01-19)
backoffice\src\main\java\uy\gub\agesic\pdi\backoffice\BackofficeApplication.java (871, 2021-01-19)
backoffice\src\main\java\uy\gub\agesic\pdi\backoffice\config (0, 2021-01-19)
backoffice\src\main\java\uy\gub\agesic\pdi\backoffice\config\BackofficeProperties.java (1828, 2021-01-19)
backoffice\src\main\java\uy\gub\agesic\pdi\backoffice\config\WicketBackofficeApplication.java (2744, 2021-01-19)
backoffice\src\main\java\uy\gub\agesic\pdi\backoffice\controller (0, 2021-01-19)
backoffice\src\main\java\uy\gub\agesic\pdi\backoffice\controller\UsuarioDataController.java (1191, 2021-01-19)
backoffice\src\main\java\uy\gub\agesic\pdi\backoffice\dtos (0, 2021-01-19)
backoffice\src\main\java\uy\gub\agesic\pdi\backoffice\dtos\FiltroRutaDTO.java (2435, 2021-01-19)
backoffice\src\main\java\uy\gub\agesic\pdi\backoffice\dtos\FiltroUsuarioDTO.java (1650, 2021-01-19)
backoffice\src\main\java\uy\gub\agesic\pdi\backoffice\dtos\RutaDTO.java (3134, 2021-01-19)
backoffice\src\main\java\uy\gub\agesic\pdi\backoffice\dtos\UsuarioDTO.java (2875, 2021-01-19)
backoffice\src\main\java\uy\gub\agesic\pdi\backoffice\integration (0, 2021-01-19)
backoffice\src\main\java\uy\gub\agesic\pdi\backoffice\integration\RouteDataService.java (2169, 2021-01-19)
backoffice\src\main\java\uy\gub\agesic\pdi\backoffice\integration\UsuarioDataService.java (517, 2021-01-19)
backoffice\src\main\java\uy\gub\agesic\pdi\backoffice\repository (0, 2021-01-19)
backoffice\src\main\java\uy\gub\agesic\pdi\backoffice\repository\UsuarioRepository.java (635, 2021-01-19)
... ...

# Ruteo de la Plataforma de Interoperabilidad ## Introduccion La plataforma de interoperabilidad de AGESIC es una solucion que brinda capacidades de integracion y middleware entre proveedores y consumidores de servicios. Entre otras, provee la funcionalidad de ruteo de invocaciones a servicios, esto permite ocultar los endpoints a los consumidores y aplicar maniobras sobre los mismos de forma transparente para los consumidores. Todas las invocaciones a servicios a traves de la plataforma seran redireccionadas por medio del servicio de ruteo. ## Descripcion de la solucion Esta solucion plantea el uso de una arquitectura orientada a microservicios. De esta forma, los principales servicios de la misma estaran descompuestos en este tipo de servicios, donde cada uno de estos tendra una responsabilidad acotada a nivel de negocio. La arquitectura orientada a microservicios es un metodo de desarrollo de aplicaciones de software como un conjunto de servicios pequenos, independientes, desplegables, y modulares en el que cada uno se ejecuta en un proceso unico y se comunica a traves de un mecanismo bien definido, ligero para servir en general a un unico objetivo de negocio. Estos servicios estan construidos sobre las capas de negocio y con independencia de despliegue. La forma en la cual los microservicios se comunican entre si depende de los requisitos de cada aplicacion, sin embargo se suele utilizar HTTP/REST con JSON. En la mayoria de los casos, REST (Representational State Transfer) el cual es un metodo de integracion util debido a su baja complejidad. Hay un minimo de gestion centralizada de estos servicios, que pueden estar escritos en lenguajes de programacion diferentes y que pueden utilizar diferentes tecnologias de almacenamiento de datos. La arquitectura orientada a microservicios pone cada elemento de funcionalidad en un servicio separado y los escala mediante la distribucion de estos servicios a traves de servidores o procesos nuevos, segun sea necesario replicar. La solucion contara con una serie de servicios basicos, los cuales proveen las funcionalidades iniciales del middleware, requeridas para que los demas microservicios puedan operar en la plataforma. En el diagrama podemos apreciar: ![Microservicios utilizados en el Ruteo](https://github.com/AGESIC-UY/ruteo-pdi/blob/main/image.png?raw=true) - **Configuracion**: Este servicio brinda el soporte de configuracion necesario para que los microservicios de la plataforma puedan obtenerla desde un lugar centralizado. El servicio almacena la configuracion en un servidor centralizado (en este caso GIT), permitiendole a los diferentes microservicios registrados la posibilidad de obtener y refrescar sus parametros de configuracion dinamicamente. - **Registro**: El registro provee un servicio para que los microservicios puedan comunicarse entre si. Disponibiliza funcionalidades que le permiten a los demas servicios registrar un endpoint que pueda ser invocado por otros servicios y a su vez, otras funcionalidades para consultar el estado de los servicios asi como refrescar los mismos. - **Ruteador**: Implementa la funcionalidad de negocio de ruteo de la PDI. Este servicio expone una interfaz REST y SOAP para resolver el ruteo hacia los servicios registrados en la configuracion de ruteo de la plataforma. - **Timestamp**: Este servicio provee una interfaz SOAP para obtener una marca de tiempo de la plataforma. - **Backoffice**: Es una aplicacion que permite administrar la configuracion de los servicios de configuracion de la plataforma. Brinda una interfaz web que puede ser usada por usuarios autorizados por la plataforma para ajustar dicha configuracion. - **Dashboard**: Este servicio provee las funcionalidades de agregacion de datos, relacionados con los diferentes _circuit breakers_ definidos en la plataforma. - **Edge** _(No utilizado en PDI)_: Para aplicaciones externas al middleware o servicios que deseen consumir un servicio de la plataforma, el servicio de borde (Edge) permite rutear invocaciones externas en invocaciones internas. Es importante aclarar que dentro de este proyecto se encuentran unicamente los microservicios _Ruteador_, _Timestamp_ y _Backoffice_, ya que los restantes (junto con otros artefactos) se encuentra en proyectos aparte, dado que son funcionalidades core para otros proyectos. Los proyectos que necesarios para ejecutar el Ruteo los puede encontrar ![aqui](https://github.com/AGESIC-UY/pdi-core). Para finalizar, a nivel logico la estructura de los microservicio es la de una aplicacion web estandar en capas. En el siguiente diagrama se aprecia dicha estructura. ![Arquitectura de microservicio](https://github.com/AGESIC-UY/ruteo-pdi/blob/main/image2.png?raw=true) - **API**: Expone las funcionalidades del microservicio para ser consumidas desde el exterior. Protocolos REST/SOAP. - **Negocio**: Contiene la implementacion de la funcionalidad del microservicio. - **Persistencia**: En caso de que el microservicio necesite operar con datos persistentes, esta capa implementa las funcionalidades de acceso al medio persistente, no necesariamente relacional. Para el caso de esta solucion, el ruteador utiliza como medio de persistencia el mismo repositorio Git. - **Integracion**: Si el microservicio necesita acceder a otros microservicios o consumir recursos que externos, esta capa se encarga de resolver el acceso a los mismos. - **DTO / Utilidades**: Las clases utilitarias usadas por este microservicio, los objetos de transferencia y cualquier biblioteca necesaria para que el mismo pueda operar, se encuentra en esta capa. ## Ejecucion _En construccion_ ![alt text](https://media.giphy.com/media/JIX9t2j0ZTN9S/giphy.gif) ## Contacto Por cualquier duda o consulta, puede comunicarse a arquitectura@agesic.gub.uy --- ## Introduction AGESIC's interoperability platform is a solution that provides integration and middleware capabilities between service providers and consumers. It provides the functionality of routing of invocations to services, among others, allowing to hide endpoints from consumers and operate transparently with them. All invocations to services through the platform will be redirected through the routing service. ## Solution description ## Execution ## Contact If you require any further information, please contact arquitectura@agesic.gub.uy

近期下载者

相关文件


收藏者