XTech 2005: XML, the Web and beyond.
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.
There are multiple ways of getting your data into the registry, including:
ftp for
loading multiple files and directories from the local file system.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.
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>
...
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>
There are many OMAR features that support you working with your data any way you like, including:
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:
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.