Abstract
The context of this paper is given through a software engineering approach that uses Petri nets as executable code. We apply the particular understanding that Petri nets are not only used to model systems for design purposes but also to implement system components. Following this approach, we develop complex Petri net-based software applications according to the multi-agent paradigm. Agent-internal as well as agent-spanning processes are implemented directly as (high-level) Petri nets. These nets are essential parts of the resulting software application – alongside other parts (operational and declarative ones), which are implemented using traditional ways of programming.
One of our goals is to open our Petri net-based agent framework Mulan/Capa so that multi-agent applications can communicate and interact with other systems – especially with Web-based applications. With this intention, we present a gateway solution to enable Petri net-based applications to access Web services as well as to offer Web services to other applications: the WebGateway. In addition to describing the WebGateway extension itself, we use its presentation to demonstrate the practicability of the Petri net-based software engineering approach in general. We emphasize the benefit of having Petri net models serve as conceptual models that progressively refine the constructed system from simple models to well-defined specifications of the systems. This improves the understanding of the systems.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 1.
For more detailed information about Renew, Mulan and P\(^{*}\) aose see [5], http://www.paose.net and http://www.renew.de.
- 2.
Foundation for Intelligent Physical Agents: http://www.fipa.org.
- 3.
- 4.
The notion of transitions being interfaces fits nicely with an object-oriented paradigm, if one presumes that these (on one side open) transitions are one port of synchronous channels.
- 5.
In the context of Mulan/Capa protocol nets (also abbreviated as simply protocols) refer to agent behavior nets, which are executed by the individual agents.
- 6.
- 7.
- 8.
- 9.
Uniform Resource Identifier.
- 10.
JavaScript Object Notation (JSON).
- 11.
- 12.
Although the soundness property is not well-defined for protocol nets, we conceive this property in analogy to soundness of workflow nets.
- 13.
In fact the service takes any file type that can be read by Renew, e.g. Renew nets (.rnw), JHotDraw drawings (.draw), PNML, several diagram types used within P\(^{*}\) aose (.aip,.arm) and also Lola net files (.net). The Renew import/export system is also extensible, so any envisioned file type in the context of Petri nets and UML modeling can be easily implemented.
- 14.
- 15.
In black & white printing the location of the manipulated parts are still recognizable, although it becomes impossible to distinguish removals from additions.
- 16.
We provide plugins for Redmine and Trac (http://trac.edgewall.org/).
- 17.
- 18.
Although the messages could also be inspected in String representation, the UML representation is much clearer and more concise.
- 19.
The service is publicly available since 2011 (see http://www.paose.net).
- 20.
The Petri net is presented as a whole, in order to show the final result of the refinement process. Most of the details, such as declarations are only of minor importance. The main details are presented in a magnified version in Fig. 11 for convenient inspection.
- 21.
WSDL, SOAP, UDDI (WSU).
- 22.
Web Application Description Language (WADL): http://java.net/projects/wadl.
- 23.
- 24.
Service-Technology: http://service-technology.org/tools/.
References
Agha, G., De Cindio, F., Rozenberg, G. (eds.): APN 2001. LNCS, vol. 2001. Springer, Heidelberg (2001)
Aghaee, S., Pautasso, C.: Mashup development with HTML5. In: Proceedings of the 3rd and 4th International Workshop on Web APIs and Services Mashups, Mashups ’09/’10, pp. 10:1–10:8. ACM, New York (2010). http://doi.acm.org/10.1145/1944999.1945009
Betz, T., Cabac, L., Güttler, M.: Improving the development tool chain in the context of Petri net-based software development. In: Duvigneau, M., Moldt, D., Hiraishi, K. (eds.) Proceedings of the Petri Nets and Software Engineering, International Workshop PNSE’11. CEUR Workshop Proceedings, Newcastle upon Tyne, UK, June 2011, vol. 723, pp. 167–178. CEUR-WS.org (2011). http://CEUR-WS.org/Vol-723
Betz, T., Cabac, L., Wester-Ebbinghaus, M.: Gateway architecture for Web-based agent services. In: Klügl, F., Ossowski, S. (eds.) MATES 2011. LNCS, vol. 6973, pp. 165–172. Springer, Heidelberg (2011). http://dx.doi.org/10.1007/978-3-642-24603-6_17
Cabac, L.: Modeling Petri Net-Based Multi-Agent Applications, Agent Technology - Theory and Applications, vol. 5. Logos Verlag, Berlin (2010)
Cabac, L., Dörges, T., Duvigneau, M., Moldt, D., Reese, C., Wester-Ebbinghaus, M.: Agent models for concurrent software systems. In: Bergmann, R., Lindemann, G., Kirn, S., Pěchouček, M. (eds.) MATES 2008. LNCS (LNAI), vol. 5244, pp. 37–48. Springer, Heidelberg (2008)
Cabac, L., Duvigneau, M., Moldt, D., Rölke, H.: Modeling dynamic architectures using nets-within-nets. In: Ciardo, G., Darondeau, P. (eds.) ICATPN 2005. LNCS, vol. 3536, pp. 148–167. Springer, Heidelberg (2005). http://dx.doi.org/10.1007/11494744_10
Cabac, L., Duvigneau, M., Moldt, D., Wester-Ebbinghaus, M.: Towards unit testing for Java reference nets. In: Bergenthum, R., Desel, J. (eds.) Algorithmen und Werkzeuge für Petrinetze. 18. Workshop AWPN 2011, Hagen, September 2011, Tagungsband, pp. 1–6 (2011)
Cabac, L., Moldt, D., Rölke, H.: A proposal for structuring Petri net-based agent interaction protocols. In: van der Aalst, W.M.P., Best, E. (eds.) ICATPN 2003. LNCS, vol. 2679, pp. 102–120. Springer, Heidelberg (2003)
Cabac, L., Schlüter, J.: ImageNetDiff: a visual aid to support the discovery of differences in Petri nets. In: 15. Workshop Algorithmen und Werkzeuge für Petrinetze, AWPN’08. CEUR Workshop Proceedings, vol. 380, pp. 93–98. Universität Rostock (2008). http://CEUR-WS.org/Vol-380/paper15.pdf
Duvigneau, M., Moldt, D., Rölke, H.: Concurrent architecture for a multi-agent platform. In: Giunchiglia, F., Odell, J., Weiß, G. (eds.) Proceedings of the 3rd International Workshop on Agent-Oriented Software Engineering, AOSE 2002, Bologna, pp. 147–159. ACM Press (2002)
Fielding, R.T., Taylor, R.N.: Principled design of the modern Web architecture. ACM Trans. Internet Technol. 2, 115–150 (2002). http://doi.acm.org/10.1145/514183.514185
Greenwood, D., Calisti, M.: Engineering Web service - agent integration. In: 2004 IEEE International Conference on Systems, Man and Cybernetics, vol. 2, pp. 1918–1925 (2004)
Hinz, S., Schmidt, K., Stahl, C.: Transforming BPEL to Petri nets. In: van der Aalst, W.M.P., Benatallah, B., Casati, F., Curbera, F. (eds.) BPM 2005. LNCS, vol. 3649, pp. 220–235. Springer, Heidelberg (2005)
Kindler, E., Rubin, V., Wagner, R.: Component tools: integrating Petri nets with other formal methods. In: Donatelli, S., Thiagarajan, P.S. (eds.) ICATPN 2006. LNCS, vol. 4024, pp. 37–56. Springer, Heidelberg (2006)
Köhler, M., Moldt, D., Rölke, H.: Modelling the structure and behaviour of Petri net agents. In: Colom, J.-M., Koutny, M. (eds.) ICATPN 2001. LNCS, vol. 2075, pp. 224–241. Springer, Heidelberg (2001). http://dx.doi.org/10.1007/3-540-45740-2_14
Kummer, O., Wienberg, F., Duvigneau, M., Schumacher, J., Köhler, M., Moldt, D., Rölke, H., Valk, R.: An extensible editor and simulation engine for Petri nets: Renew. In: Cortadella, J., Reisig, W. (eds.) ICATPN 2004. LNCS, vol. 3099, pp. 484–493. Springer, Heidelberg (2004). http://dx.doi.org/10.1007/978-3-540-27793-4_29
León Soto, E.: Agent communication using Web services, a new FIPA message transport service for jade. In: Petta, P., Müller, J.P., Klusch, M., Georgeff, M. (eds.) MATES 2007. LNCS (LNAI), vol. 4687, pp. 73–84. Springer, Heidelberg (2007). http://dx.doi.org/10.1007/978-3-540-74949-3_7
Melliti, T., Haddad, S., Suna, A.: Web-masi: multi-agent systems interoperability using a web services based approach. In: International Conference on Intelligent Agent Technology, IEEE/WIC/ACM, pp. 739–742. IEEE Computer Society, Washington, DC (2005)
Miyamoto, T., Kumagai, S.: An agent net approach to autonomous distributed systems. In: Proceedings of 1996 IEEE Systems, Man, and Cybernetics, Beijing, China, 14–17 October 1996, pp. 3204–3209 (1996)
Moldt, D., Offermann, S., Ortmann, J.: A Petri net-based architecture for Web services. In: Cavedon, L., Kowalczyk, R., Maamar, Z., Martin, D., Müller, I. (eds.) Proceedings of the Workshop on Service-Oriented Computing and Agent-Based Engineering, SOCABE 2005, Utrecht, Netherland, 26 July 2005, pp. 33–40 (2005)
Padberg, J., Ehrig, H.: Petri net modules in the transformation-based component framework. J. Logic Algebraic Program. 97(1–2), 198–225 (2006)
Pautasso, C., Zimmermann, O., Leymann, F.: Restful web services vs. “big” web services: making the right architectural decision. In: Proceeding of the 17th International Conference on World Wide Web, WWW ’08, pp. 805–814. ACM, New York (2008). http://doi.acm.org/10.1145/1367497.1367606
Reisig, W.: Petri nets in software engineering. In: Brauer, W., Reisig, W., Rozenberg, G. (eds.) Petri Nets: Applications and Relationships to Other Models of Concurrency. LNCS, vol. 255, pp. 62–96. Springer, Heidelberg (1987). http://dx.doi.org/10.1007/3-540-17906-2_22
Shafiq, M.O., Ding, Y., Fensel, D.: Bridging multi agent systems and Web services: towards interoperability between software agents and semantic Web services. In: 10th IEEE International Enterprise Distributed Object Computing Conference, EDOC ’06, pp. 85–96 (2006)
Valk, R.: Object Petri nets - Using the nets-within-nets paradigm. In: Desel, J., Reisig, W., Rozenberg, G. (eds.) ACPN 2003. LNCS, vol. 3098, pp. 819–848. Springer, Heidelberg (2004). http://dx.doi.org/10.1007/978-3-540-27755-2_23
Wagner, T., Quenum, J., Moldt, D., Reese, C.: Providing an agent flavored integration for workflow management. In: Jensen, K., Donatelli, S., Kleijn, J. (eds.) ToPNoC V. LNCS, vol. 6900, pp. 243–264. Springer, Heidelberg (2012)
Wolf, K.: Does my service have partners? In: Jensen, K., van der Aalst, W.M.P. (eds.) ToPNoC II. LNCS, vol. 5460, pp. 152–171. Springer, Heidelberg (2009). (special Issue on Concurrency in Process-Aware Information Systems)
Acknowledgment
We would like to thank the TGI group of the Department of Informatics, University of Hamburg and especially Dr. Daniel Moldt for the support, constructive criticism and fruitful discussions.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2014 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Betz, T., Cabac, L., Duvigneau, M., Wagner, T., Wester-Ebbinghaus, M. (2014). Software Engineering with Petri Nets: A Web Service and Agent Perspective. In: Koutny, M., Haddad, S., Yakovlev, A. (eds) Transactions on Petri Nets and Other Models of Concurrency IX. Lecture Notes in Computer Science(), vol 8910. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-662-45730-6_3
Download citation
DOI: https://doi.org/10.1007/978-3-662-45730-6_3
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-662-45729-0
Online ISBN: 978-3-662-45730-6
eBook Packages: Computer ScienceComputer Science (R0)