The present application relates generally to direct file transfers between repositories without sending requested files through the requesting device.
When a requesting device is used to browse global storage pools for content and to choose a function to enact such as copying a file from one remote storage pool to another remote storage pool, a user of the requesting device can “drag and drop” the file represented in an index from one storage location to another. This causes the file to be pushed back to the requesting device, which then facilitates the file transfer to the target location. As understood herein, such a transfer method consumes computing resources on the requesting device, including storage and bandwidth.
Accordingly, a device includes a computer processor, a display controlled by the processor, and a computer readable storage medium accessible to the processor and bearing instructions which when executed by the processor to cause the processor to execute a web interface to browse content files on a source repository and a target repository. The repositories are geographically separate from each other. The processor receives a user command to copy or transfer a content file on the source repository to the target repository, and responsive to the command, sends to a controller a message to transfer the content file on the source repository to the target repository. The controller communicates with respective remote agents executing on the source repository and target repository to cause the content file to be transferred or sent directly from the source repository to the target repository without the content file being sent to the requesting device.
In some embodiments the remote agents are attached to content files stored on the repositories. Control messages to effect transfer or copying of the content file are sent from the web interface of the requesting device to the controller module, which may be implemented as a servlet. The controller can be implemented on the requesting device or on another device. Only control information need be exchanged between the web interface of the requesting device and the controller, with the content file to be transferred not being exchanged between the controller and the requesting device.
In another aspect, a method includes, responsive to a command including an address of a target repository from a requesting device to execute a function on a content file implicating a source repository and the target repository, sending a message to a remote agent of the source repository. The message commands the remote agent of the source repository to execute the function on the content file. Also, the message causes the remote agent to open a direct communication path to the target repository, bypassing the requesting device. The function is executed between the source repository and target repository without passing through the requesting device.
In another aspect, a requesting device includes a computer processor, a display controlled by the processor, and a computer readable storage medium accessible to the processor and bearing instructions which when executed by the processor to cause the processor to present on the display a user interface (UI). The UI is configured to enter a command to copy or transfer a file from a source repository to a target repository without the file being communicated to the requesting device.
The details of the present invention, both as to its structure and operation, can best be understood in reference to the accompanying drawings, in which like reference numerals refer to like parts, and in which:
Referring initially to
A source repository 26 that may be implemented by a server or other computing apparatus may include one or more processors 28 accessing one or more storage devices 30 to store content files thereon. The source repository 26 may use one or more computer transceivers 32 to communicate with the Internet 34, with which the requesting device 12 may also communicate.
A target repository 36 that may be implemented by a server or other computing apparatus may include one or more processors 38 accessing one or more storage devices 40 to store content files thereon. The target repository 36 may use one or more computer transceivers 42 to communicate with the Internet 34. The repositories 26, 36 are physically separated from each other and may indeed be physically located on different continents.
Remote agents 46, 48 respectively execute on the source repository 26 and target repository 36. The remote agents 46, 48 may be attached to content files stored on the repositories 26, 36. As discussed further below, files sought by the requesting device 12 to be transferred or copied from the source repository 26 to the target repository 36 are sent directly from the source repository 26 to the target repository 36 as indicated by the line 50, without going through the requesting device 12.
On the other hand, control messages to effect such file transfer or copying are sent from the web interface 44 of the requesting device 12 to a controller module 52, which may be implemented as a servlet. The controller module 52 in turn causes the desired operation to be executed by communicating with the remote agents 46, 48 of the source repository 26 and target repository 36. The controller module 52 may be implemented on a computing device, such as but not limited to one of the computing devices shown in
With the architecture of
Proceeding to block 66, the requesting device 12 initiates a requesting service in its web interface 44 to send the function request (e.g., a copy request) to the controller 52. A service in the controller 52 receives the request at block 68 and relays the request to the remote agent 46 of the source repository 26. Recall that the remote agent 46 may reside on the target file. This request includes information pertaining to the target repository 36. For example, responsive to the user dragging and dropping a file “on” a target repository, the requesting service in the web interface 44 accesses an underlying address of the target repository, including that address in the request to the controller 52, which then forwards the address to the remote agent 46 of the source repository 26.
Moving to block 70, using the information in the request from the controller 52, the remote agent 46 of the source repository 26 initiates the requested function (e.g., file copy or file transfer) and at block 72 opens a direct communication path 50 (
While the particular DIRECT FILE TRANSFER WITHOUT SENDING REQUESTED FILE THROUGH REQUESTING DEVICE is shown and described in detail, it is to be understood that the subject matter which is encompassed by the present invention is limited only by the claims.
This application claims priority to U.S. provisional application Ser. No. 61/621,121, filed Apr. 6, 2012.
Number | Name | Date | Kind |
---|---|---|---|
5870552 | Dozier et al. | Feb 1999 | A |
6457109 | Milillo et al. | Sep 2002 | B1 |
20020059189 | Hanes et al. | May 2002 | A1 |
20030130964 | Hudson | Jul 2003 | A1 |
20040070608 | Saka et al. | Apr 2004 | A1 |
20050138554 | Bell et al. | Jun 2005 | A1 |
20060123406 | Sudhi et al. | Jun 2006 | A1 |
20080027987 | Arora et al. | Jan 2008 | A1 |
20090300522 | Haynes | Dec 2009 | A1 |
20110040728 | Akirav et al. | Feb 2011 | A1 |
20110238450 | Maresh et al. | Sep 2011 | A1 |
20120096172 | Tyukasz et al. | Apr 2012 | A1 |
Entry |
---|
Bryan Ford, Pyda Srisuresh, Dan Kegel, “Peer-to-Peer Communication Across Network Address Translators”, http://arxiv.org/pdf/cs10603074v1.pdf, Mar. 18, 2006. |
Andrew Biggadike, Daniel Ferullo, Geoffrey Wilson, Adrian Perri, “NATBLASTER: Establishing TCP Connections Between Hosts Behind NATs”, https://sparrow.ece.cmu.edu/group/pub/old-pubs/natblaster.pdf SIGCOMM Asia Workshop 2005 Beijing, China. |
Number | Date | Country | |
---|---|---|---|
20130268864 A1 | Oct 2013 | US |
Number | Date | Country | |
---|---|---|---|
61621121 | Apr 2012 | US |