This blog has been a great source of feedback from customers and industry colleagues. I'd like to use that channel a little more proactively now.
We're working with the UDDI TC on approaches to versioning (as the public OASIS UDDI meeting minutes show). We've currently identified that we want to take any web service object in UDDI (business services, binding templates, and portType and binding tModels generated following the "Using WSDL in UDDI" Tech Note) and put versioning information on any of them. Our current thinking is that this includes version numbering (usually a major.minor number but any content should be alright), revision or build information (of arbitrary content), milestone information (such as "latest revision"), and "component information" that can be used to logically tie together multiple objects. Unchecked taxonomy tModels can be created for each of these types of information. From any UDDI web service object (e.g. a portType tModel representing an interface definition) categories (keyedReferences) that refer to those tModels and whose keyValues reflects the version, revision, milestone and component.
All this is straightforward enough. A few questions:
- is it acceptable that this won't work for V2 bindingTemplates (categories can only be placed on UDDI V3 bindingTemplates)? Most versioning may take place on the portType tModels (the interfaces) so maybe this is okay.
- should the version be arbitrary content (any string) or should it be allowed to be numeric (possibly with a majorVersion category and minorVersion category)? Since UDDI will get range searching soon enough, this might be attractive. It is however, more complex (more categories necessary) and may not match with the version labeling methods of some shops.
- are there other semantically meaningful milestones that should be "built-in" besides "latest revision", "latest version".
I'm very curious how companies have versioned their web service information in their registries (UDDI-based or otherwise, from Systinet or elsewhere).