Re: Docs and some questions

From: Aristedes Maniatis (ar..sh.com.au)
Date: Sat Nov 11 2006 - 20:25:56 EST

  • Next message: Damir Bijuklic: "Re: Nested data context problems"

    On 12/11/2006, at 1:15 AM, Andreas Hjortsberg wrote:

    > I'm about to start a project where all clients will have a local
    > swing application and database, probably derby or hsqldb.
    > It is very important what then a client change some of his objects
    > it is broad casted over the local subnet and the other clients will
    > be updated and it also notifies a main server.
    >
    > Has anyone used cayenne and jgroups for this? Is it the path to
    > take? I have looked around but have not found any example or
    > comments on this. Or is the existing integration between jgroups
    > and cayenne designed to mainly work between instances on a web
    > application?

    I didn't know about jgroups until just now, but their web site looks
    very interesting and the projects using it are very reputable. http://
    www.jgroups.org

    We were briefly looking at XMPP (which is the protocol behind the
    Jabber chat protocol) to do pretty much what you are looking for, but
    abandoned that approach after finding many of the tools we needed
    were large and GPL (not LGPL).

    In our situation we have a network of clients connected to a single
    server (all Swing) using Cayenne version 3 and ROP. That part works
    well, but we currently have no mechanism to invalidate caches in a
    distributed way. We would also want to use a messaging system to
    perform pessimistic record locking on Cayenne objects.

    Anyhow, although we haven't done this yet, we would be very
    interested in collaborating on any work to tie jgroups into Cayenne.
    Since we use Jetty already, and there is some integration between
    jgroups and Jetty mentioned, perhaps this will be even easier.

    Are there others who would want to participate in this work? What we
    would want is:

    * mechanism in Cayenne ROP for the server to notify clients whenever
    an object was updated or created. I'd guess we'd use the new version
    3 lifecycle callbacks we've been involved in the development of:
    http://cwiki.apache.org/CAYDOC/lifecycle-callbacks.html

    * mechanism for the clients to receive that message and invalidate
    that object in all relevant caches. (Do we need to further mark that
    object in all contexts on the client as HOLLOW?)

    * further hook to allow us to update the GUI should that object
    appear on screen (I guess Cayenne is not involved here).

    * a further step would be to add a piece of metadata to a Cayenne
    persistent object in order to record its current lock state. Changes
    to this state would need to be propagated between all clients in an
    atomic way.

    Any thoughts about whether this would meet your goals?

    Cheers
    Ari Maniatis

    -------------------------->
    ish
    http://www.ish.com.au
    Level 1, 30 Wilson Street Newtown 2042 Australia
    phone +61 2 9550 5001 fax +61 2 9550 4001
    GPG fingerprint CBFB 84B4 738D 4E87 5E5C 5EFA EF6A 7D2E 3E49 102A





    This archive was generated by hypermail 2.0.0 : Sat Nov 11 2006 - 20:26:29 EST