Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » EMF » [CDO] Understanding Invalidations
[CDO] Understanding Invalidations [message #540949] Thu, 17 June 2010 17:49 Go to next message
David Schmelter is currently offline David SchmelterFriend
Messages: 11
Registered: July 2009
Junior Member
Hi all,

Right now I am thinking about a CDO powered client/server architecture
and need some clarification and advice (mainly regarding invalidations I
guess).

Let's assume we have an application with several clients A, B and C
which are connected to a server S (not a CDO server). The clients A, B
and C might be ATMs or POS terminals for example. The server S handles
all kinds of business transactions.

My idea is to think about the communication between the clients and the
server in terms of a distributed application: Let's assume A and S are
working on some sort of distributed statemachine (we are getting nearer
to CDO...) which contains something like Client states and Server
states: Whenever a client state is reached some logic is executed on the
client A (for example money is dispensed), whenever a server state is
reached some logic is executed on the server S (for example certain
business transactions are authorized). If the statemachine is modelled
with EMF the handling and notification of state changes can be nicely
done with the help of CDO.

In the end we would have one statemachine instance for each connection
from our clients to the server. From the CDO point of view A, B, C as
well as S would be CDO clients. What I want to avoid now are unnecessary
notifications: Client B should not get invalidations for the
statemachine which belongs to Client A. On the other hand S has to
handle all invalidations which are received from A, B and C. I wonder
now what's the preferred way to handle this. Should I create one CDO
repository for each of the clients A, B and C and connect S to all these
repositories or is there another, maybe better way?

I hope my problem is somewhat clear :-)


thanks for your help and best regards,
David
Re: [CDO] Understanding Invalidations [message #540957 is a reply to message #540949] Thu, 17 June 2010 18:48 Go to previous message
Eike Stepper is currently offline Eike StepperFriend
Messages: 6690
Registered: July 2009
Senior Member
Hi David,

There is currently no way to selectively prevent particular
invalidations. But invalidations are just messages that say "object S
has changed". They *can* carry the change deltas if the client has
registered a change subscription for S. This is controlled via a
CDOChangeSubscriptionPolicy on the CDOView and via matching Adapters on
the local object S.

Of course you can switch off the whole invalidation mechanism per
CDOSession but then you don't get any info about a change until you
manually call refresh() on that session.

Does that help?

Cheers
/Eike

----
http://thegordian.blogspot.com
http://twitter.com/eikestepper



Am 17.06.2010 19:49, schrieb David Schmelter:
> Hi all,
>
> Right now I am thinking about a CDO powered client/server architecture
> and need some clarification and advice (mainly regarding invalidations
> I guess).
>
> Let's assume we have an application with several clients A, B and C
> which are connected to a server S (not a CDO server). The clients A, B
> and C might be ATMs or POS terminals for example. The server S handles
> all kinds of business transactions.
>
> My idea is to think about the communication between the clients and
> the server in terms of a distributed application: Let's assume A and S
> are working on some sort of distributed statemachine (we are getting
> nearer to CDO...) which contains something like Client states and
> Server states: Whenever a client state is reached some logic is
> executed on the client A (for example money is dispensed), whenever a
> server state is reached some logic is executed on the server S (for
> example certain business transactions are authorized). If the
> statemachine is modelled with EMF the handling and notification of
> state changes can be nicely done with the help of CDO.
>
> In the end we would have one statemachine instance for each connection
> from our clients to the server. From the CDO point of view A, B, C as
> well as S would be CDO clients. What I want to avoid now are
> unnecessary notifications: Client B should not get invalidations for
> the statemachine which belongs to Client A. On the other hand S has to
> handle all invalidations which are received from A, B and C. I wonder
> now what's the preferred way to handle this. Should I create one CDO
> repository for each of the clients A, B and C and connect S to all
> these repositories or is there another, maybe better way?
>
> I hope my problem is somewhat clear :-)
>
>
> thanks for your help and best regards,
> David


Previous Topic:Databinding SimpleFeatureMapEntry / EList<String>
Next Topic:Child extenders
Goto Forum:
  


Current Time: Thu Sep 26 03:57:10 GMT 2024

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

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

Back to the top