1 / 15

Dynamic Invocation Interface

Dynamic Invocation Interface . Alternative to using IDL stubs Object cannot distinguish between the two. How is DII different for the programmer?. Step 1. Client needs to build an argument list Each element has the following structure struct NamedValue {

dwilbanks
Download Presentation

Dynamic Invocation Interface

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 • 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. Root Account Bank Debit() Nigel Edwards JUL95

  8. Interface Repository Nodes • 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

  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. ORB1 Bridge ORB2 Interoperability • Allowing client in one ORB invoke object in a different ORB

  11. Interoperability DSI DSI DII DII IIOP DSI DSI DII DII Client Half Bridge Server

  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?

More Related