Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
COSMOS Design 197870
Contents
- 1 Client API COSMOS DC framework
- 2 Workload Estimation (required)
- 3 Terminologies/Acronyms (required)
- 4 Purpose (required)
- 5 Requirements (required)
- 6 Use Cases (required)
- 7 Graphical Layout (optional)
- 8 Class Diagram and Implementation Details
- 9 Class Diagrams (optional)
- 10 Extension Points (optional)
- 11 Test Coverage (required)
- 12 Task Breakdown (required)
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