🍱 Today's menu

Hi πŸ‘‹, comments?

Contact me

v26.7.160724

πŸ“„ Author accepted manuscript (green open access). This is the authors' own version, self-archived for readers who cannot reach the paywalled version. Copyright stays with the original publisher. The version of record is available at the DOI listed in the header below.

Microservice Based Architecture: The Development of Rapid Prototyping Supportive Tools for Project Based Learning

Authors: Irwan Alnarus KautsarΒΉ, Arik Bagus SetyawanΒΉ, M. Ruslianor MaikaΒ², Jagad Yudha AwaliΒΉ, Agoes Nur BudimanΒ³

ΒΉ Informatics Department, Universitas Muhammadiyah Sidoarjo, Indonesia
Β² Sharia Banking Department, Universitas Muhammadiyah Sidoarjo, Indonesia
Β³ Research Partner, PT. Ijabqobul Muamalah Indonesia, Sidoarjo, Indonesia

Published in: 2023 IEEE World Engineering Education Conference (EDUNINE)
DOI: 10.1109/EDUNINE57531.2023.10102884
IEEE: https://ieeexplore.ieee.org/abstract/document/10102884


Abstract

This paper presents the migration of rapid prototyping supportive tools systems from monolith into microservice architecture that will be used as the implementation of Project Based Learning. As in early development, the developed supportive tool was the monolith architecture and web based platform. As the growth of the students as users and addition of the rapid prototyping framework modules that will be used, the monolith architectures are urged to decompose its services into a more modular way of web services. As a result, the newest version will take advantage of a number of benefits offered by microservice-based architecture, including modularity, scalability and maintainability. The future features that are needed as the implementation of the learning based systems will be more easy to integrate as the beneficial of the microservices-based architectures.

Keywords: microservice, rapid prototyping, supportive tool, project based learning


I. Introduction

Numerous web services that are constantly and continually updated have been created and are being operated as a result of the development of cloud computing and web technology. A multi-layered architecture with a monolithic design is typically used to build several web-based applications or web services [1], [2]. The internal implementation of these layers is becoming more challenging, and changing the system can necessitate extensive rebuilds and redeployments [3], [4]. For a system that needs to change often and continuously (like agile software development), there must be a lot of changes that make development and operation difficult [5].

Microservices can be viewed as a technique for designing software applications that, by inheriting the principles and concepts of the Service-Oriented Architecture (SOA) style, allows a service-based application to be structured as a collection of very small and connected software services. Microservices are called "micro" not because of the sum of the lines of code, but because of their specific roles for the sake of platform reliability.

Several studies [6], [7] have shown similar efforts to transition monoliths to microservices architecture. Some research has proposed repackaging the program, refactoring the code, and then refactoring the data [8], [9]. This paper presents the migration from monolith to microservice-based architecture for rapid prototyping supportive tools used in Project Based Learning.


II. Problem Analysis

A. Project-based Learning and Prototyping Framework

Project-based Learning (PBL) is one type of learning model that challenges students to solve real-world issues [18]–[21]. Key components include presenting students with incomplete digital services, promoting self-discipline by allowing students to define their working hours, and encouraging teamwork and interdisciplinary collaboration.

The problem: "What are the suitable prototyping frameworks, not only for freshman year but also for 3rd and 4th year bachelor students?" These questions are urgent since the Indonesian Higher Education Ministry implemented Merdeka Belajar Kampus Merdeka (MBKM) [22], pushing students to have collaboration across departments (adapting interdisciplinary learning).

B. Supportive Tools and Prototyping Framework

A supportive tool is a platform used to support educators in implementing a learning model [23], [24]. Previously, various prototyping frameworks had been chosen: Cause-Effect-Solution (CES) and Functional/Non-Functional (F/NF) for first- and second-year students, and Business Model Canvas (BMC) and Platform Design Canvas (PDC) for 3rd and 4th years respectively.

Because they use the same platform built on monolithic architecture, the load and server response time quickly become an issue.

Fig. 1. Supportive tool with monolith architecture


III. Proposed Method

A. Microservices Based Architecture (MBSA)

Microservice is an architectural approach that separates a system into small, lightweight services [28]. Each microservice runs in its own process and connects using lightweight communication protocols such as REST API [32]. These microservices are based on business capabilities and can be independently delivered by completely automated procedures [33].

Fig. 2. Supportive tool microservice architecture

Figure 1 depicts a monolithic architecture in which system modules (authentication, notification, progress reporting, and log services) are centralized at a single database engine. Figure 2 shows the services are decomposed into separate REST API services along with a decentralized database engine.

B. Interprocess Communications

The prototyping microservices (CES, FNF, BMC, and PDC) and system modules (authentication, notification, progress report, and log services) must have the ability to have interservice communications. Direct point-to-point communication is the most straightforward approach.

Fig. 3. Interprocess Communication between microservices

We implemented microservice using Flask and Nameko framework. As the number of microservices increases, point-to-point communication will become more difficult. An API-Gateway design is used as the primary entry point for all clients.

C. Service Registry

Due to the high density of microservices and the possibility of continuous request changes as part of agile development, the service registry concept provides a solution. The locations of the microservice instances are registered when each new service instance starts. Consul (by HashiCorp) is used as the service registry.

Fig. 4. Service registry concept

D. Containerization

To ensure isolation and portability, all microservices are containerized using Docker. Each service has its own Dockerfile and can be orchestrated using Docker Compose.

Fig. 5. Docker compose configuration


IV. Implementation and Results

A. Performance Testing

Response time tests were conducted comparing the monolithic (Server A) and microservice (Server B) architectures.

Fig. 6. Response time comparison

B. Student Perception

Students were asked about their experiences using the supportive tools.

Fig. 7. Student questionnaire results

Key findings: - More than 83% of respondents express agreement that supportive tools facilitate collaboration while prototyping - 36% of students felt there was a difference in response from both servers - 63% express the opinion that Server B (microservice) appeared to be faster than Server A (monolith)


V. Conclusion and Future Work

The monolithic tools were converted to a microservice architecture. The migrated design includes the OAuth2 and OpenID API security standards. This reduces security threats since the databases are decentralized to their services. The platform performance developed with microservice architecture offers a better experience for lecturers and students. The use of microservice-based architecture offers flexibility when adapting new prototyping frameworks. Because when deploying the new service, there is no need to terminate the whole prototyping service.


Acknowledgment

The authors thank Kementerian Pendidikan, Kebudayaan, Riset, and Teknologi for funding this work (Contract: 073/E5/P6.02.00.PT/2022, 019/SP2H/PT-L/LL7/2022, 621.06/II.3.AU/14.00/C/PER/VI/2022). The authors also thank Universitas Muhammadiyah Sidoarjo.


References

[1] "Effective Optimization of Web Sites for Mobile Access," J. Interactive Advertising, vol. 9, no. 1.
[2] S. BaΕ‘karada et al., "Architecting Microservices: Practical Opportunities and Challenges," J. Comput. Inf. Syst., vol. 60, no. 5, pp. 428–436, 2020.
[3] W. K. G. AssunΓ§Γ£o et al., "Variability management meets microservices," in Proc. 24th ACM SPLC, pp. 1–6, 2020.
[4] T. Killalea, "The Hidden Dividends of Microservices," Queue, vol. 14, no. 3, pp. 25–34, 2016.
[5] F. Li and L. Gelbke, "Microservice architecture in industrial software delivery on edge devices," in Proc. 19th Int. Conf. Agile Software Dev., pp. 1–4, 2018.
[6] O. Al-Debagy and P. Martinek, "Extracting Microservices' Candidates from Monolithic Applications," in 2020 IEEE 15th SoSE, pp. 289–294, 2020.
[7] S. S. de Toledo et al., "Architectural technical debt in microservices," in Proc. 2nd Int. Conf. Technical Debt, pp. 78–87, 2019.
[8] M. Tusjunt and W. Vatanawood, "Refactoring Orchestrated Web Services into Microservices," in 2018 IEEE ICCC, pp. 609–613, 2018.
[9] N. GonΓ§alves et al., "Monolith Modularization Towards Microservices," in 2021 IEEE 18th ICSA-C, pp. 1–8, 2021.
[10] M. Abdullah et al., "Unsupervised learning approach for web application auto-decomposition into microservices," J. Syst. Softw., vol. 151, pp. 243–257, 2019.
[11] S. G. Haugeland et al., "Migrating Monoliths to Microservices-based Customizable Multi-tenant Cloud-native Apps," in 2021 47th Euromicro SEAA, pp. 170–177, 2021.
[12] M. Mishra et al., "Cracking the monolith: challenges in data transitioning to cloud native architectures," in Proc. 12th ECSA, pp. 1–4, 2018.
[13] A. Balalaie et al., "Microservices Architecture Enables DevOps," IEEE Softw., vol. 33, no. 3, pp. 42–52, 2016.
[14] L. Wu et al., "MicroRAS: Automatic Recovery in the Absence of Historical Failure Data," in 2020 IEEE/ACM 13th UCC, pp. 227–236, 2020.
[15] A. Power and G. Kotonya, "A Microservices Architecture for Reactive and Proactive Fault Tolerance in IoT Systems," in 2018 IEEE 19th WoWMoM, pp. 588–599, 2018.
[16] S. Kapferer and O. Zimmermann, "Domain-Driven Service Design," in Service-Oriented Computing, pp. 189–208, 2020.
[17] F. Rademacher et al., "Challenges of Domain-Driven Microservice Design," IEEE Softw., vol. 35, no. 3, pp. 36–43, 2018.
[18] M. Barak and S. Yuan, "A cultural perspective to project-based learning," Think. Ski. Creat., vol. 39, p. 100766, 2021.
[19] M. Marques et al., "Enhancing the Student Learning Experience in Software Engineering Project Courses," IEEE Trans. Educ., vol. 61, no. 1, pp. 63–73, 2018.
[20] I. A. Kautsar and R. Sarno, "A Supportive Tool for Project Based Learning and Laboratory Based Education," Int. J. Adv. Sci. Eng. Inf. Technol., vol. 9, no. 2, pp. 630–639, 2019.
[21] M. Genc, "The project-based learning approach in environmental education," Int. Res. Geogr. Environ. Educ., vol. 24, no. 2, pp. 105–117, 2015.
[22] "The Impact of Covid-19 to Indonesian Education and Its Relation to the Philosophy of 'Merdeka Belajar'," Studies in Philosophy of Science and Education, 2020.
[23] I. A. Kautsar et al., "Synchronizing learning material on Moodle and lecture based supportive tool: The REST based approach," in 2015 ICTS, pp. 187–192, 2015.
[24] I. A. Kautsar et al., "Lecturer Based Supportive Tool Development and Approaches for Learning Material Sharing under Bandwidth Limitation," J. Inf. Process., vol. 24, no. 2, pp. 358–369, 2016.
[25] I. A. Kautsar and M. R. Maika, "The use of User-centered Design Canvas for Rapid Prototyping," J. Phys. Conf. Ser., vol. 1764, no. 1, p. 012175, 2021.
[26] I. A. Kautsar and M. R. Maika, "Platform Design Canvas Adaptation for Rapid Prototyping and Project-based Learning amid Covid-19 Pandemic," in 2022 IEEE EDUNINE, pp. 1–6, 2022.
[27] I. A. Kautsar and R. Sarno, "The use of Microframework for Portable and Distributed ePortfolio Development," in 2019 IEEE TALE, pp. 1–6, 2019.
[28] P. Di Francesco et al., "Architecting with microservices: A systematic mapping study," J. Syst. Softw., vol. 150, pp. 77–97, 2019.
[29] A. Kwan et al., "Microservices in the modern software world," in Proc. 26th CASCON, pp. 297–299, 2016.
[30] N. Alshuqayran et al., "A Systematic Mapping Study in Microservice Architecture," in 2016 IEEE 9th SOCA, pp. 44–51, 2016.
[31] N. Dragoni et al., "Microservices: Yesterday, Today, and Tomorrow," in Present and Ulterior Software Engineering, pp. 195–216, 2017.
[32] R. T. Fielding et al., "Reflections on the REST architectural style," in Proc. 2017 11th ESEC/FSE, pp. 4–14, 2017.
[33] E. Djogic et al., "Monolithic to microservices redesign of event driven integration platform," in 2018 41st MIPRO, pp. 1411–1414, 2018.
[34] N. C. Mendonca et al., "Developing Self-Adaptive Microservice Systems: Challenges and Directions," IEEE Softw., vol. 38, no. 2, pp. 70–79, 2021.
[35] Q. Xiang et al., "No Free Lunch: Microservice Practices Reconsidered in Industry," arXiv:2106.07321, 2021.
[36] G. Toffetti et al., "An architecture for self-managing microservices," in Proc. 1st Int. Workshop AIMC, pp. 19–24, 2015.
[37] "Oh-My-PickleDB - JSON Database," https://tory1103.github.io/oh-my-pickledb/


This is a preprint version. The final published version is available at IEEE Xplore.


← Back to Publications