Image Processing Reference
In-Depth Information
Kokyu
Dispatching model
Real-time QoS
assurance
Priority lanes
ACE
Network programming
Primitives Patterns
Portability
nORB
TAO
UCI-Core
Minimum ORB
feature set
IDL compliation strategies
ORB concurrency patterns
ORB core mechanisms
FIGURE .
Reuse from existing frameworks.
2.2.2 Solution: Use a Bottom-Up Composition Approach
to Get “Only” the Features That We Need
Figure . illustrates our approach. The selection of features for our special-purpose middleware
implementation was strictly driven by the unique requirements of the application described in
Section ...
We initially considered a top-down approach, to avoid creating and maintaining an open-source
code base separated from TAO. However, this approach proved infeasible due to several factors. First,
the degree of implementation-level interdependence between features in TAO made it difficult to
separate them. Second, the scarcity of mature tools to assist in identifying and decoupling needed vs.
unneeded features made it unlikely we would be able to achieve such a top-down decomposition in
a reasonable amount of time. hird, absent better tools it was also infeasible to validate that during
refactoring we had correctly retained functional and real-time properties for the large body of TAO
applications deployed outside our DOC middleware research consortium.
Therefore, we ultimately took a bottom-up compositional approach, which led to the development
of nORB [], starting with the ACE framework and reusing as much as possible from it with trans-
parent refactoring of some ACE classes to avoid unneeded features. By building on ACE, we reduced
duplicationbetweentheTAOandnORBcodebases,whileachievingatractabledevelopmentprocess.
As in TAO, ACE components serve as primitive building blocks for nORB. Communication
between nORB endsystems is performed according to the CORBA [] model: the client side mar-
shals the parameters of a remote call into a request message and sends it to a remote server, which
then demarshals the request and calls the appropriate servant object; the reply is then marshaled into
a reply message and sent back to the client, where it is demarshaled and its result returned to the
caller. Although we did not retain strict compliance to the CORBA specification, wherever possible
nORB is freely available as open-source software at http://deuce.doc.wustl.edu/nORB/
 
Search WWH ::




Custom Search