Whip: Higher-Order contracts for modern services

Lucas Waye, Stephen Chong, Christos Dimoulas

Research output: Contribution to journalArticlepeer-review

10 Scopus citations

Abstract

Modern service-oriented applications forgo semantically rich protocols and middleware when composing services. Instead, they embrace the loosely-coupled development and deployment of services that communicate via simple network protocols. Even though these applications do expose interfaces that are higher-order in spirit, the simplicity of the network protocols forces them to rely on brittle low-level encodings. To bridge the apparent semantic gap, programmers introduce ad-hoc and error-prone defensive code. Inspired by Design by Contract, we choose a different route to bridge this gap. We introduce Whip, a contract system for modern services. Whip (i) provides programmers with a higher-order contract language tailored to the needs of modern services; and (ii) monitors services at run time to detect services that do not live up to their advertised interfaces. Contract monitoring is local to a service. Services are treated as black boxes, allowing heterogeneous implementation languages without modification to services’ code. Thus, Whip does not disturb the loosely coupled nature of modern services.

Original languageEnglish (US)
Article number36
JournalProceedings of the ACM on Programming Languages
Volume1
Issue numberICFP
DOIs
StatePublished - Sep 2017
Externally publishedYes

Keywords

  • Contracts
  • Microservices
  • Services

ASJC Scopus subject areas

  • Software
  • Safety, Risk, Reliability and Quality

Fingerprint

Dive into the research topics of 'Whip: Higher-Order contracts for modern services'. Together they form a unique fingerprint.

Cite this