XTech 2005: XML, the Web and beyond.

Introducing OMAR

Discuss this paper on the XTech wiki
View XML source for this paper

Keywords

What is OMAR?

OMAR is the next-generation, standards-based open-source ebXML Registry/Repository implementation from the freebXML.org. It implements all the required features and nearly all optional features defined in the OASIS ebXML Registry specifications version 3.0.

This paper introduces the features and capabilities of OMAR.

OMAR, which stands for Object Metadata and Repository, includes multiple clients for accessing the registry server: a browser-based thin client; a Swing-based client; and a command-line administrative tool. The server itself implements both SOAP and HTTP interfaces, as well as a "embedded" mode where the server (registry) runs within the JAXR provider JVM process.

Additional features of the ebXML registry include: role-based access control; automated cataloging of any content; content-based event notification; cooperating registries; registry-managed version control; and parameterized stored queries.

To put it more simply, OMAR provides multiple ways of getting your data, and metadata about your data, into the registry, multiple ways of working with the data when it's in the repository, and multiple ways of getting your data (and metadata) out of the registry. Each of these aspects is covered in one of the following sections, but first a few words about OMAR and ebXML.

Putting It In

There are multiple ways of getting your data into the registry, including:

Web UI

Java UI

CLI

JAXR Program

SOAP Interface

SOAPSender Utility

The OMAR project includes a utility, known as SOAPSender that is used, as the name suggests, to send XML conforming to the Registry information model to the server in SOAP messages. The OMAR project uses SOAPSender when preloading the registry with the canonical data, but you could also use it to preload your own registry with your own static data.

SOAPSender is well integrated with the Ant build files, and adding a new target that runs SOAPSender to load a new XML file is typically just a couple of lines. shows an excerpt from one of the canonical data files loaded by OMAR using SOAPSender, and shows the Ant target that loads that data.

Excerpt of SOAPSender data
<SubmitObjectsRequest xmlns="urn:oasis:names:tc:ebxml-regrep:xsd:lcm:3.0"
 xmlns:rim="urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0">
  <rim:RegistryObjectList>
    <rim:ClassificationScheme lid="urn:oasis:names:tc:ebxml-regrep:classificationScheme:AssociationType"
        id="urn:oasis:names:tc:ebxml-regrep:classificationScheme:AssociationType"
        isInternal="true" nodeType="urn:oasis:names:tc:ebxml-regrep:NodeType:UniqueCode">
      <rim:Name>
        <rim:LocalizedString charset="UTF-8" value="AssociationType"/>
      </rim:Name>
      <rim:Description>
        <rim:LocalizedString charset="UTF-8"
             value="This is the canonical ClassificationScheme for pre-defined association types"/>
      </rim:Description>
...
Ant target that runs SOAPSender data
  <target name="loadAssocTypes">
    <echo message="Loading AssociationType taxonomy as RegistryOperator"/>
    <antcall target="runSOAPSender">
      <param name="req" value="${samples}/minDB/SubmitObjectsRequest_AssociationTypeScheme.xml"/>
    </antcall>
  </target>

Structuring It Any Way You Like

There are many OMAR features that support you working with your data any way you like, including:

Extensible ebXML Registry Information Model

Annotate Objects

Classify Objects

Associate Objects

Catalog Objects

Validate Objects

Deprecate (and Undeprecate) Objects

Add External Links and External Identifiers

Control Access to Your Objects

Get the Word Out

Getting It Out Again

Storing your data in a standards-based registry gives peace of mind, and being able to do many things with the data is a bonus, but neither is much use unless you can also get the data back out again, especially since most registries have many more users of their data than they have data creators. It should not surprise you to know that OMAR provides multiple ways to both view and extract your data, including:

Web UI

Java UI

JAXR Program

SOAP Interface

Conclusion

Biography

Tony Graham

Staff Engineer, Sun Microsystems

Tony Graham is a current member of the W3C XML Protocol Working Group and a past member of the W3C XSL Working Group and the OASIS Web Services Reliable Messaging TC. He is also the principal author of the xmlroff XSL formatter and the author of "Unicode: A Primer" and numerous articles and conference presentations on XML, XSL, XSLT, and Unicode.