Reusable Coordination Components: Reliable Development of Cooperative Information Systems
Abstract
Today’s emerging trends like factory of the future, big data, Internet-of-things, intelligent traffic solutions, cyber-physical systems, wireless sensor networks, smart home, smart city and smart grid raise new challenges on software development. They are characterized by high concurrency, distribution and dynamics as well as huge numbers of heterogeneous devices, resources and users that must collaborate in a reliable way. The management of the interactions and dependencies between the participants is a complex task posing massive coordination problems. The here proposed approach is twofold: (i) to analyze similarities in the communication and synchronization behavior of such applications and to identify coordination patterns; and (ii) to give a precise specification of them by means of a suitable coordination model which enables the development of coordination pattern-based software components as solutions. The vision is to compose advanced cooperative information systems from proven, configurable, reusable, generic components that run on a suitable target platform, in order to reduce software development time, risks and costs. In this paper we delimit the idea of “coordination patterns” from other related pattern approaches and motivate the need for a well-defined model to specify them. Several coordination models to achieve this goal are discussed, and the advantages of a new coordination model termed the “Peer Model” are pointed out. The feasibility of the approach to identify coordination patterns, to model them and to provide generic components that can be reused in different scenarios through configuration and composition is evaluated by means of a coordination pattern found in several industrial use cases.
References
- 1. , The interdisciplinary study of coordination, ACM Comput. Surv. 26(1) (1994) 87–119. Crossref, ISI, Google Scholar
- 2. , What is the complexity of a distributed computing system? Complexity 12(6) (2007) 37–45. Crossref, ISI, Google Scholar
- 3. , Complexity: Concept, causes and control, in Proc. Sixth IEEE Int. Conf. Engineering of Complex Computer Systems (ICECCS) (2000), pp. 2–9. Google Scholar
- 4. , Complexity in design, Computer 38(10) (2005) 10–12. Crossref, ISI, Google Scholar
- 5. , A Pattern Language: Towns, Buildings, Construction (Oxford University Press, 1978). Google Scholar
- 6. , Modeling the representation of architectural design cases, Autom. Construct. 2(1) (1993) 1–10. Crossref, Google Scholar
- 7. , Design Patterns: Elements of Reusable Object-Oriented Software (Addison-Wesley, 1995). Google Scholar
- 8. , Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked Objects (Wiley, 2000). Google Scholar
- 9. , WSDL 2.0 message exchange patterns: Limitations and opportunities, in Proc. Third Int. Conf. Internet and Web Applications and Services (ICIW) (IEEE, 2008), pp. 168–173. Google Scholar
- 10. , Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions (Addison-Wesley, 2003). Google Scholar
- 11. , Workflow patterns, Distrib. Parallel Databases 14(1) (2003) 5–51. Crossref, ISI, Google Scholar
- 12. , Workflow patterns put into context, Softw. Syst. Model. 11(3) (2012) 319–323. Crossref, ISI, Google Scholar
- 13. , Approaches to modeling business processes: A critical analysis of BPMN, workflow patterns and YAWL, Softw. Syst. Model. 11(3) (2012) 305–318. Crossref, ISI, Google Scholar
- 14. , Cloud Computing Patterns — Fundamentals to Design, Build, and Manage Cloud Applications (Springer, 2014). Google Scholar
- 15. , Reo: A channel-based coordination model for component composition, Math. Struct. Comput. Sci. 14(3) (2004) 329–366. Crossref, ISI, Google Scholar
- 16. , Peer-based programming model for coordination patterns, in Proc. 15th Int. Conf. Coordination Models and Languages (COORDINATION) (Springer, 2013), pp. 121–135. Google Scholar
- 17. , Generative communication in Linda, ACM Trans. Program. Lang. Syst. 7(1) (1985) 80–112. Crossref, ISI, Google Scholar
- 18. , Introducing the concept of customizable structured spaces for agent coordination in the production automation domain, in Proc. 8th Int. Conf. Autonomous Agents and Multiagent Systems (AAMAS) (IFAAMAS, 2009), pp. 625–632. Google Scholar
- 19. , The many faces of publish/subscribe, ACM Comput. Surv. 35(2) (2003) 114–131. Crossref, ISI, Google Scholar
- 20. , ACTORS: A Model of Concurrent Computation in distributed systems (MIT Press, 1990). Google Scholar
- 21. C. A. Petri, Kommunikation mit Automaten, Ph.D. thesis, Technische Hochschule Darmstadt (1962). Google Scholar
- 22. E. Börger and J. K. Huggins, Abstract state machines 1988–1998: Commented ASM bibliography, arXiv:cs/9811014 [cs.SE]. Google Scholar
- 23. , Comparing three semantics for Linda-like languages, Theor. Comput. Sci. 240(1) (2000) 49–90. Crossref, ISI, Google Scholar
- 24. , Programmable coordination media, in Proc. Second Int. Conf. Coordination Languages and Models (COORDINATION) (Springer, 1997), pp. 274–288. Google Scholar
- 25. , LIME: A coordination model and middleware supporting mobility of hosts and agents, ACM Trans. Softw. Eng. Methodol. 15(3) (2006) 279–328. Crossref, ISI, Google Scholar
- 26. , TuCSoN: A coordination model for mobile information agents, in Proc. 1st Workshop Innovative Internet Information Systems (1998), pp. 177–187. Google Scholar
- 27. , Solving the Linda multiple RD problem, in Proc. First Int. Conf. Coordination Languages and Models (COORDINATION) (Springer, 1996), pp. 357–367. Google Scholar
- 28. , Integration of XVSM spaces with the web to meet the challenging interaction demands in pervasive scenarios, Ubiquit. Comput. Commun. J. 3 (2008) 1–12. Google Scholar
- 29. , Algebraic foundation of a data model for an extensible space-based collaboration crotocol, in Proc. 2009 Int. Database Engineering and Applications Symp. (IDEAS) (ACM, 2009), pp. 301–306. Google Scholar
- 30. S. Craß, A formal model of the extensible virtual shared memory (XVSM) and its implementation in Haskell — Design and specification, Master’s thesis, TU Vienna (2010). Google Scholar
- 31. , JavaSpaces Principles, Patterns, and Practice, 1st edn. (Addison-Wesley, 1999). Google Scholar
- 32. , Coordination models and languages as software integrators, ACM Comput. Surv. 28 (1996) 300–302. Crossref, ISI, Google Scholar
- 33. , LIME: Linda meets mobility, in Proc. 1999 Int. Conf. Software Engineering (ICSE) (ACM, 1999), pp. 368–377. Google Scholar
- 34. , A decentralized access control model for dynamic collaboration of autonomous peers, in Proc. 11th EAI Int. Conf. Security and Privacy in Communication Networks (SecureComm) (Springer, 2015), pp. 519–537. Google Scholar
- 35. , Securing a space-based service architecture with coordination-driven access control, J. Wirel. Mob. Netw. Ubiquit. Comput. Dependable Appl. 4(1) (2013) 76–97. Google Scholar
- 36. , Extending a peer-based coordination model with composable design patterns, in Proc. 23rd Euromicro Int. Conf. Parallel, Distributed, and Network-Based Processing (PDP) (IEEE, 2015), pp. 53–61. Google Scholar
- 37. ,
Self-organized load balancing through swarm intelligence , in Next Generation Data Technologies for Collective Computational Intelligence,Studies in Computational Intelligence , eds. N. BessisF. Xhafa (Springer, 2011), pp. 195–224. Crossref, Google Scholar - 38. , A Space-based generic pattern for self-initiative load balancing agents, in Proc. 10th Int. Workshop Engineering Societies in the Agents World (ESAW),
Lecture Notes in Computer Science , Vol. 5881 (Springer, 2009), pp. 17–32. Google Scholar - 39. , A survey of peer-to-peer content distribution technologies, ACM Comput. Surv. 36(4) (2004) 335–371. Crossref, ISI, Google Scholar
- 40. , The practitioner’s guide to coloured Petri Nets, Int. J. Softw. Tools Technol. Transf. 2(2) (1998) 98–132. Crossref, Google Scholar
- 41. , A brief survey and synthesis of the roles of time in Petri Nets, Math. Comput. Model. 31(10–12) (2000) 55–68. Crossref, ISI, Google Scholar
- 42. , Modeling distributed algorithms by abstract state machines compared to Petri Nets, in Proc. 5th Int. Conf. Abstract State Machines, Alloy, B, TLA, VDM, and Z (ABZ) (Springer, 2016), pp. 3–34. Google Scholar
- 43. , Models and temporal logical specifications for timed component connectors, Softw. Syst. Model. 6(1) (2007) 59–82. Crossref, ISI, Google Scholar
- 44. , Time and data-aware analysis of graphical service models in Reo, in Proc. 8th IEEE Int. Conf. Software Engineering and Formal Methods (2010), pp. 125–134. Google Scholar
- 45. , A universal modular ACTOR formalism for artificial intelligence, in Proc. 3rd Int. Joint Conf. Artificial Intelligence (IJCAI) (Morgan Kaufmann, 1973), pp. 235–245. Google Scholar
- 46. , Schedulability of asynchronous real time concurrent objects, J. Log. Algebr. Program. 78(5) (2009) 402–416. Crossref, Google Scholar
- 47. Lightbend, Inc., Akka Java Documentation, Release 2.4.7, edn. (Lightbend, 2016). Google Scholar
- 48. P. Bernstein, S. Bykov, A. Geller, G. Kliot and J. Thelin, Orleans: Distributed virtual actors for programmability and scalability, Technical Report MSR-TR-2014-41, Microsoft (2014). Google Scholar
- 49. D. Rauch, PeerSpace.net: Implementing and evaluating the Peer Model with focus on API usability, Master’s thesis, TU Wien (2014). Google Scholar
- 50. , Automated measurement of API usability: The API concepts framework, Inf. Softw. Technol. 61 (2015) 145–162. Crossref, ISI, Google Scholar
- 51. , Approaching coordination in distributed embedded applications with the Peer Model DSL, in Proc. 40th Euromicro Conf. Software Engineering and Advanced Applications (SEAA) (IEEE, 2014), pp. 64–68. Google Scholar
- 52. , Flexible modeling of policy-driven upstream notification strategies, in Proc. 29th Annu. ACM Symp. Applied Computing (SAC) (2014), pp. 1352–1354. Google Scholar
- 53. , Using tuple-spaces to manage the storage and dissemination of spatial-temporal content, J. Comput. Syst. Sci. 77(2) (2011) 322–331. Crossref, ISI, Google Scholar
- 54. , An adaptive and flexible replication mechanism for space-based computing, in Proc. 8th Int. Joint Conf. Software and Technologies (ICSOFT) (SciTePress, 2013), pp. 599–606. Google Scholar
- 55. , A generic load balancing framework for cooperative ITS applications, in Proc. 3rd Int. Conf. Connected Vehicles and Expo (ICCVE) (IEEE, 2014), pp. 385–390. Google Scholar
- 56. , Foundations for a model-driven integration of business services in a safety-critical application domain, in Proc. 35th Euromicro Conf. Software Engineering and Advanced Applications (SEAA) (IEEE, 2009), pp. 267–274. Google Scholar


