Jump to: navigation, search

Difference between revisions of "COSMOS Use Cases"

(Generic functionality)
 
(9 intermediate revisions by 3 users not shown)
Line 17: Line 17:
  
 
[[Talk:COSMOS Use Cases|Comments are on the Talk page]]
 
[[Talk:COSMOS Use Cases|Comments are on the Talk page]]
 +
 +
= COSMOS Supported Use Cases for 1.1 =
 +
 +
In addition to the COSMOS 1.0 use cases, there will be a number of new use cases necessary for 1.1 development.  Please refer to the [[COSMOS Use Cases 1.1]] document for these new use cases.
  
 
= COSMOS Supported Use Cases for 1.0 =
 
= COSMOS Supported Use Cases for 1.0 =
Line 146: Line 150:
  
 
=== Use Case: Submit a CMDBf query to an MDR ===
 
=== Use Case: Submit a CMDBf query to an MDR ===
<b><font color="green">Complete</font></b>
+
<b><font color="red">Partially Complete</font></b>
  
 
Led by: Sheldon Lee-Loy
 
Led by: Sheldon Lee-Loy
Line 166: Line 170:
  
 
A generic query builder would be useful in this use case for users familiar with the CMDBf specification.  This generic cmdbf query builder will allow end users to construct queries via a user interface rather than dealing with xml syntax.  Validation and correctness is improved when using a user interface catered towards the CMDBf query schema.  [https://bugs.eclipse.org/bugs/show_bug.cgi?id=214794 214794(19)]
 
A generic query builder would be useful in this use case for users familiar with the CMDBf specification.  This generic cmdbf query builder will allow end users to construct queries via a user interface rather than dealing with xml syntax.  Validation and correctness is improved when using a user interface catered towards the CMDBf query schema.  [https://bugs.eclipse.org/bugs/show_bug.cgi?id=214794 214794(19)]
----
 
  
 +
Launching the COSMOS UI with a MDR query: [http://bugs.eclipse.org/236907 236907]
 +
----
  
 
=== Use Case: Manage CMDBf queries for a specific MDR ===
 
=== Use Case: Manage CMDBf queries for a specific MDR ===
Line 691: Line 696:
 
----
 
----
  
== Generic functionality ==
 
  
=== SML and SML-IF validation support ===
 
  
Actor: web developer, Eclipse developer, COSMOS framework
 
 
Description:
 
#SML validator implementation for validating SML and SML-IF documents
 
## A web developer builds a set of XML documents that conform with the SML specification. He needs a validator to validate the XML documents. He then goes to the COSMOS web page and downloads the package containing the SML validator. Since this validator is rather small, under 1M, and not related to the COSMOS management framework, it is important to be able to download it separately from the COSMOS framework. The user validates the files by running a set of SML validation APIs provided by COSMOS.
 
## An Eclipse user builds SML documents. He needs a validator to validate these documents. He then points to the Update Manager site and tries to install the SML validator feature offered by COSMOS. This user will also require Eclipse based actions that integrate with the Eclipse framework: Validate SML popup action on an SML file, list of files or folder. The user can exchange data by running Export, Import to SMLIF actions on a set of SML documents.
 
## The COSMOS framework will exchange SML documents, packaged or not in an SML-IF envelope. This information may need to be validated, in which case the SML validation tool will be used. Depending on the location where data is validated, the COSMOS framework may require the validator to be run in or outside of the Eclipse framework.
 
 
# SML-IF editor for importing and exporting SML documents from an SML repository
 
## A web developer builds an SML repository. He needs to exchange these documents with other repositories. He then goes to the COSMOS web page and downloads the package containing the SML-IF import/export APIs. Since SML-IF package is rather small, under 1M, and not related to the COSMOS management framework, it is important to be able to download it separately from the COSMOS framework. The user exports and imports SML documents by running a set of SML validation APIs provided by COSMOS. The SML-IF editor, which is Eclipse based, will not be used here.
 
## An Eclipse user builds an SML repository. He needs to exchange these documents with other repositories. He then points to the Update Manager site and tries to install the SML-IF feature offered by COSMOS. This user will also require the SML-IF editor.
 
## The COSMOS framework will exchange SML documents, packaged in an SML-IF envelope. It will use a set of APIs to import and export to SML-IF. The SML-IF editor will not be used here.
 
# SML representation of a simple Data Center repository
 
## COSMOS framework may use this to define a common taxonomy for exchanged data.
 
## An end user may need this to play with SML and SML-IF structures.
 
 
The following conditions need to be in place to support this use case:
 
# The SML and SML-IF validation needs to comply with all required and optional features of the SML specification, version 1.1.
 
# The Data Center definition and instances should comply with this new specification.
 
# Any other COSMOS framework that makes use of specific SML constructs needs to support version 1.1; SML repository API may be one target.
 
# The SML-IF editor should match the new SML and SML-IF specification.
 
 
Ongoing work prior to 1.0 to finish supporting this use case:
 
# Review the SML validator and make sure all parts of the SML and SML-IF specification are being addressed (more testcases required to validate this)
 
 
Enhancements: [https://bugs.eclipse.org/bugs/show_bug.cgi?id=205825 205825 (i10)], [https://bugs.eclipse.org/bugs/show_bug.cgi?id=205826 205826 (i9)], [https://bugs.eclipse.org/bugs/show_bug.cgi?id=237872 237872 (i12)]
 
 
== SDD Related Function ==
 
 
=== SDD Deployment ===
 
This document may be used as a starting point for developing use cases for deployment using the SDD: [http://wiki.eclipse.org/images/7/70/SDD_Deployment_Use_Cases.pdf]
 
 
This document ([http://wiki.eclipse.org/Image:SDD_Deployment_Use_Cases_Condensed.pdf]) is a subset of all considered use cases, including only those in these categories:<br>
 
<ol>
 
<li> Install an offering
 
<li> Uninstall an offering
 
<li> Install maintenance to an installed offering
 
<li> Rollback installed maintenance
 
</ol>
 
 
=== SDD Tooling ===
 
* [[COSMOS SDD Tooling Use case actors]]
 
 
==== Use Case: Create one SDD from build information ====
 
Actor: Builder
 
 
Description: The user has development work and build information from a build environment such as ant, maven, etc.  The tooling will inspect this information to create one SDD.
 
 
# The Builder configures the plug in for the build environment.
 
# The plug-ins inspect the build information.
 
# The plug-ins parse relevant information to the BTG
 
# The BTG creates the SDD.
 
 
Enhancements: [https://bugs.eclipse.org/bugs/show_bug.cgi?id=219663 219663]
 
 
----
 
 
==== Use Case: Create a partial SDD from an artifact ====
 
Actor: Builder
 
 
Description: The user has an artifact (for example, a .jar file, a .dll, or an .rpm).  The tooling will inspect the artifact and create as much of the SDD as possible. This is useful especially in the case of a 3rd party component, where the build information is not available.
 
 
# The Builder configures the plug in for the build environment.
 
# The plug-ins inspect the artifact.
 
# The plug-ins parse relevant information to the BTG
 
# The BTG creates the SDD.
 
 
Enhancements: [https://bugs.eclipse.org/bugs/show_bug.cgi?id=219666 219666]
 
 
----
 
 
==== Use Case: Create a plug-in for a specific build system ====
 
Actor:  Plug-in Developer
 
 
Description: The user may have a build system beyond the popular rpm, msi, etc. The tooling will need to easily accommodate adding other build systems, so that metadata from those systems could be brought in.
 
 
# The Plug-in Developer identifies the build system.
 
# The Plug-in Developer designs plug in for the build system to the BTG.
 
# The Plug-in Developer implements design.
 
 
Enhancements: [https://bugs.eclipse.org/bugs/show_bug.cgi?id=219667 219667]
 
 
----
 
 
==== Use Case: Merge two or more SDDs that describe one product ====
 
Actor: Builder
 
 
Description: The Builder has two or more SDDs that describe one product deployment. The BTG will combine the information of all the SDDs into one resulting SDD.
 
 
# The Builder defines and configures the data sources for each BTG plug-in.
 
# The Builder invokes the BTG with the proper command line parameters.
 
# The plug-ins contact the data sources, parse relevant information, and create SDD fragments.
 
# The aggregator collects the SDD fragment from the plug-ins and merges them accroding to the rules.
 
# The BTG saves the resulting SDD to the file system.
 
 
Enhancements: [https://bugs.eclipse.org/bugs/show_bug.cgi?id=219647 219647]
 
 
----
 
 
==== Use Case: Defining Custom Rules ====
 
Actor: Rule Developer
 
 
Description: The Rule Developer wants to change the behavior of the combination logic. They will write rules to change the default behavior to provide a more customized version of the BTG.
 
 
# The Rule Developer creates one or more rules files that describe the merging of the SDDs.
 
# The Rule Developer modifies an existing rules file. The user can add a rule or remove or change an existing rule.
 
# The BTG will compile and serialize the new rules for faster running on future attempts.
 
 
Enhancements: [https://bugs.eclipse.org/bugs/show_bug.cgi?id=219648 219648]
 
 
----
 
 
==== Use case: Adding new rules files ====
 
Actor: Builder
 
 
Description: The Builder is given a set of new rules. The user modifies the BTG configuration file to include these new rules.
 
 
Enhancements: [https://bugs.eclipse.org/bugs/show_bug.cgi?id=219650 219650]
 
 
----
 
 
==== Use Case: New validation rules ====
 
Actor: Validation Rule Developer, Builder
 
 
Description: The Validation Rule Developer has additional constraints that need to be validated. He/she will add the rules to the validator before running the validation. The validator will process these new rules and throw the proper error messages when they are encountered.
 
 
# Validation Rule Developer creates the new validation rule
 
# Builder invokes the validator with the new validation rule.
 
 
Enhancements: [https://bugs.eclipse.org/bugs/show_bug.cgi?id=219652 219652]
 
 
----
 
 
==== Use Case: Validator provides programmatic response describing the validity of an SDD ====
 
Actor: Builder, SDD creator, SDD consumer
 
 
Description: Programs can call a method in the validator to validate their SDDs. The response returned is able to be programmatically parsed so an application can take the appropriate action.
 
 
Enhancements: [https://bugs.eclipse.org/bugs/show_bug.cgi?id=219653 219653]
 
 
----
 
 
==== Use Case: CLI for Validator ====
 
Actor: SDD Creator
 
 
Description: The SDD Creator can run validation on an existing SDD from the command line.
 
 
Enhancements: [https://bugs.eclipse.org/bugs/show_bug.cgi?id=219654 219654]
 
 
----
 
 
==== Use Case: Disabling Validation ====
 
Actor: SDD Creator, Builder
 
 
Description: The SDD Creator or Builder can disable validation during any operation.
 
 
Enhancements: [https://bugs.eclipse.org/bugs/show_bug.cgi?id=219655 219655]
 
 
----
 
 
==== Use Case: Package Generator will bundle referenced files within an SDD and the SDD into package ====
 
Actor: Package Creator
 
 
Description: The Package Creator wants to create a package that includes all the files referenced in the SDD. He/She will specify a reference location to find the files listed in the package descriptor. The packaging program will bundle the referenced files and the SDD into one package.
 
 
# Package Creator specifies the referenced location of the files to be packaged
 
# Package Creator invokes the Package Generator with the reference location and the SDD
 
# Package Generator creates package
 
 
Enhancements: [https://bugs.eclipse.org/bugs/show_bug.cgi?id=219656 219656]
 
 
----
 
 
==== Use Case: Package Generator will use a file list to bundle files not referenced within an SDD and the SDD into a package ====
 
Actor: Package Creator
 
 
Description: The Package Creator wants to create a package that includes files that are not listed in the SDD. He/She will create a list of the needed files and pass that information to the packaging tool. The tool will bundle the referenced files in the SDD, the additional files in the user created list, and the SDD into one package.
 
 
# Package Creator creates a list of the needed files
 
# Package Creator invokes the Package Generator with the file list, the reference location and the SDD
 
# Package Generator creates the package
 
 
Enhancements: [https://bugs.eclipse.org/bugs/show_bug.cgi?id=219657 219657]
 
 
----
 
 
==== Use Case: Remove artifact input type ====
 
 
Actor:  IT administrator
 
 
Description:  The functionality of expandable artifact input sets is analogous to the Plugin Development Environment within the eclipse IDE.  The process of adding a new artifact type definition can be thought of in the same way as adding an editor in Eclipse.
 
 
# The end user clicks the Configure menu and selects "Remove Artifact Type"
 
# The runtime configuration tool examines an XML file used to track metadata about artifact types that are known and presents the name and description of each to the user
 
# The user chooses the artifacts they no longer are concerned with inspecting for input
 
# The entries are removed from the metadata file, and the corresponding inspection components are removed from the tool's resources.
 
Enhancements: [https://bugs.eclipse.org/bugs/show_bug.cgi?id=219702 219702]
 
----
 
 
==== Use Case: Add artifact input type ====
 
 
Actor:  IT administrator/SDD Author
 
 
Description:  The functionality of expandable artifact input sets is analogous to the Plugin Development Environment within the eclipse IDE.  The process of adding a new artifact type definition can be thought of in the same way as adding an editor in Eclipse.
 
 
# The end user clicks the Configure menu and selects "Add Artifact Type"
 
# The runtime configuration tool prompts the user for the location of the inspection component (which has a well-defined structure much like an eclipse plugin).  The inspection component may be located from the filesystem, a CVS repository, etc.  The workflow should mirror the behviour of the Eclipse IDE when you click on "Import" from the file menu or a context menu.
 
# The entries are added to an XML file used to track metadata about artifact types that are known.
 
Enhancements: [https://bugs.eclipse.org/bugs/show_bug.cgi?id=219703 219703]
 
----
 
 
==== Use Case: Change default directory for SDD outputs ====
 
 
Actor:  SDD Author
 
 
Description:  The author wants to change the default location suggested for saving an SDD.
 
 
# User clicks the Edit menu and chooses "Preferences".
 
# Within the preferences window that is created, a browser is displayed for selecting the default output location.  This might be the local filesystem, a CVS repository, etc.
 
Enhancements: [https://bugs.eclipse.org/bugs/show_bug.cgi?id=219704 219704]
 
----
 
 
==== Use Case: Edit creation defaults ====
 
 
Actor:  SDD Author
 
 
Description:  The author wants to change the default information which gets pre-populated into an SDD.
 
 
# User clicks the Edit menu and chooses "Preferences".
 
# A "Creation Defaults" link creates a window that allows user to see a searchable list of all the predefined properties that go into an SDD (Manufacturer names, contact addresses, etc).
 
# User fills in default values for any property they are interested in.
 
Enhancements: [https://bugs.eclipse.org/bugs/show_bug.cgi?id=219706 219706]
 
----
 
 
==== Use Case: Edit validation defaults ====
 
 
Actor:  SDD Author
 
 
Description:  The author wants to change the allowable value parameters which are used to validate SDDs.
 
 
# User clicks the Edit menu and chooses "Preferences".
 
# A "Validation Defaults" link creates a window that allows user to see a searchable list of all the predefined acceptable value ranges, etc. than can be used as values within an SDD (for example, the amount of free space required for the installation on the target filesystem).
 
# User fills in default values for any property they are interested in.
 
Enhancements: [https://bugs.eclipse.org/bugs/show_bug.cgi?id=219707 219707]
 
----
 
 
==== Use Case: Edit Content Constraints ====
 
 
Actor:  SDD Author
 
 
Description:  The author wants to change the selectable values available when creating/editing an SDD
 
 
# User clicks the Edit menu and chooses "Preferences".
 
# A "Content Constraints" link creates a window that allows user to see a searchable list of all the predefined acceptable value ranges, etc. than can be used as values within the unit type (which is specified with a drop down menu whose values are "Installable Unit", "Configuration Unit", and "Localization Unit").
 
# User selects or deselects values which should be hidden or disabled when editing SDDs.
 
Enhancements: [https://bugs.eclipse.org/bugs/show_bug.cgi?id=219708 219708]
 
----
 
 
==== Use Case: Create a new SDD from scratch ====
 
 
Actor:  SDD Author
 
 
Description:  The SDD Author wants to create a brand new SDD
 
 
# From the file menu (or context menu), the end user chooses "New Project->SDD Project:No Existing Package"
 
# The end user is prompted to pick a location where the configuration data (e.g. the SDD) will be stored.
 
# The tool creates an empty SDD
 
# The user provides input values for the SDD.  Parts that are marked as uneditable in use case 7.6 are either hidden or disabled.
 
# The tool writes out editable parts of the SDD as instructed by the user.
 
# When user has completed input of raw data, they choose either "Validate", "Package", or "Deploy" from the Tools menu.
 
Enhancements: [https://bugs.eclipse.org/bugs/show_bug.cgi?id=219709 219709]
 
----
 
 
==== Use Case: Create a new SDD from some other build system (rpm, msi, etc) ====
 
 
Actor:  SDD Author
 
 
Description:  The SDD Author wants to create a brand new SDD around an existing installation package.
 
 
# From the file menu (or context menu), the end user chooses "New Project->SDD Project From Existing Package"
 
# The end user is prompted to pick a location where the configuration data (e.g. the SDD) will be stored.
 
# The end user is prompted to pick the location of the existing package.
 
# If the format of the selected package is one that the SDD cannot process, notify the user and ask if they want to cancel or choose another package.
 
# The tool creates an SDD using as much of the information as it can glean from the chosen package.
 
# The user provides input values for the SDD.  Parts that are marked as uneditable in use case 7.6 are either hidden or disabled.
 
# The tool writes out editable parts of the SDD as instructed by the user.
 
# When user has completed input of raw data, they choose either "Validate", "Package", or "Deploy" from the Tools menu.
 
Enhancements: [https://bugs.eclipse.org/bugs/show_bug.cgi?id=219710 219710]
 
----
 
 
==== Use Case: Edit an existing SDD ====
 
 
Actor:  SDD Author
 
 
Description:  The SDD Author wants to change values in a previously created SDD
 
 
# End-user launches SDD runtime configuration tool by double clicking the application icon.
 
# From the file menu, they choose "Open" to edit an existing SDD.
 
# The end user is presented with a file browser and prompted to pick the location of the configuration they want to edit. 
 
# The user provides input values for the SDD.  Parts that are marked as uneditable in use case 7.6 are either hidden or disabled.
 
# The tool modifies editable parts of the SDD as instructed by the user.
 
# When user has completed input of raw data, they choose either "Validate", "Package", or "Deploy" from the Tools menu.
 
Enhancements: [https://bugs.eclipse.org/bugs/show_bug.cgi?id=219711 219711]
 
----
 
 
==== Use Case: Validate an SDD being edited ====
 
 
Actor:  SDD Author
 
 
Description:  User chooses "Validate" from the tools menu within the context of editing an SDD.
 
 
# The configuration tool performs XML validation against the SDD schema and checks that the parameters entered by the user make sense.  The document validates, and the user is notified with a brief notification dialog.
 
# The configuration tool performs XML validation against the SDD schema and checks that the parameters entered by the user make sense.  The document does not validate, and the user is notified with a brief notification dialog.
 
Enhancements: [https://bugs.eclipse.org/bugs/show_bug.cgi?id=219712 219712]
 
----
 
 
==== Use Case: Package up a completed SDD ====
 
 
Actor:  SDD Author
 
 
Description:  The SDD Author wants to bundle the completed SDD and any corresponding artifacts into one deliverable package.
 
 
#  User chooses "Package" from the tools menu within the context of editing an SDD.  <B><I>Note:  We are not creating a package in the sense of an MSI or RPM... We are simply bundling the SDD (which describes those artifacts) with the associated artifacts (which themselves might be MSIs or RPMs).</I></B>
 
# The configuration tool validates the SDD (see use case 8.4)
 
# The configuration tool creates a deployable entity by bundling together into a package structure (like a self-extracting zip file) one or more Package Descriptors, the Deployment Descriptor, and the associated artifacts specified by the user.
 
Enhancements: [https://bugs.eclipse.org/bugs/show_bug.cgi?id=219713 219713]
 
----
 
 
==== Use Case: Deploy a packaged SDD ====
 
 
Actor:  SDD Author
 
 
Description:  The SDD Author wants to deploy their newly packaged SDD.
 
 
#  User chooses "Deploy" from the tools menu within the context of editing an SDD.
 
# If no package has been created from the SDD, the configuration tool creates one (see use case 8.5).
 
# The configuration tool invokes the SDD runtime system with the package created from the SDD.
 
Enhancements: [https://bugs.eclipse.org/bugs/show_bug.cgi?id=219714 219714]
 
----
 
 
== New Use Cases ==
 
== New Use Cases ==
  
These use cases for Discussion at COSMOS Summit 20th June,2008
+
'''These use cases for Discussion at COSMOS Summit 20th June,2008'''
 
+
 
==== Use Case: Query for a list of MDR’s and their Meta Data ====
 
==== Use Case: Query for a list of MDR’s and their Meta Data ====
  
Line 1,053: Line 716:
 
Whilst it is possible for each adopter to implement this functionality in their code, such a common task should be provided by COSMOS out of the box.
 
Whilst it is possible for each adopter to implement this functionality in their code, such a common task should be provided by COSMOS out of the box.
  
This functionality should not require that meta data be maintained in the broker, or an additional work for the broker itself.
+
This functionality should not require that meta data be maintained in the broker, or any additional work for the broker itself.
  
 
The COSMOS adopter would use this feature thus:-
 
The COSMOS adopter would use this feature thus:-
  
 +
Application requires a full list of all Data Managers known to COSMOS with Meta Data
 +
# Application requires non specific data
 +
# Application calls webservice with no filter parameter
 +
# Webservice returns Data Manager EP’s and Meta Data for all Data Managers.
  
 +
 +
Application requires general “storage” data.
 +
# Application requires data related to storage
 +
# Application calls webservice with parameter “storage*”
 +
# Webservice returns matching Data Manager EP’s and Meta Data
 +
 +
Application requires specific Aperi data
 +
 +
# Application requires data specific to Aperi
 +
# Application calls webservice with parameter “StoragePool” (or other specific Aperi recordtype)
 +
# Webservice returns Data Manager EP’s and Meta Data for Aperi Data Managers
 +
 +
Enhancements:  [https://bugs.eclipse.org/bugs/show_bug.cgi?id=231343 231343]
 +
[https://bugs.eclipse.org/bugs/show_bug.cgi?id=235898 235898]
 
----
 
----
 +
 
== Work To Do ==
 
== Work To Do ==
  

Latest revision as of 12:34, 1 April 2009

COSMOS Project Home > COSMOS Wiki > COSMOS Documents >

Contents

Overview

The purpose of this page is to articulate the function that COSMOS will provide. While enhancement requests are typically created, they tend to be very fine grained or very macro. We intend to use this page to describe from the user's point of view how they can interact with COSMOS. This page as a way to capture the high level function offered by the COSMOS framework.

The emphasis of this page is for us to focus on the value delivered to the community by COSMOS.

We would like to be able to tie back the work we are doing to a specific use case. Therefore, we will add a link to the Use Case as a comment in the enhancement request.

This has been recorded in the COSMOS Development Process

The current scope of this page is for the delivery of M2 function. Other parts of the project, e.g. SDD, are beginning to develop their use cases. While they are in the process of defining these, we've established a work area for them to hash out the deliverables.


The current SDD work area is COSMOS Use Cases for SDD

Comments are on the Talk page

COSMOS Supported Use Cases for 1.1

In addition to the COSMOS 1.0 use cases, there will be a number of new use cases necessary for 1.1 development. Please refer to the COSMOS Use Cases 1.1 document for these new use cases.

COSMOS Supported Use Cases for 1.0


The existing links are, in many cases quite old. Now that we have a tangible release plan, the purpose of this page is to:

  1. Consolidate all the existing links related to use cases onto a single page
  2. Sunset all of the old wiki pages
  3. Consolidate the use case information for M2 onto this page
  4. Associate enhancement requests with Use Cases. Note: It may be difficult to retroactively add the enhancements to the use cases. However, as we open new enhancements, we should map them back to a use case in this document
  5. Provide a blueprint for the system verification tests


These use cases typically span more than one COSMOS component. Therefore, we've come up with three "categories".

MDR Enablement

(led by Jimmy Mohsin)

Related components/technologies/standards:

  • CMDBf
  • MDR

The following document outlines COSMOS commitment to the CMDBf standard: Leveraging CMDBf


Use Case: Create a Data Manager

Complete - Bug fixes, JUnits and contextual help in i12.


Actor: Developer

Description: Developer uses COSMOS tooling to create a Data Manager. The purpose of this tooling is to facilitate COSMOS adoption.

  1. Developer generates a Data Manager or MDR in Eclipse using the tooling. The tooling will automate many of the manual tasks for setting up the Eclipse project. Both J2EE (Tomcat) and OSGi should be supported. If the MDR interface is selected, then the generated stubs include the MDR handlers
    Enhancements: 208274 (i9), 220593 (future), 220594 (i11), 237161 (future)
  2. Developer customizes the generated interface implementation skeleton by adding code
  3. Developer builds a package for the Data Manager (potentially with SDD)
  4. Developer deploys the Data Manager package in a container
    Enhancements: 232161 (future)
  5. Developer tests the Data Manager
    Enhancements: 220639 (i10)

Use Case: Construct an MDR from a product that exposes its data via ODBC or JDBC

Complete - Bug fixes in i11.


  • i10
  • This is the Aperi discussion

Actor: Developer

Description: Developer has an existing product that merely has a ODBC / JDBC interface. This product does not have a well-formed Data Adapter or Data Manager. This is a very relevant use case since many older products are fall into this category and do not have a Data Adapter of any kind.

  1. Developer uses an exemplar implementation of an MDR which is based on a relational database.
  2. Developer utilizes reference implementations / guidelines for constructing this MDR.

Enhancements: 209987 (i10)


Use Case: Register an MDR with the COSMOS framework

Complete - Bug fixes in i11.

  • This use case is complete in M2
  • 211093 will be moved into a new use case and evaluated for i10.

Actor: System Administrator

Description: This use case describes the ability of adopters to register an internal data store as an MDR. The use case will elaborate COSMOS capabilities that will make registration, service implementation, and discovery of the MDR easier.

  1. An MDR can choose to provide an implementation of a CMDBf query service. COSMOS helps adopters by providing common libraries that makes service implementation easier
    Enhancements: 200222 (i7), 204959 (i7), 208584 (i8)
    User Documentation: Providing a CMDBf Query and Registration Service
  2. After a service implementation, an adopter can register the data store with COSMOS data broker.
    Enhancements: 197867 (i6), 192493 (i6)
    User Documentation: COSMOS Programming Model
  3. Adopters can choose to provide customized visualizations/reports or use existing COSMOS views.
    Enhancements: 206771 (i7), 208603 (i8), 208595 (i8), 211093 (future)

Use Case: Register a NON-COSMOS MDR

Not complete - target i11 (229795)

Actor: System Administrator

Description: System Administrator needs to install a NON-COSMOS MDR into the COSMOS environment, including registration with the COSMOS Broker.

  1. System Administrator installs the MDR according to its documentation
  2. System Administrator obtains the MDR's WSDL and sends it into a COSMOS utility</br>

Enhancements: TBD

  1. The COSMOS utility extracts the CMDBf metadata from the WSDL, locates the Broker thru the Domain, and registers the MDR with the Broker (using the information from the metadata)
  2. At this point, the COSMOS client can locate the NON-COSMOS MDR thru the Broker and access it's CMDBf query interface. If the MDR supported a known record type, then the COSMOS visualization can display the items.</br>

Enhancements:

  • Create/update cmdbf client to handle cmdbf metadata
  • Bug 220949 (i10) MDRs need to accept vanilla web service requests
  • Bug 220952 (i10) Broker to manage MDRs that do not support WSA and WSRF
  • Bug 229795 (i11) CLI client: provide cmd line command to register individual services

Use Case: Query for a list of MDRs and their status

Not complete - Need to close on consumer requirements in this space. Mark and Paul will investigate and discuss at May 16 Summit. Tentative target: i12. Need an update here for June summit

  • We can query for the list, but we cannot reflect the status at this point.
  • We will break the status gathering into a separate use case.
  • Mark & Bill

Actor: System Administrator

Description:

  1. System Administrator opens the COSMOS UI
  2. System Administrator navigates to a view which displays all the Data Managers and the MDR's
  3. Each MDR (and Data Manager) also denotes whether it is online or offline

Enhancements: TBD


Use Case: Take an MDR "offline" or "online"

Not complete - Need to close on consumer requirements in this space. Mark and Paul will investigate and discuss at May 16 Summit. Tentative target: i12. Need an update for June summit


Actor: System Administrator

Description: The System Administrator wants to take an MDR "offline", perhaps for maintenance or for any other reason. Alternatively, she may wish to bring the MDR back online.

  1. System Administrator opens the COSMOS UI, which displays all the data managers and MDR's
  2. System Administrator selects the MDR she wishes to take offline (or online)
  3. System Administrator updates the status of the MDR

Enhancements: TBD


Use Case: Submit a CMDBf query to an MDR

Partially Complete

Led by: Sheldon Lee-Loy

Description:

End users want to answer system management questions by querying information found in an MDR. Here are some example questions:

  • How many users are logged into the network?
  • How long was user X logged into computer Y on Date Z?
  • What is the operational status of computer Y?

The following are the steps the end user will undergo to submit their question:

  1. The end user opens the COSMOS UI and navigates to the MDR that has the information.
  2. The end user will open up some form of wizard or dialog box where they would enter parameters to their query.

Enhancements:

As a result the COSMOS UI should provide hooks for adopters to contribute wizards/dialog boxes. These wizards/dialog boxes provide users a means to construct queries without understanding the query language syntax.214153 (i10)

A generic query builder would be useful in this use case for users familiar with the CMDBf specification. This generic cmdbf query builder will allow end users to construct queries via a user interface rather than dealing with xml syntax. Validation and correctness is improved when using a user interface catered towards the CMDBf query schema. 214794(19)

Launching the COSMOS UI with a MDR query: 236907


Use Case: Manage CMDBf queries for a specific MDR

Partial query management was done in i11. Additional work required in i12 to complete this use case.

Led by: Sheldon Lee-Loy

Description:

The COSMOS Web UI provides an interface for end users to submit CMDBf queries to a specific MDR. It is useful to save these queries so that they can be reused at a later time. The end user would not need to recreate the query a the start of their session. It would also be useful for the user to have the ability to organize these queries within the navigation tree. This will allow end users to manage their queries.

The type of operations that are required for managing queries is as follows:

  1. The user logs in.
  2. The user creates the query and persists the query.
  3. The user can delete the query from the navigation tree
  4. The user can rename the query.
  5. The user can copy the query.

Enhancements:

223271(i11) 223270(i11) 236670 (i12?)


Use Case: Visualizing a CMDBf graph response from an MDR

Completed basic part of this use case;


Led by: Sheldon Lee-Loy

Description:

This use case continues off from "Submit a CMDBf query to an MDR" use case. At this point the end user has submitted a query and wants to understand the response received from the query. There are countless ways to organize and visualize the data so that the the end user can make sense of the data. Furthermore, there can be multiple views of the data. For example, one view of the response may be significant for business-users while another view may be significant for system administrators. Therefore views can be user context sensitive.

Enhancements:

As a result the COSMOS UI should provide hooks for adopters to contribute custom visualizations. 214158 (i10)


A generic query response view would be useful in this use case for users familiar with the CMDBf specification. This generic CMDBf query builder will allow end users to view CMDBf graph response. 214145 (i9)

Additional Record Types for the Graph Reponse Viewer 220334 (i10)

Improve the Graph Response Viewer View 224166 (i11)

Related Use Case: Using COSMOS to submit queries to a proprietary data store with operational data


Use Case: Retrieve the metadata for an MDR

  • Complete in i11. The current view is sufficient for our 0.9 release.
  • We will evaluate if we need a more usable view post 0.9 release.


Actor: System Administrator

Description: The System Administrator wants to query the optional features, data model(s), or record types supported by an MDR.

  1. System Administrator opens the COSMOS UI
  2. System Administrator navigates to a view which displays all the Data Managers and the MDR's
  3. System Administrator selects an MDR, and selects Retrieve Service Metadata from the context menu
  4. A view of the data retrieved from the MDR is displayed.

Enhancements: 212185 (i8), 215521 (i9), 215123 (i9)


Use Case: Configure an MDR

Actor: System Administrator

Description: There are cases where the user may provide configuration options for the MDR to carry out certain operations. These options may include:

  • Security credentials
  • SOAP version
  • Custom configuration properties.

There are two parts to this use case:

  1. Provide the ability for an adopter to configure an MDR
  2. Provide a service to allow client application to display these configuration information (i.e. meta data)

Enhancements: 234517 (i12?) Notes: What information should be displayed to the user? Should we append these additional meta data to the service meta data XML document.

Collection

Led by: Ali Mehregani & Hubert Leung


Related components/technologies/standards:

  • Integration with Application Logs (Based on existing work)
  • Performance Data
  • Event subscription & publication
  • WS-BaseNotification, WS-NotificationBroker, WS-Topics
  • WSDM Event Format

Use Case: Client subscription to events

Archived - No longer valid for COSMOS 1.0


Use Case: Using COSMOS to submit queries to a proprietary data store with operational data

Complete

Description: The COSMOS framework will allow adopters to plug-in a proprietary repository that stores operational data (e.g. performance/monitoring/statistical/etc...). An adopter can use COSMOS to provide a consolidated view for all data stores that are independent of each other.

  1. Adopter registers the data store as a data manager
  2. Adopter extends the COSMOS client to provide customized action on the newly added data manager
  3. The action is linked with report/visualizations that are populated based on a query to the underlying data store

The same user experience can be used for multiple data stores that have similar characteristics but different implementations.

Enhancements: 208274 (i9), 192493 (i6), 197867 (i6), 208976 (i7), 208595 (i8)



Use Case: Report generation for logging and statistical data

Complete

Description: COSMOS includes two exemplary data managers that have a database containing logging and statistical data. This use case indicates the steps that users need to perform to generate reports based on logging and statistical data

  1. If installed properly, the logging and statistical data managers will be displayed in COSMOS client
  2. To generate a report, the user will need to right click a desired data manager and select one of the available reports.

The action will query the underlying data store for information and generate a report based on the results. Enhancements: 212187 (i8), 212189 (i8), 206772 (i7 - Marked WONTFIX)


Use Case: Report generation based on CMDBf Constructs

A candidate enhancement for i12

Description: COSMOS includes a set of data managers that provides information on CIs (Aperi, Example MDR, Asset Repository). A useful report should be created based on CIs.

This will provide adopters with examplar reports that work off of CMDBf constructs and services.

  • Provide a report that shows what query operations are available (Service Meta Data).
  • Provide a report that lists configuration items based on a query (Similar to the graph view but use BIRT to visualize CDMBf graph).
    • Shows how to create a custom report based on CMDBf graph construct.

Enhancements: 237655 (i12) 230405 (i12)


Use Case: Logging in COSMOS

Complete

Description: COSMOS provides an error handling mechanism to allow internal components to log events that can be used for troubleshooting.

  1. Use log4j logging mechanism
  2. Log entry format and location are configurable declaratively
  3. Enable messages to be translated by externalize the strings in properties files
  4. Message ID can be generated for log messages that follow a convention in the properties
  5. Documented logging strategy at http://wiki.eclipse.org/COSMOS_Logging.

Enhancements: 229426 (i11)


Use Case: Use of notification events in a CMDBf environment

This is a valid use case; we whould consider implementing in COSMOS 1.0. CA has an adopter for this use case now and this capabilitiy will facilitate adoption by one more team at CA. If it is not containable, move to future.

Description: The CMDBf specification falls short of describing a notification mechanism for item/relationship status updates. For example, if an MDR registers an item with a federating CMDB, then events need to be generated any time data is added, updated, or deleted. See lines 1557-1570 of the CMDBf1.0 specification for examples of policies that a federating CMDB can use in case of data modifications.

The COSMOS notification mechanism can help to complement a CMDBf architecture. The following use case assumes the existence of a federating CMDB.

  1. An MDR publishes a topic to the notification broker based on item/relationship updates
  2. An MDR registers an item with a federating CMDB
  3. Before accepting the registration, the federating CMDB subscribes to the topic for status updates on the MDR data
  4. The item is accepted with a positive registration response
  5. The federating CMDB can make any required changes based on notifications produced by the MDR. If for example the item is deleted, then the federating CMDB can choose to also delete the item.

Enhancements: 212293 (future), 204959 (i7), 208584 (i8)


Setup & Configuration

(led by Bill)

Note: There should at least be one use case for each one of the topics below:
* Security enhancements planned for i8
* Any SDD work planned for i8/i9
* SNMP work planned for i8/i9
* Management of data managers via WSDM

Related components/technologies/standards:

  • CMDBf Administration
  • SNMP (MIB2RDML??)
  • WSDM Tooling
  • WSDM Annotations
  • SDD
  • SML

Use Cases:


Use Case: Administrator installs the base COSMOS infrastructure

Manual install steps complete in i9.SDD team working on install prototype for i11


Actor: System Administrator

Description:

  1. Administrator installs the COSMOS Domain and Broker in containers (using SDD?)
  2. Administrator configures the Broker with the Domain
  3. Administrator starts the container, which autostarts the Domain and Broker.
  4. The Broker registers itself with the Domain

Enhancements: 209980 (i9)


Use Case: Administrator installs a Data Manager

Manual steps documented and complete in i9

What does this look like when you have an existing product. This sounds like a composite install and may fit with SDD. Can we do this in i10?

215502 should be targeted to i10. Need to have more detail and ensure the proper scope. 218827 is a related bug to address in this work.

Actor: System Administrator

Description:

  1. Administrator installs a Data Manager package in a container
  2. If the Data Manager is a COSMOS MDR, then the adminstrator configures the MDR with the Domain
  3. If the Data Manager is NOT a COSMOS MDR, then the adminstrator manually configures the MDR with the Broker (using a command line or UI)
  4. Administrator starts the container
  5. If the Data Manager is a COSMOS Data Manager, it autostarts and registers itself with the Broker using the Domain

Enhancements:


Use Case: Administrator upgrades a Data Manager

Should be done in i10. This use case needs to take into account how to "de-register" an MDR from a broker.


Actor: System Administrator

Description:

  1. Administrator deregisters a deployed Data Manager from the Broker
  2. Administrator installs (upgrades) the new Data Manager package into the container
  3. Administrator starts the new Data Manager

Enhancements:


Use Case: Administrator uninstalls a Data Manager

Should be done in i10. This use case needs to take into account how to "de-register" an MDR from a broker.


Actor: System Administrator

Description:

  1. Administrator deregisters a deployed Data Manager from the Broker
  2. Administrator removes the Data Manager from the container

Enhancements:


Use Case: Registering configuration items of an MDR with a federating CMDB

Complete


Actor: System Administrator

Description:

This use case illustrates how the user will be able to either register all items/relationships or a selective items/relationships of an MDR with a federating CMDB. See the steps below:

Registering all items of an MDR

Complete

  1. User right clicks one or more MDR
  2. User selects "Register Configuration Items" from the context menu
  3. A dialog is displayed where the user will be able to select the federating CMDB that the items should be registered with
  4. All items/relationships are registered and a view is displayed to indicated the ones that have been approved or rejected.

Enhancements: 214672 (i9), 215267 (i9)


Selective registration of items

Complete

  1. User right clicks an MDR
  2. User selects "Query Data Repository" from the context menu
  3. A wizard is displayed where the user will be able to specify the constraints and arguments of the query
  4. The query is submitted and the results are returned in a tabular view
  5. The user will be able to drag and drop a set of items/relationships from the result view to a federating CMDB. Alternatively the user can drag and drop the query tree item that appears in the left panel to register all items/relationships of the query with a federating CMDB.
  6. The selected items/relationships are registered and a view is displayed to indicate the ones that have been approved or rejected.

Enhancements: 217303 (i10)



Use Case: Deregistering configuration items of an MDR with a federating CMDB

Complete


Actor: System Administrator

Description:

This use case illustrates how the user will be able to either deregister all items/relationships or a selective items/relationships of an MDR with a federating CMDB. See the steps below:

Deregistering all items of an MDR

Complete

  1. User right clicks on a federating CMDB and selects "Deregister Configuration Items"
  2. The same dialog used for registration will appear with a check-box list of MDRs
  3. User selects the MDRs that they wish to disassociate with a federating CMDB and selects "Deregister"
  4. All registered items of the selected MDRs will be deregistered with the federating CMDB
  5. A dialog will appear displaying the status of the deregistration process

Enhancements: 214672 (i9), 215267 (i9)


Selective registration of items

Complete

  1. User performs a CMDBf query on the federating CMDB
  2. In the tabular view displaying the result of the query, the user will be able to select a set of items > right click > and select deregister.
  3. The items are deregistered and the status is displayed to the user

Enhancements: 217303 (i10)



Security Specific Use Cases

(led by Jimmy Mohsin)

Per http://wiki.eclipse.org/Use_case_actors, the Monitor Adminsitrator role is one of the two key kinds of actors in Eclipse COSMOS, the other being System Adminsitrator. The Monitor Administrator is an Admin who is responsible for the installation, configuration, and operation of COSMOS. Given this definition, the Monitor Administrator responsible for COSMOS Security. The System Adminstrator is viewed as the the role that utilizes and accesses the MDRs.

Related components/technologies/standards:

  • WS-Security

Use Case: User provides credentials for an MDR to COSMOS

Completed i11.


Actor: COSMOS User

Description:

  1. User provides username/password to COSMOS client for specific MDR with the security mechanism
  2. COSMOS client builds the appropriate security token/ticket and presents to the MDR requiring authentication
  3. MDR decrypts the security token/ticket and validates user operation for the MDR.
  4. Necessary credentials (username/password etc) passed to Data Source for access.
  5. User does NOT need to reenter credentials for same MDR
  6. User does need to provide credentials for each MDR requiring authentication

Enhancements: 216332 (i12) 231400 (i11)



Use Case: Wrap authentication returns from underlying repositories and surface them accordingly

Related to the System Administrator Provides Credentials to COSMOS. Complete ?


Actor: COSMOS

Description:

  1. Client provides invalid credentials (username/password etc), or no credentials to MDR for access.
  2. MDR returns appropriate messaging back to client.


Enhancements: 216332 (i12) 231400 (i11)


Use Case: User inactivity timeout

Related to the System Administrator Provides Credentials to COSMOS. Future ? ?


Actor: COSMOS

Description:

  1. User provides username/password information to COSMOS client related to specific MDR.
  2. User is not required to re-enter credentials for that MDR to COSMOS client within timeout period .
  3. User is required to re-enter username/password to COSMOS client outide of timeout period

Enhancements: 216332 (i12) 231400 (i11)


Use Case: Administrator grants / revokes access to an MDR for a User

Target: Future.


Actor: Administrator

Description:

  1. Administrator gets a request and relevant details to grant / revoke MDR access for a User
  2. Administrator accesses security model to grant access to the (specific?) MDR for the specified User
  3. Administrator notifies the User in regards to their access

Enhancements: 216332 (i12) 205863 (future)


Use Case: Setting Access levels for a user

Target: Future

Actor: Administrator

Description:

  1. Administrator gets a request and relevant details to set specific level of access within a given MDR for a User.
  2. Administrator accesses security model to set level access to the MDR for the specified User
  3. Administrator notifies the User in regards to their access

Enhancements: 216332 (i12) 205863 (future)




Use Case: MDR accesses Security Model for authentication/access level

Target: Future

Actor: COSMOS MDR

Description:

  1. Client sends a request to an MDR with a given user identity
  2. MDR accesses security model to determine authentication and level of access to the Data Source for the specified User identity.
  3. User information is encrypted
  4. MDR applies appropriate restrictions based on user identity

Enhancements: 216332 (i12) 205863 (future)

Use Case: Specify Security Model on the Data Model, i.e. determine who can see which MDRs

This is out of scope. This falls under the purview of the Federating CMDB.


I18n Specific Use Cases

As detailed in the “Internationalization Support - programming model” ER 208593 COSMOS is required to provide the capability of making itself adaptable to the requirements of different native languages, local customs and coded character sets. The following use cases describe the requirements for functionality in the COSMOS platform to support globalization. The goal is to make it possible to support delivery of applications which work properly in multiple locales with the lowest development and maintenance cost.


Use Case: Authoring of COSMOS Components for use in Non English Environment

Actor: COSMOS Developer

Description:

A COSMOS Developer needs to author a COSMOS Components eg) MDR, COSMOS UI, in a language besides English, and possibly a character set besides ISO-8859-1. This includes the operation of the COSMOS component itself, eg. logging/error messages, handling of dates/currency/numerics, Widget labels etc. as well as communications with other COSMOS components eg. Data Broker, Client API, MDR

The activities to perform localization work should be achievable without significant changes to code or functionality. Modifications to support a given locale should be limited to resource files, message catalogs and configuration entries

COSMOSUI Bug Ids 219806 (i10), 219629 (i10) 229820 (i11) 232090 (i11)

Enhancements: TBD


Verification of non-localized strings should be part of the build process. Check to see if we have an enhancement open for this.


Use Case: Process/Document for localization of COSMOS Components.

Target i10


Actor: COSMOS Developer

Description:

The procedure required to perform localization work and the entities that contain localized entries must be documented in such a way that the scope and effort to perform the work can be quantified readily. Translations should be applicable to an identifiable set of files and modifiable by non technical resources.

Enhancements: TBD

This includes the set of work to identify all of the resources that should be translated. We don't have a way to automatically "tag" or include an externalized file for translation. It's not easy to derive this set.


If you have a set of externalized files, how do you get them included in the build.



Use Case: Operation of COSMOS Components in a mixed language environment

Future

Actor: COSMOS Developer

Description:

A Developer needs to author COSMOS Components which inter operate in multiple languages. Where a COSMOS implementation is deployed across geographical locations, components may not all be operating using the same locale. Eg) A COSMOS UI localized and operating within a German locale may communicate with an MDR localized for a doublebyte locale such as Chinese Mandarin.

Enhancements: 232164



New Use Cases

These use cases for Discussion at COSMOS Summit 20th June,2008

Use Case: Query for a list of MDR’s and their Meta Data

Description: Typically when an application makes use of COSMOS it will be looking for a certain type of data for which it has a requirement eg) asset data, performance data. Alternatively the application may require access to a Data Manager for a specific data source eg)Aperi

Whereas the COSMOS Broker carries basic information regarding the Data Managers that are known to COSMOS however this does not include Meta Data.

Currently for an application to ‘find’ a Data Manager that will serve up the correct type of data it is necessary to code a loop within the application to perform this task

  1. Get Data Manager from Broker
  2. Get Meta Data from Data Manager
  3. Check if correct type
  4. if not goto 2

Whilst it is possible for each adopter to implement this functionality in their code, such a common task should be provided by COSMOS out of the box.

This functionality should not require that meta data be maintained in the broker, or any additional work for the broker itself.

The COSMOS adopter would use this feature thus:-

Application requires a full list of all Data Managers known to COSMOS with Meta Data

  1. Application requires non specific data
  2. Application calls webservice with no filter parameter
  3. Webservice returns Data Manager EP’s and Meta Data for all Data Managers.


Application requires general “storage” data.

  1. Application requires data related to storage
  2. Application calls webservice with parameter “storage*”
  3. Webservice returns matching Data Manager EP’s and Meta Data

Application requires specific Aperi data

  1. Application requires data specific to Aperi
  2. Application calls webservice with parameter “StoragePool” (or other specific Aperi recordtype)
  3. Webservice returns Data Manager EP’s and Meta Data for Aperi Data Managers

Enhancements: 231343 235898


Work To Do

Carried over use cases

High


Medium

Low


Move To Post-1.0