next up previous
Next: Introduction

BATCHING: A Design Pattern for Efficient and Flexible Client-Server Interaction

Marta Patiño$^{1\dag }$ - Francisco J. Ballesteros21 - Ricardo Jiménez12 - Sergio Arévalo$^{1\dag }$ - Fabio Kon33 - Roy H. Campbell34

1Distributed Operating Systems Group. Technical University of Madrid
2Systems and Communications Group. Carlos III University of Madrid
3Systems Research Group. University of Illinois at Urbana-Champaign

Report No. UIUCDCS-R-99-2118, UILU-ENG-99-1737

September, 1999

A shorter version of this documment appeared in the Proceedings of the Pattern Laanguages of Programs Conference (PLoP'99).

BATCHING: A Design Pattern for Efficient and Flexible

Client-Server Interaction

In August 1999, six pattern writers disappeared
in the woods of the Allerton Park while
workshopping design patterns. A year later,
their patterns were found...


What do well-known techniques such as gather/scatter for input/output, code downloading for system extension, message batching, mobile agents, and deferred calls for disconnected operation have in common? Despite being rather different techniques, all of them share a common piece of design (and, possibly, implementation) as their cornerstone: the BATCHING design pattern. 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 allow for dynamic server extension. In this paper, 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.

next up previous
Next: Introduction
Francisco J Ballesteros