Version 1 (modified by spascoe, 13 years ago) (diff)


Status: Draft


The DeliveryService will provide a mechanism for transfering raw files between NDG services, however at the Use Case level I expect the DeliveryService to deal with CSMLInstances. The following outlines how I expect the DeliveryService will achieve this. Since I have so far been working on the low-level transfer mechanism these use cases are somewhat speculative and open to discussion.

I anticipate that NDG services will want to use the DeliveryService to both expose CSMLInstances already existing on the file system and upload CSMLInstances for exposure to other parties. I therefore suggest a 2 layer interface:

  1. DeliveryService-HTTP provides an interface over HTTP (SOAP or ReST?) to high level functions including:
    1. Register CSMLInstanceURI: Bind a CSMLInstanceURI to an existing CSMLDocument on the DeliveryService's local machine.
    2. Unregister CSMLInstanceURI
    3. Monitor transfer in progress
    4. (Maybe) View CSMLDocument of a CSMLInstanceURI
  2. The DeliveryServices? provides a customised bbFTP interface providing the standard FTP commands: send, retrieve, list, mkdir

Use Cases

A. Command line client downloads CSMLInstance

This is the simplest download use case.

  1. User executes client program passing it a CSMLInstanceURI, username, passphrase and NDGSessionManager URI.
  2. Client contacts NDGSessionManager and retrieves an AttributeCertificate? suitable for the DataProvider referenced in the CSMLInstanceURI.
  3. Client program establishes connection with the DeliveryService-bbFTP server passing it the AttributeCertificate? for authentication.
  4. Client retrieves the CSMLDocument describing the CSMLInstance. (DISCUSS: Alternatively the client could retrieve the CSMLInstance document via the DeliveryService-HTTP interface)
  5. Client parses the CSMLDocument to determine data URI(s).
  6. Client retrieves data referenced by the CSMLDocument.

B. Command line client downloads large CSMLInstance with monitoring

  1. Do A 1-3.
  2. Client retrieves a session URI from the DeliveryService-bbFTP server. This URI points to the DeliveryService-HTTP server.
  3. Client displays session URI to the user.
  4. User points browser at session URI.
  5. Fork
    1. Do A 4-6.
    2. DeliveryService-HTTP displays session status, including download progress.

DISCUSS: If we want to secure the session status information an HTTP-based NDG session would need to be established with the DeliveryService-bbFTP. This might require duplicate sign-on.

C. DataProviderAgent? publishes CSMLInstance

In this use case a DataProviderAgent? is anticipated to be either a tool operated by the user or a service.

  1. DataProviderAgent? contacts the local NDGSessionManager and retrieves the local (i.e. not mapped) AttributeCertificate?.
  2. DataProviderAgent? contacts DeliveryService-HTTP sending the AttributeCertificate? as authentication
  3. DataProviderAgent? instructs DeliveryService-HTTP to bind a CSMLInstanceURI to a local CSMLDocument.

DISCUSS: Does the DataProviderAgent? need to be able to specify the CSMLInstanceURI or should the DeliveryService-HTTP specify it.