Download presentation
Presentation is loading. Please wait.
Published byCoral Powell Modified over 8 years ago
1
Dynamic Invocation Interface Alternative to using IDL stubs Object cannot distinguish between the two. How is DII different for the programmer?
2
Step 1 1. Client needs to build an argument list Each element has the following structure struct NamedValue { identifier name; //argument name any argument;// the argument long len; // size of argument (in bytes) : }
3
Step 2 Invoking create_request() on remote object. Implemented by the ORB Inputs include: Operation name Argument list Variable to contain the result create_request() returns an object reference to a request object.
4
Step 3 - Request object operations invoke() Deliver request to a remote object delete() Destroys the request object get_response() send() send() and get_response() are used for asynchronous invocations
5
DII Notes Less abstract Hides fewer aspects of distribution Clients not restricted to using services that were defined at compile time Good for building class browsers Good for building bridges What is missing?
6
Interface Repository Provides access to interface definitions Is itself a CORBA Object Operations on it can be invoked like any other CORBA object. Used for Dynamic Invocation
7
Bank Root Account Debit() Nigel Edwards JUL95
8
Each node has a number of attributes Name Return Type Exceptions Arguments Each Node can be uniquely identified Nodes are treated as objects Support some functions like : contains() – return a list of interfaces within() – return object reference to interface object Interface Repository Nodes
9
DSI-Dynamic Skeleton Invocation Introduced in CORBA 2.0 To support implementation of gateways between ORBs utilizing different communication protocols DSI is the server side equivalent of DII Object invocation without skeletons being statically compiled into the program
10
Interoperability Allowing client in one ORB invoke object in a different ORB Bridge ORB1ORB2
11
Interoperability DII DSI DII DSI DII Half Bridge Server Client IIOP
12
Why Bridges use Dynamic Invocation? Because bridges are generic Can be used to invoke any object regardless of its interface If bridge is built using IDL stubs then it can work only for objects whose stubs are incorporated into the bridge
13
Next Time … Object Adapters (BOA (obsolete) /POA) Inter-ORB protocols (IIOP/GIOP) Event Services, Naming Services, Trading, Transaction COM vs. CORBA QOS Examples / Applications
14
Resources Advanced CORBA programming with C++ - Henning, Vinoski CORBA - An Industrial Approach to Open Distributed Computing -Nigel Edwards CORBA : Integrating diverse Applications within Distributed Heterogeneous Environments – Steve Vinoski
15
Discussion What design patterns are used in Interface Repository, bridges?
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.