SCDJWS Study Guide: JAXR
The RegistryService is the principle interface in the JAXR API. The JAXR provider supports capability profiles that group the methods on JAXR interfaces by capability level. RegistryService exposes the JAXR provider's key interfaces, that is, Web services discovery and registration. The JAXR client can obtain an instance of the RegistryService interface by invoking the getRegistryService() method on the Connection object established between the JAXR client and JAXR provider. Once the JAXR client has the RegistryService, it can obtain the primary registry interfaces and perform life-cycle management and query management through the JAXR provider.
The JAXR specification defines two life-cycle management interfaces:
- BusinessLifeCycleManager - for level 0 (MUST use this interface according to BP 1.0)
- LifeCycleManager - for level 1 (MUST NOT use this interface according to BP 1.0)
BusinessLifeCycleManager defines a simple business-level API for life-cycle management. This interface resembles the publisher's API in UDDI, which should prove familiar to the UDDI developer. For its part, LifeCycleManager interface provides complete support for all life-cycle management needs using a generic API.
Life-cycle management includes creating, saving, updating, deprecating, and deleting registry objects. In addition, the LifeCycleManager provides several factory methods to create JAXR information model objects. In general, life-cycle management operations are privileged, while a user can use query management operations for browsing the registry.
JAXR's top-level interface for query management, QueryManager, has two extensions:
- BusinessQueryManager - for level 0 (MUST use this interface according to BP 1.0)
- DeclarativeQueryManager - for level 1 (MUST NOT use this interface according to BP 1.0)
Query management deals with querying the registry for registry data. A simple business-level API, the BusinessQueryManager interface provides the ability to query for the most important high-level interfaces in the information model, such as Organization, Service, ServiceBinding, ClassificationScheme, and Concept.
Alternatively, the DeclarativeQueryManager interface provides a more flexible, generic API, enabling the JAXR client to perform ad hoc queries using a declarative query language syntax. Currently, the only declarative syntaxes JAXR supports are SQL-92 and OASIS/ebXML Registry Filter Queries. As noted in the JAXR specification, ebXML registry providers optionally support SQL queries. If a registry provider does support SQL queries, the JAXR ebXML provider will throw an UnsupportedCapabilityException on DeclarativeQueryManager methods.