W3C home > Mailing lists > Public > xml-dist-app@w3.org > March 2000

XML distributed architecture

From: Jean-Marc Vanel <jmvanel@free.fr>
Date: Wed, 29 Mar 2000 22:16:52 +0200
Message-ID: <38E264B4.5BB77803@free.fr>
To: xml-dist-app@w3.org, "wwbota@egroups.com" <wwbota@egroups.com>
Hello

For our project of making botanical data available on Internet, I try to
design a distributed knowledge architecture on Internet, in the line of
the famous semantic Web. This is a revised version of a post of last
week in xml-dev. It is mirrored in http://wwbota.free.fr/XMLprotocol.htm



XML All-purpose Protocol

 This could also be called XML distributed architecture. For distributed
computing, I expect HTTP+XML to dominate over Corba and COM in
the long term. But SOAP
(http://search.ietf.org/internet-drafts/draft-box-http-soap-01.txt) and
XML-RPC are not enough. The need for servers
to publish their schemas for queries and responses is fondamental.
Moreover the publication of the schemas, and their consultation by the
client, allows to simplify the subsequent messages (see  the
consequences for SOAP on our site).

I you  try to imagine how an application could navigate through
Internet, searching resources, much like us humans navigate on Internet,

starting with a search engine, and surfing from page to page, you can
arrive to this solution:

Axioms:

      servers must define precisely what they offer, and clients are
free to take anywhere just what they need;
      every message sent is XML

The proposed solution

Specify an XML service

At a well-known or starting point URL there could be a service
specifying other services. And there the content would be something
like:

<serversDirectory xmlns="http://www.w3.org/2000/XAP">
  <service xmlns:myVocab="http://myCom.com/">
   <url>http://myCom.com/service.pl</url>
   <vocabulary>http://www.myCom.com/service.xs</vocabulary>
   <keyword>online shop</keyword><keyword>wine</keyword>
   <defaults><myVocab:myProperty>my
value</myVocab:myProperty></defaults>
   <query>
    <query-element> myVocab:myQuery </query-element>
    <!-- name of an XML element in this vocabulary specifying the query
-->
    <result-element> myVocab:myResult </result-element>
    <!-- name of an XML element in this vocabulary
         specifying the result of the query (a priori only one
         result-element per query) -->
    </query>
  </service>
</serversDirectory>

Notes:

      this offers both great flexibility and clear contract between
client and server;
      a server can herald service(s) on the same site or others sites;
      the vocabulary, in XML Schema or RDF Schema (or even DTD for
old-timers) can be on the same site or others sites; it can refer to
      Schema repositories like Oasis etc, so that client and server can
share a prior knowledge ;
      it is possible to have a standard name for this file on a Web
site, like index.html is the starting point for browsing, services.xml
      would be the starting point for an non-human client;
      possibly there is no <query-element>, or it is empty;
      using the vocabulary of "XML All-purpose Protocol" itself, it is
possible to point to other <serversDirectory>'s,  depending on the
      query made.
      a service is not only defined by queries and responses; two
services can be differing only by the domain covered, e.g. one for
plants of
      North America and one for plants of China; how to specify this in
the serversDirectory element ? Or outside by RDF of Xlink
      statements? Answer:  in the serversDirectory element; this is the
purpose of the defaults element (could be called context)
      there are possibly several vocabularies per service, several
query-element per query, several services per serversDirectory


Client server protocol

Most of the semantics of the communication is specified prior to the
message by the serversDirectory element described above. What
remain to specify are book-keeping and error managing items.

Session ID

This is similar to the transactionID  from SOAP. This is an identifyer
for a session, unique at least at server level. It must be attributed by
the
server the first time it encounters a client, and afterwards should be
re-sent by both. The client starts a new session by sending a request
without a SessionID.


--
<person>
  <firstName>Jean-Marc</firstName>
  <lastName>Vanel</LastName>
  <conference>9th International World Wide Web Conference - Amsterdam,
May 15-19, 2000
   <a href="http://www.www9.org/">site</a>
  </conference>
  <project>Worlwide Botanical Knowledge Base -
      making botany available on Internet
    <a href="http://wwbota.free.fr/" >site</a>
  </project>
  <a href="http://jmvanel.free.fr/>home page</a>
  <a href="mailto:jmvanel@free.fr">mail (possibly put "wwbota" in
subject to route your mail in relevant folder)</a>
</person>
Received on Wednesday, 29 March 2000 15:23:23 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:58:56 GMT