Run-time Adaptable Service Oriented Architecture in the Context of Repository Systems
Thiago Gottardi, Rosana Teresinha Vaccare Braga · 2023
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.