GWT Google Web Toolkit Remote Object synchronization

Posted on 2011-10-23
Medium Priority
Last Modified: 2012-06-28
I am looking for an elegant way to synchronize objects between multiple clients and a server over the web.

1. Client A registers for notifications of changes to a object O with the server S.
2. Client B notifies the server S that it has modified a property of the object O.
3. Server S checks which clients registered for updates to the object O, identified Client A and notifies the client A of a change.
4. Client A updates the local instance of object O.
5. Object O on the client A and object O on the client B are not synchronized.

Question: does Google Web Toolbox offers an out of the box solution to the architecture above?

Note: i know i can do this manually, with the Event Bus, for example. I am wondering if there is an out of the box solution that can let me simply register objects for updates and keep them synchronized without "reinventing the bicycle.."

Question by:cyber-33

Accepted Solution

jan-janssen earned 1000 total points
ID: 37020909
I am not a GWT developer myself but I came across the following statement:

Multithreading and Synchronization: JavaScript interpreters are single-threaded, so while GWT silently accepts the synchronized keyword, it has no real effect. Synchronization-related library methods are not available, including Object.wait(), Object.notify(), and Object.notifyAll(). The compiler will ignore the synchronized keyword but will refuse to compile your code if the Object's related synchronization methods are invoked.

But as always you are not the only one looking into this therefore I suggest you take a look at http://code.google.com/p/gwt-syncproxy/ it seems to be the extension you are looking for.

Author Comment

ID: 37035522
The issue here is NOT the synchronization in a multithreaded environment. The issue is synchronization of Java Objects and their attributes. For example, if I have two objects; o1 and o1, each instantiated from the class C1, each has a property NAME. So, if I set o1.Name = Joe, the goal is to have the system update o2.Name to Joe. Hope this clarifies the question...

Featured Post

Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

When speed and performance are vital to revenue, companies must have complete confidence in their cloud environment.
The article lists top benefits which gaming industry bestows with the assistance of cloud computing technology.
This Micro Tutorial will demonstrate how nuggets on the Web are formatted by using Chrome Developer Tools. These tools would not only view the site's CSS but it can also modify it and save the CSS to use on your own site.
This Micro Tutorial will demonstrate how MozBar finds back links of any website you visit, as well as page, social shares to the page, and domain level metrics. There will me practical applications for this data.
Suggested Courses

750 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question