Methods and system using a local proxy server to process media data for local area users
Claim Score by NHIP
Abstract
Methods and system are disclosed to minimize inefficiencies for local area users to share and access data. A local proxy server operates in conjunction with a central server. Local area users can post or store ("store") data, e.g., media data, on the local proxy server in order for the data to be accessed locally. The local proxy server can also store the data from the local area users on a central server. Additionally, the local proxy server can copy data being stored on the central server for local access by the local area users. In this manner, local area users can utilize the benefits (e.g., higher bandwidth and faster download speed) of storing and accessing media data to and from a local area source (i.e., the local proxy server).

Term
Term ended
Projected expiry passed 6 December 2024, 1.8 years ago.
- Priority and filed
- Published
- Projected expiry
- Today
59 claims: 11 independent, 48 dependent
- 1A method for implementing collaboration between a plurality of users operating a media application for processing media data, including users interconnected via a first network and connected to a second network, the second network including a central server and the first network including a selectively enabled local proxy server, the method comprising:determining if the local proxy server is enabled;and storing the media data on the local proxy server and storing the media data on the central server by the local proxy server if the local proxy server is enabled.
- 15A method for implementing collaboration between a plurality of users operating a media application for processing media data, each of the users having access to a central server and to at least one selectively enabled local proxy server, each of the local proxy server being accessible to only a subset of the users comprising, the method comprising:determining if the local proxy server is enabled;and storing the media data on the local proxy server and storing the media data on the central server by the local proxy server if the local proxy server is enabled.
- 28A method for implementing collaboration between a plurality of users operating a media application for processing media data, each of the users having access to a central server and to at least one selectively enabled local proxy server, the method comprising:determining if the local proxy server is enabled;if the local proxy server is enabled, storing media data on the local proxy server, the media data including an identifier;and storing the media data with the identifier on the central server by the local proxy server
- 29A method for implementing collaboration between a plurality of users on a network operating a media application for processing media data, each of the users having access to a central server, the method comprising:connecting a local proxy server to the network;selectively enabling the local proxy server;configuring at least one of the users to recognize the enabled local proxy server and to post the media data for the media application on at least one of the central server and the enabled local proxy server.
- 30A system for implementing collaboration between a plurality of users operating a media application for processing media data, including users interconnected via a first network and connected to a second network, the second network including a central server and the first network including a selectively enabled local proxy server, the system comprising:a memory storing instructions for implementing the media application to process media data;a processor configured to execute the instructions to perform: determining if the local proxy server is enabled;and storing the media data on the local proxy server if the local proxy server is enabled otherwise storing the media data on the central server if the local proxy server is not enabled.
- 43A system for implementing collaboration between a plurality of users operating a media application for processing media data, each of the users having access to a central server and to at least one selectively enabled local proxy server, each of the local proxy server being accessible to only a subset of the users, the system comprising:a memory storing instructions for implementing the media application to process media data;a processor configured to execute the program instructions to perform: determining if the local proxy server is enabled;and storing the media data on the local proxy server and storing the media data on the central server by the local proxy server if the local proxy server is enabled.
- 55A method for implementing collaboration between a plurality of users operating an application for processing project data, including users interconnected via a first network and connected to a second network, the second network including a central server and the first network including a selectively enabled local proxy server, the method comprising:determining if the local proxy server is enabled;and storing the project data on the local proxy server and storing the project data on the central server by the local proxy server if the local proxy server is enabled.
- 56A method for implementing collaboration between a plurality of users operating an application for processing project data, each of the users having access to a central server and to at least one selectively enabled local proxy server, each of the local proxy server being accessible to only a subset of the users comprising, the method comprising:determining if the local proxy server is enabled;and storing the project data on the local proxy server and storing the project data on the central server by the local proxy server if the local proxy server is enabled.
- 57A method for implementing collaboration between a plurality of users operating an application for processing project data, each of the users having access to a central server and to at least one selectively enabled local proxy server, the method comprising:determining if the local proxy server is enabled;if the local proxy server is enabled, storing project data on the local proxy server, the project data including an identifier, and storing the project data on the central server by the local proxy server.
- 58Broadest claimClaim Score 82, broad(NHIP)A method for implementing collaboration between a plurality of users on a network operating an application for processing project data, each of the users having access to a central server, the method comprising:connecting a local proxy server to the network;selectively enabling the local proxy server;configuring at least one of the users to recognize the enabled local proxy server and to post the project data for the application on at least one of the central server and the enabled local proxy server.
- 59A computer-readable medium containing instructions, which if executed by a computing system, cause the computing system to perform a method for implementing collaboration between a plurality of users on a network operating a media application for processing media data, each of the users having access to a central server, the method comprising:connecting a local proxy server to the network;selectively enabling the local proxy server;and configuring at least one of the users to recognize the enabled local proxy server and to post the media data for the media application on at least one of the central server and the enabled local proxy server.
Independent claims11
118 paragraphs in 6 sections, as filed
RELATED APPLICATION
P-0001[0001] This application is related to U.S. patent application Ser. No. ______ entitled, “METHODS AND SYSTEM USING SECONDARY STORAGE TO STORE MEDIA DATA ACCESSIBLE FOR LOCAL AREA USERS,” filed on ______. The disclosure of this application is hereby expressly incorporated by reference.
FIELD
[0002] This invention relates generally to data sharing systems and, more particularly, to methods and system using a local proxy server to process media data for local area users.
BACKGROUND
[0003] Data sharing capabilities have increased tremendously with the popularity of wide area networks (WANs) such as the Internet. For example, disparate users in different countries or continents can share large amounts of shared data. Shared data may include multimedia data, audio data, and/or video data, typically in the form of large data files. Data sharing applications are commonly used to store or “post” shared data on a central server connected to the Internet for access by other users. Thus, a user can access the posted data via the central server.
[0004] One type of data sharing application is a “collaboration application.” A collaboration application allows multiple users to work together on the same project from remote locations. For example, users in California and New York can work on the same project via the Internet through a collaboration application. Typically, in a collaboration application, a user “posts” or stores data for the project on the central server connected to the Internet. Other users connected to the Internet can then request the posted data from the central server. The central server processes these requests to provide the users with posted data for collaboration purposes.
[0005] This configuration is suitable for users in remote locations. However, one limitation with such a configuration is that it is inefficient for multiple users collaborating on a project from the same local area, e.g., users on a local area network (LAN). Often, communicating with a central server can be slow. For example, if the central server is experiencing a high volume of traffic, the central server will be slow in delivering requested data to LAN users. Low bandwidth connections to the central server can exacerbate the situation. Thus, requiring local area users to download data from only a central server inefficiently uses network resources when the data may already exist locally. Furthermore, multiple local area users collaborating on a project using such a configuration can result in data being downloaded multiple times, causing further inefficient use of local area resources.
[0006] There exists, therefore, a need to allow local area users a fast and efficient manner of accessing posted data.
SUMMARY
[0007] Methods and system consistent with the invention, as embodied and broadly described herein, allow local area users to store and access data to and from a local proxy server.
[0008] Consistent with the invention, one method is disclosed for implementing collaboration between a plurality of users operating a media application for processing media data. The users are interconnected via a first network and connected to a second network. The second network includes a central server and the first network includes a selectively enabled local proxy server. The method comprises determining if the local proxy server is enabled. Media data is stored on the local proxy server and stored on the on the central server by the local proxy server if the local proxy server is enabled.
[0009] Consistent with the invention, another method is disclosed for implementing collaboration between a plurality of users operating a media application for processing media data. Each user has access to a central server and to at least one selectively enabled local proxy server. Each local proxy server is accessible to only a subset of the users. The method comprises determining if the local proxy server is enabled. The media data is stored on the local proxy server and stored on the central server by the local proxy server if the local proxy server is enabled.
[0010] Consistent with the invention, another method is disclosed for implementing collaboration between a plurality of users operating a media application for processing media data. Each user has access to a central server and to at least one selectively enabled local proxy server. The method comprises determining if the local proxy server is enabled. If the local proxy server is enabled, the media data is stored on the local proxy server. The media data includes an identifier. The media data with the identifier is stored on the central server by the local proxy server.
[0011] Consistent with the invention, another method is disclosed for implementing collaboration between a plurality of users on a network operating a media application for processing media data. Each user has access to a central server. The method comprises connecting a local proxy server to the network. The local proxy server is selectively enabled. At least one user is configured to recognize the enabled local proxy server and to post media data for the media application on at least one of the central server and the enabled local proxy server.
DESCRIPTION OF THE DRAWINGS
P-0012[0012] The accompanying drawings, which are incorporated in, and constitute a part of the specification, illustrate implementations of the invention and, together with the detailed description, serve to explain the principles of the invention. In the drawings,
P-0013[0013]FIG. 1 is a block diagram of an exemplary system configuration for practicing the invention;
P-0014[0014]FIG. 2 is an internal block diagram of an exemplary computer system for implementing the invention;
P-0015[0015]FIG. 3 is a diagram of a project;
P-0016[0016]FIG. 4 is a diagram of a media application;
P-0017[0017]FIG. 5 is a diagram illustrating media data and object data flow for LAN users collaborating on a project;
P-0018[0018]FIG. 6 is a flow diagram of stages of a first method for storing media data on a local proxy server;
P-0019[0019]FIG. 7 is a flow diagram of stages of a second method for storing media data on a local proxy server;
P-0020[0020]FIG. 8 is a flow diagram of stages of a first method for downloading media data by a local area user;
P-0021[0021]FIG. 9 is a flow diagram of stages of a second method for downloading media data by a local area user;
P-0022[0022]FIG. 10 is a flow diagram of stages of a method for downloading media data by a non-local area user;
P-0023[0023]FIG. 11 is a diagram of an exemplary local proxy server settings interface;
P-0024[0024]FIG. 12 is a diagram of an exemplary name dialog interface;
P-0025[0025]FIG. 13 is a diagram of an exemplary select configuration interface; and
P-0026[0026]FIG. 14 is a diagram of an exemplary local proxy server error dialog interface.
DETAILED DESCRIPTION
P-0027[0027] Reference will now be made in detail to implementations of the invention, examples of which are illustrated in the accompanying drawings. Wherever possible, the same reference numbers will be used throughout the drawings to refer to the same or like parts.
P-0028[0028] The following implementations use a local proxy server to minimize inefficiencies for local area users to share and access data. The local proxy server operates in conjunction with a central server. Local area users can post or store data, e.g., media data, on the local proxy server in order for the data to be accessed locally. The local proxy server can also store the data from the local area users on a central server. Additionally, the local proxy server can copy or download data being stored on the central server for local access by the local area users. In this manner, local area users can utilize the benefits (e.g., higher bandwidth and faster download speed) of storing and accessing media data to and from a local area source (i.e., the local proxy server).
P-0029[0029] Exemplary System Configuration
P-0030[0030]FIG. 1 is block diagram of an exemplary system configuration <b>100</b> for practicing the invention. System configuration <b>100</b> includes a plurality of users <b>130</b>, <b>135</b>, and <b>140</b> configured in a first network <b>190</b> such as, for example, a local area network (LAN) (“LAN <b>190</b>”). Users <b>130</b>, <b>135</b>, and <b>140</b> are coupled to a central server <b>110</b> and user <b>120</b> via a second network <b>160</b> such as, for example, a wide area network (“WAN <b>160</b>”). Within LAN <b>190</b>, LAN users <b>130</b>-<b>140</b> are coupled to a local proxy server <b>150</b>. Local proxy server <b>150</b> is a client of central server <b>110</b> and acts as intermediary between central server <b>110</b> and LAN users <b>130</b>-<b>140</b>.
P-0031[0031] LAN users <b>130</b>-<b>140</b> and user <b>120</b> (“WAN user <b>120</b>”) can share data via WAN <b>160</b> and LAN <b>190</b>. For example, LAN users <b>130</b>-<b>140</b> and WAN user <b>120</b> can share data by collaborating on a project including project data. Project data may comprise media data and object data. Media data is a component of a project and object data is “meta data” associated with a component or element of media data. Object data may embody a change to media data within a project. Examples of media data include digital audio and/or video data, MIDI data, text data, or large data files. Further details of media data and object data are described in FIG. 3.
P-0032[0032] The central server <b>110</b>, LAN users <b>130</b>-<b>140</b> and WAN user <b>120</b>, and local proxy server <b>150</b> will now be described. Central server <b>110</b> is a computing system that can communicate with LAN users <b>130</b>-<b>140</b>, WAN user <b>120</b>, local proxy server <b>150</b>, and any other devices connected to WAN <b>160</b>. Examples of such a computing system include Apple® Power Macintoshes or Intel® Pentium-based personal computers running a version of the Windows® operating system.
P-0033[0033] Central server <b>110</b> may include client/server software and/or hardware for implementing collaboration between LAN users <b>130</b>-<b>140</b> and WAN user <b>120</b>. For example, central server <b>110</b> can store, manage, and distribute media data and object data in a project database to facilitate collaboration between LAN users <b>130</b>-<b>140</b> and WAN user <b>120</b> on the same project using techniques described in U.S. application Ser. No. 09/401,318 (“the '318 application”) entitled “SYSTEM AND METHOD FOR ENABLING MULTIMEDIA PRODUCTION COLLABORATION OVER A NETWORK,” which was filed on Sep. 23, 1999, and is assigned to the same assignee of this application.
P-0034[0034] Attached to central server <b>110</b> is a storage device (“project data storage <b>185</b>”) storing project data including media data (“media data <b>180</b>”). Central server <b>110</b> can store other types of project data including object data in project data storage <b>185</b>. In one implementation, central server <b>110</b> stores and manages media data and object data in a project database within project data storage <b>185</b>. Examples of project data storage <b>185</b> include a hard disk, compact disc read/write (CD R/W) drives, tape drives, random access memory (RAM), or other like memory devices. Although one storage device is shown, any number of project data storage devices may be attached to central server <b>110</b>.
P-0035[0035] To facilitate collaboration between users, central server <b>110</b> handles authentication tasks. For example, central server <b>110</b> can control which users (including local proxy server <b>150</b>) are able to access or post project data (i.e., media data and object data) for a particular project. Central server <b>110</b> also provides notifications to users of available project data. For example, central server <b>110</b> can notify LAN users <b>130</b>-<b>140</b> and WAN user <b>120</b> (if all are collaborating on the same project) of posted media data and object data related to the project. Central server <b>110</b> can also notify local proxy server <b>150</b> of posted media data and object data. Central server <b>110</b> can notify these users or devices using techniques described in the '318 application noted above. These users can thus request the media data or object data from central server <b>110</b> after being notified. Accordingly, central server <b>110</b> can provide media data and object data “on demand” or upon request by a user.
P-0036[0036] Central server <b>110</b> can also handle download requests of project data from LAN users <b>130</b>-<b>140</b>, WAN user <b>120</b>, and local proxy server <b>150</b>. Central server <b>110</b> can send status updates to these users or devices regarding a status of a download request or if project data is being stored on central server <b>110</b>. For example, if requested project data has not been completely stored or posted central server <b>110</b>, central server <b>110</b> can send status updates to the users or devices connected via WAN <b>160</b>. Although central server <b>110</b> is shown connected to WAN <b>160</b> outside of LAN <b>190</b>, central server <b>110</b> can be located within LAN <b>190</b> to facilitate collaboration from within LAN <b>190</b>.
P-0037[0037] Referring to FIG. 1, central server <b>110</b> stores media data from LAN users <b>130</b>-<b>140</b> or WAN user <b>120</b> as media data <b>180</b> in media storage <b>185</b>. Central server <b>110</b> can receive media data <b>180</b> from LAN users <b>130</b>-<b>140</b> through local proxy server <b>150</b>. For example, LAN users <b>130</b>-<b>140</b>, when posting media data, can store media data on local proxy server <b>150</b>. Local proxy server <b>150</b> can then store the media data for the users on central server <b>110</b> as media data <b>180</b>. Alternatively, LAN users <b>130</b>-<b>140</b> can send media data directly to central server <b>110</b>. The same process can be implemented for other types of data, e.g., object data.
P-0038[0038] LAN users <b>130</b>-<b>140</b> and WAN user <b>120</b> are computing systems, which may include the same type of computing system as central server <b>110</b>. LAN users <b>130</b>-<b>140</b> and WAN user <b>120</b> include a media application <b>170</b> for sharing data. The users can use media application <b>170</b> to share data by collaborating on a project using media data and object data. For example, LAN users <b>130</b>-<b>140</b> and WAN user <b>120</b> can “log in” to central server <b>110</b> and navigate to a session regarding a project and collaborate on the project with other users using media application <b>170</b>. Central server <b>110</b> may include one or more applications to communicate with media application <b>170</b>.
P-0039[0039] Examples of media application <b>170</b> include Logic Audio from Emagic Inc. of Grass Valley, Calif.; Cubase from Steinberg Soft-und Hardware GmbH of Hamburg, Germany; or ProTools from Digidesign, Inc. of Palo Alto, Calif. Media application <b>170</b> may also be implemented as a client/server type application capable of sharing data with other users. Further details of the operation of media application <b>170</b> are described in FIG. 4.
P-0040[0040] Media application <b>170</b> can operate with one or more functions, procedures, routines, or application program interfaces (APIs) that allow media application <b>170</b> to collaborate, e.g., on a project, with other users and applications. For example, the collaboration system of Rocket Network, Inc. of San Francisco, Calif. can be implemented as an application program interface (API) to media application <b>170</b> in order for LAN users <b>130</b>-<b>140</b> and WAN user <b>120</b> users to collaborate on a project over WAN <b>160</b>. This collaboration system can be based on the system described in the '318 application noted above.
P-0041[0041] In one implementation, such a collaboration system is configured to communicate with a server application <b>175</b> operating within local proxy server <b>150</b>. The collaboration system within LAN users <b>130</b>-<b>140</b> and WAN user <b>120</b> can be configured to recognize central server <b>110</b> and/or local proxy server <b>150</b> when sending or receiving project data as described below.
P-0042[0042] Within LAN <b>190</b>, LAN users <b>130</b>-<b>140</b> can store media data (e.g., media data <b>180</b>) on local proxy server <b>150</b> and store object data on central server <b>110</b>. Alternatively, LAN users <b>130</b>-<b>140</b> can store both media data and object data on either central server <b>110</b> or local proxy server <b>150</b>. If LAN users <b>130</b>-<b>140</b> post media data or object data on local proxy server <b>150</b>, local proxy server <b>150</b> can forward or store the project data from the users on central server <b>110</b>. Additionally, local proxy server <b>150</b> can copy or download media data or object being stored on central server <b>110</b>. In this manner, LAN users <b>130</b>-<b>140</b> can copy project data being stored on central server <b>110</b> from local proxy server <b>150</b>, thereby accessing project data locally, e.g., on LAN <b>190</b>.
P-0043[0043] LAN users <b>130</b>-<b>140</b>, when posting media data or object data, can create one or more data files to store the data on local proxy server <b>150</b>. These files can have unique identifiers created by a user as described in further detail below. LAN users <b>130</b>-<b>140</b> can manage which data files are being stored on local proxy server <b>150</b> and/or central server <b>110</b>. LAN users <b>130</b>-<b>140</b> can inform other users of specific data files being stored on local proxy server <b>150</b> or central server <b>110</b>. LAN users <b>130</b>-<b>140</b> can also inform local proxy server <b>150</b> or central server <b>110</b> when a requested data file or project data has been completely downloaded.
P-0044[0044] Local proxy server <b>150</b> is a computing system, which may include the same computing system as central server <b>110</b>, LAN user <b>130</b>-<b>140</b>, or WAN user <b>120</b>. Attached to local proxy server <b>150</b> is a local storage <b>190</b>. Local proxy server <b>150</b> can provide a shared storage system for LAN users <b>130</b>-<b>140</b> using local storage <b>190</b>. Local proxy server <b>150</b> can store project data (e.g., media data <b>180</b>) in local storage <b>190</b> for LAN users <b>130</b>-<b>140</b>, or, alternatively, any user connected to LAN <b>190</b> via one or more networks. The project data can be stored as one or more data files. Other users, e.g., WAN user <b>120</b> may also access data in local storage <b>190</b> from local proxy server <b>150</b>.
P-0045[0045] Local storage <b>190</b> may represent a database storage system having one or more storage devices, a stand-alone storage device providing shared data access for LAN users <b>130</b>-<b>140</b>, or other appropriate shared storage systems or devices. Alternatively, storage devices contained within local proxy server <b>150</b> may operate as a shared stored device. Local proxy server <b>150</b> can provide standard network data file sharing capabilities or read/write capabilities to files stored in local storage <b>190</b>.
P-0046[0046] Local proxy server <b>150</b> can be selectively enabled for each individual LAN user <b>130</b>-<b>140</b> to permit storing and downloading of project data including media data <b>180</b> or object data (not shown) from local storage <b>190</b> using the methods described below. For example, an API operating with media application <b>170</b> can be configured to recognize local proxy server <b>150</b> and to send and receive project data from local proxy server <b>150</b>.
P-0047[0047] Local proxy server <b>150</b> includes a server application <b>175</b>, which can communicate with media application <b>170</b> to handle requests for media data or object data from LAN users <b>130</b>-<b>140</b> or store media data or object on central server <b>110</b> for the LAN users <b>130</b>-<b>140</b>. Server application <b>175</b> can be software operating within local proxy server <b>150</b> to handle communications between central server <b>110</b> and LAN users <b>130</b>-<b>140</b>. Server application <b>175</b> can maintain storage of media data (“media data <b>180</b>”) or object data (not shown) in local storage <b>190</b> as one or more data files for access by LAN users <b>130</b>-<b>140</b>. Proxy server application <b>175</b> may also be used to transfer such data files to LAN users <b>130</b>-<b>140</b> or other users. Proxy server application <b>175</b> can be used to identify, organize, and reference data files in local storage <b>190</b>.
P-0048[0048] Proxy server application <b>175</b> provides download status information to LAN users <b>130</b>-<b>140</b> if requested data files are being downloaded from central server <b>110</b>. Proxy server application <b>175</b> can determine the location of data files being stored in local storage <b>190</b> use the same identifiers for data files generated by LAN users <b>130</b>-<b>140</b>. Proxy server application <b>175</b> can also maintain a connection or session with central server <b>110</b> for LAN users <b>130</b>-<b>140</b>. In one implementation, local proxy server <b>150</b>, using proxy server application <b>175</b>, can download project data, data files, or other types of data for LAN users <b>130</b>-<b>140</b> even if any of the users are not in a direct connection or session with a project maintained by central server <b>110</b>.
P-0049[0049] Local proxy server <b>150</b> may also be accessible to central server <b>110</b> and WAN user <b>120</b>. For example, central server <b>110</b> or WAN user <b>120</b> may store and download project data to and from local proxy server <b>150</b>. Local proxy server <b>150</b> may operate with applications to identify, organize, and reference posted media data <b>180</b> for LAN users <b>130</b>-<b>140</b> or other users (e.g., WAN user <b>120</b>). Local proxy server <b>150</b> may store media data <b>180</b> or other types of data (e.g., object data) in a compressed or uncompressed format and provide password protection for media data <b>180</b> or other types of data. In one example, LAN users <b>130</b>-<b>140</b> must logon to local proxy server <b>150</b> to access media data <b>180</b>.
P-0050[0050] WAN <b>160</b> may be the Internet or a proprietary network. LAN <b>190</b> may be an Ethernet, Token Ring, ARCNET, fiber distributed data interface (FDDI) local area network, or other appropriate local area networks. Although not shown in FIG. 1, additional network devices may be connected to WAN <b>160</b> such as, for example, network routers, switches, hubs, or gateways. System configuration <b>100</b> is thus suitable for communicating data on LAN <b>190</b> and WAN <b>160</b> using standard local and wide area communication protocols.
P-0051[0051] The process of collaborating on a project by LAN users <b>130</b>-<b>140</b> and WAN user <b>120</b> will now be described. LAN users <b>130</b>-<b>140</b> and WAN user <b>120</b> logon on to a project via central server <b>110</b>. To make contributions to the project, WAN user <b>120</b> can store project data on central server <b>110</b> and LAN users <b>130</b>-<b>140</b> can store project data on local proxy server <b>150</b>, if enabled; otherwise to central server <b>110</b>. If enabled, local proxy server <b>150</b> stores project data received from LAN users <b>130</b>-<b>140</b> on central server <b>110</b>. In this manner, LAN users <b>130</b>-<b>140</b> only store project data once on local proxy server <b>150</b>. Additionally, because project data is stored on local proxy server <b>150</b>, project data can be accessed locally by LAN users <b>130</b>-<b>140</b>. Central server <b>110</b>, LAN users <b>130</b>-<b>140</b>, WAN user <b>120</b>, and local proxy server <b>150</b> can send and receive project data using techniques described in the '318 application noted above.
P-0052[0052] To make a change to a project, e.g., to make a change to media data within the project, LAN users <b>130</b>-<b>140</b> and WAN user <b>120</b> can send object data embodying the change to central server <b>110</b>. Central server <b>110</b> can distribute the object data to users or clients (including local proxy server <b>150</b>) collaborating on the same project. LAN users <b>130</b>-<b>140</b> can also send object data to local proxy server <b>150</b>, which can forward the object data from LAN users <b>130</b>-<b>140</b> to central server <b>110</b>. Additionally, central server <b>110</b> can send object data to local proxy server <b>150</b>, which can forward the object data from central server <b>110</b> to LAN users <b>130</b>-<b>140</b>.
P-0053[0053] To download project data, LAN users <b>130</b>-<b>140</b> and WAN user <b>120</b> can request project data from central server <b>110</b> directly. LAN users <b>130</b>-<b>140</b> can also request project data from local proxy server <b>150</b>. If local proxy server <b>150</b> does not contain the requested project data, local proxy server <b>150</b> can request it from central server <b>110</b> and then distribute it to LAN users <b>130</b>-<b>140</b>. Local proxy server <b>150</b> can also mirror or store project data being stored on central server <b>110</b> by maintaining an active connection with central server <b>110</b>.
P-0054[0054] Thus, in the example of FIG. 1, because media data <b>180</b> or other data can be mirrored or stored on local proxy server <b>150</b>, LAN users <b>130</b>-<b>140</b> are capable of accessing media data <b>180</b> within LAN <b>190</b>. Additionally, if, e.g., media data <b>180</b> is not stored in local storage <b>190</b>, local proxy server <b>150</b> can request the data from central server <b>110</b> to make it accessible to LAN users <b>130</b>-<b>140</b>. As such, the fast high-bandwidth qualities of a LAN are utilized for LAN users <b>130</b>-<b>140</b>.
P-0055[0055] Exemplary Computer System
P-0056[0056]FIG. 2 is an internal block diagram of an exemplary computer system <b>200</b> for implementing the invention. Computer system <b>200</b> may represent the internal components of LAN users <b>130</b>-<b>140</b>, WAN user <b>120</b>, central server <b>110</b>, or local proxy server <b>150</b> as shown in FIG. 1. Computer system <b>200</b> can perform the functions required by media application <b>170</b>, as described in the methods below.
P-0057[0057] Computer system <b>200</b> includes several components all interconnected via a system bus <b>260</b>. An example of system bus <b>260</b> is a bi-directional system bus having thirty-two data and address lines for accessing a memory <b>265</b> and a cache memory <b>290</b> and for transferring data among the components. Alternatively, multiplexed data/address lines may be used instead of separate data and address lines. Examples of memory <b>265</b> and cache memory <b>290</b> include a random access memory (RAM), read-only memory (ROM), video memory, flash memory, or other appropriate memory devices. Additional memory devices may be included in computer system <b>200</b> such as, for example, fixed and removable media (including magnetic, optical, or magnetic optical storage media). These types of media may also operate as cache memory.
P-0058[0058] Computing system <b>200</b> may communicate with other computing systems (e.g., central server <b>110</b> or WAN user <b>120</b>) via a network interface <b>285</b>. Examples of network interface <b>285</b> include Ethernet or dial-up telephone connections. Computer system <b>200</b> contains a central processing unit (CPU) <b>255</b>, examples of which include the Pentium® family of microprocessors manufactured by Intel® Corporation. However, any other suitable microprocessor, micro-, mini-, or mainframe type processor may be used for computer system <b>200</b>. CPU <b>255</b> provides the support for storing and downloading media data and is configured to carry out the methods described below.
P-0059[0059] Memory <b>265</b> may store instructions or code for implementing a program (e.g., media application <b>170</b>) and an application programming interface (API) (e.g., local proxy server API <b>193</b> as shown in FIG. 4). CPU <b>255</b> may execute instructions for media application <b>170</b> and local proxy server API <b>193</b> to perform the methods described herein. Cache memory <b>290</b> may store media data (or data files) for storing or downloading to and from central server <b>110</b> and/or local proxy server <b>150</b>. Cache memory <b>290</b> may store other types of data, e.g., object data as shown in FIG. 3, to allow LAN users <b>130</b>-<b>140</b> to collaborate on a project. Computer system <b>200</b> may also receive input via input/output (I/O) devices <b>270</b>. Examples of I/O devices <b>270</b> include a keyboard, pointing device, or other appropriate input devices. I/O devices <b>270</b> may also represent external storage devices or computing systems or subsystems. Computer system <b>200</b> may also present information (e.g., media data or user interfaces as described in FIGS. <b>11</b>-<b>14</b>) via a display <b>280</b>.
P-0060[0060] Project
P-0061[0061]FIG. 3 is a diagram of a project <b>300</b>. Project <b>300</b> may include project data stored on central server <b>110</b>, e.g., in media storage <b>185</b>. LAN users <b>130</b>-<b>140</b> and WAN user <b>120</b> may collaborate on project <b>300</b>. That is, LAN users <b>130</b>-<b>140</b> may work together to create a data file representing, for example, a musical or multimedia arrangement. Such collaboration may be conducted in concurrent sessions or individually by each user at different instances in time.
P-0062[0062] Referring to FIG. 3, project <b>300</b> includes sets <b>320</b>, <b>322</b>, <b>324</b>, and <b>326</b> of object data tied to sets <b>310</b>, <b>312</b> and <b>314</b> of media data. In particular, sets <b>320</b> and <b>322</b> of object data are associated with set <b>310</b> of media data; set <b>324</b> of object data is associated set <b>312</b> of media data; and set <b>326</b> of object data is associated with set <b>314</b> of media data. Project <b>300</b> may also include a set <b>330</b> of other data, e.g., this may contain a list of all users collaborating on project <b>300</b>.
P-0063[0063] Sets <b>310</b>, <b>312</b>, and <b>314</b> of media data are components of project <b>300</b> in which user modifications or changes can be made. Sets <b>320</b>, <b>322</b>, <b>224</b>, and <b>326</b> of object data are “meta data” associated with sets <b>310</b>, <b>312</b>, and <b>314</b> of media data. Object data may represent a change or modification of an element of media data. For example, a change or modification to set <b>310</b> of media data can be embodied in sets <b>320</b> and <b>322</b> of object data.
P-0064[0064] Referring back to FIG. 1, to collaborate on project <b>300</b> between LAN users <b>130</b>-<b>140</b>, LAN user <b>130</b> can post set <b>310</b> of media data on local proxy server <b>150</b> and sets <b>320</b> and <b>322</b> of object data on central server <b>110</b>. Local proxy server <b>150</b> can store set <b>310</b> of media data on local storage <b>190</b> and on central server <b>110</b> thereby allowing set <b>310</b> of media data to be accessible locally for LAN users <b>135</b> and <b>140</b>. Central server <b>110</b> notifies LAN users <b>135</b> and <b>140</b> of the posted set <b>310</b> of media data and sets <b>320</b> and <b>322</b> of object data. LAN users <b>130</b> and <b>140</b> can thus download set <b>310</b> of posted media data from local proxy server <b>150</b> and sets <b>320</b> and <b>322</b> of object data from central server <b>110</b>. Alternatively, sets <b>320</b> and <b>322</b> of object data can also be posted and downloaded to and from local proxy server <b>150</b>.
P-0065[0065] Media Application
P-0066[0066]FIG. 4 shows media application <b>170</b> in greater detail. For LAN users <b>130</b>-<b>140</b> or WAN user <b>120</b>, media application <b>170</b> includes a local proxy server application program interface (API) <b>193</b> (“API <b>193</b>”). API <b>193</b> is a software component tied into media application <b>170</b>. API <b>193</b> includes one or more functions, procedures, routines, or sub-routines that implement processes to interface media application <b>170</b> to a media cache <b>290</b>, central server <b>110</b>, and local proxy server <b>150</b>. Alternatively, the processes performed by API <b>193</b> can be implemented by media application <b>170</b> alone. Media cache <b>290</b> can store project <b>300</b> data for media application <b>170</b>.
P-0067[0067] API <b>193</b> can be configured or programmed to implement the methods described below. For example, the collaboration system of Rocket Network, Inc. can be implemented as API <b>193</b> and be configured or programmed to selectively enable local proxy server <b>150</b> for use by LAN users <b>130</b>-<b>140</b> using the techniques described in FIGS.<b>11</b>-<b>14</b>. In one implementation, local proxy server <b>150</b> can be selectively enabled for use by LAN users by configuring or programming API <b>193</b> to recognize and to post/download media data and/or object data to and from local proxy server <b>150</b>.
P-0068[0068] To post media data, API <b>193</b> can send media data stored in media cache <b>290</b> to central server <b>110</b> or local proxy server <b>150</b>. To download posted media data, API <b>193</b> can copy posted media from central server <b>110</b> or local proxy server <b>150</b> and store the data in media cache <b>290</b>. The above process can be implemented for object data.
P-0069[0069] To communicate with central server <b>110</b> or local proxy server <b>190</b>, API <b>193</b> may use a File Transfer Protocol (FTP) or other standard file sharing protocols to transfer and access media data to and from central server <b>110</b> or local proxy server <b>150</b>. API <b>193</b> can be seamlessly integrated into media application <b>170</b> such that media application <b>170</b> is unaware that media data is being stored or downloaded from local proxy server <b>150</b>.
P-0070[0070] API <b>193</b> may perform other types of functions. For example, API <b>193</b> may determine whether posted media data <b>180</b> is stored on local proxy server <b>150</b> and access it from local proxy server <b>150</b> if requested by media application <b>170</b>. If API <b>193</b> determines that posted media data <b>180</b> is not stored on local proxy server <b>150</b>, API <b>193</b> may download posted media data <b>180</b> from central server <b>110</b>. API <b>193</b> can also determine if media data (or data files) cached or stored in media cache <b>290</b> is stored on local proxy server <b>150</b>. Additionally, API <b>193</b> may provide interfaces (e.g., as shown in FIGS. <b>11</b>-<b>14</b>) for a user to configure preferences for local proxy server <b>150</b>, to display media data, to provide a status of the storing or downloading process.
P-0071[0071] Object and Media Flow
P-0072[0072]FIG. 5 is a diagram of media data and object data flow for LAN users <b>130</b>-<b>140</b> collaborating on a project. LAN users <b>130</b>-<b>140</b> and WAN user <b>120</b> are shown collaborating on a project (e.g., project <b>300</b>). Local proxy server <b>150</b> can act as a client to central server <b>110</b> and act as an intermediary between central server <b>110</b> and LAN users <b>130</b>-<b>140</b>.
P-0073[0073] Referring to FIG. 5, LAN users <b>130</b>-<b>140</b> store or post media (“media data”) on local proxy server <b>150</b>. In this manner, media data being stored or posted by LAN users <b>130</b>-<b>140</b> can be accessed locally on LAN <b>190</b> via local proxy server <b>150</b>. Local proxy server <b>150</b> stores or posts media data from LAN users <b>130</b>-<b>140</b> on central server <b>110</b>. LAN users <b>130</b>-<b>140</b> can avoid posting or storing media data directly to central server <b>110</b> by using local proxy server <b>150</b>. Local proxy server <b>150</b> can also copy or mirror media data being stored on central server <b>110</b>. For example, if WAN user <b>120</b> posts or stores media data for a project on central server <b>120</b>, local proxy server <b>150</b> can copy the media data being posted by WAN user <b>120</b>. In this manner, posted media data by WAN user <b>120</b> can be accessed locally by LAN users <b>130</b>-<b>140</b> instead of downloading the media data from central server <b>110</b>.
P-0074[0074] To make changes to a project, LAN users <b>130</b>-<b>140</b> or WAN user <b>120</b> can store or post object data to central server <b>110</b>. As described previously, object data can embody a specific change to media data. Alternatively, LAN users <b>130</b>-<b>140</b> can also post or store object data to local proxy server <b>150</b>, which stores or posts the object data to central server <b>110</b> for the local area users. Local proxy server <b>150</b> can also copy or mirror object data being stored on central server <b>110</b> for access by LAN users <b>130</b>-<b>140</b>. LAN users <b>130</b> -<b>140</b> and WAN user <b>120</b> can also access object data from central server <b>110</b>.
P-0075[0075] Storing Media Data on Local Proxy Server
P-0076[0076] The following flow diagrams detail methods for storing media data on local proxy server <b>150</b>. The following methods can be implemented for storing or mirroring other types of data on local proxy server <b>150</b> including object data, text data, image data, graphical data, binary data, compressed data, rendered data, or any combination of the above data.
P-0077[0077]FIG. 6 is a flow diagram of stages of a first method for storing media data on local proxy server <b>150</b>. This method can be implemented for one or more data files containing media data.
P-0078[0078] After the process begins, a check is made to determine if local proxy server <b>150</b> is enabled (stage <b>602</b>). This check can be made to determine if a local proxy server is present on LAN <b>190</b>. LAN users <b>130</b>-<b>140</b> or any other local area user can enable local proxy server <b>150</b> connected in LAN <b>190</b> by using interfaces such as those shown in FIGS. <b>11</b>-<b>14</b>. If local proxy server <b>150</b> is not enabled, media data is stored or posted on central server <b>110</b> (stage <b>604</b>).
P-0079[0079] If local proxy server <b>150</b> is enabled, the media data is stored or posted on local proxy server <b>150</b> (stage <b>606</b>). For example, a LAN user can determine if local proxy server <b>150</b> is enabled within LAN <b>190</b>, and, if enabled, store media data on local proxy server <b>150</b>. A user can queue media data to be stored on local proxy server <b>150</b>. The user can also inform central server <b>110</b> and local proxy server <b>150</b> when it is done storing media data.
P-0080[0080] Local proxy server <b>150</b> then stores or posts the media data on central server <b>110</b> (<b>608</b>). Local proxy server <b>150</b> can queue media data to be stored on central server <b>110</b>. Local proxy server <b>150</b> can inform central server <b>110</b> when it is done storing media data on it.
P-0081[0081] Local proxy server <b>150</b> is thus responsible for storing or posting the media data to central server <b>150</b> for LAN users <b>130</b>-<b>140</b>. Local proxy server <b>150</b> can also copy or download media data being stored or posted on central server <b>110</b> by other users connected on WAN <b>160</b>. Local proxy server <b>150</b> can operate behind the scenes of the collaboration between LAN users <b>130</b>-<b>150</b> and WAN user <b>120</b> to copy data being stored on central server <b>110</b>. For example, media data <b>180</b> being stored on central server <b>110</b> can be mirrored on local proxy server <b>150</b> for access by LAN users <b>130</b>-<b>140</b> via LAN <b>190</b>.
P-0082[0082]FIG. 7 is a flow diagram of stages of a second method for storing media data on local proxy server <b>150</b>. This method can be implemented for one or more data files containing media data.
P-0083[0083] After the process begins, a unique identifier (ID) or file name is generated for media data (stage <b>702</b>). Examples of a unique identifier may include a globally unique ID (GUID) identifying a version or attribute of the media data. By using a GUID, media data on local proxy server <b>150</b> can be differentiated. Alternatively, a unique ID can be generated for groups of media data, e.g., by a common project. That is, folders can be created to store common media data and only a unique folder name is required.
P-0084[0084] In one implementation, if a standard filing system (such as UNIX) is used to organize and store the media data, attributes such as: “File Creator”, “User Name”, “File Creation Time”, and “Original File Name” can be used. With these attributes, a unique file name or ID can be generated concatenating the Creator User Account Name, the File Creation Time and the Original File Name. (e.g. Matt1-123456789456123-datafile1.doc). This ensures that the name of each media data will be unique. By using such an ID generating process, an exemplary folder hierarchy is shown below.
P-0085[0085] Parent Directory (root directory on the local proxy server)
P-0086[0086] Project1 (folder)
P-0087[0087] Aaron1-123456789123-datafile1.doc (file)
P-0088[0088] Mike1-894576890532-datafile1.doc (file)
P-0089[0089] Project2 (folder)
P-0090[0090] Aaron1-72384732874-picture.jpg (file)
P-0091[0091] Mike1-77773234234-mynotes.txt (file)
P-0092[0092] Project3 (folder) . . .
P-0093[0093] As shown in the above example, each folder name (e.g., Project1 to Project3) is unique and media data name within the folder is unique. After a unique ID is generated for the media data, the media data is posted on local proxy server <b>150</b> with its unique ID (stage <b>704</b>). While the media data is being posted or stored, an indication can be provided to LAN users <b>130</b>-<b>140</b> that posting of the media data has not yet been completely posted. After the media data is completely posted on local proxy server <b>150</b>, a completion signal is generated (stage <b>706</b>). This completion signal notifies other LAN users <b>130</b>-<b>140</b> that the media data has been completely posted or stored on local proxy server <b>150</b> and is ready for downloading.
P-0094[0094] By using the completion signal, a user can avoid downloading an incomplete copy of media data. The completion signal can be indicated, e.g., by appending “.cmpit” to the unique ID for the media data, storing an indication in a database record, or checking the media data size on local proxy server <b>150</b> with the required file size for the media data. Other examples of the completion signal include local proxy server <b>150</b> broadcasting a signal that the media data has been successfully posted. The completion signal may also be based on media data attributes.
P-0095[0095] Downloading Media Data by Local Area User
P-0096[0096] The following flow diagrams detail methods for downloading media data from local proxy server <b>150</b>. The following methods describe using a completion signal to ensure that stored media data is completely downloaded. The following methods can be implemented for downloading other types of data including object data, text data, image data, graphical data, binary data, compressed data, rendered data, or any combination of the above data.
P-0097[0097]FIG. 8 is a flow diagram of stages of a first method for downloading media data from local proxy server <b>150</b>. This method can be implemented with one or more data files containing media data.
P-0098[0098] Initially, a LAN user is requesting media data to be downloaded. A check is made to determine if local proxy server <b>150</b> is enabled (stage <b>802</b>). If local proxy server <b>150</b> is not enabled, the requested media data is downloaded from central server <b>110</b> (stage <b>808</b>). If local proxy server <b>150</b> is enabled, a unique ID for the media data is generated as described in FIG. 7 (stage <b>804</b>). This stage is optional if the unique ID has been previously generated. The unique ID can be generated for the media data before implementing this method.
P-0099[0099] A check is then made to determine if the media data having the unique ID is stored on local proxy server <b>150</b> (stage <b>806</b>). If no media data having the unique ID is stored on local proxy server <b>150</b>, the media data is downloaded from central server <b>110</b> (stage <b>808</b>). If the media data having the unique ID is stored on local proxy server <b>150</b>, a check is made to determine if there is a completion signal for the media data (stage <b>810</b>). If there is no completion signal, the media data is downloaded from central server <b>110</b> (stage <b>808</b>). If there is a completion signal, the media data is downloaded from local proxy server <b>150</b> (stage <b>812</b>). The media data can then be stored in a cache media <b>290</b> within one of the LAN users <b>130</b>-<b>140</b> or other storage devices.
P-0100[0100]FIG. 9 is a flow diagram of stages of a second method for downloading media data from local proxy server <b>150</b>. This method can be implemented for one or more data files containing media data.
P-0101[0101] Initially, a LAN user is requesting media data to be downloaded. A check is made to determine if local proxy server <b>150</b> is enabled (stage <b>902</b>). If local proxy server <b>150</b> is not enabled, the requested media data is downloaded from central server <b>110</b> (stage <b>903</b>). If local proxy server <b>150</b> is enabled, a unique ID for the media data is generated as described in FIG. 7 (stage <b>904</b>). This stage is optional if the unique ID has been previously generated. The unique ID can be generated for the media data before implementing this method.
P-0102[0102] A check is then made to determine if the media data having the unique ID is stored on local proxy server <b>150</b> (stage <b>906</b>). If no media data having the unique ID is stored on local proxy server <b>150</b> and local proxy server <b>150</b> is enabled, the media data is copied from central server <b>110</b> by local proxy server <b>150</b> (stage <b>907</b>). That is, local proxy server <b>150</b> downloads the requested media data with the unique ID from central server <b>150</b>. From stage <b>907</b>, the process continues to stage <b>912</b> to wait for a completion signal.
P-0103[0103] If media data having the unique ID is stored on local proxy server <b>150</b>, a check is made to determine if there is a completion signal (stage <b>910</b>). If there is no completion signal, the process waits until a completion signal is generated or found (stage <b>912</b>). The completion signal indicates that the media data is completely stored on local proxy server <b>1150</b>. Alternatively, during stage <b>912</b>, a streaming process can be implemented to download segments of the requested media data as soon as the segments become available on local proxy server <b>150</b>.
P-0104[0104] A user may receive status updates regarding the requested media data. For example, the user may receive an update that the requested media data is currently being stored on local proxy server <b>150</b> and local proxy server <b>150</b> will inform the user when the media data is completely stored using a completion signal.
P-0105[0105] Once the completion signal is found, the media data is downloaded from local proxy server <b>150</b> (stage <b>914</b>). The above method can be modified such that the media data is downloaded from local proxy server <b>150</b> within a predetermined time period. The downloaded media data can then be stored in a cache media <b>290</b> within one of the LAN users <b>130</b>-<b>140</b> or other storage devices.
P-0106[0106] Downloading Media Data by Non-Local Area User
P-0107[0107]FIG. 10 is a flow diagram of stages of a method for downloading media data from central server <b>110</b>. The following method can be implemented for one or more data files containing media data.
P-0108[0108] Initially, a user (not accessible to a local proxy server) is requesting media data to be downloaded from central server <b>110</b>. A check is made to determine if the requested media data is on central server <b>110</b> (stage <b>1002</b>). If the requested media data is on central server <b>110</b>, the requested media data is downloaded from central server <b>110</b> (stage <b>1003</b>). If the requested media data is not on central server <b>110</b>, the user waits until the requested data is on central server <b>110</b> (stage <b>1004</b>). For instance, a local proxy server may be in the process of storing or posting the media data to central server <b>110</b>.
P-0109[0109] During this wait process, the user may receive status updates regarding the progress of the requested media data. Alternatively, during this stage, a streaming process can be implemented to download segments of the requested media data as soon as the segments become available on central server <b>110</b>. Once the requested media is on central server <b>110</b> (which can be indicated by a completion signal), the requested media data is downloaded from central server <b>110</b> (stage <b>1006</b>).
P-0110[0110] Selectively Enabling Local Proxy Server
P-0111[0111] FIGS. <b>11</b>-<b>14</b> illustrate exemplary user interfaces <b>1110</b>, <b>1210</b>, <b>1310</b>, and <b>1410</b>, which may be provided by media application <b>170</b> or API <b>193</b> for LAN users <b>130</b>-<b>140</b>, to selectively-enable local proxy server <b>150</b> in performing the methods described above.
P-0112[0112] Referring to FIG. 11, user interface <b>1110</b> depicts a local proxy server (or mirror settings) dialog interface for selectively enabling local proxy server <b>150</b>. User interface <b>1110</b> includes a plurality of inputs <b>1115</b> through <b>1150</b> allowing a user to configure settings for posting or downloading media data. Media application <b>170</b> can provide a menu option or an access button to initiate user interface <b>1110</b>.
P-0113[0113] At interface <b>1110</b>, a user can input “Server URL”, “Pathname”, “Username”, and “Password” information at inputs <b>1120</b>, <b>1125</b>, <b>1130</b>, and <b>1135</b>. A window <b>1140</b> can display sessions or projects assigned to the user. When posting or receiving media data for a session for the first time, user interface <b>1110</b> presents an options window <b>1150</b> allowing a user to choose one of the following: “Ask Me What to Do”, “Don't Mirror”, or “Assign To:”. If the “Ask Me What to DO” option is selected, a help type window is displayed informing the user of options that can be selected for user interface <b>1110</b>. If the “Don't Mirror” option is selected, local proxy server <b>150</b> is not enabled and media data is posted directly on central server <b>110</b>.
P-0114[0114] If “Assign To:” option is selected, a drop down menu is provided that allows a user to choose one of the following options: “Add Configuration”, “Remove Session”, “Rename Configuration”, “Delete Configuration”, or “Save Configuration”. If the “Add Configuration” option is selected, interface <b>1210</b>, as shown in FIG. 12, is provided to the user. The user can then add a name at input <b>1215</b> for the new configuration to be created. If the “Remove Session” option is selected, a list of session names is provided in which the user can select to have removed from interface <b>1110</b>. If the “Rename Configuration”, “Delete Configuration”, and “Save Configuration” options are selected, an interface is provided to allow the user to perform the corresponding function. With the above options, a user can configure settings to copy and download media from local proxy server <b>150</b>.
P-0115[0115] Referring to FIG. 13, user interface <b>1310</b> depicts a select configuration dialog for creating or loading a session. A user can assign or select a session using input <b>1320</b>. An “Edit Local Proxy Server Settings” option <b>1330</b> is provided for a user. If a user selects option <b>1330</b>, the user can change or edit the local proxy server settings for the selected session as shown by interface <b>1110</b> of FIG. 11. Referring to FIG. 14, user interface <b>1410</b> is provided if there is an error in communicating with local proxy server <b>150</b>. For example, window <b>1415</b> can display a message such as “Cannot communicate with Local Proxy Server. Edit your settings and select OK.” Thus, user interface <b>1410</b> provides a “Edit Cache Mirror Settings” option <b>1420</b> or “Don't Use Local Proxy Server” option <b>1425</b> for a user to select. The user can select option <b>1420</b> to change settings to correct the error or can select option <b>1425</b> to avoid communicating with local proxy server <b>150</b>.
P-0116[0116] The above implementations can have many variations without departing from the spirit and scope of the invention. For example, the above methods can be modified to post media data and object data to only local proxy server <b>150</b> and media data or data file ID information is passed to central server <b>110</b> that distributes the ID information. In this case, media data and object data are posted and downloaded to and from local proxy server <b>150</b>. Additionally, for the above methods, different or varying versions of media data can be posted on local proxy server <b>150</b>, e.g., media data can be posted in a compressed format or with low quality resolution.
P-0117[0117] Furthermore, although aspects of the invention are described in which programs, application, modules, functions, routines, or sub-routines are stored in memory, such memory may include computer-readable media such as, for example, hard disks, floppy disks, CD-ROMs; a carrier wave from the Internet; or other forms of RAM or ROM. Similarly, the methods of the invention may conveniently be implemented in software and/or hardware modules that are based upon the flow diagrams of FIGS. 6 through 10 and user interfaces shown in FIGS. 11 through 14.
P-0118[0118] No particular programming language has been indicated for carrying out the various methods described above because it is considered that the operations, stages and procedures described herein and illustrated in the accompanying drawings are sufficiently enabling to practice the invention. Moreover, any number of computers and operating systems may be used to practice the invention. Each user of a particular computer will be aware of the language and tools which are most useful for that user's needs and purposes to practice and implement the invention. Accordingly, the scope of the present invention is defined by the appended claims rather than the foregoing description.
Contents6
13 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US8589505B2 | Cited by | United States of America | Search report |
| US8122082B2 | Cited by | United States of America | Search report |
| US2022046088A1 | Cited by | United States of America | Search report |
| US2005234961A1 | Cited by | United States of America | Pre-grant |
| US9408050B2 | Cited by | United States of America | Search report |
| US2008102793A1 | Cited by | United States of America | Pre-grant |
| US2003195929A1 | Cited by | United States of America | Pre-grant |
| US2004054725A1 | Cited by | United States of America | Pre-grant |
| US2010211617A1 | Cited by | United States of America | Pre-grant |
| US8989706B2 | Cited by | United States of America | Applicant |
| US2007139189A1 | Cited by | United States of America | Pre-grant |
| US2006212532A1 | Cited by | United States of America | Pre-grant |
| US2007067638A1 | Cited by | United States of America | Pre-grant |
| US12015666B2 | Cited by | United States of America | Search report |
| US8898247B2 | Cited by | United States of America | Search report |
| US2008182513A1 | Cited by | United States of America | Pre-grant |
| US2014215001A1 | Cited by | United States of America | Pre-grant |
| US2011113098A1 | Cited by | United States of America | Pre-grant |
| US2012079056A1 | Cited by | United States of America | Pre-grant |
| US7716312B2 | Cited by | United States of America | Applicant |
| US9330097B2 | Cited by | United States of America | Search report |
| US12095812B2 | Cited by | United States of America | Applicant |
| US2004103217A1 | Cited by | United States of America | Pre-grant |
| US7685289B2 | Cited by | United States of America | Search report |
| US7698380B1 | Cited by | United States of America | Applicant |
| US2012084385A1 | Cited by | United States of America | Pre-grant |
| US9479560B2 | Cited by | United States of America | Search report |
| US7992171B2 | Cited by | United States of America | Applicant |
| US2009138538A1 | Cited by | United States of America | Pre-grant |
| US8103247B2 | Cited by | United States of America | Applicant |
| US2008104170A1 | Cited by | United States of America | Pre-grant |
| US2001011308A1 | Cites | United States of America | Pre-grant |
| US2001042111A1 | Cites | United States of America | Pre-grant |
| US2002016776A1 | Cites | United States of America | Pre-grant |
| US2003120685A1 | Cites | United States of America | Pre-grant |
| US2003140050A1 | Cites | United States of America | Pre-grant |
| US2003195929A1 | Cites | United States of America | Pre-grant |
| US2004015456A1 | Cites | United States of America | Pre-grant |
| US2004068523A1 | Cites | United States of America | Pre-grant |
| US2004093420A1 | Cites | United States of America | Pre-grant |
| US2005044250A1 | Cites | United States of America | Pre-grant |
| US2005234961A1 | Cites | United States of America | Pre-grant |
| US5379374A | Cites | United States of America | Pre-grant |
| US5392400A | Cites | United States of America | Pre-grant |
| US5420974A | Cites | United States of America | Pre-grant |
| US5617539A | Cites | United States of America | Pre-grant |
| US5644714A | Cites | United States of America | Pre-grant |
| US5680400A | Cites | United States of America | Pre-grant |
| US5680609A | Cites | United States of America | Pre-grant |
| US5727155A | Cites | United States of America | Pre-grant |
| US5784561A | Cites | United States of America | Pre-grant |
| US5796424A | Cites | United States of America | Pre-grant |
| US5805821A | Cites | United States of America | Pre-grant |
| US5811706A | Cites | United States of America | Pre-grant |
| US5841977A | Cites | United States of America | Pre-grant |
| US5872923A | Cites | United States of America | Pre-grant |
| US5880788A | Cites | United States of America | Pre-grant |
| US5886274A | Cites | United States of America | Pre-grant |
| US5896506A | Cites | United States of America | Pre-grant |
| US5912697A | Cites | United States of America | Pre-grant |
| US5926205A | Cites | United States of America | Pre-grant |
| US5930473A | Cites | United States of America | Pre-grant |
| US5937162A | Cites | United States of America | Pre-grant |
| US5950198A | Cites | United States of America | Pre-grant |
| US5952599A | Cites | United States of America | Pre-grant |
| US5995491A | Cites | United States of America | Pre-grant |
| US6014694A | Cites | United States of America | Pre-grant |
| US6044205A | Cites | United States of America | Pre-grant |
| US6061717A | Cites | United States of America | Pre-grant |
| US6085251A | Cites | United States of America | Pre-grant |
| US6101507A | Cites | United States of America | Pre-grant |
| US6105055A | Cites | United States of America | Pre-grant |
| US6128644A | Cites | United States of America | Pre-grant |
| US6128652A | Cites | United States of America | Pre-grant |
| US6154600A | Cites | United States of America | Pre-grant |
| US6173377B1 | Cites | United States of America | Pre-grant |
| US6209021B1 | Cites | United States of America | Pre-grant |
| US6212549B1 | Cites | United States of America | Pre-grant |
| US6230173B1 | Cites | United States of America | Pre-grant |
| US6233600B1 | Cites | United States of America | Pre-grant |
| US6237025B1 | Cites | United States of America | Pre-grant |
| US6243676B1 | Cites | United States of America | Pre-grant |
| US6263507B1 | Cites | United States of America | Pre-grant |
| US6266691B1 | Cites | United States of America | Pre-grant |
| US6269080B1 | Cites | United States of America | Pre-grant |
| US6269394B1 | Cites | United States of America | Pre-grant |
| US6275937B1 | Cites | United States of America | Pre-grant |
| US6288739B1 | Cites | United States of America | Pre-grant |
| US6295058B1 | Cites | United States of America | Pre-grant |
| US6308204B1 | Cites | United States of America | Pre-grant |
| US6310941B1 | Cites | United States of America | Pre-grant |
| US6314454B1 | Cites | United States of America | Pre-grant |
| US6317777B1 | Cites | United States of America | Pre-grant |
| US6320600B1 | Cites | United States of America | Pre-grant |
| US6321252B1 | Cites | United States of America | Pre-grant |
| US6324544B1 | Cites | United States of America | Pre-grant |
| US6338086B1 | Cites | United States of America | Pre-grant |
| US6343313B1 | Cites | United States of America | Pre-grant |
| US6351467B1 | Cites | United States of America | Pre-grant |
| US6351471B1 | Cites | United States of America | Pre-grant |
2 members in 1 office; this record represents the family
Priority claims2
| Document | Office | Kind | Date |
|---|---|---|---|
| 12333102 | United States of America | A | |
| US20020123331 | – | – | – |
Members2
| Document | Office | Kind | |
|---|---|---|---|
| US2003195924A1 | United States of America | A1 | |
| US7668901B2 | United States of America | B2 |
17 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| Maintenance fee paymentMAFP | MAFP | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| Fee paymentFPAY | FPAY | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| Fee paymentFPAY | FPAY | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS |
Numbers
- Publication, DOCDB
- 2003195924
- Publication, EPODOC
- US2003195924
- Application
- 10123331
- Application, DOCDB
- 12333102
- Application, EPODOC
- US20020123331
Titles
- English
- Methods and system using a local proxy server to process media data for local area users
Classification
- CPC, 4
- H04L67/2857
- H04L67/2819
- H04L67/289
- H04L69/329
- IPC, 1
- H04L29 08
- USPC, 1
- 709203000