Literature dealing with both environment and agent-oriented methodologies is not abun- dant. Work of that sort is usually more focussed on sociality features, so they typically present some comparison among methodologies (one example is in [87]) and simply point out whether a methodology supports the concept of environment or not. As an example in [203] a good framework for the evaluation of the methodologies is presented, accounting for a large number of agent features (organisations, roles, beliefs, desires and so on) as well as some criteria for the evaluation of the development process: however, environment is not considered at all.
At the same time, so little research has been devoted to the issue of how to introduce the notion of environment in a methodology—an AO methodology, in particular. To the best of our knowledge, there is only one work [45] investigating how to introduce
an environmental model in a methodology. The methodology considered there is O-
MaSE (Organisation-Based Multiagent System Engineering [42]), an evolution of MaSE dealing with the design of organisational MAS. The authors describe an approach to the modelling of MAS interactions with its environment: the key concepts in their approach are capabilities and the environment model. In particular, the environment is modelled as a set of objects/agents, and a set of relations between such objects/agents. Through a set of capabilities belonging to agents, agents have access to a set of operations that they may perform upon environment objects, whose effect is governed by environmental laws. This work is obviously very interesting in this context, and in the conclusions the authors argue about a possible integration of the concepts of their AEI (Agent-Environment Interaction) Model into existing methodologies. However, they do not specify how to introduce their key concepts into other methodologies, so their approach turns to be too strict in scope. Also, even in principle, such a process looks not so easy: in fact, the meta-model of AEI is largely tailored upon the MaSE meta-model, and some of the elements implicitly require
the MaSE specific agent model. As a result, the introduction of environment according to AEI seems to be potentially invasive, since it would involve the creation of a new model for the environment, and also affect the agent model: in fact, adopting the AEI meta-model would tie agents with the concept of “capabilities”, thus requiring a substantial change to the original agent model of the methodology to be extended. Even more, AEI does not consider topology at all.
Another interesting work is the methodology proposed by Simonin and Gechter [198] that establishes the link between the representation of the problem, expressed as environ- mental constraints, and agent behaviours, which are regulation items of the environmental perturbations. The environment is modelled by means of the definition of its structure (the topology) and the laws that govern its dynamics. Then no environment abstractions are considered by the methodology for representing the environment, so it is not clear how and where the environment laws are enforced.
Finally, also the work on methodology fragmentation conducted by IEEE-FIPA Method- ology Technical Committee [63] is very interesting in our enviroment-AO perspective. In fact, the Committee has developed a method for assembling pieces out of the method- ology processes starting from a meta-model of methodologies. An interesting fragment [1] is provided by the ADELFE methodology: there, in fact, the environment model is extracted from the methodology, and a new fragment is create. However, the fragment uses the specific environment abstractions adopted by ADELFE, which appear not gen- eral enough to be widely applied to other methodologies. In addition the fragment is not yet well documented, and it is then not so clear what is actually needed for merging the fragment within a methodology.
9.5
Summing up
This chapter has proposed a possible method for introducing the treatment of environment in no-env methodologies—thus transforming them in weak-env methodologies; afterwards, it has shown how to transform weak-env methodologies into strong-env methodologies. To this end, the chapter has shown how to exploit artifacts as general-purpose environment abstractions, and workspaces as abstractions for modelling topologies. These abstractions
have already been fruitfully used in a strong-env methodology like SODA [144].
The adption of this method seems easy and immediated as the above examples (Sub- section 9.2.4 and Subsection 9.3.4) have shown. In addition this method is potentially applicable to every AO methodology, since it does not require many changes: the only modifications required concern the design of the interaction protocols that tie the agents to the environmental entities, and obviously also the insertion of the proposed environmental models into all the phases of the methodology to be extended.
10
AOSE & Infrastructures
Today, infrastructure is a fundamental notion for complex systems in general, not only in computer science and engineering, but also in the context of organisational, political, economical and social sciences [148]. A large class of distributed systems need not to be built from scratch but can exploit infrastructures to resolve heterogeneity and dis- tribution of the system components. The software engineering challenges lie in devising methodologies, notations and tools for distributed system construction that systemati- cally build and exploit what infrastructure products will deliver. However, to the best of our knowledge, no work in the literature – traditional software engineering and AOSE – explicitly deals with the identification of how the infrastructure impacts on the software engineering process. This appears very strange because the presence of a specific infras- tructure could influence the engineering process. For example, an engineer could design or could not design specific functions according to the services / functionality provided by the infrastructure. This is specially true in the context of on-line engineering where the infrastructure’s abstractions have a great impact on the engineering process.
In the last years, research on AO methodologies and multi-agent system (AO) infras- tructures has developed along two opposite paths: while AO methodologies have essen- tially undergone a top-down evolution pushed by contributions from heterogeneous fields like human sciences, AO infrastructures have mostly followed a bottom-up path growing from existing and widespread (typically object-oriented) technologies. This dichotomy has produced a conceptual gap between the proposed AO methodologies and the agent infrastructures actually available, as well as a technical gap in the MAS engineering prac- tice, where methodologies are often built ad hoc out of MAS infrastructures, languages and tools. This chapter presents the infrastructures research field in order to provide an overview of the state the art for both the traditional – often called middleware – and AO infrastructures. In addition, this chapter provides the meta-modelling representa- tion of several AO infrastructures: by allowing structural representation of abstractions to be captured along with their mutual relations, meta-models make it possible to map design-time abstractions from AO methodologies upon run-time abstractions from MAS technologies, thus promoting a more coherent and effective practice in MAS engineering. On one hand, this approach allows software engineers to investigate the depth of the gap
between specific couples of methodology and infrastructure, so they could choose the one with the smaller gap. On the other hand, this approach allows software engineers to create new methods for filling the gap between methodogies and infrastructures.
So, the reminder of this chapter is structured as follows. Section 10.1 presents some general definition of infrastructures. Section 10.2 discusses the peculiarities of the infras- tructures for MAS, while the relationships between infrastructures and Software Engineer- ing and between infrastructures and AOSE are depicted respectively in Section 10.3 and Section 10.4. Then, Section 10.5 presents some example of agent-oriented infrastructures, finally conclusions are reported in Section 10.6.
10.1
Definitions
In its most general sense, an infrastructure is defined as:
Merriam-Webster – (1) the underlying foundation or basic framework (as of a system or organisation) (2) the permanent installations required for military purposes; (3) the system of public works of a country, state, or region; also: the resources (as personnel, buildings, or equipment) required for an activity;
Cambridge – (4) the basic systems and services, such as transport and power supplies, that a country or organisation uses in order to work effectively;
The American Heritage – (5) the basic facilities, services, and installations needed for the functioning of a community or society, such as transportation and commu- nications systems, water and power lines, and public institutions including schools, post offices, and prisons.
Every definition underlines the role of infrastructure as (part of) the environment that provides basic resources and critical services to complex systems (such as organisations, communities, societies, countries) living on top of it. In particular, definition (2) remarks that an infrastructure is a persistent entity: once installed, an infrastructure typically survives the many systems it supports. Also, definitions (4) and (5) remark on the key role of infrastructures: their services typically cover critical system issues, and provide features that individual system components could not afford to provide or obtain elsewhere. In the context of MAS, infrastructure obviously plays a key role, given the potential complexity of both the system components (agents) and the component interplay (agent societies). Gasser [70] defines an infrastructure as:
“a technical and social substrate that stabilises and rapidly enables instrumen- tal (domain-centric, intentional) activity in a given domain. . . (solving) typi- cal, costly, commonly accepted community (technical) problems in a systematic and appropriate ways”
Here, it is important to emphasise the notion of infrastructure as a social, enabling support for providing MAS with cheap and systematic solutions to common problems. Another interesting definition is provided by Sycara et al. [205]:
“Agents in a MAS are expected to coordinate by exchanging services and in- formation, to be able to follow complex negotiation protocols, to agree on com- mitments and to perform other socially complex operations. We define the infrastructure of a MAS as the set of services, conventions, and knowledge that support such complex interactions.”
The stress is here on the support of complex agent (social) interplay, which is expressed in terms of services, convention and knowledge.