Ir para o conteúdo principal

Integração Entre os Sistemas e-Estado e Governa Para Cadastro de Servidor: Aba Graduação

Estudo Técnico para integração entre e-Estado e Governa Recurso Humanos - Cadastro de Servidor, aba Graduação

Data de elaboração 27/30/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 Possibilitar a inserção automática de informações recebidas pelo sistema e-Estado no banco de dados do sistema Governa, reduzindo retrabalho e mantendo a integridade dos dados entre os sistemas.
Documentação RelacionadaEstudo Técnico sobre a Integração do e-Estado com o Sistema Governa. Aba Informação

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 objetivo analisar e apresentar propostas para a integração do cadastro de servidores a fim de replicar os dados oriundos do e-Estado no banco de dados do sistema Governa. Atualmente, esse processo é realizado manualmente pelos usuários destes sistemas realizando o cadastro de servidores em ambos sistemas, no entanto após análise prévia das informações presentes nestes, percebeu-se que o Governa não contempla diversas informações dos servidores que estão presentes no e-Estado. Desta maneira, a proposta de integração entre estes sistemas visa sanar tanto o retrabalho que o usuário possui atualmente para realizar o mesmo cadastro em sistemas distintos como manter a integridade dos dados nos dois sistemas. 

2. Desenvolvimento

Analisando o cenário, percebeu-se que os cadastros de graduação diferem em alguns pontos em ambos os sistemas. Para os fins de integração, o protocolo AMQP em conjunto com RabbitMQ serão as tecnologias utilizadas para implantação deste serviço como visto no segundo capítulo do Estudo Técnico sobre a Integração do e-Estado com o Sistema Governa. Aba Informação.

2.1 Cadastro de Servidor - Graduação

No sistema e-Estado, através do menu "Servidor" temos acesso às funcionalidades relacionadas a essa entidade. UtilizandoNa tela de detalhes acionada ao selecionar um servidor temos o botão "NovoCadastro Servidor"Geral" somosonde redirecionadospode-se cadastrar os dados do servidor. Entre as opções presentes nesta tela temos a aba "Cursos" onde são exibidos os cursos já cadastrados para o servidor e onde novos cursos podem ser cadastrados.

cursos pessoa eestado.png

Acionando o botão "Adicionar curso" o usuário é redirecionado à outra tela onde deve informar os dados referentes ao curso que deseja cadastrar para o servidor.

novo curso servidor eestado.png

Note pela imagem que curso é um tipo de cadastrograu de servidorinstrução, talvariando comode exemplificadoanalfabeto naaté imagemdoutorado, ae seguir:

o

Tela novo servidor (e-estado)nome do mesmo é um campo informado pelo usuário.

Já no Governa, navegando pelo menu conseguimos acessar a tela de cadastro de servidor seguindo: "Servidor -> Cadastro de Servidor -> Novo" conforme a imagem a seguir.

Tela novo servidor (Governa)
nova graduaçao servidor.png

NestaAqui, tela o usuário pode preencher diversas informações do servidor navegando entre as abas, especialmente a  mais a aba Graduaçãonote que será"Curso objeto deste estudo.

Atualmente  estas telas operam independente uma da outra sendo necessário o cadastro de servidor por ambas, e consequentemente podendo resultar em inconsistência de dados por muitas vezes. Logo, a integração almejada é indispensável para realizar uma troca eficiente destes dados entre os sistemas de forma automatizada, reduzindo redundância, retrabalhos e aprimorando a qualidade de dados destes sistemas.

O estudo aborda 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)Superior" é um protocolocampo selecionável de mensagensuma assíncronaslista utilizadopré-definida parapresente comunicaçno Governa e são necessárias apenas o curso e o ano de conclusão. Vale salientar que, nos cadastros de curso (e-Estado) e graduação (Governa), o cenário ideal seria dos campos "Nome" (e-Estado) e "Curso Superior" (Governa) serem do mesmo tipo (selecionável ou apenas texto), no entanto, não sendo o caso, deverá ser aplicada uma comparação entre sistemaso distribuídosnome desenvolvidodo paracurso facilitarinformado ano trocae-Estado decom mensagensos entrecursos aplicativossuperiores delistados formano eficienteGoverna e confiável.

selecionar

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.


adequado.

2.2 RabbitMQIntegração da Graduação

RabbitMQ é um software de mensagem assíncronaVisto que implementa o protocoloGoverna AMQP.possui Eleapenas édois amplamente utilizado como um intermediário de mensagens entre diferentes sistemas e serviços distribuídos, fornecendo uma plataforma robustacampos para trocacadastro deda 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çgraduação edos assinatura,servidores, roteamento direto e tópicos. Permite quelogo os dados sejam encaminhados de maneira adequada às necessidades específicas de cada aplicativo.

2.3 Integração - Aba Concurso

Os seguintes campos podemserão refletir-serefletidos em ambos os sistemas:sistemas, sendo os demais presentes no e-Estado descartados pelo Governa.

Tabela Governa Campo Governa e-Estado Obs
rh.servidoradmin pessoa_curso_superior ProcessoCurso administrativoSuperior proc_admprocesso
--id_curso_superior

Data do Concursonome

Data do Edital

data_concurso

data_edital_concurso

data_abertura
--Contratocontratocontrato
--Data de Validadedata_validadedata_validade
--Edital de Homologacao do Concurso Publicohomologacao_conc_pubedital_homologacao Neste campo, será necessário construir um REGEXmétodo para capturar apenasselecionar o númeroid_curso_superior eda olista anode cursos do editagoverna com base no nome do curso informado no e-Estadol
-- Edital de

Ano ConvocacaoConclusão

Pericia Medica e Posso
convocacao_pericia_posse

ano_conclusão

edital_convocacao_pericia_posseano_conclusao Neste campo, será necessário construir um REGEX para capturar apenas o número e o ano do edital
--Edital Concursoedital_concursoedital_aberturaNeste campo, será necessário construir um REGEX para capturar apenas o número e o ano do edital


Após ação de cadastro de curso para um servidor, os seguintes dados serão enviados do e-Estado para o serviço de mensageria para então serem inseridos no Governa:

 

{   
  "cpf": 018.***.***-21,   
  "curso_nome": "Administração",   
  "curso_ano_conclusão": "2023"
}

Assim,  o CPF informado será utilizado para consulta da pessoa à qual o curso será adicionado, com os demais campos informados, na tabela "admin.pessoa_curso_superior" (que de fato cria o vínculo entre uma graduação e uma pessoa). Vale salientar que esta ação deverá ser acionada apenas quando, no e-Estado, for cadastrado um curso do tipo "Graduação" para a pessoa.

3. Conclusão

 

Neste estudo, analisamos a possibilidade de integração dos dados de graduação de servidor entre os sistemas e-Estado e Governa. A associação correta dos campos compartilhados requerem um identificador único da pessoa em questão tal como o CPF para verificação. Alguns campos não possuem correspondência nos sistemas, sendo apenas o nome do curso e o ano de conclusão necessários para a integração. Assim sendo, segue algumas sugestões de tarefas que podem ser criadas para implantação desta integração:

História

O quê: Eu, dev, preciso criar uma propriedade Graduação na entidade de Servidor

Por quê: para realizar a integração de dados de Graduação, cadastradas no sistema e-Estado, para o Governa

Regras e validações

Deve conter nome do curso e ano de conclusão

Deve selecionar e vincular, no Governa, o curso superior de acordo com o nome informado no e-Estado

Pontuação

5 Pontos