Greg, I want you to know that I appreciate your theoretical understanding
of these issues and your willingness to comment on them. I suspect I am not
the only one on the list who finds many of your posts educational.
Jim Gray
----- Original Message -----
From: "Gregory Woodhouse" <[EMAIL PROTECTED]>
To: <hardhats-members@lists.sourceforge.net>
Sent: Friday, March 17, 2006 7:51 PM
Subject: Re: [Hardhats-members] persistence layers for VistA integration
(was Re: [Hardhats-members] Rewriting CPRS in Java)
On Mar 17, 2006, at 6:12 PM, Richard Schilling wrote:
The whole concept of rewriting CPRS in Java gives us the opportunity to
look at the notion of a persistence layer versus a true object store.
It might be a good idea to start out by defining what you mean by a
true object store. I doubt seriously that we're all on the same page
here.
So far what we've seen are various implementations of persistence layers,
such as ESI Objects and Cache. Good persistence layers are obviously key
technologies and provide a migration path toward true object stores.
Any DBMS has a persistence layer. They differ in the technology used,
and they differ in the APIs and and (possibly) language bindings they
offer. They also differ in the logical model exposed to the user/
programmer. In fact, this has been a significant area of ambiguity in
the discussion thus far: when speaking of a "true object store", are
we referring to the logical model, data manipulation language, a
language binding, or some combination of the above.
So, I would like to open up some discussion on the matter and hear
people's thoughts on the various approaches.
Here's a few good papers on persistence layers (as they apply to Java),
which is what the Caché approach and ESI Objects approach has been:
http://www.ambysoft.com/essays/persistenceLayer.html
I looked at this briefly, but have no real familiarity with the
project, so it was a bit hard to put into context. The section on B-
trees was generally quite good so far as the user perspective goes.
As a user/programmer you may only care that a B-tree provides a set
of key/value pairs that support efficient access. The twist that
MUMPS adds is that they keys may be sequences of subscripts, thus
providing support for a tree-like logical model. From an
implementation point of view, B-trees just generalize self-balancing
trees like AVL trees or red-black trees (in fact, one type of self-
balancing tree, the 2-3-4 tree actually IS a B-tree!) What's special
about B-trees is that they're "bushy", allowing for many data nodes
at each level in the tree. This is important for databases because
you want to fill out disk blocks and minimize the number of seeks
required for data access. But these are all implementation issues:
From a logical point of view, it's just a persistent data structure
providing a set of key/value pairs.
http://www.jpox.org/index.jsp
It is interesting to note that since Caché provides a JDBC driver for
it's data store, it is possible to use jpox to persist object data as
opposed to Caché Objects.
And here's some links for true object stores:
http://mdr.netbeans.org/architecture.html
(see the section on btrees)
www.csg.is.titech.ac.jp/~chiba/oopsla98/proc/lee.pdf
I found this more interesting. The Java Reflection API allows you to
programmatically retrieve information about a class, so it can
potentially be used to take ordinary Java objects and store their
data elements, potentially creating fresh instances later (so long as
you have an instance of the Class class to work with). So, when you
get right down to it, this is all about allowing Java programmers to
use Java instead of IDL or a specialized DDL. I suppose it strikes me
as being a bit less profound because an external tool could always be
built to generated DDL or IDL from the class definition. There's
really nothing new here beyond a purely syntactic convenience. That's
not a bad thing, of course, but it makes it difficult to see what is
fundamentally new about the concept of an object store or, indeed,
what that concept is.
Thoughts?
Richard Schilling
Cognition Group, Inc.
Seattle, WA
===
Gregory Woodhouse
[EMAIL PROTECTED]
"Nothing is as powerful than an idea
whose time has come."
-- Victor Hugo
-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=k&kid0944&bid$1720&dat1642
_______________________________________________
Hardhats-members mailing list
Hardhats-members@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/hardhats-members
-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
Hardhats-members mailing list
Hardhats-members@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/hardhats-members