----- Original Message -----
From: "Tore Halset" <halse..vv.ntnu.no>
To: <cayenne-deve..bjectstyle.org>
Sent: Monday, October 20, 2003 10:15 PM
Subject: Re: Cayenne Data View on client?
> On søndag, okt 19, 2003, at 21:15 Europe/Oslo, Andrus Adamchik wrote:
>
> What are the most appropriate uses for this?
>
> Hello.
>
> * Not every property in the model should be accessible from the client.
> * It should be possible to generate serverside and clientside classes
> from the Modeler.
> * We need a separate layer for authentication/authorization and
> session-management. Probably inside a layer that knows about http.
> Perhaps axis?
> * It would be very nice to be able to do a two level commit. One
> commit from the client to the server, and a second commit from the
> server to the database.
>
> I know this will be lot of work and that I am not competent to do it.
>
> - Tore.
And this is exactly what I was talking about yesterday. The interesting
thing is, if thinking in terms of DataObject "snapshots", conceptually the
problem is quite simple. Frameworks like JGL Voyager did similar things even
in nineties.
- The main application deployed on the serverside (not necessarily in a
container, may be a simple socket listener) works with the actual data
objects on behalf of the clients like any Cayenne two-tier app.
- It sends data object snapshots to the clients and receives the updated
data object snapshots to merge them with the serverside originals for the
following commits.
- It commits changes to the database on request from a client.
In the simple case the snapshots will be equal (meaning the type and the
contents) to the original data objects. Every client gets its own
DataContext to work with on the serverside. The data sharing can be
implemented at least for the read-only entities (or objects). While there
spring up many issues EJBs try to deal with the problems resulting from the
naive two-tier approach go away. In the present state of Cayenne it looks
like the only bulky thing needed to solve the problem in this way is
implementation of a tier responsible for the transportation of DataObject
snapshots, Queries, Commit/Rollback commands, etc.
Andriy.
This archive was generated by hypermail 2.0.0 : Mon Oct 20 2003 - 16:12:06 EDT