Skip to main content

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.

Jump to: navigation, search

Difference between revisions of "COSMOSQueryInterfaceInitialDesign"

(New page: === Design Requirements === '''Remoteable''' The Query service must be accessible to remote consumers on both java and non-java platforms. '''Introspectable''' The Query service's capabi...)
 
(High Level Structure)
Line 10: Line 10:
  
 
=== High Level Structure ===
 
=== High Level Structure ===
 +
The Query capability is implemented using the following interface:
  
 +
<code><pre>
 +
 +
@ManagedResourceCapability(namespace="http://cosmos.eclipse.org/capabilities/query")
 +
public interface IDataQueryService extends IWireSource, IWireTerminal {
 +
 +
 +
@ManagedOperation(namespace=NAMESPACE_URI)
 +
String[] getSupportedDialects();
 +
 +
@ManagedOperation(namespace=NAMESPACE_URI)
 +
String[] getSupportedResponses();
 +
 +
@ManagedOperation(namespace=NAMESPACE_URI)
 +
boolean supportedQuery(String dialect, String response);
 +
 +
@ManagedOperation(namespace=NAMESPACE_URI)
 +
IDataQueryResult query(String dialect, String response, String queryString) throws Exception;
 +
 +
@ManagedOperation(namespace=NAMESPACE_URI)
 +
IDataQueryResult pageQuery(String dialect, String response, String queryString, int max, int start) throws Exception;
 +
 +
}
 +
</pre></code>
 +
 +
The Query service
  
 
'''Query Capability'''
 
'''Query Capability'''

Revision as of 13:32, 4 April 2007

Design Requirements

Remoteable The Query service must be accessible to remote consumers on both java and non-java platforms.

Introspectable The Query service's capabilities must be discoverable at runtime. Mechanisms must be provide to introspect the service in local and remote environments. The Query service must allow consumers to determine the types of queries that may be specified for the service implementation, the return formats of the service supports, and the valid combinations of query and return formats. Additionally, the Query service must provide a mechanism for determining the scope of the data being queried (for example, the set of machines for which a particular query service exposes log data for).

Decoupled from Implementation The Query service API must not specify any particular underyling data store type or query language. The API must be flexible enough to allow adoptors to easily integrate existing data stores, but must be suitable to encourage de-facto standards and/or standard implementations to emerge.

Optimizable The Query service API must not over-specific to the point of precluding optimizations.


High Level Structure

The Query capability is implemented using the following interface:


@ManagedResourceCapability(namespace="http://cosmos.eclipse.org/capabilities/query")
public interface IDataQueryService extends IWireSource, IWireTerminal {


	@ManagedOperation(namespace=NAMESPACE_URI)
	String[] getSupportedDialects();
	
	@ManagedOperation(namespace=NAMESPACE_URI)
	String[] getSupportedResponses();
	
	@ManagedOperation(namespace=NAMESPACE_URI)
	boolean supportedQuery(String dialect, String response);	
	
	@ManagedOperation(namespace=NAMESPACE_URI)
	IDataQueryResult query(String dialect, String response, String queryString) throws Exception;
	
	@ManagedOperation(namespace=NAMESPACE_URI)
	IDataQueryResult pageQuery(String dialect, String response, String queryString, int max, int start) throws Exception;

}

The Query service

Query Capability

Query Component Type

Query Response Type

Query Assembly

Back to the top