Integração cadastro de servidor Governa x e-Estado: aba Concurso
Estudo Técnico sobre a integração do e-Estado com o Sistema Governa Recurso Humanos - Cadastro de Servidor, aba Concurso
Data de elaboração | 26/06/2023 |
Responsável pelo estudo |
Ádrian Rabelo Mendes (Assessor) Diego Gonçalves de Almeida (Assessor) Jônatas Legal (Técnico em Tecnologia da Informação e Comunicação) (Assessor) Rodrigo Stefano Sales Nascimento (Assessor) |
Equipe de estudo |
CAOS |
Alvo | Sistema Governa |
Origem | Realizar levantamento para integração assíncrona do cadastro de servidor nos sistemas e-Estado e Governa - Recursos Humanos |
Objetivo | para que seja possível realizar a inserção de informações recebidas pelo e-Estado e integre com o Governa, reduzindo retrabalho e informações desiguais nos sistemas. |
Glossário
- AMQP - Advanced Message Queueing Protocol
- RabbitMQ - servidor de mensageria de código aberto
- Acknowledgement - confirmação de entrega de mensagem
- QoS - Quality of Service
1. Introdução
O presente estudo técnico tem como propósito analisar e apresentar propostas para a integração da tela "Novo Servidor" do e-Estado com a tela "Servidor -> Cadastro de Servidor -> Novo -> aba Concurso" do sistema Governa
No momento, ambas as telas operam independente uma da outra, requerendo a inserção repetida de informações, resultando em inconsistência de dados. O objetivo é realizar uma integração eficiente entre os dados dos sistemas, eliminando redundância e aprimorando a qualidade de dados de ambos os sistemas, sobretudo o Governa.
O estudo aborta a utilização do protocolo AMQP em conjunto com RabbitMQ, um sistema de mensageria de código aberto responsável pela implementação do protocolo, permitindo troca eficiente de mensagens entre diferentes sistemas e componentes.
2. Desenvolvimento
2.1 AMQP
Advanced Message Queueing Protocol (AMQP) é um protocolo de mensagens assíncronas utilizado para comunicação entre sistemas distribuídos desenvolvido para facilitar a troca de mensagens entre aplicativos de forma eficiente e confiável.
O protocolo foi projetado para ser independente de plataforma, permitindo comunicação entre diferentes sistemas e linguagens de programação. Ele define um conjunto de regras e formatos para enviar, rotear e receber mensagens e garante sua entrega ordenada e confiável.
Uma das principais características do AMQP é a utilização de filas de mensagens. Elas são publicadas em filas e podem ser consumidas por um ou mais consumidores, de acordo com um modelo de publicação e assinatura. Isso permite que os aplicativos enviem e recebam mensagens de forma assíncrona, desacoplando o produtor da mensagem do consumidor.
Além das filas, o AMQP define trocas (exchanges) e vinculações (bindings) para rotear as mensagens para filas corretas. As trocas recebem mensagens dos produtores e encaminham-nas para as filas com base em regras de roteamento específicas. As vinculações definem a relação entre as trocas e as filas.
Suportando diferentes modelos de entrega de mensagens como confirmação (acknowledgment) que garante a entrega bem sucedida das mensagens e a qualidade de serviço (QoS) que define níveis de prioridade para as mensagens.
2.2 RabbitMQ
RabbitMQ é um software de mensagem assíncrona que implementa o protocolo AMQP. Ele é amplamente utilizado como um intermediário de mensagens entre diferentes sistemas e serviços distribuídos, fornecendo uma plataforma robusta para troca de mensagens e permitindo que aplicativos e serviços se comuniquem de maneira eficiente e confiável. Ele utiliza filas de mensagens para armazenar e entregar as mensagens entre os produtores e consumidores.
A principal vantagem do RabbitMQ é a flexibilidade e escalabilidade. Ele suporta uma variedade de padrões de troca de mensagens, como publicação e assinatura, roteamento direto e tópicos. Permite que os dados sejam encaminhados de maneira adequada às necessidades específicas de cada aplicativo.
2.3 Integração - Aba Concurso
Os seguintes campos podem refletir-se em ambos os sistemas:
Tabela Governa | Campo | Governa | e-Estado | Obs |
rh.servidor | Processo administrativo | proc_adm | processo | |
-- |
Data do Concurso Data do Edital |
data_concurso data_edital_concurso |
data_abertura | |
-- | Contrato | contrato | contrato | |
-- | Data de Validade | data_validade | data_validade | |
-- | Edital de Homologacao do Concurso Publico | homologacao_conc_pub | edital_homologacao | Neste campo, será necessário construir um REGEX para capturar apenas o número e o ano do edital |
-- | Edital de Convocacao Pericia Medica e Posso | convocacao_pericia_posse | edital_convocacao_pericia_posse | Neste campo, será necessário construir um REGEX para capturar apenas o número e o ano do edital |
-- | Edital Concurso | edital_concurso | edital_abertura | Neste campo, será necessário construir um REGEX para capturar apenas o número e o ano do edital |