Hello IT community! I’m Anastasia Pyatko, implementation analyst from RTLabs. This is a company that develops well-known public services and tries to make our bureaucratic life easier.
Recently, I had a chance to speak at HighLoad++ 2022 with a similar topic: “SMEV. Much easier than it seems. Useful tips on how to start integration through SMEV3 and SMEV4. The organizers know their stuff. There was an interested audience in the hall, who asked questions with genuine interest. With some, the conversation at the stand continued for several more hours. So the idea was born – to fix everything with the text in this article.
Let’s start with a little background. Digitalization came to our large country definitely before experts appeared who could immediately tell how to do it, came up with standards and protocols. Regions, departments, their contractors wrote their systems in different programming languages, building different architectures, and then did integrations as they could. At some point, there were a lot of systems. The understanding came that it became simply impossible for them to exchange information among themselves without a single unified framework. And 12 years ago, the System of Interdepartmental Electronic Interaction (SIEV) appeared.
What is SMEV
SMEV is the transport that delivers millions of “envelopes” necessary for the provision of public services. Through SMEV information is exchanged with each other:
federal and regional departments
Unified Identification and Authentication System (ESIA)
a number of commercial organizations
SMEV in numbers:
There are two actual SMEVs: SMEV3 and SMEV4. At the same time, the fourth version does not replace the third. These are two fundamentally different systems with one purpose – the organization of exchanges between the systems of participants in the interaction. The difference is that:
SMEV3 is suitable when you need to guarantee the transfer of information
SMEV4 – when the data exchange rate comes first
This article will focus on the third version of SMEV. Whatever one may say, it is still the most in demand. However, the popularity of the fourth is growing before our eyes, and I plan to write about it in the next article.
How SMEV3 works
Actually, all messages in SMEV3 are XML, compiled on the basis of the XSD schemas of the transport itself and the type of information sent through the web service.
Based on the experience of previous, already outdated versions of the system, SMEV3 focuses on delivery guarantees. That is, “deliver at any cost”, despite possible technical problems on the side of any of the participants in the interaction, is the slogan of the third SMEV.
What are queues in SMEV3
An important feature of SMEV3 is queues. In the transport itself, at least 2 queues are created for each registered system: requests and responses.
The systems of all participants must be able to generate messages and sign them with a registered certificate. Messages are of three types:
send – with basic information
get – for polling queues
ack – to confirm receipt
Consider the exchange between the information systems of two departments, one of which initiates the exchange or requests information, the second responds to the request.
1. The initiator sends a request —SendRequest. It enters the responder’s request queue. The request will be stored there until the respondent subtracts it, but the maximum is 14 days.
If the request is not deducted within 14 days, the initiator will receive a “rebuff” from the SMEV that his request has been archived.
2. Responder polls the queue — GetRequest. He must do this constantly. And when a request gets there, a non-empty “envelope” is returned to it.
3. The responder processes the request. Having received the “envelope”, the responder’s system must perform a number of actions: parse, put into the database, etc. Then the system sends an “envelope” to the SMEV with confirmation of receipt of the request – AckRequest. This is another level to ensure guaranteed delivery. If SMEV does not receive such confirmation from the responder, after 15 minutes the request will return to the queue again.
4. The initiator receives a response. After the responder’s system prepares an “envelope” with the answer, exactly the same thing happens:
“envelope” enters the queue of the initiator – SendResponse
the initiator reads it – GetResponse
the initiator sends an acknowledgment of receipt – AckResponse
Only then is the exchange considered complete.
Of course, there are many more nuances here:
there are other types of exchanges, such as mailing
various checks take place on the SMEV side
different types of messages are generated: status and error messages
But in general, all exchanges through SMEV3 are arranged as I described above.
What are the types of information in SMEV
An important role in SMEV3 is played by such entities as “Types of information” (VS).
Transport schemes set conditionally common fields for all exchanges, for example, for correct routing, transfer of attachments, signatures, etc.
VS schemes set the rules by which the semantic part of the “envelope” will be formed. That is, just the information for which the exchange is carried out.
As a result, the aircraft are:
Rules by which requests and responses (XSD) are formed.
References (XML) – examples of “envelopes” for the emulator.
User Guide – a document, automatically or manually compiled by the owner or creator of the Aircraft, designed to assist connecting members.
VS as a whole can be created and registered by any participant in the interaction. There are now about 2,750 such aircraft.
How to connect to SMEV3
To become a participant in the interaction, the organization needs to go through 7 steps.
Submit an application for registration of the organization in SMEV. The application indicates the legal justification for the connection. Depending on the type of organization and its goals, this application can be considered either very quickly or for a long time – with the submission to the presidium of a special commission.
Establish a secure channel. This is also done on request, under which you will be provided and helped to set up the equipment.
Obtain certificates from an accredited certification authority (ACC).
Register one or more of your systems with the received certificates in SMEV through the Personal Account of the interaction participant (LC HC). Choose the type of information you will work with, or register your own.
Set up or develop an integration module for connection to SMEV. Here our adapter SMEV3 will come to your aid.
Get access to the aircraft by passing the technical readiness procedure (PTG) on a test environment through the LK HC.
Switch to a productive environment.
How LK UV works
If the first 3 steps of the instructions are more or less clear, then I would like to tell you more about the rest.
We have an amazing LK UV. It will not be difficult to get access to it if the application from the first paragraph is completed. Authorization takes place under the ESIA account. The only thing is that the administrator of your organization’s profile in the ESIA will need to add you to the organization.
All the regulated procedures that must be performed for full-fledged work in the SMEV are automated in the LK UV.
In a few clicks you can:
register the system
change her certificate
get access to the aircraft
register your aircraft
pass PTG with emulator
check the fullness of your queues
track the fate of the exchange
create a report and much more
LK UV is developing by leaps and bounds and is winning the hearts of our users. Those who know how it was before its appearance are especially happy. You know, we somehow thought: it turned out that LK UV saves the participants years (!) of life.
Environments in SMEV3
In SMEV3 we provide 3 environments: development, testing and productive.
Development environment. It provides a unique opportunity – to try your hand at SMEV, without having any access yet and without waiting for the first points to be completed.
On the development environment, you can create a demo version of an organization, register a couple of systems for it, a type of information, and try to make exchanges through SMEV.
Test environment. More popular than the development environment, because everyone must get here before going on sale. And most maintain the performance of their test systems after the release of the prod.
Test and development environments do not require a secure channel. Again, it turns out that you can test in parallel with the organization of the channel for the sale.
Another important thing for these environments is that a certificate for systems can be generated directly in the CC in a few seconds.
On the test environment, in addition to its direct purpose, the PTG is also passed to gain access to the types of information.
productive environment. It is not advisable to experiment here. It is available only through a secure channel. Envelopes can only be signed with certificates received at the ATC.
Adapter integration unit (IUA) SMEV3
Lyrical digression: the love for abbreviations in our company and the public sector is, in principle, not without reason. The systems are named so that they can be uniquely identified. So it is with IUA. Of course, they like to call it simply “adapter”, but this causes misunderstanding. Contractors can call the modules of their systems adapters, and someone has developed their own universal SMEV adapters. In SMEV4, the adapter is generally part of another software.
So, IUA SMEV3 is a client software that supports all the necessary operations to perform exchanges through SMEV3. It is deployed on the side of the interaction participant and provides integration-friendly interfaces.
In fact, this is a layer between your system and SMEV, which will make your life easier several times.
IUA can be installed on both Windows and Linux. There is a version for the cuber, and there is for the housewife: “next, next, ok, done.” There is also a version complete with all the necessary environment: Java, cryptographic provider and DBMS.
How can IUA help?
Takes care of signing envelopes
Will poll your queues, executing get at the frequency you set
Helps to conveniently log all exchanges
It will allow you to choose a convenient interface: amqp, rest api, soap, database, through the file system and even the built-in web interface. Using the latter, by the way, you can not develop your information system at all, but use only the SMEV3 adapter
It will select the configuration for the selected environment, wrap the transferred attachments in the required format, send statistics, etc.
IUA is distributed freely, and we strongly recommend that all participants in the interaction use it.
Where to read more and where to run with questions
Unified context help system
Like any self-respecting system, our SMEV, LK UV and IUA, of course, have acquired official documentation. Many pages of hard to read text.
But we also have a cool knowledge base in the form of articles. It’s called Unified context help system (ESKS). Official documents and distributions are also stored here. There is also a very useful news section and forum.
Bot. The fate of messages and notifications
The LK UV team, together with other, outwardly invisible, but no less significant teams, developed telegram bot. You can communicate with him about the fate of your exchanges and receive notifications of key events concerning you in SMEV.
We have an official channel of communication with the operation and other participants in the interaction – the Situation Center. There you will be answered nicely and beautifully, but not very quickly.
However, we love our users, so we often create live support chats in Telegram. Sometimes they live for years, and the participants and I become family to each other.
Keeping up with the times, we actively lead telegram channel “News SMEV +”. Here you can not only find out the latest news, but also ask your question under any of them. It does not matter if it is not in the subject of the news – we will answer!
SMEV is a complex highly loaded system. But we try very hard to make it seem easy for users, especially at the most difficult step – the stage of connecting to it.
That’s all I would like to tell. I hope for your interest and motivation to write new articles.
Thank you for attention.