Discovering Microservices in Enterprise Systems Using a Business Object Containment Heuristic

  • Adambarage Anuruddha Chathuranga De AlwisEmail author
  • Alistair Barros
  • Colin Fidge
  • Artem Polyvyanyy
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 11230)


The growing impact of IoT and Blockchain platforms on business applications has increased interest in leveraging large enterprise systems as Cloud-enabled microservices. However, large and monolithic enterprise systems are unsuitable for flexible integration with such platforms. This paper presents a technique to support the re-engineering of an enterprise system based on the fundamental mechanisms for structuring its architecture, i.e., business objects managed by software functions and their relationships which influence business object interactions via the functions. The technique relies on a heuristic for deriving business object exclusive containment relationships based on analysis of source code and system logs. Furthermore, the paper provides an analysis of distributing enterprise systems based on the business object containment relationships using the NSGA II software clustering and optimization technique. The heuristics and the software clustering and optimization techniques have been validated against two open-source enterprise systems: SugarCRM and ChurchCRM. The experiments demonstrate that the proposed approach can identify microservice designs which support multiple desired microservice characteristics, such as high cohesion, low coupling, high scalability, high availability, and processing efficiency.


Microservice discovery System reengineering Cloud migration 


  1. 1.
    Newman, S.: Building MSs NGINX, 1st edn. O’Reilly, Sebastopol (2015)Google Scholar
  2. 2.
  3. 3.
    Magal, S.R., Word, J.: Integrated Business Processes with ERP Systems, 1st edn. Wiley, Hoboken (2011)Google Scholar
  4. 4.
    Anquetil, N., Laval, J.: Legacy software restructuring: analyzing a concrete case. In: 15th European Conference on Software Maintenance and Reengineering (CSMR), pp. 279–286 (2011)Google Scholar
  5. 5.
    Candela, I., Bavota, G., Russo, B., Oliveto, R.: Using cohesion and coupling for software remodularization: is it enough? ACM Trans. Softw. Eng. Methodol. (TOSEM) 25, 24 (2016)CrossRefGoogle Scholar
  6. 6.
    Shatnawi, A., Seriai, A.D., Sahraoui, H., Alshara, Z.: Reverse engineering reusable software components from object-oriented APIs. J. Syst. Softw. 131, 442–460 (2017)CrossRefGoogle Scholar
  7. 7.
    Barros, A., Decker, G., Dumas, M., Weber, F.: Correlation patterns in service-oriented architectures. In: Dwyer, M.B., Lopes, A. (eds.) FASE 2007. LNCS, vol. 4422, pp. 245–259. Springer, Heidelberg (2007). Scholar
  8. 8.
    Pẽrez Castillo, R., Garcĩa Rodrĩguez de Guzmãn, I., Caballero, I., Piattini, M.: Software modernization by recovering web services from legacy databases. J. Softw.: Evol. Process 25, 507–533 (2013)Google Scholar
  9. 9.
    Lu, X., Nagelkerke, M., van de Wiel, D., Fahland, D.: Discovering interacting artifacts from ERP systems. IEEE Trans. Serv. Comput. 88, 861–873 (2015)CrossRefGoogle Scholar
  10. 10.
    De Alwis, A., Barros, A., Polyvyanyy, A., Fidge, C.: Function-splitting heuristics for discovery of microservices in enterprise systems. In: International Conference on Service-Oriented Computing (2018). (accepted on 25 July 2018)Google Scholar
  11. 11.
    Kumaran, S., Liu, R., Wu, F.Y.: On the duality of information-centric and activity-centric models of business processes. In: Bellahsène, Z., Léonard, M. (eds.) CAiSE 2008. LNCS, vol. 5074, pp. 32–47. Springer, Heidelberg (2008). Scholar
  12. 12.
    Wei, F., Ouyang, C., Barros, A.: Discovering behavioural interfaces for overloaded web services. In: 2015 IEEE World Congress on Services (SERVICES), pp. 286–293 (2015)Google Scholar
  13. 13.
    Hull, R.: Artifact-centric business process models: brief survey of research results and challenges. In: Meersman, R., Tari, Z. (eds.) OTM 2008. LNCS, vol. 5332, pp. 1152–1163. Springer, Heidelberg (2008). Scholar
  14. 14.
    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). Scholar
  15. 15.
    Deb, K., Pratap, A., Agarwal, S., Meyarivan, T.A.M.T.: A fast and elitist multiobjective genetic algorithm: NSGA-II. IEEE Trans. Evol. Comput. 6, 182–197 (2002)CrossRefGoogle Scholar
  16. 16.
    Microservices a definition of this new architectural term. Accessed 3 May 2018
  17. 17.
    Evans, E.: Domain-Driven Design: Tackling Complexity in the Heart of Software, 1st edn. Addison-Wesley Professional, Boston (2003)Google Scholar
  18. 18.
    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)Google Scholar
  19. 19.
    Bauer, E., Adams, R.: Reliability and Availability of Cloud Computing, 1st edn. Wiley, Hoboken (2012)CrossRefGoogle Scholar
  20. 20.
    Balalaie, A., Heydarnoori, A., Jamshidi, P.: Migrating to cloud-native architectures using microservices: an experience report. In: Celesti, A., Leitner, P. (eds.) ESOCC Workshops 2015. CCIS, vol. 567, pp. 201–215. Springer, Cham (2016). Scholar

Copyright information

© Springer Nature Switzerland AG 2018

Authors and Affiliations

  • Adambarage Anuruddha Chathuranga De Alwis
    • 1
    Email author
  • Alistair Barros
    • 1
  • Colin Fidge
    • 1
  • Artem Polyvyanyy
    • 2
  1. 1.Queensland University of TechnologyBrisbaneAustralia
  2. 2.The University of MelbourneParkvilleAustralia

Personalised recommendations