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

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

Research output: Chapter in Book/Report/Conference proceedingConference contribution


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.

Original languageEnglish (US)
Title of host publicationTransactions on Pattern Languages of Programming I
EditorsJames Noble, Ralph Johnson, Uwe Zdun, Eugene Wallingford
Number of pages19
StatePublished - 2009

Publication series

NameLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
Volume5770 LNCS
ISSN (Print)0302-9743
ISSN (Electronic)1611-3349

ASJC Scopus subject areas

  • Theoretical Computer Science
  • Computer Science(all)

Fingerprint Dive into the research topics of 'Batching: A design pattern for efficient and flexible client/server interaction'. Together they form a unique fingerprint.

Cite this