Scratch page for working on the VOSpace specification.
Web service operations (cont)
pushDataToVoSpace
Request a URL to send data to a VOSpace node.
This method asks the server for aone or more URLs that the client can use to send data to.
The data transfer is initiated by the client, after it has received the response from the VOSpace service.
The client sends the data and the data is transferred into the target node.
The primary use case for this method is a laptop or desktop client that wants to send some data directly to a VOSpace service.
Parameters
destination : A description of the targetNodeelement for the node into which data is to be imported
TheA validuri attribute is required.
If a Node already exists at the target URI, then the data will be imported into the existing Nodeand the Nodeproperties will be updated with the Properties in the request.If there is no Node at the destination URI, then the service will create a new Node using the uri,xsi:type and properties supplied in the request.(see createNode for details)If the value of vos://null is used then the service will replace it with a service-generated name that is unique and did not previously exist within the space.
If xsi:type is not specified then a node of type vos:Node is implied.The permitted values of xsi:type are: vos:Nodevos:DataNodevos:UnstructuredDataNodevos:StructuredDataNodeIf a parent type is requested, the service can implement a subtype, e.g. a vos:DataNode can be implemented as either a vos:StructuredDataNode or a vos:UnstructuredDataNode
transfer : A transfer element containing detailstemplateoffor the data Transfer
The template for the Transfer should contain details of the View and a list of the Protocols that the client would like to use.The list of Protocols should not contain endpoint addresses, the service will supply the endpoint addresses in the response.The service will ignore any of the requested protocols that it does not understand or is unable to support.
Returns
destination : A node element for the updatedUpdated details of the destinationNode
transfer : A transfer element containingUpdated details of the data Transfer
The service shall chooseselects which of the requested Protocols it is willing to provide and fills in the operational details for each one.
It shall remove those requestedThe service response should not include anyProtocols which it is unable to support.
Faults
The service shall throw an InternalFaultexception if anthe operation fails
The service shall throw a PermissionDeniedexceptionfault if the user does not have permissions to perform the operation
The service will throw anTypeNotSupportedexceptionfault if it does not support theit is unable to create a new Node of the requested node type
The service shall throw anViewNotSupportedexceptionfault if a StructuredDataNode is requested with no Viewelement
The service shall throw a ViewNotSupportedexceptionfault if the service does not support the data format specified in the requestedView
The service shall throw anProtocolNotSupportedexceptionfault if it supports none of the requested transferProtocols
The service shall throw an InvalidURIexceptionfault if the user-supplied URI is invalid.
The service shall throw an InvalidArgumentexceptionfault if one of thea parameter values in a Protocol orthe requestedView is invalid
The service shall throw an InvalidArgumentexceptionfault if a parameter in one of the requested Protocols is invalid
pullDataToVoSpace
Import data into a VOSpace node.
This method asks the server to fetch the data from a remote location.
The data transfer is initiated by the VOSpace service and the response is transferred direct into the target dataNode.
The data source can be another VOSpace service, or a standard HTTP or FTP server.
The primary use case for this method is transferring data from one server or service to another.
Parameters
destination : A description of the targetNodeelement for the node into which data is to be imported
TheA validuri attribute is required.
If a Node already exists at the target URI, then the data will be imported into the existing Nodeand the Nodeproperties will be updated with the Properties in the request.If there is no Node at the destination URI, then the service will create a new Node using the uri,xsi:type and properties supplied in the request.(see createNode for details)if the value of vos://null is used then the service will replace it with a service-generated name that is unique and did not previously exist within the space.If xsi:type is not specified then a node of type Node is implied.The permitted values of xsi:type are: Node, DataNode?, UnstructuredDataNode? and StructuredDataNode?.If a parent type is requested, the service can implement a subtype, e.g. a DataNode? can be implemented as either a StructuredDataNode? or an UnstructuredDataNode?.
transfer : A transfer element containing dDetails of the dataTransfer
The Transfer details should include the View and a list of one or more Protocols with valid endpoint and params for each one.
Returns
destination : A node element for the updatedUpdated details of the destinationNode
Faults
The service shall throw an InternalFaultexception if anthe operation fails
The service shall throw a PermissionDeniedexceptionfault if the user does not have permissions to perform the operation
The service will throw anTypeNotSupportedexceptionfault if it does not support theit is unable to create a new Node of the requested node type
The service shall throw a ViewNotSupportedexceptionfault if the service does not support the data format specified in the requestedView
The service shall throw anProtocolNotSupportedexceptionfault if it supports none of the requested transferProtocols
The service shall throw an InvalidURIexceptionfault if the user-supplied URI is invalid.
The service shall throw an InvalidArgumentexceptionfault if one of thea parameter values in a Protocol orthe requestedView is invalid
The service shall throw an InvalidArgumentexceptionfault if a parameter in one of the requested Protocols is invalid
The service shall throw a TransferFailedexceptionfault if the data transfer does not complete.
The service shall throw an InvalidDataexceptionfault if the data format does not match the format specified in theViewelement
This implies that we are expecting the service to guess the View from the data it receives
The service shall throw an InvalidDataexceptionfault if a StructuredDataNode is request with no Viewelement specified and the service is unable to determine the appropriate data type
Unless there is a really good use case for this, I'd like to require the View specified in the request for both pushDataTo and pullDataTo
The service shall throw anViewNotSupportedexceptionfault if a StructuredDataNode is requested with no Viewelement
Notes
In VOSpace version 1.0, the transfer is synchronous, and the SOAP call does not return until the transfer has been completed.
If the Transfer request contains more than one Protocol then tThe service may failover to use one or more Protocolof the options if the first one faileds.
The service should try each methodProtocol option in turn until one succeeds or all have been tried.
-- DaveMorris - 02 Mar 2007