ABSTRACT
Microservice-based systems enable the independent development, deployment, and scalability for separate system components of enterprise applications. A significant aspect during development is the microservice integration in frontends of web, mobile, and desktop applications. One challenge here is the selection of an adequate frontend architecture as well as suitable patterns that satisfy the application requirements. This paper analyses available strategies for organizing and implementing microservices frontends. These approaches are then evaluated based on a quality model and various prototypes of the same application implemented using the distinct approaches. The results of this analysis are generalized to a guideline that supports the selection of a suitable architecture.
- Angular. 2017. Angular. Online. (2017). https://angular.io/ - Visited 2017-04-25.Google Scholar
- Richard Attermeyer. 2016. Frontend-Architekturen für Microservice-basierte Systeme. Online. (2016). http://www.sigs-datacom.de/uploads/tx_dmjournals/ attermeyer_OTS_Microservices_Docker_16.pdf - Visited 2017-04-25.Google Scholar
- Jakob Eyvind Bardram, Henrik Bærbak Christensen, and Klaus Marius Hansen. 2004. Architectural prototyping: An approach for grounding architectural design and learning. In Software Architecture, 2004. WICSA 2004. Proceedings. Fourth Working IEEE/IFIP Conference on. IEEE, 15–24. Google ScholarDigital Library
- Len Bass, Paul Clements, and Rick Kazman. 2013. Software architecture in practice. Addison-Wesley, Upper Saddle River, NJ.Google ScholarDigital Library
- Varnish HTTP Cache. 2017. Varnish HTTP Cache. Online. (2017). https:// varnish-cache.org/ - Visited 2017-04-25.Google Scholar
- Docker. 2017. Docker - Build, Ship, and Run Any App, Anywhere. Online. (2017). https://www.docker.com/ - Visited 2017-04-25.Google Scholar
- Thomas Erl. 2005. Service-oriented architecture: concepts, technology, and design. Pearson Education India. Google ScholarDigital Library
- Viktor Farcic. 2015. Including Front-End Web Components Into Microservices. Online. (Aug. 2015). https://technologyconversations.com/2015/08/09/ including-front-end-web-components-into-microservices/ - Visited 2017-04-25.Google Scholar
- Roy Fielding. 2000. Representational state transfer. Architectural Styles and the Design of Network-based Software Architecture (2000), 76–85.Google ScholarDigital Library
- Martin Fowler. 2016. Microservices Resource Guide. Online. (2016). http: //martinfowler.com/microservices/ - Visited 2017-04-25.Google Scholar
- Bartosz Galek, Walacik Bartosz, and Pawel Wieladek. 2016. Managing Frontend in the Microservices Architecture. Online. (March 2016). http://allegro.tech/ 2016/03/Managing-Frontend-in-the-microservices-architecture.html - Visited 2017-04-25.Google Scholar
- ISO. 2011. IEC25010: 2011 Systems and software engineering – Systems and software Quality Requirements and Evaluation. Standard. International Organization for Standardization, Geneva, CH. http://iso25000.com/index.php/en/ iso-25000-standards/iso-25010 - Visited 2017-04-25.Google Scholar
- Apache JMeter. 2016. Apache JMeter. Online. (2016). http://jmeter.apache.org/ - Visited 2017-04-25.Google Scholar
- James Lewis and Martin Fowler. 2014. Microservices. Online. (March 2014). http://martinfowler.com/articles/microservices.html - Visited 2017-04-25.Google Scholar
- Suresh Marru, Marlon Pierce, Sudhakar Pamidighantam, and Chathuri Wimalasena. 2015. Apache Airavata as a laboratory: architecture and case study for component-based gateway middleware. In Proceedings of the 1st Workshop on The Science of Cyberinfrastructure: Research, Experience, Applications and Models. ACM, 19–26. Google ScholarDigital Library
- Sam Newman. 2015. Building Microservices. O’Reilly Media, Inc. Google ScholarDigital Library
- Sam Newman. 2015. Pattern: Backends For Frontends. Online. (Nov. 2015). http://samnewman.io/patterns/architectural/bff/ - Visited 2017-04-25.Google Scholar
- Likasz Plotnicki. 2015. BFF @ SoundCloud. Online. (Dec. 2015). https://www. thoughtworks.com/de/insights/blog/bff-soundcloud - Visited 2017-04-25.Google Scholar
- Torsten Posch, Klaus Birken, and Michael Gerdom. 2011. Basiswissen Softwarearchitektur: verstehen, entwerfen, wiederverwenden. Dpunkt Verlag GmbH, Heidelberg.Google Scholar
- Chris Richardson and Floyd Smith. 2016. Microservices: From Design to Deployment. Online. (May 2016). https://www.nginx.com/blog/ microservices-from-design-to-deployment-ebook-nginx/ - Visited 2017-04-25.Google Scholar
- ROCA. 2016. ROCA – Resource-oriented Client Architecture. Online. (2016). http://roca-style.org/ - Visited 2017-04-25.Google Scholar
- D.I. Savchenko, G.I. Radchenko, and O. Taipale. 2015. Microservices validation: Mjolnirr platform case study. In Information and Communication Technology, Electronics and Microelectronics (MIPRO), 2015 38th International Convention on. 235–240.Google Scholar
- SeleniumHQ. 2016. Selenium - Web Browser Automation. Online. (2016). http: //www.seleniumhq.org/ - Visited 2017-04-25.Google Scholar
- Amazon Web Services. 2017. AWS – Server Hosting & Cloud Services. Online. (2017). https://aws.amazon.com/de/ - Visited 2017-04-25.Google Scholar
- Pivotal Software. 2017. Spring. Online. (2017). https://spring.io/ - Visited 2017-04-25.Google Scholar
- Gernot Starke. 2015. Effektive Softwarearchitekturen: Ein praktischer Leitfaden. Carl Hanser Verlag GmbH und Co KG.Google ScholarCross Ref
- Guido Steinacker. 2015. On Monoliths and Microservices. Online. (Sept. 2015). https://dev.otto.de/2015/09/30/on-monoliths-and-microservices/ - Visited 2017- 04-25.Google Scholar
- Roman Stranghöner. 2015. Self-Contained Systems. Online. (March 2015). https: //speakerdeck.com/rstrangh/self-contained-systems-german - Visited 2017-04- 25.Google Scholar
- TestNG. 2016. TestNG. Online. (2016). http://testng.org/doc/ - Visited 2017-04-25.Google Scholar
- Johannes Thones. 2015. Microservices. Software, IEEE 32, 1 (Jan. 2015), 113–116.Google Scholar
- Stefan Tilkov. 2014. Web-based frontend integration. Online. (Nov. 2014). https: //www.innoq.com/blog/st/2014/11/web-based-frontend-integration/ - Visited 2017-04-25.Google Scholar
- Mark Tsimelzon, Bill Weihl, Joseph Chung, Dan Frantz, John Basso, Chris Newton, Mark Hale, Larry Jacobs, and Conletz O’Connell. 2001. ESI Language Specification 1.0. Online. (Aug. 2001). https://www.w3.org/TR/esi-lang - Visited 2017-04-25.Google Scholar
- Aad Versteden, Erika Pauwels, and Agis Papantoniou. 2015. An Ecosystem of User-facing Microservices Supported by Semantic Models. In USEWODPROFILES@ ESWC. 12–21.Google Scholar
- Mario Villamizar, Oscar Garces, Harold Castro, Mauricio Verano, Lorena Salamanca, Rubby Casallas, and Santiago Gil. 2015. Evaluating the monolithic and the microservice architecture pattern to deploy web applications in the cloud. In Computing Colombian Conference (10CCC), 2015 10th. 583–590.Google ScholarCross Ref
- Arif Wider and Johannes Mueller. 2016. An Unexpected Solution To Microservices UI Composition. Online. (Jan. 2016). http://inside.autoscout24.com/talks/ 2016/01/13/microservice-ui-composition/ - Visited 2017-04-25.Google Scholar
- Eberhard Wolff. 2016. Microservices: Grundlagen flexibler Softwarearchitekturen. Dpunkt Verlag GmbH, Heidelberg.Google Scholar
- zuul. 2016. zuul. Online. (2016). https://github.com/Netflix/zuul - Visited 2017-04-25.Google Scholar
- Stefan Zörner. 2016. Bring your own Architecture. Entwickler Magazin Spezial 9 (2016), 16–19. Abstract 1 Introduction 2 Related Work 3 Available Frontend Architectures and Patterns 4 Methodical Approach 4.1 Quality Model 4.2 Test Cases 4.3 Prototype Implementations 4.4 Testbed Implementation 5 Results 6 Conclusion ReferencesGoogle Scholar
Index Terms
- Guidelines for adopting frontend architectures and patterns in microservices-based systems
Recommendations
Exploration of academic and industrial evidence about architectural tactics and patterns in microservices
ICSE '18: Proceedings of the 40th International Conference on Software Engineering: Companion ProceeedingsMicroservices are quickly becoming an outstanding architectural choice in the service-oriented software industry. This approach proposes to develop each application as a collection of small services, each running on its process and inter-communicating ...
A pattern language for scalable microservices-based systems
ECSA '18: Proceedings of the 12th European Conference on Software Architecture: Companion ProceedingsMicroservices are an emerging distributed architectural style to build highly scalable Web systems. Many design patterns have been proposed for microservices, and some of them for scalability, but this growing corpus has not yet been organized as a ...
Implementation patterns for microservices architectures
PLoP '16: Proceedings of the 23rd Conference on Pattern Languages of ProgramsAbstract In this paper we describe a set of implementation patterns for building applications using microservices. We discuss the application types and requirements that lead to the need for microservices, examine different types of microservices, and ...
Comments