Lists Home |
Date Index |
On 5/4/05, Jonathan Robie <email@example.com> wrote:
> Perhaps I'm reading too much into this, but in Gray's article, the
> vision does not seem to include a middle tier. The database becomes the
> center of the universe, and pretty much everything we associate with the
> middle tier becomes part of the database. The database also takes on
> some of the functionality traditionally associated with an operating system.
> How likely is this? Do users want that level of centralization?
The DB and the middle tier are merging, clearly. The current
situation of having to deeply understand programming objects (top
tier), XML etc. (mid-tier) and SQL (back-end) AND somehow keep track
of which knows the state of what in order to work effectively does not
make people happy.
Does that mean that the middle tier goes away, or that it abstracts
away the DBMS? Will objects be the common abstraction at all 3 levels
(probably not, considering the fate of the OODBMS niche)? Will
XML/XQuery be the common abstraction at all three levels? Depends on
your perspective. Mine is (surprisingly enough, having worked for
DBMS vendors for 6 years now) that the DB moving up rather than the
mid tier moving down, and I'm glad to see Jim Gray evangelize that.
As others noted, however, these ideas have been around for a long
time, e.g. MUMPS was a DB deeply integrated into an OS and programming
language; Likewise, this doesn't imply centralization, just
relatively seamless interoperabiliy behind the scenes. Finally all
sorts of other people say more or less the same thing from their own
perspectives -- "the network is the computer", "the filesystem will
become a DBMS", "use our mid-tier tools that abstract away all that
nasty infrastructure" or whatever.
I'd also say that a lot of the things we discuss here have the flavor
of the DB/storage layer merging into the middle tier. REST is an
obvious example, abstracting away the mechanisms for finding and
managing "resources", but with the implication that there are DBs out
there doing the heavy lifting; the Semantic Web, with nice hierarchies
of semantic metadata keeping the ugly details out of sight of those
who would deal with the abstractions; SOA presents the nice clean
abstraction of a service with a service contract, again hiding all
that mid-tier and back-end messiness. Less popular ideas such as
Tuple Spaces / XML Spaces also hide both the mid tier and DB behind a
"space" abstraction that contains objects or data with which one
So, the current three-tier architecture is untenable in the long run
IMHO. All three will continue to exist as technologies, the question
is which are exposed to the top level and which are abstracted away.
Whether the DB is perceived as displacing the middle tier, or the mid
tier rules and the DB becomes an implementation detail, or both are
subsumed by some new abstraction, is not clear.
Users want it both ways -- the benefits of centralization without the
overhead and vendor lockin :-)