Patterns for Migration of SOA Based Applications to Microservices Architecture

Authors

  • Vinay Raj National Institute of Technology Warangal, Telangana, India https://orcid.org/0000-0002-4739-5893
  • Ravichandra Sadam National Institute of Technology Warangal, Telangana, India

DOI:

https://doi.org/10.13052/jwe1540-9589.2051

Keywords:

Distributed Systems, service oriented architecture, microservices, migration, migration patterns

Abstract

Service oriented architecture (SOA) has been widely used in the design of enterprise applications over the last two decades. Though SOA has become popular in the integration of multiple applications using the enterprise service bus, there are few challenges related to delivery, deployment, governance, and interoperability of services. To overcome the design and maintenance challenges in SOA, a new architecture of microservices has emerged with loose coupling, independent deployment, and scalability as its key features. With the advent of microservices, software architects have started to migrate legacy systems to microservice architecture. However, many challenges arise during the migration of SOA to microservices, including the decomposition of SOA to microservice, the testing of microservices designed using different programming languages, and the monitoring the microservices. In this paper, we aim to provide patterns for the most recurring problems highlighted in the literature i.e, the decomposition of SOA services, the size of each microservice, and the detection of anomalies in microservices. The suggested patterns are combined with our experience in the migration of SOA-based applications to the microservices architecture, and we have also used these patterns in the migration of other SOA applications. We evaluated these patterns with the help of a standard web-based application.

Downloads

Download data is not yet available.

Author Biographies

Vinay Raj, National Institute of Technology Warangal, Telangana, India

Vinay Raj has received his Masters degree from BITS-Pilani, India in the year 2016. He is currently Ph.D. student in the Department of Computer Science and Engineering of National Institute of Technology Warangal (NITW), India. He has previously worked in TATA Consultancy Services (TCS), Hyderabad as Developer and Analyst in SOA projects. He has published one conference paper in the area of microservices. His research interests include Service Oriented Architecture, Microservices and Software Engineering.

Ravichandra Sadam, National Institute of Technology Warangal, Telangana, India

Ravichandra Sadam has received his Ph.D. in computer science from National Institute of Technology (NIT) Warangal, India in the year 2015. He is currently an associate professor in the department of computer science and engineering , National Institute of Technology (NIT) Warangal, Telangana, India. His research interests include Software Engineering, Software Architecture, Design Patterns and Service Oriented Architecture. He is a member of IEEE and ISTE.

References

T. Salah, M.J. Zemerly, C.Y. Yeun, M. Al-Qutayri, and Y. Al-Hammadi. The evolution of distributed systems towards microservices architecture. In International Conference for Internet Technology and Secured Transactions (ICITST), pp. 318–325, IEEE 2016.

L. Garces-Erice. Building an enterprise service bus for real-time SOA: A messaging middleware stack. In 33rd Annual IEEE International Computer Software and Applications Conference. Vol. 2, pp. 79–84, 2009.

V. Raj, and S. Ravichandra. Microservices: A perfect SOA based solution for Enterprise Applications compared to Web Services. In 3rd IEEE International Conference on Recent Trends in Electronics, Information & Communication Technology (RTEICT), pp. 1531–1536, 2018.

N. Dragoni, S. Giallorenzo, A.L. Lafuente, M. Mazzara, F. Montesi, R. Mustafin, and L. Safina. Microservices: yesterday, today, and tomorrow. In Present and ulterior software engineering. Springer, Cham. pp. 195–216, 2017.

J. Thönes. Microservices. In IEEE software, 32(1), pp. 116–116, 2015.

K. Brown and B. Woolf. Implementation patterns for microservices architectures. In Proceedings of the 23rd Conference on Pattern Languages of Programs, pp. 1–35, 2016.

M. Villamizar, O. Garcés, H. Castro, M. Verano, L. Salamanca, R. Casallas, S. Gil. Evaluating the monolithic and the microservice architecture pattern to deploy web applications in the cloud. In 10th Computing Colombian Conference (10CCC), pp. 583–590, IEEE 2015.

B. Boehm and R. Turner. Management challenges to implementing agile processes in traditional development organizations. IEEE software, 22(5), pp. 30–39. 2005.

S. Tyszberowicz, R. Heinrich, B.Liu, and Z. Liu. Identifying microservices using functional decomposition. In International Symposium on Dependable Software Engineering: Theories, Tools, and Applications, (pp. 50–65). Springer, Cham. 2018.

J. Zalewski. Real-time software architectures and design patterns: Fundamental concepts and their consequences. Annual Reviews in Control, 25, pp. 133–146. 2001.

F. Lakhani. and M.J. Pont. Using design patterns to support migration between different system architectures. In 5th International Conference on System of Systems Engineering, (pp. 1–6). IEEE. 2010.

J. Soldani, D.A. Tamburri, and W.J. Van Den Heuvel. The pains and gains of microservices: A systematic grey literature review. Journal of Systems and Software, 146, pp. 215–232, 2018.

S. Hassan and R. Bahsoon. Microservices and their design trade-offs: A self-adaptive roadmap. In IEEE International Conference on Services Computing (SCC), pp. 813–818, 2016.

A. Balalaie, A. Heydarnoori, and P. Jamshidi. Migrating to cloud-native architectures using microservices: an experience report. In European Conference on Service-Oriented and Cloud Computing, pp. 201–215. Springer, Cham. 2015.

A. Balalaie, A. Heydarnoori, and P. Jamshidi. Microservices architecture enables devops: Migration to a cloud-native architecture. IEEE Software, 33(3), pp. 42–52. 2016.

A. Balalaie, A. Heydarnoori, P. Jamshidi, D.A. Tamburri, and T. Lynn. Microservices migration patterns. Software: Practice and Experience, 48(11), pp. 2019–2042. 2018.

D. Taibi, V. Lenarduzzi, and C. Pahl. Processes, motivations, and issues for migrating to microservices architectures: An empirical investigation. IEEE Cloud Computing, 4(5), pp. 22–32. 2017.

Leymann, F., Fehling, C., Wagner, S. and Wettinger, J. Native cloud applications: Why virtual machines images and containers miss. In Proceedings of the 6th International Conference on Cloud Computing, pp. 7–15. SciTePress. 2016.

H. Knoche, and W. Hasselbring. Using microservices for legacy software modernization. IEEE Software, 35(3), pp. 44–49. 2018.

A. Yanchuk, A. Ivanyukovich, and M. Marchese. Towards a mathematical foundation for service-oriented applications design. Journal of Software 1(1):32–9. 2006.

P. Bhallamudi, S. Tilley, and A. Sinha. Migrating a Web-based application to a service-based system-an experience report. In 11th IEEE International Symposium on Web Systems Evolution pp. 71–74. IEEE. 2009.

V. Raj, and S. Ravichandra. A service graph based extraction of microservices from monolithic services of SOA. Software: Practice and Experience. 2020;.

Tajamolian M, Ghasemzadeh M. A Versioning Approach to VM Live Migration. International Journal of Engineering. 2018 Nov 1;31(11):1838-45.

Jeyanthi N, Shabeeb H, Durai MS, Thandeeswaran R. Reputation based Service for Cloud User Environment. International Journal of Engineering (IJE) Transactions B: Applications. 2014 Aug 1;27(8):1179–84.

Published

2021-07-10

Issue

Section

Articles