Jump to: navigation, search

COSMOS Design 209234

Revision as of 14:54, 13 December 2007 by Sleeloy.ca.ibm.com (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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)

Requirement

Error handling is required between the data visualization components (outputters, ODAs) and data collection components (management domain, brokers and data managers).

Design

Data visualization components interact with the data collection components through end point references (EPRs). Web client classes are created that allow the data visualization outputters and ODAs to send SOAP request to various data collection components. This architecture is illustrated below:

Dv dc interaction.gif

The Web client classes will catch soap faults that will be wrapped as java exceptions. Data visualization components will catch these java exceptions. Depending on the exception the data visualization component will either catch and handle the exception or throw the exception to the URLDelegator class. The URLDelegator will act as the last component that will catch any exception and log the exception to error log files.

Open Issues

  • How will exceptions propagate to the user browser client?
    • Consider creating a specialized exception that will allow service side components to indicate if the exception should be presented to the user. This exception will be received by the URLDelegator class and handled to produce an "error" response that the browser ui widgets will catch and present the error message to the user.
package org.eclipse.cosmos.provisional.dr.ps.common;

public class COSMOSUIUserException extends org.eclipse.cosmos.common.exceptions.CosmosException{

       /** Determine if the message should be prompted with a dialog box*/
	protected boolean promptUser = true;
     
	public COSMOSUIUserException(){
		super();		
	}
	
	public COSMOSUIUserException(boolean promptUser) {
		this();
		this.promptUser = promptUser;
	}

	public COSMOSUIUserException(String message, Throwable cause, boolean promptUser) {
		super(message, cause);
		this.promptUser = promptUser;
	}

	public COSMOSUIUserException(String message, boolean promptUser) {
		super(message);
		this.promptUser = promptUser;
	}

	public COSMOSUIUserException(Throwable cause, boolean promptUser) {
		super(cause);
		this.promptUser = promptUser;
	}
	
}