Developing a Microservices Software System with Spring Could – A Case Study of Meeting Scheduler
The traditional monolithic architecture is to implement the function modules of the application and execute them on the same service port. The entire application system must be repackaged and deployed if there is a program change. With the increase of requirements, the coupling relations between modules become more and more complicated which results in inflexible function expansion and difficult maintenance. Microservices architecture divides a single application into several independent executed services with its business logic and communicates with each other using the REST API or message queue. Therefore, the scalability and maintainability of the system are improved by features such as independent update and independent deployment.
This study implements a Meeting Scheduler monolithic software system using traditional object-oriented software development process. To transform the software into a microservices architecture, the Spring Cloud framework is used to implement the required microservices in the Meeting Scheduler. After completing the transformation from monolithic to microservices architecture, this study explores the development experience of microservices software and establishes a microservices architecture transformation process for software engineers to analyze, design, implement and deploy a software based on microservices.
KeywordsMicroservices architecture Monolithic architecture Spring Cloud Object-oriented software development Service-Oriented Architecture
This study is conducted under the grant MOST 107-2221-E-017-002-MY2 which is subsidized by the Ministry of Science and Technology.
- 1.Erl, T.: Service-oriented Architecture: Concepts, Technology, and Design. Prentice Hall, August 2005Google Scholar
- 2.Jordan, D., Evdemon, J., Alves, A., Arkin, A., Askary, S., Barreto, C., Bloch, B., Curbera, F., Ford, M., Goland, Y.: Web services business process execution language version 2.0. OASIS Standard, vol. 11, no. 120, p. 5 (2007)Google Scholar
- 3.Erl, T.: SOA Principles of Service Design. Prentice Hall, July 2008Google Scholar
- 4.Erl, T.: SOA Design Patterns. Prentice Hall (2009). https://www.ibm.com/developerworks/cn/webservices/ws-soa-design/
- 5.Booth, D., Haas, H., McCabe, F., Newcomer, E., Champion, M., Ferris, C., Orchard, D.: Web Services Architecture, W3C11, February 2004Google Scholar
- 6.Erl, T.: Service-Oriented Architecture: A Field Guide to and Integrating XML and Web Services, Prentice Hall, 26 April 2004Google Scholar
- 7.Fowler, M., Lewis, J.: MicroServices, 25 March 2016. https://www.martinfowler.com/articles/microservices.html
- 8.Docker Inc.: Docker Documentation. https://docs.docker.com/. Accessed 2019
- 9.Pivotal Software: Spring Framework Documentation Version: 5.1.9.RELEASE. https://docs.spring.io/spring/docs/current/spring-framework-reference/. Accessed 2019
- 10.Webb, P., et al.: Spring Boot Reference Guide 2.1.7.RELEASE. https://docs.spring.io/spring-boot/docs/current/reference/html/. Accessed 2019
- 11.Pivotal Software:. Spring Cloud Reference Version: Greenwich.RELEASE. https://www.docs4dev.com/docs/en/spring-cloud/Greenwich.RELEASE/reference. Accessed 2019
- 12.Pivotal Software: Spring Cloud. https://spring.io/projects/spring-cloud. Accessed 2019
- 13.Evans, E.: Domain-Driven Design: Tackling Complexity in the Heart of Software. Addison-Wesley Professional, August 2003Google Scholar
- 14.Kane, S.P., Matthias, K.: Docker: Up & Running: Shipping Reliable Containers in Production., O’Reilly Media, October 2018Google Scholar
- 15.Newmain, S.: Building Microservices: Designing Fine-Grained Systems. Oreilly & Associates Inc., February 2015Google Scholar