I was going over Steve Vinoskis Book and it states that the client makes a request and is blocked until it receives a response from the server.<br>Since i was working with the Echo example provided in OmniOrb . Please let me know if my conclusion is correct or not which is at the end <br>
<br><br>An outline of the binding part of server is: (This just shows an overview of how an object is registered with the naming service.<br><font style="color:rgb(0,0,102)" size="2">static CORBA::Boolean bindObjectToName(CORBA::ORB_ptr orb, CORBA::Object_ptr objref)<br>
{<br>       ...... <br>       CosNaming::NamingContext_var rootContext;<br><br>        // Bind a context called &quot;test&quot; to the root context:<br>        CosNaming::Name contextName;<br>        contextName.length(1);<br>
        contextName[0].id   = (const char*) &quot;test&quot;;       // string copied<br>        contextName[0].kind = (const char*) &quot;my_context&quot;; // string copied<br>        <br><br>        CosNaming::NamingContext_var testContext;<br>
        testContext = rootContext-&gt;bind_new_context(contextName);<br>       <br>        // Bind objref with name Echo to the testContext:<br>        CosNaming::Name objectName;<br>        objectName.length(1);<br>        objectName[0].id   = (const char*) &quot;Echo&quot;;   // string copied<br>
        objectName[0].kind = (const char*) &quot;Object&quot;; // string copied<br><br>         testContext-&gt;bind(objectName, objref);    <br>}<br><br>orb-&gt;run();</font><br><br>Now the client code abstract code is (This shows how the object is retrieved from the naming service)<br>
<br>static CORBA::Object_ptr getObjectReference(CORBA::ORB_ptr orb)<br>{<br>    CosNaming::NamingContext_var rootContext;<br>    CORBA::Object_var obj;<br>    obj = orb-&gt;resolve_initial_references(&quot;NameService&quot;);<br>
<br>    // Narrow the reference returned.<br>    rootContext = CosNaming::NamingContext::_narrow(obj);<br>        <br>    // Create a name object, containing the name test/context:<br>    CosNaming::Name name;<br>    name.length(2);<br>
<br>    name[0].id   = (const char*) &quot;test&quot;;       // string copied<br>    name[0].kind = (const char*) &quot;my_context&quot;; // string copied<br>    <br>    name[1].id   = (const char*) &quot;Echo&quot;;<br>    name[1].kind = (const char*) &quot;Object&quot;;<br>
    <br>    return rootContext-&gt;resolve(name); <br>}<br><br><b>From the above example I have concluded that 
It seems as if the server must have the object ready and registered in 
the naming service before the Client could request and use it. In other words the server must have knowledge in advance of what objects could be requested by the client i.  Is this correct ?? <br>I wanted to know is it possible for the client to pass a string to the server and based on that string the server could assemble a new object.  If so any idea how or what should i look into the book ??<br>
</b>