23.08.2015 Views

Here - Agents Lab - University of Nottingham

Here - Agents Lab - University of Nottingham

Here - Agents Lab - University of Nottingham

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Given an organization model, it is possible then to define concrete organizationsthat implements the model and eventually specify the initial configurationby instantiating the components (artifacts, agents) specified in it 6 . An example<strong>of</strong> organization definition is shown in Fig. 5 (on the right), sketching the definition<strong>of</strong> an ACMESmartHome concrete organization. A simpAL program in executionis a running instance <strong>of</strong> an organization.As a final remark, the notion <strong>of</strong> organization used here is not meant to be asrich as to one which appears in MAS organization modelling: the main objective<strong>of</strong> introducing this concept here is to have a way to define rigorously the structurethe overall multi-agent program and to introduce some typing also at this levelin order to check errors at compile time related to the implementation <strong>of</strong> theoverall program structure.4 Concluding RemarksThe definition <strong>of</strong> a notion <strong>of</strong> type for agents, artifacts and organizations makesit possible to clearly separate the specification from the implementation, gettinga first kind <strong>of</strong> substitutability. In particular, in every context <strong>of</strong> the programwhere an agent playing some role R is needed, we can (re-)use any concreteagent equipped with a script – whose source code can be unknown, having onlythe compiled version – implementing the role R. Also, in every context <strong>of</strong> theprogram where an artifact providing the functionalities described by the I interfaceis needed, we can (re-)use any concrete artifact instance <strong>of</strong> an artifacttemplate implementing the interface I. This allows a first level <strong>of</strong> reuse andevolvability, without the need <strong>of</strong> having the source codes. Improved version <strong>of</strong>the implementation <strong>of</strong> agents and artifacts implementing some roles/interfacescan be introduced without doing any change in the other components that interactwith them —if the roles and interfaces are not changed.Indeed this is just a first step towards fully supporting the principle <strong>of</strong> substitutability,as defined in the context <strong>of</strong> OOP [17]. This requires the definition<strong>of</strong> a proper subtyping relationship, to define roles/interfaces as extensions <strong>of</strong> existingones. This is part <strong>of</strong> our future work, exploring subtyping as a mechanismproviding a sound and safe way to conceive the incremental modification andextension <strong>of</strong> agents/artifacts and their conceptual specialization.Other important works in our agenda include: the definition <strong>of</strong> a proper formalmodel <strong>of</strong> the type system described in this paper – following a previouswork introducing a core calculus for agents and artifacts [4] – so as to rigorouslyanalyze its properties; and the improvement <strong>of</strong> typing for messages and communicationprotocols, eventually exploiting results available both in agent-orientedprogramming literature and outside, such as the work on session types [7].Finally, many <strong>of</strong> the concepts and abstractions on which simpAL is basedcan be found also in agent-oriented s<strong>of</strong>tware engineering methodologies (an easyexample is the very notion <strong>of</strong> role): these will be used then as a main reference6 Not all the agents and artifacts <strong>of</strong> a program needs to be specified and created in themain organization file, other can be eventually spawned and created dynamically.146

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!