Bibliography

[Allamaraju 2010] S. Allamaraju, RESTful Web Services Cookbook. O’Reilly, 2010.

[Alur 2013] D. Alur, D. Malks, and J. Crupi, Core J2EE Patterns: Best Practices and Design Strategies, 2nd ed. Prentice Hall, 2013.

[Amundsen 2011] M. Amundsen, Building Hypermedia APIs with HTML5 and Node. O’Reilly, 2011.

[Amundsen 2013] M. Amundsen, “Designing & Implementing Hypermedia APIs.” Slide presentation at QCon New York, June 2013. https://www.slideshare.net/rnewton/2013-06q-connycdesigninghypermedia.

[Amundsen 2014] M. Amundsen, “Roy Fielding on Versioning, Hypermedia, and REST.” InfoQ, December 2014. https://www.infoq.com/articles/roy-fielding-on-versioning/.

[Amundsen 2020] M. Amundsen, Design and Build Great Web APIs: Robust, Reliable, and Resilient. Pragmatic Bookshelf, 2020.

[Amundsen 2021] M. Amundsen, L. Richardson, and M. W. Foster, “Application-Level Profile Semantics (ALPS).” Internet Engineering Task Force, Internet-Draft, May 2021. https://datatracker.ietf.org/doc/html/draft-amundsen-richardson-foster-alps-07.

[Apache 2021a] “Apache Avro Specification.” Apache Software Foundation, 2021. https://avro.apache.org/docs/current/spec.html#Schema+Resolution.

[Apache 2021b] “Apache Thrift.” Apache Software Foundation, 2021. https://thrift.apache.org/.

[API Academy 2022] “API Academy GitHub Repositories.” API Academy, accessed June 24, 2022. https://github.com/apiacademy.

[API Blueprint 2022] “API Blueprint. A Powerful High-Level API Description Language for Web APIs.” API Blueprint, accessed June 24, 2022. https://apiblueprint.org/.

[Apigee 2018] Apigee, Web API Design: The Missing Link. Apigee, 2018, EPUB. https://cloud.google.com/apigee/resources/ebook/web-api-design-register/index.html/.

[Arlow 2004] J. Arlow and I. Neustadt, Enterprise Patterns and MDA: Building Better Software with Archetype Patterns and UML. Addison-Wesley, 2004.

[Atlassian 2022] “Bitbucket Cloud Reference.” Atlassian Developer, accessed June 24, 2022. https://developer.atlassian.com/cloud/bitbucket/rest/intro/#serialization.

[Baca 2016] M. Baca, Introduction to Metadata, 3rd ed. Getty Publications, 2016. http://www.getty.edu/publications/intrometadata.

[Beck 2001] K. Beck et al., “Manifesto for Agile Software Development.” 2001. https://agilemanifesto.org/.

[Bellido 2013] J. Bellido, R. Alarcón, and C. Pautasso, “Control-Flow Patterns for Decentralized RESTful Service Composition.” ACM Transactions on the Web (TWEB) 8, no. 1 (2013): 5:1–5:30. https://doi.org/10.1145/2535911.

[Belshe 2015] M. Belshe, R. Peon, and M. Thomson, “Hypertext Transfer Protocol Version 2 (HTTP/2).” RFC 7540; RFC Editor, May 2015. https://doi.org/10.17487/RFC7540.

[Berli 2014] W. Berli, D. Lübke, and W. Möckli, “Terravis—Large-Scale Business Process Integration between Public and Private Partners.” In Proceedings of INFORMATIK 2014, Gesellschaft für Informatik e.V., 2014, 1075–1090.

[Beyer 2016] B. Beyer, C. Jones, J. Petoff, and N. R. Murphy, Site Reliability Engineering: How Google Runs Production Systems. O’Reilly, 2016.

[Bishop 2021] M. Bishop, “Level 3 REST.” Draft, 2021. https://level3.rest/.

[Borysov 2021] A. Borysov and R. Gardiner, “Practical API Design at Netflix, Part 1: Using Protobuf FieldMask.” Netflix Technology Blog, 2021. https://netflixtechblog.com/practical-api-design-at-netflix-part-1-using-protobuf-fieldmask-35cfdc606518.

[Brewer 2012] E. Brewer, “CAP Twelve Years Later: How the ‘Rules’ Have Changed.” Computer 45, no. 2 (2012): 23–29.

[Brown 2021] K. Brown, B. Woolf, C. D. Groot, C. Hay, and J. Yoder, “Patterns for Developers and Architects Building for the Cloud.” Accessed June 24, 2022. https://kgb1001001.github.io/cloudadoptionpatterns/.

[Buschmann 1996] F. Buschmann, R. Meunier, H. Rohnert, P. Sommerlad, and M. Stal, Pattern-Oriented Software Architecture—Volume 1: A System of Patterns. Wiley, 1996.

[Buschmann 2007] F. Buschmann, K. Henney, and D. Schmidt, Pattern-Oriented Software Architecture: A Pattern Language for Distributed Computing. Wiley, 2007.

[Cavalcante 2019] A. Cavalcante, “What Is DX?” October 2019. https://medium.com/swlh/what-is-dx-developer-experience-401a0e44a9d9.

[Cervantes 2016] H. Cervantes and R. Kazman, Designing Software Architectures: A Practical Approach. Addison-Wesley, 2016.

[Cisco Systems 2015] “API Design Guide.” Cisco DevNet, 2015. https://github.com/CiscoDevNet/api-design-guide.

[Coplien 1997] J. O. Coplien and B. Woolf, “A Pattern Language for Writers’ Workshops.” C Plus Plus Report 9 (1997): 51–60.

[C-SIG 2014] C-SIG, “Cloud Service Level Agreement Standardisation Guidelines.” Cloud Select Industry Group, Service Level Agreements Subgroup; European Commission, 2014. https://ec.europa.eu/newsroom/dae/redirection/document/6138.

[Daigneau 2011] R. Daigneau, Service Design Patterns: Fundamental Design Solutions for SOAP/WSDL and RESTful Web Services. Addison-Wesley, 2011.

[Daly 2021] J. Daly, “Serverless.” 2021. https://www.jeremydaly.com/serverless/.

[DCMI 2020] “Dublin Core Metadata Initiative Terms.” DublinCore, 2020. https://www.dublincore.org/specifications/dublin-core/dcmi-terms/.

[Dean 2014] A. Dean and F. Blundun, “Introducing SchemaVer for Semantic Versioning of Schemas.” Snowplow Blog, 2014. https://snowplowanalytics.com/blog/2014/05/13/introducing-schemaver-for-semantic-versioning-of-schemas/.

[Dubuisson 2001] O. Dubuisson and P. Fouquart, ASN.1: Communication between Heterogeneous Systems. Morgan Kaufmann Publishers, 2001.

[Dusseault 2007] L. M. Dusseault, “HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV).” RFC 4918; RFC Editor, June 2007. https://doi.org/10.17487/RFC4918.

[Erder 2021] M. Erder, P. Pureur, and E. Woods, Continuous Architecture in Practice: Software Architecture in the Age of Agility and DevOps. Addison-Wesley, 2021.

[Erl 2013] T. Erl, B. Carlyle, C. Pautasso, and R. Balasubramanian, SOA with REST: Principles, Patterns and Constraints for Building Enterprise Solutions with REST. Prentice Hall, 2013.

[EU 2012] European Parliament and Council of the European Union, “Technical Requirements for Credit Transfers and Direct Debits in Euros.” Regulation (EU) 260/2012, 2012. https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:52012AP0037.

[EU 2016] European Parliament and Council of the European Union, “General Data Protection Regulation.” Regulation (EU) 2016/679, 2016. https://eur-lex.europa.eu/eli/reg/2016/679/oj.

[Evans 2003] E. Evans, Domain-Driven Design: Tackling Complexity in the Heart of Software. Addison-Wesley, 2003.

[Evans 2016] P. C. Evans and R. C. Basole, “Revealing the API Ecosystem and Enterprise Strategy via Visual Analytics.” Communications of the ACM 59, no. 2 (2016): 26–28. https://doi.org/10.1145/2856447.

[Fachat 2019] A. Fachat, “Challenges and Benefits of the Microservice Architectural Style.” IBM Developer, 2019. https://developer.ibm.com/articles/challenges-and-benefits-of-the-microservice-architectural-style-part-2/.

[Fehling 2014] C. Fehling, F. Leymann, R. Retter, W. Schupeck, and P. Arbitter, Cloud Computing Patterns: Fundamentals to Design, Build, and Manage Cloud Applications. Springer, 2014.

[Ferstl 2006] O. K. Ferstl and E. J. Sinz, Grundlagen der wirtschaftsinformatik. Oldenbourg, 2006.

[Fielding 2012] R. T. Fielding, M. Nottingham, D. Orchard, J. Gregorio, and M. Hadley, “URI Template.” RFC 6570; RFC Editor, March 2012. https://doi.org/10.17487/RFC6570.

[Fielding 2014c] R. T. Fielding and J. Reschke, “Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content.” RFC 7231; RFC Editor, June 2014. https://doi.org/10.17487/RFC7231.

[Fielding 2014a] R. T. Fielding and J. Reschke, “Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests.” RFC 7232; RFC Editor, June 2014. https://doi.org/10.17487/RFC7232.

[Fielding 2014b] R. T. Fielding and J. Reschke, “Hypertext Transfer Protocol (HTTP/1.1): Authentication.” RFC 7235; RFC Editor, June 2014. https://doi.org/10.17487/RFC7235.

[Foundation 2021] “Split the Contents of a Website with the Pagination Design Pattern.” Interaction Design Foundation, 2021. https://www.interaction-design.org/literature/article/split-the-contents-of-a-website-with-the-pagination-design-pattern.

[Fowler 1996] M. Fowler, Analysis Patterns: Reusable Object Models. Addison-Wesley, 1996.

[Fowler 2002] M. Fowler, Patterns of Enterprise Application Architecture. Addison-Wesley, 2002.

[Fowler 2003] M. Fowler, “AnemicDomainModel.” November 25, 2003. https://martinfowler.com/bliki/AnemicDomainModel.html.

[Fowler 2006] M. Fowler, “Further Patterns of Enterprise Application Architecture.” Updated July 18, 2006. https://martinfowler.com/eaaDev/.

[Fowler 2009] M. Fowler, “TwoHardThings.” July 14, 2009. https://martinfowler.com/bliki/TwoHardThings.html.

[Fowler 2011] M. Fowler, “CQRS.” July 14, 2011. https://martinfowler.com/bliki/CQRS.html.

[Fowler 2013] M. Fowler, “GiveWhenThen.” August 21, 2013. https://www.martinfowler.com/bliki/GivenWhenThen.html.

[Fowler 2016] S. J. Fowler, Production-Ready Microservices: Building Standardized Systems across an Engineering Organization. O’Reilly, 2016.

[Furda 2018] A. Furda, C. J. Fidge, O. Zimmermann, W. Kelly, and A. Barros, “Migrating Enterprise Legacy Source Code to Microservices: On Multitenancy, Statefulness, and Data Consistency.” IEEE Software 35, no. 3 (2018): 63–72. https://doi.org/10.1109/MS.2017.440134612.

[Gambi 2013] A. Gambi and C. Pautasso, “RESTful Business Process Management in the Cloud.” In Proceedings of the 5th ICSE International Workshop on Principles of Engineering Service-Oriented Systems (PESOS). IEEE, 2013, 1–10. https://doi.org/10.1109/PESOS.2013.6635971.

[Gamma 1995] E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995.

[Good 2002] J. Good, “A Gentle Introduction to Metadata.” 2002. http://www.language-archives.org/documents/gentle-intro.html.

[Google 2008] “Protocol Buffers.” Google Developers, 2008. https://developers.google.com/protocol-buffers/.

[Google 2019] “Rate-Limiting Strategies and Techniques.” Google Cloud Architecture Center, 2019. https://cloud.google.com/architecture/rate-limiting-strategies-techniques.

[GraphQL 2021] “GraphQL Specification.” GraphQL Foundation, 2021. https://spec.graphql.org/.

[gRPC] gRPC Authors, “gRPC: A High Performance, Open Source Universal RPC Framework.” Accessed June 24, 2022. https://grpc.io/.

[gRPC-Gateway 2022] gRPC-Gateway Authors, “gRPC-gateway.” Accessed June 24, 2022. https://grpc-ecosystem.github.io/grpc-gateway/.

[GUID 2022] “The Quick Guide to GUIDs.” Better Explained, 2022. https://betterexplained.com/articles/the-quick-guide-to-guids/.

[Gysel 2016] M. Gysel, L. Kölbener, W. Giersche, and O. Zimmermann, “Service Cutter: A Systematic Approach to Service Decomposition.” In Proceedings of the European Conference on Service-Oriented and Cloud Computing (ESOCC). Springer-Verlag, 2016, 185–200.

[Hanmer 2007] R. Hanmer, Patterns for Fault Tolerant Software. Wiley, 2007.

[Hardt 2012] D. Hardt, “The OAuth 2.0 Authorization Framework.” RFC 6749; RFC Editor, October 2012. https://doi.org/10.17487/RFC6749.

[Harrison 2003] N. B. Harrison, “Advanced Pattern Writing Patterns for Experienced Pattern Authors.” In Proceedings of the Eighth European Conference on Pattern Languages of Programs (EuroPLoP). UVK - Universitaetsverlag Konstanz, 2003, 1–20.

[Hartig 2018] O. Hartig and J. Pérez, “Semantics and Complexity of GraphQL.” In Proceedings of the World Wide Web Conference (WWW). International World Wide Web Conferences Steering Committee, 2018, 1155–1164. https://doi.org/10.1145/3178876.3186014.

[Hay 1996] D. C. Hay, Data Model Patterns: Conventions of Thought. Dorset House, 1996.

[Heinrich 2018] R. Heinrich et al., “The Palladio-Bench for Modeling and Simulating Software Architectures.” In Proceedings of the 40th International Conference on Software Engineering (ICSE). Association for Computing Machinery, 2018, 37–40. https://doi.org/10.1145/3183440.3183474.

[Helland 2005] P. Helland, “Data on the Outside versus Data on the Inside.” In Proceedings of the Second Biennial Conference on Innovative Data Systems Research (CIDR). 2005, 144–153. http://cidrdb.org/cidr2005/papers/P12.pdf.

[Hentrich 2011] C. Hentrich and U. Zdun, Process-Driven SOA: Patterns for Aligning Business and IT. Auerbach Publications, 2011.

[Higginbotham 2017a] J. Higginbotham, “When and How Do You Version Your API?” Tyk Blog, 2017. https://tyk.io/blog/when-and-how-do-you-version-your-api/.

[Higginbotham 2017b] J. Higginbotham, “A Guide for When (and How) to Version Your API.” Tyk Blog, 2017. https://tyk.io/blog/guide-version-api/.

[Higginbotham 2018] J. Higginbotham, “REST was NEVER about CRUD.” Tyk Blog, 2018. https://tyk.io/blog/rest-never-crud/.

[Higginbotham 2019] J. Higginbotham, “How to Add Upsert Support to Your API.” Tyk Blog, 2019. https://tyk.io/blog/how-to-add-upsert-support-to-your-api/.

[Higginbotham 2020] J. Higginbotham, “Tyk Tips Limit Breaking Changes.” Tyk Blog, 2020. https://tyk.io/blog/tyk-tips-limit-breaking-changes/.

[Higginbotham 2021] J. Higginbotham, Principles of Web API Design: Delivering Value with APIs and Microservices. Addison-Wesley, 2021.

[Hohpe 2003] G. Hohpe and B. Woolf, Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions. Addison-Wesley, 2003.

[Hohpe 2007] G. Hohpe, “Conversation Patterns: Interactions between Loosely Coupled Services.” In Proceedings of the 12th European Conference on Pattern Languages of Programs (EuroPLoP). UVK - Universitaetsverlag Konstanz, 2007, 1–45.

[Hohpe 2016] G. Hohpe, I. Ozkaya, U. Zdun, and O. Zimmermann, “The Software Architect’s Role in the Digital Age.” IEEE Software 33, no. 6 (2016): 30–39. https://doi.org/10.1109/MS.2016.137.

[Hohpe 2017] G. Hohpe, “Conversations between Loosely Coupled Systems.” Last updated 2017. https://www.enterpriseintegrationpatterns.com/patterns/conversation/.

[Hornig 1984] C. Hornig, “A Standard for the Transmission of IP Datagrams over Ethernet Networks.” RFC 894; RFC Editor, April 1984. https://doi.org/10.17487/RFC0894.

[IANA 2020] “Link Relations.” Internet Assigned Numbers Authority, 2020. https://www.iana.org/assignments/link-relations/link-relations.xhtml.

[International 2022] HL7 International, “Health Level 7 International.” Accessed June 24, 2022. http://www.hl7.org.

[ISO 2005] International Organization for Standardization, Industrial Automation Systems and Integration—Product Data Representation and Exchange—Part 1179: Application Module: Individual Involvement in Activity, ISO 10303-1179:2005. ISO, 2005.

[ISO 2020] International Organization for Standardization, Financial Services—International Bank Account Number (IBAN)—Part 1: Structure of the IBAN, ISO 13616-1:2020. ISO, 2020.

[Joachim 2013] N. Joachim, D. Beimborn, and T. Weitzel, “The Influence of SOA Governance Mechanisms on IT Flexibility and Service Reuse.” Journal of Strategic Information Systems 22, no. 1 (2013): 86–101. https://doi.org/https://doi.org/10.1016/j.jsis.2012.10.003.

[Jones 2012] M. Jones and D. Hardt, “The OAuth 2.0 Authorization Framework: Bearer Token Usage.” RFC 6750; RFC Editor, Oct. 2012. https://doi.org/10.17487/RFC6750.

[Jones 2015] M. Jones, J. Bradley, and N. Sakimura, “JSON Web Token (JWT).” RFC 7519; RFC Editor, May 2015. https://doi.org/10.17487/RFC7519.

[Josefsson 2006] S. Josefsson, “The Base16, Base32, and Base64 Data Encodings.” RFC 4648; RFC Editor, October 2006. https://doi.org/10.17487/RFC4648.

[Josuttis 2007] N. Josuttis, SOA in Practice: The Art of Distributed System Design. O’Reilly, 2007.

[JSON API 2022] JSON API, “JSON:API: A Specification for Building APIs in JSON.” 2022. https://jsonapi.org/.

[Judkowitz 2018] J. Judkowitz and M. Carter, “SRE Fundamentals: SLIs, SLAs and SLOs.” Google Cloud Platform Blog, 2018. https://cloudplatform.googleblog.com/2018/07/sre-fundamentals-slis-slas-and-slos.html?m=1.

[Julisch 2011] K. Julisch, C. Suter, T. Woitalla, and O. Zimmermann, “Compliance by Design–Bridging the Chasm between Auditors and IT Architects.” Computers & Security 30, no. 6 (2011): 410–426.

[Kapferer 2021] S. Kapferer and O. Zimmermann, “ContextMapper: A Modeling Framework for Strategic Domain-Driven Design.” Context Mapper, 2021. https://contextmapper.org/.

[Kelly 2016] M. Kelly, “JSON Hypertext Application Language.” Internet Engineering Task Force; Internet Engineering Task Force, Internet-Draft, May 2016. https://datatracker.ietf.org/doc/html/draft-kelly-json-hal-08.

[Kerievsky 2004] J. Kerievsky, Refactoring to Patterns. Pearson Higher Education, 2004.

[Kimball 2002] R. Kimball and M. Ross, The Data Warehouse Toolkit: The Complete Guide to Dimensional Modeling, 2nd ed. Wiley, 2002.

[Kircher 2004] M. Kircher and P. Jain, Pattern-Oriented Software Architecture, Volume 3: Patterns for Resource Management. Wiley, 2004.

[Klabnik 2011] S. Klabnik, “Nobody Understands REST or HTTP.” 2011. https://steveklabnik.com/writing/nobody-understands-rest-or-http#representations.

[Knoche 2019] H. Knoche, “Improving Batch Performance When Migrating to Microservices with Chunking and Coroutines.” Softwaretechnik-Trends 39, no. 4 (2019): 20–22.

[Krafzig 2004] D. Krafzig, K. Banke, and D. Slama, Enterprise SOA: Service-Oriented Architecture Best Practices (the COAD Series). Prentice Hall, 2004.

[Kruchten 2000] P. Kruchten, The Rational Unified Process: An Introduction, 2nd ed. Addison-Wesley, 2000.

[Kruchten 2013] P. Kruchten, “Contextualizing Agile Software Development.” Journal of Software: Evolution and Process 25, no. 4 (2013): 351–361. https://doi.org/10.1002/smr.572.

[Kubernetes 2022] Kubernetes, “The Kubernetes API.” Accessed June 24, 2022. https://kubernetes.io/docs/concepts/overview/kubernetes-api/.

[Lanthaler 2021] M. Lanthaler, “Hydra Core Vocabulary—A Vocabulary for Hypermedia-Driven Web APIs.” Unofficial draft, July 2021. http://www.hydra-cg.com/spec/latest/core/.

[Lauret 2017] A. Lauret, “API Stylebook: Collections of Resources for API designers.” 2017. http://apistylebook.com/.

[Lauret 2019] A. Lauret, The Design of Web APIs. Manning, 2019.

[Leach 2005] P. J. Leach, R. Salz, and M. H. Mealling, “A Universally Unique IDentifier (UUID) URN Namespace.” RFC 4122; RFC Editor, July 2005. https://doi.org/10.17487/RFC4122.

[Lewis 2014] J. Lewis and M. Fowler, “Microservices: A Definition of This New Architectural Term.” martinFowler.com, 2014. https://martinfowler.com/articles/microservices.html.

[Leymann 2000] F. Leymann and D. Roller, Production Workflow: Concepts and Techniques. Prentice Hall, 2000.

[Leymann 2002] F. Leymann, D. Roller, and M.-T. Schmidt, “Web Services and Business Process Management.” IBM System Journal 41, no. 2 (2002): 198–211. https://doi.org/10.1147/sj.412.0198.

[Little 2013] M. Little, “The Costs of Versioning an API.” InfoQ, 2013. https://www.infoq.com/news/2013/12/api-versioning/.

[Lübke 2015] D. Lübke, “Using Metric Time Lines for Identifying Architecture Shortcomings in Process Execution Architectures.” In Proceedings of the 2nd International Workshop on Software Architecture and Metrics (SAM). IEEE Press, 2015, 55–58.

[Lübke 2016] D. Lübke and T. van Lessen, “Modeling Test Cases in BPMN for Behavior-Driven Development.” IEEE Software 33, no. 5 (2016): 15–21. https://doi.org/10.1109/MS.2016.117.

[Maheedharan 2018] V. Maheedharan, “Beta Testing of Your Product: 6 Practical Steps to Follow.” dzone.com, 2018. https://dzone.com/articles/beta-testing-of-your-product-6-practical-steps-to.

[Manikas 2013] K. Manikas and K. M. Hansen, “Software Ecosystems—A Systematic Literature Review.” Journal of Systems and Software 86, no. 5 (2013): 1294–1306. https://doi.org/10.1016/j.jss.2012.12.026.

[Martin 2002] R. C. Martin, Agile Software Development: Principles, Patterns, and Practices. Prentice Hall, 2002.

[Meldewesen 2014] eCH-Fachgruppe Meldewesen, “GBDBS XML Schema.” Accessed June 24, 2014. https://share.ech.ch/xmlns/eCH-0173/index.html.

[Melnikov 2011] A. Melnikov and I. Fette, “The WebSocket Protocol.” RFC 6455; RFC Editor, December 2011. https://doi.org/10.17487/RFC6455.

[Mendonça 2021] N. C. Mendonça, C. Box, C. Manolache, and L. Ryan, “The Monolith Strikes Back: Why Istio Migrated from Microservices to a Monolithic Architecture.” IEEE Software 38, no. 5 (2021): 17–22. https://doi.org/10.1109/MS.2021.3080335.

[Meyer 1997] B. Meyer, Object-Oriented Software Construction, 2nd ed. Prentice Hall, 1997.

[Microformats 2022] Microformats Web site. Accessed June 24, 2022. http://microformats.org.

[Microsoft 2021] Microsoft, “LinkedIn API Breaking Change Policy.” Microsoft Docs, 2021. https://docs.microsoft.com/en-us/linkedin/shared/breaking-change-policy.

[Moats 1997] R. Moats, “URN Syntax.” RFC 2141; RFC Editor, May 1997. https://doi.org/10.17487/RFC2141.

[Möckli 2017] W. Möckli and D. Lübke, “Terravis—the case of process-oriented land register transactions digitization.” In Digital Government Excellence Awards 2017: An Anthology of Case Histories, edited by D. Remenyi. Academic Conferences and Publishing, 2017.

[Monday 2003] P. B. Monday, Web Services Patterns: Java Edition. Apress, 2003.

[Murer 2010] S. Murer, B. Bonati, and F. Furrer, Managed Evolution—A Strategy for Very Large Information Systems. Springer, 2010.

[Neri 2020] D. Neri, J. Soldani, O. Zimmermann, and A. Brogi, “Design Principles, Architectural Smells and Refactorings for Microservices: A Multivocal Review.” Software-Intensive Cyber Physical Systems 35, no. 1 (2020): 3–15. https://doi.org/10.1007/s00450-019-00407-8.

[Neuman 2005] C. Neuman, S. Hartman, K. Raeburn, and T. Yu, “The Kerberos Network Authentication Service (V5).” RFC 4120; RFC Editor, July 2005. https://doi.org/10.17487/RFC4120.

[Newman 2015] S. Newman, “Pattern: Backends for Frontends.” Sam Newman & Associates, 2015. https://samnewman.io/patterns/architectural/bff/.

[Nottingham 2007] M. Nottingham, “Feed Paging and Archiving.” RFC 5005; RFC Editor, September 2007. https://doi.org/10.17487/RFC5005.

[Nottingham 2017] M. Nottingham, “Web Linking.” RFC 8288; RFC Editor, October 2017. https://doi.org/10.17487/RFC8288.

[Nottingham 2022] M. Nottingham, “Home Documents for HTTP APIs.” Network Working Group, Internet-Draft, 2022. https://datatracker.ietf.org/doc/html/draft-nottingham-json-home-06.

[Nygard 2011] M. Nygard, “Documenting Architecture Decisions.” Cognitect, 2011. https://www.cognitect.com/blog/2011/11/15/documenting-architecture-decisions.

[Nygard 2018a] M. Nygard, Release It! Design and Deploy Production-Ready Software, 2nd ed. Pragmatic Bookshelf, 2018.

[Nygard 2018b] M. Nygard, “Services by Lifecycle.” Wide Awake Developers, 2018. https://www.michaelnygard.com/blog/2018/01/services-by-lifecycle/.

[Nygard 2018c] M. Nygard, “Evolving Away from Entities.” Wide Awake Developers, 2018. https://www.michaelnygard.com/blog/2018/04/evolving-away-from-entities/.

[OASIS 2005] OASIS, Security Assertion Markup Language (SAML) v2.0. Organization for the Advancement of Structured Information Standards, 2005.

[OASIS 2021] OASIS, eXtensible Access Control Markup Language (XACML) version 3.0. Organization for the Advancement of Structured Information Standards, 2021.

[OpenAPI 2022] OpenAPI Initiative, “OpenAPI Specification.” 2022. https://spec.openapis.org/oas/latest.html.

[OpenID 2021] OpenID Initiative, “OpenID Connect Specification.” 2021. https://openid.net/connect/.

[OWASP 2021] “OWASP REST Security Cheat Sheet.” OWASP Cheat Sheet Series, 2021. https://cheatsheetseries.owasp.org/cheatsheets/REST_Security_Cheat_Sheet.html.

[Pardon 2011] G. Pardon and C. Pautasso, “Towards Distributed Atomic Transactions over RESTful Services.” In REST: From Research to Practice, edited by E. Wilde and C. Pautasso. Springer, 2011, 507–524.

[Pardon 2018] G. Pardon, C. Pautasso, and O. Zimmermann, “Consistent Disaster Recovery for Microservices: The BAC theorem.” IEEE Cloud Computing 5, no. 1 (2018): 49–59. https://doi.org/10.1109/MCC.2018.011791714.

[Pautasso 2016] C. Pautasso, A. Ivanchikj, and S. Schreier, “A Pattern Language for RESTful Conversations.” In Proceedings of the 21st European Conference on Pattern Languages of Programs. Association for Computing Machinery, 2016.

[Pautasso 2017a] C. Pautasso, O. Zimmermann, M. Amundsen, J. Lewis, and N. M. Josuttis, “Microservices in Practice, Part 1: Reality Check and Service Design.” IEEE Software 34, no. 1 (2017): 91–98. https://doi.org/10.1109/MS.2017.24.

[Pautasso 2017b] C. Pautasso, O. Zimmermann, M. Amundsen, J. Lewis, and N. M. Josuttis, “Microservices in Practice, Part 2: Service Integration and Sustainability.” IEEE Software 34, no. 2 (2017): 97–104. https://doi.org/10.1109/MS.2017.56.

[Pautasso 2018] C. Pautasso and O. Zimmermann, “The Web as a Software Connector: Integration Resting on Linked Resources.” IEEE Software 35, no. 1 (2018): 93–98. https://doi.org/10.1109/MS.2017.4541049.

[Preston-Werner 2021] T. Preston-Werner, “Semantic Versioning 2.0.0.” 2021. https://semver.org/.

[Reschke 2015] J. Reschke, “The ‘Basic’ HTTP Authentication Scheme.” RFC 7617; RFC Editor, September 2015. https://doi.org/10.17487/RFC7617.

[Richardson 2016] C. Richardson, “Microservice Architecture.” Microservices.io, 2016, http://microservices.io.

[Richardson 2018] C. Richardson, Microservices Patterns. Manning, 2018.

[Richardson 2019] C. Richardson, “Documenting a Service Using the Microservice Canvas,” Chris Richardson Consulting Blog, 2019, https://chrisrichardson.net/post/microservices/general/2019/02/27/microservice-canvas.html.

[Riley 2017] J. Riley, Understanding Metadata: What Is Metadata, and What Is It For? A Primer. NISO, 2017. https://www.niso.org/publications/understanding-metadata-2017.

[Rosenberg 2002] M. Rosenberg, Nonviolent Communication: A Language of Life. PuddleDancer Press, 2002.

[Rozanski 2005] N. Rozanski and E. Woods, Software Systems Architecture: Working with Stakeholders Using Viewpoints and Perspectives. Addison-Wesley, 2005.

[Ruby on Rails 2022] Ruby on Rails Web site. Accessed June 24, 2022. https://rubyonrails.org/.

[Saint-Andre 2011] P. Saint-Andre, S. Loreto, S. Salsano, and G. Wilkins, “Known Issues and Best Practices for the Use of Long Polling and Streaming in Bidirectional HTTP.” RFC 6202; RFC Editor, April 2011. https://doi.org/10.17487/RFC6202.

[Schumacher 2006] M. Schumacher, E. Fernandez-Buglioni, D. Hybertson, F. Buschmann, and P. Sommerlad, Security Patterns: Integrating Security and Systems Engineering. Wiley, 2006.

[Serbout 2021] S. Serbout, C. Pautasso, U. Zdun, and O. Zimmermann, “From OpenAPI Fragments to API Pattern Primitives and Design Smells.” In Proceedings of the 26th European Conference on Pattern Languages of Programs (EuroPLoP). Association for Computing Machinery, 1–35, 2021. https://doi.org/10.1145/3489449.3489998.

[Seriy 2016] A. Seriy, Getting Started with IBM API Connect: Scenarios Guide. IBM Redbooks, 2016.

[Sermersheim 2006] J. Sermersheim, “Lightweight Directory Access Protocol (LDAP): The Protocol.” RFC 4511; RFC Editor, June 2006. https://doi.org/10.17487/RFC4511.

[Simpson 1996] W. A. Simpson, “PPP Challenge Handshake Authentication Protocol (CHAP).” RFC 1994; RFC Editor, August 1996. https://doi.org/10.17487/RFC1994.

[Sinatra 2022] Sinatra Web site. Accessed June 24, 2022. http://sinatrarb.com/.

[Singjai 2021a] A. Singjai, U. Zdun, and O. Zimmermann, “Practitioner Views on the Interrelation of Microservice APIs and Domain-Driven Design: A Grey Literature Study Based on Grounded Theory.” In Proceedings of the 18th International Conference on Software Architecture (ICSA), IEEE, 2021, 25–35. https://doi.org/10.1109/ICSA51549.2021.00011.

[Singjai 2021b] A. Singjai, U. Zdun, O. Zimmermann, and C. Pautasso, “Patterns on Deriving APIs and Their Endpoints from Domain Models.” In Proceedings of the European Conference on Pattern Languages of Programs (EuroPLoP), Association for Computing Machinery, 2021, 1–15.

[Singjai 2021c] A. Singjai, U. Zdun, O. Zimmermann, M. Stocker, and C. Pautasso, “Patterns on Designing API Endpoint Operations.” In Proceedings of the 28th Conference on Pattern Languages of Programs (PLoP), Hillside Group, 2021. http://eprints.cs.univie.ac.at/7194/.

[Siriwardena 2014] P. Siriwardena, Advanced API Security: Securing APIs with OAuth 2.0, OpenID Connect, JWS, and JWE. Apress, 2014.

[Sookocheff 2014] K. Sookocheff, “On Choosing a Hypermedia Type for Your API - HAL, JSON-LD, Collection+JSON, SIREN, Oh My!” March 2014. https://sookocheff.com/post/api/on-choosing-a-hypermedia-format/.

[Stalnaker 1996] R. Stalnaker, “On the Representation of Context.” In Proceeding from Semantics and Linguistic Theory, vol. 6. Cornell University, 1996, 279–294.

[Stettler 2019] C. Stettler, “Domain Events vs. Event Sourcing: Why Domain Events and Event Sourcing Should Not Be Mixed Up.” innoQ Blog, January 15, 2019. https://www.innoq.com/en/blog/domain-events-versus-event-sourcing.

[Stocker 2021a] M. Stocker and O. Zimmermann, “From Code Refactoring to API Refactoring: Agile Service Design and Evolution.” in Proceedings of the 15th Symposium and Summer School on Service-Oriented Computing (SummerSOC), Springer, 2021, 174–193.

[Stocker 2021b] M. Stocker and O. Zimmermann, Interface Refactoring Catalog Web site. 2021. https://interface-refactoring.github.io/.

[Stripe 2022] “API Reference.” Stripe API, 2022. https://stripe.com/docs/api.

[Sturgeon 2016a] P. Sturgeon, “Understanding RPC vs REST for HTTP APIs.” Smashing Magazine, 2016. https://www.smashingmagazine.com/2016/09/understanding-rest-and-rpc-for-http-apis/.

[Sturgeon 2016b] P. Sturgeon, Build APIs You Won’t Hate. LeanPub, 2016. https://leanpub.com/build-apis-you-wont-hate.

[Sturgeon 2017] P. Sturgeon, “You Might Not Need GraphQL.” Runscope Blog, 2017. https://blog.runscope.com/posts/you-might-not-need-graphql.

[Swiber 2017] K. Swiber et al., “Siren: A Hypermedia Specification for Representing Entities.” kevinswiber / siren, April 2017. https://github.com/kevinswiber/siren.

[Szyperski 2002] C. Szyperski, Component Software: Beyond Object Oriented Programming, 2nd ed. Addison Wesley, 2002.

[Tanenbaum 2007] A. S. Tanenbaum and M. Van Steen, Distributed Systems: Principles and Paradigms. Prentice Hall, 2007.

[The Economist 2015] “New EU Privacy Rules Could Widen the Policy Gap with America.” The Economist, 2015. https://www.economist.com/international/2015/10/05/new-eu-privacy-rules-could-widen-the-policy-gap-with-america.

[Thijssen 2017] J. Thijssen, “REST CookBook.” restcookbook.com: How to Do Stuff Restful, 2017. https://restcookbook.com/.

[Thoughtworks 2017] “APIs as a Product.” Thoughtworks, 2017. https://www.thoughtworks.com/radar/techniques/apis-as-a-product.

[Tödter 2018] K. Tödter, “RESTful Hypermedia APIs.” Online slide deck, SpeakerDeck, 2018. https://speakerdeck.com/toedter/restful-hypermedia-apis.

[Torres 2015] F. Torres, “Context Is King: What’s Your Software’s Operating Range?” IEEE Software 32, no. 5 (2015): 9–12. https://doi.org/10.1109/MS.2015.121.

[Twitter 2022] Twitter Ads API Team, “Pagination.” Twitter Developer Platform, 2022. https://developer.twitter.com/en/docs/twitter-ads-api/pagination.

[UI Patterns 2021] “Pagination Design Pattern.” UI Patterns: User Interface Design Pattern Library, 2021. http://ui-patterns.com/patterns/Pagination.

[Vernon 2013] V. Vernon, Implementing Domain-Driven Design. Addison-Wesley, 2013.

[Vernon 2021] V. Vernon and T. Jaskula, Strategic Monoliths and Microservices: Driving Innovation Using Purposeful Architecture. Pearson Education, 2021.

[Voelter 2004] M. Voelter, M. Kircher, and U. Zdun, Remoting Patterns: Foundations of Enterprise, Internet, and Realtime Distributed Object Middleware. Wiley, 2004.

[Vogels 2009] W. Vogels, “Eventually Consistent.” Communications of the ACM 52, no. 1 (2009): 40–44. https://doi.org/10.1145/1435417.1435432.

[Vollbrecht 2004] J. Vollbrecht, J. D. Carlson, L. Blunk, B. D. Aboba, and H. Levkowetz, “Extensible Authentication Protocol (EAP).” RFC 3748; RFC Editor, June 2004. https://doi.org/10.17487/RFC3748.

[W3C 1998] W3C, Level 1 Document Object Model Specification. World Wide Web Consortium, 1998. https://www.w3.org/TR/REC-DOM-Level-1/.

[W3C 2004] W3C, Web Services Addressing. World Wide Web Consortium, 2004. https://www.w3.org/Submission/ws-addressing/.

[W3C 2007] W3C, XSL Transformations (XSLT), Version 2.0. World Wide Web Consortium, 2007. https://www.w3.org/TR/xslt20/.

[W3C 2010] W3C, XML Linking Language (XLink), Version 1.1. World Wide Web Consortium, 2010. https://www.w3.org/TR/xlink11/.

[W3C 2013] W3C, SPARQL 1.1 Query Language. World Wide Web Consortium, 2013. https://www.w3.org/TR/sparql11-query/.

[W3C 2017] W3C, XQuery 3.1: An XML Query Language. World Wide Web Consortium, 2017. https://www.w3.org/TR/xquery-31/.

[W3C 2019] W3C, JSON-LD 1.1: A JSON-Based Serialization for Linked Data. World Wide Web Consortium, 2019.

[Webber 2010] J. Webber, S. Parastatidis, and I. Robinson, REST in Practice: Hypermedia and Systems Architecture. O’Reilly, 2010.

[White 2006] A. White, D. Newman, D. Logan, and J. Radcliffe, “Mastering Master Data Management.” Gartner Group, 2006.

[Wikipedia 2022a] Wikipedia, s.v. “Wicked Problem.” Last edited August 24, 2022. https://en.wikipedia.org/wiki/Wicked_problem.

[Wikipedia 2022b] Wikipedia, s.v. “Reference Data.” Last edited December 23, 2021. http://en.wikipedia.org/w/index.php?title=Reference%20data&oldid=1000397384.

[Wikipedia 2022c] Wikipedia, s.v. “Metadata.” Last edited December 23, 2021. http://en.wikipedia.org/w/index.php?title=Metadata&oldid=1061649487.

[Wikipedia 2022d] Wikipedia, s.v. “Metadata Standard.” Last edited December 6, 2021. http://en.wikipedia.org/w/index.php?title=Metadata%20standard&oldid=1059017272.

[Wikipedia 2022e] Wikipedia, s.v. “Uniform Resource Name.” Last edited November 27, 2021. http://en.wikipedia.org/w/index.php?title=Uniform%20Resource%20Name&oldid=1057401001.

[Wikipedia 2022f] Wikipedia, s.v. “Jakarta XML Binding.” Last edited November 13, 2021. http://en.wikipedia.org/w/index.php?title=Jakarta%20XML%20Binding&oldid=1055101833.

[Wikipedia 2022g] Wikipedia, s.v. “Compensating Transaction.” Last edited July 5, 2021. https://en.wikipedia.org/wiki/Compensating_transaction.

[Wikipedia 2022h] Wikipedia, s.v. “Open Data.” Last edited January 4, 2022. https://en.wikipedia.org/wiki/Open_data.

[Wilde 2013] E. Wilde, “The ‘profile’ Link Relation Type.” RFC 6906; RFC Editor, March 2013. https://doi.org/10.17487/RFC6906.

[Wirfs-Brock 2002] R. Wirfs-Brock and A. McKean, Object Design: Roles, Responsibilities, and Collaborations. Pearson Education, 2002.

[Wirfs-Brock 2011] “Agile Architecture Myths #2 Architecture Decisions Should Be Made at the Last Responsible Moment” (posted by Rebecca). wirfs-brock.com, January 18, 2011. http://wirfs-brock.com/blog/2011/01/18/agile-architecture-myths-2-architecture-decisions-should-be-made-at-the-last-responsible-moment/.

[Wirfs-Brock 2019] R. Wirfs-Brock, “Cultivating Your Design Heuristics.” Online slide deck, wirfs-brock.com, 2019. https://de.slideshare.net/rwirfs-brock/cultivating-your-design-heuristics.

[Yalon 2019] E. Yalon and I. Shkedy, “OWASP API Security Project.” OWASP Foundation, 2019. https://owasp.org/www-project-api-security/.

[Zalando 2021] Zalando, “RESTful API and Event Guidelines.” Zalando SE Opensource, 2021. https://opensource.zalando.com/restful-api-guidelines.

[Zdun 2013] U. Zdun, R. Capilla, H. Tran, and O. Zimmermann, “Sustainable Architectural Design Decisions.” IEEE Software 30, no. 6 (2013): 46–53. https://doi.org/10.1109/MS.2013.97.

[Zdun 2018] U. Zdun, M. Stocker, O. Zimmermann, C. Pautasso, and D. Lübke, “Guiding Architectural Decision Making on Quality Aspects in Microservice APIs.” In Service-Oriented Computing: 16th International Conference, ICSOC 2018, Hangzhou, China, November 12–15, 2018, Proceedings. Springer, 2018, 73–89. https://doi.org/10.1007/978-3-030-03596-9_5.

[Zdun 2020] U. Zdun, E. Wittern, and P. Leitner, “Emerging Trends, Challenges, and Experiences in DevOps and Microservice APIs.” IEEE Software 37, no. 1 (2020): 87–91. https://doi.org/10.1109/MS.2019.2947982.

[Zeng 2015] M. L. Zeng, Metadata Basics Web site. 2015. https://www.metadataetc.org/metadatabasics/types.htm.

[Zimmermann 2003] O. Zimmermann, M. Tomlinson, and S. Peuser, Perspectives on Web Services: Applying SOAP, WSDL and UDDI to Real-World Projects. Springer, 2003.

[Zimmermann 2004] O. Zimmermann, P. Krogdahl, and C. Gee, “Elements of Service-Oriented Analysis and Design.” Developer Works, IBM Corporation. 2004.

[Zimmermann 2007] O. Zimmermann, J. Grundler, S. Tai, and F. Leymann, “Architectural Decisions and Patterns for Transactional Workflows in SOA.” In Proceedings of the Fifth International Conference on Service-Oriented Computing (ICSOC). Springer-Verlag, 2007, 81–93. https://doi.org/10.1007/978-3-540-74974-5.

[Zimmermann 2009] O. Zimmermann, “An Architectural Decision Modeling Framework for Service-Oriented Architecture Design.” PhD thesis, University of Stuttgart, Germany, 2009. http://elib.uni-stuttgart.de/opus/volltexte/2010/5228/.

[Zimmermann 2015] O. Zimmermann, “Architectural Refactoring: A Task-Centric View on Software Evolution.” IEEE Software 32, no. 2 (2015): 26–29. https://doi.org/10.1109/MS.2015.37.

[Zimmermann 2017] O. Zimmermann, “Microservices Tenets.” Computer Science–Research and Development 32, no. 3–4 (2017): 301–310. https://doi.org/10.1007/s00450-016-0337-0.

[Zimmermann 2021a] O. Zimmermann and M. Stocker, “What Is a Cloud-Native Application Anyway (Part 2)?” Olaf Zimmermann (ZIO), 2021. https://medium.com/olzzio/what-is-a-cloud-native-application-anyway-part-2-f0e88c3caacb.

[Zimmermann 2021b] O. Zimmermann and M. Stocker, Design Practice Reference: Guides and Templates to Craft Quality Software in Style. LeanPub, 2021. https://leanpub.com/dpr.

[Zimmermann 2021c] O. Zimmermann, “Architectural Decisions—The Making Of.” Olaf Zimmermann (ZIO), 2021. https://ozimmer.ch/practices/2020/04/27/ArchitectureDecisionMaking.html.

[Zimmermann 2022] O. Zimmermann, “Microservice Domain Specific Language (MDSL) Language Specification.” Microservice-API-Patterns, 2022. https://microservice-api-patterns.github.io/MDSL-Specification/.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.133.93.30