Skip to main content

Notice: This Wiki is now read only and edits are no longer possible. Please see: for the plan.

Jump to: navigation, search

COSMOS Design 212187

Change History

Name: Date: Revised Sections:
Sheldon Lee-Loy 12/12/2007
  • Initial version

Workload Estimation

Rough workload estimate in person weeks
Process Sizing Names of people doing the work
Build and infrastructure
Code review, etc.*

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


The COSMOS I7 End-to-End scenario provides a data collection component that collects and queries logging events. This data collection component utilizes the assembly components that were created in COSMOS I3 as outlined in enhancement 180318. The data collection component for logging event should conform to the new Data Collection framework as defined in enhancement 197868 and 192493


A Data Manager is required to query logging information from a logging event repository. The Data Manager should provide the capabilities to allow clients to do the following:

  1. provide a list of datasets that is contained in the logging event repository. The datasets are ids that group a list of common base events. Typically this id is made up of the agent, host location, monitor and log file name that was collected. Note that this id is constructed from TPTP hierarchy model concepts
  2. provide a list of common base events associated with a dataset id
  3. provide a list of common base events grouped by severity

Note that the above operations provides the necessary function to render the current BIRT Log Report.


The following diagram shows the overall architecture of the CBE Data Manager. A client will use the web service client class to communicate with the CBE data manager class over SOAP requests. The CBE data manager will interact with an underlying database that will contain the log event data. The data manager will provide the necessary query APIs to get a list log event data in the form of Common Base Events.

Cbedatamanger arch.gif


The following class diagram shows the set of classes required to create the CBE data manager

Cbedatamanager class.gif

The following defines the web service client interface (ICBEClient). This interface will provide the necessary APIs to get a list of datasets, get a list of cbes based on a dataset and get a list of datasets grouped by serverity

public interface ICBEClient {

	public Collection<String> getDatasets() throws Exception{
	public Collection<CommonBaseEvent> getAllCBE(String dataset) throws Exception {
	public Collection<CBESeverityCount> getCBECountBySeverity(String dataset) throws Exception {

The implementation of the CBEDataManager will contain the SQL statements to query the CBE database. The schema for the database can be found under data-collection//org.eclipse.cosmos.dc.sample.components/src/org/eclipse/cosmos/dc/sample/components/sink/cbe/CreateDatabaseAndTablesCloudscape_cosmos.sql

The implementation of the CBEClient will contain the soap request that will communicate with the CBEDataManager service.

Task Breakdown

The following section includes the tasks required to complete this enhancement.

  1. Create Web Service Client
  2. Create CBE Data Manager - create sql methods to work with existing CBE COSMOS schema
  3. Create JUnit tests for Data Manager and Web Service Client


This ER along with 212189 define DataManagers for which there are client interfaces that spell out the APIs to these datamanagers.

For each datamanagers, there is an interface that defines some methods that can be used to get data from the datamanagers,

The functionality of the Datamanagers is determined to be ability to call the methods on these interfaces.

Each method in each of the interfaces has a JUnit test associated with it.

The interface for this datamanager is called ICBEClient and it has 3 methods Collection<String> getDataset() Collection<CommonBaseEvent> getAllCBE(String dataset) Collection<CBESeverityCount> getCBECountBySeverity(String dataset)

The corresponding JUnit test cases for each of these methods are JUnit_getDatasets JUnit_getAllCBEs JUnit_getCBECountBySeverity

These test cases are pass/fail and do not require interpretation of displayed results.

In order for these work, the CBE (logging) datamanger needs to up and there is a configuration parameter called CBEData.dir that needs setting in the file of the datamanager.

If you are running the Cosmos Demo i8 (cosmos-demo) and have run configDemo.bat, this parameter is set automatically for you...otherwise read on.

The file can be found in org.eclipse.cosmos.dc.logging.datamgr_1.0.0/META-INF/

and should have the line CBEData.dir=<your path>

where <your path> is the absolute path on the filesystem pointing to org.eclipse.cosmos.dc.logging.datamgr_1.0.0/META-INF/logs

Notice the path uses forward slash

To know you are pointing the right directory, ensure that the files access_log.cbe.xml and windows_app_log.cbe.xml are in it.

Enhancement Owner

The owner of this ER is assigned to John Todd. Hubert and Joel will provide technical assistance.

The following was a note sent out to the interested parties that instigated the ownership change of this ER.

I want to close on the following ERs for the logging and statistical data managers in terms of the assignments of these ERs.  Currently these ERs are blocking the data visualization work for the reports and ui components.

I want to know if these ERs can be contained by the data collection group.  If there are concerns in this matter JT has opted to own these enhancements with the understanding that he will get help from Hubert or Joel since they were the original developers for the Statitical and Logging data components.  

I created a design document for each ERs. 

Don and Joel let me know your thoughts.  I talked with Hubert and he is willing to help JT in this regard.

Back to the top