Ir para o conteúdo principal

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

Tela novo servidor (e-estado)

Tela novo servidor (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
-- Classificação concurso classificacacao_concurso classificacacao_concurso Este campo precisa ser tratado pois o e-estado salva este dado como texto enquanto o governa salva como número
-- 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


3. Conclusão