Abstract
A key impediment towards maturing microservice architecture conceptions is the uncertainty about what it means to design fine-grained functionality for microservices. Under a traditional service-oriented architecture (SOA), the unit of functionality for software components concerns individual business domain objects and encapsulated operations, enabling desirable architectural properties such as high cohesion and loose-coupling of its components. However, at present it is not clear how this SOA design strategy should be refined for microservices nor, more generally, how design considerations for different degrees of granularity apply, in a consistent and systematic way, for large SOA systems to smaller microservices. This paper proposes microservice patterns, as a contribution to the maturity of microservice architectures, through the refinement of the functional structure of SOAs. The patterns are derived by considering the splitting of business object (BO) operations and salient types of BO relationships, which influence software structure (as captured in UML): object association, exclusive containment, inclusive containment and specialisation (i.e., subtyping). The viability of the patterns for evolving large SOA systems into microservices is demonstrated through automated microservices discovery algorithms, on two open-source enterprise systems used widely in practice, Dolibarr and SugarCRM.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsNotes
- 1.
\(A^*\) denotes the application of the Kleene star operation to set A.
- 2.
Given a set A, by \(\mathcal {P}(A)\) we denote the powerset of A.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
References
Adopting Microservices at Netflix: Lessons for Architectural Design. https://www.nginx.com/blog/microservices-at-netflix-architectural-best-practices. Accessed 5 May 2019
Newman, S.: Building Microservices: Designing Fine-Grained Systems. O’Reilly, Sebastopol (2015)
Microservices a definition of this new architectural term. https://martinfowler.com/arti cles/microservices.html. Accessed 5 May 2019
Evans, E.: Domain-Driven Design: Tackling Complexity in the Heart of Software. Addison-Wesley Professional, Boston (2004)
Erl, T.: SOA Design Patterns (Paperback). Pearson Education, London (2008)
Taibi, D., Lenarduzzi, V., Pahl, C.: Architectural patterns for microservices: a systematic mapping study. In: CLOSER, pp. 221–232 (2018)
Barros, A., Duddy, K., Lawley, M., Milosevic, Z., Raymond, K., Wood, A.: Processes, roles, and events: UML concepts for enterprise architecture. In: Evans, A., Kent, S., Selic, B. (eds.) UML 2000. LNCS, vol. 1939, pp. 62–77. Springer, Heidelberg (2000). https://doi.org/10.1007/3-540-40011-7_5
Gamma, E.: Design Patterns: Elements of Reusable Object-Oriented Software. Pearson Education India, Chennai (1995)
van der Aalst, W.: Workflow patterns. In: Liu, L., Ozsu, M.T. (eds.) Encyclopedia of Database Systems, pp. 3557–3558. Springer, Boston (2009). https://doi.org/10.1007/978-0-387-39940-9
Barros, A., Dumas, M., ter Hofstede, A.H.M.: Service interaction patterns. In: van der Aalst, W.M.P., Benatallah, B., Casati, F., Curbera, F. (eds.) BPM 2005. LNCS, vol. 3649, pp. 302–318. Springer, Heidelberg (2005). https://doi.org/10.1007/11538394_20
Decker, G., Barros, A., Kraft, F.M., Lohmann, N.: Non-desynchronizable service choreographies. In: Bouguettaya, A., Krueger, I., Margaria, T. (eds.) ICSOC 2008. LNCS, vol. 5364, pp. 331–346. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-89652-4_26
De Alwis, A.A.C., Barros, A., Polyvyanyy, A., Fidge, C.: Function-splitting heuristics for discovery of microservices in enterprise systems. In: Pahl, C., Vukovic, M., Yin, J., Yu, Q. (eds.) ICSOC 2018. LNCS, vol. 11236, pp. 37–53. Springer, Cham (2018). https://doi.org/10.1007/978-3-030-03596-9_3
Nooijen, E.H.J., van Dongen, B.F., Fahland, D.: Automatic discovery of data-centric and artifact-centric processes. In: La Rosa, M., Soffer, P. (eds.) BPM 2012. LNBIP, vol. 132, pp. 316–327. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-36285-9_36
Andrews, R., Suriadi, S., Ouyang, C., Poppe, E.: Towards event log querying for data quality. In: Panetto, H., et al. (eds.) OTM 2018. LNCS, vol. 11229. Springer, Cham (2018). https://doi.org/10.1007/978-3-030-02610-3_7
De Alwis A.A.C., Barros A., Fidge C., Polyvyanyy A.: Discovering microservices in enterprise systems using a business object containment heuristic. In: Panetto H., et al. (eds.) OTM 2018 Conferences On the Move to Meaningful Internet Systems, OTM 2018. LNCS, vol. 11230. Springer, Cham (2018). https://doi.org/10.1007/978-3-030-02671-4_4
Tsai, W.T., Huang, Y., Shao, Q.: Testing the scalability of SaaS applications. In: IEEE International Conference on Service-Oriented Computing and Applications (SOCA), pp. 1–4 (2011)
Bauer, E., Adams, R.: Reliability and Availability of Cloud Computing, 1st edn. Wiley, Hoboken (2012)
Candela, I., Bavota, G., Russo, B., Oliveto, R.: Using cohesion and coupling for software remodularization: is it enough? In: ACM Transactions on Software Engineering and Methodology (TOSEM), p. 24 (2016)
A pattern language for microservices. https://microservices.io/patterns/. Accessed 5 Aug 2019
Technical report for SugarCRM. https://drive.google.com/file/d/1u0Ai0XNOx-3yGoz0Keycxj093_NyDrJl/view?usp=sharing
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2019 Springer Nature Switzerland AG
About this paper
Cite this paper
De Alwis, A.A.C., Barros, A., Fidge, C., Polyvyanyy, A. (2019). Business Object Centric Microservices Patterns. In: Panetto, H., Debruyne, C., Hepp, M., Lewis, D., Ardagna, C., Meersman, R. (eds) On the Move to Meaningful Internet Systems: OTM 2019 Conferences. OTM 2019. Lecture Notes in Computer Science(), vol 11877. Springer, Cham. https://doi.org/10.1007/978-3-030-33246-4_30
Download citation
DOI: https://doi.org/10.1007/978-3-030-33246-4_30
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-33245-7
Online ISBN: 978-3-030-33246-4
eBook Packages: Computer ScienceComputer Science (R0)