For this example, we’ll consider a simple application in you can draw boxes, and you have only 4 options:
It means that instances of the application transmit across the network only the actions taken in order to get from the old state to the new state. This is extremely useful if you have data models that take up a lot of space (like 3D polygon models), but changes made to them can be described using very little space.
So let’s say you have application A and application B, working on the same instance containing square1 and square2. Let’s say square1 is already rotated by 30 degrees, and instance A rotates it with another 15 degrees (to a total of 45 degrees). Instead of sending out rotateBox(square1, 45), it sends out rotateBox(square1,15). The great advantage of this approach if two rotations occur in (near) real time, they can get composed over the network. So if, at the same time, application B, applies and additional rotation of 10 degrees, the end result (in both instance A and B).
The order on the generated events will be the order they reach the XTWIP server. It this case, it may seem that the order of the events is irrelevant, but most actions (operations) are not commutative – that is changing the order of two actions changes the end result they yield.
The advantages of this approach:
The disadvantages are however more subtle and only through implementing experience did we learn about them:
These significant disadvantages of the event-driven model lead us to the decision that we needed an alternative way of offering real time collaboration, with less debugging, less risks and less work. This is how we came up with the object-driven collaboration model …
* Keep following the Types of Collaboration series to get a true insight on how XTWIP provides real time collaboration for your Web & Rich Internet Applications.
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:
Please drop in a few lines …
Redeul said:
The disadvantages are clear but the second one is not that important since you can invent a deployment model in which code defined by an application can reach and be executed on server (either declaratively via event composition rules, or via plain old sandboxing of client code on the server).
.
The first drawback is actually the show stopper
Bogdan said:
Hey, Redeul
The solution for the second problem is obviously RMI, but it induces a lot of interoperability and security hassle.
However, you’ve noticed the more important thing: automatically composing the result isn’t always “the best of both worlds”
Keep following our “Types of Collaboration” series, as we share the models we experimented with, the result we got and the conclusions we’ve drawn.
Thanks for you time !