Learn More
Background--By leveraging cloud services, organizations can deploy their software systems over a pool of resources. However, organizations heavily depend on their business-critical systems, which have been developed over long periods. These legacy applications are usually deployed on-premise. In recent years, research in cloud migration has been carried(More)
One of the key activities that are needed to construct a quality service-oriented solution is the identification of its architectural elements with the right granularity. The selection of an appropriate method for identification of services from business models of an enterprise is thus quite crucial to the success of any service-oriented solution for that(More)
Enterprise Architecture (EA) has become an important means to acquire and maintain knowledge about the structure and behavior of the enterprises and to develop the required IT systems. Two main goals in architecture - high flexibility and low complexity- are addressed in a new architectural style called Service Oriented Architecture (SOA). In this paper, we(More)
One of the key issues that should be considered when addressing reliable evolution is to place a software system in a consistent status before and after change. This issue becomes more critical at runtime because it may lead to the failure on running mission-critical systems. In order to place the affected elements in a safe state before dynamic changes(More)
Context: A key activity in the construction of any enterprise-wide service-oriented system is the identification of enterprise-level services from business models based on required quality attributes. Conventional service-identification methods rely heavily on the experiences of architects to direct them in the identification of services and architectural(More)
Cloud elasticity provides a software system with the ability to maintain optimal user experience by automatically acquiring and releasing resources, while paying only for what has been consumed. The mechanism for automatically adding or removing resources on the fly is referred to as auto-scaling. The state-of-the-practice with respect to auto-scaling(More)
The software engineering community has proposed numerous approaches for making software self-adaptive. These approaches take inspiration from machine learning and control theory, constructing software that monitors and modifies its own behavior to meet goals. Control theory, in particular, has received considerable attention as it represents a general(More)
Auto-scaling features enable cloud applications to maintain enough resources to satisfy demand spikes, reduce costs and keep performance in check. Most auto-scaling strategies rely on a predefined set of rules to scale up/down the required resources depending on the application usage. Those rules are however difficult to devise and generalize, and users are(More)