Subject: Atom Category Document for WSDL?

From: Paul Denning <[email-masked]>
Date: Wed, 02 Jul 2008 16:51:24 -0400

Given things like WSO2 Registry and Mule Galaxy, which provide Atom 
Publishing Protocol interfaces, it seems that it would be useful to 
have a "standard" atom:scheme and an associated Atom Category document.

Compared to UDDI, Atom is generally considered more lightweight and 
ubiquitous.  However, UDDI has some good aspects that perhaps should 
be modeled or imitated using Atom.

For example, to register a WSDL document in UDDI [0], a tModel is 
created and some information gleened from the WSDL is used in the 
categoryBag.  So, to find WSDL in UDDI, you search for tModels with a 
certain well-defined category in the categoryBag.

[0] 
http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-wsdl-v2.htm

Now that Atom Publishing Protocol (APP) is being used for publishing 
to a registry/repository, we should look at some conventions for the 
Atom category element to help users find WSDL and related SOA 
artifacts across (i.e., aggregation of) a set of heterogenous 
registry/repository feeds.

That is, a large enterprise may have several registry/repositories, 
each with Atom feeds for WSDL, which I would like to aggregate into 
one composite feed for WSDL from across the enterprise.  Finding the 
feeds for WSDL from among the many feeds that an enterprise may have 
should be easier.

What I think this boils down to is a standard taxonomy (aka, value 
set, vocabulary) documented in an Atom Category Document [1].

[1] http://tools.ietf.org/html/rfc5023#section-7

For example,

<?xml version="1.0" ?>
<app:categories
   xmlns:app="http://www.w3.org/2007/app"
   xmlns:atom="http://www.w3.org/2005/Atom"
   fixed="yes"
   scheme="http://example.com/soa">

   <atom:category term="wsdlSpec" />
   <atom:category term="wspSpec" />
   <atom:category term="bpelSpec" />
</app:categories>

Obviously @scheme would benefit from an IRI defined by an established 
standards organization (W3C, OASIS, IETF, ...).

Above I define only three terms, but others should be considered.
The terms above would be used, respectively, to register/publish 
WSDL, WS-Policy, and BPEL.

Therefore if the 'wsdlSpec' category were to
    appear in an Atom Entry or Feed Document, it would appear as:

    <atom:category scheme="http://example.com/soa" term="wsdlSpec"/>

If a registry/repository wanted to offer a feed/collection of WSDL 
documents, then an Atom Service document might look like the following:

<?xml version="1.0" encoding='utf-8'?>
<service
   xmlns="http://www.w3.org/2007/app"
   xmlns:atom="http://www.w3.org/2005/Atom">
  <workspace>
   <atom:title>Registry</atom:title>
   <collection
     href="http://example.com/soa" >
     <atom:title>My Blog Entries</atom:title>
     <categories href="http://example.org/soa" />
    </collection>
    <collection
      href="http://feeds.example.org/soa/wsdl" >
      <atom:title>WSDL</atom:title>
      <categories fixed="yes">
        <atom:category
           scheme="http://example.com/soa"
           term="wsdlSpec" />
      </categories>
      <accept>application/wsdl+xml</accept>
      <accept>text/xml</accept>
     </collection>
   </workspace>
</service>

Has any of the above been considered?

Paul