Em uma série de artigos, nós, a equipe de Desenvolvimento de Gemas, falaremos sobre como trabalhar com "Gosuslugi" do outro lado da tela e como organizar uma interação efetiva dos órgãos governamentais com o portal.
Esquema geral de interação através do SMEV
Participantes da interação
Imagine que a "Gosuslugi" é uma loja que exibe serviços para cidadãos e organizações. A solicitação do “comprador” por um serviço é transmitida às autoridades competentes por meio do sistema de interação eletrônica interdepartamental (SMEV). O sistema transfere mensagens entre o portal e o departamento.
O trabalho através do SMEV é realizado utilizando o protocolo SOAP ( Simple Object Access Protocol - um protocolo simples de acesso a objetos).

Os participantes da interação, como em uma loja, são divididos em fornecedores e consumidores. O fornecedor é um sistema de informação (SI) que fornece informações mediante solicitação, e o consumidor é um sistema que solicita informações.
Um e o mesmo SI pode atuar em duas funções ao mesmo tempo. Por exemplo, no processo de fornecimento de um serviço, você precisa notificar o portal sobre uma mudança em seu status. Nesse caso, o fornecedor de SI desempenha o papel de consumidor - realiza a troca de informações por status.
Tipos de informação
Os participantes trocam dados por meio de tipos de informações ( protocolos de troca ) - regras para a formação de pacotes de dados para transmissão de um participante para outro.
Um bom exemplo do tipo de informação é o Censo Populacional Russo de 2020 . Os dados do censo são transmitidos às autoridades executivas federais em formato eletrônico. Nos dados recebidos, há uma estrutura clara de informações: nome, sexo, data de nascimento, nacionalidade, estado civil. Além disso, no âmbito do tipo de informação, descreve-se a resposta que deverá ser recebida se o processamento do pedido for bem sucedido.
Em junho de 2020, mais de 1000 industriais (trabalhadores) e 2000 espécies de teste foram registradas no SMEV.
A troca de dados em um ambiente industrial para todos os tipos de informação é realizada por meio de canais de comunicação seguros. Todos os dados transmitidos são acompanhados por uma assinatura digital eletrónica, com a qual o SMEV identifica os participantes na interação.
Os dados são transmitidos por SOAP, com cada mensagem sendo uma estrutura aninhada:

Os tipos de informação são divididos em dois grupos - simples e universais . Considere um esquema de troca de dados para um tipo simples de informação:

O diagrama mostra que os dados do formulário são exibidos diretamente nos envelopes de troca de dados. Com isso, surge uma limitação: é necessário desenvolver a estrutura de um bloco de dados, solicitação / resposta para cada tipo de informação.
A troca por um tipo universal de informação pode ser representada da seguinte forma:

À primeira vista, o esquema pode parecer mais complicado, mas demonstra uma diferença fundamental, o que acaba por simplificar a interação entre os participantes no tipo universal de informação (UDS). Os dados específicos do formulário são transmitidos em anexo ao envelope SMEV, e os sinais UMC, que permitem identificar o tipo de informação, são transmitidos diretamente no envelope e têm a mesma estrutura para qualquer aeronave:
- Número da aplicação do portal e informação que permita identificar o serviço;
- unidade de destino à qual o usuário se inscreve para o serviço.
Os dados do formulário preenchidos pelo usuário do portal são empacotados em um anexo à mensagem principal.
Assim, é possível formalizar a prestação de quase qualquer serviço sem ter que passar pelo difícil registro de um novo tipo de informação.
Filas de mensagens e processo de comunicação
Durante a comunicação, as mensagens são colocadas nas filas de solicitação de entrada e nas filas de resposta de entrada . Em essência, as filas são contêineres que contêm mensagens por tipo de informação.
A interação com as filas ocorre por meio de solicitações especiais. Eles são descritos com mais detalhes nas diretrizes para trabalhar com o SMEV. Apenas notamos que graças às filas, a troca assíncrona de dados se torna possível: o consumidor pode deixar um pedido de informação e o fornecedor pode postar uma resposta.
Lembre-se: para pegar uma mensagem da fila, você deve confirmar o recebimento com uma solicitação de Ack. Caso contrário, o SMEV considerará a mensagem como não entregue e a retornará à fila 15 minutos após a recuperação.

Cada solicitação pode receber uma resposta bem ou malsucedida.
Imaginemo-nos no papel de prestadores de informação: a pedido, entregamos ao utilizador um plano de urbanização de um terreno e dentro do nosso departamento existem várias divisões territoriais, algumas das quais nem prestam esse serviço. Suponha que um usuário do portal, ao formar um aplicativo para um serviço, indique uma subdivisão que não fornece o serviço. Essa situação pode surgir por dois motivos:
- Houve uma discrepância entre os dados de referência do portal e do fornecedor;
- A correspondência necessária simplesmente não está disponível nas configurações do sistema do fornecedor.
Em ambos os casos, o provedor deve responder à solicitação para que a parte receptora possa entender que a solicitação falhou e, possivelmente, agir. A resposta a tal solicitação é feita em um pacote especial de dados com informações sobre o motivo da recusa.
Uma resposta bem-sucedida pressupõe um cenário em que o resultado do serviço é um conjunto de arquivos (o que é bastante comum). Antes de enviar o resultado, é necessário fazer o upload dos arquivos para o armazenamento de arquivos SMEV baseado no servidor FTP. Os nomes dos arquivos e suas somas de verificação devem ser capturados no pacote enviado por SOAP. Portanto, há duas operações de transferência de dados que precisam ser vinculadas por um contexto comum - informações do arquivo.
Na prática, há casos em que, durante a interação, o SMEV fica em modo de serviço e as solicitações do participante acabam falhando e precisam ser reenviadas. A falha deve ser registrada e a solicitação deve ser reenviada.
Formulação do problema
Tendo em conta as características anteriores, a nossa equipa teve de garantir a integração do SI do cliente com o "Gosuslugi" através de um tipo de informação universal . Sistema de informação do cliente - IAS "Gradostroystvo" . Com a sua ajuda, os utilizadores dos departamentos responsáveis pela prestação de serviços podem recolher pacotes de documentos e gerar resultados para posterior transmissão ao portal através do SMEV.
Assim, o SMEV, como no ditado sobre a letra da música, não pode ser excluído da solução do problema da integração com o portal dos serviços públicos. Mas é melhor assim: graças ao sistema, todos os participantes têm um ambiente de interação universal. Isso permite que você confie em um determinado padrão e não reinvente a roda.
Nos próximos artigos, veremos como, do lado do provedor de informações, organizar o processamento de declarações de acordo com os dados do usuário usando o mecanismo de automação de processos de negócios Workflow Core.