Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » EMF "Technology" (Ecore Tools, EMFatic, etc)  » [EMFStore] Updating the model on the server side based on clients modifications
[EMFStore] Updating the model on the server side based on clients modifications [message #1015831] Sun, 03 March 2013 12:31 Go to next message
Junior Lekane Nimpa is currently offline Junior Lekane NimpaFriend
Messages: 23
Registered: September 2012
Junior Member
Hello everyone,

I am trying to develop a library for Ecore models. To persist the models, I use a graph database that is stored on a Rexster server. As far as I know, the server supports multiple user access. I am looking for efficient ways to update the models on the server side based on the clients modifications.

I watched the video on the homepage of EMFStore. It seems that the models on the
server are updated after each modification of clients. I would like to know how this is achieved.
I know that EMF supports notifications. So, I could register Adapter and listen to changes.But this could be ineffective in my opinion because notifications must first be sent over the network. In addition, a notification is sent for each modification on the model. When we know consider the fact that sereval users can work on the same model, reacting directly on the notification could lead to inconsistency.
Another possibility that I am considering is to override the hashCode()-method. After a client has committed his changes, I could compute the hash of all EObjects of a model and compared them with the hash of objects that are stored in the library. Based on the differences I could update the graph. One disadvantage of this approach is that I won't know which property of an object was changed. I would have to do a whole comparison. The last possibility is brute force, which I want to avoid.

Could someone (in the EMFStore team) tell me how I could update the server models?
Any idea is welcome.
Many thanks
Junior
Re: [EMFStore] Updating the model on the server side based on clients modifications [message #1015927 is a reply to message #1015831] Mon, 04 March 2013 09:41 Go to previous message
Maximilian Koegel is currently offline Maximilian KoegelFriend
Messages: 225
Registered: July 2009
Senior Member
Hi,

EMFStore records the notifications on the client-side as so-called
operations. An operation can describe the result of several
notifications and is considered an atomic change. For example deleting
an EObject including all its cross-references to remaining EObjects is
an operation.
EMFStore stores the operations on the client side until a commit is
requested. On commit the operations are send to the server and used for
conflict detection (detecting overlapping changes) and for
synchronization of the model/graph on the server and other clients.
Maybe it makes sense for you to reuse EMFStore or parts of EMFStore.
Hope this helps, let me know if you have more questions!

Cheers,
Maximilian

Am 03.03.2013 13:31, schrieb Junior Lekane Nimpa:
> Hello everyone,
>
> I am trying to develop a library for Ecore models. To persist the
> models, I use a graph database that is stored on a Rexster server. As
> far as I know, the server supports multiple user access. I am looking
> for efficient ways to update the models on the server side based on the
> clients modifications.
>
> I watched the video on the homepage of EMFStore. It seems that the
> models on the server are updated after each modification of clients. I
> would like to know how this is achieved. I know that EMF supports
> notifications. So, I could register Adapter and listen to changes.But
> this could be ineffective in my opinion because notifications must first
> be sent over the network. In addition, a notification is sent for each
> modification on the model. When we know consider the fact that sereval
> users can work on the same model, reacting directly on the notification
> could lead to inconsistency.
> Another possibility that I am considering is to override the
> hashCode()-method. After a client has committed his changes, I could
> compute the hash of all EObjects of a model and compared them with the
> hash of objects that are stored in the library. Based on the differences
> I could update the graph. One disadvantage of this approach is that I
> won't know which property of an object was changed. I would have to do a
> whole comparison. The last possibility is brute force, which I want to
> avoid.
>
> Could someone (in the EMFStore team) tell me how I could update the
> server models?
> Any idea is welcome.
> Many thanks
> Junior


--
Maximilian Kögel

Get Professional Eclipse Support: http://eclipsesource.com/munich
Previous Topic:[Texo] Using different EntityManager
Next Topic:[EMFatic] Link emfatic file with ecore file
Goto Forum:
  


Current Time: Fri Dec 19 21:41:20 GMT 2014

Powered by FUDForum. Page generated in 0.07958 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software