Advertisement

Function-Splitting Heuristics for Discovery of Microservices in Enterprise Systems

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

Abstract

We present heuristics that help to identify suitable consumer-oriented parts of enterprise systems which could be re-engineered as microservices. Our approach assesses the key structural and behavioural properties common to both enterprise and microservice systems, as needed to guide a microservices discovery process and coherently assess restructuring recommendations. Building upon existing business object and system structural definitions, we present heuristics for two fundamental areas of microservice discovery, namely function splitting based on object subtypes (i.e., the lowest granularity of software based on structural properties) and functional splitting based on common execution fragments across software (i.e., the lowest granularity of software based on behavioural properties). A prototype analysis tool was developed based on the defined heuristics and experiments show that it can identify microservice designs which support multiple microservice characteristics, such as high cohesion, low coupling, high scalability, high availability, and processing efficiency while preserving coherent features of enterprise systems. In particular, we illustrate the usefulness of this new approach by conducting a case study based on customer management systems: SugarCRM and ChurchCRM.

Keywords

Microservice discovery System reengineering Cloud migration 

References

  1. 1.
    Newman, S.: Building MSs NGINX. O’Reilly (2015)Google Scholar
  2. 2.
  3. 3.
    Magal, S.R., Word, J.: Integrated Business Processes with ERP Systems. Wiley, Hoboken (2011)Google Scholar
  4. 4.
    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(3), 24 (2016)CrossRefGoogle Scholar
  5. 5.
    Anquetil, N., Laval, J.: Legacy software restructuring: analyzing a concrete case. In: 2011 15th European Conference on Software Maintenance and Reengineering (CSMR), pp. 279–286. IEEE, March 2011Google Scholar
  6. 6.
    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).  https://doi.org/10.1007/978-3-540-71289-3_20CrossRefGoogle Scholar
  7. 7.
    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(5), 507–533 (2013)CrossRefGoogle Scholar
  8. 8.
    Lu, X., Nagelkerke, M., van de Wiel, D., Fahland, D.: Discovering interacting artifacts from ERP systems. IEEE Trans. Serv. Comput. 8(6), 861–873 (2015)CrossRefGoogle Scholar
  9. 9.
    Polyvyanyy, A., Vanhatalo, J., Völzer, H.: Simplified computation and generalization of the refined process structure tree. In: Bravetti, M., Bultan, T. (eds.) WS-FM 2010. LNCS, vol. 6551, pp. 25–41. Springer, Heidelberg (2011).  https://doi.org/10.1007/978-3-642-19589-1_2CrossRefGoogle Scholar
  10. 10.
    Halpin, T., Morgan, T.: Information modeling and relational databases. Morgan Kaufmann, Burlington (2010)Google Scholar
  11. 11.
    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).  https://doi.org/10.1007/978-3-540-88873-4_17CrossRefGoogle Scholar
  12. 12.
    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_36CrossRefGoogle Scholar
  13. 13.
    Tsai, W.T., Huang, Y., Shao, Q.: Testing the scalability of SaaS applications. In: 2011 IEEE International Conference on Service-Oriented Computing and Applications (SOCA), pp. 1–4. IEEE, December 2011Google Scholar
  14. 14.
    Bauer, E., Adams, R.: Reliability and Availability of Cloud Computing. Wiley, Hoboken (2012)CrossRefGoogle Scholar
  15. 15.
    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).  https://doi.org/10.1007/978-3-319-33313-7_15CrossRefGoogle Scholar
  16. 16.
    Fowler, M.: Microservices a definition of this new architectural term (2014). https://martinfowler.com/articles/microservices.html
  17. 17.
    De Alwis, A., Barros, A., Polyvyanyy, A., Fidge, C.: Technical report: function-splitting heuristics for discovery of microservices in enterprise systems (2018). https://eprints.qut.edu.au/119030/

Copyright information

© Springer Nature Switzerland AG 2018

Authors and Affiliations

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

Personalised recommendations