From Monolith to Microservices: A Dataflow-Driven Approach

Emerging from the agile practitioner communities, the microservice-oriented architecture emphasizes implementing and employing multiple small-scale and independently deployable microservices, rather than encapsulating all function capabilities into one monolithic application. Correspondingly, microservice-oriented decomposition, which has been identified to be an extremely challenging and complex task, plays a crucial and prerequisite role in developing microservice-based software systems. To address this challenge and reduce the complexity, we proposed a top-down analysis approach and developed a dataflow-driven decomposition algorithm. In brief, a three-step process is defined: first, engineers together with users conduct business requirement analysis and construct a purified while detailed dataflow diagram of the business logic; then, our algorithm combines the same operations with the same type of output data into a virtual abstract dataflow; finally, the algorithm extracts individual modules of "operation and its output data" from the virtual abstract dataflow to represent the identified microservice candidates. We have employed two use cases to demonstrate our microservice identification mechanism, as well as making comparisons with an existing microservice identification tool. The comparison and evaluation show that, our dataflow-driven identification mechanism is able to deliver more rational, objective, understandable and consistent microservice candidates, through a more rigorous and practical implementation procedure.

[1]  Nour Ali,et al.  A Systematic Mapping Study in Microservice Architecture , 2016, 2016 IEEE 9th International Conference on Service-Oriented Computing and Applications (SOCA).

[2]  Olaf Zimmermann,et al.  Microservices tenets , 2017, Computer Science - Research and Development.

[3]  Mazin S. Yousif,et al.  Microservices , 2016, IEEE Cloud Comput..

[4]  Doreen Meier,et al.  Structured Design Fundamentals Of A Discipline Of Computer Program And Systems Design , 2016 .

[5]  Olaf Zimmermann,et al.  Microservices Tenets : Agile Approach to Service Development and Deployment Overview and Vision Paper , SummerSoC 2016 , 2017 .

[6]  Hengnian Qi,et al.  A Service-Oriented Analysis and Design Approach Based On Data Flow Diagram , 2009, 2009 International Conference on Computational Intelligence and Software Engineering.

[7]  David Jaramillo,et al.  Leveraging microservices architecture by using Docker technology , 2016, SoutheastCon 2016.

[8]  Divyanand Malavalli,et al.  Scalable microservice based architecture for enabling DMTF profiles , 2015, 2015 11th International Conference on Network and Service Management (CNSM).

[9]  R. Tingey Structured Design: Fundamentals of a Discipline of Computer Program and Systems Design, , 2006 .

[10]  Olaf Zimmermann,et al.  Service Cutter: A Systematic Approach to Service Decomposition , 2016, ESOCC.

[11]  José Ignacio Fernández Villamor,et al.  Microservices: Lightweight Service Descriptions for REST Architectural Style , 2010, ICAART 2010.

[12]  Igor Cavrak,et al.  Architecture of an interoperable IoT platform based on microservices , 2016, 2016 39th International Convention on Information and Communication Technology, Electronics and Microelectronics (MIPRO).

[13]  Kamran Zamanifar,et al.  QoS decomposition for service composition using genetic algorithm , 2013, Appl. Soft Comput..

[14]  Tobias Schneider Achieving Cloud Scalability with Microservices and DevOps in the Connected Car Domain , 2016, Software Engineering.

[15]  Rami Bahsoon,et al.  Microservice Ambients: An Architectural Meta-Modelling Approach for Microservice Granularity , 2017, 2017 IEEE International Conference on Software Architecture (ICSA).

[16]  A. Guercio,et al.  Decomposition of data flow diagrams , 1992, Proceedings Fourth International Conference on Software Engineering and Knowledge Engineering.

[17]  Jing Zhao,et al.  A decomposition-based approach for service composition with global QoS guarantees , 2012, Inf. Sci..

[18]  Edward Yourdon,et al.  Structured design : fundamentals of a discip!ine of computer proqram and system desiqn , 1979 .

[19]  Michael Fisher,et al.  The Art of Scalability: Scalable Web Architecture, Processes, and Organizations for the Modern Enterprise , 2009 .

[20]  Patricia Lago,et al.  Research on Architecting Microservices: Trends, Focus, and Potential for Industrial Adoption , 2017, 2017 IEEE International Conference on Software Architecture (ICSA).

[21]  Gabor Kecskemeti,et al.  The ENTICE approach to decompose monolithic services into microservices , 2016, 2016 International Conference on High Performance Computing & Simulation (HPCS).