Creation of software systems "Collect-B" and ECU
Creation of software for the systems “Collection-V” and “Management from a single center” (ECU) by the ground-based measuring complex of the Plesetsk cosmodrome of the 90s
Introduction
The purpose of the article is to open the veil of secrecy in software development used to test strategic ballistic missiles. The article briefly shows the continuity of generations of Soviet developers from the so-called scarabs and developers of the 1990s, who worked for defense and space. The text will contain links from both well-known developers of Western software and to “unknown soldiers” ennobled sharakas of a new appearance, differing from Stalin’s full freedom of uninvited prisoners outside working hours, who were detained for months and not fed at work, as in “sharashka” . The article shows the line of reasoning when creating software, and also shows for the first time individual layers that give an idea of the superiority of military software in Russia and Ukraine in the 1990s over consumer software in the West of that time.
So, in 1991, books on enterprise application integration patterns that appeared later, after a quarter of a century [1], were not yet written. It was necessary to rely on the understanding that the most important for integration should be heterogeneous messages transmitted via telegraph and telephone lines protected by cryptographic equipment. The construction, as it is now customary to say, of the protocol stack was carried out on the basis of the reference model of the interaction of open systems as applied to the information concentrator.
In the process of modifying EMBOS, the switching element, due to the simplification of the IVS and the transfer of complexity to the universal element - the information hub, required the complexity of its architecture, which was expected from the very beginning. KI software was loaded with additional levels: applied, representative, session and transport, as shown in the figure.
A description of how each of the 7 levels of the information concentrator is designed will probably not fit in any article, so it’s worth showing the most interesting levels.
So, it can be simplified to say about the physical layer that these are connectors and cables. For example, between the CC of the Plesetsk Cosmodrome and the VEGUTA Vorkuta IS there was a cryptographic communication line, through which in 1993 it was possible for the first time to exchange information between two concentrators. The closed communication line was provided by the Interior equipment as the equipment for terminating the data channel (AKD).
Research Institute of Communications (Marfino):
You can find out how the prisoners worked, creating secret telephony, in Solzhenitsyn’s fascinating novel “In the First Circle”. A film adaptation of the novel is on YouTube [5]. With a shortage of time, I recommend looking at the most characteristic moments of the scientific organization of labor of “sharashka” engineers [6-10].
We had to touch this tragic work of the Soviet prisoners of Sharashka. We were not even allowed to know what kind of equipment it was or how it worked. We could only give our cable to be connected to the equipment without our participation. If it works, then we succeeded, and if it does not work, then it’s not fate - the project will fail.
The task was complicated by many factors. However, in Plesetsk, Mikhail Mokrinsky and Igor Shipsha managed to transfer “quietly” cables, connect two hubs and find a way to transfer data over a closed line using trial and error, and Nikolaev developed a special “monitoring protocol” that forced the closed line equipment at the transport level communications recover from failures and loss of synchronization between two hubs. But not everything went so peacefully and smoothly. In Norilsk, a soldier, as I remember now, Zaitsev, could not stick where the cable should go into the information closure equipment. Then Nikolaev Nikolaev and Anatoly Kravchenko knocked on the secret room, and when the door was ajar, burst into the room, pushing the fighter out, and themselves connected the cable to the secret telephone equipment. Everything worked. It was a success. And the next day I had to write an explanatory note to the FSB. But it turned out that it was not the time to send offenders to jail in Marfino. And thank God!
Subsequently, an adapter was developed that reduced the cost of the hub due to the fact that not everywhere a complete set of adapters was required. This was already a personal initiative of Nikolaev, Mokrinsky and Shipsha.
Session-Level Software Implementation Algorithm
It is impossible to describe everything within the framework of the article, so it makes sense to write something that may surprise the reader.
The three upper levels of the basic reference model of the relationship of open systems (fifth - session, sixth - representative, seventh - applied) are considered to be application-oriented levels.
Taking any book, we will see that the session level is practically not described. The session level in the literature has been described most controversially. On the one hand, it seems that the authors have nothing to say; e.g. V.G. Olifer and N.A. Olifer [13] took this incomplete 8 lines! On the other hand, the description of the session level is clearly scholastic in nature [14]: F. Halsall has no duplex in data transmission, the “token” concept does not allow software to be implemented in a reasonable amount of time due to the lack of real data exchange mechanisms implemented in the OS. Sovetov B.Ya. and Yakovlev S.A. consider that practically these levels are not realized due to their complexity [15].
The lack of a methodology led to the fact that programmers working only within the Internet found a way out of this difficult situation in that all three levels (session, presentation and application) were combined into one application level [16]. Although what kind of Internet is there in the USSR back in 1991 !? The session level of the Collection-V system and the PAS of Vega systems control from the ECU was developed as a separate level, reflecting a specific session of work on the tested product. The method of implementing the session level in the "Collect-B" system is based on the creation of primitives - special envelopes for meaningful trajectory information.
Traditionally, the session level localizes all calls to network software within itself, presenting for other programs a set of primitives that allow the exchange of information without going into details of the network. Attributes of primitives include those attributes that make it possible to identify tests by type of ballistic missile (product number), by serial number of rocket launch during the day, date and time of the test, unique number of the measuring tool. The use of session-level primitives makes it possible to provide complete session information of external trajectory measurements.
For the implementation of the session level, a library of primitives was organized. The following minimal set of primitives was included here: a) establish a session; b) send a data block; c) close the session.
In the “Collection-B” system, these three primitives allow the transfer of information from the periphery to the collection center. All of them are made in the form of a library in the language "C" and in the process of broadcasting are connected to programs for transmitting data to the network. Thus, to complete the transfer, the program first performs the opening of the session by the OPEN primitive. Then each data block is encapsulated in an envelope and sent to the network. At the end of the transfer of information in the collection center, the session is closed by sending the primitive CLOSE.
KI software administrative management technique at the session level
Administrative management uses the capabilities of the UNIX operating system, namely message queues, a virtual channel, and fifo files, which are a feature of UNIX. The "establish a session" primitive provides the organization of fifo-files at two ends of the network and a virtual line between them for sending messages. The launch is made by the operator and controlled by him. To establish a session (for testing a ballistic missile), the operation of the TCP / IP protocols is initially checked by testing with the ping program. Next, the data block transfer primitive is written to the fifo-file in the same way as to any other file. And UNIX networking tools at the other end of the transfer will provide this information in a twin fifo file of the recipient machine. Channel recovery is performed through the operation of disconnecting and re-establishing the channel. The lack of a channel is clarified by end-to-end acknowledgment of test packages involving two channels (to and from there). Termination of the session destroys the connection between the fifo-files located on opposite sides of the network. All procedures are performed by a program intended for administrative management and separated from communication programs of the applied and representative level. The session-level software of the Collect-B system and the software for managing the Vega system complex from the ECU are presented in the diagrams below. A separate virtual terminal is allocated for the administrative management of the session level - a PC display from the ECM workstation. APM APC uses a full set of interprocess exchange mechanisms: queues, fifo-files, signals, shared memory areas, which is especially useful for displaying on the screen in single-page mode.
Methodology for ensuring the urgency of message transfer
The “Collect-B” system transmits trajectory measurement data. In parallel with this, control commands of the "ECU" system are used. Therefore, it became necessary to separate messages by urgency level. In 1993, STL libraries had not yet been created by Stepanov and Meng Lee, so Andrei Nikolaev proposed and implemented, together with Valentina Gordienko, a scheme for using a common path in which mechanisms are created that allow the selection of messages of different urgency and intermediate accumulation of information messages. At the same time, everything worked out should have remained inside the manufacturer and the operating organization. The selection of messages ensured the transmission of messages in accordance with urgency. Urgent data blocks always go ahead of less urgent ones. Consider how this was provided.
The “Collect-B” system and the PAS of the IS “Vega” IS control from the ECU use two classes of urgency in the process of exchanging data blocks. The first class of urgency includes the so-called “urgent data”. They include mainly management teams and receipts for these teams. For them, the maximum allowable transmission delay is determined. Outside the delay tolerance range, the team is considered to be late and no longer relevant, therefore, it must be removed from the network. In addition to urgent data, there is also a second class of messages - perpetual (normal) data. They should not be lost, but should not interfere with the passage of urgent, which should "give way". The use of the ring buffer mechanism at the entrance to the access point to the services of the transport layer allows virtual separation of the transmission path into the normal data path and the control signal path. At the exit from the transport layer, a ring buffer is needed at the point where flows from different sources of information converge, i.e., in the center for collecting external path information, in that computer that raises information blocks from the transport layer to the data session level for the purpose of further routing and / or processing.
The ring buffer forms a message queue, built on the principle of "first come - first leave." To improve understanding of the principle of operation of a circular buffer, we simplify the situation by assuming that the length of the blocks is the same. Then the operation of the buffer is determined by two indexing variables: in - indicates the position where the element is written, out - indicates the position from which it is extracted. It would be ideal if indexing in this array had no restrictions. However, any finite array is also quite suitable: after all, once a read block is no longer used. Therefore, its place can be reused.
A ring buffer is used to temporarily store perpetual data blocks until a “window” appears in the urgent data stream. The depth of the buffer should be such that, if necessary, it will accommodate the "normal" information of one session. Due to the fact that the buffer volume can be significant, it can be placed in a file and stored on a disk drive. This allows you to organize a sequential grouping of urgent and “normal” data flows in a common path, giving priority to urgent data. The algorithm of the data sorting process. In the documentation for the “Collect-B” system and the ECU, the algorithms are described in the form of pseudo-code. Therefore, it also provides an algorithm for working with messages of different urgency on the pseudo-code.
Pseudo-code of the process of selecting urgent and unlimited network messages: n - the number of elements that are currently in the buffer; N is the size of the buffer; X - message content [/ center]
Conclusion
Work on the systems "Collect-B" and the ECU was completed successfully. Dozens of missile tests were timely provided with information. The flight paths of the missiles were built, this made it possible to quickly report on the results of launches of strategic ballistic missiles, both land and sea based, to report on the paths of launches of rocket-carrying spacecraft.
The ECU system functioned successfully both in terms of ensuring the preparation of the IS “Vega” for testing, and in terms of adaptive control of the ground-based measuring complex.
The developed systems were successfully operated at the Plesetsk cosmodrome, which facilitated the sharpening of a nuclear sword. The measuring systems included in the IVS of the systems "Collection-V" and the ECU at the time of 1998 are shown in the figure:
The development of the “Collect-B” systems and the ECU made it possible to extend new methods to the creation and implementation of information systems in Ukraine. These include acquisition systems in hydrometeorology, monitoring of seismic sensors, the “Navigation and Temporary Support System of Ukraine”, the integration of heterogeneous Life Network switches, etc.
The Cold War officially ended with the surrender of Gorbachev in Malta and the collapse of the USSR. But there were still “partisans” of the Cold War who, so to speak, held out until the approach of the main forces. At that time everything was hanging by a thread, but we managed.
Sources of
1. Hop G., Wolf B. Enterprise application integration patterns. Design, build and deploy messaging-based solutions. M .: Williams, 2016.
2. https://ru.wikipedia.org/wiki/NII_Svyazi.
3. https://topos.memo.ru/en/node/57. Martha sharashka. Address: Moscow, st. Botanical, d. 25.
4. https://sky-hexe.livejournal.com/383686.html. Marfinsky architectural chaos.
5. https://www.youtube.com/watch?v=dxEOZtyHHhg. The film "In the first circle."
6. https://www.youtube.com/watch?v=FtfZAVZmH3E. In the First Circle, trailer.
7.https://www.youtube.com/watch?v=AWwaCwtsCpI&t=117s. "In the first circle." Dialogue with Abakumov on the timing of development.
8.https://www.youtube.com/watch?v=6CZQhKtww6I&t=64s. "In the first circle." Dialogue with the lead development engineer about the timing with Abakumov.
9.https: //www.youtube.com/watch?v=1RuFU1FHAI0&t=20s. "In the first circle." Statement of the problem for the development of equipment for cryptographic information closure by Abakumov.
10. https://www.youtube.com/watch?v=9pt6UFQihUo. Esoterics of engineering in a sharashka.
11. https://hodor.lol/post/50778/ Once upon a time, "top secret."
12. Patent of Ukraine No. 25664 A, G06f13 / 00. Pristri receipt / Mokrinsky M.O., Nikolaev A.V., Shipsha I.M. - No. 97052331; Claim 21.05.1997/30.10.1998/6; publ. XNUMX/XNUMX/XNUMX, bull. No. XNUMX.
Information