Motivation
Project motivation
Project motivation
Although many efforts have been devoted in the projects and initiatives mentioned above there is still a large number of unsolved questions that require a significant research effort and in some cases a completely new and disruptive vision. This project will propose a new programming paradigm for open distributed systems that addresses some of these unsolved questions. It will perform fundamental research on a large number of functional and non functional aspects:
Semantics. The openness in the development of agents/components/services creates the need for semantic alignments between different ontologies. Although standards are in place for ontology representation (e.g. OWL) there is still no scalable solution on how to automate the alignment of semantics, and also Rule-based Languages for properly defining such alignments are still on W3C’s agenda.
Resource management. Many task solutions require the recruiting of agents to form teams, as in the mHealth case study or in rescue scenarios. How many agents are involved and what tasks are associated to each one of them are difficult questions. Traditional planning systems and balancing algorithms are not well adapted to the high dynamics and uncertainty of the environments.
Dynamicity. The way components/agents/services interact depends on two types of dynamicity. First, networks evolve, new nodes appear and nodes disappear. Second, the rules of the game that regulate the interaction between agents might change by decisions of the members of an organization. Therefore, the structure of the organization, the established agreements, the responsibilities and the workflow structure might need to be changed.
Adaptability. Agents have a behaviour that may change over time. There may be different normative contexts within which to reach agreements, and also conventions and norms regulating a particular agreement context may change along time. These and other considerations require that the code of agents be highly adaptive to its environment conditions. However, current approaches to code verification still rely on static verification techniques. Adaptive code is a need for the deployment of open distributed applications.
Workflow. The influence of business process analysis (e.g. BPEL or BPEL4WS) in system architectures has brought into the software engineering arena the need to define software according to a detailed workflow analysis that regulates the activities and the combination of roles in an organisation as well as their associated data flow. However, there are no declarative semantics of the obligations and prohibitions over roles, or over the combination of components. This is a handicap for the necessary decision making that in an open system an entity needs to perform in order to decide how to navigate through the workflow.
Composition. Most programming languages and methodologies base their semantics on a compositional view of code. Knowing the behaviour of the components, and how they are combined, we can know the overall behaviour. This approach is to a large extent not applicable to open systems where the behaviour of the components cannot be predetermined from the content of a call. First, the behaviour of an entity is determined by the normative context and the agreements signed, that are not completely determined at component definition time. Second, even when agreements are signed, the behaviour of the agents might not be completely determined as their autonomy and selfishness might cause them not to honour their commitments if there is a potential gain in doing so. New and radically different approaches are required to deal with this.
Scalability. Most scalable solutions for very large distributed applications rely on a shared fixed ontology (e.g. for music in Napster, or for phone calls in Skype), however there is no technological answer for cases where ontologies are diverse and a need for alignment is required. How a network can be hastily formed when the nodes are semantically heterogeneous is still an unanswered question. Also, most current software platforms scale badly and none has real-time properties. These pitfalls have been a barrier to the transfer of agent technologies to industry.
Security. There are several issues related to security over open networks. First is how to guarantee identity, and this is to a large extent solved by cryptographic methods. Second is how to guarantee behaviour. For this second aspect some promising recent research has been made through the concept of Proof Carrying Code, in which mobile code brings within itself a property of behaviour and the proof that the code satisfies the behaviour. Code and properties are input to compilers that generate code and certificates that permit to verify that the code has not been tampered. However, when the code is not mobile, as in the area of web services (where the service is executed remotely), the possibility of fraud and malevolent behaviour creates a security threat to applications. No definitive solution has been found yet.
Usability. The monitoring and debugging of open distributed applications is a difficult task and the tools existing nowadays are extremely poor.
Moreover the project will develop applied research in the form of tools and systems:
Algorithms. A number of algorithms will be developed as a consequence of the fundamental research. For instance, algorithms for negotiation, persuasion, argumentation, compilers between norm representation formalisms, semantic aligners, or an agreement planner.
Methodology. A complete methodology for developing software following the new programming paradigm of norm/agreement/call-by-agreement will be proposed and fully tested in the three highly complex case studies proposed. Graphic tools supporting the methodology will be generated by the project.
Toolbox. The building of an open distributed system will require a number of different tools that the engineer will use to specify, verify and test the applications. Also the infrastructure to run those applications, that is, the overlay global computer, will be provided by the project.
Finally the project will apply the tools and theories to build demonstrators for the three case studies that are selected as exemplar of open distributed systems: eProcurement (for electronic procurement), mWater (for water usage dispute resolucion) and mHealth (for health support to mobile citizens).