skip to main content
10.1145/3282308.3282319acmotherconferencesArticle/Chapter ViewAbstractPublication PageseuroplopConference Proceedingsconference-collections
research-article

Interface Quality Patterns: Communicating and Improving the Quality of Microservices APIs

Published: 04 July 2018 Publication History

Abstract

The design and evolution of Application Programming Interfaces (APIs) in microservices architectures is challenging. General design issues in integration and programming have been covered in great detail in many pattern languages since the beginnings of the patterns movement, and service-oriented infrastructure design patterns have also been published in the last decade. However, the interface representations (i.e., the content of message payloads) have received less attention. We presented five structural representation patterns in our previous work; in this paper we continue our coverage of the API design space and propose five interface quality patterns that deal with the observable aspects of quality-attribute-driven interface design for efficiency, security, and manageability: An API Key allows API providers to identify clients. Providers may offer rich data contracts in their responses, which not all consumers might need. A Wish List allows the client to request only the attributes in a response data set that it is interested in. If a client makes many API calls, the provider can employ a Rate Limit and bill clients according to a specified Rate Plan. A provider has to provide a high-quality service while at the same time having to use its available resources economically. The resulting compromise is expressed in a provider's Service Level Agreement.

References

[1]
Subbu Allamaraju. 2010. RESTful Web Services Cookbook. O'Reilly.
[2]
Mario R Barbacci, Robert J Ellison, Anthony Lattanze, Judith Stafford, Charles B Weinstock, and William Wood. 2002. Quality attribute workshops. (2002).
[3]
Michael Brandner, Michael Craes, Frank Oellermann, and Olaf Zimmermann. 2004. Web services-oriented architecture in production in the finance industry. Informatik-Spektrum 27, 2 (2004), 136--145.
[4]
Humberto Cervantes and Rick Kazman. 2016. Designing Software Architectures: A Practical Approach (1st ed.). Addison-Wesley Professional.
[5]
Service Level Agreements Subgroup Cloud Select Industry Group (C-SIG). 2014. Cloud Service Level Agreement Standardisation Guidelines. https://ec.europa.eu/digital-agenda/news-redirect/16934. (2014).
[6]
Dimension Data. 2013. Comparing Public Cloud Service Level Agreements. https://www.dimensiondata.com/Global/Downloadable%20Documents/Comparing%20Public%20Cloud%20Service%20Level%20Agreements%20White%20Paper.pdf. (2013).
[7]
Stephen Farrell. 2009. API Keys to the Kingdom. IEEE Internet Computing 5 (2009), 91--93.
[8]
Christoph Fehling, Frank Leymann, Ralph Retter, Walter Schupeck, and Peter Arbitter. 2014. Cloud Computing Patterns: Fundamentals to Design, Build, and Manage Cloud Applications. Springer.
[9]
Martin Fowler. 2002. Patterns of Enterprise Application Architecture. Addison-Wesley.
[10]
Antonio Gamez-Diaz, Pablo Fernandez, and Antonio Ruiz-Cortes. 2017. An Analysis of RESTful APIs Offerings in the Industry. In Proc. of the 15th International Conference on Service-Oriented Computing (ICSOC 2017). Springer, 589--604.
[11]
Robert Hanmer. 2007. Patterns for Fault Tolerant Software. Wiley.
[12]
Gregor Hohpe and Bobby Woolf. 2003. Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions. Addison-Wesley.
[13]
Jelena Mirkovic and Peter Reiher. 2004. A taxonomy of DDoS attack and DDoS defense mechanisms. ACM SIGCOMM Computer Communication Review 34, 2 (2004), 39--53.
[14]
Michael Nygard. 2018. Release It! Design and Deploy Production-Ready Software (2nd ed.). Pragmatic Bookshelf.
[15]
D. L. Parnas. 1972. On the Criteria to Be Used in Decomposing Systems into Modules. Commun. ACM 15, 12 (Dec. 1972), 1053--1058.
[16]
Cesare Pautasso, Ana Ivanchikj, and Silvia Schreier. 2016. A Pattern Language for RESTful Conversations. In Proceedings of the 21st European Conference on Pattern Languages of Programs (EuroPLoP). Irsee, Germany.
[17]
Chris Richardson. 2016. Microservice Architecture. http://microservices.io. (2016).
[18]
Markus Schumacher, Eduardo Fernandez-Buglioni, Duane Hybertson, Frank Buschmann, and Peter Sommerlad. 2006. Security Patterns: Integrating security and systems engineering. John Wiley & Sons.
[19]
Prabath Siriwardena. 2014. Advanced API Security: Securing APIs with OAuth 2.0, OpenID Connect, JWS, and JWE. Apress.
[20]
Phil Sturgeon. 2016. Build APIs you won't hate. LeanPub, https://leanpub.com/build-apis-you-wont-hate.
[21]
Chris Wood, Art Anthony, Arnaud Lauret, and Kristopher Sandoval. 2016. The API Economy: Disruption and the Business of APIs. Nordic APIs AB, Stockholm, Sweden. https://nordicapis.com/api-ebooks/the-api-economy/
[22]
Olaf Zimmermann. 2009. An architectural decision modeling framework for service-oriented architecture design. Ph.D. Dissertation. University of Stuttgart, Germany. http://elib.uni-stuttgart.de/opus/volltexte/2010/5228/
[23]
O. Zimmermann. 2015. Architectural Refactoring: A Task-Centric View on Software Evolution. IEEE Software 32, 2 (Mar.-Apr. 2015), 26--29.
[24]
Olaf Zimmermann. 2017. Microservices Tenets. Comput. Sci. 32, 3-4 (July 2017), 301--310.
[25]
Olaf Zimmermann, Mirko Stocker, Daniel Lübke, and Uwe Zdun. 2017. Interface Representation Patterns: Crafting and Consuming Message-Based Remote APIs. In Proceedings of the 22nd European Conference on Pattern Languages of Programs (EuroPLoP '17). ACM, Article 27, 36 pages.

Cited By

View all
  • (2025)A Conceptual Framework for API Refactoring in Service-Oriented ArchitecturesService-Oriented and Cloud Computing10.1007/978-3-031-84617-5_15(181-196)Online publication date: 21-Feb-2025
  • (2024)A proposed catalog of development patterns for fault-tolerant microservicesProceedings of the XXIII Brazilian Symposium on Software Quality10.1145/3701625.3701678(406-416)Online publication date: 5-Nov-2024
  • (2024)Pattern-oriented API Refactoring: Addressing Design Smells and Stakeholder ConcernsProceedings of the 29th European Conference on Pattern Languages of Programs, People, and Practices10.1145/3698322.3698334(1-24)Online publication date: 3-Jul-2024
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
EuroPLoP '18: Proceedings of the 23rd European Conference on Pattern Languages of Programs
July 2018
322 pages
ISBN:9781450363877
DOI:10.1145/3282308
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

In-Cooperation

  • Hillside Europe: Hillside Europe

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 04 July 2018

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Research-article
  • Research
  • Refereed limited

Conference

EuroPLoP '18

Acceptance Rates

EuroPLoP '18 Paper Acceptance Rate 35 of 53 submissions, 66%;
Overall Acceptance Rate 216 of 354 submissions, 61%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)35
  • Downloads (Last 6 weeks)3
Reflects downloads up to 03 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2025)A Conceptual Framework for API Refactoring in Service-Oriented ArchitecturesService-Oriented and Cloud Computing10.1007/978-3-031-84617-5_15(181-196)Online publication date: 21-Feb-2025
  • (2024)A proposed catalog of development patterns for fault-tolerant microservicesProceedings of the XXIII Brazilian Symposium on Software Quality10.1145/3701625.3701678(406-416)Online publication date: 5-Nov-2024
  • (2024)Pattern-oriented API Refactoring: Addressing Design Smells and Stakeholder ConcernsProceedings of the 29th European Conference on Pattern Languages of Programs, People, and Practices10.1145/3698322.3698334(1-24)Online publication date: 3-Jul-2024
  • (2024)Securing Blockchain-Based IoT Systems: A ReviewIEEE Access10.1109/ACCESS.2024.342849012(98856-98881)Online publication date: 2024
  • (2024)XL: explainable lead generation with microservices and hypothetical answersComputing10.1007/s00607-024-01321-x106:11(3419-3445)Online publication date: 24-Jul-2024
  • (2024)Assessing Large Language Models Effectiveness in Outdated Method RenamingService-Oriented Computing10.1007/978-981-96-0805-8_18(253-260)Online publication date: 7-Dec-2024
  • (2023)Enhancing Microservices Security with Token-Based Access Control MethodSensors10.3390/s2306336323:6(3363)Online publication date: 22-Mar-2023
  • (2023)Research Opportunities in Microservices Quality Assessment: A Systematic Literature ReviewJournal of Advances in Information Technology10.12720/jait.14.5.991-100214:5(991-1002)Online publication date: 2023
  • (2023)API Refactoring to Patterns: Catalog, Template and Tools for Remote Interface EvolutionProceedings of the 28th European Conference on Pattern Languages of Programs10.1145/3628034.3628073(1-32)Online publication date: 5-Jul-2023
  • (2023)API Rate Limit Adoption -- A pattern collectionProceedings of the 28th European Conference on Pattern Languages of Programs10.1145/3628034.3628039(1-20)Online publication date: 5-Jul-2023
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media