DOI: 10.1145/3821209 ISSN: 1049-331X
Service Colonies: A Novel Architectural Style for Developing Software Systems with Autonomous and Cooperative Services
Thakshila Imiya Mohottige, Artem Polyvyanyy, Colin Fidge, Rajkumar Buyya, Alistair Barros
This paper introduces the concept of a
service colony
, a novel architectural style for developing software systems. A
service colony
organizes a system as a group of autonomous software services that cooperate to achieve its objectives. Each service in the colony is responsible for implementing a specific functionality, interacting with other services and system users, and making proactive decisions that influence its and the system's performance, as well as the system's topology and interaction patterns. By enhancing the self-awareness and autonomy of individual components, this architecture fosters greater decentralization, flexibility, modularity, and robustness. Experiments involving the reengineering of an open-source system into a service colony demonstrate its ability to dynamically rearchitect and adjust performance in response to changing user demands and usage intensity.