BATCHING: A Design Pattern for Efficient and Flexible Client-Server Interaction
- Francisco J. Ballesteros21 -
Ricardo Jiménez12 - Sergio Arévalo
- 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
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
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
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.
Francisco J Ballesteros