[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: XML versus SOAP/WSDL Performance



Hi!

Andy> [...] I also don't think it's that hard to map SNMP naming to
Andy> XML.  The most commonly used tables, like in the IF-MIB, are
Andy> quite easy to map. This is also a transitional strategy.  Over
Andy> time, I suspect OID naming will go away because hierarchical,
Andy> human-readable naming is much more intuitive.

I absolutely agree. 

At TU Braunschweig, we have spent some time to develop an automated
mapping from SMIv2 MIBs to XML Schema, so that the Schema describes
how an XML representation of MIB instance data might look like. The
MIB compiler is openly available as part of the libsmi software. A
second tool (not yet available) is being developed to fetch SNMP data
from an agent and dump it as an XML document according to the
Schema. We have plans to elaborate more on how to fetch (and probabaly
push) data via an SNMP/XML gateway and how to address portions of a
MIB, probably through XPath means.

The mapping from MIB naming to an XML element hierachy that we propose
is as follows: We don't want to map the complete Sub-ID hierarchy to
an XML hierarchy, since this would be unnecessarily complex. Instead
we make use of the non-ambiguous naming given by an identifier within
a module in combination with the module name (we ignore the fact that
there might be different versions of a module or other module name
clashes). Within a module we do a grouping of scalars at a common
parent node, and of course a grouping of columns within a table
row. Within these groups, we have elements that represent the leaf
`objects' and contains PCDATA. Hence, we end up with a three-level
hierarchy: <module><grouping><leaf> where in case of a table
the <grouping> has one or more index attributes. Here is a short
example.

<?xml version="1.0"?>
<!-- This module has been generated by mibdump 0.1. Do not edit. -->

<IF-MIB xmlns="http://www.ibr.cs.tu-bs.de/~tklie/IF-MIB";
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
        xsi:schemaLocation="http://www.ibr.cs.tu-bs.de/~tklie/IF-MIB http://www.ibr.cs.tu-bs.de/~tklie/IF-MIB.xsd";
        agent="some-agent.tu-bs.de" community="public" port="161" time="2002-09-24T10:39+0200">
  <interfaces>
    <ifNumber>11</ifNumber>
  </interfaces>
  <ifMIBObjects>
    <ifTableLastChange>1353</ifTableLastChange>
    <ifStackLastChange>958</ifStackLastChange>
  </ifMIBObjects>
  <ifEntry ifIndex="1">
    <ifDescr>POS2/0</ifDescr>
    <ifType>ppp</ifType>
    <ifMtu>4470</ifMtu>
    <ifSpeed>155000000</ifSpeed>
    <ifAdminStatus>up</ifAdminStatus>
    <ifOperStatus>up</ifOperStatus>
    <ifLastChange>2874</ifLastChange>
    <ifInOctets>465928386</ifInOctets>
    <ifInUcastPkts>2018735817</ifInUcastPkts>
    <ifInNUcastPkts>0</ifInNUcastPkts>
    <ifInDiscards>3</ifInDiscards>
    <ifInErrors>1475</ifInErrors>
[...]

Let me know, if you want to play with it on your own.

 -frank





--
to unsubscribe send a message to xmlconf-request@ops.ietf.org with
the word 'unsubscribe' in a single line as the message text body.
archive: <http://ops.ietf.org/lists/xmlconf/>