Re: what if my database is somewhere else?

From: Andrus Adamchik (andru..bjectstyle.org)
Date: Thu Oct 21 2004 - 12:18:42 EDT

  • Next message: Andrus Adamchik: "RE: Help: SQL Server and AUTO_PK_SUPPORT/auto_pk_for_table"

    Hi Pierce,

    > I am about to start a project with MySQL as a back end, and currently
    > plan to have the database local to the client. In fact I might not even
    > have a server, just the app installed on different machines that would
    > be connected to the internet. No other assumptions about the user's
    > environment should be made, except that it would be a windows
    > environment.

    So if I understand you correctly, a local DB running on user machine is an
    option (you don't care about a multiuser DB server that shares the data?).
    If so you can go with one of the Java lightweight databases like HSQLDB.
    You can even embed in your Java GUI app process, so that no separate
    server process is required ... or you can start an HSQL server as a a
    separate process on the client machine whenever your GUI app starts up ...

    BTW, CayenneModeler RC1 embedds HSQL and it works just fine (except for
    the cases when multiple instances of the app need access to the same DB...
    I am still tweaking this piece.

    > I plan on using Eclipse's RCP for the GUI because it's so much richer
    > than anything I could shove in a servlet/jsp anyway.

    Sweet! I am looking into SWT and RCP solutions for my ow needs ... I
    wonder how much overhead RCP adds comapred to just SWT?

    > The database could be running in a simple J2EE
    > app if needed, and that would let me use web services to get to the
    > database. How would that work from a Cayenne point of view? Is there any
    > way to set up a transaction manager that would push the data to
    > insert/update on a SOAP connection or something like that?

    This is planned as the big new feature of the next Cayenne release (1.2).
    Can't tell when this will be released, but we are working on it. Good news
    is that such "distributed" cayenne should be transparent to the app code -
    you'll still use a DataContext for persistence. So you can start with
    local DB, and migrate to "distributed" DataContext once it becmes
    available.

    > Just have a JDBC
    > connection on the web server end and push the data in that way? Would
    > this scale at all, or would I be looking at clustering in the near
    > future?

    Well this indeed migt have the scalability problems... You may want to
    investigate what DB vendors have to offer in this respect. I know Andriy
    (one of our committers) used some Oracle-specific solution for managing
    JDBC connections from a big number of desktop clients... I wonder what
    other DB vendors have to offer? If you find anything interesting about it,
    could ypu lease post to this list.

    Andriy, if you are reading this, could you comment?

    Andrus



    This archive was generated by hypermail 2.0.0 : Thu Oct 21 2004 - 12:18:44 EDT