Abstract
In the early 2000s, service-oriented architectures (SOA) emerged as a paradigm for distributed computing, e-business processing, and enterprise integration. Rapidly, SOA and web services became the subject of hype, and virtually every organization tried to adopt them, no matter their actual suitability. Even worse, there were nearly as many definitions of SOA as people adopting it. This led to a big fail on many of those attempts, as they tried to change the problem to fit the solution. Nowadays, microservices are the new weapon of choice to achieve the same (and even more) goals posed to SOA years ago. Microservices (“SOA done right”) describe a particular way of designing software applications as suites of independently deployable services, bringing dynamism, modularity, distributed development, and integration of heterogeneous systems. However, nothing comes for free: new (and old) challenges appeared, including service design and specification, data integrity, and consistency management. In this chapter, we identify such challenges through an evolutionary view from the early years of SOA to microservices, and beyond. Our findings are backed by a literature review, comprising both academic and gray literature. Afterwards, we analyze how such challenges are addressed in practice, and which challenges remain open, by inspecting microservice-related projects on GitHub, the largest open-source repository to date.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
A. Balalaie, A. Heydarnoori, P. Jamshidi, Microservices architecture enables DevOps: migration to a cloud-native architecture. IEEE Softw. 33(3), 42–52 (2016)
A. Balalaie, A. Heydarnoori, P. Jamshidi, D.A. Tamburri, T. Lynn, Microservices migration patterns. Softw. Pract. Experience 48(11), 2019–2042 (2018)
L. Baresi, M. Garriga, A. De Renzis, Microservices identification through interface analysis, in European Conference on Service-Oriented and Cloud Computing (ESOCC) (Springer, Berlin, 2017)
L. Baresi, D.F. Mendonça, M. Garriga, Empowering low-latency applications through a serverless edge computing architecture, in European Conference on Service-Oriented and Cloud Computing (Springer, Berlin, 2017), pp. 196–210
L. Baresi, S. Guinea, A. Leva, G. Quattrocchi, A discrete-time feedback controller for containerized cloud applications, in ACM Sigsoft International Symposium on the Foundations of Software Engineering (FSE) (ACM, New York, 2016)
L. Baresi, D.F. Mendonça, M. Garriga, S. Guinea, G. Quattrocchi, A unified model for the mobile-edge-cloud continuum. ACM Trans. Internet Technol. 19(2), 29:1–29:21 (2019). https://doi.org/10.1145/3226644
D. Box, D. Ehnebuske, G. Kakivaya, A. Layman, N. Mendelsohn, H.F. Nielsen, S. Thatte, D. Winer, Simple Object Access Protocol (SOAP) 1.1 (2000). W3C Recommendation
G. Casale, C. Chesta, P. Deussen, E. Di Nitto, P. Gouvas, S. Koussouris, V. Stankovski, A. Symeonidis, V. Vlassiou, A. Zafeiropoulos, et al., Current and future challenges of software engineering for services and applications. Proc. Comput. Sci. 97, 34–42 (2016)
A. Cockroft, Evolution of business logic from monoliths through microservices, to functions (2017). https://goo.gl/H6zKMn
N. Dragoni, S. Giallorenzo, A.L. Lafuente, M. Mazzara, F. Montesi, R. Mustafin, L. Safina, Microservices: yesterday, today, and tomorrow, in Present and Ulterior Software Engineering (Springer, Cham 2017), pp. 195–216
J. Erickson, K. Siau, Web service, service-oriented computing, and service-oriented architecture: separating hype from reality. J. BD Manage. 19(3), 42–54 (2008)
C. Fautsch, J. Savoy, Adapting the TF IDF vector-space model to domain specific information retrieval, in Proceedings of the 2010 ACM Symposium on Applied Computing (ACM, New York, 2010), pp. 1708–1712. https://doi.org/10.1145/1774088.1774454
R.T. Fielding, R.N. Taylor, Architectural styles and the design of network-based software architectures, vol. 7. (University of California, Irvine, 2000)
V. Garousi, M. Felderer, M.V. Mäntylä, Guidelines for including grey literature and conducting multivocal literature reviews in software engineering. Inf. Softw. Technol. 106, 101–121 (2019)
M. Garriga, Towards a taxonomy of microservices architectures, in International Conference on Software Engineering and Formal Methods (Springer, Berlin, 2017), pp. 203–218
M. Garriga, A. Flores, A. Cechich, A. Zunino, Web services composition mechanisms: a review. IETE Tech. Rev. 32(5), 376–383 (2015)
M. Garriga, C. Mateos, A. Flores, A. Cechich, A. Zunino, Restful service composition at a glance: a survey. J. Netw. Comput. Appl. 60, 32–53 (2016)
M. Garriga, A.D. Renzis, I. Lizarralde, A. Flores, C. Mateos, A. Cechich, A. Zunino, A structural-semantic web service selection approach to improve retrievability of web services. Inf. Syst. Front. 20(6), 1319–1344 (2018). https://doi.org/10.1007/s10796-016-9731-1
S. Hassan, R. Bahsoon, Microservices and their design trade-offs: a self-adaptive roadmap, in IEEE International Conference on Services Computing (SCC) (IEEE, Piscataway, 2016), pp. 813–818
S. Hendrickson, S. Sturdevant, T. Harter, V. Venkataramani, A.C. Arpaci-Dusseau, R.H. Arpaci-Dusseau, Serverless computation with openlambda. Elastic 60, 80 (2016)
V. Heorhiadi, S. Rajagopalan, H. Jamjoom, M.K. Reiter, V. Sekar, Gremlin: systematic resilience testing of microservices, in 2016 IEEE 36th International Conference on Distributed Computing Systems (ICDCS) (IEEE, Piscataway, 2016), pp. 57–66
V. Issarny, N. Georgantas, S. Hachem, A. Zarras, P. Vassiliadist, M. Autili, M.A. Gerosa, A.B. Hamida, Service-oriented middleware for the future internet: state of the art and research directions. J. Internet Services Appl. 2(1), 23–45 (2011)
E. Kalliamvakou, G. Gousios, K. Blincoe, L. Singer, D.M. German, D. Damian, The promises and perils of mining github, in Proceedings of the 11th Working Conference on Mining Software Repositories (ACM, New York, 2014), pp. 92–101
B. Kitchenham, Guidelines for performing systematic literature reviews in software engineering. Technical report, ver. 2.3 EBSE Technical Report. EBSE. sn (2007)
P. Lemberger, M. Morel, Why Has SOA Failed So Often? (Wiley, London, 2013), pp. 207–218. https://doi.org/10.1002/9781118562017.app3
J. Lewis, M. Fowler, Microservices (2014). http://martinfowler.com/articles/microservices.html
I. Nadareishvili, R. Mitra, M. McLarty, M. Amundsen, Microservice Architecture: Aligning Principles, Practices, and Culture (O’Reilly Media, Sebastopol, 2016)
S. Newman, Building Microservices (O’Reilly Media, Sebastopol, 2015)
M.P. Papazoglou, P. Traverso, S. Dustdar, F. Leymann, Service-oriented computing: a research roadmap. Int. J. Coop. Inf. Syst. 17(02), 223–255 (2008)
C. Pautasso, O. Zimmermann, F. Leymann, Restful web services vs. “big” web services: making the right architectural decision, in 17th International Conference on World Wide Web (ACM Press, New York, 2008), pp. 805–814
M. Rahman, J. Gao, A reusable automated acceptance testing architecture for microservices in behavior-driven development, in 2015 IEEE Symposium on Service-Oriented System Engineering (SOSE) (IEEE, Piscataway, 2015), pp. 321–325
J. Rao, X. Su, A survey of automated web service composition methods, in International Workshop on Semantic Web Services and Web Process Composition (Springer, Berlin, 2004), pp. 43–54
M. Richards, Microservices vs. Service-Oriented Architecture (O’Reilly Media, Sebastopol, 2015)
C. Richardson, Microservices architecture (2014). http://microservices.io/
M. Roberts, Serverless architectures (2016). http://martinfowler.com/articles/serverless.html
G. Schermann, J. Cito, P. Leitner, All the services large and micro: revisiting industrial practice in services computing, in International Conference on Service-Oriented Computing (ICSOC) (Springer, Berlin, 2015), pp. 36–47
A. Sill, The design and architecture of microservices. IEEE Cloud Comput. 3(5), 76–80 (2016)
J. Soldani, D. Tamburri, W.J. Van Den Heuvel, The pains and gains of microservices: a systematic grey literature review. J. Syst. Softw. 146, 215–232 (2018). https://doi.org/10.1016/j.jss.2018.09.082
J. Spillner, C. Mateos, D.A. Monge, Faaster, better, cheaper: the prospect of serverless scientific computing and HPC, in Latin American High Performance Computing Conference (Springer, Berlin, 2017), pp. 154–168
B. Srivastava, J. Koehler, Web service composition-current solutions and open problems, in ICAPS 2003 Workshop on Planning for Web Services, vol. 35 (2003), pp. 28–35
M. Stigler, Understanding serverless computing, in Beginning Serverless Computing (Springer, Berlin, 2018), pp. 1–14
J. Stubbs, W. Moreira, R. Dooley, Distributed systems of microservices using docker and serfnode, in International Workshop on Science Gateways (IWSG) (IEEE, Piscataway, 2015), pp. 34–39
D.A. Tamburri, R. Kazman, H. Fahimi, The architect’s role in community shepherding. IEEE Softw. 33(6), 70–79 (2016). https://doi.org/10.1109/MS.2016.144
G. Toffetti, S. Brunner, S., M. Blöchlinger, J. Spillner, T.M. Bohnert, Self-managing cloud-native applications: design, implementation, and experience. Futur. Gener. Comput. Syst. 72, 165–179 (2017). https://doi.org/10.1016/j.future.2016.09.002.
C. Tsigkanos, M. Garriga, L. Baresi, C. Ghezzi, Cloud deployment tradeoffs for the analysis of spatially-distributed systems of internet-of-things. Technical Report, Politecnico di Milano (2019)
M. Villamizar, O. Garcés, L. Ochoa, H. Castro, L. Salamanca, M. Verano, R. Casallas, S. Gil, C. Valencia, A. Zambrano, et al., Infrastructure cost comparison of running web applications in the cloud using AWS Lambda and monolithic and microservice architectures, in 2016 16th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing (CCGrid) (IEEE, Piscataway, 2016), pp. 179–182
N. Wilde, B. Gonen, E. El-Sheik, A. Zimmermann, Emerging Trends in the Evolution of Service-Oriented and Enterprise Architectures, chap. Approaches to the Evolution of SOA Systems. Intelligent Systems Reference Library (Springer, Berlin, 2016)
F. Zampetti, S. Scalabrino, R. Oliveto, G. Canfora, M. Di Penta, How open source projects use static code analysis tools in continuous integration pipelines, in 2017 IEEE/ACM 14th International Conference on Mining Software Repositories (MSR) (IEEE, Piscataway, 2017), pp. 334–344
O. Zimmermann, Do microservices pass the same old architecture test? Or: SOA is not dead–long live (micro-) services, in Microservices Workshop at SATURN Conference (Software Engineering Institute SEI, Carnegie Mellon University, 2015)
Acknowledgements
This work has been partially supported by the GAUSS national research project, which has been funded by the MIUR under the PRIN 2015 program (Contract 2015KWREMX); and by the grant ANPCyT PICT-2017-1725.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2020 Springer Nature Switzerland AG
About this chapter
Cite this chapter
Baresi, L., Garriga, M. (2020). Microservices: The Evolution and Extinction of Web Services?. In: Bucchiarone, A., et al. Microservices. Springer, Cham. https://doi.org/10.1007/978-3-030-31646-4_1
Download citation
DOI: https://doi.org/10.1007/978-3-030-31646-4_1
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-31645-7
Online ISBN: 978-3-030-31646-4
eBook Packages: Computer ScienceComputer Science (R0)