Abstract
Various agent-based programming languages and frameworks have been proposed to support the development of multi-agent systems. They have contributed to the identification and operationalisation of multi-agent system concepts, features and abstractions by proposing specific programming constructs. Unfortunately, these contributions have not yet been widely adopted by industry. In this paper, we follow the argument that multi-agent programming technology can find its way to industry by introducing design patterns for the existing agent constructs in standard software technology. We provide some object-oriented design patterns based on the programming constructs that have been developed in agent-based programming languages.
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Aridor, Y., Lange, D.B.: Agent design patterns: Elements of agent application design. In: AGENTS 1998, pp. 108–115 (1998)
Bellifemine, F.L., Caire, G., Greenwood, D.: Developing Multi-Agent Systems with JADE. Wiley (2007)
Bordini, R.H., Wooldridge, M., Hübner, J.F.: Programming Multi-Agent Systems in AgentSpeak using Jason. John Wiley & Sons (2007)
Busetta, P., Ronnquist, R., Hodgson, A., Lucas, A.: Jack intelligent agents - components for intelligent agents in java (1999)
Cohen, P.R., Levesque, H.J.: Intention is choice with commitment. Artificial Intelligence 42(2-3), 213–261 (1990)
Dastani, M., Gomez-Sanz, J.: Programming multi-agent systems. The Knowledge Engineering Review 20(2), 151–164 (2006)
Dastani, M., Grossi, D., Meyer, J.-J.C., Tinnemeier, N.: Normative multi-agent programs and their logics. In: KRAMAS, pp. 16–31 (2008)
Dastani, M.: 2apl: A practical agent programming language. Autonomous Agents and Multi-Agent Systems 16, 214–248 (2008)
Dastani, M., Grossi, D., Meyer, J.-J.: A logic for normative multi-agent programs. International Journal of Logic and Computation (2011)
Do, T.T., Kolp, M., Faulkner, S., Pirotte, A.: Agent-oriented design patterns. In: ICEIS, pp. 48–53 (2004)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Longman Publishing Co., Inc. (1994)
Gelernter, D., Carriero, N.: Coordination languages and their significance. Commun. ACM 35(2), 97–107 (1992)
Hindriks, K.V., de Boer, F.S., van der Hoek, W., Meyer, J.-J.C.: Agent programming with declarative goals. In: ATAL 2000, pp. 228–243 (2001)
Hübner, J., Boissier, O., Bordini, R.: A normative programming language for multi-agent organisations. Annals of Mathematics and Artificial Intelligence 62, 27–53 (2011)
Hübner, J., Sichman, J., Boissier, O.: \(\mathcal{S-M}oise^{+}\): A middleware for developing organised multi-agent systems. In: Boissier, O., et al. (eds.) ANIREM 2005 and OOOP 2005. LNCS (LNAI), vol. 3913, pp. 64–78. Springer, Heidelberg (2006)
Juziuk, J., Weyns, D., Holvoet, T.: Design patterns for multi-agent systems: A systematic literature review. In: Shehory, O., Sturm, A. (eds.) Agent-Oriented Software Engineering, pp. 79–99. Springer, Heidelberg (2014)
Kendall, E.A., Krishna, P.V.M., Pathak, C.V.: CB Suresh. Patterns of intelligent and mobile agents. In: Proceedings of the Second International Conference on Autonomous Agents, pp. 92–99. ACM Press, New York (1998)
Krajzewicz, D., Erdmann, J., Behrisch, M., Bieker, L.: Recent development and applications of SUMO - Simulation of Urban MObility. International Journal on Advances in Systems and Measurements 5(3&4), 128–138 (2012)
Minsky, N.H., Ungureanu, V.: Law-governed interaction: A coordination and control mechanism for heterogeneous distributed systems. TOSEM, ACM Transactions on Software Engineering and Methodology 9, 273–305 (2000)
Morreale, V., Francaviglia, G., Centineo, F., Puccio, M., Cossentino Bc, M.: Goal-oriented agent patterns with the practionist framework. In: EUMAS 2006 (2006)
Oluyomi, A., Karunasekera, S., Sterling, L.: A comprehensive view of agent-oriented patterns. Autonomous Agents and Multi-Agent Systems 15(3), 337–377 (2007)
Sauvage, S.: Design patterns for multiagent systems design. In: Monroy, R., Arroyo-Figueroa, G., Sucar, L.E., Sossa, H. (eds.) MICAI 2004. LNCS (LNAI), vol. 2972, pp. 352–361. Springer, Heidelberg (2004)
Schmidt, D., Stal, M., Rohnert, H., Buschmann, F.: Pattern-Oriented Software Architecture. Patterns for Concurrent and Networked Objects, vol. 2. Wiley (2000)
Vázquez-Salceda, J., Aldewereld, H., Dignum, F.P.M.: Implementing norms in multiagent systems. In: Lindemann, G., Denzinger, J., Timm, I.J., Unland, R. (eds.) MATES 2004. LNCS (LNAI), vol. 3187, pp. 313–327. Springer, Heidelberg (2004)
Wampler, D.: Contract4j for design by contract in java: Design pattern like protocols and aspect interfaces. In: Proceedings of the Fifth AOSD Workshop on Aspects, Components, and Patterns for Infrastructure Software, pp. 27–30 (2006)
Weyns, D.: A pattern language for multi-agent systems. In: European Conference on Software Architecture, pp. 191–200 (September 2009)
Weyns, D., Helleboogh, A., Holvoet, T.: How to get multi-agent systems accepted in industry? Int. J. Agent-Oriented Softw. Eng. 3(4), 383–390 (2009)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2014 Springer International Publishing Switzerland
About this paper
Cite this paper
Dastani, M., Testerink, B. (2014). From Multi-Agent Programming to Object Oriented Design Patterns. In: Dalpiaz, F., Dix, J., van Riemsdijk, M.B. (eds) Engineering Multi-Agent Systems. EMAS 2014. Lecture Notes in Computer Science(), vol 8758. Springer, Cham. https://doi.org/10.1007/978-3-319-14484-9_11
Download citation
DOI: https://doi.org/10.1007/978-3-319-14484-9_11
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-14483-2
Online ISBN: 978-3-319-14484-9
eBook Packages: Computer ScienceComputer Science (R0)