# Presentation: 276674

## ECHO

**ECHO**

**Data Partner Order Options Issues**
***Alex Lai***
***January 23, 2007***

##  Agenda

**ECHO 9.0 New Features and Changes**
**Data Flow ECHO Order Entry**
**Echo Order Object**
**Background of Order Options**
**Order Options in 9.0: New Features and Changes**
**ECHO 9.0 Responsibilities for Order Options**
**Data Partner Responsibilities for ECHO 9.0 Order Options**
**ECHO Old vs. New Order Options Examples**

## ECHO Order Dataflow

## ECHO Order Object

## Background of Order Options

**Order options are used by providers to specify package options for catalog items**
- The options can be custom per catalog item because:
**The items can be ordered on different media**
**The items can be preprocessed differently**
**The items can be subset differently**
**Providers require different information when accepting an order**

## Order Options in 9.0: New Features and Changes

**ECHO 9.0 uses ECHO Forms to define ECHO order options to replace the old order option framework.  For more information about ECHO 9.0, please refer to **http://testbed.echo.nasa.gov/echo/apis.html
**Two levels of order options:**
- System Level order options shared by providers
- Provider Level order options
**ECHO Allows Data Partners to assign order option to multiple collections**

## ECHO 9.0 Responsibilities for Order Options

**ECHO 9.0 Responsibilities for Order Options**

**ECHO will provide standard System Level Order Options shared by all data providers.  The standard System Level Order Options includes:**
- MediaOrder Option
- Subsetting Option
**BoundingBox Option**
**ECS Subsetting Options**

## Data Partner Responsibilities for ECHO 9.0 Order Options

**Data Partners must define their order options before they can be assigned to catalog items by:**
- Using existing System Level order options without customization
- Using existing System Level order options with customization
- Creating their own order options without using System Level order options

## Data Partner Responsibilities for ECHO 9.0 Order Options

**Data Partners can assign and un-assign the created option definitions to catalog items by using PUMP or the DataManagementService API**
- DataManagementService API AddCatalogItemOptionAssignments RemoveCatalogItemOptionAssignments

## Data Partner Responsibilities for ECHO 9.0 Order Options

**Data Partners can add and remove their own order option definitions with ECHO Forms by using PUMP or the Web Services API **
- DataManagementService: AddCatalogItemOptionDefinitions(...) RemoveCatalogItemOptionDefinitions(...)

## Basic Form Structure

**<form>**
**   ****<model>**
**      ****<instance>**
**           ****<systemoptions>**
**               ****. . .**
**           ****</systemoptions>**
**               ****. . .**
**      ****</instance>**
**   ****</model>**
**   ****<ui>**
**       ****<group>**
**            ****<label>...</label>**
**            ****<select>**
**                     ****<item>...</item>**
**                     ****<item>...</item>**
**                    ...**
**            ****</select>**
**       ****</group>**
**          ****. . .**
**   ****</ui>**
**</form>**
**   **

## Echo Standard Media Options 

## ECHO Old vs New Order Options Example

- _New Order Option_

- _Old Order Option (SystemFormExample.xml)_

- <Option>
-   <ComplexOption>
-     <Name>Media</Name>
-     <OptionCategory>Media Type</OptionCategory>
-     <ComplexOptionType>
-           <CHOICE/>
-     </ComplexOptionType>
-     <Description>Media Order Option</Description>
-     <MinOccurs>1</MinOccurs>
-     <MaxOccurs>1</MaxOccurs>
-     <ComplexOption>
-       <Name>Cdrom</Name>
-       <OptionCategory>Media</OptionCategory>
-       <ComplexOptionType>
-          <STRUCTURE/>
-       </ComplexOptionType>
-       <Description>Compact Disk</Description>
-       <MinOccurs>1</MinOccurs>
-       <MaxOccurs>1</MaxOccurs>

- <form>
-   <model>
-     <instance>
-       <Media>
-           <mediatype/>

## ECHO Old vs New Order Options Example Con’t.

-  <SimpleOption>
-         <Name>DataFormat</Name>
-         <OptionCategory>Media Format</OptionCategory>
-         <Description>Dist Media Format</Description>
-         <MinOccurs>1</MinOccurs>
-         <MaxOccurs>1</MaxOccurs>
-         <Encrypted>False</Encrypted>
-         <PrimitiveTypeName>
-            <String/>
-         </PrimitiveTypeName>
-         <SimpleValids>
-             <ValidPrimitive>RockRidge</ValidPrimitive>
-             <ValidPrimitive>TARFORMAT</ValidPrimitive>
-             <ValidPrimitive>FILEFORMAT</ValidPrimitive>
-             <ValidPrimitive>ISO</ValidPrimitive>
-             <ValidPrimitive>WINZIP</ValidPrimitive>
-         </SimpleValids>
-   </SimpleOption>

- _Old Order Option (SystemFormExample.xml)_

- _New Order Option_

-       <Cdrom>
-             <DataFormat>
-                  <Encrypted>False</Encrypted>
-                  <Value>RockRidge</Value>
-                  <Value>FILEFORMAT</Value>
-                  <Value>TARFORMAT</Value>
-                  <Value>ISO</Value>
-                  <Value>WINZIP</Value>
-               </DataFormat>
-           </Cdrom>

## ECHO Old vs New Order Options Example Con’t.

- </ComplexOption>
-     <ComplexOption>
-        <Name>DLT</Name>
-         ...
-     </ComplexOption>
-     <ComplexOption>
-        <Name>DVD</Name>
-         ...
-     </ComplexOption>
-     <ComplexOption>
-        <Name>FtpPull</Name>
-         ...
-     </ComplexOption>

- _Old Order Option (SystemFormExample.xml)_

- _New Order Option_

-  <DLT>
-             ...
- </DLT>
- <DVD>
-             ...
- </DVD>
- <FtpPull>
-             ...
- </FtpPull>

## ECHO Old vs New Order Options Example Con’t.

-     <ComplexOption>
-        <Name>FtpPush</Name>
-        <MinOccurs>0</MinOccurs>
-        <MaxOccurs>1</MaxOccurs>
-        <SimpleOption>...</SimpleOption>
-             . . .
-        <SimpleOption>
-             <Name>FTPUSER</Name>
-             <Default>anonymous</Defaul>
-                  ...
-       </SimpleOption>
-       <SimpleOption>
-             <Name>FTPHOST</Name>
-                  ...
-             <Name>FTPPASSWORD</Name>
-             <Name>FTPPUSHDEST</Name>
-             <Name>FTPUSER</Name>
-             <Name>FTPPORT</Name>
-             <Name>FTPDIRECTORY</Name>
-               ...
-        </SimpleOption>

- _Old Order Option (SystemFormExample.xml)_

- _New Order Option_

-           <FtpPush>
-             <DataFormat>...</DataFormat>
-             <FTPHOST/>
-             <FTPPASSWORD/>
-             <FTPPUSHDEST/>
-             <FTPUSER>anonymous</FTPUSER>
-             <FTPPORT/>
-             <FTPDIRECTORY/>
-           </FtpPush>
-       </Media>
-     </instance>
-   </model>

## ECHO Old vs New Order Options Example Con’t.

- _Old Order Option (SystemFormExample.xml)_

- _New Order Option_

- <ui>
-      <group>
-          <select>
-              <item>
-                 <label>...</label>
-                   <value>...</value>
-              </item>
-                ...
-          </select>
-      </group>
-      <group>
-         ...
-      </group>
-    </ui>
- </form>

- </ComplexOption>
-   </ComplexOption>
- </Option>

## Provider Level Order Option Example

- <form xmlns = "http://echo.nasa.gov/echoforms/v1"
-     xmlns:xsd = "http://www.w3.org/2001/XMLSchema"
-    targetNamespace = "http://provider.nasa.gov/echoforms/myoptions/v1"
-    xmlns:echo = "http://echo.nasa.gov/echoforms/systemforms/v1">
-   ***<import name = "SystemFormExample.xml" scope = "SYSTEM"/>***
- <model>
-     <instance>
-       <myoptions xmlns = "http:provider.nasa.gov/orderoptions"
-            xmlns:prov = "http:provider.nasa.gov/orderoptions"
-          xmlns:echo = "http://echo.nasa.gov/echoforms/systemforms/v1">
-         <mediatype>
-           <value>FtpPush</value>
-         </mediatype>
-        <DVD>...</DVD>
-        <FtpPull>...</FtpPull>
-         <FtpPush>
-             <FTPUSER/>
-             <FTPPASSWORD/>
-             <FTPHOST/>
-             <FTPPORT>21</FTPPORT>
-             <FTPDIRECTORY/>
-         </FftpPush>
-   </instance>
- </model>

**Provider Level Order Option Example**

- The <import> tag allows to specify and include the System Level ECHO From into its own Provider Level Form.

## Provider Level Order Option Example con’t.

-     <group>
-       <label>Media Options</label>
-       ***<selectref*** idref = "echo:mediaTypeSelect"
-                          ref = "prov:mediatype">
-         <label>Offered Media Delivery Types</label>
-         <item>
-           <value>DVD</value>
-         </item>
-         <item>
-           <value>FtpPull</value>
-         </item>
-         <item>
-           <value>FtpPush</value>
-         </item>
-       ***</selectref>***

**Provider Level Order Option Example con’t.**

- Providers can use <selectref> within <ui> to include the media options they need.
- That way they can restrict any media they do not support.

## Provider Level Order Option Example con’t.

- <controlref idref = "echo:ftpPushGroup"
-               ref = "prov:FtpPush"
-               relevant = "prov:mediatype='FtpPush'">
-         <constraints>
-           <constraint>
***            ******<xpath>prov:FtpPush/echo:port = '21' or prov:FtpPush/echo:port = '1821'</xpath>***
***            ******<alert>We can only do FTP Push to ports 21 and 1821.</alert>***
-           </constraint>
-         </constraints>
-       </controlref>
-     </group>
-  </ui>
- </form>

- Providers can use <xpath> tag to define rule and alert message

## Echo Standard Bounding Box Options 

## Echo Subset OptionsFrom ECS Order Sample 

- Subset Option: AMSR-E/Aqua Daily L3 Global Snow Water Equivalent EASE-Grids

## Questions?