Patent NZ-586681-A (NZ)
Title: File Transfer System
Inventor: BOIARKINE VALENTINE
IPC: H04L1/08
Filed: 2011-07-07
Abstract: A method of transferring one or more files from a sender's computer to a recipient's computer over a network is disclosed. The method comprises the steps of identifying a file on the sender's computer, reading the file and storing chunks of the file in a memory buffer, and sending one or more chunks to the recipient's computer as web service calls. Each chunk is attached to a web service call as a binary attachment and each web service call has a data envelope containing information on the size, position and/or global unique ID of the attached chunk. The method further comprises the steps receiving the one or more chunks at the recipient's computer, opening the envelope of the web service call corresponding to each chunk, and reading the information pertaining to the size, position and/or global unique ID of each attached chunk, and where the chunk(s) have been successfully received by the recipient's computer, sending a message from the recipient's computer to the sender's computer that the transfer of that chunk has been successful and, incrementing the size of the next chunk(s) sent from the sender's computer or where the chunk(s) have not been successfully received after one or more transfer attempts and/or only a part of the chunk has been received by the recipient's computer, sending a message to the sender's computer on the size of the chunk part received. The sender's computer will resend the chunk starting from the point which sending stopped on the previous attempt. The method further comprises decrementing the size of the next chunk(s) sent from the sender's computer, until a chunk is successfully sent to the recipient's computer. Also disclosed is a file transfer system for transferring at least one file between a client computer(s) and a server computer(s) over a network. The file transfer system comprises a client transfer agent running on the client computer and a server transfer service running on the server computer. The client transfer agent sends messages to the server transfer service with the messages being either file upload requests or file download requests. Where a file upload request is sent from the client computer to the server computer the client transfer agent separates a file into one or more chunks and transfers the one or more chunks of the file to the server computer as web service calls. Each chunk is attached to a web service call as a binary attachment and each web service call also having information on the size, position and/or global unique ID of the attached chunk and, the server transfer service receives the web service calls from the client transfer agent, retrieves the chunks of each web service call and assembles the chunks to form an identical copy of the file(s) at the server computer using information on the size, position and/or global unique ID of each chunk, and if a file download request is sent from the client computer to the server computer the server transfer service separates the file into one or more chunks and transfers the one or more chunks of the file to the client computer as web service calls. Each chunk is attached to a web service call as a binary attachment and each web service call also has information on the size, position and/or global unique ID of the attached chunk and, the client transfer agent receives the web service calls from the server transfer service, retrieves the chunks of each web service call and assembles the chunks to form an identical copy of the file(s) at the client computer using information on the size, position and/or global unique ID of each chunk. After the transfer of each web service call, if the attached chunk of the web service call has been successfully transferred, indicating on the client computer that the transfer of the chunk has been successful and, incrementing the size of the next chunk(s) sent, or if the attached chunk of the web service call has not been successfully transferred after one or more transfer attempts and/or only a part of the chunk has been received sending a message to the server computer for the chunk to be transferred again starting from the point which transfer stopped on the previous attempt, decrementing the size of the next chunk(s) sent until a chunk is successfully transferred