You are not logged in Log in Join
You are here: Home » Members » jim » JimsWiki » XMLProtocolComparison » wikipage_view

Log in
Name

Password

 
 

XMLProtocolComparison

XML Protocol Comparisons

The purpose of this document is to compare and contrast a variety of XML protocols. It will probably take a while to flesh out the form and content. Viewers are invited to comment and contribute. Contact me (Eric Prud'hommeaux) at [email protected]

XML syntax
ProtocolOrganizationArchitectsStatusnsschemaDTDFacetsExample
XML-RPCUserland Dave Winer deployed001?
[in a POST parameter]
<methodCall>
   <methodName>examples.getStateName</methodName>
   <params>
      <param>
         <value><i4>41</i4></value>
      </param>
   </params>
</methodCall>
SOAPMicrosoft D. Box (DevelopMentor?)
G. Kakivaya (Microsoft Corporation)
A. Layman (Microsoft Corporation)
S. Thatte (Microsoft Corporation)
D. Winer (Userland Software)
coded110
POST /StockQuote? HTTP/1.1
Host: www.stockquoteserver.com
Content-Type: text/xml
Content-Length: nnnn
SOAPMethodName?: Some-Namespace-URI#GetLastTradePrice?
<SOAP:Envelope xmlns:SOAP="urn:schemas-xmlsoap-org:soap.v1">
    <SOAP:Body>
        <m:GetLastTradePrice?
          xmlns:m="Some-Namespace-URI">
            <symbol>DIS</symbol>
        </m:GetLastTradePrice?>
    </SOAP:Body>
</SOAP:Envelope>
ICEGCA Neil Webber, Vignette Corporation
Conleth O'Connell, Vignette Corporation
Bruce Hunt, Adobe Systems, Inc.
Rick Levine, Sun Microsystems, Inc.
Laird Popkin, Sothebys.com
?001
<?xml version="1.0"?>
<!DOCTYPE ice-payload
        SYSTEM "http://www.ice-ag.org/ICE.dtd";
>
<ice-payload
   payload-id="1998-07-05T02:02:[email protected]"
   timestamp="02:02:23,449"
   ice.version="1.0">
  <ice-header>
    <ice-sender
       sender-id="4af37b30-2c35-11d2-be4a-204c4f4f5020"
       name="XYZ Corporation"
       role="subscriber"/>
    <ice-user-agent>Acme Ray Gun ICE System, V0.9beta</ice-user-agent>
  </ice-header>
  <ice-request
     request-id="1998-07-05T02:02:[email protected]">
    <ice-nop/>
  </ice-request>
</ice-payload>
WDDXAllaireSimeon Simeonovcoded?001
<?xml version=1.0?>
<!DOCTYPE wddxPacket SYSTEM wddx_0090.dtd>
<wddxPacket version=0.9>
<header/>
   <data>
      <struct>
         <var name=s><string>a string</string></var>
         <var name=a><array length=2>
               <number>10</number>
               <string>second element</string></array></var>
         <var name=obj><struct>
               <var name=s><string>a string</string></var>
               <var name=n><number>-12.456</number></var>
            </struct></var>
      </struct>
   </data>
</wddxPacket>
BizTalkMicrosoftAndrew Layman?110
<PurchaseOrder? xmlns:abcde="http://electrocommerce.org/stuff.xml";>
   <shipTo>
      <abcde:Address>
         <abcde:name>Alice Smith</abcde:name>
         <abcde:street>123 Maple Street</abcde:street>
      </abcde:Address>
   </shipTo>
   <orderDate>1999-05-20</orderDate>
   <shipDate>1999-05-25</shipDate>
   <comments>Get these things to me in a hurry, my lawn is going wild!</comments>
   <Items>
      <Item>
         <productName>Lawnmower, model BUZZ-1</productName>
         <quantity>1</quantity>
         <price>148.95</price>
      </Item>
      <Item>
         <productName>Baby Monitor, model SNOOZE-2</productName>
         <quantity>1</quantity>
         <price>39.98</price>
      </Item>
   </Items>
</PurchaseOrder?>
IOTPCommerce OneDavid Burdett?001
<BrandList? ID=M1.2
  XML:Lang=us-en
  ShortDesc?=Purchase book including s&amp;h
  PayDirection?=Debit >
  <Brand ID =M1.30
    BrandId?=MasterCard
    BrandName?=MasterCard Credit
    BrandLogoNetLocn?=ftp://otplogos.mastercard.com/mastercardcredit
    ProtocolAmountRefs?=M1.33>
  </Brand>
  <Brand ID =M.31
    BrandId?=Visa
    BrandName?=Visa Credit
    BrandLogoNetLocn?=ftp://otplogos.visa.com/visacredit
    ProtocolAmountRefs?=M1.33>
  </Brand>
  <Brand ID =M1.32
    BrandId?=AmericanExpress
    BrandName?=American Express
    BrandLogoNetLocn?=ftp://otplogos.amex.com
    ProtocolAmountRefs? =M1.33 >
  </Brand >
  <ProtocolAmount? ID =M1.33
    PayProtocolRef?=M1.35
    CurrencyAmountRefs?=M1.34>
  </ProtocolAmount?>
  <CurrencyAmount? ID =M1.34
    Amount=10.95
    CurrCode?=USD/>
  <PayProtocol? ID =M1.35
    ProtocolId?=SCCD1.0
    ProtocolName?=Secure Channel Credit/Debit
    PayReqNetLocn?=http://www.example.com/etill/sccd1 >
  </PayProtocol?>
</BrandList?>
Transaction Internet Protocol
(still more)
Microsoft
Tandem
J. Lyon (Microsoft)
K. Evans (Tandem)
J. Klein (Tandem)
WfXMLWorkflow Management Coalition001?
<WfMessage? Version= 1.0>
   <WfMessageHeader?>
      <Request><ResponseRequired?>Yes</ResponseRequired?></Request>
      <Key>http://www.XYZcompany.com/wfprocess<;/Key>
      <Operation>CreateProcessInstance?</Operation>
   </WfMessageHeader?>
   <WfMessageBody?>
      <CreateProcessInstance?.Request>
         <Key>http://www.XYZcompany.com/wfprocess<;/Key>
         <ObserverKey?>http://www.mycompany.com/mywork<;/ObserverKey?>
         <ContextData?>
            <Vehicle>
               <VehicleType?>Car</VehicleType?>
               <Specification>
                  <Manufacturer>Mercedes</Manufacturer>
                  <Model>450SL</Model>
               </Specification>
            </Vehicle>
            <Furniture>chair</Furniture>
         </ContextData?>
         <StartImmediately?>Yes</StartImmediately?>
      </CreateProcessInstance?.Request>
   </WfMessageBody?>
</WfMessage?>
ebXMLUN/CEFACT
oasis
XMIUnisys Corporation
Fujitsu
IBM
DSTC
Recerca Informatica
Oracle
Daimler-Benz
Platinum Technology
?101
[UML model in an XMI document]
<XMI xmi.version="1.1" xmlns:UML="org.omg/standards/UML">
   <XMI.header>
      <XMI.metamodel name="UML" version="1.3" href="UML.xml"/>
      <XMI.model name="example" version="1" href="example.xml"/>
   </XMI.header>
      <XMI.content>
      <UML:Class name="C1">
         <UML:Classifier.feature>
            <UML:Attribute name="a1" visibility="private"/>
         </UML:Classifier.feature>
      </UML:Class>
   </XMI.content>
</XMI>
XDRXDR is Sun's RPC data format. It may have some interesting lessons for us.

Facets

Below is the list of facets I have defined for characterizing these protocols.

serialization
format for storing primitive data types (int, char, string), structures, and matrices
protocol
definition of requests and responses
extensibility
a mechanism allowing features and functionality to be added beyond what the architects can predict. Some protocols mention extensibility as a requirement without defining the mechanism. Generally, protocols that use namespaces and specify what to do with unknown namespaces get extensibility for free.
interface discovery
machine-readable markup allowing a naive application to access the typed data. Supporting schemas in turn supports interface discovery.
transactions (ACIDity?)
atomicity and state clarity that allows an action to be partially completed and then undone
remote procedure
I'm still a little fuzzy on what I mean here. It may mean the ability to pass generic procedures and have the other side have some mechanism for giving a best-guess response, or it may mean that there is a way to have the other side do something for you, ie. protocol.
business process
modeling of business workflow conventions


Valid HTML 4.0! Eric Prud'hommeaux,
@(#) $Id: 29-XML-protocol-matrix.html,v 1.1 2000/03/30 01:02:05 eric Exp $