Xml Messaging

Rick Sanderson ricks at fourbit.com
Tue Sep 21 21:00:22 BST 1999


I've been lurking this list for more than just a few messages, and
finally its time to get involved. I am surprised that I have not seen
questions like the one I'm about to ask -- I would have thought the
problem was more prevalent -- but maybe I'm in the wrong list*.  (Or
maybe the issue was solved long ago and its now obvious to everyone
but me :-)  Anyway...

I am working on a generic framework for client/server/distributed
apps, and have decided that XML belongs in the messaging subsystem. My
question basically boils down to this:  should XML messaging be based
on a "metadata" language, or on a "domain" language?

For a simple example, consider a client application that allows the
user to display and edit the properties of a General Ledger account.
After making changes, the user saves his work, whereupon the client
messages the server.

Method 1: "Metadata" language
--------------------------------------------------------
<!-- Clarifications:
message:
  a message may contain multiple commands.
command:
  target is the server which must process the sub-message
  id is the command's identifier (unique within the message)
object:
  class identifies the "type" of object, not necessarily the OO class
  oid is the object identifer
  version is the version of the persistent entity (not a msg version)
context:
  provides context for an object within the servers scope.
-->
<message>
  <command target="accounting" id="1">
     <process>update</process>
     <object class="GlAccount" oid="12345" version="1">
       <context>
         <owner class="ChartOfAccounts" oid="47"/>
       </context>
       <property name="name">Bank Account</property>
       <property name="type">Asset</property>
       <object name="balance" class="Money">
          <property name="currency">USD</property>
          <property name="amount" type="float">15000.00</property>
       </object>
     </object>
  </command>
</message>

<response>
  <result target="accounting" id="1" status="0" reason="OK">
    <token class="GlAccount" oid="12345" version="2">
        <description>Bank Account</description>
    </token>
  <result>
</response>


Method 2: "Domain" language
-------------------------------------------------------------------
<message>
  <update target="accounting" id="1">
    <GlAccount oid="12345" version="1">
      <ChartOfAccounts oid="47"/>
      <GlAccount.name>Bank Account</GlAccount.name>
      <GlAccount.type>Asset</GlAccount.type>
      <Balance>
        <Currency>USD</Currency>
        <Amount>15000.00</Amount>
      </Balance>
    </GlAccount>
  </update>
</message>

A response could be something similar to that from Method 1.

<aside>
These two methods contrast the "Xml-Rpc" type approach, which I feel
is not appropriate for all areas of distributed client/server systems
(in the same way I feel CORBA and COM are sometimes touted
incorrectly).  This opinion is based on another which says that
clients use data differently than servers, and so clients should not
be exposed to a server's fine-grained APIs, nor the object model(s)
thereof.
</aside>

Rather than the details or syntax of the messages, it is more the
*general* approach (Metadata vs Domain) that I am interested in
discussing, but of course any comment at all will be graciously
welcomed.

Kind regards,

Rick Sanderson
Fourbit Group
ricks at fourbit.com


*Is there a more appropriate list/NG to which this type of inquiry
belongs? If so, I apologize in advance!






xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ and on CD-ROM/ISBN 981-02-3594-1
To (un)subscribe, mailto:majordomo at ic.ac.uk the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at ic.ac.uk)





More information about the Xml-dev mailing list