that’s the whole problem. You’re using some internal structure that cannot be actually extended or customized. It’s designed for your internal usage. Normally if you take a look at your competition, e.g. Brava or IBM ViewOne Pro the integration is much simpler.
In a real world example, when we want to integrate it with Alfresco, Documentum, FileNet, Sharepoint, Oracle WebCenter or any existing db-based ECM system it seams to be impossible. That means 90% of the market.
In case of any ECM system, we can:
1. Get the document name and content by ID
2. Get the existing annotation by document ID
3. Add/Edit/Remove annotation by document ID and annotation ID
And that’s all we should implement.
Basically when the annotation tool is opened we pass to it the object ID and the user name. Then the annotation tool should have a way to read the document by this ID and then read the annotations by the the object ID. We don’t care about the user, session or anything but the annotations. We have integrated other mentioned viewers and it was just a matter of extending two connectors: one for getting the documents and the other for managing the annotations. User name was used just to identify the annotations authors and then permissions to them. In your scenario annotation and reply are the same from the user perspective and any reference between them should be maintained internally, the annotation ID should be unique only in a document context, not unique generally. That’s because there must be a way to migrate them between different installations.
Your data structure is something really strange to me, I have no idea why you save some session info which is temporary and should not be ever stored.
What I would like to know is whether there is any way that we can create our connectors with just the 3 API parts we have access to (get doc by id, get annotations by doc id,save user annotations). Without storing any info about users or sessions. Plus in our case user name, document ID and annotation ID is always a string.
So please let me know if we can do that, and if so how.