ECHO has been replaced by the Common Metadata Repository (CMR), a high-performance, high-quality, continuously evolving metadata system that catalogs all data and service metadata records for the EOSDIS system and will be the authoritative management system for all EOSDIS metadata.

The information contained within this ECHO wiki is now archived for historical reference. Please navigate to the CMR wiki pages, or to the CMR Overview page on Earthdata.

Invocation Service

The Invocation Service allows ECHO users to request that ECHO invoke an operation on a registered web service implementation enabling the brokering of services. A user specifies the implementation, operation, and parameters to a service, such as Event Notification Service, and ECHO will invoke the requested service.

ECHO tracks the invocations using an Invocation GUID. Requesting an invocation is an asynchronous operation.

Limitations 

The sections below detail current limitations of the invocation service. 

Primitive Type Arguments 

The Invocation Service can only invoke operations that use primitive types (the basic XML schema primitive types such as "string" and "int"). 

String Results 

ECHO returns the results of an invocation as the type "string".

Invocation State 

ECHO stores the state of an invocation using the Status Service and the invocation GUID. The following is a list of the states an invocation can enter:

Table 13: Invocation States

Invocation State

Description

ACCEPTED

The invocation has been accepted by ECHO to be processed.

DELAYED

The invocation has been delayed by the service partner. A status annotation will list the date the invocation has been delayed until.

VALIDATING

ECHO is currently validating the invocation request.

PREPARING_DATA

ECHO is preparing data to perform the invocation.

PERFORMING_SERVICE

ECHO is currently invoking the operation.

PREPARING_RESULTS

The invocation has finished and ECHO is preparing the results of the invocation.

COMPLETE

The invocation is complete and the results are available.

ABORTED

The invocation has been aborted due to error. A status annotation will list the details of the error.

Client Operations 

This text below lists the operations of the Invocation Service that are specifically intended for end users. Other operations for Service Partners, like DelayInvocation and MarkAsynchronous, are detailed in the "Invocation Service Aware Web Services" section on the following page. For more information about Service Partners, refer to the forthcoming ECHO 10.10 Service Partner's Guide

Invoke Operation 

This operation submits a request to invoke an extended service operation. It is an asynchronous method so it returns an Invocation ID, used to track the progress of the invocation.

Arguments 

The operations and parameters on a web service registered in ECHO can be retrieved using the GetOperations method on the Extended Services Service. The web service implementation GUID, operation name, and parameters are sent to this operation. The web service implementation GUID must be the GUID of an activated web service implementation registered in ECHO. The operation name is the name of the operation to invoke on the web service. The number and names of the parameters must be correct. The order of the parameters is not important since the names must be unique. 

ECHO Path URI Parameters 

If you want to use metadata of granules or collections as parameter values when invoking an operation, then you should use ECHO Path URIs. ECHO Path URIs map to the metadata of a granule or collection. If a parameter value is a URI of the correct format, the URI will be resolved and the value retrieved from the metadata will be sent when invoking the web service.

The type retrieved from the metadata must be convertible to the parameter type in the operation; otherwise, the invocation will be aborted. For example if a parameter takes a float and the ECHO Path URI resolves to "ABZ" then invocation will be aborted. See Appendix D, ECHO Path URIs for more information. 

Returned Invocation GUID 

The return value is an invocation GUID used to track the invocation. The invocation GUID is passed into all the other methods of the Invocation Service to specify the invocation to which the user is referring. As the invocation is processed, the status is set using the Status Service. The Transaction GUID used in the Status Service is the same as the Invocation GUID. 

Get Results 

This returns the last state of the invocation and the results if the invocation has completed. The last status will include the current state of the invocation and any annotations to that state. The results will be included if the invocation state is COMPLETE. 

Service Partner Operations 

Service Partners can create web services that are Invocation Service-aware to gain extra abilities and provide more value to end users when being invoked by ECHO. A service called the Invocation Utility Service enables an Invocation Service-aware web service to delay an invocation, add status information on the invocation, or indicate that the web service is asynchronous. 

SOAP Header 

Invocation Service-aware web services know they are being invoked by ECHO because a special SOAP Header is passed in the SOAP request to invoke the operation. The information passed is the invocation GUID and the URL to the Invocation Utility Service. 

SOAP Header Layout 

This lists the major elements of the ECHO invocation SOAP header. The namespace of all these elements is  http://echo.nasa.gov/echotypes.

Table 14: Invocation SOAP Header Elements

Element

Description

EchoInvocation

This presence of this tag indicates this is an invocation by ECHO. It holds all of the information.

invocationId

This contains the invocation GUID that will be used on all the Invocation Utility Service methods.

invocationUtilityUrl

This contains the URL to the Invocation Utility Service.

SOAP Header Example 

This shows an example of what the SOAP header passed during an invocation by ECHO will look like. 

Code Listing 71: Invocation Service SOAP Header Example
<soapenv:Header> 
	<ns1:EchoInvocation 
		soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next" 
		soapenv:mustUnderstand="0" 
		xmlns:ns1="http://echo.nasa.gov/echoTypes"> 
		<ns1:invocationId 
			soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next" 
			soapenv:mustUnderstand="0" 
			xsi:type="soapenc:string" 
			xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"> 
			88A3BDFB-FDA3-4BA6-F3CE-92D052284503 
		</ns1:invocationId> 
		<ns1:invocationUtilityUrl 
			soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next" 
			soapenv:mustUnderstand="0" 
			xsi:type="soapenc:string" 
			xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"> 
			http://localhost:28000/echo_v8/InvocationUtilityService 
		</ns1:invocationUtilityUrl> 
	</ns1:EchoInvocation> 
</soapenv:Header>

Invocation Utility Service 

The Invocation Utility Service offers methods to Invocation-aware web services. 

Delay Invocation 

This operation delays the invocation until the specified date. This is useful if the web service does not currently have the resources available to process the invocation. ECHO will attempt to invoke the web service again at the specified date and time. See the section on Timing Concerns. 

Set Status 

This operation allows Invocation aware web services to provide detailed information to end users. The status string passed will be stored in ECHO under the current state of the invocation, which can be retrieved and viewed by users using the Invocation Service or Status Service. 

Mark Asynchronous 

This operation will mark the web service as being asynchronous. ECHO normally assumes when the operation returns that it is complete but if this operation is called, then the invocation state will stay in PERFORMING_INVOCATION until the web service notifies ECHO that it is complete using the Mark Complete operation. See the Timing Concerns section on timing concerns with this operation. 

Mark Complete 

This operation is used by asynchronous web services to notify ECHO that they are complete. The string results of the web service operation are an argument to this operation. Web services calling this method should have previously called the Mark Asynchronous operation.

Timing Concerns 

When a web service being invoked by ECHO returns, ECHO normally assumes the invocation is complete and immediately marks it that way. If a web service wants to delay the invocation or mark it asynchronous, it must call the Delay Invocation and Mark Asynchronous operations before returning from the original invocation. 

Invocation Sequence Diagrams 

This contains some sequence diagrams showing the steps that happen during a regular and asynchronous invocation. 

Normal Invocation Sequence Diagram

This diagram shows the normal sequence of steps when an invocation occurs.

Figure 19: ECHO Invocation Service Sequence

ECHO Invocation Service Sequence

Asynchronous Invocation Sequence Diagram 

This diagram shows the sequence of steps when an invocation occurs on an asynchronous web service. 

Figure 20: Asynchronous Invocation Sequence

Asynchronous Invocation Sequence

  • No labels