How to use Data Transfer 2
Data Transfer 2 is one of the subsystems forming the gCube Data_Transfer_Facilities. It aims to provide gCube Applications a common layer for efficient and transparent data transfer towards gCube SmartGear nodes. It's designed as a client service architecture exploiting plugin design pattern. A generic overview and its design are described here
Following sections describe how to use and interact with the involved components.
Contents
Data Transfer Service
The Data Transfer Service is a SmartGears-aware web application developped on top of [| jersey] framework. Its main functionalities are :
- receive and serve data transfer requests;
- expose capabilities;
At startup it gathers information on :
- current network configuration (i.e. exposed hostname, available ports) in order to negotiate transfer channel with clients;
- available data-transfer plugins
Installation
The data transfer service is released as a war with the following maven coordinates
<groupId>org.gcube.data.transfer</groupId> <artifactId>data-transfer-service</artifactId>
It needs to be hosted in a SmartGears installation in order to run. Please refer to SmartGears for further information.
Interface
In this section we will describe the http interfaces exposed by the service.
Capabilities
The Capabilities interface exposes information regarding :
- Instance details (i.e. hostname, port, nodeId)
- Available plugins
- Available persistence Ids
Capabilities are mapped in a Java Object of class org.gcube.data.transfer.model.TransferCapabilities.
Transfer requests
The Requests interface receives transfer requests from clients, returning the associated ticket ID if the requests has been successfully registered. E request is expected to specify :
- The transfer settings decided by the caller client;
- The transfer destination (see [Destination]);
- An optional set of plugin invocations (see [Plugin Invocations])
Transfer requests are mapped in Java Objects of class org.gcube.data.transfer.model.TransferRequest.
Transfer status
The Status interface provides information on the progress of the transfer identified by its related ticket ID. The transfer status provides information about :
- The related transfer request;
- Transfer statistics (i.e. transferredBytes, elapsed Time);
- Destination file absolute location;
- Overall status;
- Error Message if any;