Zhimin has created new schemata:
MessageAnnotation: a message for (clients) sending an annotation to the network. Does it need a new name? Zhimin can decide. Refactoring is easy with Eclipse.
MessageNotification: a message for (the network) sending a notification (e.g. if a new annotation happens, then the network needs to send notifications to subscribers)
MessageReturn: a message for responding to queries from a client. The client will get a handle for the message queue for asynchronous query replies. Should all calls be asynchronous? Should the response be a guid or results, and the client figures it out when it reads the response?
MessageSubscription: a message for subscribing to a topic (and for canceling a subscription).
An expression of interest in a topic may be a worthy observation in itself. Is there a difference between an annotation and a metadatum? A record-level metadatum doesn't go around carrying its schema with it? An annotation is a *new* piece of information.
Zhimin reminds us that he is using ActiveMQ as the JMS implementation.
A proposal: Nothing in the message body must impact network state or behavior. The message body is available to interacting applications in the network and the content may affect other messages. Routing is based on the header.
Note that science has in general more need for data integrity than for data privacy.
National Science Digital Library triple store solution: http://dltj.org/article/fedora-mptstore/