zeiss-digital-innovation / SynchronizeFX

JavaFX data-binding between JVMs over the network

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

When 2 client change the same property at the same time they may are unsynchron.

rbi opened this issue · comments

The server does not send changes originating from a client back to the same client. It does only send them to all other clients.

Suppose there are 2 clients A and B connected to a serve.

If client A sends a change of a property, the server sends these changes only to client B. If client B send a change of the same property before it recieves the change of A, the server does send this change only to A. When B than recieves the change of A, the same property has different values in both clients.

Just sending all changes to all clients including the client that send them is not possible as this would result in flickering in continuously changing properties, like the position property of the slider in the slider demo.

It also would result in duplicated add and remove operations on ListProperties if no additional countermeasures are taken. All other properties (Set, Map, single value properties) should have no problems with duplicate remove and set operations except for the flickering.

Single Value Properties and ListProperties should eventually synchronize them selves now event if multiple clients do changes at the same time. Map Properties and Set Properties are still todo.

Also there needs to be ensured, that all changes on the domain model on the server are done in the same Thread. This is comperable to the JavaFX platform thread.