Abstract
Plugins can be used to extend applications with new functionality without requiring expensive code changes for the application. To enable users to interact with the new functionality, plugins must be able to contribute new elements to the user interface of the application. However, as plugins are built for specific applications, they are not reusable in other applications. Microservices on the other hand are built with reusability in mind: Applications can invoke microservices to utilize their functionality. However, a developer has to write code and create the corresponding UI for the application to interact with the microservice. To address the shortcomings of both plugins and microservices, we propose a reference architecture that blends concepts of plugins and microservices to allow microservices to provide code and user interfaces to existing applications. Our reference architecture allows the creation of microservices that can be used as plugins and as usual microservices at the same time. To demonstrate the practical feasibility, we also present a prototypical implementation of the architecture and evaluate the approach for a specific use-case.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
Web services for remote portlets specification v2.0 (2008). https://docs.oasis-open.org/wsrp/v2/wsrp-2.0-spec.html
Akram, A., Chohan, D., Wang, X.D., Yang, X., Allan, R.: A service oriented architecture for portals using portlets. In: Uk e-Science All Hands Conference 2005. CCLRC (2005)
Allan, R., Awre, C., Baker, M., Fish, A.: Portals and portlets 2003. In: Proceedings of the NeSC Workshop, pp. 14–17. CCLRC (2004)
Attardi, J.: Basic CSS concepts. In: Modern CSS: Master the Key Concepts of CSS for Modern Web Development, pp. 33–59. Apress (2020). https://doi.org/10.1007/978-1-4842-6294-8_3
Barzen, J.: From digital humanities to quantum humanities: potentials and applications. In: An Introduction to Core Concepts, Theory and Applications, Springer, Cham (2021). https://doi.org/10.1007/978-3-030-95538-0_1
Barzen, J., Leymann, F.: Quantencomputing in den digital humanities: innovativ oder übertrieben? ZfdG - Zeitschrift für digitale Geisteswissenschaften. Fabrikation von Erkenntnis: Experimente in den Digital Humanities, pp. 1–22 (2021). https://doi.org/10.26298/melusina.8f8w-y749-qidd
Birsan, D.: On plug-ins and extensible architectures. Queue 3(2), 40–46 (2005). https://doi.org/10.1145/1053331.1053345
Cerny, T., Donahoo, M.J., Trnka, M.: Contextual understanding of microservice architecture: Current and future directions. SIGAPP Appl. Comput. Rev. 17(4), 29–45 (2018). https://doi.org/10.1145/3183628.3183631
Curbera, F., Duftler, M., Khalaf, R., Nagy, W., Mukhi, N., Weerawarana, S.: Unraveling the web services web: an introduction to SOAP, WSDL, and UDDI. IEEE Internet Comput. 6(2), 86–93 (2002). https://doi.org/10.1109/4236.991449
Dıaz, O., Rodrıguez, J.: Portlets as web components: an introduction. J. Univ. Comput. Sci. 10(4), 454–472 (2004). https://doi.org/10.3217/jucs-010-04-0454
Dragoni, N., et al.: Microservices: yesterday, today, and tomorrow. In: Present and Ulterior Software Engineering, pp. 195–216. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-67425-4_12
Dustdar, S., Papazoglou, M.P.: Services and service composition-an introduction. IT-Inf. Technol. 50(2), 86–92 (2008)
Garriga, M.: Towards a taxonomy of microservices architectures. In: Cerone, A., Roveri, M. (eds.) SEFM 2017. LNCS, vol. 10729, pp. 203–218. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-74781-1_15
Geer, D.: Eclipse becomes the dominant java IDE. Computer 38(7), 16–18 (2005). https://doi.org/10.1109/MC.2005.228
Havenstein, C., Thomas, D., Chandrasekaran, S.: Comparisons of performance between quantum and classical machine learning. SMU Data Sci. Rev. 1(4), 30 (2018)
Abhijith, J., et al.: Quantum algorithm implementations for beginners (2020). version: 2
Jackson, C.: Micro frontends (2019). https://martinfowler.com/articles/micro-frontends.html#IntegrationApproaches
Jula, A., Sundararajan, E., Othman, Z.: Cloud computing service composition: a systematic literature review. Expert Syst. Appl. 41(8), 3809–3824 (2014). https://doi.org/10.1016/j.eswa.2013.12.017
Krueger, C.W.: Software reuse. ACM Comput. Surv. 24(2), 131–183 (1992). https://doi.org/10.1145/130844.130856
Laskey, K.B., Laskey, K.: Service oriented architecture. Wiley Interdiscipl. Rev. Computat. Stat. 1(1), 101–105 (2009)
Lemos, A.L., Daniel, F., Benatallah, B.: Web service composition: a survey of techniques and tools. ACM Comput. Surv. 48(3), 33:1–33:41. https://doi.org/10.1145/2831270
Lewis, J., Fowler, M.: Microservices: a definition of this new architectural term (2014). https://martinfowler.com/articles/microservices.html
Lin, X., Ilia, P., Polakis, J.: Fill in the Blanks: Empirical Analysis of the Privacy Threats of Browser Form Autofill, pp. 507–519. ACM, New York, NY, USA (2020). https://doi.org/10.1145/3372297.3417271
Majithia, S., Shields, M., Taylor, I., Wang, I.: Triana: a graphical web service composition and execution toolkit. In: Proceedings. IEEE International Conference on Web Services, 2004, pp. 514–521. IEEE (2004). https://doi.org/10.1109/ICWS.2004.1314777
Marquardt, K.: Patterns for plug-ins. In: Proceedings of the Fourth European Conference on Pattern Languages of Programming and Computing (1999)
Mayer, J., Melzer, I., Schweiggert, F.: Lightweight plug-in-based application development. In: Aksit, M., Mezini, M., Unland, R. (eds.) NODe 2002. LNCS, vol. 2591, pp. 87–102. Springer, Heidelberg (2003). https://doi.org/10.1007/3-540-36557-5_9
Merkel, D., et al.: Docker: lightweight linux containers for consistent development and deployment. Linux J. 239, 2 (2014)
Méndez, F., et al.: AsyncAPI specification. AsyncAPI, https://www.asyncapi.com/docs/specifications/v2.3.0
Newman, S.: Building Microservices. O’Reilly Media, Inc., Sebastopol (2021)
Nicklous, M.: Jsr 362: Portlet specification 3.0 (2017). https://www.jcp.org/en/jsr/detail?id=362
Pahl, C., Jamshidi, P.: Microservices: A systematic mapping study. In: Proceedings of the 6th International Conference on Cloud Computing and Services Science, pp. 137–146. SCITEPRESS (2016). https://doi.org/10.5220/0005785501370146
Pautasso, C., Alonso, G.: Visual composition of web services. In: 2003 IEEE Symposium on Human Centric Computing Languages and Environments (HCC 2003), 28–31 October 2003, Auckland, New Zealand, pp. 92–99. IEEE Computer Society (2003). https://doi.org/10.1109/HCC.2003.1260208
Pavlenko, A., Askarbekuly, N., Megha, S., Mazzara, M.: Micro-frontends: application of microservices to web front-ends. J. Internet Serv. Inf. Secur. (JISIS) 10(2), 49–66 (2020). https://doi.org/10.22667/JISIS.2020.05.31.049
Peltonen, S., Mezzalira, L., Taibi, D.: Motivations, benefits, and issues for adopting micro-frontends: a multivocal literature review. Inf. Softw. Technol. 136, 106571 (2021). https://doi.org/10.1016/j.infsof.2021.106571
Pölöskei, I., Bub, U.: Enterprise-level migration to micro frontends in a multi-vendor environment. Acta Polytechnica Hungarica 18(8), 7–25 (2021)
Prajwal, Y., Parekh, J.V., Shettar, R.: A brief review of micro-frontends. United Int. J. Res. Technol. 2, 123–126 (2021)
Rao, J., Su, X.: A survey of automated web service composition methods. In: Cardoso, J., Sheth, A. (eds.) SWSWPC 2004. LNCS, vol. 3387, pp. 43–54. Springer, Heidelberg (2005). https://doi.org/10.1007/978-3-540-30581-1_5
Rojas, C.: Building Native Web Components: Front-End Development with Polymer and Vue.js. Apress (2021). https://doi.org/10.1007/978-1-4842-5905-4
Scoccia, G.L., Autili, M.: Web frameworks for desktop apps: an exploratory study. In: Proceedings of the 14th ACM / IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM). ESEM 2020, ACM, New York, NY, USA (2020). https://doi.org/10.1145/3382494.3422171
Shor, P.: Algorithms for quantum computation: discrete logarithms and factoring. In: Proceedings 35th Annual Symposium on Foundations of Computer Science, pp. 124–134. IEEE (1994). https://doi.org/10.1109/SFCS.1994.365700
Strunk, A.: QoS-aware service composition: A survey. In: Eighth IEEE European Conference on Web Services, pp. 67–74 (2010). https://doi.org/10.1109/ECOWS.2010.16
Tilak, P.Y., Yadav, V., Dharmendra, S.D., Bolloju, N.: A platform for enhancing application developer productivity using microservices and micro-frontends. In: IEEE-HYDCON, pp. 1–4. IEEE (2020). https://doi.org/10.1109/HYDCON48903.2020.9242913
Triglianos, V., Pautasso, C.: Asqium: a javascript plugin framework for extensible client and server-side components. In: Cimiano, P., Frasincar, F., Houben, G.-J., Schwabe, D. (eds.) ICWE 2015. LNCS, vol. 9114, pp. 81–98. Springer, Cham (2015). https://doi.org/10.1007/978-3-319-19890-3_7
Vietz, D., Barzen, J., Leymann, F., Wild, K.: On decision support for quantum application developers: categorization, comparison, and analysis of existing technologies. In: Paszynski, M., Kranzlmüller, D., Krzhizhanovskaya, V.V., Dongarra, J.J., Sloot, P.M.A. (eds.) ICCS 2021. LNCS, vol. 12747, pp. 127–141. Springer, Cham (2021). https://doi.org/10.1007/978-3-030-77980-1_10
Wang, D., et al.: A novel application of educational management information system based on micro frontends. Procedia Comput. Sci. 176, 1567–1576 (2020). https://doi.org/10.1016/j.procs.2020.09.168
Wolfinger, R., Dhungana, D., Prähofer, H., Mössenböck, H.: A component plug-in architecture for the .net platform. In: Lightfoot, D.E., Szyperski, C. (eds.) JMLC 2006. LNCS, vol. 4228, pp. 287–305. Springer, Heidelberg (2006). https://doi.org/10.1007/11860990_18
Wusteman, J.: The potential of web components for libraries. Library Hi Tech. 37, 713–720 (2019). https://doi.org/10.1108/LHT-06-2019-0125
Yang, C., Liu, C., Su, Z.: Research and application of micro frontends. In: IOP Conference Series: Materials Science and Engineering, p. 490 (2019). https://doi.org/10.1088/1757-899x/490/6/062082
Acknowledgements
The work was partially funded by the Federal Ministry for Economic Affairs and Climate Action project PlanQK (01MK20005N).
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2022 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this paper
Cite this paper
Bühler, F., Barzen, J., Harzenetter, L., Leymann, F., Wundrack, P. (2022). Combining the Best of Two Worlds: Microservices and Micro Frontends as Basis for a New Plugin Architecture. In: Barzen, J., Leymann, F., Dustdar, S. (eds) Service-Oriented Computing. SummerSOC 2022. Communications in Computer and Information Science, vol 1603. Springer, Cham. https://doi.org/10.1007/978-3-031-18304-1_1
Download citation
DOI: https://doi.org/10.1007/978-3-031-18304-1_1
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-18303-4
Online ISBN: 978-3-031-18304-1
eBook Packages: Computer ScienceComputer Science (R0)