Service-oriented architecture (SOA) is a popular architectural style centered around services, loose coupling, and interoperability. A recurring problem in SOA development is the Button Problem; how to ensure that whenever a “button is pressed” on some service—no matter what—the performance of other key services remains unaffected? The Button Problem is especially complex to solve in systems that have devolved into hardly comprehensible spaghettis of service dependencies. In a collaborative effort with industry partner First8, we present the first formal framework to help SOA developers solve the Button Problem, enabling automated reasoning about service sensitivities and candidate refactorings. Our formalization provides a rigorous foundation for a tool that was already successfully evaluated in industrial case studies, and it is built against two unique requirements: “whiteboard level of abstraction” and non-quantitative analysis.

First8 BV, Nijmegen, The Netherlands
Lecture Notes in Computer Science
International Symposium on Formal Methods

Jongmans, S., Lamers, A., & van Eekelen, M. (2019). SOA and the button problem. In Proceedings of the International Symposium on Formal Methods (pp. 689–706). doi:10.1007/978-3-030-30942-8_40