Version 1 (modified by spascoe, 15 years ago) (diff) |
---|
Status: Draft
Introduction
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:
- DeliveryService-HTTP provides an interface over HTTP (SOAP or ReST?) to high level functions including:
- Register CSMLInstanceURI: Bind a CSMLInstanceURI to an existing CSMLDocument on the DeliveryService's local machine.
- Unregister CSMLInstanceURI
- Monitor transfer in progress
- (Maybe) View CSMLDocument of a CSMLInstanceURI
- 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.
- User executes client program passing it a CSMLInstanceURI, username, passphrase and NDGSessionManager URI.
- Client contacts NDGSessionManager and retrieves an AttributeCertificate? suitable for the DataProvider referenced in the CSMLInstanceURI.
- Client program establishes connection with the DeliveryService-bbFTP server passing it the AttributeCertificate? for authentication.
- Client retrieves the CSMLDocument describing the CSMLInstance. (DISCUSS: Alternatively the client could retrieve the CSMLInstance document via the DeliveryService-HTTP interface)
- Client parses the CSMLDocument to determine data URI(s).
- Client retrieves data referenced by the CSMLDocument.
B. Command line client downloads large CSMLInstance with monitoring
- Do A 1-3.
- Client retrieves a session URI from the DeliveryService-bbFTP server. This URI points to the DeliveryService-HTTP server.
- Client displays session URI to the user.
- User points browser at session URI.
- Fork
- Do A 4-6.
- 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.
- DataProviderAgent? contacts the local NDGSessionManager and retrieves the local (i.e. not mapped) AttributeCertificate?.
- DataProviderAgent? contacts DeliveryService-HTTP sending the AttributeCertificate? as authentication
- 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.