The increasing popularity of virtualized services and cloud computing, offering elastic and scalable computing resources challenges software engineering methods by asking a number of new questions: How can we integrate deployment-specific information in the overall design of software applications? How can we express and compare deployment decisions in the design phase, so that performance diagnosis can happen early in the software development cycle? How do we design scalable applications?This thesis proposes a methodology for the modeling and analysis of object-oriented distributed applications that are able to adapt to changes in client traffic, so that they can keep desired levels of performance. As a starting point for developing our methodology, we take Core ABS, an abstract, behavioral specification language that targets the executable modeling of concurrent, distributed and object-oriented systems. We extend Core ABS with deployment-specific information such as deployment architectures, flexible application-specific schedulers, deadlines at the application level, resource management primitives, and user-defined resource costs. The extensions are developed following conventions of formal methods, combining rigorous definitions and formal semantics with a user-friendly Java-like syntax and tool support. By exploiting these language extensions, our methodology makes it possible to compare at the modeling level how a software behaves under different deployment choices. Such comparisons allow a better understanding of the trade-offs from different deployment choices, consequently better design decisions for distributed applications can be made early in the software development life cycle.By integrating resource management and deployment decisions in the design phase, our methodology has the potential to improve the software engineering process for virtualized and scalable software applications running in the cloud, both with respect to quality and with respect to development and deployment cost.
Abstract. Today's software systems are becoming increasingly configurable and designed for deployment on a plethora of architectures, ranging from sequential machines via multicore and distributed architectures to the cloud. Examples of such systems are found in, e.g., software product lines, service-oriented computing, information systems, embedded systems, operating systems, and telephony. To model and analyze systems without a fixed architecture, the models need to naturally capture and range over relevant deployment scenarios. For this purpose, it is interesting to lift aspects of low-level deployment concerns to the abstraction level of the modeling language. In this paper, the objectoriented modeling language Creol is extended with a notion of dynamic deployment components with parametric processing resources, such that processor resources may be explicitly reallocated. The approach is compositional in the sense that functional models and reallocation strategies are both expressed in Creol, and functional models can be run alone or in combination with different reallocation strategies. The formal semantics of deployment components is given in rewriting logic, extending the semantics of Creol, and executes on Maude, which allows simulations and test suites to be applied to models which vary in their available resources as well as in their resource reallocation strategies.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.