Proceedings of the PhD Symposium at the 3rd European Conference on Service-Oriented and Cloud Computing (ESOCC'14)

Size: px
Start display at page:

Download "Proceedings of the PhD Symposium at the 3rd European Conference on Service-Oriented and Cloud Computing (ESOCC'14)"

Transcription

1 Proceedings of the PhD Symposium at the 3rd European Conference on Service-Oriented and Cloud Computing (ESOCC'14) Alexander Pokahr 1 and Friederike Klan 2 (Editors) 1 pokahr@informatik.uni-hamburg.de 2 friederike.klan@.uni-jena.de

2 2

3 Preface The ESOCC PhD Symposium aims at giving PhD students feedback and advice for their intended research related to the topics addressed by the main conference. Young researchers were asked to submit a paper that clearly states and motivates a research problem, that provides a research plan and may present preliminary results. The PhD students invited to the symposium are given the opportunity to present their work and critically discuss it with other PhD students and with established researchers. To get in touch with senior researchers extending the PhD students personal academic network, one-on-one mentoring is offered. All submissions have been reviewed by at least two members of the program committee. Out of the submitted contributions, we invited three students to attend the symposium and selected two papers for publication in the proceedings. We would like to thank the ESOCC chairs Kung-Kiu Lau, Massimo Villari, Wolf Zimmermann and Guadalupe Ortiz for their kind support. We are also grateful to the symposium s program commitee consisting of Marco Aiello (University of Groningen) Akhil Kumar (Penn State University) Wolf Zimmermann (University of Halle) Claude Godart (Loria) Martin Henkel (Stockholm University) David Eyers (University of Otago) Claus Pahl (Dublin City University) Antonio Brogi (University of Pisa) George Feuerlicht (University of Technology, Sydney) Javier Cubo (University of Málaga) Schahram Dustdar (TU Wien) Birgitta König-Ries (Friedrich-Schiller-University of Jena) Heiko Ludwig (IBM Research) Ulf Schreier (Furtwangen University) Erik Wilde (EMC Corporation) Massimo Villari (University of Messina) Guadalupe Ortiz (UCASE Software Engineering Group) Christoph Bussler (Xtime, Inc.) Rainer Unland (University of Duisburg-Essen) Roy Oberhauser (Aalen University) Thomas Gschwind (IBM Research) and to those researchers that act as personal mentors for the PhD students. Finally, we thank all authors that submitted their work to the symposium. August 2014 Alexander Pokahr & Friederike Klan PhD Symposium Organizers, ESOCC 14 3

4 4

5 Table of Contents Design Support for Performance-aware Cloud Application (Re-)Distribution 6 Santiago Gómez Sáez, Frank Leymann Domain Objects for Dynamic Service-based Applications Martina De Sanctis 5

6 Design Support for Performance-aware Cloud Application (Re-)Distribution Santiago Gómez Sáez and Frank Leymann IAAS, University of Stuttgart Universitätsstr. 38, Stuttgart, Germany Abstract. The Cloud computing paradigm emerged by establishing innovative resources provisioning and consumption models. Together with the improvement of resource management techniques, these models have contributed to an increase in the number of application developers that are strong supporters of partially or completely migrating their application to a highly scalable and pay-per-use infrastructure. However, due to the continuous growth of Cloud providers and Cloud offerings, Cloud application developers nowadays must face additional application design challenges related to the efficient selection of such offerings to optimally distribute the application in a Cloud infrastructure. Focusing on the performance aspects of the application, additional challenges arise, as application workloads fluctuate over time, and therefore produce a variation of the infrastructure resources demands. In this research work we aim to define and realize the underpinning concepts towards supporting the optimal (re-)distribution of an application in the Cloud in order to handle fluctuating over time workloads. Keywords: Cloud application distribution; application performance; application workload evolution; Cloud application topology 1 Introduction In the last years the Cloud computing paradigm has successfully emerged and its model has been largely adopted by industry and research domains. Together with the exponential increase of available Cloud services, application developers can decide between partially or completely deploying their applications in a Cloud infrastructure. For example, with the successful introduction of DBaaS solutions, it became possible to host only some of the application components off-premise (in the Cloud), e.g. its database, while the remaining of the application remains on-premise. Standards like TOSCA 1 allow for the modeling and management of application topology models in an interoperable and dynamic manner, further supporting the application distribution capabilities, potentially even in a multi-cloud environment. However, such technological approaches lack support for guiding the application developer in tasks related to efficiently selecting the Cloud offerings to distribute the 1 Topology and Orchestration Specification for Cloud Applications (TOSCA) Version 1.0: 6

7 application. In this work, we aim to leverage the opportunities provided by such a technological landscape and develop the means to allow the dynamic deployment and re-deployment of application components across multiple services, in order to cope with performance demands which evolve during the life of the application. There are two fundamental observations in this effort that are going to be discussed in more length during the rest of the paper. Firstly, the distribution of the application topology in the Cloud has a severe effect on the performance of the application however it is not always obvious whether it is beneficial or detrimental. Secondly, a realistic application workload fluctuates over time, and its topology may have to be adapted to address the workload evolution. Approaches such as MADCAT focus on providing a methodological approach targeting the design and creation of structured native applications [10]. The Cloud- Mig approach builds on an initial topology [7] of the application which is then adapted through model transformation based on existing cloud offerings. The Palladio Component Model 2 aims at predicting the performance of model-driven software architectures, and is used in [12] towards optimizing for availability and operational expenses. Similar model-driven approaches focusing on multi-cloud management environments are investigated in the MODAClouds 3 project. The MOCCA framework focuses on optimizing the application topology by introducing variability points in the topology model and using optimization techniques to find the most suitable cloud offerings [11]. However, such approaches either do not explicitly focus on the performance-aware aspects of the application, or provide decision support mechanisms during the design phase of the application. In this work we aim at going a step further by providing the decision support mechanisms to Cloud application developers to efficiently (re-)distribute their applications to cope with evolving application workload behaviors, and performance and resource demands. 2 Motivation & Problem Statement The deployment of an application in the Cloud often requires Cloud application developers to specify its underlying resources, calculate its cost, or analyze its expected performance, etc. Such tasks are supported as part of several approaches such as CloudML [5] or TOSCA. For example, the Policy4TOSCA approach enables a policybased description of application non-functional aspects [13]. In Figure 1 we depict the topology model of a simple web shop application, which is constituted by its front-end and logic, and a back-end database. In a first step, the Cloud application developer may consider running the complete application stack in an on-premise virtualized infrastructure. Consequently, the required infrastructure must be provisioned in order to satisfy the functional and non-functional aspects of the application. However, when deciding to partially or completely distribute the application among an off-premise Cloud infrastructure, Cloud application developers must face further challenges related to deciding which Cloud provider and Cloud offering to use to partially 2 Palladio Component Model: Model 3 MODAClouds: 7

8 or completely run the application. For example, the application database can be deployed in the AWS RDS DBaaS infrastructure 4 and the application logic in an AWS EC2 5 m1.medium instance or in an AWS Elastic Beanstalk 6 container. The existence of multiple Cloud offerings, which are in some cases provided by several Cloud providers, builds an alternative topologies space depicting all possible application distribution alternatives [2]. Such application distribution posibilities are also motivated from the perspective of the multiple application partial and complete migration categories presented in [1]. Cloud application developers must analyze and evaluate the alternative topologies space towards achieving an efficient selection of Cloud offerings to distribute the application. The existence of such alternatives introduces a multi-dimensional problem related to evaluating and deciding among such alternatives. Cloud providers typically offer Cloud application developers tools for targeting one dimension, e.g. to calculate and analyze the monetary cost when using their offered services, such as the Amazon Simple Monthly Calculator 7, and provide configuration samples for different applications types and resources demands. AWS_Elastic_BeansTalk: Application_Container WebShop: WAR Apache_Tomcat: Servlet_Container interacts Product_DB: SQL_DB Legend Application-specific node Non application-specific sub-topology Sub-topology alternative Performance-aware annotation Alternative hosted-on Functional annotation Hosted-on MySQL: SQL_RDBMS_Server MySQL: SQL_RDBMS_Server MySQL: SQL_DBaaS Ubuntu13.0: Virt_Linux_OS Ubuntu10.04: Virt_Linux_OS Ubuntu13.10: Virt_Linux_OS AWS_RDS_mediumDB : AWS_RDS AWS_EC2_ m1.medium: AWS_EC2 IBM_Server: Physical_Server AWS_EC2_m1. xlarge: AWS_EC2 Fig. 1. Web Shop Application Topology Model (extended from [2]) The application performance is typically evaluated and analyzed in all phases of its life cycle, and therefore has a significant impact on the application design decisions. Moreover, its workload fluctuation and the impact on the expected performance and resources demands arises several additional challenges. For example, a web shop application workload can increase at certain time periods, e.g. before the Christmas season, and therefore would require the usage and configuration of concrete resources towards satisfying the expected performance. However, such configuration may generate unnecessary monetary costs in time periods with a lower performance 4 AWS RDS: 5 AWS EC2: 6 AWS Elastic Beanstalk: 7 Amazon Simple Monthly Calculator: html 8

9 demand. Optimizing the application distribution towards balancing the performancecost trade-off must be considered as a long-term collaborative task which focuses on the one hand on the evolutionary aspect of the application workload, and on the other hand ensures that the triggered resource allocations and dynamic adaptations comply with the expected service objectives. Cloud elasticity techniques aim at dynamically and automatically pulling and releasing of computational resources. However, most providers nowadays offer reactive-based elasticity features which must be configured in advance by the developer, e.g. static thresholds definition in AWS Autoscaling 8. 3 Research Challenges Providing therefore the Cloud application developers with such design support to optimally distribute and re-distribute the application to cope with fluctuating workloads and performance demands raises several challenges. Such decision support must cover the complete application life-cycle, define the underpinning concepts, and provide the required mechanisms towards targeting the analysis and evaluation of the evolutionary aspects of the application performance, e.g. its workload fluctuation. The following research challenges are identified as part of this research work: 1. How to partially or completely specify during the design phase the Cloud application topology and its performance-aware aspects. 2. Based on such specification, we must provide the techniques to derive the alternative topologies among existing Cloud offerings and prune the alternative space conforming to application performance requirements. 3. The analysis of the application workload behavior and its resource demands evolution towards 4. deriving and assessing the Cloud application developer with efficient application (re-)distribution alternatives and profitable resources configuration. 4 Work in Progress & Research Plan As a first step of this research work, we focused on three-layered applications defined in [6]. The optimal distribution of the application in the Cloud is targeted as in [2] by proposing a technology agnostic framework for deriving the multiple topology alternatives and selecting the optimal application distribution through the usage of utility-based ranking techniques. Focusing on the application performance, in [9] we identified the need to partially or completely distribute the application layers among multiple Cloud offerings to cope with application workloads fluctuations. Two approaches for analyzing the application workload behavior and evolution were identified: top-down and bottom-up. The top-down approach comprises the application workload characterization and the application behavior model derivation, before or during the deployment of the application. However, the top-down analysis approach is restricted to handling the workload evolution over time. Bottom-up approaches address this deficiency with the help of resource consumption monitoring techniques 8 AWS Autoscaling: 9

10 and performance metrics. Both top-down and bottom-up analysis approaches can be combined over time in order to support the dynamic (re-)destribution of an application topology to cope with varying resources demand [9]. Model Application Topology Enrich Topology Model Derive WL Model & Topology Alternatives Evaluate (Re-) Distribution Deployment & Production Performance Registration Monitor & Analysis Legend Performance-aware annotation Functional annotation Re-distribution Performance Evolution Fig. 2. Performance-aware Application (Re-)Distribution Process Based on the consolidation of the previous analysis approaches, we then proposed an application analysis and distribution process which can be used to enable the application (re-)distribution based on dynamic analysis of the workload [9]. As depicted in Figure 2, such process consists of several tasks: (i) modeling the application topology, (ii) enriching such topology with performance awareness, e.g. expected performance or workload behavior, (iii) deriving the alternative topologies space and the workload distribution model, (iv) pruning the alternative topologies space by using utility-based evaluation techniques and based on historical knowledge or empirical results, (v) deploying the application, and (vi) registering the application performance demands and workload behavior evolution during its production phase through monitoring techniques. We proposed the Collaborative Loop as an approach to support the (re-)distribution of the application over time to proactively react to fluctuating workloads. Implementing the toolchain required as part of this process and creating a comprehensive framework for application distribution support is our main task in ongoing work, as a number of tools are already in place both for workload analysis and application topology management. In this respect, our focus is on integrating them, rather than developing them from scratch, except from when deemed necessary, as for example in the case of defining a performance-aware deployment language and container for the Cloud. Ongoing work focus on fleshing out the individual process tasks and connecting them with the specific techniques and tools. For example, the TOSCA specification can be used for specifying the Cloud application topology and the Policy4TOSCA for indicating the non-functional aspects of the application [13]. Application workloads characteristics can be also specified using the GT-CWSL language [3]. During the application workload analysis and generation tasks, existing tools such as the Faban Harness 9 or the Rain [4] workload generator can be integrated. Driven experiments showed significant performance improvement of the application database layer when migrating its data to IaaS or DBaaS solutions, showing 9 Faban: 10

11 the latter to have the most improved performance for different workload characteristics [9]. In [8] we evaluated different caching strategies which can be utilized for mitigating the migration of the application data to the Cloud and its transparent access through a message-based middleware. Future work comprises the evaluation of the performance of the overall process when (re-)distributing, i.e. (re-)deploying the different application components. Utility-based techniques can be helpful to investigate the relationship between user preferences and application performance, as well as the usage monitoring and analysis tools and approaches. Acknowledgment This work is partially funded by the FP7 EU-FET project ALLOW Ensembles. Many thanks to Vasilios Andrikopoulos for his invaluable input. References 1. Andrikopoulos, V., Binz, T., Leymann, F., Strauch, S.: How to Adapt Applications for the Cloud Environment. Computing 95(6), (2013) 2. Andrikopoulos, V., Gómez Sáez, S., Leymann, F., Wettinger, J.: Optimal Distribution of Applications in the Cloud. In: Proceedings of CAiSE 14. Springer (June 2014) 3. Bahga, A., Madisetti, V.K.: Synthetic Workload Generation for Cloud Computing Applications. Journal of Software Engineering and Applications 4, (2011) 4. Beitch, A., Liu, B., Yung, T., Griffith, R., Fox, A., Patterson, D.A.: Rain: A Workload Generation Toolkit for Cloud Computing Applications. Tech. Rep. UCB/EECS , University of California (2010) 5. Brandtzæg, E., Mohagheghi, P., Mosser, S.: Towards a domain-specific language to deploy applications in the clouds. In: Proceedings of Cloud Computing pp IARIA (2012) 6. Fowler, M.: Patterns of Enterprise Application Architecture. Addison-Wesley Professional (2002) 7. Frey, S., Hasselbring, W.: The CloudMIG approach: Model-based migration of software systems to cloud-optimized applications. International Journal on Advances in Software 4(3 and 4), (2011) 8. Gómez Sáez, S., Andrikopoulos, V., Leymann, F., Strauch, S.: Evaluating Caching Strategies for Cloud Data Access using an Enterprise Service Bus. In: Proceedings of IC2E 14 (2014) 9. Gómez Sáez, S., Andrikopoulos, V., Leymann, F., Strauch, S.: Towards Dynamic Application Distribution Support for Performance Optimization in the Cloud. In: Proceedings of CLOUD 14 (June 2014) 10. Inzinger, C., Nastic, S., Sehic, S., Voegler, M., Li, F., Dustdar, S.: MADCAT - A Methodology For Architecture And Deployment Of Cloud Application Topologies. In: Proceedings of SOSE 14 (2014) 11. Leymann, F., Fehling, C., Mietzner, R., Nowak, A., Dustdar, S.: Moving Applications to the Cloud: An Approach based on Application Model Enrichment. IJCIS 20(3), (October 2011) 12. Miglierina, M., Gibilisco, G., Ardagna, D., Di Nitto, E.: Model based control for multi-cloud applications. In: Proceedings of MiSE 13. pp (2013) 13. Waizenegger, T., Wieland, M., Binz, T., Breitenbücher, U., Haupt, F., Kopp, O., Leymann, F., Mitschang, B., Nowak, A., Wagner, S.: Policy4TOSCA: A Policy-Aware Cloud Service Provisioning Approach to Enable Secure Cloud Computing. In: OTM 13 11

12 Domain Objects for Dynamic Service-based Applications Martina De Sanctis Supervisors: Marco Pistore, Antonio Bucchiarone Fondazione Bruno Kessler, Via Sommarive, 18, Trento, Italy Abstract. Service-based applications (SBA) are continuously called to bring upto-date, to keep pace with the evolving environments in which they operate. They must constantly manage the emerging requirements of modern systems, which are influenced by new metaphors, such as those of Cloud Computing and Internet of Things, in dynamic contexts such as those of Smart-Cities. For these reasons, it is strongly necessary for SBAs the capacity to handle the typical obstacles of largescale dynamic service environments. Models for the design of services at the best granularity level to fit all the requirements and to address, at the same time, different dependent problems (composition, adaptation, evolution, etc) are needed. The goal of this PhD thesis is, therefore, to provide a service design framework that allows developers to define services with the ability to manage the emerging requirements of SBAs, by providing flexibility, interoperability and scalability features, ensuring high performances. keywords: Service-Based Applications; Domain Objects; Service Composition; Runtime Service Adaptation; Service co-evolution; 1 Introduction The Service-Oriented Architecture (SOA) is one of the leading methodologies for distributed software development, as demonstrated by the success had by service-oriented applications. Nowadays the scenario is evolving; metaphors such as those of Cloud Computing [1] and Internet of Things (IoT) [2] are taking place. The concept of smart-cities is also spreading. In such scenarios, the centrality of services has increased, since the trend is to deliver everything as a service [1]. Moreover, always more devices are connected to the internet (sensors, mobile devices, drones, etc) and all of them are able to provide data, thus they actually are service providers. In this domain, new challenges have emerged. Service-based applications must operate in highly dynamic environments, within continuously changing contexts and manage heterogeneous and independent services, which are implemented in different technologies. This highlights the need for SBAs able to automatically adapt themselves [3]. Even though a lot of work has been done, the existing approaches of service composition [4], such as those of orchestration and choreography [5], have some crucial limitations. Most of them assumes that, during the composition requirements specification, the application designer knows the services to be composed. Moreover, the standard approaches for the services representation and composition [6] [7], such as BPEL [8], are too static to deal with the dynamism of the new emerging scenarios. Also as regards the services adaptation requirements, most of the current approaches have some limitations making them rigid, due to the use of rules-based approaches, for example, to define the adaptation points. In this settings, starting from the achievements obtained in recent years in the area of service-oriented computing, the purpose of this PhD thesis is to define a new model 12

13 for distributed service-oriented applications that adds functionalities able to manage the emerging requirements of modern systems, by ensuring flexibility and scalability features. The new model is based on the concept of Domain Objects [9]. Basically, it allows autonomous, heterogeneous and distributed services to be presented in a standard, open and uniform way. Moreover, through a partial definition of services, this model enables a dynamic incremental composition of services, performed at run-time and made possible by exploiting the concepts of fragments and abstract activities [9]. The model has been thought also for addressing services co-adaptation and co-evolution issues, in a flexible manner. On the implementation side, the model is designed to avoid the need of hardcoding everything. It takes also into account the requirements of modularity, scalability and interoperability. Our long term idea is to abstract from the concept of service for reasoning in terms of system, as our goal is to provide a framework for the system of systems [10] development. The paper is organized as follows: the problem statement is discussed in Section 2; hints of a solution are reported in Section 3, while, a research plan and a final discussion are proposed in Section 4. 2 Problem Statement We start this section with a motivating scenario, which is helpful to figure out the requirements that a SBA should have. Finally, we discuss the main challenges that we want to address. 2.1 A Motivating Scenario Considering the urban mobility domain, we focus on the urban mobility system, which is a network of multi-modal transport systems (e.g., buses, trains), services (e.g., car sharing, bike sharing, car-pooling) and smart technologies (e.g., sensors for parking availability, smart traffic lights) strongly interconnected to better manage mobility by offering smart services. A urban mobility application is made of autonomous and heterogeneous services, which are offered by different service providers, that can be composed in order to achieve specific user needs. Each service may enter or leave the system at any time, or it may change its offered functionalities, making the system open and dynamic. Moreover, changes in the system s context can affect the operation of the system (e.g., traffic jams). However these information are only known at run-time. A urban mobility application is essentially made of entities and relations between them. The entities can be organized in two main categories: (i) the service consumers and (ii) the value-added service (VAS) providers. We refer to [9] for more details on the scenario. The main requirements for a SBA, arising from such a scenario, are reported below. Openness. What if a new transportation mean or a new facilities for the on-line ticket payment enters the system? In a domain in which always more devices (of any kind) are connected to the internet, both as providers and consumers of services, a SBA must be able to conform itself to this charismatic environment in continuous expansion, by avoiding to be too much static and closed. Dynamism. What if a service provider (e.g. bank service, train service) changes the protocol of one of its services? As for the openness, the dynamism is needed to manage continuous changes, not only those related to the expansion of the environment, but also those regarding the behavior of the entities. Autonomy of the entities. What if a service, which is exploited by a VAS provider to create a new service, leaves the system? To increase the flexibility of the application, it is necessary to allow a weak coupling of service providers or, more in general, of software systems. Each entity must maintain its autonomy and, moreover, must be easily replaceable. 13

14 Context-awareness. What if the bus service is currently unavailable because of a strike, or a user changes her profile? In such a scenario, the current context knowledge is central, to allow the application to provide services in accordance with the surroundings and with the needs of the actors of the system. Adaptivity of services. What if the urban mobility application learns, by monitoring it, that the multi-modal transport solution proposed to a user is nullified because of some sudden event (e.g. an accident)? Services must be able to know if the needed conditions under which they work are violated and, in these cases, they have to be able to adapt their behavior (e.g. by providing a new transport solution). Collectivity. What if different providers want to collaborate to offer a VAS that is useful to reach a common goal shared by many users? The application must provide facilities for the collaboration between entities, in order to be able to offer services both for single consumer and for collectivity of consumers. Customization. What if a user changes her transportation preferences or she has an emergent requirement? The provided services have to be customized on the specific needs and profiles expressed by the users, instead to be statically defined. 2.2 Research Challenges In this Section, we report the main challenges and the open issues arising from the requirements that a SBA must have, as revealed by the scenario. Dynamic service composition. To ensure the context-awareness and also to allow services to be adaptive, the composition task must be performed at run-time, while the available services and the context are known. This means that it is necessary to provide a technique that allows developers to avoid to predict all the compositions combinations, by giving to the services and to the application the capabilities to be able to provide compositions dynamically and without any static pre-definition. Service co-adaptation. The adaptivity of services is fundamental in smart and dynamic environments. Thus, it needs that the adaptation task is enlarged to sets of services, which works together, to provide adaptation for collections of services related among them, besides the adaptation of single services. These challenges are addressed in the ALLOW Ensembles [11] project. Service co-evolution. The new paradigms such as the Cloud Computing and IoT imply the migration on large-scale complex service environments. Moreover, the collective aspect is essential to realize entities collaborations and reuse of services. In this context, these functionalities are the key points to optimize resources and performance. At the same time, this leads to an increase of services interdependencies by raising the challenging question of how to manage the service co-evolution inside a services collection that is treated as a whole [12]. User-centricity. Nowadays, especially with the spreading of mobile devices, users want to be more actively involved by the applications they use, rather than merely be passive users. This challenge also refers to the need of customized applications. Thus, in the development of services, it is important to take into account how to involve users by ensuring a flowing and pleasurable user experience and how to bring the user-centric principles into a formal framework. Data management. In large-scale complex service environments there is obviously a huge amount of data and metadata to manage. Moreover, these data are different in their representation and meaning, and they have to flow between different service interfaces. Data flow requirements have to be efficiently satisfied both to avoid a decrease in performances and to facilitate the communications between services exposing heterogeneous interfaces. 14

15 Services heterogeneity. Since services are developed and deployed independently by autonomous providers, by using a variety of technologies and platforms, this causes a considerable heterogeneity among services. To allow services to collaborate, this heterogeneity must be bypassed and managed in a transparent and efficient way. Flexibility and scalability requirements. The idea of sharing resources, software and information, which is inherent in the cloud computing metaphor, emphasizes the flexibility and scalability requirements of a SBA. In large-scale service environments, the management of these conditions become a challenging question. They are strongly dependent on the amounts of available services, data, and accessible resources. Today, this amounts are constantly increasing, proportionally with both the need and the difficult to guarantee flexibility and scalability. Non-functional requirements. Finally, a problem regards the non-functional requirements provision. Services, as the whole SBA, must be responsive. Moreover, the use of resources must be optimized, thus, in cloud computing context for example, the elasticity requirement is of crucial importance. In general, adequate performance must be guaranteed and maintained during all the SBA s life-cycle. These are the main challenges connected with the design of SBAs on which we pose our attention. 3 Hints of a solution In this Section, we present the domain objects conceptual model, to briefly introduce our ideas to deal with the research challenges listed in Section 2.2. Starting from the domain objects model proposed in [13], our approach mainly consists in extending it for dynamic adaptation and composition purposes, in the development of SBAs. The idea is to design services at the best granularity level for addressing the mentioned challenges and meeting all the requirements. Our goal is to allow the model to bring solutions for different dependent-problems, instead of for isolated ones. Domain Objects conceptual model. The DOs are used to model services, with their capabilities and their behaviors, in a standard, open, and uniform way. A DO is made of two layers, namely the core layer (CL) and the interface layer (IL), as shown in Figure 1. The CL is composed by an interface, a behavior and a state. The CL interface is the static one of the whole interface of a DO, as it is used at design-time to establish the relations/connections between DOs. It represents the way to build DOs hierarchies, which facilitate the services reuse and VAS provision, by building higher-level services on top of lower-level services. This static interface is made of ports, on which the DO custom events are published. The DOs connections are realized by following a publish-subscribe paradigm, which allows the model to offer flexibility, reusability and modularity. It is implemented by means of notifications of events made by a DO on its ports, and subscriptions relations made on ports of others DOs. The CL state is made of variables. These can be atomic, state transition system (STS) and of type domain object. The STS variables model the state s changes of a DO. The transitions are triggered by the events happening during the SBA s execution. The variables of type domain object, instead, represent references that a DO can have to others DO, in the DOs hierarchy. The behavior of a DO represents all the internal processes that it implements to execute its services, included the notifications and subscriptions processes. The IL shows the public interface of a DO that is divided into a static part and a mobile one. Differently from the static interface, which we defined above, the mobile one is used during the run-time execution of a SBA and it is inspired to the code mobility metaphor. It exposes all the fragments belonging to the DO. Each fragment is a process representing a specific functionality. These fragments are used during the execution phase, when services 15

16 compositions are built, by performing dynamic relations between DOs. They can be moved across the DOs, during the dynamic functionalities execution. The difference between the behavior in the CL and the fragments, both implemented as processes, is that the fragments are used to externally expose the protocols which have to be performed to execute the DO services, which are modeled by the behavior s processes, to make these services dynamically exploitable by other entities in the system. This connection between fragments and internal behavior is modeled by the relation interacts, which links the IL with the CL. To understand how the fragments are used, we need to know how the processes/fragments are modeled. In the right side of Figure 1, the process model is shown. For lack of space, we focus only on its most relevant aspects. A process is a sequence of activities, which can be of different types and can possibly be annotated. The activities annotations are defined upon the state of the DO. The novelty is the use of abstract activities within the processes. An abstract activity is defined only by the goal that it needs to achieve. When used within fragments, thus services, these are made dynamic because the abstract activities definition is made at design-time while, their refinement happens at run-time, by replacing them with the composition of different fragments. In our approach, the idea is to model the refinement process of an abstract activity by exploiting the adaptation engine of [14], which provides to the application the fragments to be composed on the basis of the goal of the abstract activity and by implementing the adaptation techniques exposed in [15]. Fig. 1. Domain Objects Conceptual Model. 4 Research Plan In this Section we present the research plan of this PhD thesis by listing the steps that we intent to approach. They refer to the problems and the corresponding ideas for the solutions discussed in Sections 2 and 3, respectively. Step 1. Detailed comparison between the Domain Objects model and classic servicedescription languages (BPEL, REST, WSCDL etc.). Step 2. Definition and formalization of a dynamic and incremental service composition technique. [9]. 16

17 Step 3. Definition and specification of the data-flow model. Starting from the work made in [16]. Step 4. Formalization and application of all the dynamic adaptation techniques exposed in [15] over the DOs model. Step 5. Definition and formalization of techniques for collective adaptation [11]. Step 6. Extension of the DOs model to deal with the service co-evolution requirements. Step 7. Extension of the Smart Campus platform [17] with the DOs model for adaptation requirements. Step 8. Extension of the DOs model for non-functional requirements to achieve performance improvements results. Discussion. The expected result of this PhD thesis is to provide a complete framework for the design and execution of services, by implementing the DOs model. The framework will allow services, both atomic and VASs, to be presented in a standard, open and uniform way, to better fit the composition, co-adaptation and co-evolution requirements. The idea is to apply the domain objects to the smart mobility domain, as a starting point. Finally, starting from these results, our long term goal is to make compliant the framework, as well as the DO concept, for the system of systems management. References 1. Pallis, G.: Cloud computing: The new frontier of internet computing. (2010) Atzori, L., Iera, A., Morabito, G.: The internet of things: A survey. (2010) Di Nitto, E., Ghezzi, C., Metzger, A., Papazoglou, M.P., Pohl, K.: A journey to highly dynamic, self-adaptive service-based applications. (2008) Bartalos, P., Bieliková, M.: Automatic dynamic web service composition: A survey and problem formalization. Computing and Informatics 30(4) (2011) Peltz, C.: Web services orchestration and choreography. IEEE Computer 36(10) (2003) Sun, L., Dong, H., Ashraf, J.: Survey of service description languages and their issues in cloud computing. In: SKG. (2012) Pautasso, C.: Restful web service composition with bpel for rest. (2009) OASIS WSBPEL Technical Committee: Web services business process execution language, version 2.0. Available at (2007) 9. Bucchiarone, A., De Sanctis, M., Pistore, M.: Domain objects for dynamic and incremental service composition. ESOCC - European Conference on Service-Oriented and Cloud Computing (2014) 10. Henson, S.A., Henshaw, M.J.D., Barot, V., Siemieniuch, C.E., Sinclair, M.A., Jamshidi, M., Dogan, H., Lim, S.L., Ncube, C., DeLaurentis, D.: Towards a systems of systems engineering eu strategic research agenda. In: SoSE. (2013) ALLOW Consortium: Allow ensembles. Available at Andrikopoulos, V., Benbernou, S., Papazoglou, M.P.: On the evolution of services. (2012) Bucchiarone, A., Marconi, A., Pistore, M., Traverso, P., Bertoli, P., Kazhamiakin, R.: Domain objects for continuous context-aware adaptation of service-based systems. In: ICWS. (2013) Raik, H., Bucchiarone, A., Khurshid, N., Marconi, A., Pistore, M.: Astro-captevo: Dynamic context-aware adaptation for service-based systems. In: SERVICES. (2012) Bucchiarone, A., Marconi, A., Pistore, M., Raik, H.: Dynamic adaptation of fragment-based and context-aware business processes. In: ICWS. (2012) Kazhamiakin, R., Marconi, A., Pistore, M., Raik, H.: Data-flow requirements for dynamic service composition. In: ICWS. (2013) SmartCampus Lab: Smart campus: Services with and for people. Available at 17