Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
Discussion Groups
Database Servers
DB2InformixIngresMS SQLOraclePervasive.SQLPostgreSQLProgressSybase
Desktop Databases
FileMakerFoxProMS AccessParadox
General
General DB TopicsDatabase Theory
Related Topics
Java Development.NET DevelopmentVB DevelopmentMore Topics ...

Database Forum / General DB Topics / DB Theory / March 2004

Tip: Looking for answers? Try searching our database.

Xquery might have some things right

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Dawn M. Wolthuis - 03 Mar 2004 03:10 GMT
My current interests related to software application development and the
tools employed for such are aimed in two primary directions -- databases and
distributed computing.  XML plays in both of these categories.  In
discussions related to both topics, there is a lot of lashing out against
XML as being a stupid approach to whatever it is it might be approaching.
Marshall answered a recent post by indicating he is not a fan of XML, for
example.  I, too, have been know to state opinions about how it is not
terribly important that persisted objects of any type (thought I'd toss in
some OO terminology just to mess with a few of you) be human-readable in
their persistent state.  I don't have to be able to look directly at a CD
and hear the music either.

BUT, XML does have some things going for it, not the least of which is that
it is our best bet yet for freeing ourselves of SQL -- a language with which
I have a love-hate relationship, but which is ready for retirement, in my
opinion.  XQuery, the emerging standard where Microsoft seems to be putting
their money, is something I have referred to as a "dog-ugly language"
(although many dogs are cute) but it has some significant advances over SQL.
I decided it was time to learn the language a bit more and foudn that it
does employ a 2 valued logic (THANK GOODNESS!) as well as the obviously
superior approach to nested data (multivalues) compared to the RDBMS's I
have seen.

Additionally, along with the data modeling related to a UI, one of the big
areas ripe for database theorists to join web folks is data modeling as it
relates to data searching.  We think of search engines for semi-structured
data (such as text documents on the web), but our applications have often
been so restrictive in making users get their search criteria exactly right
for database searches that we are going to need to adjust to more of a
google approach at some point.  We need to look at how a user will find a
person, for example, when they recall that the word "green" is somewhere in
that person's demographic data (was it their eyes or the street they live on
or city they are from or one of their children or the company for which they
work?)  We tend to force users to know the attribute (at least the type)
they are searching along with any partial or full values for that type.  I
suspect that XML will play a role in the area of database search engines.

And ... XML is NOT based on relational data modeling theories (another thank
goodness from me ;-).

There is one huge deficiency (OK, more than one, but one I'll point out)
with XQuery compared to SQL -- XQuery is a read-only language at this point,
although update standards are being addressed.

So, although XML is seen as an enemy "technology" to some database
specialists and also to some distributed computing specialists, it is
bringing with it some good news.  [and, besides, for data exchange -- the
best use of XML -- it was time to move on from comma-quote files anyway,
right?]

Are there XQuery fans on this list?  --dawn
Christopher Browne - 03 Mar 2004 04:06 GMT
In the last exciting episode, "Dawn M. Wolthuis" <dwolt@tincat-group.com> wrote:
> There is one huge deficiency (OK, more than one, but one I'll point
> out) with XQuery compared to SQL -- XQuery is a read-only language
> at this point, although update standards are being addressed.

The deficiencies surely look like they are more enormous than any
_conceivable_ merits.

- If Microsoft is promoting it that can't conceivably be a good thing.

 That's actually a really useful property; "Microsoft Inside" is a
 terrific warning label.

- It uses XML, the only thing that could have been worse than SGML,
 which was a text parsing system designed by people that didn't want
 to understand the theory of language parsers.

- It depends on "success" in the shifting sands that are the
 foundation for XML "standards."  Just look at the set of "standards"
 being published under the auspices of the W3C.

Looks like a futile boondoggle to me...
Signature

output = ("cbbrowne" "@" "cbbrowne.com")
http://www.ntlug.org/~cbbrowne/linuxdistributions.html
Rules of the Evil Overlord #122.  "The gun turrets on my fortress will
not  rotate enough  so that  they may  direct fire  inward or  at each
other. <http://www.eviloverlord.com/>

Dawn M. Wolthuis - 03 Mar 2004 04:27 GMT
> In the last exciting episode, "Dawn M. Wolthuis" <dwolt@tincat-group.com> wrote:
> > There is one huge deficiency (OK, more than one, but one I'll point
[quoted text clipped - 3 lines]
> The deficiencies surely look like they are more enormous than any
> _conceivable_ merits.

Yes, but it does have to walk before running -- it is an emerging standard
still being brought to life.

> - If Microsoft is promoting it that can't conceivably be a good thing.

You would normally see me nodding in agreement, however, replacing ODBC
(JDBC, OLE/DB) with a standard means of querying data that doesn't require
SQL in the mix will require Microsoft's backing (money talks and all).

>   That's actually a really useful property; "Microsoft Inside" is a
>   terrific warning label.

Major agreement from me.

> - It uses XML, the only thing that could have been worse than SGML,
>   which was a text parsing system designed by people that didn't want
>   to understand the theory of language parsers.

Again, complete agreement.

> - It depends on "success" in the shifting sands that are the
>   foundation for XML "standards."  Just look at the set of "standards"
>   being published under the auspices of the W3C.

Definitely.  And it was the foolish man who built his house upon the sand.
I think the rule of thumb with software development tools & standards is to
use something old, something new, something borrowed and something blue.  My
current choices in these categories are PICK, Jini, the JVM (borrowed-ish
from Wirth's p-machine)  and BlueJ (editor for writing Java code).

> Looks like a futile boondoggle to me...

You don't see a reasonable, though unbearably slow, progression from data
exchange:
1.  by putting data in "card columns" then virtual card columns distributed
on mag tape
2.  then ftp'ing or e-mailing comma-quote files
3.  to now including the metadata for the data within the document itself

It is a small step, but one that will make a significant contribution to
software application integration, methinks.
Cheers!  --dawn
Christopher Browne - 03 Mar 2004 05:05 GMT
Oops! "Dawn M. Wolthuis" <dwolt@tincat-group.com> was seen spray-painting on a wall:
>> In the last exciting episode, "Dawn M. Wolthuis" <dwolt@tincat-group.com>
> wrote:
[quoted text clipped - 7 lines]
> Yes, but it does have to walk before running -- it is an emerging
> standard still being brought to life.

It is clearly going in the wrong direction; you must start with a
jewel of a good idea in order to have any hope that a standard will be
as good as a "ball of mud."

If you start with something less good than a jewel, then the result
will be a "ball of something else."

Standards processes represent a system of compromises that alway
compromise, to some degree, the merits of what you started with.

If you _start_ with something that is crud, then there is no way to go
but even further down.

>> - If Microsoft is promoting it that can't conceivably be a good thing.
>
> You would normally see me nodding in agreement, however, replacing
> ODBC (JDBC, OLE/DB) with a standard means of querying data that
> doesn't require SQL in the mix will require Microsoft's backing
> (money talks and all).

Hoping for Microsoft's "promotion" to be a good thing in any way,
shape, or form is the wrong place to start.

As with the 'standards process,' if you start with something that is
any less than a shining jewel of clarity and beauty, by the time
Microsoft gets through with it, it can't possibly be even as good as
the SQL that you want to get away from.

>> Looks like a futile boondoggle to me...
>
[quoted text clipped - 7 lines]
> It is a small step, but one that will make a significant contribution to
> software application integration, methinks.

If you start with something that is not as good as SQL, and apply
processes to it that are likely to degrade it, this does not look
likely to provide a "significant contribution."
Signature

If this was helpful, <http://svcs.affero.net/rm.php?r=cbbrowne> rate me
http://cbbrowne.com/info/emacs.html
"I still maintain the point that designing a monolithic kernel in 1991
is  a fundamental error.   Be thankful  you are  not my  student.  You
would not get a high grade  for such a design :-)" -- Andrew Tanenbaum
to Linus Torvalds

Tony - 03 Mar 2004 16:16 GMT
> You don't see a reasonable, though unbearably slow, progression from data
> exchange:
[quoted text clipped - 6 lines]
> software application integration, methinks.
> Cheers!  --dawn

Leaving aside what is really gained by the "self-documentation" (if
the file contains a <FOO> tag, and I don't know what a FOO corresponds
to in my world...), it is a big jump from your step 3 to:

4. call your data exchange documents a DATABASE and use a procedural
row-by-row file reader called XQuery instead of SQL.
Eric Kaun - 04 Mar 2004 20:53 GMT
> > The deficiencies surely look like they are more enormous than any
> > _conceivable_ merits.
>
> Yes, but it does have to walk before running -- it is an emerging standard
> still being brought to life.

Yes, but surely its foundations are either in place or not. It's far beyond
"tweaking."

> You would normally see me nodding in agreement, however, replacing ODBC
> (JDBC, OLE/DB) with a standard means of querying data that doesn't require
> SQL in the mix will require Microsoft's backing (money talks and all).

I thought that's what OLE/DB was? I believe those technologies, and JDBC,
don't require SQL at all - they just require processing to be done on a
query. While JDBC is certainly geared toward SQL, and has SQL-specific
extensions, the usual execute method would work on anything. You just have
to supply the driver.

In any event, XQuery simply pushes a lot more work on developers. Instead of
saying what I want, I have to say how to get it, in gory dog-ugly detail.

> > Looks like a futile boondoggle to me...
>
[quoted text clipped - 4 lines]
> 2.  then ftp'ing or e-mailing comma-quote files
> 3.  to now including the metadata for the data within the document itself

The trouble is, metadata is already available. In JDBC, you can get lots of
gory detail. In relational DBMSs with a standard catalog, much much more
would be available - maybe Dataphor already provides it. But the data in an
XML document is metadata in only a very limited way. It's barely useful for
humans reading a doc, and of minimal value for a program.

> It is a small step, but one that will make a significant contribution to
> software application integration, methinks.
> Cheers!  --dawn

It appears to for a few seconds if you squint, but the reality is that the
Roman alphabet is insufficient to make me learn Romanian.

- erk
Eric Kaun - 04 Mar 2004 20:49 GMT
> - If Microsoft is promoting it that can't conceivably be a good thing.

Except to MS stockholders.

>   That's actually a really useful property; "Microsoft Inside" is a
>   terrific warning label.

Heh.

> - It uses XML, the only thing that could have been worse than SGML,
>   which was a text parsing system designed by people that didn't want
>   to understand the theory of language parsers.

Hey, don't blame them - information technology professionals have
self-lobotomized en masse and followed the "text markup professionals" right
to the gates of hell...

> - It depends on "success" in the shifting sands that are the
>   foundation for XML "standards."  Just look at the set of "standards"
>   being published under the auspices of the W3C.

Well, we'll be able to cope with ever-changing "standards" once the
"semantic web" is fully in place, y'know. :-)

> Looks like a futile boondoggle to me...

To paraphrase Fabian Pascal: this is one of those cases where one does not
know whether to laugh or to cry.

- erk
Leandro Dutra - 24 Mar 2004 13:09 GMT
> SGML,
>   which was a text parsing system designed by people that didn't want
>   to understand the theory of language parsers.

    Any references to this?  Now you got me interested...

Signature

Leandro Guimarães Faria Corcete Dutra
Maringá, PR, BRASIL                 +55 (11) 5685 2219
http://br.geocities.com./lgcdutra/  +55 (44) 3028 7467
Soli Deo Gloria!                    +55 (44) 3028 8335

Christopher Browne - 29 Mar 2004 05:09 GMT
Quoth Leandro Dutra <ldutra@wlt.com.br>:
>> SGML,
>>   which was a text parsing system designed by people that didn't want
>>   to understand the theory of language parsers.
>
>     Any references to this?  Now you got me interested...

Hmmm.  The "best" one I can see is thus...

 <http://naggum.no/erik/sgml/against.html>

The oral history I have heard from various people that have been
watching SGML since its beginnings have indicated this.  

The way they bodged in the notion of "document architectures" was a
good example of the trouble with it.  Actually trying to _use_
architectures for other than trivial things was pretty much beyond
human reason.

The breakage was particularly found when they tried defining "HyTime,"
a model for hypermedia documents that would have to include component
documents.

The problem the designers ran into was that while HyTime had to be an
SGML application, they could not define a DTD for it.

And that's essentially where it all fell down.  They couldn't build
HyTime the way they needed to.  I expect that's what drove Naggum out
of his research work on SGML...
Signature

"cbbrowne","@","cbbrowne.com"
http://www.ntlug.org/~cbbrowne/internet.html
Rules of  the Evil Overlord  #156. "If I  have the hero and  his party
trapped, I will  not wait until my Superweapon  charges to finish them
off if more conventional means are available."
<http://www.eviloverlord.com/>

Anne & Lynn Wheeler - 29 Mar 2004 05:48 GMT
> The oral history I have heard from various people that have been
> watching SGML since its beginnings have indicated this.  

SGML was standardization of GML done at the cambridge science center
circa 1970 by "G", "M", "L" (the choice of generalized markup language
comes from the intials of the three people that work on it). GML
processes added to the existing implementation of the CMS SCRIPT
command (i.e. cambridge monitor system ... also done at the cambridge
science center).

misc. past posts about (s)gml history:
http://www.garlic.com/~lynn/2000e.html#1 What good and old text formatter are there ?
http://www.garlic.com/~lynn/2001i.html#1 History of Microsoft Word (and wordprocessing in general)
http://www.garlic.com/~lynn/2002h.html#17 disk write caching (was: ibm icecube -- return of
http://www.garlic.com/~lynn/2002o.html#4 Mainframe Spreadsheets - 1980's History
http://www.garlic.com/~lynn/2002o.html#54 XML, AI, Cyc, psych, and literature
http://www.garlic.com/~lynn/2002o.html#78 Newsgroup cliques?

At least "L" went on to work on RDBMS BLOBs ... towards the end of the
System/R (possibly transition to R-star?) .. there were half dozen or
so of use that transferred out of cambridge to san jose about the same
time.

some specifics about the gml history
http://www.sgmlsource.com/history/
http://www.sgmlsource.com/history/roots.htm
http://www.sgmlsource.com/history/jasis.htm
http://www.sgmlsource.com/history/G320-2094/G320-2094.htm

other science center postings:
http://www.garlic.com/~lynn/subtopic.html#545tech

Signature

Anne & Lynn Wheeler - http://www.garlic.com/~lynn/

Roy Hann - 03 Mar 2004 09:54 GMT
> My current interests related to software application development and the
> tools employed for such are aimed in two primary directions -- databases and
> distributed computing.

XML handles data?  I suppose someone who can have two "primary" directions
probably wouldn't be too troubled by the difference between data and text.

Roy Hann

PS: Am I the first to point out that there is no 'w' in dolt?
Dawn M. Wolthuis - 03 Mar 2004 15:43 GMT
> > My current interests related to software application development and the
> > tools employed for such are aimed in two primary directions -- databases
[quoted text clipped - 3 lines]
> XML handles data?  I suppose someone who can have two "primary" directions
> probably wouldn't be too troubled by the difference between data and text.

I write some things that I figure will only make me smile, so I'm pleased to
see you picked up on that, Roy.  [My use of the word "primary" for more than
one item stems from primary key discussions]

And by the way, text with associated metadata is a subset of all possible
data by my definitions.  What is it lacking to be considered data in your
definition?

> Roy Hann
>
> PS: Am I the first to point out that there is no 'w' in dolt?

OK, that was clever enough -- just don't make a habit of it.
Marshall Spight - 05 Mar 2004 04:53 GMT
> XML handles data?  I suppose someone who can have two "primary" directions
> probably wouldn't be too troubled by the difference between data and text.
>
> PS: Am I the first to point out that there is no 'w' in dolt?

It should be fairly easy to refute any given XML-based argument
without resorting to name calling.

Marshall
Eric Kaun - 05 Mar 2004 13:33 GMT
> > XML handles data?  I suppose someone who can have two "primary" directions
> > probably wouldn't be too troubled by the difference between data and text.
[quoted text clipped - 3 lines]
> It should be fairly easy to refute any given XML-based argument
> without resorting to name calling.

Couldn't agree more. Apparently I missed the humor in the response, but
didn't miss the rudeness.
Corey Brown - 06 Mar 2004 00:35 GMT
> > "Roy Hann" <rhann@globalnet.co.uk> wrote in message
> news:c249vv$okq$1@sparta.btinternet.com...
[quoted text clipped - 11 lines]
> Couldn't agree more. Apparently I missed the humor in the response, but
> didn't miss the rudeness.

   Me too! What is it about this group that makes people feel the need to smear,
   degrade and belittle anybody and everybody who "dares" to post here?
Tony - 03 Mar 2004 12:02 GMT
> Are there XQuery fans on this list?  --dawn

Not many, but it does not surprise me that you are one of them.  Look:
a procedural way of querying a hierarchic database.  What a great leap
forward!
Dawn M. Wolthuis - 03 Mar 2004 15:57 GMT
> > Are there XQuery fans on this list?  --dawn
>
> Not many, but it does not surprise me that you are one of them.

You didn't read very well.  I have more often critcized XQuery than
applauded it and it is only in the last week that I decided to learn it
better so that any criticisms had more knowledge at the base.  It is then
that I found a few gems and thought I'd pass them along.

> Look:
> a procedural way of querying a hierarchic database.  What a great leap
> forward!

Ah, blinded by glasses you have been wearing for, perhaps, too long?  You
should rather think of it as a means of navigating di-graphs of data.

When both the data model and the data operators are represented as functions
(which, by definition are relations), there are some gains we can make.
Think of all of the work to be done in terms of

function(input)=output

If we represent all input and output as functions (such as
ObjectFunction(referenceID) = objectdata), then there is only one type of
data (for storage purposes, for example) -- FUNCTIONS!  That's it -- you
apply one function to another until you get the function to store or output
in some other way.

smiles.  --dawn
Tony - 03 Mar 2004 21:35 GMT
> > "Dawn M. Wolthuis" <dwolt@tincat-group.com> wrote in message
>  news:<c23ic9$usb$1@news.netins.net>...
[quoted text clipped - 6 lines]
> better so that any criticisms had more knowledge at the base.  It is then
> that I found a few gems and thought I'd pass them along.

You are correct: I have missed the posts where you criticise XQuery,
sorry.

> > Look:
> > a procedural way of querying a hierarchic database.  What a great leap
> > forward!
>
> Ah, blinded by glasses you have been wearing for, perhaps, too long?  You
> should rather think of it as a means of navigating di-graphs of data.

And that would be better because...?  I don't want to "navigate"
through the data, since I know a better way: define the sets of data I
want, and leave the DBMS to "navigate" however it decides is optimal.
Why should *I* have to do all the work?

> When both the data model and the data operators are represented as functions
> (which, by definition are relations), there are some gains we can make.
[quoted text clipped - 7 lines]
> apply one function to another until you get the function to store or output
> in some other way.

Sounds like LISP (which I quite liked in a quirky sort of way at one
time).  However, relational databases only have one type of data too -
relations!
And SQL databases (not really the same thing, as I'm sure you are only
too aware by now) have only tables - if you ignore some of the
egregious OO "extensions".
Eric Kaun - 04 Mar 2004 20:56 GMT
> > Look:
> > a procedural way of querying a hierarchic database.  What a great leap
> > forward!
>
> Ah, blinded by glasses you have been wearing for, perhaps, too long?  You
> should rather think of it as a means of navigating di-graphs of data.

Why navigate? That implies knowing too much about the graph's structure.
Relations are different - you say what you want.

> When both the data model and the data operators are represented as functions
> (which, by definition are relations), there are some gains we can make.
[quoted text clipped - 7 lines]
> apply one function to another until you get the function to store or output
> in some other way.

So why do you program in Java and use XML? Lisp and S-expressions are
sufficient.

- erk
Eric Kaun - 04 Mar 2004 20:40 GMT
> My current interests related to software application development and the
> tools employed for such are aimed in two primary directions -- databases and
> distributed computing.

Remember Fowler's First Law of Distributed Object Design: Don't distribute
your objects! His quote: "Sell your favorite grandma first if you possibly
can." I truly worry that we distribute too much, too soon, when a much
simpler approach would have worked.

> XML plays in both of these categories.

Hmmm. XML plays in many categories, mostly because people keep dragging it
out to play. It's like the rich kid everybody wants to play with because it
has an aura and they have the vague feeling they might get something out of
it.

> In discussions related to both topics, there is a lot of lashing out
against
> XML as being a stupid approach to whatever it is it might be approaching.

Defining that is really the problem. Generally if something approaches
everything, it truly approaches nothing.

> Marshall answered a recent post by indicating he is not a fan of XML, for
> example.  I, too, have been know to state opinions about how it is not
> terribly important that persisted objects of any type (thought I'd toss in
> some OO terminology just to mess with a few of you) be human-readable in
> their persistent state.  I don't have to be able to look directly at a CD
> and hear the music either.

Good analogy for some uses.

> BUT, XML does have some things going for it, not the least of which is that
> it is our best bet yet for freeing ourselves of SQL -- a language with which
> I have a love-hate relationship, but which is ready for retirement, in my
> opinion.

XML is a bet for freeing ourselves of SQL? XML isn't a language, isn't
really declarative (well... never mind), and has little overlap that I can
see. I'd be interested to know what XML does better than SQL, and in what
area.

> XQuery, the emerging standard where Microsoft seems to be putting
> their money, is something I have referred to as a "dog-ugly language"
> (although many dogs are cute) but it has some significant advances over SQL.

Such as?

> I decided it was time to learn the language a bit more and foudn that it
> does employ a 2 valued logic (THANK GOODNESS!)

What do you mean by this? How is XQuery's approach different?

> as well as the obviously
> superior approach to nested data (multivalues) compared to the RDBMS's I
> have seen.

You can do this in SQL too - it's not a good idea, but we've already beaten
that dead straw horse up a tree (to badly combine three metaphors). Again,
how is XQuery better? Every example query I've seen looks like the output of
an horrendous acid trip.

> Additionally, along with the data modeling related to a UI, one of the big
> areas ripe for database theorists to join web folks is data modeling as it
[quoted text clipped - 3 lines]
> for database searches that we are going to need to adjust to more of a
> google approach at some point.

I don't think it's the same thing. Doing a Google search means you don't
know exactly what you're looking for, and typically you're a little flexible
in what you get (e.g. any of a hundred pages might have what you need).
That's a different story than in business data, where presumably the users
are professionals and understand something about what they're doing. If they
don't, that's a different sort of problem.

Not that tools like Lucerne and such aren't useful, but we're not talking
about the Google problem domain in most apps.

> We need to look at how a user will find a
> person, for example, when they recall that the word "green" is somewhere in
> that person's demographic data (was it their eyes or the street they live on
> or city they are from or one of their children or the company for which they
> work?)  We tend to force users to know the attribute (at least the type)
> they are searching along with any partial or full values for that type.

It's not exactly demanding to force the user to know they're searching for
eye color, or street, or whatever... those are domains. Unless you mean "I'm
looking for that green guy - dunno if it was green hair, green eyes, Mr.
Green, or Green Avenue..." I don't think that brand of search is really that
typical in business applications.

>  I suspect that XML will play a role in the area of database search
engines.

XML is a data format. XPath/XQuery expressions might be useful to
interrogate data of an XML type, but beyond that using XML just cripples
your query (reasoning) capabilities.

> And ... XML is NOT based on relational data modeling theories (another thank
> goodness from me ;-).

Why? Just the MV "thang"?

> There is one huge deficiency (OK, more than one, but one I'll point out)
> with XQuery compared to SQL -- XQuery is a read-only language at this point,
> although update standards are being addressed.

I think its biggest problem is the hierarchical, procedural nature of its
queries. Say what you want about SQL, but at least you don't have to tell it
EXACTLY what order you want it to search in! XQuery is a huge burden for
developers, and gives precisely zero room for optimization.

> So, although XML is seen as an enemy "technology" to some database
> specialists and also to some distributed computing specialists, it is
> bringing with it some good news.  [and, besides, for data exchange -- the
> best use of XML -- it was time to move on from comma-quote files anyway,
> right?]

Yes, data exchange is a decent use of XML. Text markup is what it was
invented for, however, and it does that well - but keep in mind that
marked-up text is a type, and that operations over that type (e.g. returning
more marked-up text based on an XPath or XQuery "expression") are a
reasonable use of a type (domain), even in a relational database! It's when
you start envisioning all of  your data as hierarchies that you run into
massive, massive problems which will only compound as they worm their way to
the heart of the enterprise (god help us all).

> Are there XQuery fans on this list?  --dawn

Sorry - you've just referenced the empty set. :-)

- erk
Mikito Harakiri - 04 Mar 2004 21:28 GMT
> Yes, data exchange is a decent use of XML.

I doubt it. You have System A which want to get some information from System
B. How do you do that? Query it (what a surprise). The underlying transport
beneath SQL connection doesn't really matter.
Corey Brown - 05 Mar 2004 13:11 GMT
> > Yes, data exchange is a decent use of XML.
>
> I doubt it. You have System A which want to get some information from System
> B. How do you do that? Query it (what a surprise). The underlying transport
> beneath SQL connection doesn't really matter.

   No, you use simple publish and subscribe mechanisms. In which case exchaning
   data with XML works quite well.

   --Corey
Eric Kaun - 05 Mar 2004 13:36 GMT
> > > Yes, data exchange is a decent use of XML.
> >
> > I doubt it. You have System A which want to get some information from System
> > B. How do you do that? Query it (what a surprise). The underlying transport
> > beneath SQL connection doesn't really matter.

Well, I was trying to be kind. Remember that "decent use of XML" is simply a
comparison to "horrendous uses of XML," and wasn't comparing XML with other
technologies and formats.

>     No, you use simple publish and subscribe mechanisms. In which case exchaning
>     data with XML works quite well.

But it's just a format, whatever mechanism you use to exchange it. Publish
and subscribe can be useful, but WHAT is published can be anything. XML is a
wordy format, and doesn't get the parties involved out of the business of
having to know the semantics of the data elements.
Corey Brown - 05 Mar 2004 14:37 GMT
> > "Mikito Harakiri" <mikharakiri@iahu.com> wrote in message
> news:KkN1c.43$ia.170@news.oracle.com...
[quoted text clipped - 18 lines]
> wordy format, and doesn't get the parties involved out of the business of
> having to know the semantics of the data elements.

   Sure, that's why you need an AAIS (application to application interface specification),
   otherwise how will you define the contract between one system and the other?

   XML does have "some" advantanges. Here's a short list:

   - It's human readable. Developers can visually check on communications between systems
      simply by taping into the communications channel. Great for debugging too.

   - Senders and receivers don't have to be in perfect sync. That is, information can be added
      at the transmitter that the receiver can simply ignore. This works especially well in a publish
      subscribe scenario where the subscribers use the published output in different ways.

   Sure it's wordy and shouldn't over extended to do things that it was never intended to do.
   But that doesn't mean that it's not useful for certain classes of computing problems.

   Regards
   --Corey
Eric Kaun - 05 Mar 2004 14:49 GMT
>     Sure, that's why you need an AAIS (application to application interface specification),
>     otherwise how will you define the contract between one system and the other?

Definitely - my point was that XML doesn't absolve you of that
responsibility.

>     XML does have "some" advantanges. Here's a short list:
>
>     - It's human readable. Developers can visually check on communications between systems
>        simply by taping into the communications channel. Great for debugging too.

Recently I've been dealing with comma-delimited data being sent from one
system to another. I find it no less readable than some of the XML docs I
cope with at work. In some simple, short cases, you might be right, but for
a system of any sophistication, I find the format tedious. I still need a
tool (like XMLSpy) to cope with the inevitable removal of line breaks from
XML streams - I can't read those things in one big block. And if I have to
open a tool, well, many tools will work. XML is fine for writing short docs
in a text editor - after that, things get hairy.

>     - Senders and receivers don't have to be in perfect sync. That is, information can be added
>        at the transmitter that the receiver can simply ignore. This works especially well in a publish
>        subscribe scenario where the subscribers use the published output in different ways.

That's true of my comma-delimited data too. I have a line with field names.
It's trivial to suck the data and field names into Perl and get a nice hash
of field to value, and trivial to only grab the ones you care about. All
with less code than typical XML-related code (even with a parser!).

I'm not advocating comma-delimited, by the way - just mentioning that I've
yet to see many of the stated benefits of XML materialize for me.

- erk
Corey Brown - 05 Mar 2004 15:41 GMT
> > "Eric Kaun" <ekaun@yahoo.com> wrote in message
> news:dn%1c.55833$1O4.38437@newssvr33.news.prodigy.com...
[quoted text clipped - 21 lines]
> open a tool, well, many tools will work. XML is fine for writing short docs
> in a text editor - after that, things get hairy.

   Ok, but there's no reason why the "XML" has to be hairy. comma-delimited
   data has it's advantages and disadvantages too. Inparticular, how do you
   send a variable length list of data for any particular variable in a CSV document?
   There are advantages and disadvantages to both approaches. :-) I just find
   XML to be rather convenient sometimes.

> >     - Senders and receivers don't have to be in perfect sync. That is,
> information can be added
[quoted text clipped - 7 lines]
> of field to value, and trivial to only grab the ones you care about. All
> with less code than typical XML-related code (even with a parser!).

   Ah, but you've kinda stretched the meaning of CSV in that you have
   included both a name AND a value pair separated by comma delimiters.
   You also still have the same problem as mentioned above. You can't define
   variable length lists of values for any particular name or attribute. When I think
   of CSV, I think of pure values separated by commas. In which case the client
   and server must be in perfect sync.

> I'm not advocating comma-delimited, by the way - just mentioning that I've
> yet to see many of the stated benefits of XML materialize for me.

   I think both have their place in solved certain classes of computing problems.
   It's always good to have more tools in your tool box than not. ;-)

   Regards,
   --Corey

> - erk
Dawn M. Wolthuis - 05 Mar 2004 16:41 GMT
> > "Eric Kaun" <ekaun@yahoo.com> wrote in message
> news:dn%1c.55833$1O4.38437@newssvr33.news.prodigy.com...
<snip>
I'm not advocating comma-delimited, by the way - just mentioning that I've
> yet to see many of the stated benefits of XML materialize for me.

I agree, with the exception of making it easier to move nested data from one
place to another without 1NF-ing if first, XML is just one tiny step up from
comma-quote.  And comma-quote was just one tiny step up from putting data in
various "card columns" (on real or virtual cards).

While there are definitely benefits today for those of us who don't do that
1NF thing ;-) the benefits to those with RDBMS's will not be there until the
XML documents are able to be used as a standard input and output format that
is wrapped in a standard wrapper (e.g. SOAP, somewhat analogous to ODBC) for
communication between a client and a service. The standard could have been
based on comma-quote or even card columns for that matter (although there is
no metadata with those), but it wasn't.

I'll agree that XML is a teeny-tiny step for data exchange purposes, but the
services design pattern that just might emerge as a standard along with XML
documents does hold some promise, I think.  Cheers!  --dawn
Eric Kaun - 05 Mar 2004 16:55 GMT
> I'll agree that XML is a teeny-tiny step for data exchange purposes, but the
> services design pattern that just might emerge as a standard along with XML
> documents does hold some promise, I think.  Cheers!  --dawn

I'd still like to hear a good definition for "services design pattern". I'm
not being facetious... I'd just like to be clear on what differentiates
services from other forms of remote call we've had in the past.
Dawn M. Wolthuis - 05 Mar 2004 17:47 GMT
> > I'll agree that XML is a teeny-tiny step for data exchange purposes, but
> the
[quoted text clipped - 5 lines]
> not being facetious... I'd just like to be clear on what differentiates
> services from other forms of remote call we've had in the past.

Yes, yes -- I put one in another thread -- I couldn't put my finger on where
that question was.

Here are definitions that R. Dale Asberry sent from the jini-users list.

"A service is a function that is well-defined, self-contained, and does not
depend on the context or state of other services."
and according to the W3C:

"a service is a software agent that performs some well-defined operation
(i.e., "provides a service") and can be invoked outside of the context of a
larger application."

I have a few I penned as well, but I especially liked being clear that
(from a mathematical perspective) it is a function.  --dawn
Marshall Spight - 12 Mar 2004 16:49 GMT
> I'd still like to hear a good definition for "services design pattern". I'm
> not being facetious... I'd just like to be clear on what differentiates
> services from other forms of remote call we've had in the past.

I don't see any reason to think it's anything other than client-server
computing under a new name. You get RPC but with XML as
the transport.

That's one beef I have with XML and its ilk; they like to come up
with new names for old things and act as if they've invented something
miraculous.

Marshall
Eric Kaun - 12 Mar 2004 19:01 GMT
> > I'd still like to hear a good definition for "services design pattern". I'm
> > not being facetious... I'd just like to be clear on what differentiates
[quoted text clipped - 7 lines]
> with new names for old things and act as if they've invented something
> miraculous.

Exactly right. I used to think Fabian Pascal was a curmudgeon, correct but a
little too Chicken Little. After reading the trade rags and W3C specs with a
slightly more intellectually critical eye, however, one quickly sees the
regurgitative process at work. And regurgitating mostly garbage too!

- Eric "Call me Curmudgeon" Kaun
Hiran Chaudhuri - 15 Mar 2004 22:49 GMT
> > I'd still like to hear a good definition for "services design pattern". I'm
> > not being facetious... I'd just like to be clear on what differentiates
[quoted text clipped - 7 lines]
> with new names for old things and act as if they've invented something
> miraculous.

It's not that bad. Of course you are right. A webservice is just RPC with
underlying XML communication. But then this allows breaking platform
barriers. Or how do you implement RPC between a Java program and Cobol on
mainframes on the other side? Either you use a middleware product, or you
use XML. And guess what: Today middleware also supports XML communication.

Hiran
Mikito Harakiri - 15 Mar 2004 23:07 GMT
> Or how do you implement RPC between a Java program and Cobol on
> mainframes on the other side? Either you use a middleware product, or you
> use XML. And guess what: Today middleware also supports XML communication.

Wonderful definition. XML is a buzzware that allows to connect to legacy
COBOL systems.
Hiran Chaudhuri - 16 Mar 2004 20:43 GMT
> > Or how do you implement RPC between a Java program and Cobol on
> > mainframes on the other side? Either you use a middleware product, or you
> > use XML. And guess what: Today middleware also supports XML communication.
>
> Wonderful definition. XML is a buzzware that allows to connect to legacy
> COBOL systems.

You misinterprete my expression. I said it can be used for that, so it was
an example - not a definition.
What's going on here?

Hiran
Mikito Harakiri - 16 Mar 2004 20:53 GMT
> > > Or how do you implement RPC between a Java program and Cobol on
> > > mainframes on the other side? Either you use a middleware product, or
[quoted text clipped - 8 lines]
> an example - not a definition.
> What's going on here?

How can it be used? Legacy COBOL systems have no idea about RPC, Java RMI,
or SOAP. You have to write adapter on the COBOL communication side anyway.
And Protocol can be anything.
Hiran Chaudhuri - 16 Mar 2004 21:03 GMT
> > You misinterprete my expression. I said it can be used for that, so it was
> > an example - not a definition.
[quoted text clipped - 3 lines]
> or SOAP. You have to write adapter on the COBOL communication side anyway.
> And Protocol can be anything.

Replace the word Cobol with Natural, and the XML interface is real now. So
what keeps you from believing that this is a possible way to go? The perhaps
missing implementation? If you need it, I can build one.

Hiran
mountain man - 16 Mar 2004 00:42 GMT
in message news:c358aa$4n0$1@wsc10.lrz-muenchen.de...
> > "Eric Kaun" <ekaun@yahoo.com> wrote in message
> news:bi22c.55867$%b5.36952@newssvr33.news.prodigy.com...
[quoted text clipped - 3 lines]
> > > not being facetious... I'd just like to be clear on what differentiates
> > > services from other forms of remote call we've had in the past.

The differentiation will be in *what* is fetched.

> > I don't see any reason to think it's anything other than client-server
> > computing under a new name. You get RPC but with XML as
[quoted text clipped - 9 lines]
> mainframes on the other side? Either you use a middleware product, or you
> use XML. And guess what: Today middleware also supports XML communication.

There is another option ...

I have called it RDBMS portal software as its whole function is simply
to send RPC calls to the RDBMS and to (generically) handle the output
data sets returned from the RDBMS executing such calls.

You then write all application level code in the form of (R)DBMS stored
procedures and allow the portal software to be the user interface.

The end result is ....

* no client application environment (except the portal software)
* no application development environment external to the database
* the leanest and meanest performance benchmarks possible
* simplicity - for we are dealing only with the RDBMS technology.

Middleware is a bridge between an (often existent) application and an
(R)DBMS.
The contruction costs of (getting and using) middleware are often far less
than rebuilding  the application correctly from the ground up.

Signature

Pete Brown
Winluck P/L
IT Managers & Engineers
Falls Creek
Australia
www.mountainman.com.au/software

Hiran Chaudhuri - 16 Mar 2004 20:49 GMT
> I have called it RDBMS portal software as its whole function is simply
> to send RPC calls to the RDBMS and to (generically) handle the output
> data sets returned from the RDBMS executing such calls.

This is an excellent idea. And I have seen middleware that uses 'persistent
message queues' that exactly store the messsages in a database.

But back to the thread: I belive XML does not just present new solutions to
old ideas. It solves some problems, which we would have to deal with
otherwise. I do not claim that they are not solveable - if they were, XML
also could not do the trick. But as it does, we can focus our thoughts to
higher levels of abstraction, and wide-spread interoperability comes into
reach.

It's a bit like the first graphical user interfaces. In the beginning noone
really needed them, today there are user interfaces noone would ever dream
of using on a TTY....

Hiran
Mikito Harakiri - 16 Mar 2004 20:58 GMT
> But as it does, we can focus our thoughts to
> higher levels of abstraction, and wide-spread interoperability comes into
> reach.

CORBA deja vu?
Hiran Chaudhuri - 16 Mar 2004 21:07 GMT
> > But as it does, we can focus our thoughts to
> > higher levels of abstraction, and wide-spread interoperability comes into
> > reach.
>
> CORBA deja vu?

Is CORBA that flexible? How come it is not that widely used then? How come
there are so many of such systems?
And still, it is not the only use for XML.

Hiran
Mikito Harakiri - 16 Mar 2004 21:19 GMT
> > > But as it does, we can focus our thoughts to
> > > higher levels of abstraction, and wide-spread interoperability comes
[quoted text clipped - 4 lines]
>
> Is CORBA that flexible? How come it is not that widely used then?

No, XML is doomed to repeat CORBA failure.

> And still, it is not the only use for XML.

I don't see any utility for XML beyond cutting and pasting quotes into
usenet messages like this:
<quote>
...
</quote>
Christopher Browne - 17 Mar 2004 04:40 GMT
Quoth "Mikito Harakiri" <mikharakiri@iahu.com>:

>> > > But as it does, we can focus our thoughts to
>> > > higher levels of abstraction, and wide-spread interoperability comes
[quoted text clipped - 14 lines]
> ...
> </quote>

Since there is:
a) No RFC for that, and

b) No clients that support that, and

c) Great trouble in making up a suitable user interface to manage
   quoting properly anyways,

it's no good anyways.
Signature

(reverse (concatenate 'string "gro.gultn" "@" "enworbbc"))
http://cbbrowne.com/info/lisp.html
Nobody can fix the economy.  Nobody can be trusted with their finger
on the button.  Nobody's perfect.  VOTE FOR NOBODY.

Bob Badour - 19 Mar 2004 02:08 GMT
> > > > But as it does, we can focus our thoughts to
> > > > higher levels of abstraction, and wide-spread interoperability comes
[quoted text clipped - 14 lines]
> ...
> </quote>

Technically speaking, isn't the above only sgml and not necessarily xml per
se?
Alfredo Novoa - 19 Mar 2004 19:21 GMT
> > I don't see any utility for XML beyond cutting and pasting quotes into
> > usenet messages like this:
[quoted text clipped - 4 lines]
> Technically speaking, isn't the above only sgml and not necessarily xml per
> se?

I always heared that XML is a subset of SGML.

Regards
 Alfredo
Tom Hester - 19 Mar 2004 20:08 GMT
XML has two parents: SGML and the standard modeling language X.

> > > I don't see any utility for XML beyond cutting and pasting quotes into
> > > usenet messages like this:
[quoted text clipped - 9 lines]
> Regards
>   Alfredo
Mikito Harakiri - 19 Mar 2004 20:16 GMT
> XML

eXclusively Made for Laymen
Eric Kaun - 19 Mar 2004 21:05 GMT
> > XML
>
> eXclusively Made for Laymen

Unfortunately, I think it's "eXclusively Made >by< Laymen". Too bad
information "professionals" have paraded along behind like rats following
the Pied Piper of Hamelin...
Bob Badour - 19 Mar 2004 02:06 GMT
> > I have called it RDBMS portal software as its whole function is simply
> > to send RPC calls to the RDBMS and to (generically) handle the output
[quoted text clipped - 13 lines]
> really needed them, today there are user interfaces noone would ever dream
> of using on a TTY....

I see no solution to anything in XML that was not already solved years ago.
Mikito Harakiri - 05 Mar 2004 18:12 GMT
> I agree, with the exception of making it easier to move nested data from one
> place to another without 1NF-ing if first, XML is just one tiny step up from
> comma-quote.  And comma-quote was just one tiny step up from putting data in
> various "card columns" (on real or virtual cards).

What is the big deal about moving data from one place to another?

create dblink to RemoteSystemA

insert into LocalTableA
select * from A@RemoteSystemA

Unlike my simplistic example, in the real world you have all the power of
Relational Algebra & Calculus mix in SQL in order to make required interim
data transformations. (Yes, data transformations are relational views, not
some goofy stylesheets).

Imagine RemoteSystemA owner provided you with EDI, XML or others ShmackML
instead of remote database connection. Suppose all you need to know is how
many purchase orders did the system processed last month. Does it mean you
have to import *all* the orders to your system first?
Joe \ - 22 Mar 2004 03:02 GMT
> Imagine RemoteSystemA owner provided you with EDI, XML or others ShmackML
> instead of remote database connection. Suppose all you need to know is how
> many purchase orders did the system processed last month. Does it mean you
> have to import *all* the orders to your system first?

Of course not.  The remote system is most likely Object-Oriented, so
you merely navigate, a/k/a chase pointers, to the orders collections,
iterate through each and every order, and maintain a counter.  That's
N+K network round trips for N orders, where K is finite but unbounded.

--
Joe Foster <mailto:jlfoster%40znet.com>  Wanna buy a Bridge? <http://xenu.net/>
WARNING: I cannot be held responsible for the above        They're   coming  to
because  my cats have  apparently  learned to type.        take me away, ha ha!
Eric Kaun - 22 Mar 2004 15:27 GMT
> > Imagine RemoteSystemA owner provided you with EDI, XML or others ShmackML
> > instead of remote database connection. Suppose all you need to know is how
[quoted text clipped - 5 lines]
> iterate through each and every order, and maintain a counter.  That's
> N+K network round trips for N orders, where K is finite but unbounded.

How convenient. :-\
Dawn M. Wolthuis - 23 Mar 2004 01:45 GMT
> > "Mikito Harakiri" <mikharakiri@iahu.com> wrote in message
>  <news:3z32c.18$zW4.150@news.oracle.com>...
[quoted text clipped - 13 lines]
>
> How convenient. :-\

What is the theory on which we base "our" disdain for navigation?  Is
the only rationale performance?  In other words, if there were a data
model where the implementation was zippy quick and navigation was a
strategy for getting there, then is there something else upsetting
about the navigation approach?

Thanks.  --dawn
Tony - 23 Mar 2004 11:01 GMT
> > > "Mikito Harakiri" <mikharakiri@iahu.com> wrote in message
>  <news:3z32c.18$zW4.150@news.oracle.com>...
[quoted text clipped - 19 lines]
> strategy for getting there, then is there something else upsetting
> about the navigation approach?

It isn't a theoretical disdain.  It is based on the fact that with
navigation you have to specify how to get the result, not just what
result you want.  One of the strange things about many programmers is
that they don't trust computers, and always prefer to do all the work
themselves.
Eric Kaun - 23 Mar 2004 15:20 GMT
> > > > "Mikito Harakiri" <mikharakiri@iahu.com> wrote in message
> >  <news:3z32c.18$zW4.150@news.oracle.com>...
[quoted text clipped - 16 lines]
> > What is the theory on which we base "our" disdain for navigation?  Is
> > the only rationale performance?

No, it's just another manifestation of the (admittedly vague) what/how
distinction. We should, at this point in the history of computing, be
specifying WHAT we want, not how to get it. It's as if the (necessary)
operational thinking that dominated the design of processors now dominates
everything we do, rather than allowing us to return to "pure" logic, where
we can actually achieve conceptual traction.

> > In other words, if there were a data
> > model where the implementation was zippy quick and navigation was a
[quoted text clipped - 6 lines]
> that they don't trust computers, and always prefer to do all the work
> themselves.

A huge problem. I'm less and less in favor of "flexibility" in language
design for commercial / industrial systems, since this is so often abused to
no one's benefit. Specifying an access path, as opposed to simple criteria
for selection, makes a world of difference.

- Eric
Dawn M. Wolthuis - 24 Mar 2004 05:15 GMT
> > dwolt@iserv.net (Dawn M. Wolthuis) wrote in message
>  news:<6db906b2.0403221645.1141ecf6@posting.google.com>...
> > > "Eric Kaun" <ekaun@yahoo.com> wrote in message
>  news:<9JC7c.62219$lV6.25494@newssvr33.news.prodigy.com>...
> > > > > "Mikito Harakiri" <mikharakiri@iahu.com> wrote in message
>  <news:3z32c.18$zW4.150@news.oracle.com>...

<snip> > >
> > > What is the theory on which we base "our" disdain for navigation?  Is
> > > the only rationale performance?
[quoted text clipped - 5 lines]
> everything we do, rather than allowing us to return to "pure" logic, where
> we can actually achieve conceptual traction.

What we do might be described, in theory, not as a "how to" as a
graph-theory navigation of a di-graph, just as it might be described
as a set-theory operation, right?  Either way, it is the application
of a function/operation.  Neither the end-user nor the programmer
needs to do this navigation -- the vocabularly made visible in the
metadata could include virtual "fields" that are derived via
navigation -- but only the specification/definiton of that vocabularly
needs to have the "how" spec.

Do you agree there is nothing purer or truer about a set-theorectical
operation than a graph-theory navigation?  thanks.  --dawn

> > > In other words, if there were a data
> > > model where the implementation was zippy quick and navigation was a
[quoted text clipped - 13 lines]
>
> - Eric
Eric Kaun - 24 Mar 2004 16:14 GMT
> > > dwolt@iserv.net (Dawn M. Wolthuis) wrote in message
> >  news:<6db906b2.0403221645.1141ecf6@posting.google.com>...
[quoted text clipped - 18 lines]
> as a set-theory operation, right?  Either way, it is the application
> of a function/operation.

It could be, but you can also fall back to the Turing Machine argument and
the fact that it's all just bits anyway, so why not use them directly? Graph
theory is very complicated, and while it's certainly no more or less
"correct" than set theory, I'd wager that the latter is more useful:
tractable, automatable, and amenable to reason.

Besides that, set theory (and relations specifically) allow better
abstraction for data - specifically, the node structure no longer has an
effect on "finding" something, and the "nodes" can be associated closely
with predicates in the problem domain.

I think there are probably many more, but that's a start...

> Neither the end-user nor the programmer
> needs to do this navigation -- the vocabularly made visible in the
> metadata could include virtual "fields" that are derived via
> navigation -- but only the specification/definiton of that vocabularly
> needs to have the "how" spec.

So with these virtual fields, you have to define not only the graph
structures, but also the "meaningful" superimposition of a vocabulary on top
of the graph structure, then finally the application logic on top of that
vocabulary. Then you have to change the implementation of the vocabulary
whenever the graph structure changes.

An RDBMS, in effect, uses whatever graphs or other data structures it wants
(see Transrelational, for example), raising the level of abstraction for
developers in a way that doesn't lose anything.

> Do you agree there is nothing purer or truer about a set-theorectical
> operation than a graph-theory navigation?  thanks.  --dawn

I agree. It's just more complex and fragile, and less useful.

- erk
Mikito Harakiri - 24 Mar 2004 19:17 GMT
"Eric Kaun" <ekaun@yahoo.com> wrote in message news:3Bh8c.28405> Graph
> theory is very complicated, and while it's certainly no more or less
> "correct" than set theory, I'd wager that the latter is more useful:
> tractable, automatable, and amenable to reason.

This reference to graph theory by people who don't understand any theory is
a bluff. They what to substantiate their primitive pointer chasing method,
and naively think that just throwing "graph theory" to the opponent face is
strong enough argument.
Eric Kaun - 24 Mar 2004 21:31 GMT
> "Eric Kaun" <ekaun@yahoo.com> wrote in message news:3Bh8c.28405> Graph
> > theory is very complicated, and while it's certainly no more or less
[quoted text clipped - 5 lines]
> and naively think that just throwing "graph theory" to the opponent face is
> strong enough argument.

Could be, I don't know. What I do know is that my friends with stronger
mathematical knowledge than me all cringe at generalized graph theory, while
sets, relations, even rings and other topological concepts don't give them
the same heebie-jeebies (that's a technical term, you know). Less dancing
around NP-completeness and such...
Mikito Harakiri - 24 Mar 2004 22:26 GMT
> Could be, I don't know. What I do know is that my friends with stronger
> mathematical knowledge than me all cringe at generalized graph theory, while
> sets, relations, even rings and other topological concepts don't give them
> the same heebie-jeebies (that's a technical term, you know). Less dancing
> around NP-completeness and such...

I was referring to those "practitioners" like Dawn, who could hardly explain
what graph theory is in the first place. As if their goofy usage of field
dilimiters (or "modern" XML tags) somehow qualifies them as Graph Theory
experts.
Mikito Harakiri - 05 Mar 2004 17:52 GMT
>     Sure, that's why you need an AAIS (application to application interface specification),
>     otherwise how will you define the contract between one system and the other?
[quoted text clipped - 10 lines]
>     Sure it's wordy and shouldn't over extended to do things that it was never intended to do.
>     But that doesn't mean that it's not useful for certain classes of computing problems.

Corey, may I ask you if you ever write a query in SQL?
Corey Brown - 05 Mar 2004 18:58 GMT
> >     Sure, that's why you need an AAIS (application to application
> interface specification),
[quoted text clipped - 21 lines]
>
> Corey, may I ask you if you ever write a query in SQL?

   Yes, of course, but what does that have to do with using XML as a message
   protocol for publish and subscribe systems?
Mikito Harakiri - 05 Mar 2004 19:45 GMT
>     Yes, of course, but what does that have to do with using XML as a message
>     protocol for publish and subscribe systems?

I don't see any XML relevance in the context of publish and subscribe
systems.

A client registers its interest in a certain event that may happen on a
server. That is formally a rule: if a certain predicate becomes valid, then
sever have to do some action (e.g. notify a client). That is the area of
active database systems. Note that client notification is one of the
possible actions (e.g. I want to sell the stock right away, I don't want to
be merely notified that the stock price became attractive). There are
multiple ways to implement notification too, for example, client can
register remote callback, etc. Anyay, no matter what notification
implementation is, the content of the message is too small to warrant making
it XML. Once again, if the client needs more info, it can always query the
server and this is far superior to any other alternative you may suggest.
Vadim Tropashko - 05 Mar 2004 19:57 GMT
> implementation is, the content of the message is too small to warrant making
> it XML. Once again, if the client needs more info, it can always query the
> server and this is far superior to any other alternative you may suggest.

The assumption that it's advantageous to keep notification small clearly
doesn't apply to spam industry.
Corey Brown - 06 Mar 2004 00:31 GMT
> >     Yes, of course, but what does that have to do with using XML as a
> message
[quoted text clipped - 14 lines]
> it XML. Once again, if the client needs more info, it can always query the
> server and this is far superior to any other alternative you may suggest.

   I can tell you haven't done this type of thing very often. What if we're talking
   about an entire network of "clients" that need to be notified. Would you send
   them some sort of notification and then allow every one of them to then perform
   a remote query on your servers local database? Doesn't sound like a very scalable
   solution to me? I think the slight amount of overhead introduced by using a wordy
   protocol like XML, when combined with a UDP broadcast, is far superior to
   the "pull" type system that you are suggesting.

   Regards,
   --Corey
Mikito Harakiri - 06 Mar 2004 01:15 GMT
>     I can tell you haven't done this type of thing very often.

I haven't. It seems like everybody else is busy solving business integration
problem, and they think they know better than Relational camp. How naive!
Corey Brown - 06 Mar 2004 15:37 GMT
> >     I can tell you haven't done this type of thing very often.
>
> I haven't. It seems like everybody else is busy solving business integration
> problem, and they think they know better than Relational camp. How naive!

   It also appears that the relational camp seems to think that they know more
   about systems integration then the people that have been doing it for years.
   How arrogant!
Mikito Harakiri - 06 Mar 2004 01:34 GMT
>     What if we're talking
>     about an entire network of "clients" that need to be notified. Would you send
[quoted text clipped - 3 lines]
>     protocol like XML, when combined with a UDP broadcast, is far superior to
>     the "pull" type system that you are suggesting.

Sorry, but no, there is no logical redundancy in my approach. Every client
queries only the info they want to know. It is extremely rare when client
wants the whole database. Usually, client query filters most of the data out
according to some criteria. The other common case is aggregated report,
where the output is small as well. In both cases extra information is
quickly discarded on server and would never cross the network boundary.
Whereas in your broadcasting proposal you flood the network with spam that
clients rarely care about.
Corey Brown - 06 Mar 2004 15:32 GMT
> >     What if we're talking
> >     about an entire network of "clients" that need to be notified. Would
[quoted text clipped - 17 lines]
> Whereas in your broadcasting proposal you flood the network with spam that
> clients rarely care about.

   Sorry, you're wrong again. I described a publish and subscribe mechanism
   that broadcasts information only to those clients that have "subscribed" to
   that particular publication. In your solution, every client interested in a particular
   piece of information would have to query the server, essentially at the same
   time, to retrieve it. Unless you can think of some way of throttling your clients,
   I don't see how your solution would ever scale.

   Allowing clients to directly query the server via SQL makes your design
   too fragile for real world application. Server side schema or application
   changes will immediately break every client in your system. Your solution
   requires that clients have intimate knowledge of the servers table structures
   in order to properly formulate a "query" that would allow the client to pull
   the information that they're interested in.

   Interfaces between systems must form an abstraction layer between the
   server and the client in order to insulate one from the other and to allow
   for application flexibility. Not to mention, I don't know of too many application
   owners that are going to allow untrusted clients to have direct database access
   to their systems. Even if the access is in a read-only mode, there may be information
   stored on the server that is considered sensitive and cannot be shared with other systems.
   For instance let's say your bank account numbers or social security number was stored along
   with your stock information. Would you want external clients to be able to randomly
   query for such information?

   An AAIS is the only real world solution, and the AAIS has to be agreed upon
   by both parties. The message protocol used between the server and client needs
   to be robust enough to allow the server to be able to service multiple clients with
   the same message protocol. This means that the messaging layer needs to be wordy
   enough for the clients to be able to distinguish between the the parts of  the message
   that is meant for them specifically and what is part of the message is really only meant
   for another client. XML fits that need fairly well.

   Long before XML became an industry buzz word, we used an XML like language
   called G2 to solve intersystem communcation problems between large disparate systems
   at a really big phone company. Some of the systems that we needed to connect together
   were built before 1969. Some were based on Unix solutions, others later on were based
   on Windows solutions. They all had to talk together, which meant that we had to have
   a language and machine neutral message protocol. G2 fit that bill. Now XML can fill
   that exact same need. It's not perfect, I'm not saying that it is. But what I am saying is
   that it fits a particular class of computing problem very nicely and should not be discredited
   simply because it can't be queried as nicely as a relational model.

   regards
   --Corey
Mikito Harakiri - 06 Mar 2004 20:02 GMT
>     Sorry, you're wrong again. I described a publish and subscribe mechanism
>     that broadcasts information only to those clients that have "subscribed" to
>     that particular publication. In your solution, every client interested in a particular
>     piece of information would have to query the server, essentially at the same
>     time, to retrieve it. Unless you can think of some way of throttling your clients,
>     I don't see how your solution would ever scale.

You didn't prove that in my approach there is greater volume of
information floating across network than in yours. How can you
conclude that my solution won't scale, then?

>     Allowing clients to directly query the server via SQL makes your design
>     too fragile for real world application. Server side schema or application
>     changes will immediately break every client in your system. Your solution
>     requires that clients have intimate knowledge of the servers table structures
>     in order to properly formulate a "query" that would allow the client to pull
>     the information that they're interested in.

No more than changing message format wil break everything in yours.
Next, there  is a concept of view. If you change your schema in
incompatible way (note that it's not quite easy to do that; just
adding the table column wont break anything) then you provide backward
compatible views.

>     Interfaces between systems must form an abstraction layer between the
>     server and the client in order to insulate one from the other and to allow
>     for application flexibility.

Views and query language work perfectly as an interface layer. The
abstraction layer of relational language (unlike many on this group I
include SQL there) is much higher than any alternative that you have
in mind.

> Not to mention, I don't know of too many application
>     owners that are going to allow untrusted clients to have direct database access
[quoted text clipped - 4 lines]
>     with your stock information. Would you want external clients to be able to randomly
>     query for such information?

Excuse me, but what about Database security? Unlike XML world database
security matured for the period of what, 20 years already?  If your
DBA/Database designers aren't able to leverage database security
mechanisms, maybe it's time to employ other ones?
Corey Brown - 06 Mar 2004 23:04 GMT
> >     Sorry, you're wrong again. I described a publish and subscribe mechanism
> >     that broadcasts information only to those clients that have "subscribed" to
[quoted text clipped - 6 lines]
> information floating across network than in yours. How can you
> conclude that my solution won't scale, then?

   I don't have to prove that. I think it's fairly obvious. Discrete messages are
   always going to be smaller than anything that you're proposing here. How
   can you control what you clients will query? What if they issue a select *?

> >     Allowing clients to directly query the server via SQL makes your design
> >     too fragile for real world application. Server side schema or application
[quoted text clipped - 8 lines]
> adding the table column wont break anything) then you provide backward
> compatible views.

   Wrong again. That's the whole point of having an abstraction layer or a
   facade, if you want to talk in terms of patterns. If there's an abstraction layer in
   place, the receiving client never has to worry about what happens under the
   covers. In your solution, the client still has to be intimately familiar with the
   database layout or particular view that they need to query.

> >     Interfaces between systems must form an abstraction layer between the
> >     server and the client in order to insulate one from the other and to allow
[quoted text clipped - 4 lines]
> include SQL there) is much higher than any alternative that you have
> in mind.

   Wrong again. Are you suggesting that the owners of the server should
   cater to every client by providing some sort of backward compatibility view?
   How many versions will they need to support?

> > Not to mention, I don't know of too many application
> >     owners that are going to allow untrusted clients to have direct database access
[quoted text clipped - 9 lines]
> DBA/Database designers aren't able to leverage database security
> mechanisms, maybe it's time to employ other ones?

   Ok, just for grins, why don't you call your bank and ask them if you can
   use your personal computer to query their customer database directly. I'm sure
   they'll be happy to have their database administrator work with you on a security
   solution that will allow you to query just your personal information. Do you
   see where I am going with this? Security should not implemented at the database
   level. It is implemented at the application and network levels. I'm sure some
   amount of security can be leveraged at the database level. But it will never
   be enough to support a real-world interface specification.

   With a publish and subscribe implementation (regardless of whether it's XML or not)
   My security concerns are far fewer than in your solution. All I need to know is that
   a trusted client has subscribed for information that my server is publishing on one or
   more topics. End of story. The client can be validated in any number of different
   ways.

   So, to wrap things up once and for all, let me just ask you if you have ever implemented
   your "you query my db and i'll query yours" solution in a real world application? My guess
   is no, because if you had, all of the real issues that I have posted in these last few
   messages would make sense to you.

   Cheers,
   --Corey
Mikito Harakiri - 07 Mar 2004 08:42 GMT
> > You didn't prove that in my approach there is greater volume of
> > information floating across network than in yours. How can you
[quoted text clipped - 3 lines]
>     always going to be smaller than anything that you're proposing here. How
>     can you control what you clients will query? What if they issue a select *?

FYI "select *" is full projection. If you are afraid of full
selection, that is not the most resource intensive query, either.
Hint: joins.

Now, there is a way to limit resource usage in DBMS per each session.
You can specify that a particular session can't exceed some amount of
CPU resources, or logical reads. Irresponsible client will simply be
kicked off the system.


> > >     Allowing clients to directly query the server via SQL makes your design
> > >     too fragile for real world application. Server side schema or application
[quoted text clipped - 14 lines]
>     covers. In your solution, the client still has to be intimately familiar with the
>     database layout or particular view that they need to query.

No, proceduaral/XML inteface layer is not higher abstraction than
relational one.


> > >     Interfaces between systems must form an abstraction layer between the
> > >     server and the client in order to insulate one from the other and to allow
[quoted text clipped - 8 lines]
>     cater to every client by providing some sort of backward compatibility view?
>     How many versions will they need to support?

No more or less version # than in your approach.

> > > Not to mention, I don't know of