WO2002019653A2 - System and method for transferring files - Google Patents

System and method for transferring files Download PDF

Info

Publication number
WO2002019653A2
WO2002019653A2 PCT/US2001/027054 US0127054W WO0219653A2 WO 2002019653 A2 WO2002019653 A2 WO 2002019653A2 US 0127054 W US0127054 W US 0127054W WO 0219653 A2 WO0219653 A2 WO 0219653A2
Authority
WO
WIPO (PCT)
Prior art keywords
file
module
control server
transfer
originator
Prior art date
Application number
PCT/US2001/027054
Other languages
French (fr)
Other versions
WO2002019653A3 (en
Inventor
Robert Lee Caudill, Jr.
Andrew Michael Fregly
Peng Jian
Guogui Ni
David Boyd
Original Assignee
Ikimbo, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ikimbo, Inc. filed Critical Ikimbo, Inc.
Priority to AU2001290591A priority Critical patent/AU2001290591A1/en
Publication of WO2002019653A2 publication Critical patent/WO2002019653A2/en
Publication of WO2002019653A3 publication Critical patent/WO2002019653A3/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Definitions

  • the present invention relates to transferring files across a network, and more specifically, to transferring files from one user to another where control over such transfer may be established at a server.
  • P2P User to user file sharing
  • a P2P system may allow any personal computer with an Internet connection to act as a file server, making files available for other users to retrieve and, when taken as a whole, forming a vast network for real-time distribution of content.
  • the files shared may include documents, music, audio, video, photographs, graphics, images, multimedia, data, databases, or any other information or combinations thereof that users may want to share.
  • a P2P system may allow users direct access to files located with other users. This may eliminate the need for users to access a central location to search for and receive files. Each user in a P2P system acts as a storage device for the files, rather than using one central location. This alleviates the need for the network to provide large amounts of storage for the files users wish to make available, increases the number and variety of files that may be made available, and reduces the demand for bandwidth for users to upload and download the files.
  • a P2P system may suffer drawbacks resulting from the lack of well- developed control mechanisms to manage the data transfers.
  • An example of these drawbacks may include the illegal transfer of files, as intellectual property and other forms of ownership rights of the files and their content may be ignored in a P2P network.
  • P2P file sharing systems may also result in large amounts of bandwidth usage at the end-users' portion of the network, because users making files available will need bandwidth to upload files each time they wish to accommodate a request for a download. Bandwidth usage at a portion of the network not equipped to handle such volume will not only harm that user's network, but may result in degradation of the P2P service as a whole, including slow transfer and lost files.
  • P2P systems may pose a substantial risk of spreading or permitting the spread of computer viruses.
  • files are sent from one person to another, often with little or no security in between.
  • this risk may dissuade users from using a P2P network for transferring files, thereby limiting the usefulness of the P2P system.
  • P2P systems may lack an infrastructure which will permit legitimate business services to be offered.
  • Current technology may fail to provide an infrastructure that is dynamic, scalable, and flexible enough to allow businesses to add value through additional functions at various points in the network.
  • P2P music sharing provides an example of this, since many P2P music sharing systems (Napster, MP3.com, Gnutella) have been unable to capitalize on their popularity by formulating effective, profitable business plans. Businesses may be unable to let consumers choose which value proposition fits their needs, further limiting the ability to create and deliver viable P2P solutions.
  • another system used for transferring and receiving files may involve uploading a file to a conventional server at a central location for storage for later download of the file.
  • a conventional server at a central location may provide efficiencies, as a user only has to access one server to gain access to a plurality of files for down load. Further, an administrator at the central location may be able to exercise control over the conventional server.
  • a drawback associated with a conventional server at a central location is that storage at the central location may prove costly and prohibitive.
  • An additional drawback may occur if a plurality of unrelated, competing conventional servers are available to the user for sharing files. Differences in how the competing conventional servers function to transfer files may inhibit a user's ability and desire to use multiple conventional servers, thereby reducing the files available at a particular conventional server.
  • Another object of the invention is to provide a system and methodology for allowing files to be transferred over a network.
  • Another object of the invention is to provide a system and method for designating a transfer method for transferring one or more files, thereby enabling the use of the appropriate transfer method for a particular file, taking advantage of the strengths of a transfer method when appropriate.
  • a control server for transferring at least one file from an originator module to a download module over a network
  • the control server comprises a directory module for managing a directory of the at least one file, where the receiver module uses the directory module to locate the at least one file, and a manager module for managing the transfer of the at least one file from the originator module to the receiver module based on a request from the receiver module; wherein managing the transfer comprises designating a transfer method according to instructions received at the control server.
  • a further embodiment of the invention may include a system for transferring at least one file over a network which comprises an originator module for initially storing the at least one file for transfer, where the originator module is connected to the network, a receiver module for receiving the at least one file, where the receiver module connected to the network, and a control server for controlling the transfer of the at least one file from the originator module to the receiver module through the network, where the control server is connected to the network and controls the transfer by designating a transfer method according to instructions received at the control server.
  • Figure 1 is a flowchart illustrating a process for transferring files according to an embodiment of the invention.
  • Figure 2 is a flowchart illustrating a process for an end user to post a file according to an embodiment of the invention.
  • Figure 3 is a flowchart illustrating a process for a control server to receive a file according to an embodiment of the invention.
  • Figure 4 is a flowchart illustrating a process for an end user to search for a file according to an embodiment of the invention.
  • Figure 5 is a flowchart illustrating a process for a control server to search for a file according to an embodiment of the invention.
  • Figure 6 is a flowchart illustrating a process for an end user to receive a file according to an embodiment of the invention.
  • Figure 7 is a flowchart illustrating a process for a control server to transmit a file according to an embodiment of the invention.
  • Figure 8 is a schematic representation of a system for file transfer according to an embodiment of the invention.
  • Figure 9 is an example of a graphic user interface for transferring files according to an embodiment of the invention.
  • Figure 10 is a schematic representation of a network system according to an embodiment of the invention. Detailed Description of the Preferred Embodiments
  • the present invention relates to a system and method for transferring files from one end user to another end user. It is understood that the transferring a file may include providing a copy of an existing file to another location, or moving a copy from one location to another.
  • An end user (which may be referred to as an originator end user) may indicate to a control server that one or more files are available for transfer to other end users (which may be referred to as receiver end users).
  • An end user may act as a receiver end user at some times and as an originator end user at other times. Receiver end users may contact the control server to find and receive files from originator end users.
  • the control server may control the manner of transfer of the files, such as direct peer to peer transfer, virtual peer to peer transfer, direct transfer to the control server, HTTP transfer, or other transfer methods. Further, the control administrator may instruct the control server to invoke various functions during the file transfer when appropriate, such as virus check, content check, digital rights management, and/or other functions.
  • Virtual peer to peer file sharing (“NP2P"), as referred to above, involves transferring files through a control server without end users knowledge. Various functions, such as scanning files for viruses and ensuring compliance with digital rights may be performed on the files, based on instructions received at the control server. However, the control server provides no long term storage for the file and transmits the file to the receiver end user in near real-time. Thus, to the originator end users and the receiver end users, a NP2P system looks and acts like a regular P2P system.
  • control server administrator may instruct the control server to perform various functions without the end users being aware the functions are being performed.
  • the control server administrator may instruct the control server to perform virtual peer to peer file transfer with a virus check function.
  • the control server may transfer the files according to these instructions.
  • the end users transmit and receive the files without knowing that these functions are occurring.
  • the originator end user and/or the receiver end user may provide instructions to the control server to control various aspects of the file transfer.
  • the present invention may enable a control administrator to select among file transfer methods based on the nature of the system, the users, or the types of files transferred.
  • the present invention also allows the administrator to apply NP2P transfers so that he may exercise greater control over the P2P transfer process by adding and removing functions via the addition and removal of various plug-in function modules from a control server.
  • a control server administrator may update a system and process of the present invention with appropriate functions while maintaining a seamless appearance to end users of the system.
  • Fig. 1 is a flowchart illustrating an overview for a process for file transfer using a virtual peer-to-peer transfer according to an embodiment of the invention. This process may be illustrated by reference to the systems of Figs. 8 and 10.
  • an end user at originator module 30a accesses control server 20 through network 10. Access may occur through any type of connection to a network, such as through a Connector Provider 110, as described in more detail in Fig. 9 below.
  • originator module 30a informs control server 20 regarding the availability of one or more files located at originator module 30a.
  • originator module 30a indicates that certain files are available for transfer to end users at receiver module 30b (collectively referred to as receiver module 30b).
  • Originator module 30a may indicate criteria for transferring a file.
  • originator module 30a may indicate that only certain files located at originator module 30a are available to other end users.
  • An end user at originator module 30a may also indicate that only certain end users may receive a file. It is understood that an originator module 30a may also function as a receiver module 30b. Other criteria may also be designated.
  • a control server administrator may provide criteria to control server 20 to govern the transfer of one or more files.
  • a control server administrator may designate criteria, such as through activating one or more functions, to instruct control server 20 regarding transferring files.
  • Functions which are described in greater detail below in relation to their associated module, may include, but are not limited to, a temporary storage function, a virus check function, a digital rights management function, a firewall function, a bandwidth management function, a streaming media function, and a statistic tracking function. Other functions may also be used.
  • receiver module 30b requests one or more files.
  • receiver module 30b may request a file by name at directory module 24 of control server 20.
  • receiver module 30b may send a search request for certain types of files, such as a request for photograph files from a certain photographer. Other manners of requesting files may also be used.
  • directory module 24, through control server 20, presents files available for receiver module 30b to receive.
  • Presentation of files may include indicating the name of the file, the contents, the format, the location of the file (e.g., the originator module who has a file, the control server 20 that has the file, etc.) and other information.
  • directory module 24 may search for files based on requests by receiver module 30b.
  • Directory module 24 may present one or more files that meet the request criteria of receiver module 30b, thereby enabling receiver module 30b to choose what file or files to receive. Searching and sorting may be performed in any conventional manner for searching for and sorting files. Other manners for sorting and presenting files may be used.
  • originator module 30b selects one or more files to receive.
  • a selection may be performed by receiver module 30b by using an interface located on a device, such as a requester device 105 described below in Fig. 9.
  • manager module 22, through control server 20, receives one or more selected file(s).
  • manager module 22 receives the file from originator module 30a.
  • a file may be stored in a temporary cache in control server 20, thereby allowing multiple end users to receive a file.
  • control server 20 performs one or more functions on the files received from originator module 30a.
  • Functions may include checking a file for virus, dete ⁇ nining digital rights for a file, or other functions. Functions that may be performed, and their associated modules, are described in greater detail below.
  • Figs. 2 and 3 may be related, such that Fig. 2 illustrates a process for posting a file from the originator module 30a's viewpoint, while Fig. 3 illustrates a process for posting a file from control server 20's viewpoint.
  • Fig. 2 illustrates a process for posting a file for transfer to by other users according to an embodiment of the invention.
  • the transfer method may be by a transfer method indicated in instructions received at control module 20.
  • an end user selects one or more files for posting.
  • Posting a file may vary depending on the file transfer method to be used and may include indicating that a file is available for retrieval by other end users (such as in peer to peer or virtual peer to peer file transfer), storing a file at control server 20 (such as for direct transfer of the file to the control server), or other manner of posting.
  • the originator module 30a selects a transfer method for transferring a file to a receiver module 30b.
  • a control server administrator or a network administrator may provide default settings or limit the transfer methods available for a particular file, originator end user, and/or receiver end user.
  • a transfer method may include using direct peer-to- peer (e.g., the originator module 30a transferring the file directly to receiver module 30b in a traditional peer-to-peer transfer), virtual peer-to-peer file transfer (e.g., the originator module 30a transferring the file through control server 20 to receiver module 30b where neither end user is aware of the control server's role in the file transfer), transferring a URL address which may serve as a pointer to a location on a third party world wide web server where the file is stored, transferring a file directly to control server 20 for storage at control server 20 and later retrieval, or other manners of file transfer.
  • direct peer-to- peer e.g., the originator module 30a transferring the file directly to receiver module 30b in a traditional peer-to-peer transfer
  • virtual peer-to-peer file transfer e.g., the originator module 30a transferring the file through control server 20 to receiver module 30b where neither end user is aware of the control server's role in the file transfer
  • the transferred URL address may provide a link for a user to activate to the URL address (e.g., the user activates the link with a mouse and views the information associated with the URL address on a viewer).
  • the transferred URL address may automatically display the information associated the URL address on a viewer (e.g., a browser). Other manners of transfer may also be used.
  • Metadata for a file may be provided.
  • originator module 30a may provide metadata for a file, such as indicating the format of the file, the contents of the file, a file title, a thumbnail or other sample of the file contents, file size, file date or timestamp, file version information, and other information associated with the file.
  • a metadata identification module 46 may be present at control server 20 for providing metadata for a file.
  • metadata identification module 46 may scan a file and provide the metadata information for that file, thereby eliminating the need for an end user to provide the metadata information. Other methods for providing metadata may also be used.
  • originator module 30a determines whether to transfer a file to control server 20. If a file is not to be transferred to the control server 20, originator module 30a transmits the transfer method and metadata for a particular file to be posted to control server 20, at step 210. If a file is to be transferred, originator module 30a transmits the transfer method, the metadata associated with the file, and the file to control server 20 at step 212. Control server 20 may confirm receipt of a transmission from originator module 30a at step 214. Other manners for posting files for availability for transfer may also be used.
  • Fig. 3 illustrates a process for control server 20 to receive a file and information related to the file according to an embodiment of the invention.
  • control server 20 receives a transfer method, metadata associated with a file, and if applicable for the particular transfer method, an actual file from originator module 30a.
  • a transfer method may include a direct peer-to-peer transfer, a virtual peer-to-peer transfer, a transfer from an originator end user to the control server, or a URL transfer.
  • Some transfer methods may require a file to be transferred to control server 20, while other transfer methods may require a file to stay with originator module 30a.
  • metadata may be provided directly by an originator module 30a or may be automatically provided by a metadata identification module 46 at control server 20.
  • one or more applicable plug-in function modules may be invoked.
  • Whether a plug-in function module is invoked at this step may be determined by instructions from control server administrator module 60, instructions from originator module 30a, receiver module 30b, or instructions from others.
  • Applicable plug-in function modules may include, but are not limited to, a virus check module 28, a metadata identification module 46, a digital rights management module 30, or other types of modules.
  • Various types of plug-in function modules that may be used in connection with the present invention are described in greater detail below in connection with Fig. 8.
  • control server 20 updates a database with the received metadata.
  • control server 20 maintains in directory module 24 a database of files available for transfer to receiver module 30b.
  • the database may include metadata associated with the files, thereby allowing for various search techniques to be employed to retrieve one or more selected files.
  • control server 20 determines whether a file has been received and needs to be stored. If so, the control server stores the file at step 228. Once the file is stored or if no file has been received, control server 20 invokes applicable plug-in function modules at step 230. As described above, the invocation of applicable plug-in modules may be determined by instructions received from a control server administrator using control server administrator module 60 (referred to collectively as control server administrator module 60), originator module 30a, receiver module 30b, or other parties. Applicable plug-in functions modules may include, but are not limited to, statistic tracking module 38, firewall module 32, or other types of modules as described below in connection with Fig. 8.
  • control server 20 may transmit the status of a transmission received from an originator end user.
  • a status may indicate that a transfer method, metadata, and if applicable, one or more files have been received by control server 20 and have been posted for availability to receiver module 30b.
  • Figs. 4 and 5 may be related, such that Fig. 4 illustrates a process for searching from receiver module 30b's viewpoint, while Fig. 5 illustrates a process for searching from control server 20 's viewpoint. Further, the process may be used to search for a posted file, such as a file posted in the processes illustrated in Figs. 2 and 3.
  • Fig. 4 is a flowchart illustrating a process for receiver module 30b to search for a file according to an embodiment of the invention.
  • receiver module 30b collects search criteria. Collectively search criteria may include an end user inputting search criteria into receiver module 30b.
  • receiver module 30b may indicate search criteria for finding certain types of files.
  • Search criteria may include the type of file to receive, the contents of the file, the creator of the content of a file, metadata associated with the file, a file transfer method designated by an originator 30a, or other such criteria.
  • a receiver end user may designate the search criteria indicating the desire to find music files of a song performed by a certain musician, where the files are in a Real-Player format.
  • receiver module 30b may indicate that name as its search criteria.
  • receiver module 30b sends the search criteria to control server 20.
  • control server 20 receives the search criteria from receiver module 30b.
  • search criteria may also include indicating metadata information for a particular file as well as indicating desired transfer method.
  • receiver module 30b may desire to receive a file associated with sailing via a virtual peer-to-peer file transfer method.
  • Other types of search criteria may also be transmitted.
  • the results of a search based on search criteria are presented to receiver module 30b.
  • FIG. 5 is a flowchart illustrating a process for control server 20 to perform a search according to an embodiment at the invention.
  • control server 20 receives search criteria from receiver module 30b.
  • search criteria may include the type of file to be received, the content of a file, the creator of a file, metadata associated with the file, a file transfer method, or other search criteria.
  • control server 20 determines the search mechanism to be invoked.
  • a search mechanism may include invoking a search module which is a plug- in function module to control server 20. Additionally, a search mechanism may involve a third party search engine which is separate and distinct from control server 20.
  • Determining a search mechanism may include using one or more search engines to find a file for a receiver module 30b. Other manners of determining search mechanisms may also be used.
  • the appropriate search modules and/or search mechanisms are invoked. As described above, invoking a search module and/or search mechanism may include invoking a plug-in search module associated with control server 20 and/or invoking one or more search engines which are separate and distinct from control server 20. Other manners of invoking a search module and/or a search mechanism may also be used.
  • Search results are received at control server 20 from the invoked search modules and/or search mechanisms at step 256. According to an embodiment of the invention, control server 20 may sort and arrange the received search results based on instructions from control server administrator module 50 or from receiver module 30b sorting search results. At step 258, the control server sends the results to receiver module 30b.
  • Figs. 6 and 7 may be related, such that Fig. 6 illustrates a process for receiving a file from receiver module 30b's viewpoint, while Fig. 7 illustrates a process for transmitting a file searching from control server 20's viewpoint.
  • the process may be used to transfer a posted file, such as a file posted in the processes illustrated in Figs. 2 and 3, and or a searched for file, such as a file searched for in the processes illustrated in Figs. 4 and 5.
  • Fig. 6 is a flowchart illustrating retrieval of a file by receiver module 30b according to an embodiment of the invention.
  • the receiver module 30 requests one or more files to receive.
  • control server 20 determines whether a file transfer is to occur via direct peer-to-peer transfer between originator module 30a and receiver module 30b. If a direct peer-to-peer file transfer is to be used, receiver module 30b contacts originator module 30a to receive the file directly from originator module 30a at step 274. If direct peer-to-peer file transfer is not to be used, control server 20 determines if a virtual peer-to-peer file transfer is to be used at step 276. If a virtual peer-to-peer file transfer is to be used, receiver module 30b receives the file from originator module 30a via control server 20 at step 278.
  • control server 20 determines if direct file transfer download from control server 20 is to be used at step 280. If a direct file transfer download from control server 20 is to be used, receiver module 30b pulls file from control server 20 at step 282. If a direct file fransfer download from control server 20 is not used, a determination is made if a transfer of a URL address is to occur at step 284. If a URL address transfer is to occur, the receiver module may make a request to receive a file via hypertext transfer protocol (http) from a web site or web server at step 286. If a URL location transfer is not to occur, another transfer mechanism occurs at step 288 and the appropriate transfer functions occur at step 290.
  • https hypertext transfer protocol
  • control server 20 determines whether or not to log the file transfer information to control server 20 at step 292. If the file transfer is to be logged, control server 20 logs the file transfer to an appropriate portion of control server 20 such as to a statistics tracking module 38. Once the file transfer has been logged or, if no file transfer is to be logged, receiver module 30b receives the file at step 296. Other manners for transferring a file may also be used.
  • FIG. 7 is a flowchart illustrating a process for control server 20 to retrieve and transmit files according to an embodiment of the invention.
  • control server 20 receives a file retrieval request from receiver module 30b.
  • Control server 20 invokes any applicable pre-retrieval plug-in function modules at step 302.
  • a plug-in function module invoked at the pre- retrieval portion of the process may be designated by a control server administrator module 60, originator module 30a, receiver module 30b, and/or a third party as illustrated above and as will described below in greater detail in connection with Fig. 8.
  • Plug-in function modules may include, but are not limited to, a virus check module 28, a digital rights management module 30, content module 50, or other types of modules.
  • control server 20 initiates the transfer of a file to receiver module
  • the manner of transferring the file may include a direct peer-to-peer file transfer, a virtual peer-to-peer file transfer, a download from a storage area within control server 20 to receiving module 30b, a fransfer of a URL address, or other type of file transfer.
  • control server 20 invokes post-retrieval plug-in function modules as applicable.
  • a file transfer system 2 for content distribution which may be based on a virtual P2P file transfer system.
  • a virtual P2P file transfer system may involve a control server 20, including manager module 22 and directory module 24 for providing the distribution mechanism. Additional modules may be added to provided additional functions to file transfer system 2. Additional modules are described below in greater detail. End users may be provided with the benefits of file transfer, and businesses may be provided with the ability to build services on top of file transfer system 2 to address file transfer issues related to bandwidth, copyright, and virus protection.
  • File transfer system 2 includes a network 10, control server 20, which may further comprise various plug-in function modules, originator module 30a, receiver module 30b, and control server administrator 60. It is understood that an end user may switch between acting as an originator module 30a and a receiver module 30 at various times, such as when an end user posts one file and searches for another file.
  • Control server 20 may comprise a plurality of plug-in function modules for facilitating the transfer of one or more files over a network and providing additional functions. Each module may be integral with central server 20, separate from control server 20, separate from each other, or integrated with one or more plug-in function modules.
  • Directory module 24 may be responsible for managing the directory of files across a file transfer network.
  • the directory may include metadata that can be used in a search, thereby allowing users to browse and search the network.
  • search directory module 24 may be searched for all files related to a particular musician.
  • Directory module 24 may search the metadata for the particular musician, and may present files associated with the musician.
  • Manager module 22 may manage the distribution of files across a network 10. Distribution may include direct file transfer between end users, such as between originator module 30a and receiver module 30b.
  • a direct P2P file transfer system may be a subset of file transfer system 2.
  • the benefits of a direct P2P transfer between end user computers may be alternatively provided in file transfer system 2 through a virtual file transfer based on the distribution rules.
  • originator module 30a does not have to manually upload files to control server 20.
  • Originator module 30a may designate what file to share, and control server 20 controls updating directory module 24.
  • a receiver end user is unaware of a file's physical location. This configuration may permit external users to access folders with files. Further, hiding the physical location of files from receiver end users may provide new opportunities to manage the distribution of the files.
  • Manager module 22 may become the content distribution platform.
  • a control server administrator may be a user using control server administrator module 60 (collectively referred to as "control server administrator module 60").
  • Control server administrator module 60 may provide information to control server 20 regarding the transfer of files through file transfer system 2.
  • Information may include designating functions, settings, and/or toggles, and adding or deleting functions at either the control server 20 or an end user, such as originator module 30a or receiver module 30b, or other information.
  • control server administrator module 60 may designate to various file transfer methods, such as disabling or enabling a particular file transfer method, or may set a particular file transfer method as a default for all transfers or other types of configurations.
  • control server administrator module 60 may add or remove plug-in function modules located at either control server 20, originator module 30a and/or receiver module 30b.
  • control server administrator module 60 may designate to various functions and options within the plug-in function modules.
  • control server administrator module 60 may designate that for a particular originator module 30a, only certain plug-in function modules will be enabled while other plug-in function modules are disabled.
  • control server administrator module 60 may provide other plug-in function modules for an originator module 30a to control. Other combinations of designations options defaults, toggle settings, functions and other information may also be used. According to an embodiment of the invention, control server administrator module 60 may work within an organized hierarchy for controlling file transfer system 2. In such a hierarchy, control server administrator module 60 may designate the operability of certain functions to others within a group thereby permitting one or more end users within the group to decide whether or not a particular plug-in function module is invoked for members of that group. Other manners for delegating responsibility within a hierarchy may also be used.
  • a network may contain various groups or communities which share files.
  • a corporation may have a network, where various departments within the corporation are separate groups. Members of each department may share files among members of that department, as well as among different departments within the corporation.
  • each department may have a control server administrator to administer control server functions for file transfers among members of that particular department.
  • the network may have default settings that instruct control server functions within the entire network of the corporation and/or for various departments.
  • default settings for a network may indicate that the preferred method of file transfer is regular peer to peer, while the next preferred method is virtual peer to peer.
  • the control server may determine the transfer capabilities of the originator module and based on the transfer capabilities, indicate how a file is transferred. If the originator module is able to directly transfer the file to the receiver module, the control server may instruct that the file be transferred directly from the originator module to the receiver module. If the originator module is unable to directly transfer the file to the receiver module, the control server may instruct that the file be transferred through the control server to the receiver module, using a virtual peer to peer file transfer method. Other default settings may also be used. Default settings may be similar to control server administrator instructions in that default settings may instruct that one or more functions be performed on a file during transfer, such as by the control server. Default settings may be indicated when the system of the present invention is first installed. Alternatively, the network administrator may designate the default settings.
  • control server administrators may be permitted to override the default instructions.
  • a network administrator may indicate the default settings for the network (e.g., all internal file transfers are scanned for virus infections), but allow each department's control server administrator to override the default settings.
  • the sales department may decide not to set new default settings (e.g., continue to scan all internal file transfers for virus infections), while the engineering department may decide to change the default settings (e.g., scan only external file transfers for virus infections). Other manners of using default settings may also be used.
  • Various plug-in function modules will now be described in greater detail below.
  • Control server 20 may be used to create an abstraction layer, tuning a "direct" file transfer into a "virtual" P2P file transfer.
  • File transfer system 2 may be a modular system that supports various other functions, such as through plug-in function modules.
  • Plug-in function modules may include a storage/caching module 26, a virus check module 28, a digital rights management (“DRM") module 30, a firewall module 32, a bandwidth management module 34, a streaming media module 36, a statistic module 38, file version control module 40, archive module 42, compression module 44, metadata identification module 46, search module 48, content module 50 or other modules.
  • Manager module 22 may enable heavy file transfer loads to be shifted to control server 20 portion of the network such as where the manager module 22 resides.
  • This portion of network 10 may be designed to handle a heavy load, so such a heavy load may be desirable as a sign that the service is popular. And as the usage grows, manager module 22 and/or control server 20, as well as any other plug-in function module(s), may be replicated to handle the load.
  • Storage/caching module 26 may allow manager module 22 to store or cache files based on the distribution rules. According to an embodiment of the invention, storage/caching module 26 may temporarily store one or more files received from an originating end user 30a. Based on distribution rules, appropriate files may be transferred to a receiving end user 30b. Storage/cache module 26 may help reduce bandwidth use, especially at originator module 30a and by permitting one file transfer to storage/cache module 26 to provide multiple file transfers to receiver modules 30b.
  • Virus check module 28 may allow manager module 22 to perform a virus check for potentially dangerous viruses located on or within transferred files. When handling all file transfers, control server 20 may use virus check module 28 to scan some or all files, thereby reducing the chance of an end user being infected by a computer virus. Control server administrator module 60 may designate that only certain files should be checked, such as files transferred outside a particular group. Virus checks may be made based on a set of business rules.
  • Digital rights management (DRM) module 30 may allow for authorization of a file transfer based on digital rights.
  • DRM module 30 may be used to regulate copying and transferring of files protected by copyright.
  • one musician may permit the free transfer of a music file embodying that musician's work. Under such conditions, DRM module 30 would let any receiver module 30b receive the file.
  • another musician may permit only authorized end users to download a music file embodying that musician's work. Under such conditions, DRM module 30 would let .only authorized receiver modules 30b receive the file.
  • DRM module 30 may review all files transferred through to file transfer system 2 to ensure that only the appropriate or authorized end users are receiving the file.
  • DRM module 30 may work with a digital signature.
  • a content owner may first encode the file with the usage rules, such as price. The encoded file may then be distributed anywhere, because only authorized applications would be permitted to use it. A clearing house may also be used to ensure that the rules are followed.
  • Firewall module 32 may enable control server module 20 to transfer a file when end users are behind firewalls. By way of example, control server 20, through firewall module 32, may establish a relationship with an end user, thus allowing a file transfer through a firewall.
  • Bandwidth management module 34 may allow control server 20 to monitor bandwidth usage, and shift portions of the bandwidth load from the end users' portion of the network into control server 20's portion of the network, or other portions of the network as appropriate, which may be designed to handle the load.
  • Streaming media module 36 may permit control server 20 to host streaming media tools for automatic translation of media files and down sampling. According to an embodiment of the invention, streaming media module 36 may permit the use of other modules (e.g., DRM module 30, virus check module 32, etc.) with streaming media content.
  • modules e.g., DRM module 30, virus check module 32, etc.
  • Statistics tracking module 38 may enable control server 20 to provide the statistics regarding files that are transferred. Statistics may include what files are transferred, where files are transferred to, how many users visit a directory module 24, or other tabulations. Statistics may be used for various entities, such as network provides, content owners, end-users, and various value-added service providers.
  • File version control module 40 may enable control server 20 to control what version of a file, such as a document, is sent to receiver module 30b.
  • control server administrator 60 may instruct file version control module 40 that the most recent version of a file is the default for file transfer.
  • originator module 30a does not designate the version of a file to be posted, control server 20, through file version control module 40, will post the most up-to-date version of the file.
  • Other manners for controlling file versions may also be used.
  • Archive module 42 may provide backup for all files transferred by control server 20. By providing a backup, archive module 42 may ensure that each file is successfully transferred to the proper receiver module 30b. If a file transfer is incomplete, interrupted or does not occur properly, control server 20 may access archive module 42 to retrieve the file and properly transfer it to receiver module 30b.
  • Compression module 44 may enable control server 20 to compress a file for transfer to receiver module 30b. Compression of a file may further reduce bandwidth transmission issues and the time necessary for a file to be received. Compression of a file may also reduce storage needs. Compression module 44 may use various type of compression of a file, including a zip process, as well as batch processing, queuing a file for transfer, and scheduling transfers of multiple files, thereby optimizing file transfer over a network. Metadata identification module 46, as described above, may provide for automatic identification of metadata associated with a particular file. Metadata may include the name of the file, the type of file, the content of a file, the author of a file, the author of the content of a file, and other metadata information. According to an embodiment of the invention, metadata identification module 46 may review a file received from originator module 30a and provide the metadata information for that file.
  • Search module 48 may be used for searching for a particular file for a receiver module 30b. Further, search module 48 may enable control server 20 to access search mechanisms apart from control server 20, such as search engines located on other servers. Generally, using search module 48, receiver module 30b may search for files which may have been posted by originator modules 30a. Control server 20, through search module 48, may present receiver module 30b with one or more files which correspond to search criteria received from receiver module 30b.
  • Content module 50 may ensure the accuracy and content of a file received from originator module 30a.
  • control server 20 through content module 50 may examine the content of a file received from receiver module 30a.
  • Content module 50 may ensure that the content has been accurately described by originator module 30a and that this content is consistent with the type of content requested by receiver module 30b.
  • file transfer system 2 may include one or more of the above-described modules or none of the modules.
  • control server administrator module 60 may activate or deactivate any number of these plug in function modules for functioning with control server 20. Plug-in function modules as described above, may enable control server administrator module 60 to add or delete functions a particular file transfer system, thereby customizing the functions for a file transfer system 2.
  • a plug-in aspect of the plug in function modules may enable control server administrator module 60 to easily add or delete plug-in function modules to and from file transfer system 2 without affecting other plug-in function modules or control server 20.
  • This plug-in aspect may enable easier use of a file transfer system, as well as other advantages with other plug-in function modules which may also be apparent.
  • Function modules may also be added in a non-plug-in format.
  • a system according to an embodiment of the present invention may include a control server having a plurality of function modules for performing functions on one or more files that are transferred.
  • the function modules may operate independently of one another to perform synchronous oc asynchronous functions on a file.
  • the function modules may operate dependently with each other to perform a function(s) on a file and/or the data in the file. Other embodiments may also be used.
  • FIG. 9 is an example of a graphic user interface 200 for receiver module 30b to receive a file according to an embodiment of the invention.
  • Graphic user interface 200 may comprise a tool bar 202, with standard toolbar functions, such as print, copy, cut, paste, stop, home, back, and other functions typically associated with standard browser software applications.
  • standard toolbar functions such as print, copy, cut, paste, stop, home, back, and other functions typically associated with standard browser software applications.
  • the toolbar functions described herein and illustrated in Fig. 9 are merely illustrative and are not in any manner limiting.
  • Graphic user interface 200 may comprise a display window 204 for display results of various functions.
  • originator module 30a posts a file to control server 20 for other users to receive
  • receiver module 30b generates a search request for control server 20 to search for one or more files.
  • Searching for one or more files may include viewing metadata, such as the thumbnail images, for each file, such as viewing a list of files.
  • receiver module 30b may perform a search inquiry with directory module 24 to find a photo file.
  • Control server 20 uses window display 204 of graphic user interface 200 to display to receiver module 30b the results of the search request.
  • a search request may include a request for photographs with "Greg" as the creator.
  • three files 206 are displayed in window display 204, as shown in Fig. 9.
  • Graphic user interface 200 further displays metadata 208 associated with each file.
  • metadata 208 may be a variety of information associated with the file.
  • metadata includes a thumbnail picture representation of the photograph file, the title of the file, the date the file was created, the name of the creator, the size of the file, and other metadata.
  • originator or receiver module 30a or 30b or metadata identification module 46 may contain one or more functions that may convert a photograph file, such as a full BMP, JPEG and PNG files, or other photograph file format, into a smaller, thumbnail images. These images may be displayed to receiver module 30b, as illustrated in graphic user interface 200, or may be added to an image list made available on control server 20, such as through directory module 24, for search by receiver module 30b.
  • receiver module 30b may select a file.
  • receiver module 30b may select a file and display a menu 210.
  • menu 210 may be displayed by using the right button on a mouse. Other manners for displaying menu 210 may also be used.
  • Menu 210 may enable a user to determine how files are presented (e.g., viewing icons, thumbnails, details, lists, etc.), find files (e.g., search for files), refresh the view, or other functions.
  • receiver module 30b may transfer the file, such as by activating the save as function.
  • Receiver module 30b may receive the file using a transfer method designated by control server 20.
  • the transfer method e.g., peer to peer, virtual peer to peer, file upload and download, etc.
  • Receiving a file may include first determining if the file is available for traditional download on control server 20.
  • receiver module 30b may receive the photo file and launch it to an appropriate viewer. If the photo file is not on control server 20, receiver module may be told the photo file may be accessed by a virtual peer-to-peer connection to originator module 30a (such as through control server 20), a direct peer-to-peer transfer from originator module 30a, or download from a web server at a specified URL address. Other manners of transferring photographic files may also be used.
  • Figure 10 illustrates a System 100 according to an embodiment of the present invention. Various personnel involved in identifying and prioritizing strategic initiatives may use System 100 to interact, such as by gathering information, creating schedules, enabling tools to be accessed by other personnel, and other portions of the process.
  • System 100 comprises multiple requester devices 105 (or "computers") used by requesters to connect to Network 102 through multiple Connector Providers (CPs) 110.
  • Network 102 may be any network that permits multiple requesters or computers to connect and interact.
  • Network 102 may be comprised of a dedicated line to connect requester, such as the Internet, an intranet, a local area network (LAN), a wide area network (EVAN), a wireless network, or other type of network.
  • CP 110 may be a provider that connects the requesters to the network 302.
  • CP 110 may be an internet service provider (ISP), a dial-up access means, such as a modem, or other manner of connecting to network 102.
  • ISP internet service provider
  • dial-up access means such as a modem, or other manner of connecting to network 102.
  • requester devices 105a - 105d may each make use of any device (e.g., computer, wireless telephone, personal digital assistant, etc.) capable of accessing Network 102 through CP 110. Alternatively, some or all of requester devices 105a - 105d may access Network 102 through a direct connection, such as a TI line, or similar connection.
  • Fig. 3 shows four requester devices 105a - 105d, each having a connection to Network 102 through a CP 110a and 110b.
  • Requester devices 105a-105d may each make use of a personal computer such as a computer located in the requester's home, or may use other devices which allow the requester to access and interact with others on Network 102.
  • Central controller module 112 may also have a connection to Network 102 as described above. Central controller module 112 may communicate with one or more data storage modules 114, the latter being discussed in more detail below.
  • Each computer 105a-105d used by requesters may contain a processor module 104, a display module 108, and a user interface module 106. Each computer 105a-105d may have at least one user interface module 106 for interacting and controlling the computer.
  • the user interface module 106 may be comprised of one or more of a keyboard, joystick, touchpad, mouse, scanner or any similar device or combination of devices.
  • Each of the computers 105a-105d used by requesters may also include a display module 108, such as a CRT display or other device.
  • System 100 further includes a central controller module 112. Central controller module 112 may maintain a connection to Network 102 such as through transmitter module 118 and receiver module 120.
  • Transmitter module 118 and receiver module 120 may be comprised of conventional devices which enable central controller module 112 to interact with Network 102.
  • transmitter module 118 and receiver module 120 may be integral with central controller module 112.
  • the connection to Network 102 by central controller module 112 and computers 105 may be a high speed, large bandwidth connection, such as a though Tl or T3 line, a cable connection, a telephone line connection, DSL connection, or other type connection.
  • Central controller module 112 functions to permit requester's devices 105a-105d to interact with each other in connection with various applications, messaging services and other services which may be provided through System 100.
  • Central controller module 112 may perform various calculations, such as calculating a strength model, or determining a rating for a strategic initiative.
  • Central controller module 112 preferably comprises either a single server computer or a plurality of multiple server computers configured to appear to clients 105 as a single resource.
  • Central controller module 112 communicates with a number of data storage modules 114.
  • Each data storage module 114 stores various information associated with a control server administrator, a receiver module, an originator module, received instructions, files or other information.
  • any data storage module 114 may be located on one or more data storage devices, where the data storage devices are combined or separate from central controller module 112.
  • Processor module 116 performs the various processing functions required in the practice of the process taught by the present invention, such as performing the search of a directory, generating the search results, generating a message to be sent and displayed for the requester, and other similar processing functions.
  • Processor module 116 may be comprised of a standard processor, such as a central processing unit (CPU), which is capable of processing the information in the necessary manner.
  • CPU central processing unit
  • system 100 of Fig. 3 discloses a computer 105 connected to Network 102
  • a personal digital assistant PDA
  • a mobile telephone a mobile telephone, a television, or other device that permits access to Network 102 may be used to arrive at the system of the present invention.
  • PDA personal digital assistant
  • a computer-usable and writeable medium having a plurality of computer readable program code stored therein may be provided for practicing the method of the present invention.
  • the computer-usable medium may comprise a CD ROM, a floppy disk, a hard disk, or any other computer-usable medium.
  • One or more of the components of the system may comprise computer readable program code in the form of functional instructions stored in the computer-usable medium, such that when the computer-usable medium is installed on a computer system, those components cause the computer system to perform the functions described.
  • central controller module 112, data storage 114, processor module, 116, receiver module 118, transmitter module 120, control server 20, manager module 22, directory module 24, storage/caching module 35, virus check module 40, DRM module 45, firewall module 50, bandwidth management module 55, streaming media module 60, and statistic tracking module 65 may comprise computer- readable code that, when installed on a computer, perform the functions described above. Also, only some of the components may be provided in computer-readable code. According to one specific embodiment of the present invention, the system may operate on a network and may be connected to other systems sharing a common database. Other hardware arrangements may also be used.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

A system and process for managing file transfer over a network (10) between upload modules (30A) and download modules (30B) is described. A control server (20) comprises a plurality of function modules (22 TO 50) for managing the transfer of files. Further, other function modules may perform additional functions on the files or the data in the files, where the function modules may act dependently with one another, or independently from one another to perform synchronous or asynchronous functions. The system and process may allow administrators or users to designate the functions and methods for transferring files based on the file, the end user and/or other criteria. Administrators or users may designate one of several file transfer methods, such as peer to peer without control server, peer to peer with control server, HTTP transfer, client-server transfer or other transfer methods. Designating a file transfer method enables the use of the appropriate transfer method for a particular file to take advantage of the strengths of a transfer method when appropriate.

Description

SYSTEM AND METHOD FOR TRANSFERRING FILES
Field of the Invention
The present invention relates to transferring files across a network, and more specifically, to transferring files from one user to another where control over such transfer may be established at a server.
Background of the Invention
User to user file sharing (also referred to as person to person, peer to peer or "P2P") has been available for many years but has rapidly increased in popularity since the introduction of file sharing programs and systems, such as Napster or Scour. A P2P system may allow any personal computer with an Internet connection to act as a file server, making files available for other users to retrieve and, when taken as a whole, forming a vast network for real-time distribution of content. The files shared may include documents, music, audio, video, photographs, graphics, images, multimedia, data, databases, or any other information or combinations thereof that users may want to share.
A P2P system may allow users direct access to files located with other users. This may eliminate the need for users to access a central location to search for and receive files. Each user in a P2P system acts as a storage device for the files, rather than using one central location. This alleviates the need for the network to provide large amounts of storage for the files users wish to make available, increases the number and variety of files that may be made available, and reduces the demand for bandwidth for users to upload and download the files.
A P2P system, however, may suffer drawbacks resulting from the lack of well- developed control mechanisms to manage the data transfers. An example of these drawbacks may include the illegal transfer of files, as intellectual property and other forms of ownership rights of the files and their content may be ignored in a P2P network. P2P file sharing systems may also result in large amounts of bandwidth usage at the end-users' portion of the network, because users making files available will need bandwidth to upload files each time they wish to accommodate a request for a download. Bandwidth usage at a portion of the network not equipped to handle such volume will not only harm that user's network, but may result in degradation of the P2P service as a whole, including slow transfer and lost files.
Another drawback of current P2P systems is that they may pose a substantial risk of spreading or permitting the spread of computer viruses. In P2P systems, files are sent from one person to another, often with little or no security in between. For example, there have been well-known instances of files sent between end users as attachments to emails that have caused widespread destruction and costs to corporate and public networks and user machines. Similar damage could result from file transfers using P2P systems. Moreover, this risk may dissuade users from using a P2P network for transferring files, thereby limiting the usefulness of the P2P system.
A further drawback with P2P systems is that they may lack an infrastructure which will permit legitimate business services to be offered. Current technology may fail to provide an infrastructure that is dynamic, scalable, and flexible enough to allow businesses to add value through additional functions at various points in the network. P2P music sharing provides an example of this, since many P2P music sharing systems (Napster, MP3.com, Gnutella) have been unable to capitalize on their popularity by formulating effective, profitable business plans. Businesses may be unable to let consumers choose which value proposition fits their needs, further limiting the ability to create and deliver viable P2P solutions.
As referred to above, another system used for transferring and receiving files may involve uploading a file to a conventional server at a central location for storage for later download of the file. A conventional server at a central location may provide efficiencies, as a user only has to access one server to gain access to a plurality of files for down load. Further, an administrator at the central location may be able to exercise control over the conventional server.
A drawback associated with a conventional server at a central location is that storage at the central location may prove costly and prohibitive. An additional drawback may occur if a plurality of unrelated, competing conventional servers are available to the user for sharing files. Differences in how the competing conventional servers function to transfer files may inhibit a user's ability and desire to use multiple conventional servers, thereby reducing the files available at a particular conventional server.
Present file transfer systems suffer from the drawback of being too restricted, in that theses systems are limited to a particular file transfer method. These systems provide no option for a user or administrator to use different types of file transfer methods' within the same system.
These and other drawbacks may be present.
Summary of the Invention It is therefore an object of the present invention to overcome these and other drawbacks in existing systems and methods.
Another object of the invention is to provide a system and methodology for allowing files to be transferred over a network.
Another object of the invention is to provide a system and method for designating a transfer method for transferring one or more files, thereby enabling the use of the appropriate transfer method for a particular file, taking advantage of the strengths of a transfer method when appropriate.
Additional objects and advantages of the invention will be set forth in part in the description, or may be learned by practice of the invention. The objects and advantages of the invention may be realized and attained by means of instrumentalities and combinations particularly pointed out in the appended claims.
To achieve these objects and in accordance with the purpose of the invention, as embodied and broadly described herein, a control server for transferring at least one file from an originator module to a download module over a network is provided, where the control server comprises a directory module for managing a directory of the at least one file, where the receiver module uses the directory module to locate the at least one file, and a manager module for managing the transfer of the at least one file from the originator module to the receiver module based on a request from the receiver module; wherein managing the transfer comprises designating a transfer method according to instructions received at the control server.
A further embodiment of the invention may include a system for transferring at least one file over a network which comprises an originator module for initially storing the at least one file for transfer, where the originator module is connected to the network, a receiver module for receiving the at least one file, where the receiver module connected to the network, and a control server for controlling the transfer of the at least one file from the originator module to the receiver module through the network, where the control server is connected to the network and controls the transfer by designating a transfer method according to instructions received at the control server.
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate an embodiment of the invention and, together with the description, serve to explain the principles of the invention.
Brief Description of the Drawings
Figure 1 is a flowchart illustrating a process for transferring files according to an embodiment of the invention.
Figure 2 is a flowchart illustrating a process for an end user to post a file according to an embodiment of the invention.
Figure 3 is a flowchart illustrating a process for a control server to receive a file according to an embodiment of the invention.
Figure 4 is a flowchart illustrating a process for an end user to search for a file according to an embodiment of the invention. Figure 5 is a flowchart illustrating a process for a control server to search for a file according to an embodiment of the invention.
Figure 6 is a flowchart illustrating a process for an end user to receive a file according to an embodiment of the invention.
Figure 7 is a flowchart illustrating a process for a control server to transmit a file according to an embodiment of the invention.
Figure 8 is a schematic representation of a system for file transfer according to an embodiment of the invention.
Figure 9 is an example of a graphic user interface for transferring files according to an embodiment of the invention. Figure 10 is a schematic representation of a network system according to an embodiment of the invention. Detailed Description of the Preferred Embodiments
Reference will now be made in detail to the present preferred embodiment of the invention, an example of which is illustrated in the accompanying drawings, in which like reference characters refer to corresponding elements. The present invention relates to a system and method for transferring files from one end user to another end user. It is understood that the transferring a file may include providing a copy of an existing file to another location, or moving a copy from one location to another. An end user (which may be referred to as an originator end user) may indicate to a control server that one or more files are available for transfer to other end users (which may be referred to as receiver end users). An end user may act as a receiver end user at some times and as an originator end user at other times. Receiver end users may contact the control server to find and receive files from originator end users. Based on instructions received from a control server administrator, the control server may control the manner of transfer of the files, such as direct peer to peer transfer, virtual peer to peer transfer, direct transfer to the control server, HTTP transfer, or other transfer methods. Further, the control administrator may instruct the control server to invoke various functions during the file transfer when appropriate, such as virus check, content check, digital rights management, and/or other functions. Virtual peer to peer file sharing ("NP2P"), as referred to above, involves transferring files through a control server without end users knowledge. Various functions, such as scanning files for viruses and ensuring compliance with digital rights may be performed on the files, based on instructions received at the control server. However, the control server provides no long term storage for the file and transmits the file to the receiver end user in near real-time. Thus, to the originator end users and the receiver end users, a NP2P system looks and acts like a regular P2P system.
Use of instructions to the control server enables the control server administrator to control various aspects of the file transfer, including the method of file transfer. The control server administrator may instruct the control server to perform various functions without the end users being aware the functions are being performed. By way of example, the control server administrator may instruct the control server to perform virtual peer to peer file transfer with a virus check function. The control server may transfer the files according to these instructions. The end users transmit and receive the files without knowing that these functions are occurring. According to another embodiment of the invention, the originator end user and/or the receiver end user may provide instructions to the control server to control various aspects of the file transfer.
The present invention may enable a control administrator to select among file transfer methods based on the nature of the system, the users, or the types of files transferred. The present invention also allows the administrator to apply NP2P transfers so that he may exercise greater control over the P2P transfer process by adding and removing functions via the addition and removal of various plug-in function modules from a control server. A control server administrator may update a system and process of the present invention with appropriate functions while maintaining a seamless appearance to end users of the system. The present invention will now be described in greater detail below in relation to the following figures, which describe various functions that may be used within the invention. These functions may be interrelated, but appear to end users as seamless functions of an embodiment of the invention.
Fig. 1 is a flowchart illustrating an overview for a process for file transfer using a virtual peer-to-peer transfer according to an embodiment of the invention. This process may be illustrated by reference to the systems of Figs. 8 and 10. At step 80, an end user at originator module 30a (referred to collectively as originator module 30a) accesses control server 20 through network 10. Access may occur through any type of connection to a network, such as through a Connector Provider 110, as described in more detail in Fig. 9 below. At step 82, originator module 30a informs control server 20 regarding the availability of one or more files located at originator module 30a. According to an embodiment of the invention, originator module 30a indicates that certain files are available for transfer to end users at receiver module 30b (collectively referred to as receiver module 30b). Originator module 30a may indicate criteria for transferring a file. By way of example, originator module 30a may indicate that only certain files located at originator module 30a are available to other end users. An end user at originator module 30a may also indicate that only certain end users may receive a file. It is understood that an originator module 30a may also function as a receiver module 30b. Other criteria may also be designated.
At step 84, a control server administrator may provide criteria to control server 20 to govern the transfer of one or more files. According to an embodiment of the invention, a control server administrator may designate criteria, such as through activating one or more functions, to instruct control server 20 regarding transferring files. Functions, which are described in greater detail below in relation to their associated module, may include, but are not limited to, a temporary storage function, a virus check function, a digital rights management function, a firewall function, a bandwidth management function, a streaming media function, and a statistic tracking function. Other functions may also be used.
At step 86, receiver module 30b requests one or more files. According to an embodiment of the invention, when receiver module 30b knows the name of a file, receiver module 30b may request a file by name at directory module 24 of control server 20. According to an embodiment of the invention, when receiver module 30b does not know the name of a file, receiver module 30b may send a search request for certain types of files, such as a request for photograph files from a certain photographer. Other manners of requesting files may also be used.
At step 88, directory module 24, through control server 20, presents files available for receiver module 30b to receive. Presentation of files may include indicating the name of the file, the contents, the format, the location of the file (e.g., the originator module who has a file, the control server 20 that has the file, etc.) and other information. According to an embodiment of the invention, directory module 24 may search for files based on requests by receiver module 30b. Directory module 24 may present one or more files that meet the request criteria of receiver module 30b, thereby enabling receiver module 30b to choose what file or files to receive. Searching and sorting may be performed in any conventional manner for searching for and sorting files. Other manners for sorting and presenting files may be used.
At step 90, originator module 30b selects one or more files to receive. According to an embodiment of the invention, a selection may be performed by receiver module 30b by using an interface located on a device, such as a requester device 105 described below in Fig. 9. At step 92, manager module 22, through control server 20, receives one or more selected file(s). According to an embodiment of the invention, when a selected file is located at originator module 30a, manager module 22 receives the file from originator module 30a. As described below in greater detail, a file may be stored in a temporary cache in control server 20, thereby allowing multiple end users to receive a file.
At step 94, control server 20 performs one or more functions on the files received from originator module 30a. Functions, by way of example only, may include checking a file for virus, deteπnining digital rights for a file, or other functions. Functions that may be performed, and their associated modules, are described in greater detail below.
At step 94, manager module 22, through control server 20, transmits the file to a receiver module 30b. Transmitting the file may occur in any conventional manner for transferring files. Various aspects of file transfer methods will now be described in greater detail. According to an embodiment of the invention, the processes of Figs. 2 and 3 may be related, such that Fig. 2 illustrates a process for posting a file from the originator module 30a's viewpoint, while Fig. 3 illustrates a process for posting a file from control server 20's viewpoint. Fig. 2 illustrates a process for posting a file for transfer to by other users according to an embodiment of the invention. As described above, the transfer method may be by a transfer method indicated in instructions received at control module 20. At step 202, an end user, such as an end user using originator module 30a, selects one or more files for posting. Posting a file may vary depending on the file transfer method to be used and may include indicating that a file is available for retrieval by other end users (such as in peer to peer or virtual peer to peer file transfer), storing a file at control server 20 (such as for direct transfer of the file to the control server), or other manner of posting.
At step 204, the originator module 30a selects a transfer method for transferring a file to a receiver module 30b. According to another embodiment of the invention, as described below, a control server administrator or a network administrator may provide default settings or limit the transfer methods available for a particular file, originator end user, and/or receiver end user. A transfer method may include using direct peer-to- peer (e.g., the originator module 30a transferring the file directly to receiver module 30b in a traditional peer-to-peer transfer), virtual peer-to-peer file transfer (e.g., the originator module 30a transferring the file through control server 20 to receiver module 30b where neither end user is aware of the control server's role in the file transfer), transferring a URL address which may serve as a pointer to a location on a third party world wide web server where the file is stored, transferring a file directly to control server 20 for storage at control server 20 and later retrieval, or other manners of file transfer. According to an embodiment of the invention, the transferred URL address may provide a link for a user to activate to the URL address (e.g., the user activates the link with a mouse and views the information associated with the URL address on a viewer). According to another embodiment of the invention, the transferred URL address may automatically display the information associated the URL address on a viewer (e.g., a browser). Other manners of transfer may also be used.
At step 206, metadata for a file may be provided. According to an embodiment of the invention, originator module 30a may provide metadata for a file, such as indicating the format of the file, the contents of the file, a file title, a thumbnail or other sample of the file contents, file size, file date or timestamp, file version information, and other information associated with the file. According to another embodiment of the invention, a metadata identification module 46 may be present at control server 20 for providing metadata for a file. By way of example, metadata identification module 46 may scan a file and provide the metadata information for that file, thereby eliminating the need for an end user to provide the metadata information. Other methods for providing metadata may also be used.
At step 208, originator module 30a determines whether to transfer a file to control server 20. If a file is not to be transferred to the control server 20, originator module 30a transmits the transfer method and metadata for a particular file to be posted to control server 20, at step 210. If a file is to be transferred, originator module 30a transmits the transfer method, the metadata associated with the file, and the file to control server 20 at step 212. Control server 20 may confirm receipt of a transmission from originator module 30a at step 214. Other manners for posting files for availability for transfer may also be used.
Fig. 3 illustrates a process for control server 20 to receive a file and information related to the file according to an embodiment of the invention. At step 220, control server 20 receives a transfer method, metadata associated with a file, and if applicable for the particular transfer method, an actual file from originator module 30a. As described earlier, a transfer method may include a direct peer-to-peer transfer, a virtual peer-to-peer transfer, a transfer from an originator end user to the control server, or a URL transfer. Some transfer methods may require a file to be transferred to control server 20, while other transfer methods may require a file to stay with originator module 30a. Also as described above, metadata may be provided directly by an originator module 30a or may be automatically provided by a metadata identification module 46 at control server 20. At step 222, one or more applicable plug-in function modules may be invoked.
Whether a plug-in function module is invoked at this step may be determined by instructions from control server administrator module 60, instructions from originator module 30a, receiver module 30b, or instructions from others. Applicable plug-in function modules may include, but are not limited to, a virus check module 28, a metadata identification module 46, a digital rights management module 30, or other types of modules. Various types of plug-in function modules that may be used in connection with the present invention are described in greater detail below in connection with Fig. 8.
At step 224, control server 20 updates a database with the received metadata. According to an embodiment of the invention, control server 20 maintains in directory module 24 a database of files available for transfer to receiver module 30b. The database may include metadata associated with the files, thereby allowing for various search techniques to be employed to retrieve one or more selected files.
At step 226, control server 20 determines whether a file has been received and needs to be stored. If so, the control server stores the file at step 228. Once the file is stored or if no file has been received, control server 20 invokes applicable plug-in function modules at step 230. As described above, the invocation of applicable plug-in modules may be determined by instructions received from a control server administrator using control server administrator module 60 (referred to collectively as control server administrator module 60), originator module 30a, receiver module 30b, or other parties. Applicable plug-in functions modules may include, but are not limited to, statistic tracking module 38, firewall module 32, or other types of modules as described below in connection with Fig. 8.
At step 232, a status is transmitted to originator module 30a. According to an embodiment of the invention, control server 20 may transmit the status of a transmission received from an originator end user. A status may indicate that a transfer method, metadata, and if applicable, one or more files have been received by control server 20 and have been posted for availability to receiver module 30b.
According to an embodiment of the invention, the processes of Figs. 4 and 5 may be related, such that Fig. 4 illustrates a process for searching from receiver module 30b's viewpoint, while Fig. 5 illustrates a process for searching from control server 20 's viewpoint. Further, the process may be used to search for a posted file, such as a file posted in the processes illustrated in Figs. 2 and 3. Fig. 4 is a flowchart illustrating a process for receiver module 30b to search for a file according to an embodiment of the invention. At step 240, receiver module 30b collects search criteria. Collectively search criteria may include an end user inputting search criteria into receiver module 30b. According to an embodiment of the invention, if receiver module 30b does not know the name of a particular file, receiver module 30b may indicate search criteria for finding certain types of files. Search criteria may include the type of file to receive, the contents of the file, the creator of the content of a file, metadata associated with the file, a file transfer method designated by an originator 30a, or other such criteria. By way of example only, a receiver end user may designate the search criteria indicating the desire to find music files of a song performed by a certain musician, where the files are in a Real-Player format. According to another embodiment of the invention, where receiver module 30b knows the name of a file to be received, receiver module 30b may indicate that name as its search criteria. At step 242, receiver module 30b sends the search criteria to control server 20.
At step 244, control server 20 receives the search criteria from receiver module 30b. According to an embodiment of the invention, search criteria may also include indicating metadata information for a particular file as well as indicating desired transfer method. By way of example, receiver module 30b may desire to receive a file associated with sailing via a virtual peer-to-peer file transfer method. Other types of search criteria may also be transmitted. At step 246, the results of a search based on search criteria are presented to receiver module 30b.
Figure 5 is a flowchart illustrating a process for control server 20 to perform a search according to an embodiment at the invention. At step 250, control server 20 receives search criteria from receiver module 30b. As described above with regard to Figure 4, search criteria may include the type of file to be received, the content of a file, the creator of a file, metadata associated with the file, a file transfer method, or other search criteria. At step 252, control server 20 determines the search mechanism to be invoked. A search mechanism may include invoking a search module which is a plug- in function module to control server 20. Additionally, a search mechanism may involve a third party search engine which is separate and distinct from control server 20. Determining a search mechanism may include using one or more search engines to find a file for a receiver module 30b. Other manners of determining search mechanisms may also be used. At step 254, the appropriate search modules and/or search mechanisms are invoked. As described above, invoking a search module and/or search mechanism may include invoking a plug-in search module associated with control server 20 and/or invoking one or more search engines which are separate and distinct from control server 20. Other manners of invoking a search module and/or a search mechanism may also be used. Search results are received at control server 20 from the invoked search modules and/or search mechanisms at step 256. According to an embodiment of the invention, control server 20 may sort and arrange the received search results based on instructions from control server administrator module 50 or from receiver module 30b sorting search results. At step 258, the control server sends the results to receiver module 30b.
According to an embodiment of the invention, the processes of Figs. 6 and 7 may be related, such that Fig. 6 illustrates a process for receiving a file from receiver module 30b's viewpoint, while Fig. 7 illustrates a process for transmitting a file searching from control server 20's viewpoint. As described above, the process may be used to transfer a posted file, such as a file posted in the processes illustrated in Figs. 2 and 3, and or a searched for file, such as a file searched for in the processes illustrated in Figs. 4 and 5. Fig. 6 is a flowchart illustrating retrieval of a file by receiver module 30b according to an embodiment of the invention. At step 270, the receiver module 30 requests one or more files to receive. At step 272, control server 20 determines whether a file transfer is to occur via direct peer-to-peer transfer between originator module 30a and receiver module 30b. If a direct peer-to-peer file transfer is to be used, receiver module 30b contacts originator module 30a to receive the file directly from originator module 30a at step 274. If direct peer-to-peer file transfer is not to be used, control server 20 determines if a virtual peer-to-peer file transfer is to be used at step 276. If a virtual peer-to-peer file transfer is to be used, receiver module 30b receives the file from originator module 30a via control server 20 at step 278.
If virtual peer-to-peer file transfer is not to be used, control server 20 determines if direct file transfer download from control server 20 is to be used at step 280. If a direct file transfer download from control server 20 is to be used, receiver module 30b pulls file from control server 20 at step 282. If a direct file fransfer download from control server 20 is not used, a determination is made if a transfer of a URL address is to occur at step 284. If a URL address transfer is to occur, the receiver module may make a request to receive a file via hypertext transfer protocol (http) from a web site or web server at step 286. If a URL location transfer is not to occur, another transfer mechanism occurs at step 288 and the appropriate transfer functions occur at step 290. Upon transfer of the appropriate file and/or information to receiver module 30b control server 20 determines whether or not to log the file transfer information to control server 20 at step 292. If the file transfer is to be logged, control server 20 logs the file transfer to an appropriate portion of control server 20 such as to a statistics tracking module 38. Once the file transfer has been logged or, if no file transfer is to be logged, receiver module 30b receives the file at step 296. Other manners for transferring a file may also be used.
Figure 7 is a flowchart illustrating a process for control server 20 to retrieve and transmit files according to an embodiment of the invention. At step 300, control server 20 receives a file retrieval request from receiver module 30b. Control server 20 invokes any applicable pre-retrieval plug-in function modules at step 302. According to an embodiment of the invention, a plug-in function module invoked at the pre- retrieval portion of the process may be designated by a control server administrator module 60, originator module 30a, receiver module 30b, and/or a third party as illustrated above and as will described below in greater detail in connection with Fig. 8. Plug-in function modules may include, but are not limited to, a virus check module 28, a digital rights management module 30, content module 50, or other types of modules. At step 304, control server 20 initiates the transfer of a file to receiver module
30b. According to an embodiment of the invention, the manner of transferring the file may include a direct peer-to-peer file transfer, a virtual peer-to-peer file transfer, a download from a storage area within control server 20 to receiving module 30b, a fransfer of a URL address, or other type of file transfer. At step 306, control server 20 invokes post-retrieval plug-in function modules as applicable.
The present invention as illustrated in Fig. 8 describes a file transfer system 2 for content distribution which may be based on a virtual P2P file transfer system. In contrast to a direct P2P file transfer system, where a file is transferred directly from one end user to another, a virtual P2P file transfer system may involve a control server 20, including manager module 22 and directory module 24 for providing the distribution mechanism. Additional modules may be added to provided additional functions to file transfer system 2. Additional modules are described below in greater detail. End users may be provided with the benefits of file transfer, and businesses may be provided with the ability to build services on top of file transfer system 2 to address file transfer issues related to bandwidth, copyright, and virus protection.
File transfer system 2 includes a network 10, control server 20, which may further comprise various plug-in function modules, originator module 30a, receiver module 30b, and control server administrator 60. It is understood that an end user may switch between acting as an originator module 30a and a receiver module 30 at various times, such as when an end user posts one file and searches for another file. Control server 20 may comprise a plurality of plug-in function modules for facilitating the transfer of one or more files over a network and providing additional functions. Each module may be integral with central server 20, separate from control server 20, separate from each other, or integrated with one or more plug-in function modules. Directory module 24 may be responsible for managing the directory of files across a file transfer network. The directory may include metadata that can be used in a search, thereby allowing users to browse and search the network. By way of example, search directory module 24 may be searched for all files related to a particular musician. Directory module 24 may search the metadata for the particular musician, and may present files associated with the musician.
Manager module 22 may manage the distribution of files across a network 10. Distribution may include direct file transfer between end users, such as between originator module 30a and receiver module 30b.
According to an embodiment of the invention, a direct P2P file transfer system may be a subset of file transfer system 2. The benefits of a direct P2P transfer between end user computers may be alternatively provided in file transfer system 2 through a virtual file transfer based on the distribution rules. In a virtual P2P file transfer, originator module 30a does not have to manually upload files to control server 20. Originator module 30a may designate what file to share, and control server 20 controls updating directory module 24. A receiver end user is unaware of a file's physical location. This configuration may permit external users to access folders with files. Further, hiding the physical location of files from receiver end users may provide new opportunities to manage the distribution of the files. Manager module 22 may become the content distribution platform.
A control server administrator may be a user using control server administrator module 60 (collectively referred to as "control server administrator module 60"). Control server administrator module 60 may provide information to control server 20 regarding the transfer of files through file transfer system 2. Information may include designating functions, settings, and/or toggles, and adding or deleting functions at either the control server 20 or an end user, such as originator module 30a or receiver module 30b, or other information. According to an embodiment of the invention, control server administrator module 60 may designate to various file transfer methods, such as disabling or enabling a particular file transfer method, or may set a particular file transfer method as a default for all transfers or other types of configurations. As described above, file transfer method may comprise a direct peer-to-peer file transfer, a virtual peer-to-peer file transfer, a file transfer from an originator end user to the control server, or a URL information transfer. According to another embodiment of the invention, control server administrator module 60 may add or remove plug-in function modules located at either control server 20, originator module 30a and/or receiver module 30b. In addition to adding or removing such plug-in function modules, control server administrator module 60 may designate to various functions and options within the plug-in function modules. Thus, by way of example only, control server administrator module 60 may designate that for a particular originator module 30a, only certain plug-in function modules will be enabled while other plug-in function modules are disabled. Additionally, control server administrator module 60 may provide other plug-in function modules for an originator module 30a to control. Other combinations of designations options defaults, toggle settings, functions and other information may also be used. According to an embodiment of the invention, control server administrator module 60 may work within an organized hierarchy for controlling file transfer system 2. In such a hierarchy, control server administrator module 60 may designate the operability of certain functions to others within a group thereby permitting one or more end users within the group to decide whether or not a particular plug-in function module is invoked for members of that group. Other manners for delegating responsibility within a hierarchy may also be used.
According to an embodiment of the invention, within such an organized hierarchy, default rules may be established for transferring files. A network may contain various groups or communities which share files. By way of example, a corporation may have a network, where various departments within the corporation are separate groups. Members of each department may share files among members of that department, as well as among different departments within the corporation. According to an embodiment of the invention, each department may have a control server administrator to administer control server functions for file transfers among members of that particular department. Further, the network may have default settings that instruct control server functions within the entire network of the corporation and/or for various departments. By way of example, default settings for a network may indicate that the preferred method of file transfer is regular peer to peer, while the next preferred method is virtual peer to peer. The control server may determine the transfer capabilities of the originator module and based on the transfer capabilities, indicate how a file is transferred. If the originator module is able to directly transfer the file to the receiver module, the control server may instruct that the file be transferred directly from the originator module to the receiver module. If the originator module is unable to directly transfer the file to the receiver module, the control server may instruct that the file be transferred through the control server to the receiver module, using a virtual peer to peer file transfer method. Other default settings may also be used. Default settings may be similar to control server administrator instructions in that default settings may instruct that one or more functions be performed on a file during transfer, such as by the control server. Default settings may be indicated when the system of the present invention is first installed. Alternatively, the network administrator may designate the default settings. According to an embodiment of the invention, control server administrators may be permitted to override the default instructions. Thus, by way of the example of a corporation, a network administrator may indicate the default settings for the network (e.g., all internal file transfers are scanned for virus infections), but allow each department's control server administrator to override the default settings. The sales department may decide not to set new default settings (e.g., continue to scan all internal file transfers for virus infections), while the engineering department may decide to change the default settings (e.g., scan only external file transfers for virus infections). Other manners of using default settings may also be used. Various plug-in function modules will now be described in greater detail below. Control server 20 may be used to create an abstraction layer, tuning a "direct" file transfer into a "virtual" P2P file transfer. File transfer system 2 may be a modular system that supports various other functions, such as through plug-in function modules. Plug-in function modules may include a storage/caching module 26, a virus check module 28, a digital rights management ("DRM") module 30, a firewall module 32, a bandwidth management module 34, a streaming media module 36, a statistic module 38, file version control module 40, archive module 42, compression module 44, metadata identification module 46, search module 48, content module 50 or other modules. Manager module 22 may enable heavy file transfer loads to be shifted to control server 20 portion of the network such as where the manager module 22 resides. This portion of network 10 may be designed to handle a heavy load, so such a heavy load may be desirable as a sign that the service is popular. And as the usage grows, manager module 22 and/or control server 20, as well as any other plug-in function module(s), may be replicated to handle the load.
Storage/caching module 26 may allow manager module 22 to store or cache files based on the distribution rules. According to an embodiment of the invention, storage/caching module 26 may temporarily store one or more files received from an originating end user 30a. Based on distribution rules, appropriate files may be transferred to a receiving end user 30b. Storage/cache module 26 may help reduce bandwidth use, especially at originator module 30a and by permitting one file transfer to storage/cache module 26 to provide multiple file transfers to receiver modules 30b. Virus check module 28 may allow manager module 22 to perform a virus check for potentially dangerous viruses located on or within transferred files. When handling all file transfers, control server 20 may use virus check module 28 to scan some or all files, thereby reducing the chance of an end user being infected by a computer virus. Control server administrator module 60 may designate that only certain files should be checked, such as files transferred outside a particular group. Virus checks may be made based on a set of business rules.
Digital rights management (DRM) module 30 may allow for authorization of a file transfer based on digital rights. According to an embodiment of the invention, DRM module 30 may be used to regulate copying and transferring of files protected by copyright. By way of example, one musician may permit the free transfer of a music file embodying that musician's work. Under such conditions, DRM module 30 would let any receiver module 30b receive the file. By way of another example, another musician may permit only authorized end users to download a music file embodying that musician's work. Under such conditions, DRM module 30 would let .only authorized receiver modules 30b receive the file. DRM module 30 may review all files transferred through to file transfer system 2 to ensure that only the appropriate or authorized end users are receiving the file. According to an embodiment of the invention, DRM module 30 may work with a digital signature. In this embodiment, a content owner may first encode the file with the usage rules, such as price. The encoded file may then be distributed anywhere, because only authorized applications would be permitted to use it. A clearing house may also be used to ensure that the rules are followed. Firewall module 32 may enable control server module 20 to transfer a file when end users are behind firewalls. By way of example, control server 20, through firewall module 32, may establish a relationship with an end user, thus allowing a file transfer through a firewall. Bandwidth management module 34 may allow control server 20 to monitor bandwidth usage, and shift portions of the bandwidth load from the end users' portion of the network into control server 20's portion of the network, or other portions of the network as appropriate, which may be designed to handle the load.
Streaming media module 36 may permit control server 20 to host streaming media tools for automatic translation of media files and down sampling. According to an embodiment of the invention, streaming media module 36 may permit the use of other modules (e.g., DRM module 30, virus check module 32, etc.) with streaming media content.
Statistics tracking module 38 may enable control server 20 to provide the statistics regarding files that are transferred. Statistics may include what files are transferred, where files are transferred to, how many users visit a directory module 24, or other tabulations. Statistics may be used for various entities, such as network provides, content owners, end-users, and various value-added service providers.
File version control module 40 may enable control server 20 to control what version of a file, such as a document, is sent to receiver module 30b. By way of example, control server administrator 60 may instruct file version control module 40 that the most recent version of a file is the default for file transfer. In this example, if originator module 30a does not designate the version of a file to be posted, control server 20, through file version control module 40, will post the most up-to-date version of the file. Other manners for controlling file versions may also be used.
Archive module 42 may provide backup for all files transferred by control server 20. By providing a backup, archive module 42 may ensure that each file is successfully transferred to the proper receiver module 30b. If a file transfer is incomplete, interrupted or does not occur properly, control server 20 may access archive module 42 to retrieve the file and properly transfer it to receiver module 30b.
Compression module 44 may enable control server 20 to compress a file for transfer to receiver module 30b. Compression of a file may further reduce bandwidth transmission issues and the time necessary for a file to be received. Compression of a file may also reduce storage needs. Compression module 44 may use various type of compression of a file, including a zip process, as well as batch processing, queuing a file for transfer, and scheduling transfers of multiple files, thereby optimizing file transfer over a network. Metadata identification module 46, as described above, may provide for automatic identification of metadata associated with a particular file. Metadata may include the name of the file, the type of file, the content of a file, the author of a file, the author of the content of a file, and other metadata information. According to an embodiment of the invention, metadata identification module 46 may review a file received from originator module 30a and provide the metadata information for that file.
Search module 48, as described above, may be used for searching for a particular file for a receiver module 30b. Further, search module 48 may enable control server 20 to access search mechanisms apart from control server 20, such as search engines located on other servers. Generally, using search module 48, receiver module 30b may search for files which may have been posted by originator modules 30a. Control server 20, through search module 48, may present receiver module 30b with one or more files which correspond to search criteria received from receiver module 30b.
Content module 50 may ensure the accuracy and content of a file received from originator module 30a. According to an embodiment of the invention, control server 20 through content module 50 may examine the content of a file received from receiver module 30a. Content module 50 may ensure that the content has been accurately described by originator module 30a and that this content is consistent with the type of content requested by receiver module 30b. As described above, file transfer system 2 may include one or more of the above-described modules or none of the modules. Further, control server administrator module 60 may activate or deactivate any number of these plug in function modules for functioning with control server 20. Plug-in function modules as described above, may enable control server administrator module 60 to add or delete functions a particular file transfer system, thereby customizing the functions for a file transfer system 2. A plug-in aspect of the plug in function modules may enable control server administrator module 60 to easily add or delete plug-in function modules to and from file transfer system 2 without affecting other plug-in function modules or control server 20. This plug-in aspect may enable easier use of a file transfer system, as well as other advantages with other plug-in function modules which may also be apparent. Function modules may also be added in a non-plug-in format. As described above, a system according to an embodiment of the present invention may include a control server having a plurality of function modules for performing functions on one or more files that are transferred. According to an embodiment of the invention, the function modules may operate independently of one another to perform synchronous oc asynchronous functions on a file. According to another embodiment of the invention, the function modules may operate dependently with each other to perform a function(s) on a file and/or the data in the file. Other embodiments may also be used.
For purposes of illustrating the present invention, an example of an embodiment using photo files will now be described in relation to Fig. 9. Photo sharing functionality may allow originator end user, through originator module 30a, to share photographs through control server 20 with one or more receiver end users, through receiver modules 30b. Fig. 9 is an example of a graphic user interface 200 for receiver module 30b to receive a file according to an embodiment of the invention. Graphic user interface 200 may comprise a tool bar 202, with standard toolbar functions, such as print, copy, cut, paste, stop, home, back, and other functions typically associated with standard browser software applications. The toolbar functions described herein and illustrated in Fig. 9 are merely illustrative and are not in any manner limiting.
Graphic user interface 200 may comprise a display window 204 for display results of various functions. Thus, according to an embodiment of the invention, originator module 30a posts a file to control server 20 for other users to receive, and receiver module 30b generates a search request for control server 20 to search for one or more files. Searching for one or more files may include viewing metadata, such as the thumbnail images, for each file, such as viewing a list of files. Alternatively, if receiver module 30b does not know which photos it wishes to retrieve, or does not have access to browse through thumbnail images, receiver module 30b may perform a search inquiry with directory module 24 to find a photo file. Control server 20 uses window display 204 of graphic user interface 200 to display to receiver module 30b the results of the search request. By way of an example, a search request may include a request for photographs with "Greg" as the creator. As illustrated in this example, three files 206 are displayed in window display 204, as shown in Fig. 9.
Graphic user interface 200 further displays metadata 208 associated with each file. As described above, metadata 208 may be a variety of information associated with the file. As illustrated in graphic user interface 200 of Fig. 9, metadata includes a thumbnail picture representation of the photograph file, the title of the file, the date the file was created, the name of the creator, the size of the file, and other metadata. By way of example for one type of metadata, to provide for easy display of one or more photos, either originator or receiver module 30a or 30b or metadata identification module 46 may contain one or more functions that may convert a photograph file, such as a full BMP, JPEG and PNG files, or other photograph file format, into a smaller, thumbnail images. These images may be displayed to receiver module 30b, as illustrated in graphic user interface 200, or may be added to an image list made available on control server 20, such as through directory module 24, for search by receiver module 30b.
Once receiver module 30b has determined which photo(s) it wishes to retrieve, receiver module 30b may select a file. According to an embodiment of the invention, and as illustrated in graphic user interface 200, receiver module 30b may select a file and display a menu 210. By way of one example, menu 210 may be displayed by using the right button on a mouse. Other manners for displaying menu 210 may also be used.
Menu 210 may enable a user to determine how files are presented (e.g., viewing icons, thumbnails, details, lists, etc.), find files (e.g., search for files), refresh the view, or other functions. Using menu 210, receiver module 30b may transfer the file, such as by activating the save as function. Receiver module 30b may receive the file using a transfer method designated by control server 20. As described above, the transfer method (e.g., peer to peer, virtual peer to peer, file upload and download, etc.) method may be determined based on instructions from a control server administrator (or originator module 30a or receiver module 30b). Receiving a file may include first determining if the file is available for traditional download on control server 20. If so, receiver module 30b may receive the photo file and launch it to an appropriate viewer. If the photo file is not on control server 20, receiver module may be told the photo file may be accessed by a virtual peer-to-peer connection to originator module 30a (such as through control server 20), a direct peer-to-peer transfer from originator module 30a, or download from a web server at a specified URL address. Other manners of transferring photographic files may also be used. Figure 10 illustrates a System 100 according to an embodiment of the present invention. Various personnel involved in identifying and prioritizing strategic initiatives may use System 100 to interact, such as by gathering information, creating schedules, enabling tools to be accessed by other personnel, and other portions of the process. System 100 comprises multiple requester devices 105 (or "computers") used by requesters to connect to Network 102 through multiple Connector Providers (CPs) 110. Network 102 may be any network that permits multiple requesters or computers to connect and interact. According to an embodiment of the invention, Network 102 may be comprised of a dedicated line to connect requester, such as the Internet, an intranet, a local area network (LAN), a wide area network (EVAN), a wireless network, or other type of network. CP 110 may be a provider that connects the requesters to the network 302. For example, CP 110 may be an internet service provider (ISP), a dial-up access means, such as a modem, or other manner of connecting to network 102. In actual practice, there may be significantly more users connected to System 100 than shown in Fig. 3. This would mean that there would be additional requesters which are connected through the same CPs shown or through other CPs. Nevertheless, for purposes of illustration, the discussion will presume four requester devices 105 are connected to Network 102 through two CPs 110.
According to an embodiment of the invention, requester devices 105a - 105d may each make use of any device (e.g., computer, wireless telephone, personal digital assistant, etc.) capable of accessing Network 102 through CP 110. Alternatively, some or all of requester devices 105a - 105d may access Network 102 through a direct connection, such as a TI line, or similar connection. Fig. 3 shows four requester devices 105a - 105d, each having a connection to Network 102 through a CP 110a and 110b. Requester devices 105a-105d may each make use of a personal computer such as a computer located in the requester's home, or may use other devices which allow the requester to access and interact with others on Network 102. Central controller module 112 may also have a connection to Network 102 as described above. Central controller module 112 may communicate with one or more data storage modules 114, the latter being discussed in more detail below.
Each computer 105a-105d used by requesters may contain a processor module 104, a display module 108, and a user interface module 106. Each computer 105a-105d may have at least one user interface module 106 for interacting and controlling the computer. The user interface module 106 may be comprised of one or more of a keyboard, joystick, touchpad, mouse, scanner or any similar device or combination of devices. Each of the computers 105a-105d used by requesters may also include a display module 108, such as a CRT display or other device. System 100 further includes a central controller module 112. Central controller module 112 may maintain a connection to Network 102 such as through transmitter module 118 and receiver module 120. Transmitter module 118 and receiver module 120 may be comprised of conventional devices which enable central controller module 112 to interact with Network 102. According to an embodiment of the invention, transmitter module 118 and receiver module 120 may be integral with central controller module 112. The connection to Network 102 by central controller module 112 and computers 105 may be a high speed, large bandwidth connection, such as a though Tl or T3 line, a cable connection, a telephone line connection, DSL connection, or other type connection. Central controller module 112 functions to permit requester's devices 105a-105d to interact with each other in connection with various applications, messaging services and other services which may be provided through System 100. Central controller module 112 may perform various calculations, such as calculating a strength model, or determining a rating for a strategic initiative.
Central controller module 112 preferably comprises either a single server computer or a plurality of multiple server computers configured to appear to clients 105 as a single resource. Central controller module 112 communicates with a number of data storage modules 114. Each data storage module 114 stores various information associated with a control server administrator, a receiver module, an originator module, received instructions, files or other information. According to an embodiment of the invention, any data storage module 114 may be located on one or more data storage devices, where the data storage devices are combined or separate from central controller module 112.
Processor module 116 performs the various processing functions required in the practice of the process taught by the present invention, such as performing the search of a directory, generating the search results, generating a message to be sent and displayed for the requester, and other similar processing functions. Processor module 116 may be comprised of a standard processor, such as a central processing unit (CPU), which is capable of processing the information in the necessary manner.
While system 100 of Fig. 3 discloses a computer 105 connected to Network 102, it is understood that a personal digital assistant ("PDA"), a mobile telephone, a television, or other device that permits access to Network 102 may be used to arrive at the system of the present invention.
According to another embodiment of the invention, a computer-usable and writeable medium having a plurality of computer readable program code stored therein may be provided for practicing the method of the present invention. For example, the computer-usable medium may comprise a CD ROM, a floppy disk, a hard disk, or any other computer-usable medium. One or more of the components of the system may comprise computer readable program code in the form of functional instructions stored in the computer-usable medium, such that when the computer-usable medium is installed on a computer system, those components cause the computer system to perform the functions described. According to one embodiment, central controller module 112, data storage 114, processor module, 116, receiver module 118, transmitter module 120, control server 20, manager module 22, directory module 24, storage/caching module 35, virus check module 40, DRM module 45, firewall module 50, bandwidth management module 55, streaming media module 60, and statistic tracking module 65 may comprise computer- readable code that, when installed on a computer, perform the functions described above. Also, only some of the components may be provided in computer-readable code. According to one specific embodiment of the present invention, the system may operate on a network and may be connected to other systems sharing a common database. Other hardware arrangements may also be used.
Other embodiments, uses and advantages of the present invention will be apparent to those skilled in the art from consideration of the specification and practice of the invention disclosed herein. The specification and examples should be considered exemplary only. The intended scope of the invention is only limited by the claims appended hereto.

Claims

What is Claimed is:
1. A system for transferring at least one file over a network comprising: an originator module for storing the at least one file for transfer, where the originator module is connected to the network; a receiver module for receiving the at least one file, where the receiver module is connected to the network; and a control server for controlling the transfer of the at least one file from the originator module to the receiver module through the network, where the control server is connected to the network and controls the transfer of the at least one file by designating a transfer method according to instructions received at the control server.
2. The system according to claim 1, wherein the instructions received at the control server are from at least one of: a) the originator module; b) the receiver module; and c) a control server administrator.
3. The system according to claim 1, wherein the designated transfer method comprises transferring the at least one file from the originator module to the receiver module through the control server, where the transfer of the at least one file through the control server is hidden from the originator module and the receiver module.
4. The system according to claim 1, wherein the control server determines the transfer capabilities of the originator module and based on the transfer capabilities perform one of: a) managing the file transfer such that the file is transferred directly from the originator module to the receiver module based on the originator module's ability to directly transfer the file to the receiver module; and b) managing the file transfer such that the file is transferred through the control server to the receiver module based on the originator module's inability to directly transfer the file to the receiver module.
5. The system according to claim 1, wherein the designated transfer method comprises transferring the at least one file to the control server for storage and the control server transfers the at least one file from storage to the receiver module based on a request from the receiver module.
6. The system according to claim 1, wherein the designated transfer method comprises an originator module directly transferring the at least one file to the receiver module.
7. The system according to claim 1, wherein the designated transfer method comprises transferring the location of the at least one file from the originator module to the receiver module, where the location of the at least one file is accessible by the receiver module through the network.
8. A control server for transferring at least one file from an originator module to a receiver module over a network, the control server including a plurality of function modules for performing functions on the at least one file that is transferred, where the plurality of function modules comprise: a directory module for managing a directory of the at least one file, where the originator module has interacted with the directory module to list the at least one file in the directory and the receiver module uses the directory module to locate the at least one file; and a manager module for managing the transfer of the at least one file from the originator module to the receiver module based on a request from the receiver module, wherein managing the transfer of the at least one file comprises designating a transfer method according to instructions received at the control server.
9. The control server according to claim 8, wherein the plurality of function modules operate independently of one another to perform at least one of synchronous and asynchronous functions on the at least one file.
10. The control server according to claim 8, wherein the plurality of function modules operate dependently with each other to perform at least one of a) performing a function on the at least one file; and b) performing a function on the data in the at least one file.
11. The control server according to claim 8, where the plurality of function modules further comprises a storage/cache module for temporarily storing the at least one file for transfer through the network to the download module, where the at least one file is transferred once from the originator module to the storage/cache module and permits multiple transfer of the at least one file to multiple receiver modules.
12. The control server according to claim 8, where the plurality of function modules further comprises a virus check module that scans the at least one file for viruses.
13. The control server according to claim 8, where the plurality of function modules further comprises a digital rights management module that scans the at least one file for at least one digital rights restriction.
14. The control server according to claim 8, where the plurality of function modules further comprises a directory module for managing a directory of the at least one file, the receiver module uses the directory module to locate the at least one file.
15. The control server according to claim 8, where the plurality of function modules further comprises a firewall module for managing the transfer of the at least one file through a firewall located at one of the control server, the originator module and the receiver module.
16. The control server according to claim 8, where the plurality of function modules further comprises a bandwidth management module for controlling the transfer of at least one file, where controlling includes controlling transfer to optimize bandwidth use.
17. The control server according to claim 8, wherein the at least one file comprises a streaming media file, and the plurality of function modules further comprises a streaming media module for managing the transfer of the at least one streaming media file.
18. The control server according to claim 8, where the plurality of function modules further comprises a statistics tracking module for tracking the transfer of the at least one file, and accumulating statistics based on the transfer.
19. The control server according to claim 18, where the accumulated statistics comprise at least one of: a) the number of files transferred by the control server over a predetermined time period; b) the number of files received by the receiver module; c) the number of files transferred by the originator module; d) the number of times a specific file of the at least one file has been transferred; e) the number of times the receiver module accesses the control server; and f) the number of times the originator module accesses the control server.
20. The control server according to claim 8, where the plurality of function modules further comprises a file version control module for managing multiple versions of the at least one file and controlling the version of the at least one file that is transferred to the receiver module.
21. The control server according to claim 8, where the plurality of function modules further comprises an archive module for storing information related to the transfer of the at least one file.
22. The control server according to claim 21, where the stored information includes at least one of: a) a date and time one of the at least one file was transferred; b) an identity associated with the receiver module that received the at least one file; and c) an identity associated with the originator module that initially stored the at least one file.
23. The control server according to claim 8, where the plurality of function modules further comprises a compression module for reducing the file size of the transferred at least one file.
24. The control server according to claim 8, where the plurality of function modules further comprises a metadata identification module for assigning at least one metadata identification to the transferred at least one file, where the metadata identification module scans the at least one file and assigns the at least one metadata identification based on the scan of the at least one file.
25. The control server according to claim 8, where the plurality of function modules further comprises a search module for searching for the at least one file, wherein the search module searches for the at least one file based on search criteria provided by the receiver module.
26. The control server according to claim 8, where the plurality of function modules further comprises a content module for monitoring the content of the at least one file to ensure that the description of the content associated with the at least one file is accurate.
27. A process for transferring at least one file from at least one originator module to at least one receiver module, the process comprising: receiving a posting of the at least one file from the at least one originator module; receiving a request for the at least one file from the at least one receiver module; and controlling the transfer of the at least one file from the at least one originator module to the at least one receiver module, where the at least one originator module and the at least one receiver module are connected to a network and where controlling the transfer of the at least one file comprises designating a transfer method according to received instructions.
28. The process according to claim 27, wherein instructions for designating the transfer method are received from at least one of: a) the originator module; b) the receiver module; and c) a control server administrator.
29. The process according to claim 27, wherein the designated transfer method comprises transferring the at least one file from the originator module to the receiver module through the control server, where the transfer of the at least one file through the control server is hidden from the originator module and the receiver module.
30. The process according to claim 27, further comprising the step of determining the transfer capabilities of the originator module; and wherein based on the transfer capabilities the step of controlling the step of transferring includes one of: a) managing the file transfer such that the file is transferred directly from the originator module to the receiver module based on the originator module's ability to directly transfer the file to the receiver module; and b) managing the file transfer such that the file is transferred through the control server to the receiver module based on the originator module's inability to directly transfer the file to the receiver module.
31. The process according to claim 27, wherein the designated transfer method comprises transferring the at least one file to the control server for storage and the control server transfer the at least one, file from storage to the receiver module based on a request from the receiver module.
32. The process according to claim 27, wherein the designated transfer method comprises an originator module directly transferring the at least one file to the receiver module.
33. The process according to claim 27, wherein the designated transfer method comprises transferring the location of the at least one file from the originator module to the receiver module, where the location of the at least one file is accessible by the receiver module through the network.
34. A process for transferring at least one file from an originator module to a receiver module over a network, the process comprising: managing a directory module of the at least one file, where the receiver module uses the directory module to locate the at least one file; and managing the transfer of the at least one file from the originator module to the receiver module based on a request from the receiver module, wherein managing the transfer of the at least one file comprises designating a transfer method according to instructions received at a control server connected to the network.
35. The process according to claim 34, further comprising the step of temporarily storing the at least one file for transfer through the network to the download module, where the at least one file is transferred once from the originator module to a storage/cache module and permits multiple transfer of the at least one file to multiple receiver modules.
36. The process according to claim 34, further comprising the step of scanning the at least one file for viruses.
37. The process according to claim 34, further comprising the step of scanning the at least one file for at least one digital rights restriction.
38. The process according to claim 34, further comprising the step of managing a directory of the at least one file, the receiver module uses the directory to locate the at least one file.
39. The process according to claim 34, further comprising the step of managing the fransfer of the at least one file through a firewall located at one of the control server, the originator module and the receiver module.
40. The process according to claim 34, further comprising the step of controlling the transfer of at least one file, where controlling includes controlling transfer to optimize bandwidth use.
41. The process according to claim 34, wherein the at least one file comprises a streaming media file, and further comprising the step of managing the transfer of the at least one streaming media file.
42. The process according to claim 34, further comprising the step of tracking the transfer of the at least one file, and accumulating statistics based on the transfer.
43. The process according to claim 42, where the accumulated statistics comprise at least one of: a) the number of files transferred by the control server over a predetermined time period; b) the number of files received by the receiver module; c) the number of files transferred by the originator module; d) the number of times a specific file of the at least one file has been transferred; e) the number of times the receiver module accesses the control server; and f) the number of times the originator module accesses the control server.
44. The process according to claim 34, further comprising the step of controlling the version of the at least one file that is transferred to the receiver module.
45. The process according to claim 34, further comprising the step of storing information related to the transfer of the at least one file.
46. The process according to claim 45, where the stored information includes at least one of: a) a date and time one of the at least one file was transferred; b) an identity associated with the receiver module that received the at least one file; and c) an identity associated with the originator module that initially stored the at least one file.
47. The process according to claim 34, further comprising the step of compressing the transferred at least one file.
48. The process according to claim 34, further comprising the step of assigning at least one metadata identification to the transferred at least one file, where a metadata identification module scans the at least one file and assigns the at least one metadata identification based on the scan of the at least one file.
49. The process according to claim 34, further comprising the step of searching for the at least one file, wherein the search module searches for the at least one file based on search criteria provided by the receiver module.
50. The process according to claim 34, further comprising the step of monitoring the content of the at least one file to ensure that the description of the content associated with the at least one file is accurate.
PCT/US2001/027054 2000-09-01 2001-08-31 System and method for transferring files WO2002019653A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2001290591A AU2001290591A1 (en) 2000-09-01 2001-08-31 System and method for transferring files

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US22929100P 2000-09-01 2000-09-01
US60/229,291 2000-09-01
US69221700A 2000-10-20 2000-10-20
US09/692,217 2000-10-20

Publications (2)

Publication Number Publication Date
WO2002019653A2 true WO2002019653A2 (en) 2002-03-07
WO2002019653A3 WO2002019653A3 (en) 2002-09-06

Family

ID=26923163

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2001/027054 WO2002019653A2 (en) 2000-09-01 2001-08-31 System and method for transferring files

Country Status (2)

Country Link
AU (1) AU2001290591A1 (en)
WO (1) WO2002019653A2 (en)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003092243A1 (en) * 2002-04-23 2003-11-06 Sprint Communications Company, L.P. Reverse caching for residential end-users to reduce usage of access links to a core communication network
WO2003098409A1 (en) * 2002-05-17 2003-11-27 Telefonaktiebolaget Lm Ericsson (Publ) Secure content sharing in digital rights management
EP1531599A1 (en) * 2003-11-17 2005-05-18 Kabushiki Kaisha Toshiba Data transfer apparatus and data transfer method
EP1625477A2 (en) * 2003-05-16 2006-02-15 Picasa, Inc. Methods and systems for image sharing over a network
EP1680746A2 (en) * 2003-11-07 2006-07-19 Sony Electronics Inc. File transfer protocol for mobile computer
EP1819140A1 (en) 2006-02-13 2007-08-15 Sony Corporation Information processing apparatus, image sharing method, and program
EP2088513A1 (en) * 2006-11-30 2009-08-12 FUJIFILM Corporation Image sharing server, system, method, and program
US7673066B2 (en) 2003-11-07 2010-03-02 Sony Corporation File transfer protocol for mobile computer
US7849462B2 (en) 2005-01-07 2010-12-07 Microsoft Corporation Image server
US8073926B2 (en) 2005-01-07 2011-12-06 Microsoft Corporation Virtual machine image server
GB2555487A (en) * 2016-11-01 2018-05-02 Iconx Solutions Ltd A method of controlling the transfer of data in a managed data transfer system
CN114500517A (en) * 2022-03-14 2022-05-13 北京计算机技术及应用研究所 Method for realizing control file uploading based on API gateway

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0895374A2 (en) * 1997-07-31 1999-02-03 Fujitsu Limited Communication system for a computer network
US6058168A (en) * 1995-12-29 2000-05-02 Tixi.Com Gmbh Telecommunication Systems Method and microcomputer system for the automatic, secure and direct transmission of data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6058168A (en) * 1995-12-29 2000-05-02 Tixi.Com Gmbh Telecommunication Systems Method and microcomputer system for the automatic, secure and direct transmission of data
EP0895374A2 (en) * 1997-07-31 1999-02-03 Fujitsu Limited Communication system for a computer network

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
BLUM C ET AL: "THE GLOBAL STORE SERVER - A MULTIMEDIA TELESERVICE COMPONENT" MULTIMEDIA TRANSPORT AND TELESERVICES. INTERNATIONAL COST 237 WORKSHOPPROCEEDINGS. VIENNA, NOV. 13 - 15, 1994, INTERNATIONAL COST 237 WORKSHOP PROCEEDINGS, BERLIN, SPRINGER, DE, 13 November 1994 (1994-11-13), pages 35-46, XP000585293 ISBN: 3-540-58759-4 *

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003092243A1 (en) * 2002-04-23 2003-11-06 Sprint Communications Company, L.P. Reverse caching for residential end-users to reduce usage of access links to a core communication network
US7016883B2 (en) 2002-04-23 2006-03-21 Sprint Communications Company L.P. Reverse caching for residential end-users to reduce usage of access links to a core communication network
WO2003098409A1 (en) * 2002-05-17 2003-11-27 Telefonaktiebolaget Lm Ericsson (Publ) Secure content sharing in digital rights management
EP1625477A4 (en) * 2003-05-16 2011-10-12 Google Inc Methods and systems for image sharing over a network
EP1625477A2 (en) * 2003-05-16 2006-02-15 Picasa, Inc. Methods and systems for image sharing over a network
US7673066B2 (en) 2003-11-07 2010-03-02 Sony Corporation File transfer protocol for mobile computer
EP1680746A2 (en) * 2003-11-07 2006-07-19 Sony Electronics Inc. File transfer protocol for mobile computer
US8694672B2 (en) * 2003-11-07 2014-04-08 Sony Corporation Method and system for transferring files using file transfer protocols for palm OS mobile computer
US20120124158A1 (en) * 2003-11-07 2012-05-17 Jianyu Roy Zheng File transfer protocol for mobile computer
EP1680746A4 (en) * 2003-11-07 2006-10-25 Sony Electronics Inc File transfer protocol for mobile computer
US7577153B2 (en) 2003-11-17 2009-08-18 Kabushiki Kaisha Toshiba Data transfer apparatus and data transfer method
EP1531599A1 (en) * 2003-11-17 2005-05-18 Kabushiki Kaisha Toshiba Data transfer apparatus and data transfer method
US7849462B2 (en) 2005-01-07 2010-12-07 Microsoft Corporation Image server
US8073926B2 (en) 2005-01-07 2011-12-06 Microsoft Corporation Virtual machine image server
US8392850B2 (en) 2006-02-13 2013-03-05 Sony Corporation Information processing apparatus and method, and program for handling images
EP1819140A1 (en) 2006-02-13 2007-08-15 Sony Corporation Information processing apparatus, image sharing method, and program
EP2088513A4 (en) * 2006-11-30 2010-05-12 Fujifilm Corp Image sharing server, system, method, and program
EP2088513A1 (en) * 2006-11-30 2009-08-12 FUJIFILM Corporation Image sharing server, system, method, and program
GB2555487A (en) * 2016-11-01 2018-05-02 Iconx Solutions Ltd A method of controlling the transfer of data in a managed data transfer system
CN114500517A (en) * 2022-03-14 2022-05-13 北京计算机技术及应用研究所 Method for realizing control file uploading based on API gateway

Also Published As

Publication number Publication date
AU2001290591A1 (en) 2002-03-13
WO2002019653A3 (en) 2002-09-06

Similar Documents

Publication Publication Date Title
US9348918B2 (en) Searching content in distributed computing networks
US8280985B2 (en) Serving content from an off-line peer server in a photosharing peer-to-peer network in response to a guest request
US7502795B1 (en) Network-based photosharing architecture
US7788388B2 (en) Method and apparatus for appliance host supported network-based application delivery
CA2525941C (en) Methods and systems for image sharing over a network
US8127222B2 (en) Latches-links as virtual attachments in documents
US7508419B2 (en) Image exchange with image annotation
US6272484B1 (en) Electronic document manager
US7197513B2 (en) Distributed image storage architecture
US9116927B2 (en) Methods and apparatuses for publication of unconsciously captured documents
US20030069803A1 (en) Method of displaying content
EP1277139A2 (en) Use-sensitive distribution of data files between users
GB2320112A (en) High-availability computer server system
US20100146597A1 (en) Contents retrieval system and contents retrieval method
US20040098368A1 (en) Data storage system
WO2002019653A2 (en) System and method for transferring files
US20150026160A1 (en) Method and apparatus for distributing queries and actions
US20110087750A1 (en) Resource Locators for Widely Distributed Systems
US20060168138A1 (en) Resource providing system, mediating agent, resource providing method and computer program product
Cheng et al. Functions of a Web warehouse

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PH PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP