DESIGN OF DISTRIBUTED INFORMATION SYSTEMS BASED ON USING THE TECHNOLOGY OF LOOSELY COUPLED COMPONENTS - Zinchenko, A. Yu. (Systems and Technologies, 2023)
This paper is devoted to the application of the technology of loosely coupled software components to the design of distributed information systems. By focusing on commonly asked questions, this paper provides techniques to help you discover and weigh the trade-offs as you confront the issues you, as a programmer, face as an architect. It analyzes in detail the use of the principle of dependency inversion for the implementation of service-oriented architecture, for the construction of web services (SOAP and REST), as well as for the architectural model of SaaS cloud computing. At the same time, the main method of reducing the connectivity of software modules is the use of Inversion of Control through the implementation of the dependency injection mechanism. This provides the implementation of the main principle of SOLID – The Dependency Inversion Principle. The main types of relationships between classes for the design of a distributed architecture are considered in detail in the work. These are inheritance, implementation, aggregation, and composition. Since inheritance is a rigid type of coupling, in which all the functionality of the inherited class is defined at the compilation stage, and the programmer cannot dynamically redefine it during the execution of the program, so to ensure loosely coupled software components (in particular, through the mechanism of dependency injection) instead of inheritance, you need to use composition, and instead of use composition, if possible, use aggregation. Also, the paper describes in detail the use of control inversion through dependency injection (Constructor injection, Parameter injection, Setter injection, Interface injection) when designing software modules of information technology. In addition, to increase the reliability of personal data protection when designing architectural solutions, the main mechanisms of unauthorized access (hacker attacks) in service-oriented systems are considered. This is because the received URLs, cookies and data in HTTP requests may be spoofed. Classic types of hacker attacks are analyzed in detail in work: permanent and passive cross-site scripting, SQL injections, and cross-site query forgery. In addition, methods of combating such attacks at both the software and network levels are provided.