Batching: a design pattern for efficient and flexible client/server interaction

  • Authors:
  • Francisco J. Ballesteros;Fabio Kon;Marta Patiño;Ricardo Jiménez;Sergio Arévalo;Roy H. Campbell

  • Affiliations:
  • University Rey Juan Carlos;University of São Paulo;Technical University of Madrid;Technical University of Madrid;University Rey Juan Carlos;University of Illinois at Urbana-Champaign

  • Venue:
  • Transactions on Pattern Languages of Programming I
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

The Batching design pattern consists of a common piece of design and implementation that is shared by a wide variety of well-known techniques in Computing such as gather/scatter for input/output, code downloading for system extension, message batching, mobile agents, and deferred calls for disconnected operation. All techniques mentioned above are designed for applications running across multiple domains (e.g., multiple processes or multiple nodes in a network). In these techniques, multiple operations are bundled together and then sent to a different domain, where they are executed. In some cases, the objective is to reduce the number of domain-crossings. In other cases, it is to enable dynamic server extension. In this article, we present the Batching pattern, discuss the circumstances in which the pattern should and should not be used, and identify eight classes of existing techniques that instantiate it.