Interface Representation Patterns: Crafting and Consuming Message-Based Remote APIs

O. Zimmermann, Mirko Stocker, Daniel Lübke, Uwe Zdun
{"title":"Interface Representation Patterns: Crafting and Consuming Message-Based Remote APIs","authors":"O. Zimmermann, Mirko Stocker, Daniel Lübke, Uwe Zdun","doi":"10.1145/3147704.3147734","DOIUrl":null,"url":null,"abstract":"Remote Application Programming Interfaces (APIs) are technology enablers for major distributed system trends such as mobile and cloud computing and the Internet of Things. In such settings, message-based APIs dominate over procedural and object-oriented ones. It is hard to design such APIs so that they are easy and efficient to use for client developers. Maintaining their runtime qualities while preserving backward compatibility is equally challenging for API providers. For instance, finding a well suited granularity for services and their operations is a particularly important design concern in APIs that realize service-oriented software architectures. Due to the fallacies of distributed computing, the forces for message-based APIs and service interfaces differ from those for local APIs -- for instance, network latency and security concerns deserve special attention. Existing pattern languages have dealt with local APIs in object-oriented programming, with remote objects, with queue-based messaging and with service-oriented computing platforms. However, patterns or equivalent guidance for the structural design of request and response messages in message-based remote APIs is still missing. In this paper, we outline such a pattern language and introduce five basic interface representation patterns to promote platform-independent design advice for common remote API technologies such as RESTful HTTP and Web services (WSDL/SOAP). Known uses and examples of the patterns are drawn from public Web APIs, as well as application development and software integration projects the authors have been involved in.","PeriodicalId":171324,"journal":{"name":"Proceedings of the 22nd European Conference on Pattern Languages of Programs","volume":"55 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2017-07-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"20","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 22nd European Conference on Pattern Languages of Programs","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3147704.3147734","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 20

Abstract

Remote Application Programming Interfaces (APIs) are technology enablers for major distributed system trends such as mobile and cloud computing and the Internet of Things. In such settings, message-based APIs dominate over procedural and object-oriented ones. It is hard to design such APIs so that they are easy and efficient to use for client developers. Maintaining their runtime qualities while preserving backward compatibility is equally challenging for API providers. For instance, finding a well suited granularity for services and their operations is a particularly important design concern in APIs that realize service-oriented software architectures. Due to the fallacies of distributed computing, the forces for message-based APIs and service interfaces differ from those for local APIs -- for instance, network latency and security concerns deserve special attention. Existing pattern languages have dealt with local APIs in object-oriented programming, with remote objects, with queue-based messaging and with service-oriented computing platforms. However, patterns or equivalent guidance for the structural design of request and response messages in message-based remote APIs is still missing. In this paper, we outline such a pattern language and introduce five basic interface representation patterns to promote platform-independent design advice for common remote API technologies such as RESTful HTTP and Web services (WSDL/SOAP). Known uses and examples of the patterns are drawn from public Web APIs, as well as application development and software integration projects the authors have been involved in.
接口表示模式:制作和使用基于消息的远程api
远程应用程序编程接口(api)是主要分布式系统趋势(如移动和云计算以及物联网)的技术推动者。在这种情况下,基于消息的api比面向过程和面向对象的api占主导地位。很难设计这样的api,以便客户端开发人员能够轻松有效地使用它们。对于API提供者来说,在保持向后兼容性的同时保持运行时质量同样具有挑战性。例如,在实现面向服务的软件体系结构的api中,为服务及其操作找到合适的粒度是一个特别重要的设计关注点。由于分布式计算的谬误,基于消息的api和服务接口的力量与本地api的力量不同——例如,网络延迟和安全问题值得特别注意。现有的模式语言已经处理了面向对象编程中的本地api、远程对象、基于队列的消息传递和面向服务的计算平台。然而,在基于消息的远程api中,请求和响应消息的结构设计模式或等效指南仍然缺失。在本文中,我们概述了这样一种模式语言,并介绍了五种基本的接口表示模式,以促进针对常见远程API技术(如RESTful HTTP和Web服务(WSDL/SOAP))的与平台无关的设计建议。模式的已知用途和示例取自公共Web api,以及作者参与的应用程序开发和软件集成项目。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信