THE ECOS LAB

Project Description


The OCCP project aims at delivering a Cloud architecture for the mashup of distributed applications.


The Context


Cloud computing is the result of evolution and adoption of existing technologies and paradigms. The goal of cloud computing is to allow users to take benefit from all of these technologies, without the need for deep knowledge about or expertise with each one of them. The cloud aims to cut costs, and helps the users focus on their core business instead of being impeded by IT obstacles. In particular, Cloud computing adopts concepts from Service-oriented Architecture (SOA) that can help the user break business problems into services that can be integrated to provide a solution.


Cloud computing provides all of its resources as services, and makes use of the well-established standards and best practices gained in the domain of SOA to allow global and easy access to cloud services in a standardized way. The OCCP project focuses on the SaaS (software as a service) layer. In the business model using software as a service (SaaS) is sometimes referred to as “on-demand software” and is usually priced on a pay-per-use basis or using a subscription fee.


The Objective


The objective of this project is to investigate the possibility to create new cloud applications by merging existing ones (SaaS Factory) simply defining the composition logics. However, the idea is to overcome the static approach to business models (i.e. the workflow model), but rather to investigate autonomous, proactive and self-adaptive approaches to the composition/orchestration problem. The solution will come by adopting a goal-oriented methodology, semantic description techniques and, finally, artificial intelligent algorithms.

IPublic srl – Capofila e Partner Industriale Contatto: Antonio Miroddi Via D. Di Marco 9, 90144 Palermo, Italy

Ecos Lab - ICAR-CNR Coordinatore Scientifico: Massimo Cossentino Via Ugo La Malfa n.153, 90146 Palermo, Italy

T.A.D - Partner Industriale: Contatto: Maria Letizia Ciuro Via Ugo La Malfa 62, 90146 Palermo, Italy

IT&T srl - Partner Industriale Contatto: Giuseppe Bono Via D. Di Marco 9, 90144 Palermo, Italy


The Approach


The main concepts are:

  1. decoupling WHAT the system is expected to do from HOW the system could do that
  2. the analyst is responsible of creating a model of (goal-oriented) requirements and to inject it into the system at run-time
  3. the dev team is a team of developers and maintainers of set of capabilities (each capability is a proxy between the system and an external service)
  4. when a goal is injected then the system organizes a coherent solution to address user specifications

The language for specifying user-goals


To date, BPEL is one of the most used standards for implementing the orchestration of services. Even if workflow-based languages are greatly supported by industry and research, their approach reveals being static and not easy to extend for supporting some advanced features as, for example, run-time modification of the flow of events, dynamic hierarchies of services, integration of user preferences.

Moreover, it is not easy to provide a system for run-time execution, rescheduling and monitoring of activities that is also able to deal with unexpected failures and optimization.

We have adopted a goal-orientated approach for making user-requirements explicit in the system thus breaking the strict coupling among activities of the workflow.

The literature agrees in defining a goal as a state of affair that an actor wants to achieve. In order to make the system able to reason on the state of affair we introduce a first-class entities called State of the World (W). It is a dynamic object that describes the current “state of affair” as a set of non-contradictory first-order logic facts. W describes a closed-worlds with the assumption that everything that is not explicitly declared is assumed to be false.

Therefore, we introduce the concept of user-goal as desired change in the state of the world an actor wants to achieve. In the proposed approach a goal describes the starting state and the final states in terms of states of the world. A user-goal is injected into the system at run-time (and therefore it not known a-priori by agents).

GoalSPEC is a language designed for specifying user-goals and, at the same time, enabling at the same time goal injection and software agent reasoning. It takes inspiration from languages for specifying requirements for adaptation, such as RELAX [1], however GoalSPEC is in line with the definition of goal.

The language is based on structured English and it adopts a core grammar with a basic set of keywords that must be extended by plugging-in a domain ontology.


The core element of the metamodel is the Goal (desired by some subject). It is composed of a Trigger Condition (TC) and a Final State (FS). The trigger condition is a condition that must hold in W in order to start acting for addressing the goal. The final state is the desired state of the world that must be addressed and therefore is represented as the condition that must hold in W in order to assert the goal has been addressed.

An example of goal is:

WHEN received_order(Order,User) THE system SHALL PRODUCE completed(transaction)


The template for developing capabilities


The effect of decoupling WHAT and HOW dimensions is that of specifying separately objectives (goals) and opportunities (Capabilities). A capability is an atomic and self-contained action the system owns and knows to own. The effect of a capability is an endogenous evolution of W.


In AI, the need for representing software agent’s actions in order to implement reasoning directed towards action is a long-dated issue [2, 3, 4, 5]. An agent is able to achieve a goal by doing an action if either the agent knows what the action is or it knows that doing the action would result in the goal being satisfied [2].


Self-Organization and Self-Adaption


………… TODO

References


  1. Whittle, P. Sawyer, N. Bencomo, B. H. Cheng, and J.-M. Bruel, “Relax: Incorporating uncertainty into the specification of self-adaptive systems,” in Requirements Engineering Conference, 2009. RE’09. 17th IEEE International. IEEE, 2009, pp. 79–88.
  2. R. C. Moore, “Reasoning about knowledge and action,” Ph.D. dissertation, Massachusetts Institute of Technology, 1979.
  3. Y. Lesperance, “A formal account of self-knowledge and action.” in IJCAI. Citeseer, 1989, pp. 868–874.
  4. M. J. Wooldridge, Reasoning about rational agents. MIT press, 2000.
  5. L. Padgham and P. Lambrix, “Formalisations of capabilities for bdi-agents,” Autonomous Agents and Multi-Agent Systems, vol. 10, no. 3, pp. 249–271, 2005.