Skip to main content
Jump to: navigation, search

COSMOS Design 212189

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
Design
Code
Test
Documentation
Build and infrastructure
Code review, etc.*
TOTAL

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

Purpose

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 statistical data should conform to the new Data Collection framework as defined in enhancement 197868 and 192493

Requirement

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

  1. provide a list of datasource and keyset that is contained in the statistical data repository. The combination of the datasource and keyset indicates a statistical data collection session.
  2. provide a list of statistical data associated with a datasource and keyset

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

Design

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

Statiticaldatamanger arch.gif

Implementation

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

Statdatamanager class.gif

The following defines the web service client interface (IStatisticalClient). This interface will provide the necessary APIs to get a list of datasource and keysets, and get a list of Statisticals based on a datasource/keyset combination.

public interface IStatisticalClient {
	
	public Collection<DataSourceKeyset> getDatasourceKeyset() throws Exception;	
	public Collection<StatisticalTuple> getStatDataForSource(String dataset, String keyset, int start, int size) throws Exception;
}


The implementation of the StatisticalDataManager will contain the SQL statements to query the Statistical database. The schema for the database can be found under data-collection/org.eclipse.cosmos.dc.sample.components/persistence_setup/StatisticalSchema.sql

The implementation of the StatisticalClient will contain the soap request that will communicate with the StatisticalDataManager service.

Task Breakdown

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

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

Testing

This ER along with 212187 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 IStatisticalClient and it has 2 methods Collection<DataSourceKeyset> getDatasourceKeyset() Collection<StatisticalTuple> getStatDataForSource(String dataset,string keyset,int start, int size)

The corresponding Junit test cases are defined in the classes JUnit_DatasourceKeyset JUnit_StatDataForSource

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

In order for these work, the Statistical datamanger needs to up and there is a configuration parameter called derby.system.home that needs setting

it refers to where the derby database is like c:\tomcat5.5\webapps\database

If you are running the COSMOS DEMO i8, and have run configDemo.bat, this parameters will be automatically set for you, otherwise read on.

If you are running the Datamanagers in an OSGi from within eclipse, you can set it in the arguments tab of the OSGi runtime dialog, like this

212189.jpg

Note this is not a exact screenshot of what you should see, the only parameter being illustrated here is derby.system.home and your path will vary.

Also Notice the path uses forward slash. The path corresponds to the directory where the derby database is

If you are running in a external OSGi environment, simply add the definition to the config.ini file in configuration directory of your OSGi env

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.
http://wiki.eclipse.org/COSMOS_Design_212189 
http://wiki.eclipse.org/COSMOS_Design_212187 

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

Copyright © Eclipse Foundation, Inc. All Rights Reserved.