Patent ID: 8341114

Claim:
A system for storing data comprising: a processor configured to receive an application request indicating updating a file on a server storage device, and generate, based on the application request indicating updating the file on the server storage device, a command indicating updating the file on a server storage device; and a communications module providing, to the server storage device, the command indicating updating the file on the server storage device, wherein the request indicating updating the file on the server storage device is formatted according to a file storage protocol of a client storage device, wherein the command indicating updating the file on the server storage device is formatted according to a file storage protocol of the server storage device, wherein the command indicating updating the file on the server storage device is not in a format specific to the application generating the application request, wherein, responsive to determining that at the time of the command generation a copy of the file exists on the server storage device at a first server location and at a second server location, and a copy of the file exists on the client storage device at a first client location, then: responsive to determining that a copy of the file exists on the client storage device at a second client location, then the command indicating updating the file on the server storage device comprises a command to store the file on the server storage device at the first server location which comprises overwriting the copy of the file at the first server location and a command to delete the copy of the file on the server storage device at the second server location, and wherein, responsive to determining that at the time of the command generation a copy of the file exists on the server storage device at a second server location and a copy of the file exists on the client storage device at a first client location, then: responsive to determining that a copy of the file exists on the client storage device at a second client location, then the command indicating updating the file on the server storage device comprises a command to move the file on the server storage device from the second server location on the server storage device to the first server location on the server storage device.