Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

COSMOS Design 233690

Revision as of 11:07, 23 June 2008 by Hkyleung.ca.ibm.com (Talk | contribs) (Use Cases)

Configuring and retrieving data manager configuration values

Change History

Name: Date: Revised Sections:
Hubert Leung June 19, 2008
  • Initial version

Workload Estimation

Rough workload estimate in person weeks
Process Sizing Names of people doing the work
Design 0 Hubert Leung
Code 0 Hubert Leung
Test 0 Hubert Leung
Documentation 0 Hubert Leung
Build and infrastructure 0 Saurabh Dravid
Code review, etc.*
TOTAL 0

'* - includes other committer work (e.g. check-in, contribution tracking)

Purpose

Each data manager have configuration values that can be used as identifiers, or attributes that indicate their functions. This enhancement is to provide the mechanism to configure these values at deployment time, and expose these values through web services.

Requirements

Identifier of a data manager

The current implementation (as of i10) uses the Axis2 service group name and hostname together to uniquely identify a data manager.

A data manager can be an MDR or a federating CMDB. The CMDBf specification has the notion of an "MDR ID", which is a URI that can uniquely identify a MDR. The MDR ID is also used to locate configuration items and relationships. The goal is to consolidate the approach for identifying an MDR and a data manager that is not an MDR so that we don't need multiple ways to identify a data manager.

Descriptions of the data manager

There are attributes about a data manager that provide information about the services it provides. These values can be displayed by the UI or used programmatically by a client application. These values include the display name, description, and other application specific name-value pairs. One requirement about these values is that they may be locale specific.

SOAP version of web services

Axis2 supports web services using SOAP 1.1 or 1.2. While it is possible to deduce the SOAP version by getting the whole WSDL from the server, it is more efficient to get the SOAP version from the server without transfering the whole WSDL to the client.

Use Cases

Use Case: Configure an MDR

Design

Data manager identifier

We will consolidate the MDR ID and the way we identify other data managers (those that don't support the CMDBf query service). The identifier is a URI that is globally unique. The value is configured at deployment time and it is the responsibility of the administrator to ensure the uniqueness of the URI. Examples of the identifier: http://www.ibm.com/ccmdb/mdr/1

Configuration

We will use a properties file (cosmos.properties) to configure the name value pairs. The reaoson why a properties is used instead of using the axis services.xml configuration file is because these values will need to be shared between web services. The parameters configured in the services.xml are specific to a web service.

Another advantage of putting values in the properties file is to make the values more easily translated.

Getting values from configurations by web services of the same service group

A java class (ConfigurationManager) will be provided that will retrieve values from this configuration file. This class will be part of the org.eclipse.cosmos.datamanager project. The class will be packaged in all data manager projects. Implementation classes of the query service will need to invoke the getId() method of this class to get the MDR ID to populate values in the CMDBf query response or the registration request.

Web service operations

  1. getId: gets the identifier of the data manager. If the data manager supports the query service (i.e. it is an MDR), the identifier is the MDR ID.
  2. getDisplayName: Display name of the data manager. It is a human readable name of the data manager. It can be displayed in the user interface. Since the display name can be translated, the operation will accept an optional locale definition.
  3. getDescription: Description of the data manager. It is a description of the functions of the data manager. The operation will take an optional locale definition.
  4. getProperty: Gets a property value given a key as a parameter of the operation. The operation will take an optional locale definition.
  5. getSoapVersion: Gets the soap version given the name of a service.

Impacts of this enhancement

  1. The new values for the data manager (service group) need to be retrieved by the service finder web service.
  2. The tooling need to add a stub properties file in the META-INF directory of the data manager web project. Since the values are to be configured at deployment time, we don't need eclipse UI to set the values.

Open Issues/Questions

Back to the top