In the previous sections, we looked at how different operations can be performed on the UDDI registry using JAXR. While developers never interact directly with the registry in any form, it is worth noting how JAXR defines the mapping between its information model and UDDI. Table 12.2 shows the high-level mapping between the information models. Table 12.3 shows the UDDI SOAP-publishing-related API mapped by JAXR, and Table 12.4 shows the Inquiry API. We encourage you to refer to the specifications for detailed attribute-level mapping.
JAXR interface |
UDDI data structure |
---|---|
Organization |
businessEntity |
Service |
businessService |
ServiceBinding |
bindingTemplate |
Concept |
tModel (fingerprint) |
ClassificationScheme |
tModel (namespace) |
ExternalLink |
discoveryURL |
User |
contact |
Collection of ExternalIdentifier instances |
identifierBag |
Collection of Classification instances |
categoryBag |
PostalAddress |
address |
ExternalLink |
overviewDoc |
Classification |
keyedReference (in categoryBag) |
ExternalIdentifier |
keyedReference (in identifierBag) |
JAXR BusinessLifeCycleManager |
UDDI method |
---|---|
saveAssociations |
add_publisherAssertions |
deleteServiceBindings |
delete_binding |
deleteOrganizations |
delete_business |
deleteAssociations |
delete_publisherAssertions |
deleteServices |
delete_service |
deleteClassificationsSchemes and deleteConcepts |
delete_tModel |
findAssociations |
get_assertionStatusReport |
QueryManager.getRegistryObjects |
get_publisherAssertions |
QueryManager.getRegistryObjects |
get_registeredInfo |
saveServiceBindings |
save_binding |
saveOrganizations |
save_business |
saveServices |
save_service |
saveClassificationsSchemes and saveConcepts |
save_tModel |
saveAssociations |
set_publisherAssertions |
JAXR BusinessQueryManager |
UDDI method |
---|---|
findServiceBindings |
Find_binding |
findOrganizations |
find_business |
findAssociatedObjects |
find_related_business |
findServices |
find_service |
findConcepts and |
find_tModel |
findClassificationSchemes |
We would like to mention three important details about all that has been covered in this chapter relating to UDDI:
Though we have talked about publishing WSDL, it should be noted that the WSDL file itself is not being stored in UDDI, only the information or metadata about the service contained therein. The WSDL must still be located on a Web server. UDDI is not a repository.
Use of the Microsoft and IBM public registries in the examples above should not imply that JAXR is only for publishing to public registries. From a developer's perspective, it does not matter if the registry is public, private, or from any particular vendor. The code remains the same; only the URLs pointing to the registry change.
Though we have covered UDDI, the code to realize any of the use cases will not change for other registry types; only the underlying provider will. For example, if a JAXR provider was available for a foo-bar registry that supported the capability levels used, simply switching the underlying providers would be enough, because the provider would take care of how the JAXR model maps to that registry. In short, JAXR code is portable across registry providers for the same or higher capability levels.