COSMOS Design 197870

From Eclipsepedia

Revision as of 02:25, 21 August 2007 by Jim.gyng.com (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Contents

Client API COSMOS DC framework

Change History:

Name: Date: Revised Sections:

Jimmy Mohsin 7/25/2007 Initial version

Bill Muldoon 8/1/2007 Added content

Jimmy Mohsin 8/21/2007 Please see my comments at the bottom of the Talk page (http://wiki.eclipse.org/Talk:COSMOS_Design_197870)

Workload Estimation (required)

Rough workload estimate in person weeks: 
Process	Sizing	Names of people doing the work
Design	1	MR 2 development team
Code	1	
Test	1	
Documentation	.2	
Build and infrastructure	.5	Bill Muldoon
Code review & other committer work (e.g. check-in, contribution tracking) 
if this is to be contributed by someone who is not a committer in the component	0	
N/A - will be done by committer
Total	3.7


Terminologies/Acronyms (required)

The terminologies/acronyms below are commonly used throughout this document. The list below defines each term:

Term Definition

Data Broker This is the component where all the web services that share data register themselves

Data Store This is a physical software artifact that stores data, e.g. Oracle, a File System, etc

Data Manager Largely corporate implementation component that implements the SOA API for data exchange

Service Broker This is the component where all the web services that share functional behavior register themselves


Purpose (required)

This design document addresses COSMOS Bugzilla enhancement request 197870.

The Client API contains convenience methods for the client application to use to access the Data Broker and Data Managers.

The Client API performs common tasks required to access COSMOS DC runtimes.

Requirements (required)

The Client API:

1. Contains common methods to access the DC framework runtime

2. Contains common methods to access the Data Broker

3. Contains common methods to access the Data Managers

4. Contains context names for the Data Broker and Data Managers

5. Contains default DC runtime values


Use Cases (required)

<Include a set of common use cases that your feature will introduce or impact>

Use case 1: access the Data Broker using the Client API

Use case 2: access a Data Manager using the Client API



Graphical Layout (optional)

Not applicable.


Class Diagram and Implementation Details

The Client API is implemented with the following components:

1. Data Broker API. See the next section for the API definitions. Refer to org.eclipse.cosmos.dc.remote.wsdm\src\org\eclipse\cosmos\dc\remote\wsdm\mr2\DataBrokerClient.java

2. Data Manager API. See the next section for the API definitions. Refer to org.eclipse.cosmos.dc.remote.wsdm\src\org\eclipse\cosmos\dc\remote\wsdm\mr2\DataManagerClient.java

3. Utility API. See the next section for the API definitions. Refer to org.eclipse.cosmos.dc.remote.wsdm\src\org\eclipse\cosmos\dc\remote\wsdm\mr2\UtilityClient.java



Class Diagrams (optional)

<This section is only required for features that are introducing APIs that will be leveraged by other components>

The Client API exposes this API for the Data Broker:

moved to http://wiki.eclipse.org/COSMOS_Design_197867


The Client API exposes this API for the Data Managers:

 /**
  * get the Data Manager 
  * 
  * 
  * @param String hostAddress host
  * @param int runtimePort runtime port on the host
  */
 public static WsResourceClient getDataManager( String hostAddress, int runtimePort, String dataManagerName ) throws Exception	
 /**
  * get the Data Manager key family names
  *
  * @param WsResourceClient dataManagerClient
  */
 public static Element getKeyFamilyNames( WsResourceClient dataManagerClient ) throws Exception	
 /**
  * get a Data Manager key family 
  *
  * @param WsResourceClient dataManagerClient
  * @param String keyFamilyName
  */	
 public static Element getKeyFamily( WsResourceClient dataManagerClient, String keyFamilyName ) throws Exception 
 /**
  * get Data Manager key family data 
  *
  * @param WsResourceClient dataManagerClient
  * @param String keyFamilyName
  * @param String query
  */	
 public static Element getKeyFamilyData( WsResourceClient dataManagerClient, String keyFamilyName, String query ) throws Exception 


The Client API exposes this utility API:

 /**
  * get the URI address for a context path on a remote host and port 
  *
  * @param String hostAddress
  * @param String contextPath
  * @param int port
  */  	
 public static URI getURIAddress(String hostAddress, String contextPath, int port) throws UnknownHostException 
 /**
  * get a context client for the remote host and port 
  *
  * @param String hostAddress
  * @param String contextName
  * @param int port
  */  
 public static ContextClient getContextClient( String hostAddress, String contextName, int port ) throws UnknownHostException, Exception

Extension Points (optional)

<This section should only be included if new extension points are being introduced>


<Include any additional topics that will help in completing the implementation>

<Content related to the topic above>



Test Coverage (required)

<Include a description of the unit, functional, and system test cases that will be required to test the overall quality of the feature>

Work in progress


Task Breakdown (required)

<Includes the individual tasks that need to be completed to meet the overall objective of the enhancement. A PERT chart is included to indicate the dependency of each task.>

 1.	Data Broker implementation
 2.	Data Manager implementation
 3.	Utility implementation