Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "COSMOS Design 204959"
(→Query) |
(→Query) |
||
Line 129: | Line 129: | ||
=== Query === | === Query === | ||
− | As part of [COSMOS Design 200222], a set of query transformations and an SML-repository-specific query service were designed and implemented. In an effort to make these components reusable, the query transformations will be refactored to share common components needed by other libraries in this design. The initial candidate classes to be moved to the common module are IXMLWritable, QueryServiceUtil (which will be renamed) and some of the fields in IQueryTransformerConstants. | + | As part of [[COSMOS Design 200222]], a set of query transformations and an SML-repository-specific query service were designed and implemented. In an effort to make these components reusable, the query transformations will be refactored to share common components needed by other libraries in this design. The initial candidate classes to be moved to the common module are IXMLWritable, QueryServiceUtil (which will be renamed) and some of the fields in IQueryTransformerConstants. |
=== Registration === | === Registration === |
Revision as of 08:44, 5 October 2007
Contents
Provide reusable CMDBf APIs for adopters that intend to provide a CMDBf query/registration service
Change History
Name: | Date: | Revised Sections: |
---|---|---|
Ali Mehregani | 10/04/2007 |
|
Workload Estimation
Process | Sizing | Names of people doing the work |
---|---|---|
Design | 1 | David/Ali |
Code | 2 | David/Ali |
Test | 1 | David/Ali |
Documentation | 0.4 | |
Build and infrastructure | 0.2 | |
Code review, etc.* | 0.2 | |
TOTAL | 4.8 |
Terminologies/Acronyms
The terminologies/acronyms below are commonly used throughout this document. The list below defines each term regarding how it is used in this document:
Term | Definition |
---|---|
MDR | management data repository |
CMDBf | specification for a CMDB that federates between multiple MDRs[1] |
federating CMDB | the CMDB that federates between MDRs, offering a common access point to clients and correlating identifying record data |
CMDB | configuration management database |
SML Repository | repository of SML documents hosted in COSMOS with an established API (see bugzilla 179828) |
Query service | MDRs make data available to Clients via a Query service. Queries may select and return items, relationships, and/or graphs containing items and relationships. |
Purpose
The purpose of this enhancement is to refactor the CMDBf query code to make it more reusable. The SML repository already defines a set of APIs related to the CMDBf query. This set needs to be migrated to org.eclipse.cosmos.dc.cmdbf.query so that it can be reused by contributors who intend to provide a query service for a data provider.
This document will detail out the structure of the code and the minimum API set required to be implemented by contributors. The document will include code snippets to illustrate the simplicity in leveraging the available APIs. As part of the implementation of this enhancement the SML repository will be modified based on the refactored code. The set of classes provided in org.eclipse.cosmos.dc.cmdbf.query will be divided into the following sets:
- CMDBfCommon.jar
- CMDBfQueryTransformation.jar
- CMDBfQueryService.jar
- CMDBfRegistrationTransformation.jar
- CMDBfRegistrationService.jar
The CMDBfCommon module will include any code that will be required by two or more of the other modules. The dependency of the modules is discussed in more details under the 'Implementation Detail' section. The set included under CMDBfQueryTransformation.jar will contain any necessary code for clients who intend to build a CMDBf query and consume a query response. It performs the following transformations:
- CMDBf XML query document > POJO representation of the query
- POJO representation of the query > CMDBf XML query document
- CMDBf XML query response > POJO representation of the query response
- POJO representation of the query response > CMDBf XML query response
Adopters can choose to use CMDBfQueryTransformation.jar as is or have it tweaked based on their needs. What will be included in this jar file will be a concrete implementation of the transformations. Similarly, CMDBfRegistrationTransformation.jar will include a concrete implementation of the transformation required from an XML registration request to a POJO representation (and vice-versa).
CMDBfQueryService.jar will contain the necessary code for processing a query that conforms to CMDBf. This set will allow the user to provide implementation of selector handlers that are specific to a data provider. CMDBfQueryService.jar cannot be used as-is and will require a minimum API set to be implemented. Similarly, CMDBfRegistrationService.jar can be used by contributors to help in processing a registration request.
Requirements
The following is the list of requirements that this enhancement will address:
- Checking the conformance of a CMDBf query against its schema
- Checking the conformance of a CMDBf registration request against its schema
- Transformation of CMDBf XML query from/to a POJO representation
- Transformation of CMDBf XML registration from/to a POJO representation
- A common method of processing a CMDBf query
- A common method of processing a registration request
Implementation Detail
Transformations
Query
As part of COSMOS Design 200222, a set of query transformations and an SML-repository-specific query service were designed and implemented. In an effort to make these components reusable, the query transformations will be refactored to share common components needed by other libraries in this design. The initial candidate classes to be moved to the common module are IXMLWritable, QueryServiceUtil (which will be renamed) and some of the fields in IQueryTransformerConstants.