Remotepublishing is a module that enables MMBase to share data with other MMBases. It keeps track of content it has shared and content that where shared to him by other MMBases. Remotepublishing can publish and keep track of any type of content like text , images and relations. It has automatic relation creation between shared content, if for example a news item was shared and later on a image that was related to the content is also shared , the relation is created automatically. Content is shared from and to a specific cloud. For that goal Remotepublishing has a list of known clouds. For performance and simplicity content that is shared is copied to the other MMBase, this makes it possible to handle shared content just like any other MMBase content and for example create relations to that content. Sharing content is done via the API provided by this package. By default when content that MMBase is sharing is altered the changed content is not automatically republished. You can chose to republish the content using the API once you are happy with it. If you want your content to be republished automatically this is can also be done by making your builder a publishing builder.
every MMBase that want to share content needs the following builders.
The cloud builder holds a list of MMBase clouds. This is a list used by the Cloud Manager to maps cloud names with there location. Those names are to be used when refering to other clouds | |
The remotenodes builder keeps track of the shared nodes. incomming and outgoing nodes. the sourcecloud and destinationcloud point to a "cloud" node in the cloud builder. sourcenumber points to a node in de sourcecloud and destinationnumber points to a node in the destinationcloud. One of both clouds wil be the "local" cloud. This information is used by the publish manager. | |
The publishqueue is the buffer for publishing actions. the API uses this builder to provide failsafe and ansync publishing. |
While is should be possible to publish to multiple clouds this was never done yet and most code , for example the inPublishUtil won't help you much since there is no way of telling it to what cloud to share/publish the data