Re: 3T questions

From: Andrus Adamchik (andru..bjectstyle.org)
Date: Thu Sep 22 2005 - 02:47:47 EDT

  • Next message: jira-norepl..bjectstyle.org: "[OS-JIRA] Created: (CAY-380) localObjects() throws exception on MODIFIED objects"

    Hi Marek,

    On Sep 21, 2005, at 2:24 PM, Marek Wawrzyczny wrote:
    > Hi Andrus,
    >
    > I have been reading the updates you sent to the lists, impressive
    > work. When
    > do you think would the 3T stuff be ready for production?

    Good question. Don't want to make any commitments, but I am using it
    on a project myself, so I have direct interest to finalize it ASAP.
    Just recently I added relationships, prefetches, rollback and
    primitives support. Things are evolving pretty quickly.

    > Is there a document anywhere that lists the proposed vs existing
    > functionality?

    For now there is a Wiki page under 1.2 roadmap:

    http://objectstyle.org/confluence/display/CAY/Multi+Tier

    It is an attempt to build both docs and the roadmap.

    > 1. Encryption of the Cayenne data streams between server and client
    > - is this
    > possible/hard or maybe even already implemented? I went through the
    > docs for
    > the framework you use some time ago, but don't recall seeing
    > anything on
    > encryption.

    I am already using it over HTTPS with basic authentication. Works
    like a charm. You get authentication and encryption for free. Unless
    we have a strong reason to do it differently, I'd love to keep
    encryption outside the framework.

    Since we are talking about security, what concerns me more is access
    controls. As of M5 you could only run a named query mapped on the
    server, so you couldn't do much damage. With latest CVS code you can
    build an arbitrary SQLTemplate or SelectQuery and execute it via
    CayenneConnector, as long as you have a server login. So some kind of
    declarative security becomes essential. And it has to be
    straightforward and simple to setup. That's my next priority.

    > 2. "In-memory" pessimistic locking on server - it would be nice (in my
    > opinion) if we could pessimistically lock the Cayenne objects on
    > server. This
    > would bypass the need to implement a SQL pessimistic locking
    > functionality
    > and our user base could not possibly be able to deal with
    > optimistic locks...

    By this you mean locking an object id across ALL DataContexts? This
    is dangerous. With HessianConnector, client would operate in a
    disconnected mode, opening a new connection for each request (ok,
    this may be suboptimal and other connectors may do it differently,
    but we should assume this is possible in general case). This is much
    like a web application - locks between requests are not realistically
    possible.

    I am not against it in general. We can make it up to the developers
    to choose the right strategy. And if we only want to lock against
    changes by peer clients, implementing such locking can be very non-
    invasive to the rest of Cayenne, done at the ClientMessageHandler level.

    I guess the above will work best once we have a connector that keeps
    an open TCP connection for the duration of a session. I may be
    working on such connector and other synergetic features soon. When a
    client commits data, I need instant notifications to be sent to its
    peers. This would require some data "push" functionality from the
    server... Not your common web service, more like IM :-)

    Andrus



    This archive was generated by hypermail 2.0.0 : Thu Sep 22 2005 - 02:47:48 EDT