SOFTWARE ARCHITECTURE SYSTEM DESIGN FOR THE MASS SERVICE SYSTEMS MODELING TO BE IMPLEMENTED IN GO PROGRAMMING LANGUAGE
DOI:
https://doi.org/10.20998/2079-0023.2024.01.14Keywords:
software architecture, computer modeling, mass service system, Go programming language, concurrency, parallelismAbstract
The subject of the article is the methods and approaches to organizing the architecture of software implementation designed for modeling the behavior of mass service systems. The goal of the work is to design a software architecture for implementation in Go language, intended to replicate the behavior of various types of mass service systems, without considering the failure of individual service channels, using parallel computing. The article addresses the following tasks: consider the basis for designing the architecture and conclude its appropriateness; develop requirements for the future software product for more effective resource use and clear definition of successful completion; analyze the approaches to organizing software architecture and make a justified decision on the application of one of them; design a general algorithm scheme taking into account all requirements; identify the components of the modeled system and their interactions; build process diagrams considering the specifics of the Go programming language; define the method and contracts of interaction with the software. The research will utilize the following methods: Go programming language, concurrency, architectural UML diagrams, C4 diagrams, process diagrams. The following results were obtained: the requirements for the software for modeling mass service operations (SMO) were defined; common approaches to organizing architecture were considered and a comparative analysis was conducted; the structure of the future program was developed at the necessary levels of abstraction; for the first time, an architecture of the software product for modeling various mass service systems using parallel computing and the concurrency approach under the implementation in the Go programming language was proposed.
References
Conery R., Hanselman S., Haack P., Guthrie S. Microsoft Application Architecture Guide, 2nd Edition: Designing Applications on the .NET Platform. Microsoft Press, 2009. 560 p.
Kirkhar N. V. Zastosuvannia tekhnolohii arkhitekturnoho proektuvannia prohramnoho zabezpechennia [Application of software architectural design technology]. Problemy informatyzatsii ta upravlinnia [Problems of informatization and management] 2019, vol. 1, no. 64, pp. 50–56. DOI: https://doi.org/10.18372/2073-4751.61.14038 (In Ukr.)
Forkun Yu., Martyniuk V., Yashyna O. Metod rozrobky ta proektuvannia arkhitekturnoi skladovoi prohramnoho zastosunku [The method of development and design of the architectural component of the software application]. Vymiriuvalna ta obchysliuvalna tekhnika v tekhnolohichnykh protsesakh [Measuring and computing equipment in technological processes]. 2023, no. 4, pp. 87–93. DOI: https://doi.org/10.31891/2219-9365-2023-76-11 (In Ukr.)
Gnedenko B. V., Kovalenko I. N. Vvedenie v teoriyu massovogo obsluzhivaniya [Introduction to Queuing Theory]. Moskva, Nauka, 1987. 336 p. (In Russ.)
Lytvynov A. L. Teoriia system masovoho obsluhovuvannia [Queuing Theory System]. Kharkiv, KhNUMH im. O. M. Beketova, 2018. 141 p. (In Ukr.)
Morozov A., Vakaliuk T., Kubrak Yu., Zosimovych D. Analiz faktoriv vplyvu na arkhitektury prohramnykh system [Analysis of influencing factors on the architecture of software systems]. Information Technology: Computer Science, Software Engineering and Cyber Security. 2022, no. 1, pp. 44–52. DOI: https://doi.org/10.32782/IT/2022-1-7 (In Ukr.)
System Architecture. URL: https://rubygarage.org/blog/monolith-soa-microservices-serverless (accessed 03.03.2024).
Donovan A. A. A., Kernighan B. W. The Go programming language. New York, Addison-Wesley Professional, 2015. 400 p.
Lisniak A. O., Myltsev O. M., Mukhin V. V., Choporova O. V. Arkhitektura ta proektuvannia prohramnoho zabezpechennia: metod. rek-tsii do lab. zan. dlia zdobuvachiv stup. vyshch. osv. bakalavra spets. 121 "Inzheneriia prohramnoho zabezpechennia" osv.-prof. prohr."Prohramna inzheneriia" [Software architecture and design: methodical recommendations for laboratory classes for higher education bachelor degree holders, specialty 121 "Software engineering" of the educational and professional program "Software engineering"]. Zaporizhzhia: ZNU, 2022. 53 p. URL: https://dspace.znu.edu.ua/xmlui/handle/12345/11642 (accessed 01.04.2024). (In Ukr.)
Castro Contreras M. Go Design Patterns. Birmingham, Packt, 2017. 402 p.
Hoare C. A. R. Communicating sequential processes. New Jersey, Prentice Hall, 1985. 235 p. DOI: https://doi.org/10.1145/359576.359585
Cox-Buday K. Concurrency in Go: Tools and Techniques for Developers 1st Edition. Sebastopol, O’reilly Media, 2017. 236 p.
Hoare C. A. R. Communicating sequential processes. Communications of the ACM. 1978, vol. 21, no. 8, pp. 666–677. DOI: https://doi.org/10.1145/359576.359585.
Downloads
Published
How to Cite
Issue
Section
License
This work is licensed under a Creative Commons Attribution 4.0 International License.
Authors who publish with this journal agree to the following terms:
- Authors retain copyright and grant the journal right of first publication with the work simultaneously licensed under a Creative Commons Attribution License that allows others to share the work with an acknowledgement of the work's authorship and initial publication in this journal.
- Authors are able to enter into separate, additional contractual arrangements for the non-exclusive distribution of the journal's published version of the work (e.g., post it to an institutional repository or publish it in a book), with an acknowledgement of its initial publication in this journal.
- Authors are permitted and encouraged to post their work online (e.g., in institutional repositories or on their website) prior to and during the submission process, as it can lead to productive exchanges, as well as earlier and greater citation of published work (See The Effect of Open Access).