OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   RE: [xml-dev] A bunch of components, but no mandated organization - reas

[ Lists Home | Date Index | Thread Index ]

Hi Folks,

Many thanks for the outstanding messages!

Yesterday Michael Kay made an insightful observation.  He noted that there
can be an effective exchange of information when there exists a "protocol"
between the exchanging parties: 

> Of course it's possible to set up a system in which anyone who receives a
> customer record is expected to interpret it as meaning "please update the
> information you hold on this customer". Equally, it's possible to set up a
> system in which anyone who receives a customer record is expected to
> interpret it as meaning "please phone this customer and find out what he
> wants". Any bunch of bits you send me is meaningful if we've agreed a
> protocol, and meaningless otherwise.

Thus, if there exists a protocol between us then I can dynamically assemble
a bunch of components and send them to you.  And you will be able to
dynamically understand my assembly!

Let me give some concrete examples.

Example - Trash Collection

Every Wednesday morning I bring all my trash out to the front of my house.
During the day a trash collector comes along and picks up the trash.  When I
return home in the evening the trash is gone.  

Information (trash) was exchanged.  And it occurred without a-priori
knowledge by either party of the specific transaction that would occur.  The
exchange was possible because: 

(1) Each party understood the components (containers of trash), and

(2) There existed a protocol between the sender (me) and the receiver (the
trash collector).  

The protocol employed: "I give, you take".

Example - Browsers

I have created some HTML pages and placed them on my web site.  When your
browser visits my web site it will make effective use of the stuff that I
have put in my HTML pages.  

Again, information was exchanged.  And it without a-priori knowledge by
either party of the specific transaction that would occur.  The exchange was
possible because: 

(1) Each party understood the components (HTML documents), and

(2) There existed a protocol between the sender (my web server) and the
receiver (your browser).  

The protocol employed: "I give, you take".

I suspect that the "I give, you take" protocol is a common, powerful
protocol.  Can you think of other common, powerful protocols?

Summary: Transferring Information using a Shared Grammar versus a Shared
Protocol

Given a bunch of components, how can the information in those components be
effectively transferred between you and I?  We seem to be narrowing in on
two approaches:

1. Shared Grammar: craft an XML Schema that completely lays out the order
and number of occurrences of each component.  That is, completely specify
the grammar for the components.  The grammar (XML Schema) is then the
contract between sender and receiver.

2. Shared Protocol: define an exchange protocol.  The form of the assembly
of components that are sent is unspecified and irrelevant.

[Tangential comment: there is a philosopher, Karl Popper, who wrote
(paraphrasing), "The quickest way to move a science forward is through the
use of provocative conjectures".  In the spirit of Karl Popper I thus make
the following provocative conjecture.] 

Conjecture: Information exchange using shared protocols is a superior
approach to information exchange using shared grammars.  

In other words, when you create an XML Schema simply declare a bunch of
independent components, but don't mandate any particular ordering of them.

[Another tangential comment: Popper says that after making a conjecture it
is important to test the conjecture.  So, let's test the conjecture.]

Test 1: Support for information exchange in a dynamically changing
environment: the Shared Protocol approach is a "loosely coupled" approach.
That is, the nature of the "payload" is irrelevant (I use the term "payload"
here as it just dawned on me that HTTP is a "protocol" and the information
transferred using the HTTP protocol is called a "payload").  

Conversely, the Shared Grammar approach is not well-suited to dynamic
environments.  Witness the great amount of effort and coordination that is
required to alter an XML Schema.

Test 2: ??? (What are some other tests that might be applied to the two
approaches?)

/Roger










 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS