r2 - 16 Apr 2003 - 17:58:00 - DaveMorrisYou are here: TWiki >  Astrogrid Web  >  DaveMorris > DaveMorrisIter02Notes
This is my initial summary of the Iteration 02 focus meeting.

Please let me know if this fit with what you have.

If not, then please correct this page and let me know.

Thanks, -- DaveMorris - 16 Apr 2003

Sequence of steps from the users perspective.

  • User visits portal.
  • User login to portal.

Simple password authentication only in iter 02, no certificates.

Simple database of user name and password ?

  • User selects link to data query page.

Portal displays initial select options for type of data.

DataTypeOptions

Intial list of available options can be hard coded for iter02.

Type Wavelength Keywords

  • User selects choices from options.

  • Portal queries Registry for a list of DataSets which match the selected criteria.
See RegistrySchema

DataServiceQuery

Suggest either a query structure :

<query type="DataServiceQuery" user="{AST-user-identifier}">
  <criteria>
    <and>
      <field name="xx" value=""/>
      <field name="xx" value=""/>
      <field name="xx" value=""/>
      <field name="xx" value=""/>
      <or>
        <field name="xx" value=""/>
        <field name="xx" value=""/>
      </or>
    </and>
  </criteria>
</query>

or a template structure :

<query type="DataServiceQuery" user="{AST-user-identifier}">
  <criteria>
    <dataService>
      <wavelengthshort>xxx</wavelengthshort>
      <wavelengthlong>xxx</wavelengthlong>
      <wavelengthrange>xxx</wavelengthrange>
      <sensitivity>xxx</sensitivity>
      <format>VOTABLE</format>
    </dataService>
  </criteria>
</query>

My XML is probably wrong, please correct and let me know.

Would be nice to tie this together with other queries in AstroGrid. Create one AstroGrid query language, or at least a common query structure, with variants for querying the registry, MySace? and the datasets.

  • Registry returns list of details for DataSets which match the criteria.

DataServiceQueryResponse

<results type="DataServiceQueryResponse">
  <dataServiceList>
    <dataService identifier="{AST-service-identifier}">
      <wavelengthshort>xxx</wavelengthshort>
      <wavelengthlong>xxx</wavelengthlong>
      <wavelengthrange>xxx</wavelengthrange>
      <sensitivity>xxx</sensitivity>
      <format>VOTABLE</format>
    </dataService>
    <dataService identifier="{AST-service-identifier}">
      <wavelengthshort>xxx</wavelengthshort>
      <wavelengthlong>xxx</wavelengthlong>
      <wavelengthrange>xxx</wavelengthrange>
      <sensitivity>xxx</sensitivity>
      <format>VOTABLE</format>
    </dataService>
  </dataServiceList>
</results>

  • Portal displays list of DataSets, with multiple selection tools.

  • User selects DataSets they want (multiple choice).

  • Portal queries Registry for lists of available UCD's for the DataSets.

DataServiceFieldQuery

<query type="DataServiceFieldQuery" user="{AST-user-identifier}">
  <dataServiceList>
    <dataService identifier="{AST-service-identifier}"/>
    <dataService identifier="{AST-service-identifier}"/>
    <dataService identifier="{AST-service-identifier}"/>
  </dataServiceList>
</query>

  • Registry returns list of fields (UCDs) for the DataSets (raw data, not concateneted).

DataServiceFieldQueryResponse

<results type="DataServiceFieldQueryResponse">
  <dataService identifier="{AST-service-identifier}">
    <table name="" identifier="{AST-table-identifier}">
      <display-name>xx</display-name>
      <field type="UCD" identifier="{AST-field-identifier}">
        <display-name>xx</display-name>
        <type type="integer">
          <units>xx</units>
          <scale>xx</scale>
          <max>xx</max>
          <min>xx</min>
        </type>
      </field>
      <field type="UCD" identifier="{AST-field-identifier}">
        <display-name>xx</display-name>
        <type type="enum">
          <option ident="XX">
            <display-name>xx</display-name>
          </option>
          <option ident="YY">
            <display-name>yy</display-name>
          </option>
          <option ident="ZZ">
            <display-name>zz</display-name>
          </option>
        </type>
      </field>
    </table>
  </dataService>
  <dataService ident="{AST-service-identifier}">
  ....
  </dataService>
</results>

  • Portal displays list of fields common to all the DataSets (where name AND type (including units and scale) are the same).

  • User selects a field.

  • Portal displays an appropriate editor for the field.

  • User adds the criteria details (e.g. field > 2000).

  • Portal adds the criteria to the query.

  • Repeat to build complex query.

  • User completes building query.

  • Portal builds XML to describe the query.

DatabaseTableQuery

  <!-- Suggested XML syntax for a database table query -->
  <query type="AST-TableQuery">
    <tables>
      <table identifier="{AST-table-identifier}"/>
      <table identifier="{AST-table-identifier}"/>
    </tables>
    <fields>
      <field identifier="{AST-field-identifier}"/>
      <field identifier="{AST-field-identifier}"/>
    </fields>
    <criteria>
      <and>
        <field identifier="{AST-field-identifier}" oper="LESS-THAN"    value="50000"/>
        <field identifier="{AST-field-identifier}" oper="GREATER-THAN" value="20000"/>
      </and>
      <and>
        <or>
          <field identifier="{AST-field-identifier}" oper="NOT-EQUAL" value="##"/>
          <field identifier="{AST-field-identifier}" oper="IS-NULL"/>
        </or>
      </and>
    </criteria>
  </query>

DatabaseConeSearch

  <!-- Suggested XML syntax for a database cone search -->
  <query type="AST-ConeSearch">
    <tables>
      <table identifier="{AST-table-identifier}"/>
      <table identifier="{AST-table-identifier}"/>
    </tables>
    <fields>
      <field identifier="{AST-field-identifier}"/>
      <field identifier="{AST-field-identifier}"/>
    </fields>
    <criteria>
      <cone ra="xxx" dec="yyy" radius="zzz">
    </criteria>
  </query>

  • Portal builds workflow XML to describe the tasks.

TaskWorkflowDescription

<!--+
    | Task to concatenate VOTable data
    | In this example, the task concatenates the VOTable results from three database searches into one VOTable document.
    | The three database queries are nested inside the <inputs> section of the concatenate task.
    +-->
<task type="ConcatenateVOTABLEData" user="{AST-user-identifier}">
  <!-- List of data inputs to concatenate -->
  <inputs>
    <!-- A query to a database service -->
    <task type="Iter02DataQuery" dataset="{AST-service-identifier}" user="{AST-user-identifier}">
      <!-- Suggested XML syntax for a database table query -->
      <query type="AST-TableQuery">
        <tables>
          <table identifier="{AST-table-identifier}"/>
          <table identifier="{AST-table-identifier}"/>
        </tables>
        <fields>
          <field identifier="{AST-field-identifier}"/>
          <field identifier="{AST-field-identifier}"/>
        </fields>
        <criteria>
          <and>
            <field identifier="{AST-field-identifier}" oper="LESS-THAN"    value="50000"/>
            <field identifier="{AST-field-identifier}" oper="GREATER-THAN" value="20000"/>
          </and>
          <and>
            <or>
              <field identifier="{AST-field-identifier}" oper="NOT-EQUAL" value="##"/>
              <field identifier="{AST-field-identifier}" oper="IS-NULL"/>
            </or>
          </and>
        </criteria>
      </query>
    </task>
    <!-- A query to a database service -->
    <task type="Iter02DataQuery" dataset="{AST-service-identifier}" user="{AST-user-identifier}">
      <query type="AST-TableQuery">
        <tables>
          <table identifier="{AST-table-identifier}"/>
          <table identifier="{AST-table-identifier}"/>
        </tables>
        <fields>
          <field identifier="{AST-field-identifier}"/>
          <field identifier="{AST-field-identifier}"/>
        </fields>
        <criteria>
          <and>
            <field identifier="{AST-field-identifier}" oper="LESS-THAN"    value="50000"/>
            <field identifier="{AST-field-identifier}" oper="GREATER-THAN" value="20000"/>
          </and>
          <and>
            <or>
              <field identifier="{AST-field-identifier}" oper="NOT-EQUAL" value="##"/>
              <field identifier="{AST-field-identifier}" oper="IS-NULL"/>
            </or>
          </and>
        </criteria>
      </query>
    </task>
    <!-- A query to a database service -->
    <task type="Iter02DataQuery" dataset="{AST-service-identifier}" user="{AST-user-identifier}">
      <!-- Suggested XML syntax for a database cone search -->
      <query type="AST-ConeSearch">
        <tables>
          <table identifier="{AST-table-identifier}"/>
          <table identifier="{AST-table-identifier}"/>
        </tables>
        <fields>
          <field identifier="{AST-field-identifier}"/>
          <field identifier="{AST-field-identifier}"/>
        </fields>
        <criteria>
          <cone ra="xxx" dec="yyy" radius="zzz">
        </criteria>
      </query>
    </task>
  </inputs>
  <!-- Where to store the results -->
  <output>
    <task type="Iter02DataStore" user="{AST-user-identifier}">
      <!-- Which data repository to store it in -->
      <repository ident="{AST-service-identifier}">
        <!-- Whos MySpace tostore the data under -->
        <user ident="{AST-user-identifier}"/>
        <!-- Where to store the data (optional depends on type of repository -->
        <path>optional/path/internal/to/repository</path>
      </repository>
    </task>
  </output>
</task>

  • Portal send query to JobController?.

  • JobController? performs SubmitJob?

    • Analyse submission details.

    • Generate JobIdentifier?.

    • Return to portal.

    • ....... internal operations to perform the job.

If error returned from JobController?, portal displays details and provides tools to edit job.

If success returned, portal queries JobController? for details of job status.

JobStatusQuery

<query type="JobEnquiry" user="{AST-user-identifier}">
  <job ident="{AST-job-identifier}"/>
</query>

JobStatusQueryResponse

JobController? returns details of job status.
<results type="JobEnquiry">
  <job ident="{AST-job-identifier}">
    <status value="IN-PROGRESS">
      ......
    </status>
  </job>
</results>

When job completes, data is stored in users MySpace (internal to JobController?).

  • Portal queries JobController? for details of job status.

<query type="JobEnquiry" user="{AST-user-identifier}">
  <job ident="{AST-job-identifier}"/>
</query>

  • Portal queries JobController? for details of job status.

JobStatusResultsLocation

This bit is not in the current specifications. However, I figure that since JobController? was the one that stored the data, then it should also be able to tell us where it put it.

JobController? returns details of job status, including reference to location of results.

<results type="JobEnquiry">
  <job ident="{AST-job-identifier}">
    <status value="COMPLETE">
      ......
    </status>
    <results>
      <data-instance ident="{AST-data-instance}">
        <service ident="{AST-service-identifier}"/>
        <location>
          optional internal identifier for the data
        </location>
        <format ident="{AST-data-format}"/>
      </data-instance>
    </results>
  </job>
  </results>

..... not sure about syntax for this one

  • MySpace replies with a list (in a tree of folders and items ?) of all the items in the users MySpace.

..... not sure about syntax for this one

  • Portal displays a tree view of the MySpace items (are MySpace results in tree format).

  • User selects reults from database query task.

  • Data returned from MySpace needs to include something like the following to enable Portal to access the data.

MySpaceDataInstance

<data-instance ident="{AST-data-instance}">
  <!-- Which service to get the data from -->
  <service ident="{AST-service-identifier}"/>
  <!-- What data to request -->
  <identifier>repository service specific identifier for the data</identifier>
  <!-- What the data contains, and what format it is in -->
  <format ident="{AST-data-format}"/>
</data-instance>

In addition, either the repository or the MySpace service, needs to provide something that will resolve into a http url.

  • Portal resolves the data reference into a http url, downloads the results and formats them into HTML for display.


References :

Edit | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r2 < r1 | More topic actions
 
AstroGrid Service Click here for the
AstroGrid Service Web
This is the AstroGrid
Development Wiki
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback