Where do we go from here?
Initial Issues
- Review names (e.g., "ObjectReference" ==> "CORBAObject"?)
- Investigate use of "transient" objects within ZODB.
- New bird: can we put a CosNaming interface on the ZODB itself, leveraging Medusa/ZServer's select reactor to drive the ORB? (probably Fnorb). What other interfaces should Zope expose to CORBA clients (probably isomorphic with MozillaXUL and wxZope/XMLRPC interfaces).
Prioritizing Use Cases
While displaying a treeview of the COSNaming tree will be cool, it won't be terribly useful until one can invoke methods on the leaf objects (who needs a phone book without a phone?). Getting basic invocation working is a prerequisite for NS browsing, too. Therefore, tackle the use cases as follows.
First Iteration
- Create an ObjectReference from an IOR/UOL
- Bootstrap the object by pasting in an IOR/UOL.
- Utility case for Add a NamingServiceRoot.
- *Note that this OR will not be transient, but live in the ZODB like a normal object.*
- Add a CORBAMethod to an ObjectReference
- Handle the most common case (static invocation) and defer deciding how to pick the name and parameters out of a generic Zope request.
- Invoke a CORBAMethod on an ObjectReference
- Use DII to set up the request (we won't be generating stubs, and besides, Fnorb does it like this anyway.)
Second Iteration
- Add a NamingServiceRoot to the ZODB
- Subclass Create an ObjectReference, but this time as a Folderish container which can hold other OR's (normal OR's hold only CORBAMethods).
- Request an ObjectReference from a NamingContext
- Construct a transient NC/OR on demand.
- Prerequisite for Browse the Hierarchy
- Browse the NamingContext Hierarchy
- Exploit the tree tag, but ensure that NC's/OR's stay transient.
- Save an ObjectReference
- Make the OR (which could be an NC, and therfor a new NSR?) persistent.
- Req doc says to store NSR and path -- do we just save the IOR instead?
Third Iteration
- Invoke a Generic Method on an ObjectReference
- Must establish a convention for passing method name and parameters.
- Use form marshalling, for instance?
- Populate an ObjectReference with CORBAMethods
- actually, this might be "populate a folder with...", since the saved OR's are likely to share CORBAMethods with others of their ilk.
- Use IR, or allow parsing IDL?