Technical Report Number
Design patterns are a topic of great current interest within the object-oriented programming community. The motivation is both economical and intellectual. On one hand, there is the hope of establishing a common culture and language that fosters communicatino and growth in the software engineering field. While a community dominated by empiricism is seeking to achieve higher levels of formality by capturing its experiences in the form of catalogs of design patterns, another community, deeply rooted in formal thinking, is seeking to make its mark on the every day workings of the software engineering process. Distributed algorithms and the heuristics used by program derivation methods represent a large repository of fundamental knowledge that has been acquired over the years by the distributed computing community. Attempts to make this body of knowledge available to the broader community have been frustrated to say the least. The main thesis of this paper is that design patterns are a viable mechanism by which distributed computing know-how can impact the practical development of dependability-minded distributed applications. We contend, however, that in order to do so one needs to view design patterns in a new perspective, more formal and more language-independent than the view adopted by the object-oriented programming community. This paper provides a possible characterization of the notion of a distributed design pattern and discusses ways by which design patterns can be transformed into specific applications. An airport baggage delivery system with distributed control is used for illustration purposes.
Roman, Gruia-Catalin and Hu, James C., "Building Distributed Applications with Design Patterns" Report Number: WUCS-96-31 (1996). All Computer Science and Engineering Research.