I am working on some modifications to the XMI deserializer that will allow the following scenario:
1) A CAS is serialized to XMI. 2) Copies of the XMI documents are sent to multiple remote services 3) Each remote service appends to the CAS (does not delete or modify existing stuff) and responds with a new serialized XMI CAS) 4) The multiple XMI responses are all merged back into a single CAS instance This would permit multiple remote services that don't depend on each other to run in parallel, assuming they only append to the CAS (which is common). Of course there's other work on the runtime needed to actually do the parallel invocations, but XMI serializer support is a prerequisite. The basic XMI deserializer changes aren't too complicated. First, when the CAS is originally serialized in step 1, we make available to the caller the maximum xmi:id value in that CAS (this is mostly already done, we just need to add a public accessor for this value). Next, we allow passing this value to the deserializer as an optional argument that essentially says "deserialize only XMI elements whose xmi:id is greater than the specified value". Any comments on this approach? -Adam
