
ObjectKey
  *  Defined in geas-skeleton.c/h
  *  Unique ASCII string, managed using libuuid

ObjectIdentifer
  *  Defined in geas-skeleton.c/h
  *  Identifies a business object uniquely
  *  Based on class name and a key, which is an ASCII string that must be
     unique

GEAS_object_reference
  *  Defined in geas-skeleton.c/h
  *  Identifies on object in GEAS: DataObject, ObjectList, Connection, Admin
  *  placed in 

CORBA_Object
  *  A reference to a CORBA object
  *  Given to clients to allow them to use GEAS objects.

CORBA: PortableServer_ObjectId
  * Passed to client applications, is a CORBA_Object
  * Contains an encoded GEAS_object_reference



A business object will have an ObjectIdentifier that allows GEAS to locate
it in either the object cache or SQL database. This will be encoded into a
CORBA_Object reference to a CORBA object of type 'GEAS::DataObject.

When a request arrives at the GEAS server, ORBit will use the appropriate
servant locator (ie, the one registered for the appropriate class:
DataObject, ObjectList, etc) to help find the function to call.

It will then call the function in geas-skeleton.c that provides the
requested method in the right class.

This function will thern decode the identifier that was in the object
reference, to determine which GEAS object to use. eg: if the requested
operation was on an instance of class DataObject, with the business object
in the reference being 'class=customer, key=1234' the decode function will
decode those details, and place the results into a new GEAS_object_reference.

Next, it will call the function in dataobject.c that provides the
appropriate operation, passing it the GEAS_object_reference. this function
can use the reference to locate the object in the data cache, perform the
operation, and return a result.


