Cloud computing offers opportunities to increase productivity and reduce costs. Quickly adapting to changing needs is key to maintaining cloud applications. In traditional development, coordination is implemented in computational code. Although change impact analyses are studied, adjusting the implementation is time-consuming and error-prone when the coordination strategy changes. Exogenous coordination separates the implemented coordination and computational code to cope with this problem. This separation improves the reusability of components. Additionally, other applications with similar interaction patterns can reuse the coordination specification. The main contribution of this paper is to propose a methodology to develop and maintain cloud applications following the exogenous approach. To illustrate the idea, we introduce a new framework named OCCIwareBIP, which integrates JavaBIP — a framework for the exogenous coordination of concurrent Java components into OCCIware — a framework for designing cloud applications. We also leverage the coordination model to verify the deadlock-freedom of the cloud application. Finally, we present an application to show the ability of our approach to guarantee the safety and benefits of modularization in developing concurrent cloud applications.
Read full abstract