Hi All

Just to keep everyone not in Munich in the loop - this morning we've been discussing the extra data needed from the repository connector by the atom pub server binding. (To return the cmis response as atompub, you need to supply some extra data such as parents and dates)

In OpenCMIS at the moment, there are two SPIs, one for client side and one for server side. On the server side, the SPI is slightly different, as an ObjectInfo can be passed in. If passed in, the repository is alerted that lots of extra information is required, and populates it. Downsides include this not being OO, the need for two different SPIs (one with and one without the extra parameter), and forcing all the work onto the repo.

In Chemistry at the moment, there is only the one SPI. The Atom Pub layer is forced to make a large number of calls to fetch the information it needs for its response. Downsides include lots of method calls, and not all repos being able to cache / prefetch the required data as they don't know in advance what's needed.

There's a proposal for a third way, where the call context is populated with hints on what's needed. A common SPI could potentially be used to request the data from the repo for the atompub (and ws) layer. A wrapped object can be returned if the repo wishes to, which contains extra information and object references. Calls will be made to fetch the extra information as needed, but potentially they could simply grab the data out of the wrapped object.

We're going to try to implement this third way shortly, to test to see if it will really work or not. If it does work, the code will be committed to svn so everyone else can review and comment.

Nick


Reply via email to