This implementation of real time collaboration seems to offer the best balance between performance, usability and developer needs. This is why we chose it for the current XTWIP implementation of collaboration.
The object based approach follows these 4 simple rules:
<!– The document is an important tag, so it gets a unique ID –>
<document id=”7″>
<!– The same goes for the button –>
<button id=”9″>
<!– The attributes of the button however, are not that important from a collaborative stand-point –>
<label text=”Collaborative Button” color=”6600FF”>
<background src=”xtwip_logo.jpg>
<background color=”222222″>
<link url=”http://www.xtwip.com”>
</button>
[...]
</document>
This (apparently) simple protocol provides application developers with a simple gateway to collaboration. No longer do they have to write server-side code or write their own custom code for diffing and merging differences. The XTWIP SDK together with the XTWIP Collaboration Service provide that for just a few lines of code. All developers need to do is read the tutorial, drop a few lines of code into their application and they can redeploy their application as a collaboration experience.
Let’s look at the advantages:
There are only two disadvantages:
Number one. If two users happen to modify the exact same atomic object at the same time (within 300 ms of each other, on average), the XTWIP SDK will automatically merge the two changes. When merging fails, the last change performed will implicitly have priority. Merging means a further analysis of what has changed (attributes, child tags) and putting it all together. Merging usually fails when the two users change exactly the same attributes and no automatic conclusion can be drawn as to who’s right.
In our experience, however, this type of fine-grained micro-conflict between versions is very rare. When it does happen, the users notice it right away. They tend to immediately react and choose a final state for the change they wanted.
Number two. Whole pieces of the data model are serialized and send across the network, so if your application deals a lot with raster image editing, object-based collaboration is not the best idea (at least, not by itself).
If you want to try this type of real time collaboration with your own application, create a Developer Account on XTWIP and there you’ll find everything you need:
The greatest thing about XTWIP is that it can easily be attached as a layer over your BI or MiddleWare applications [...] I believe this is the ultimate step a company should take in its efforts to increase productivity.
Val Vladescu , BiVal NE , BPM Solutions Integrator
Bogdan said:
More on how we built on object-based collaboration in order to turn XTWIP into a versatile & accessible service in the following posts.
Until then, we look forward to your comments, questions and suggestions.
Thank you