by Linda Rising. Distributed object computing forms the basis for nextgeneration application middleware. At the heart of distributed object computing are Object Request Brokers (ORBs), which automate many tedious and error-prone distributed programming tasks. Like many other distributed applications, conventional ORBs use statically configured software designs, which are hard to maintain, port, and optimize. Likewise, conventional ORBs cannot be extended without modifying their source code, which forces recompilation, relinking, and restarting running ORBs and their associated application objects. This article makes two contributions to the study of extensible and maintainable ORB middleware. First, it presents a case study of key patterns needed to develop ORBs that can be dynamically configured and evolved for specific application requirements and system characteristics. Second, we quantify the impact of applying patterns to reduce the complexity and improve the maintainability of common ORB tasks, such as connection management, data transfer, demultiplexing, and concurrency control. 1
|
3701
|
Design patterns: elements of reusable object-oriented software
– Gamma, Helm, et al.
- 1995
|
|
507
|
A Complexity Measure
– McCabe
- 1976
|
|
387
|
Pattern-Oriented Software Architecture: a System of Patterns
– Buschmann, Meunier, et al.
- 1996
|
|
279
|
Architectural support for quality of services for CORBA Object Systems
– Zinki, Bakken, et al.
- 1997
|
|
276
|
Corba: Integrating diverse applications within distributed heterogeneous environments
– Vinoski
- 1997
|
|
220
|
D.L.: “The Design and Performance of a Real-time CORBA Event
– Harrison, Schmidt, et al.
- 1997
|
|
206
|
The Design and Performance of RealTime Object Request Brokers
– Schmidt, Levine, et al.
- 1998
|
|
202
|
Inside Windows NT
– Custer
- 1993
|
|
176
|
Essential COM
– Box
|
|
164
|
ASX: an Object-Oriented Framework for Developing Distributed Applications
– Schmidt
- 1994
|
|
149
|
Reactor: An Object Behavioral Pattern for Concurrent Event Demultiplexing and Event Handler Dispatching
– Schmidt
- 1995
|
|
141
|
A Distributed Object Model for the Java System
– Wollrath, Riggs, et al.
- 1996
|
|
123
|
Active object: an object behavioral pattern for concurrent programming
– Lavender, Schmidt
- 1995
|
|
93
|
An Object-Oriented Framework for Dynamically Configuring Extensible Distributed Communication Systems
– Schmidt, Suda
- 1994
|
|
91
|
Measuring the Impact of Event Dispatching and Concurrency Models on Web Server Performance Over High-speed Networks
– Hu, Pyarali, et al.
- 1997
|
|
85
|
Acceptor and Connector: Design Patterns for Initializing Communication Services
– Schmidt
- 1997
|
|
79
|
Design and Performance of an Object-Oriented Framework for HighPerformance Electronic
– Pyarali, Harrison, et al.
- 1996
|
|
75
|
Flick: a flexible, optimizing IDL compiler
– Eide, Frei, et al.
|
|
73
|
Threads Extension for Portable Operating Systems (Draft 7
– IEEE
- 1992
|
|
67
|
Measuring and Optimizing CORBA Latency and Scalability Over High-speed
– Gokhale, Schmidt
- 1998
|
|
66
|
The APIC Approach to High Performance Network Interface Design
– Dittia, Parulkar, et al.
- 1997
|
|
58
|
GPERF: A Perfect Hash Function � Generator
– Schmidt
- 1990
|
|
52
|
Evaluating the Performance of Demultiplexing Strategies for Real-time CORBA
– Gokhale, Schmidt
- 1997
|
|
51
|
A Family of Design Patterns for Applicationlevel Gateways,” The Theory and Practice
– Schmidt
- 1996
|
|
50
|
Techniques for Developing and Measuring High-Performance Web
– Hu, Mungee, et al.
- 1998
|
|
48
|
Service Configurator: A Pattern for Dynamic Configuration of Services
– Jain, Schmidt
- 1997
|
|
43
|
Alleviating priority inversion and non-determinism in real-time CORBA ORB core architectures
– Schmidt, Mungee, et al.
- 1998
|
|
40
|
Evaluating Architectures for Multi-threaded CORBA Object Request Brokers
– Schmidt
- 1998
|
|
36
|
Real-Time CORBA
– Wolfe, DiPippo, et al.
- 1997
|
|
33
|
Principles for Optimizing CORBA Internet Inter–ORB Protocol Performance
– Gokhale, Schmidt
- 1998
|
|
30
|
Techniques for Optimizing CORBA Middleware for Distributed Embedded Systems
– Gokhale, Schmidt
- 1999
|
|
28
|
Experience using design patterns to develop reuseable object-oriented communication software
– Schmidt
- 1995
|
|
26
|
Frameworks = Patterns + Components
– Johnson
- 1997
|
|
24
|
Shared libraries in sunOS
– Gingell, Lee, et al.
- 1987
|
|
21
|
Evaluating Latency and Scalability of CORBA Over High-Speed ATM Networks
– Gokhale, Schmidt
- 1997
|
|
20
|
An ORB Endsystem Architecture for Statically Scheduled Real-time Applications
– Schmidt, Bector, et al.
- 1997
|
|
20
|
Thread-Specific Storage - An Object Behavioral Pattern for Accessing per-Thread State Efficiently
– Schmidt, Harrison, et al.
- 1997
|
|
20
|
Wrapper Facade: A Structural Pattern for Encapsulating Functions within Classes
– Schmidt
- 1999
|
|
18
|
An Overview of the CORBA Portable Object Adapter
– Pyarali, Schmidt
- 1998
|
|
17
|
Evaluating Strategies for Real-Time CORBA Dynamic Scheduling
– Gill, Levine, et al.
- 1999
|
|
16
|
Object Adapters: Concepts and Terminology
– Schmidt, Vinoski
- 1997
|
|
15
|
Binding, Migration, and Scalability in CORBA
– Henning
- 1998
|
|
10
|
Design Considerations and Performance Optimizations for Real-time ORBs
– Gokhale, Pyarali, et al.
- 1999
|
|
7
|
Design Principles and Optimizations for High-performance ORBs
– Gokhale, Schmidt
- 1997
|