[GemStone/S] GemStone CORBA client to Python server

Martin v.Loewis loewis at cs.tu-berlin.de
Tue Feb 15 03:08:25 EST 2000

In article <38A8343F.E0B8430F at acm.org>,
Thierry Thelliez  <thierry at acm.org> wrote:
>1- How do I use GemStone as a CORBA client ?
>Being very new to GemOrb and CORBA, I am wondering if I really need a
>GemStone ORBBroker + ORBServer when I don't need the GemStone CORBA server
>capabilities (at this point).
>I am not sure to understand the CorbaORB usefulness. It seems to be a
>small client for development ?

I'm not familiar with the GemORB product. If they really offer separate
client and server function, you probably don't need the server side in
your case. Please note that in CORBA, the client/server distinction is
often weakened by the desire for 'server-initiated' communication.

For example, a Gem client finding a Python object might want to do so
via the naming service, which could be the GemORB naming service. In
the case, the Python 'server' would have to register with the GemORB
naming server, acting as a client at that moment.

>2- How do I start a GemStone CORBA client on an IOR string ?

GemORB should offer an ORB operation string_to_object.

>3- How do I share this IOR ?

>Store it in a file ? 

That is certainly a common solution.

>Should the client access this file through ftp or something like that ? 

That might also be possible. Many ORBs recognize 'http:' or 'ftp:' object
references in their string_to_object implementations. They expect the
document behind the URL to be an IOR: style object reference.

>Or am I missing something in CORBA ?

Have a look at the name service. This is the standard way of exchanging
object references between applications. Now, how do you get the name service?
Call orb.resolve_initial_references("NameService"). 

How does the ORB know the name service? This is a tricky question. One
of your ORBs should have a configuration mechanism to set the IOR of
the naming service (I know OmniORB does); the other should have a naming 
service running on a fixed IOR (i.e. fixed port/object key). Then you do 
a one-time configuration of the other ORB, and can then use the naming 
service for all applications.

Hope this helps,

More information about the Python-list mailing list