Research
The objective of the research unit is the study and the development of advanced methodologies and techniques for the engineering of software applications based on a service-oriented paradigm. In particular, the unit will build on top of the state of the art just described and of the results achieved in the last years, targeting three specific research objectives.
- To consolidate and extend the methods and techniques for the composition of distributed business processes developed within the ASTRO research project.
- To develop novel approaches that allow end-users to be in charge of service composition, i.e., to provide usable, user-centric mechanisms for allowing the end-user to control the selection, configuration and composition of services according to their needs and requirements, without requiring them to understand the technical aspects of services and service composition.
- To promote Service Level Agreements as the central concept for guiding the development of service oriented applications and for allowing the adaptation and evolution of such applications.
These three objectives, which are complementary and strongly synergic, correspond to the three activities detailed in the next section.
In the following, we detail these three research activities in turn:
Distributed business processes
This activity addresses one of the major challenges for the industry-wide adoption of Web services: the automated composition of distributed business processes, i.e., the development of technology, methods and tools that support an effective, flexible, reliable, easy-to-use, low-cost, and time-efficient composition of electronic distributed business processes. This activity builds on top of the results achieved within the ASTRO project (www.astroproject.org), which goal is to develop solutions supporting the composition of distributed business processes during their lifecycle, from design to run-time, i.e., methodologies and automated or semi-automated tools that support the specification and design of services and enable the composition of distributed business processes [10].
The idea is that such tools should support the engineer during the entire business process lifecycle, from analysis to execution. They should automatically perform the time consuming and error prone task of analyzing business processes in detail, discovering and selecting suitable external services, detecting problems in the interactions, searching for possible alternative solutions, monitoring execution step by step, and so on.
This activity aim at supporting both the design time, i.e., on the off-line phase of the definition and specification of business processes, and the run time, i.e., the execution of a business process, e.g., by monitoring processes against business requirements, which become a key element of the run-time environment. As a consequence, an operational business system can be seen as the (executable) union of a business process with its business requirements, rather than the output of a coding phase following analysis and design. We envision an environment for business process modeling and execution where the distinction between ''design time'' and ''run-time'' is blurred. In this environment, the designer can defer to the run-time decisions on how to carry out a given process or on how to achieve a goal; conversely, the run-time environment can detect failures in achieving goals, for instance due to unforeseen changes in the business domain, and can trigger a redesign phase. The target development framework is therefore based on design environment, where the human driven re-design and the supporting automated techniques concur to the achievement of the strategic goals in a service oriented world.
Within this activity, the effort in the next years will be focused in particular in two directions. The first one is to find effective ways to add "semantic" annotations to distributed business processes, i.e., annotations that are oriented to make as unambiguous and as rigorous as needed the meaning of the data and of the procedures exploited in the business processes. Differently from current approaches, such as those based on OWL-S and WSMO, that, in spite of their expressive power, are hard to use in practice since they require comprehensive and usually large semantic descriptions of the domain, the approach that we intend to follow is based on a "minimalistic" usage of semantic annotations [11]. That is, we will pursue approaches that reduce to the minimum the usage of semantic annotations – we stop as soon as the semantic annotations are good enough for the configuration and composition task at hand.
The second research direction is the definition of a mixed-initiative and semi-automated development process for service composition which allows the user to control the composition task, automating however most of the lower level and error prone steps of this task.
[10] Trainotti, M.; Pistore, M.; Calabrese, G.; Zacco, G.; Lucchese, G.; Barbon, F.; Bertoli, P.; Traverso, P.: ASTRO: Supporting Composition and Execution of Web Services. ICSOC 2005.
User-centric services
In the last few years, the very rapid evolution of mobile technologies has led to the mass-market adoption of mobile phones, which increasingly integrate powerful connectivity capabilities, multimedia functionalities, as well as a variety of applications such as agendas, organizers, personal assistants, and address books. Such mobile phones are much more than just voice communication devices and, already now, most of the users take advantage of their additional connectivity and multi-media functionalities.
One of the most interesting features is that such technology-rich mobile phones have the unique potential to act as portable gateways for their users, connecting them to a universe of "mobile services", ranging from personal management services, to internet services, and to services pervasively located in the environment. This paves the way to a huge marketplace of mobile services, whose enormous potential has been clearly recognized by the industry, as witnessed by the increasingly fast growth in the amount and diversity of services available to mobile phones. Just to make a few examples, DB, the German railway company, delivers train tickets directly to the phone; Lufthansa advices frequent flyers on the time to leave to the airport and on delays of the flights; in Japan mobile phones are already used as payment cards.
However, so far, the user is left alone with the task of combining available services in order to fully exploit their potential in an integrated way. For instance, the phone may contain a train ticket with the time of travel, and yet, if this information is not shared with the calendar application, the user may easily schedule an appointment for a time in which she is supposed to be traveling. Due to the rapid growth of the range of available mobile services, taking care manually of their combination is more and more an unbearable burden, and often a practically impossible task, for the user. Paradoxically, the more services become available, the less they are likely to be effectively exploited by the user.
The challenge addressed in this activity is to enable the mobile phone to take care of the burden of the combination of services, starting from simple user's constraints and requests. The goal is to make the mobile phone a simple yet extremely powerful tool that allows the user to keep control of the combination and exploitation of the services, while relieving her from the technical burden of composing them in a coherent picture. This will be achieved trough a novel approach to service composition that is centered on the user, her activities and her goals.
We define "user centric" service composition as an approach to the combination and harmonization of the services available to the mobile user, where the services become part of the user's activities, constraints, and goals rather than remaining isolated. Referring back to the example of the DB train ticket, a user-centric service composition system would interpret the buying of the train ticket as the indication that the user will be traveling at a given date, and it would automatically update the calendar application and look for other relevant added value services, such as travel services like hotel bookings.
Within this activity, we intend to investigate the scenario just described, developing novel theories and techniques to support the design and execution of user-centric service compositions. While the short goal is to provide solutions for the specific case of services available through mobile phones, on the longer term we intend to investigate the applicability of the same approach also to other kinds of services and interaction devices.
Service Level Agreements
Service oriented applications are developed by composition and configuration of services, i.e., "software components that can be used but that are not owned". Services are most often not under control of consumers. They are indeed made available by third parties, they are autonomously developed and managed, and can in principle change without notification. Service Level Agreements (SLAs) define the exact conditions under which services are provided and consumed. From the point of view of the consumer, SLAs make explicitly available all the technical information required for using a service: interfaces and data structures, interaction protocols, security-related information, quality of services parameters and so on. They are therefore key elements for the development of service oriented applications. The objective of this activity is to investigate one of the most interesting open challenges in the area of services and of SLAs: how to enable the usage of SLAs to support service adaptation and evolution. We see in particular two key roles that SLAs can play to this purpose, namely "SLAs for monitoring" and "SLAs for adaptation".
Since services are not under our control, the run-time monitoring of SLAs becomes a compelling requirement for software based on services. While some of the information required by the user to monitor the third-party services are directly observable (e.g., the fact that the service is respecting the interaction protocol described in the SLA), other information is not. This leads to a first challenge for the development of service-centric systems. Just for the sake of monitoring, SLAs should require the provider to "expose" information and processes that are not required to be accessible by external consumers otherwise. That is, we should conceive and design "SLAs for monitoring", i.e., SLAs that make available to external users data and procedures that the business logic would not require to be visible. Monitoring SLAs becomes the key activity that triggers the evolution of service centric systems. The need for evolution may arise from monitoring a violation of SLAs, e.g., the violation of a property on the quality of service, which is required by the consumer. If there is no more agreement, then there is a need for change. More in general an evolution can be triggered when monitoring reveals situations of particular interest, e.g., for the business analyst, like a decrease in sales and income.
The need for adaptation exposed by monitoring SLAs can be satisfied either at run-time, with techniques resembling autonomic computing, or may require a re-design of services, or even a rethinking of the business strategies. Monitoring can reveal problems and activate an autonomic self-modification and adaptation , or can provide information to business analysts, information that can reveal problems or changes in markets and business needs. Business analysts can use this information to re-define the business process reflecting the market evolutions. A second challenge for the development of SLA-based service oriented applications is hence the design of SLAs that support as much as possible the autonomic adaptation and evolution of services ("SLA for adaptation"). Describing in SLAs the possibilities of autonomic adaptation of services is however a very delicate activity. On one side, it should provide as much flexibility as possible, to allow for adaptation also to situations that are not foreseen at service design time. On the other hand, it is of uttermost importance to define clear bounds to the adaptation of systems: there are aspects and behaviors of the service oriented applications, in particular those related to the business strategies, which should not be changed automatically independently from the level of "optimization" that the autonomic system predicts to achieve.
The objective of this activity is the realization of the "SLAs for monitoring" and of the "SLAs for adaptation" approaches just described. This includes the definition of an environment for the development and evolution of service oriented applications where the designer can defer to the run-time decisions on how to carry out a given process; conversely, the run-time environment can detect failures in performing the business process, for instance due to unforeseen changes in the business domain, and can trigger a redesign phase. During redesign, the overall model of the business application is updated, in order to reflect the changes in the domain (or in the strategic goals of a partner); decisions and procedures may now be fixed by the designer and, conversely, design decisions may be relaxed in order to give more flexibility to the run-time. In this framework, a redesign is not destructive with respect to the run-time: on the long term we envision a "continuous design" environment, where the human driven re-design and the supporting automated techniques concur to the achievement of the strategic goals in a service oriented world.
