Run-time Adaptable Service Oriented Architecture in the Context of Repository Systems
Resumo
Service-Oriented Architectures facilitate high modularity and reusability. In this context, service discovery is crucial in identifying new servers that meet the desired client requirements. Although this approach may seem ideal, it is not enough in some situations. For example, in the case of different artifact repositories, they may rely on specific services to adequately adapt to their unique requirements and evolve accordingly. Even considering the availability of common standards for metadata, storing beyond basic metadata and supporting data interchange often requires the development of specific systems. In this paper, we present an architecture for a completely dynamic service-oriented system and use it to implement a prototype of an artifact repository server capable of using different protocols and schemas and reloading new configurations while running. This capability is made possible through an innovative combination of service-oriented architecture, models at run-time, code interpretation, and code generation with just-in-time compiling. This dynamic nature enables the deployment of new configurations on demand without requiring a restart while also facilitating the execution of data processing tasks for various purposes, such as data analysis, in a seamless manner. A working prototype using multiple configurations is used to attest the feasibility of the architecture. We conclude that the solution is viable, but we point to possible scalability and security concerns and how to tackle them.
Referências
Bennaceur, A., France, R., Tamburrelli, G., Vogel, T., Mosterman, P. J., Cazzola, W., Costa, F. M., Pierantonio, A., Tichy, M., Akşit, M., Emmanuelson, P., Gang, H., Georgantas, N., and Redlich, D. (2014). Mechanisms for Leveraging Models at Runtime in Self-adaptive Software, pages 19–46. Springer International Publishing, Cham.
Blomstedt, F., Ferreira, L. L., Klisics, M., Chrysoulas, C., de Soria, I. M., Morin, B., Zabasta, A., Eliasson, J., Johansson, M., and Varga, P. (2014). The arrowhead approach for soa application development and documentation. In IECON 2014 - 40th Annual Conference of the IEEE Industrial Electronics Society, pages 2631–2637, Dallas, TX, USA. IEEE.
France, R. and Rumpe, B. (2007). Model-driven development of complex software: A research roadmap. In 2007 Future of Software Engineering, FOSE ’07, pages 37–54, Washington, DC, USA. IEEE Computer Society.
Kenzi, A., Asri, B. E., Nassar, M., and Kriouile, A. (2009). Engineering adaptable service oriented systems: A model driven approach. In 2009 IEEE International Conference on Service-Oriented Computing and Applications (SOCA), pages 1–8.
Kołaczek, G. and Mizera-Pietraszko, J. (2018). Security framework for dynamic service-oriented it systems. Journal of Information and Telecommunication, 2(4):428–448.
Kulcsár, G., Koltai, K., Tanyi, S., Péceli, B., Horváth, A., Micskei, Z., and Varga, P. (2020). From models to management and back: Towards a system-of-systems engineering toolchain. In NOMS 2020 - 2020 IEEE/IFIP Network Operations and Management Symposium, pages 1–6, Budapest, Hungary. IEEE.
McCarthy, J. (1960). Recursive functions of symbolic expressions and their computation by machine, part i. Commun. ACM, 3(4):184–195.
Mutanu, L. and Kotonya, G. (2019). State of runtime adaptation in service-oriented systems: what, where, when, how and right. IET Software, 13(1):14–24.
S Nair, S. and Jeevan, V. (2004). A brief overview of metadata formats. DESIDOC Bulletin of Information Technology, 24:11.
Wohlin, C., Runeson, P., Hst, M., Ohlsson, M. C., Regnell, B., and Wessln, A. (2012). Experimentation in Software Engineering. Springer Berlin, Heidelberg.