PROCE: an agent-based PROcess Composition and execution Environment Francesco De Luca Andrea Tundis*, Alfredo Garro Herzum Software Solution Center – Srl Dipartimento di Elettronica, Informatica e Sistemistica (DEIS) 87036, c.da Lecco, Rende (CS), Italy Università della Calabria fdeluca@herzumsoftware.com 87036, Arcavacata di Rende (CS), Italy {atundis, garro}@deis.unical.it Abstract—The paper presents PROCE (PROcess Composition In order to verify the effectiveness and the efficacy of and execution Environment), an agent-based CAME and CASE PROCE in method fragments composition and processes tool which supports the composition of software development execution, a preliminary experimentation was carried out in the processes, based on the Method Engineering paradigm, and their Service Oriented Architecture (SOA) domain [1]. In fact, execution. In particular, the current release of PROCE provides despite its popularity, the development of SOA applications is an integrated and flexible environment for the design of SOA not well supported by methodologies and tools that easily adapt applications. to the needs of specific applications to be implemented; as a consequence, the efforts required for adapting an existing Keywords-Multi Agent System; Method Engineering; Method methodology often makes profitable to define a new one [10]. Fragment; Service Oriented Architecture; Services Composition. Therefore, also in the SOA domain, the ME approach can provide, as for the Object Oriented (OO) [6] and Agent I. INTRODUCTION Oriented (AO) domains [2], an effective solution able to The development of complex software applications can be combine the definition of ad-hoc methodology with the reuse supported by Software Engineering Processes (SEPs) which, of existing ones. according to the Method Engineering (ME) paradigm, are The paper is organized as follows: Section II and III present obtained by composing a set of purposely selected method system requirements and design respectively. The system fragments [6]. This approach allows combining the need of implementation details are presented in Section IV, whereas defining specifically tailored methodologies with the Section V reports an application example. Finally, conclusions possibility of reusing existing methodologies (or their portions) are drawn and future works delineated. well documented and experimented. However, the concrete use of the ME paradigm requires the availability of suitable models II. SYSTEM REQUIREMENTS and techniques to represent method fragments and their composition. In addition, a central issue is represented by the PROCE should provide both CAME and CASE features so the availability of Computer-Aided Method Engineering (CAME) following main requirements have been identified: tool, to support the composition of development processes 1. Method Base management: the tool should be able to through discovering and assembling of method fragments, and access and manage a repository (Method Base) in which of Computer-Aided Software Engineering (CASE) tool, to method fragments are stored and collected. support the execution of obtained processes. In this context, the paper presents PROCE (PROcess 2. Process definition and verification: the tool should allow Composition and execution Environment) which represents the selection and Work Products (WPs) based both a CAME and a CASE tool and then is capable to support composition of the available method fragments and both the definition of a development process, by the selection should provide techniques for checking the feasibility of and composition of method fragments, and its subsequent the obtained development process. execution. 3. Process execution: the tool should be able to instantiate PROCE is a Multi Agent System, in which both method and support the execution of a process obtained from fragments and the processes derived from their composition are method fragments composition. represented by agents. This approach provides an effective solution to the issue of fragment composition that can be based III. SYSTEM DESIGN on the cooperation among agents. Moreover, the agent-based representation of the development process allows a more PROCE has been designed following the Organization-based effective process execution. In fact, the agentified method Multi Agent System Engineering (O-MASE) methodology [4] fragments, in the CAME phase, cooperate to build up the and the fragment definition provided by the IEEE FIPA development process, whereas, in the CASE stage, cooperate to specifications [3]. In particular, the logical architecture of support its execution (each agent is in charge of a portion of the PROCE and its behavior are described in Section A and B process and interacts with the others by exchanging fragment respectively. work products). *corresponding author A. High Level architecture progress whereas the CASE features have been fully PROCE is organized as a cooperative society of agents each of implemented. Moreover, due to the increasing interested in the which covers at least one Role. A Role represents a relationship SOA domain, the current experimentation has involved between a Goal and the Capability used by a software agent to development processes and method fragments related to the achieve it. The following Roles have been identified: (i) development of service-oriented applications as it requires Process Builder Role who has in charge the definition of addressing several issues ranging from the definition of the specific Software Engineering Processes (SEPs); (ii) Process application to the discovery, development, composition, Coordinator Role who has in charge the execution of a specific integration and testing of SOA services. development process; (iii) Method Fragment Role who has in In particular, the following agents have been implemented: charge the execution of a specific method fragment and the (i) SOA Process Agent covering and extending the Process management of its WPs (Figure 1). Coordinator Role to support the execution of a SEP for the development of SOA applications; (iii) several Method Fragment (MF) Agents that cover and extend the Fragment Role to support the execution of specific portions of the above introduced SOA process. As an example, the MF-Service Composer Agent has been associated to a MF which, starting from an Application Choreography, represented by a WS-CDL (Web Services Choreography Description Language) document, and from a mapping among roleTypes of the Choreography and real Web Services, produces a WS-BPEL (Web Services Business Process Execution Language) document specifying the orchestration among the involved services in terms of data and messages exchanged and task execution sequences [11]. PROCE has been developed by adopting various platform- independent technologies and open standards to ensure interoperability; in particular JADE (Java Agent Development Figure 1. Logical Architecture Framework), an agent-based framework that allows the development of MAS and provides a runtime execution platform, has been exploited [7]. B. System behavior System behavior depends on the Roles played by the V. USING PROCE component Agents and their interactions. Figure 2 shows the PROCE GUI; in the left column the list of In particular, two main phases can be identified: Process the available SEPs is reported; currently only the SOAProcess Composition and Process Execution. In the first phase, the is available which is briefly described on the right side. system supports the ad-hoc definition of a new process through the composition of method fragments available in a Method Base. In particular, an Agent which perform the Process Builder Role, interact with the user for the definition of the specification of the process under construction. According to SPEM [8], the process is specified in terms of the component Activities, their relationships and the exchanged WPs. Starting from this process specification, the Builder interacts with the agents which perform the Method Fragment Role, requiring them, by exploiting a contract-net based protocol [5], to cover specific Activities of the process. If this fragments negotiation phase successfully completes, an Agent which performs the Process Coordinator Role is instantiated by specifying the process to coordinate in terms of the involved Fragments. In the Process Execution phase Agents which perform the Method Fragment Role are in charge of executing the associated Activities of the development process. These Agents are orchestrated by the Agent which performs the Process Coordinator Role who drives the exchange of WPs among the Figure 2. The PROCE Graphical User Interface (GUI) involved Agents. IV. SYSTEM IMPLEMENTATION By selecting the available SOAProcess a SPEM diagram of the process is shown; in the diagram the Activities composing PROCE has been currently implemented as a stand-alone Java the selected process and their work products are reported (see application. The development of the CAME features is in Figure 3). Each Activity is associated to a Method Fragment mapping. As the selected Services can be managed by different which can be then executed. Before starting the execution of a SOA domains, it is necessary to check and validate their MF, the SOAProcess Agent verifies that the required input WPs policies; thus, the MF Service Composer Agent supports the are available and in the format expected by the related MF user in getting (Get Policies button) the policies associated to Agent. In this case, the SOAProcess Agent provides the input each service and validating them (Validate Policies button). WPs to the MF Agent, on the contrary it informs the MF Agent so that it can ask the user for the required input WPs. In the following, the execution of the Services Composition MF carried on by the MF-Service Composer Agent is shown. Figure 5. Management of Services Policies Finally, Figure 6 shows the last phase of the execution of the Services Composition MF, in which a WS-BPEL is produced (Verify and End button) after verifying that the selected services correctly cover all the roles involved in the Application Choreography. Figure 3. A SEP for the development of SOA Applications In this first phase of the MF execution, the MF-Service Composer Agent obtains the two input WPs (see Figure 3); in particular, the provided Role-Service Mapping and the Application Choreography are represented on the upper-left and on the upper-right side of Figure 4 respectively. Figure 6. Services Orchestration VI. CONCLUSIONS AND FUTURE WORK PROCE, a MAS for method fragments composition and execution of software development processes, has been presented along with an application example in the SOA domain showing its effectiveness and user-orientation. The current release of PROCE is available under the LGPL license on the Web Site of the OpenKnowTech project [9]. Figure 4. The Services Compositon Environment Future efforts are geared to: (i) the definition of new In the next phase, for each roleType in the Choreography a method fragments concerning the different aspects of the specific Web Service is selected among those available in the development of SOA applications; (ii) the implementation of the CAME features of the tool ; (iii) the implementation of the future release of PROCE as an Eclipse plug-in so to benefit Development Processes. In the 8th International Workshop on Agent from its popularity and supporting community. Oriented Software Engineering, Honolulu, USA (2007). [5] FIPA - Contract Net Interaction Protocol Specification - http://www.fipa.org/specs/fipa00029/. REFERENCES [6] Henderson-Sellers, B.: Method engineering for OO systems [1] Bruni, R., Lluch Lafuente, A., Montanari, U., Tuosto, E.: Service development. Communications of the ACM, vol. 46, n. 10, pp. 73--78, Oriented Architectural Design. In: Proceedings of the 3rd International ACM press (2003). Symposium on Trustworthy Global Computing (TGC’07). LNCS, vol. [7] JADE - Java Agent Development Framework - http://jade.tilab.com/ 4912, pp. 186--203, Springer, Heidelberg (2008). [8] OMG SPEM - Systems Process Engineering Metamodel Specification - [2] Cossentino, M., Fortino, G., Garro, A., Mascillaro, S., Russo, W.: http://www.omg.org/spec/SPEM/2.0/ PASSIM: a simulation-based process for the development of multi-agent [9] OpenKnowTech Project - http://www.openknowtech.it/ systems. Int. J. of Agent-Oriented Software Engineering, vol. 2, n.2, pp. 132--170, Inderscience Enterprises Ltd., United Kingdom (2008). [10] Ramollari, E., Dranidis, D., Simons, A.J.H.: A survey of service- oriented development methodologies. In: Proceedings of the 2nd Young [3] Cossentino, M., Gaglio, S., Garro, A., Seidita, V.: Method fragments for Researchers' Workshop on Service Oriented Computing, Leicester, UK, agent design methodologies: from standardisation to research. Int. J. of pp. 75--80 (2007). Agent-Oriented Software Engineering, vol. 1, n. 1, pp. 91--121, Inderscience Enterprises Ltd (2007). [11] W3C Web of Services, standards and technologies, http://www.w3.org/standards/ [4] Deloach, S. A., Gracia-Ojieda, J. C., Oyenan, W. H., Valenzuela, J.: O- MaSE: A Customizable Approach to Developing Multiagent