Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
CORBA design patterns
Mowbray T., Malveau R., John Wiley & Sons, Inc., New York, NY, 1997. Type: Book (9780471158820)
Date Reviewed: Sep 1 1998

Mowbray and Malveau describe design patterns suitable for distributed systems, particularly Common Object Request Broker Architecture (CORBA) systems. CORBA is an industrial standard that defines language-independent remote method invocations. A design pattern describes a recurring design scenario together with a known solution and its implications.

The back cover claims that the book provides detailed guidance in the construction of distributed CORBA applications; a “complete” design pattern catalog offering expert solutions for designing and building distributed object-oriented systems; and step-by-step examples of the building of both legacy and Internet applications. These claims are not cautious: completeness is a goal that can hardly be achieved by any catalog of patterns. There is also a semantic inaccuracy. We want to integrate legacy applications, not build them. More important, the relation to legacy applications is restricted to a wrapper pattern. Here I will examine whether the book satisfies the first claim.

The book consists of five parts, the first of which introduces CORBA, design patterns, and design methodologies that exploit object-oriented architecture. The next four parts discuss design patterns that are applicable specifically at the application, system design, enterprise, and global scales.

The first part consists of three chapters: an introduction to patterns and CORBA, the authors’ view of object-oriented architecture, and an overview of the classification of patterns used throughout the book. The introduction to patterns is brief but accomplishes its purpose. The explanations of CORBA are also terse but omit some issues that arise in distributed computing (such as different semantics of parameter passing). The next chapter sketches the basics of object-oriented design methodologies. The importance of well-built interface definitions is a key concern. On page 21, the authors state that object-oriented models do not distinguish between interface and implementation. This is generally not true. Usually, class diagrams describe not only method names, but the complete parameter structure. Modern tools allow the generation of (complete) CORBA IDL interfaces, in contrast to statements made in the book.

Most specialized books about CORBA or design patterns describe the application area of a pattern informally, but employ semiformal notations (for example, OMT/UML class and interaction diagrams) in the diagrams instead of the informal diagrams used throughout this book. To be fair, those notations are applicable only for a restricted scale, particularly application and system design patterns (which are not the focus of this book).

It remains to be seen whether the patterns given describe good CORBA designs and provide the promised detailed guidance. This is not the case for some, which are not specifically relevant to distributed computing, such as the “Library” pattern (p. 144). The enterprise and global patterns are not well elaborated. The proposal on pages 206 through 209 to use an “architecture framework” is imprecise in both its solution and its applicability condition. The number of higher-level patterns should have been reduced in favor of a more serious discussion. (The authors spend only about four pages on each pattern.)

The book’s overall organization is clear and reflects the organization of the pattern catalog. An attached CD-ROM contains four animations; IDL and C files with the code found in the examples; and HTML files containing the patterns from parts 2 through 5. The technical quality of the animations is poor. More important, they do not provide much additional insight into the problems they depict. The HTML files do not contain any diagrams showing the patterns’ structure.

The bibliography cites relevant work in this area but could be more exhaustive. For example, there is no reference to technologies competing with CORBA or to the book by Coplien and Schmidt containing patterns related to distributed systems [1].

Focusing on patterns for large-scale distributed systems is an interesting idea, but the descriptions should be more precise. The patterns presented in parts 2 through 5 are intended to be used as a reference library. For readers unfamiliar with the development of CORBA applications, the introduction to CORBA and patterns in general, together with the catalog, provide a good starting point. More experienced readers, however, will require a more elaborate discussion of the patterns.

Reviewer:  A. Radermacher Review #: CR121828 (9809-0660)
1) Coplien, J. O. and Schmidt, D. C., Eds. Pattern languages of program design. Addison-Wesley, Reading, MA, 1995.
Bookmark and Share
 
Software Architectures (D.2.11 )
 
 
Concurrent Programming (D.1.3 )
 
 
Object-Oriented Programming (D.1.5 )
 
Would you recommend this review?
yes
no
Other reviews under "Software Architectures": Date
Software architecture in practice
Bass L., Clements P., Kazman R., Addison-Wesley Longman Publishing Co., Inc., Boston, MA, 1998. Type: Book (9780201199307)
Sep 1 1999
Developing business systems with CORBA
Sadiq W., Cummins F., Cambridge University Press, New York, NY, 1998. Type: Book (9780521646505)
Feb 1 1999
Integrating CORBA and COM applications
Rosen M., Curtis D., John Wiley & Sons, Inc., New York, NY, 1998. Type: Book (9780471198277)
Feb 1 1999
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy