Abstract
Intelligent agents and multi-agent systems are increasingly recognized as an innovative approach for analyzing, designing and implementing complex, heterogeneous and distributed software applications. The agent-based view offers a powerful and high level conceptualization that software engineers can exploit to considerably improve the way in which software is realized. Agent-based software engineering is a recent and very interesting research area. Due to its novelty, there is still no evidence of well-established practices for the development of agent-based applications and thus experimentation in this direction is very important. This dissertation presents CaseLP (Complex Applications Specification Environment based on Logic Programming), an experimental environment based on logic programming for rapid prototyping of agent-based software applications. CaseLP provides developers with a prototyping method and a set of tools and languages which allow for the realization of an executable prototype of a software application as a society of interacting agents. A prototype is built along three dimensions: task organization, knowledge organization and interaction organization. Task organization concerns the specification of tasks performed by the prototype, the distribution of tasks among agents, the services that agents provide and request to accomplish their tasks. CaseLP provides tools for task organization: an architectural description language is adopted to describe the prototype in terms of agents classes, instances, their provided and required services, and their communication links. Knowledge organization concerns the description of knowledge that agents must manipulate and use in order to behave properly in order to execute their services. Ontologies are used in CaseLP to explicitly structure the knowledge within the prototype’s application domain, as well as to unambiguously describe characteristics and properties of agents. A rule-based language is used to define procedural knowledge of reactive and/or proactive agents. Interaction organization concerns the way agents interact with each other. A tool for conversation description is used in CaseLP to define the sequences of messages that are exchanged to provide any service, and the hierarchical relationships among sequences. Prototypes are implemented in an extended Prolog-like language. Visualization and simulation tools are included in CaseLP to visualize and trace a prototype execution and to collect statistics on it. The dissertation also investigates the use of high level specification languages to describe sophisticated agent architectures. A linear logic language is used to specify a BDI architecture. An imperative language for the specification of heterogeneous agent architectures is presented and discussed. These two languages have still to be fully integrated into CaseLP but represent good candidates to be used in the CaseLP method when the specification of specialized agent architectures is needed. The research on CaseLP has been undertaken with two main objectives. Our first goal was showing that logic programming facilitates the realization of an environment for the development of agent-based prototypes. The second goal was to demonstrate that such an environment can be effectively used for the rapid prototyping of complex real-world software applications. We argue that CaseLP is a good example of how the first goal can be satisfied; the prototyping, in CaseLP, of some real-world case-studies is the demonstration of the applicability of our environment. In particular, the dissertation presents in details KICKER, a prototype for a decision support system to be used by European traffic operators in the management of freight trains movements between inter-modal centres and yards. KICKER is a project in co-operation between the Information Systems Division of Italian Railways (FS S.p.A.) and the Computer Science Department at the University of Genova, Italy.