Model-Driven Agents Design of Interoperable Klaus Fischer* — Brian Elvesæter** — Arne-Jørgen Berre** — Christian Hahn* — Cristián Madrigal-Mora* — Ingo Zinnikus* * DFKI GmbH, Stuhlsatzenhausweg 3 (Bau 43), D-66123 Saarbrücken, Germany. klaus.fischer@dfki.de christian.hahn@dfki.de cristian.madrigal-mora@dfki.de ingo.zinnikus@dfki.de ** SINTEF ICT, P. O. Box 124 Blindern, N-0314 Oslo, Norway brian.elvesater@sintef.no arne.j.berre@sintef.no This paper presents a model-driven approach to designing interoperable agents in a service-oriented architecture (SOA). The approach provides a foundation for how to incorporate autonomous agents into a SOA using principles of model-driven development (MDD). It presents a metamodel (AgentMM) for an agent architecture for a specific style of agents, i.e. BDI agents, and relates AgentMM to a platform-independent model for SOAs (PIM4SOA). The paper argues that this mapping allows to design interoperable agents in the context of SOAs. In the discussion of the two metamodels strengths and weaknesses of both metamodels are discussed and extensions how each of them might be improved are presented. ABSTRACT: KEY WORDS: Modelling, Metamodels, Agents, Model-Driven Development, Service-Oriented Architectures. Model-Driven Design of Interoperable Agents. Volume X – No. X/2006, pages 1 to n 2 Model-Driven Design of Interoperable Agents. Volume X – No. X/2006 1. Introduction Model-driven development (MDD) is emerging as the state of practice for developing modern enterprise applications and software systems. MDD frameworks define a model-driven approach to software development in which visual modelling languages are used to integrate the huge diversity of technologies used in the development of software systems. As such the MDD paradigm provides us with a better way of addressing and solving interoperability issues compared to earlier nonmodelling approaches (D'Souza 2001). The current state of the art in MDD is much influenced by the ongoing standardisation activities around the OMG Model Driven Architecture (MDA) (OMG 2003). MDA defines three main abstraction levels of a system that supports a business-driven approach to software development. From a top-down perspective it starts with a computation independent model (CIM) describing the business context and business requirements of the software system. The CIM is refined to a platform independent model (PIM) which specifies software services and interfaces required by the business independent of software technology platforms. The PIM is further refined to a set of platform specific models (PSMs) which describes the realisation of the software systems with respect to the chosen software technology platforms 1 . An important aspect of defining a MDD framework is to develop metamodels and model transformations. A metamodel describes the concepts and their relationships for the purpose of building and interpreting models. Metamodels can be developed for describing different business domains (e.g. eProcurement and Telecom) and different software technology platforms (e.g. Web services and agent systems). The OMG MDA specifies two core technologies for developing metamodels and model transformations. The Meta Object Facility (MOF) (OMG 2004) is the common foundation that provides the standard modelling and interchange constructs for defining metamodels. The MOF Query/View/Transformation (QVT) (OMG 2005) provides a standard specification of a language suitable for querying and transforming models which are represented according to a MOF metamodel. The focus of this paper is on PIM to PSM development. The basic idea is to present a PIM for service-oriented architecture (PIM4SOA) (Benguria et al. 2006) and compare it to a metamodel for a specific agent architecture (AgentMM). If a mapping between the two is feasible, meaning that PIM4SOA models can actually be translated into agent models, it is on the one hand possible to derive interoperable agents when the design is started from PIM4SOA models and, on the other hand, to clearly define under which circumstances given agent models are interoperable according to the PIM4SOA. 1. The terms PIM and PSM are relative to the defined software platform. Model-Driven Design of Interoperable Agents 3 The paper is structured as follows: In Section 2 we present the PIM4SOA metamodel. In Section 3 we present the metamodel for a specific agent architecture. In Section 4 we compare the two metamodels and discuss in Section 5 the application of MDD for designing interoperable agents in a SOA. Conclusions and future work is presented in Section 6. 2. Metamodel for Service-Oriented Architecture The metamodel for service-oriented architectures (SOAs) addresses the conceptual and technological interoperability barrier. It aims to define platform independent modelling language constructs that can be used to design, re-architect and integrate ICT infrastructure technologies supporting SOA. The concept of SOA has growing its importance during these last years. Enterprises typically view SOA as an IT solution and often the focus is on the technologies involved. The PIM4SOA has the following goals: – The PIM4SOA model should bridge the gap between the business analysts and the IT developers and support mapping and alignment between enterprise and IT models. – The PIM4SOA model should define a platform independent abstraction that can be used to integrate and define mappings to Web services, agent, peer-to-peer (P2P) and Grid execution platforms. PIM4SOA Metamodel Symbols PIM Metamodel Concept Relationship PSMs Correspondence Web Services Metamodel Agent Metamodel (AgentMM) P2P Metamodel Grid Metamodel Figure 1. Mapping metamodel concepts between the PIM and PSMs 4 Model-Driven Design of Interoperable Agents. Volume X – No. X/2006 One challenge in defining the PIM4SOA metamodel is to decide which concepts to include and abstract from the target execution platforms (PSMs) that support the architectural style of service-orientation. The current version of the PIM4SOA metamodel has a strong focus on supporting the Web services technology stack, as this is the main enabling technology for implementing SOAs. Benguria et al. (Benguria et al. 2006) describes the use of the PIM4SOA metamodel for defining model transformations to specific Web service artefacts such as XML Schema Definition (XSD), Web Service Definition Language (WSDL) and Business Process Execution Language (BPEL) documents. Future revisions of the PIM4SOA metamodel need to incorporate more of the adaptive and dynamic concepts from the agent, P2P and Grid platforms. The benefits of introducing agents, P2P and Grid concepts will enable us to design SOAs that are more adaptable and flexible, and thus better able to cope with changes over time – which is important for supporting interoperability. Figure 1 illustrates the mapping of metamodel concepts between the PIM4SOA and the targets PSMs. Concepts defined in the PIM4SOA metamodel should ideally map to at least two of the target platforms. In order to support an evolution of the PIM4SOA metamodel in which new concepts from agent, P2P and Grid platforms can be incorporated, the PIM4SOA metamodels is structured around a small core with extensions, each focusing on a specific aspect of a SOA. Grouping modelling concepts in this manner allows for metamodel evolution by adding new modelling concepts in the defined aspects, extending existing modelling concepts in the defined aspects, or defining new modelling concepts for describing additional aspects of SOAs (e.g. security). The current version of the PIM4SOA metamodel defines modelling concepts that can be used to model four different aspects of SOAs; services, information, processes and non-functional aspects. The definition of these aspects has been influenced by ongoing standardization initiatives in the area of Web services and SOAs. Usage of already well-defined and standardized metamodels is promoted where applicable. 1. Services: Services are an abstraction and an encapsulation of the functionality provided by an autonomous entity. Service architectures are composed of functions provided by a system or a set of systems to achieve a shared goal. The service concepts of the PIM4SOA metamodel have been heavily based on the Web Services Architecture as proposed by W3C (W3C 2004). 2. Information: Information is related to the messages or structures exchanged, processed and stored by software systems or software components. The information concepts of the PIM4SOA metamodel have been based on the structural constructs for class modelling in UML 2.0 (OMG 2003). 3. Processes: Processes describe sequencing of work in terms of actions, control flows, information flows, interactions, protocols, etc. The process concepts of Model-Driven Design of Interoperable Agents 5 the PIM4SOA metamodel have been founded on ongoing standardization work for the Business Process Definition Metamodel (BPDM) (IBM et al. 2004). 4. Non-functional aspects: Extra-functional qualities that can be applied to services, information and processes. Concepts for describing non-functional aspects of SOAs have been based on the UML Profile for Modeling Quality of Service and Fault Tolerance Characteristics and Mechanisms (OMG 2004). In addition to the standards mentioned above, the work on defining the PIM4SOA metamodel has also been influenced by the UML Profile for Enterprise Distributed Object Computing (OMG 2002). In this paper we will focus on the service concepts of the PIM4SOA metamodel. Figure 2 shows a partial subset of the PIM4SOA metamodel describing how services are modelled as collaborations. They specify a pattern of interaction between participating roles. It specifies the involved roles and their responsibilities within the collaboration. A collaboration use specifies the application of a collaboration in a specific context and includes the binding of roles to entities in that context. Collaborations are composable and a composite collaboration specifies the use of collaborations. The responsibilities of roles in a composite collaboration are defined through the bindings to roles of its used collaborations. Binary collaborations have two roles — a requester and a provider. The requester provides the input parameters and the provider the output parameters. Figure 2. Service concepts of the PIM4SOA metamodel In the PIM4SOA metamodel a service is viewed as a collaboration of a set of roles (ATHENA A6 2006). Therefore, when referring to a service in the following it should be understood as a service collaboration. Non-composite binary 6 Model-Driven Design of Interoperable Agents. Volume X – No. X/2006 collaborations are the basic building blocks for composite collaborations. Composite services are specified by composite service collaborations. Thus composition of service collaborations is used to specify more sophisticated service definitions. Note that a service is a service definition, not the realisation or an actual instantiation. Roles represent how a partner participates in the collaboration by providing services and parameters and using services provided by other partners in its service collaboration. Asymmetry may be introduced in service collaborations through defining the role types of the requester and provider. We constrain that only roles in service collaborations may provide parameters. It needs further evaluation of lifting this restriction. For comparison BPEL (Andrews et al. 2003) has introduced the concept of a partner link type (PLT) between two roles which are typed through WSDL port types (W3C 2001). PLTs introduce the symmetry on top of the basic asymmetrical concept. It was also partially, because it allowed “degenerated” PLTs with a single role. It does not support the nested composition of PLTs. However, when used in partner links, a process may define a set of partner links grouped into a partner. Service collaborations are elementary symmetrical and composable and asymmetry is introduced optionally. Composite services and composite collaborations are defined using the exactly same mechanism – composition of collaborations. Collaboration can have a behaviour that specifies the rules for how the roles interact. We refer to this as the collaboration protocol. The collaboration protocol is specified from a global view point. Constraints on the expected behaviour of a role can be deduced. Obviously the collaboration protocol of the service collaboration is a service protocol. 3. Metamodel for BDI Agents As already suggested in Figure 1 there are several alternatives when it comes to transforming PIM4SOA models into models that can actually be executed. Agent technologies are an interesting option to choose because they allow a flexible and adaptive execution of such models. PIM4SOA does not directly ask for this flexibility. However, there are well-known examples like for example the contract net protocol (Davis et al. 1983) that can be adopted for the service supplier selection when the number of suppliers is not know at design time. This kind of service selection can be nicely described with agent technologies while a straightforward model for the PIM4SOA is not available. To integrate agent technologies with PIM4SOA is therefore a worthwhile enterprise. For the design of agents with rational and flexible problem solving behaviour, the BDI agent architecture has been proven successful during the last decade (Rao et Model-Driven Design of Interoperable Agents 7 al. 1991, Rao et al. 1995). Three mental attitudes (beliefs, desires, and intentions) allow an agent to act in and to reason about its environment in an effective manner. It is therefore of no surprise that a vast number of tools and methodologies have been developed to foster the software-based development of BDI agents and multiagent systems. Rather than inventing our own agent metamodel, we took a bottomup approach in which we extracted the metamodel (AgentMM) from one of the most sophisticated tools for the design of BDI agents (i.e. JACK™ Intelligent Agents (AOS)). Figure 3 presents the most interesting part of this metamodel for the discussion that we want to do in this paper. Figure 3. Partial metamodel for BDI agents We start with a neural description of the concepts that are included in AgentMM and discuss the relation between PIM4SOA and AgentMM in the next section. The most important concept in AgentMM is the concept of a team. Teams are either atomic, in which case we can refer to them as agents, or consist of a set of roles that all together form the team. It is important to note that even in the most simple case where all roles of a team are meant to be filled by an individual atomic agent it is not the case that all members of the teams need to be involved in all the tasks the team is able to work on. Rather for each individual task a set of individuals (we do not want to call them agents because they can be teams, too) from the team members are selected to actually work on the task. Tasks a team is able to work on, 8 Model-Driven Design of Interoperable Agents. Volume X – No. X/2006 are defined by the roles the team is able to perform. The roles a team requires to be filled by individuals are role containers where the team definition specifies how many individuals are needed at minimum as a role filler and how many individuals are allowed at maximum where both numbers can be set to 0 or any (which of course means any finite number). Role definitions are the second important concept for the definition of teams. A role defines which messages (in Jack these messages are rather events that teams send to each other, however, we do not want to go into the details of the discussion of these concepts) the role fillers are able to react to and which messages they are likely to send. Although it is possible to design models where types for teams and roles are so specific that only individual instances of these types are possible at run-time. However, the real idea behind these concepts is of course to keep the types as general as possible and to leave the decision of which concrete instances are actually created or selected for the execution of a specific task to the runtime execution. It is also important to note that it is not necessarily the case that the complete team is formed to work on an incoming top-level request (which is most probably the service the team offers to the outside environment) at the time the request arrives at the team. Rather creation of sub-teams can be left open, taking into account the success or failure of the execution of team plans by individual sub-teams. How a team actually goes about to react on an incoming request is specified by a set of team plans. Each team plan has an explicitly defined objective (incoming message or event internal to the team) that the team plan is responsible to deal with. When the so-called triggering event is raised and all additional criteria are valid, a specific team plan is executed by creating an instance of this team plan. As a consequence a concrete team to actually execute the team plan is established. In this case both is possible, that the team to execute the team plan is already known or that it has to be newly established. In the latter case, the establish() method can be used to describe which members from the role containers of the team are selected to perform the team plan. This means that for any specific task to work on a new subteam can be dynamically formed from the set of team members that actually work on the task. The separation of the team members into different role containers that correspond to different role types helps with respect to selecting adequate agents. Although message events can be posted to teams, it is in the current version of AgentMM rather difficult to describe the interaction among teams. This is due to the fact that there seems to be no straightforward way to specify the reaction of the sender to replies from individual team members of a sub-team when a message event is sent to a role container that holds more than one member. It is probably possible to map the replies to the synthesis of belief sets but, on the one hand, this means that in the protocol description the answers will not be visible as messages but rather as changes to belief sets. On the other hand, it seems to be not possible to react to these belief set changes in the team plan that actually sends the message (at Model-Driven Design of Interoperable Agents 9 least not in a straightforward manner). This disadvantage is not a general problem of agent technologies but rather is a result from the decision to derive AgentMM from the Jack BDI development environment. However, the best way to describe interactions from a centralised point of view for the whole interaction is far from obvious. 4. Comparison of the Metamodels for PIM4SOA and BDI Agents Although the concepts PIM4SOA and AgentMM differ quite significantly a mapping of PIM4SOA models to AgentMM model seems to be feasible because AgentMM is more expressive. Therefore, a transformation of PIM4SAO models to AgentMM is our main aim. The first element we inspect is the ServiceProvider. At first glance an agent seems to be the best match, but since a ServiceProvider references roles, it is recommended to assign it to a team. The name of the ServiceProvider coincides with the name of the team and its roles are the roles the team performs. While a ServiceProvider is supposed to represent an atomic team, i.e. a team that consists of an individual agent, a Collaboration is mapped onto a team that may consist of any number of agents. However, because collaborations do not specify any cardinalities for roles, we assume that a collaboration asks for exactly one filler for each of the required roles. Therefore we suggest to map collaborations to a team structure where the required roles have a min-max requirement of exactly one role filler. Additionally a generic team plan is created that represents the collaborations behaviour as a body and requires all roles that are specified in the collaboration. Each collaboration use then is an additional team plan where the generic team plan of the collaboration is used and extended by a renaming of roles (in AgentMM this is done by a “uses role1 as role2” specification). The most severe difference between PIM4SOA and AgentMM is the manner in which the interaction protocol among the members of a Collaboration (team) is described. In PIM4SOA this interaction protocol is specified from a centralised point of view for both parties involved. Such a description is in AgentMM in its current form not directly available. When one wants to transform the PIM4SOA interaction protocol into AgentMM models it is necessary to extract from the centralized description of the PIM4SOA model the projections of the behaviour for the individual parties of the interaction. Because it is clear who initiates the interaction it is clear that for the initiator it is possible to provide a team plan that reflects its behaviour of the initiator and to provide a set of plans that describe the reaction to the incoming messages on the server’s side. It needs to be investigated in how far the protocol descriptions in the PIM4SOA models can be automatically transformed into the models that need to be executed by the individual parties in AgentMM. 10 Model-Driven Design of Interoperable Agents. Volume X – No. X/2006 5. Discussion There are quite a number of similarities between PIM4SOA and AgentMM. The concepts ServiceProvider, Collaboration, and CollaborationUse on the one hand and team, role, and team plan on the other hand correspond quite nicely as we could see in the last section. The difference in actually describing interactions on the one hand is a challenge when one wants to transform the models from PIM4SOA to AgentMM. On the other hand, it also provides chances to actually improve the AgentMM with additional models that are possibly more compact and easier to read. The idea of allowing more than one role filler for specific roles in a team in AgentMM is more general than the idea of roles in collaborations of PIM4SOA models. However, it also complicates the description of the interaction among these roles. Even if we restrict ourselves to the case of two roles interacting with each other we need to have quite powerful concepts available to express how messages should be exchanged among these groups. Let us assume that we have two role containers of type role1 and role2, respectively, and that each of these containers has more than one role fillers. If we allowed to write “role1 → role2” meaning that a message is sent from role1 to role2, what should this actually mean? That every member of the role container role1 would send this message to every member of role container role2? It would be possible to constrain the selection of senders and receivers but it is open how an elegant way of describing these constraints could look like. Additionally, one should realise that sending messages is one thing but it is also necessary that it should be possible to describe the handling of replies in an intuitive manner. However, even if we restrict ourselves to the situation where messages have to be exchanged between individuals (teams or agents), AgentMM already provides advantages over PIM4SOA because it allows the intuitive description of more complex protocols. The contract net protocol (where a manager selects the best offer from a set of bidders (Davis et al. 1983)) is a good example for such a situation. In the contract net protocol the number of bidders that will be approached is not known at the design time of the protocol. Still the contract net protocol has a clear initiator for each of the interactions (the manager) and all other parties involved (bidders) need only to reply to incoming messages. The restriction that applies to the models that can be easily described in AgentMM is as follows: The protocol needs an individual initiator that can interact with any number of roles where for each of these roles any number of role fillers can be dynamically assigned at run-time where the interaction between the initiator and the participating roles are pure request-response patterns. We do not say that it is impossible to design more complicated protocols in AgentMM, However, in its current version there is at least no straightforward design pattern available to describe such protocols. PIM4SOA, however, provides in the end at least a concrete proposal for how to describe the message interchange between two interacting parties from a centralised Model-Driven Design of Interoperable Agents 11 point of view and therefore could be included in AgentMM to at least deal with describing the interaction between two parties in specific cases. 6. Conclusions and Future Work The paper presented a metamodel for SOAs (PIM4SOA) and a metamodel for a specific class of agents (AgentMM). The similarities between the two metamodels are high enough to allow a mapping of PIM4SOA to AgentMM to a large degree. Therefore the idea of designing interoperable agents by using PIM4SOA models and transforming them into AgentMM models seems to be feasible. The extension that AgentMM provides on the one hand gives the chance to introduce greater flexibility and adaptiveness into SOAs. For concepts that prove to be particularly useful in this context there is even the chance that they might be included into the PIM4SOA in the long run. The major part of future work that needs to be done is in the comparison of the process models of the two metamodels. The work published in this paper is partly funded by the European Commission through the ATHENA IP (Advanced Technologies for interoperability of Heterogeneous Enterprise Networks and their Applications Integrated Project) (IST507849). The work does not represent the view of the European Commission or the ATHENA consortium, and the authors are solely responsible for the paper’s content. 7. References AOS, "JACK Intelligent Agents", The Agent Oriented Software Group (AOS). http://www.agent-software.com/shared/home/ T. Andrews, F. Curbera, H. Dholakia, Y. Goland, J. Klein, F. Leymann, K. Liu, D. Roller, D. Smith, S. Thatte, I. Trickovic, and S. Weerawarana, "Business Process Execution Language for Web Services Version 1.1", May 2003. ftp://www6.software.ibm.com/software/developer/library/ws-bpel.pdf Gorka Benguria, Xabier Larrucea, Brian Elvesæter, Tor Neple, Anthony Beardsmore, Michael Friess, “A Platform Independent Model for Service Oriented Architectures”, paper to be presented at the I-ESA’2006 conference, Bordeaux, France, March 2006. R. Davis and R. G. Smith, “Negotiation as a metaphor for distributed problem solving”, Artificial Intelligence, vol. 20, 1983, pp. 63 – 109. D. D'Souza, "Model-Driven Architecture and Integration - Opportunities and Challenges, Version 1.1", Kineticum, 2001. http://www.catalysis.org/publications/papers/2001-mdareqs-desmond-6.pdf IBM, Adaptive, Borland, Data Access Technologies, EDS, and 88 Solutions, "Business Process Definition Metamodel - Revised Submission to BEI RFP bei/2003-01-06", Object 12 Model-Driven Design of Interoperable Agents. Volume X – No. X/2006 Management Group (OMG), Document http://www.omg.org/docs/bei/04-08-03.pdf bei/04-08-03, August 2004. OMG, "UML Profile for Enterprise Distributed Object Computing Specification", Object Management Group (OMG), Document ptc/02-02-05, 2002. http://www.omg.org/technology/documents/formal/edoc.htm OMG, "MDA Guide Version 1.0.1", Object Management Group (OMG), Document omg/0306-01, June 2003. http://www.omg.org/docs/omg/03-06-01.pdf OMG, "UML 2.0 Superstructure Specification", Object Management Group (OMG), Document ptc/03-08-02, August 2003. http://www.omg.org/docs/ptc/03-08-02.pdf OMG, "UML Profile for Modeling Quality of Service and Fault Tolerance Characteristics and Mechanisms", Object Management Group (OMG), Document ptc/04-09-01, September 2004. http://www.omg.org/docs/ptc/04-09-01.pdf OMG, "Meta Object Facility (MOF) 2.0 Core Specification", Object Management Group (OMG), Document ptc/04-10-15, October 2004. http://www.omg.org/docs/ptc/04-1015.pdf OMG, "Meta Object Facility (MOF) 2.0 Query/View/Transformation Specification", Object Management Group (OMG), Document ptc/05-11-01, November 2005. http://www.omg.org/docs/ptc/05-11-01.pdf A. S. Rao and M. P. Georgeff, “Modeling Agents within a BDI-Architecture”, R. Fikes and E. Sandewall (Eds.), Proc. of the 2rd International Conference on Principles of Knowledge Representation and Reasoning (KR'91), Morgan Kaufmann, Cambridge, Mass. April, 1991, pp. 473-484. A. S. Rao and M. P. Georgeff, “BDI-Agents: from theory to practice”, Victor Lesser (Ed.), Proceedings of the First Intl. Conference on Multiagent Systems, San Francisco, AAAI Press/The MIT Press, 1995. W3C, "Web Services Description Language (WSDL) 1.1", World Wide Web Consortium (W3C), W3C Note, 15 March 2001. http://www.w3.org/TR/2001/NOTE-wsdl-20010315 W3C, "Web Services Architecture", World Wide Web Consortium (W3C), W3C Working Group Note, 11 February 2004. http://www.w3.org/TR/2004/NOTE-ws-arch-20040211/