Interface Representation Patterns - Crafting and Consuming Message-Based Remote APIs
Remote Application Programming Interfaces (APIs) are technology enablers for major distributed system trends such as mobileand 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 theirruntime qualities while preserving backward compatibility is equally challenging for API providers. For instance, finding a wellsuited granularity for services and their operations is a particularly important design concern in APIs that realize service-orientedsoftware architectures. Due to the fallacies of distributed computing, the forces for message-based APIs and service interfacesdiffer from those for local APIs – for instance, network latency and security concerns deserve special attention. Existing patternlanguages have dealt with local APIs in object-oriented programming, with remote objects, with queue-based messaging andwith service-oriented computing platforms. However, patterns or equivalent guidance for the structural design of request andresponse messages in message-based remote APIs is still missing. In this paper, we outline such a pattern language and introducefive basic interface representation patterns to promote platform-independent design advice for common remote API technologiessuch as RESTful HTTP and Web services (WSDL/SOAP). Known uses and examples of the patterns are drawn from publicWeb APIs, as well as application development and software integration projects the authors have been involved in.
Top- Zimmermann, Olaf
- Stocker, Mirko
- Lübke, Daniel
- Zdun, Uwe
Category |
Paper in Conference Proceedings or in Workshop Proceedings (Paper) |
Event Title |
22nd European Conference on Pattern Languages of Programs (EuroPLoP 2017) |
Divisions |
Software Architecture |
Subjects |
Software Engineering |
Event Location |
Irsee in Bavaria, Germany |
Event Type |
Conference |
Event Dates |
12-16 July 2017 |
Page Range |
pp. 1-36 |
Date |
July 2017 |
Export |