COSMOS Design 212189
Contents
Change History
Name: | Date: | Revised Sections: |
---|---|---|
Sheldon Lee-Loy | 12/12/2007 |
|
Workload Estimation
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:
- 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.
- 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.
Implementation
The following class diagram shows the set of classes required to create the Statistical data manager
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.
- Create Web Service Client
- Create Statistical Data Manager - create sql methods to work with existing Statistical COSMOS schema
- 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
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.