Methods and system using secondary storage to store media data accessible for local area users
Claim Score by NHIP
Abstract
Methods and system are disclosed allowing media data to be stored on a secondary storage system accessible for local area users. Such users can thus post or store media data ("posted media data") on a central server and on the secondary storage system. By such a process, posted media data on the central server is in effect "mirrored" on the secondary storage system. As a result, collaborating local area users can utilize the benefits (e.g., higher bandwidth and faster download speed) of accessing posted media data from a local area source (i.e., the secondary storage system). Furthermore, in order to avoid downloading incomplete posted media data, a completion signal or pending signal can be used to indicate if the posted media data has been completely stored or is in the process of being stored on the secondary storage system.

Term
Term ended
Projected expiry passed 15 April 2022, 4.4 years ago.
- Priority and filed
- Published
- Projected expiry
- Today
71 claims: 9 independent, 62 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 secondary storage system, the method comprising:storing media data on the central server;determining if the secondary storage system is enabled;and storing the media data on the secondary storage system if the secondary storage system is enabled.
- 18A method for implementing collaboration between a plurality of users operating a media application for processing media data, each user having access to a central server and to at least one selectively enabled secondary storage system, each secondary storage system being accessible to only a subset of the users comprising, the method comprising:storing media data on the central server;determining if the secondary storage system is enabled;and storing the media data on the secondary storage system if the secondary storage system is enabled.
- 34A 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 secondary storage system, the method comprising:determining if the secondary storage system is enabled;if the secondary storage system is enabled, storing media data on at least one of the central server and at least one of the secondary storage systems if the secondary storage system is enabled, the media data including an identifier;and storing the media data with the identifier on the central server.
- 35Broadest claimClaim Score 80, broad(NHIP)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 secondary storage system to the network;selectively enabling the secondary storage system;configuring at least one of the users to recognize the enabled secondary storage system and to post the media data for the media application on at least one of the central server and the enabled secondary storage system.
- 36A 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 secondary storage system, 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: storing media data on the central server;checking if the secondary storage system is enabled;and storing the media data on the secondary storage system if the secondary storage system is enabled.
- 53A 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 secondary storage system, each of the secondary storage systems 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: storing media data on the central server;checking if the secondary storage system is enabled;and storing the media data on the secondary storage system if the secondary storage system is enabled.
- 69A 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 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 secondary storage system, the method comprising:storing media data on the central server;checking if the secondary storage system is enabled;and storing the media data on the secondary storage system if the secondary storage system is enabled.
- 70A 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 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 secondary storage system, each of the secondary storage systems being accessible to only a subset of the users, the method comprising:storing media data on the central server;checking if the secondary storage system is enabled;and storing the media data on the secondary storage system if the secondary storage system is enabled.
- 71A 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 interconnected 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 secondary storage system, the method comprising:checking if the secondary storage system is enabled;if the secondary storage system is enabled, storing media data on at least one of the central server and the secondary storage system, the media data including identifier information;and storing the identifier information on the central server.
Independent claims9
100 paragraphs in 6 sections, as filed
RELATED APPLICATION
[0001] This application is related to U.S. patent application Ser. No. ______ entitled, “METHODS AND SYSTEM USING A LOCAL PROXY SERVER TO PROCESS MEDIA DATA 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 secondary storage to store media data accessible for local are 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 stores or “posts” 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 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 access data from a secondary storage.
[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 secondary storage system. The method includes storing media data on the central server. A determination is made if the secondary storage system is enabled. If the secondary storage system is enabled, the media data is also stored on the secondary storage system.
[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 secondary storage system. Each secondary storage system is accessible to only a subset of the users. The method includes storing media data on the central server. A determination is made if the secondary storage system is enabled. If the secondary storage system is enabled, the media data is also stored on the on the secondary storage system.
[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 secondary storage system. The method includes determining if the secondary storage system is enabled. If the secondary storage system is enabled, media data is stored on at least one of the central server and at least one of the secondary storage systems. The media data includes an identifier and the media data is stored with the identifier on the central server.
[0011] Consistent with the invention, another method is disclosed for implementing collaboration between a plurality of interconnected users on a network operating a media application for processing media data. Each user has access to a central server. The method includes connecting a secondary storage system to the network. The secondary storage system is selectively enabled. At least one user is configured to recognize the enabled secondary storage system and to post the media data for the media application on at least one of the central server and the enabled secondary storage system.
DESCRIPTION OF THE DRAWINGS
[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,
[0013]FIG. 1 is a block diagram of an exemplary system configuration for practicing the invention;
[0014]FIG. 2 is an internal block diagram of an exemplary computer system for implementing the invention;
[0015]FIG. 3 is a diagram of a project;
[0016]FIG. 4 is a diagram of a media application;
[0017]FIG. 5 is a diagram illustrating media and object flow for LAN users collaborating on a project;
[0018]FIG. 6 is a flow diagram of stages of a first method for storing media data on a secondary storage system;
[0019]FIG. 7 is a flow diagram of stages of a second method for storing media data on a secondary storage system;
[0020]FIGS. 8A and 8B are flow diagrams of stages of a first method for downloading and posting media data;
[0021]FIGS. 9A and 9B are flow diagrams of stages of a second method for downloading and posting media data;
[0022]FIG. 10 is a diagram of an exemplary interface illustrating a secondary storage system setting dialog;
[0023]FIG. 11 is a diagram of an exemplary interface illustrating a name dialog;
[0024]FIG. 12 is a diagram of an exemplary interface illustrating a select configuration dialog; and
[0025]FIG. 13 is a diagram of an exemplary interface illustrating a secondary storage system error dialog.
DETAILED DESCRIPTION
[0026] 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.
[0027] The following implementations allow data, e.g., media data, to be stored on a secondary storage system accessible for local area users. These users can post media data (“posted media data”) on a central server and on the secondary storage system. By such a process, posted media data on the central server is in effect “mirrored” on the secondary storage system. As a result, collaborating local area users can utilize the benefits (e.g., higher bandwidth and faster download speed) of accessing posted media data from a local area source (i.e., the secondary storage system). Furthermore, in order to avoid downloading incomplete posted media data, a completion signal and pending signal can be used to indicate if the posted media data has been completely stored or is being stored on the secondary storage system for downloading purposes.
Exemplary System Configuration
[0028]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> (“LAN users <b>130</b>-<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 (“WAN <b>160</b>”). Within LAN <b>190</b>, LAN users <b>130</b>-<b>140</b> are coupled to a secondary storage system <b>150</b>.
[0029] 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 an element or component of the media data. Object data may include identification of a change to the media data. Examples of media data include digital audio and/or video data, MIDI data, text data, or large data files. Further details of project media data and object data are described in FIG. 3.
[0030] To collaborate on a project, LAN users <b>130</b>-<b>140</b> and WAN user <b>120</b> post or store media data on central server <b>110</b> for access by other users. For example, LAN users <b>130</b>-<b>140</b> and WAN user <b>120</b> can post or store media data on central server <b>110</b> 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.
[0031] To make a change to the media data, 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 send the object data to LAN users <b>130</b>-<b>140</b> collaborating on the same project. For example, LAN users <b>130</b>-<b>140</b> and WAN user <b>120</b> can send object using the same techniques regarding media data as described in the '318 application and central server <b>110</b> can also send media data and/or object data to LAN users <b>130</b>-<b>140</b> and WAN user <b>120</b> using techniques described in the '318 application. As described in further detail below, LAN users <b>130</b>-<b>140</b> can store media data on secondary storage system <b>150</b> such that the media data is accessible on LAN <b>190</b>. LAN users <b>130</b>-<b>140</b> can also store object data on secondary storage system <b>150</b> for access on LAN <b>190</b>.
[0032] Secondary storage system <b>150</b> is a shared storage system for LAN users <b>130</b>-<b>140</b>. Secondary storage system <b>150</b> provides shared data access and read/write capabilities for LAN users <b>130</b>-<b>140</b>. Secondary storage system <b>150</b> can store media data and object data for LAN users <b>130</b>-<b>140</b>. Secondary storage system <b>150</b> can be selectively enabled for each individual user of LAN users <b>130</b>-<b>140</b> to permit storing and downloading of media data <b>180</b> or object data (not shown) from secondary storage system <b>150</b> using the methods below. Examples of secondary storage system <b>150</b> include database storage systems having a server and 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.
[0033] Alternatively, storage devices contained within or connected to one or more LAN users <b>130</b>-<b>140</b> may operate as secondary storage system <b>150</b>. Secondary storage system <b>150</b> can provide standard network file sharing capabilities for LAN users <b>130</b>-<b>140</b>. Although one secondary storage system <b>150</b> is shown, any number of shared or secondary storage systems or devices may be configured within LAN <b>190</b> and selectively enabled for use by LAN users <b>30</b>-<b>140</b>, as described herein.
[0034] Secondary storage system <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 data to and from secondary storage system <b>150</b>. Secondary storage system <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> users or other users (e.g., WAN user <b>120</b>). Secondary storage system <b>150</b> may store media data <b>180</b> in a compressed or uncompressed format and provide password protection for media data <b>180</b>. In one example, LAN users <b>130</b>-<b>140</b> must logon to secondary storage system <b>150</b> to access media data <b>180</b>.
[0035] LAN users <b>130</b>-<b>140</b> are computing devices that can communicate with each other and with central server <b>110</b>, WAN user <b>120</b>, and secondary storage system <b>150</b>. Examples of LAN users <b>130</b>-<b>140</b> include computing systems such as Apple® Power Macintoshes or Intel® Pentium-based personal computers running a version of the Windows® operating system. Central server <b>110</b> and WAN user <b>120</b> may also comprise the same type of computing system as LAN users <b>130</b>-<b>140</b>.
[0036] LAN users <b>130</b>-<b>140</b> and WAN user <b>120</b> can operate with a media application <b>170</b>. 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. can be implemented as an application program interface (API) to media application <b>170</b> in order to provide the ability for LAN users <b>130</b>-<b>140</b> and WAN user <b>120</b> users to share data over network <b>160</b>.
[0037] Examples of media application <b>170</b> include Logic Audio from Emagic Inc. of Grass Valley, California; 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.
[0038] 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.
[0039] Central server <b>110</b> is a computing system, which may include the same type of computing system as LAN users <b>130</b>-<b>140</b> and WAN user <b>120</b>. Central server <b>110</b> includes 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 and manage 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 the '318 application noted above.
[0040] Attached to central server <b>110</b> is a media storage <b>185</b> storing media data <b>180</b>. Media storage <b>185</b> can store other types of data including object data. Examples of media 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 media storage <b>185</b> is shown, any number of storage devices may be attached to central server <b>110</b>. Media storage <b>185</b> may include one or more project databases to store project data having media data and/or object for a plurality of projects.
[0041] Central server <b>110</b> can store 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> may also store object data (not shown) from these users in media storage <b>185</b> or in other storage devices. To facilitate network collaboration, central server <b>110</b> notifies LAN users <b>130</b>-<b>140</b> and WAN user <b>120</b> (if all are collaborating on the same project) of posted or stored media data and object data related to the project. For example, central server <b>110</b> can notify LAN users <b>130</b>-<b>140</b> and WAN user <b>120</b> using techniques described in the '<b>318</b> application.
[0042] These users can thus request the media data or object data from central server <b>110</b> after being notified. Thus, central server <b>110</b> can provide media data and object data “on demand” or upon request by a user. 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>.
[0043] LAN <b>190</b> users and secondary storage system <b>150</b> may be configured in an Ethernet, Token Ring, ARCNET, fiber distributed data interface (FDDI) local area network, or other appropriate local area networks for LAN <b>190</b>. WAN <b>160</b> may represent a wide area network such as, for example, the Internet or a proprietary wide area network. Although not shown, 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. Thus, in the example of FIG. 1, because media data <b>180</b> is mirrored on secondary storage system <b>150</b>, LAN users <b>130</b>-<b>140</b> are thus capable of accessing media data <b>180</b> within LAN <b>190</b>. As such, the fast and high bandwidth qualities of a LAN are utilized for LAN users <b>130</b>-<b>140</b>.
Exemplary Computer System
[0044]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>, or central server <b>110</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.
[0045] 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.
[0046] 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.
[0047] 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., secondary storage media API <b>193</b> as shown in FIG. 4). For example, CPU <b>255</b> may execute media application <b>170</b> and secondary storage media 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 secondary storage system <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>10</b>-<b>13</b>) via a display <b>280</b>.
Project
[0048]FIG. 3 is a diagram of a project <b>300</b>. Project <b>300</b> may be 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.
[0049] 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>.
[0050] 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.
[0051] 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 and sets <b>320</b> and <b>322</b> of object data on central server <b>110</b>. LAN user <b>130</b> can also post set <b>310</b> of media data on secondary storage system <b>150</b> such that set <b>310</b> of media data is accessible 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 secondary storage system <b>150</b>. Alternatively, sets <b>320</b> and <b>322</b> of object data can also be posted and downloaded to and from secondary storage system <b>150</b>.
Media Application
[0052]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 secondary storage media 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 secondary storage system <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>.
[0053] 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 secondary storage system <b>150</b> for use by LAN users <b>130</b>-<b>140</b> using the techniques described in FIGS. <b>10</b>-<b>13</b>. In one implementation, secondary storage system <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 to and from secondary storage system <b>150</b>.
[0054] 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 secondary storage system <b>150</b>. To download posted media data, API <b>193</b> can copy posted media from central server <b>110</b> or secondary storage system <b>150</b> and store the data in media cache <b>290</b>. To communicate with central server <b>110</b> or secondary storage system <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 secondary storage system <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 secondary storage system <b>150</b>.
[0055] 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 secondary storage system <b>150</b> and access it from secondary storage system <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 secondary storage system <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 secondary storage system <b>150</b>. Additionally, API <b>193</b> may provide interfaces (e.g., as shown in FIGS. <b>10</b>-<b>13</b>) for a user to configure preferences for secondary storage system <b>150</b>, to display media data, to provide a status of the storing or downloading process.
Object and Media Flow
[0056]FIG. 5 is a diagram of media and object flow for LAN users <b>130140</b> collaborating on a project. LAN users <b>130</b> and <b>135</b> and WAN user <b>120</b> are shown collaborating on a project (e.g., project <b>300</b>). For purposes of illustration, initially, LAN users <b>130</b> and <b>135</b> and WAN user <b>120</b> do not contain the same object data (“object <b>515</b>”) or media data (“media <b>505</b>”).
[0057] Referring to FIG. 5, LAN user <b>130</b> makes a change to media <b>505</b> with object <b>515</b>. In order to ensure access to data on the shortest and fastest possible network route, LAN user <b>130</b> stores media <b>505</b> on central server <b>110</b> and on secondary storage system (“shared storage system” <b>150</b>. LAN user <b>130</b> also stores object <b>515</b> on central server <b>110</b>. Central server <b>110</b> notifies LAN user <b>135</b> and WAN user <b>120</b> collaborating on the same project of the change. LAN user <b>135</b> or other users (e.g., WAN user <b>120</b>) can download object <b>515</b> or media <b>505</b> from central server <b>110</b> “on demand.” That is, central server <b>110</b> does not force object or media data onto a user. Users can thus request object <b>515</b> and media <b>505</b> from central server <b>110</b>. In a preferred implementation, LAN user <b>135</b> downloads media <b>505</b> from shared storage system <b>150</b> instead of from central server <b>110</b>. Thus, LAN user <b>135</b> efficiently utilizes local area resources.
Mirroring Media Data on Secondary Storage System
[0058] The following flow diagrams detail methods for storing or mirroring media data on secondary storage system <b>150</b>. The following methods can be implemented for storing or mirroring other types of data on secondary storage system <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.
[0059]FIG. 6 is a flow diagram of stages in a first method for storing media data on secondary storage system <b>150</b>. This method can be implemented for one or more data files containing media data.
[0060] After the process begins, a check is made to determine if secondary storage system <b>150</b> is enabled (stage <b>602</b>). A user can enable secondary storage system <b>150</b> or other secondary storage devices connected in LAN <b>190</b> by using interfaces such as those shown in FIGS. <b>10</b>-<b>13</b>. If secondary storage system <b>150</b> is enabled, media data is posted on central server <b>110</b> and on secondary storage system <b>150</b> (stages <b>606</b> and <b>608</b>). For example, posted media data <b>180</b> stored on central server <b>110</b> is also stored on secondary storage system <b>150</b>. The order of stages <b>606</b> and <b>608</b> can be reversed or performed simultaneously. This in effect mirrors media data <b>180</b> on secondary storage system <b>150</b> and allows LAN users <b>130</b>-<b>140</b> access to media data <b>180</b> via LAN <b>190</b>. If secondary storage system <b>150</b> is not enabled, media data is stored only on central server <b>110</b> (stage <b>604</b>).
[0061]FIG. 7 is a flow diagram of stages of a second method for storing media data on secondary storage system <b>150</b>. This method can be implemented for one or more data files containing media data.
[0062] 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 secondary storage system <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, each of which contains the same unique folder name.
[0063] 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 by 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.
[0064] Parent Directory (root directory on the secondary storage System)
[0065] Project1 (folder)
[0066] Aaron1—123456789123-datafile1.doc (file)
[0067] Mike1—894576890532-datafile1.doc (file)
[0068] Project2 (folder)
[0069] Aaron1—72384732874-picture.jpg (file)
[0070] Mike1—77773234234-mynotes.txt (file)
[0071] Project3 (folder) . . .
[0072] As shown in the above example, each folder name (e.g., Project1 to Project3) is unique and each media data name within the folder is also unique. After a unique ID is generated for the media data, the media data is posted on secondary storage system <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 the media data has not yet been completely posted. After the media data is completely posted on secondary storage system <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 on secondary storage system <b>150</b> and is ready for downloading.
[0073] By using the completion signal, a user can avoid downloading an incomplete copy of media data. The completion signal can be indicated using a number of techniques. For example a special identifier, e.g., “.cmplt” can be appended to the unique ID for the media data. An indication can be made in a database record to show that the media data has been completely stored. Additionally, a check can be made on the media data size in secondary storage system <b>150</b> with the required file size for the media data. Other examples of providing the completion signal include secondary storage system <b>150</b> broadcasting a signal or data that the media data has been successfully posted. The completion signal may also be based on media data attributes.
Downloading and Storing Downloaded Media Data
[0074] The following flow diagrams detail methods for downloading and storing or posting downloaded media data. The following methods describe using a completion or pending signal to ensure that completely stored media data is accessed. The following methods can be implemented for downloading and storing or posting 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. FIGS. 8A and 8B are flow diagrams of stages of a first method for downloading and storing of media data. This method can be implemented with one or more data files containing media data.
[0075] Referring to FIG. 8A, initially, a LAN user is in the process of requesting media data to be downloaded. A check is made to determine if secondary storage system <b>150</b> is enabled (stage <b>802</b>). If secondary storage system <b>150</b> is not enabled, the requested media data is downloaded from central server <b>110</b> (stage <b>808</b>). From stage <b>808</b>, the method continues to stage <b>814</b> in FIG. 8B. If secondary storage system <b>150</b> is enabled, a unique ID for the requested 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.
[0076] A check is then made to determine if the media data having the unique ID is stored on secondary storage system <b>150</b> (stage <b>806</b>). If no media data having the unique ID is stored on secondary storage system <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 secondary storage system <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 indicating that the requested media is completely stored on secondary storage system <b>150</b>, the media data is downloaded from secondary storage system <b>150</b>. The downloaded media data can be stored or cached by the LAN users <b>130</b>-<b>140</b>.
[0077] Referring to FIG. 8B, if stage <b>808</b> is performed in FIG. 8A and requested media data is downloaded from central server <b>110</b>, the following stages can be implemented to store or post the downloaded media data on secondary storage system <b>150</b> such that is accessible on LAN <b>190</b>. Continuing from stage <b>808</b> a check is made to determine if a secondary storage system <b>150</b> is enabled (stage <b>814</b>). If secondary storage system <b>150</b> is not enabled, the process ends and the downloaded media data is not mirrored on a secondary storage system <b>150</b>.
[0078] If secondary storage system <b>150</b> is enabled, a unique ID for the downloaded media data is generated as described in FIG. 7 (stage <b>816</b>). A check is then made to determine if the media data having the unique ID is stored on secondary storage system <b>150</b> (stage <b>818</b>). If no media data having the unique ID is stored on secondary storage system <b>150</b>, the media data is stored or posted on secondary storage system <b>150</b> (stage <b>820</b>). A completion signal is then generated after the media data has been stored on secondary storage system <b>150</b> (<b>822</b>).
[0079]FIGS. 9A and 9B are flow diagrams of stages of a second method for downloading and storing of media data. This method can be implemented with one or more data files containing media data.
[0080] Referring to FIG. 9A, initially, a LAN user is in the process of requesting media data to be downloaded. A check is made to determine if secondary storage system <b>150</b> is enabled (stage <b>902</b>). If secondary storage system <b>150</b> is not enabled, the requested media data is downloaded from central server <b>110</b> (stage <b>903</b>) and the process ends. If secondary storage system <b>150</b> is enabled, a unique ID is generated for the requested media data 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.
[0081] A check is then made to determine if there is a “pending signal” or “completion signal” being asserted (stage <b>906</b>). A pending signal can be used in conjunction with the completion signal described above to indicate that media data having the same unique ID is in the process of being stored or posted on secondary storage system <b>150</b>. The pending signal can be generated in the same manner as the completion signal described above, but indicating a pending status. If there is no pending signal or completion signal, the process continues to stage <b>916</b> in FIG. 9B.
[0082] If there is a pending signal or completion signal, a check is made to determine if the signal is a completion signal to indicate that the media is stored or posted on secondary storage system <b>150</b> (stage <b>910</b>). If there is a completion signal, the requested media data with the unique ID is downloaded from secondary storage system <b>150</b> (stage <b>914</b>). If there is no completion signal, the process waits until a completion signal is generated (stage <b>912</b>). In an alternative implementation, stage <b>912</b> can be modified to allow for a streaming process of downloading segments of media data as soon as the segments become available on secondary storage system <b>150</b>. Once a completion signal is generated, the process continues to stage <b>914</b> such that the media data with the unique ID is downloaded from secondary storage system <b>150</b>.
[0083] Referring to FIG. 9B, if there is no pending signal or completion signal at stage <b>906</b> in FIG. 9A, the following stages can be performed to generate and clear a pending signal. Continuing from stage <b>906</b> a pending signal is generated (stage <b>916</b>). For example, a pending signal can be generated in the same manner as generating a competition signal in that the pending indicates that media data is in the process of being stored or posted. After the pending signal is generated, the requested media data with the unit ID is downloaded from central server <b>110</b> (stage <b>918</b>). The downloaded media data from central server <b>110</b> is posted on secondary storage system <b>150</b> (stage <b>920</b>).
[0084] After being stored on secondary storage system <b>150</b>, a completion signal is generated (stage <b>922</b>). Then, the pending signal is cleared. (stage <b>924</b>).
[0085] Selectively Enabling Secondary Storage System
[0086] FIGS. <b>10</b>-<b>13</b> illustrate exemplary user interfaces <b>1010</b>, <b>1110</b>, <b>1210</b>, and <b>1310</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 secondary storage system <b>150</b> in performing the methods described above.
[0087] Referring to FIG. 10, user interface <b>1010</b> depicts a secondary storage system (or mirror settings) dialog interface for selectively enabling secondary system <b>150</b>. User interface <b>1010</b> includes a plurality of input fields <b>1015</b> through <b>1050</b> allowing a user to configure settings for storing or downloading media data. Media application <b>170</b> can provide a menu option or an access button to initiate user interface <b>1010</b>.
[0088] At interface <b>1010</b>, a user can input “Server URL”, “Pathname”, “Username”, and “Password” information at inputs <b>1020</b>, <b>1025</b>, <b>1030</b>, and <b>1035</b>. A window <b>1040</b> can display sessions or projects assigned to the user. When storing or receiving media data for a session for the first time, user interface <b>1010</b> presents an options window <b>1050</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 window is displayed informing the user of options that can be selected for user interface <b>1010</b>. If the “Don't Mirror” option is selected, secondary storage system <b>150</b> is not enabled and media data is posted directly on central server <b>110</b>.
[0089] 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>1110</b>, as shown in FIG. 11, is provided to the user. The user can then add a name at input field <b>1115</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>1010</b>. If the “Rename Configuration”, “Delete Configuration”, or “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 store and download media data from secondary storage system <b>150</b>.
[0090] Referring to FIG. 12, user interface <b>1210</b> depicts a select “Configuration Dialog” for creating or loading a session. A user can assign or select a session using input <b>1220</b>. An “Edit Secondary Storage Settings” option <b>1230</b> is provided for a user. If a user selects option <b>1230</b>, the user can change or edit the secondary storage settings for the selected session as shown by interface <b>1010</b> of FIG. 10. Referring to FIG. 13, user interface <b>1310</b> is provided if there is an error in communicating with secondary storage system <b>150</b>. For example, window <b>1315</b> can display a message such as “Cannot communicate with Secondary Storage. Edit your settings and select OK.” Thus, user interface <b>1310</b> provides a “Edit Cache Mirror Settings” option <b>1320</b> or “Don't Mirror” option <b>1325</b> for a user to select. The user can select option <b>1320</b> to change settings to correct the error or can select option <b>1325</b> to avoid communicating with secondary storage system <b>150</b>.
[0091] 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 store media data and object data on only secondary storage system <b>150</b>. In this case, media data identifier information is passed to central server <b>110</b> that distributes the identifier information to the users, which can use this information to download the media data and object data. Additionally, for the above methods, different or varying versions of media data can be posted on secondary storage system <b>150</b>, e.g., media data can be posted in a compressed format or with low or high quality resolution.
[0092] 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, 7, <b>8</b>A-<b>8</b>B, and <b>9</b>A-<b>9</b>B and user interfaces shown in FIGS. 10 through 13.
[0093] 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
14 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 Sheet 14
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US7437457B1 | Cited by | United States of America | Search report |
| US2003195924A1 | Cited by | United States of America | Pre-grant |
| EP1734451A1 | Cited by | European Patent Office (EPO) | Search report |
| US7716312B2 | Cited by | United States of America | Applicant |
| US2010030873A1 | Cited by | United States of America | Pre-grant |
| US2013124686A1 | Cited by | United States of America | Pre-grant |
| US2006155831A1 | Cited by | United States of America | Pre-grant |
| US8645322B2 | Cited by | United States of America | Applicant |
| CN104426946A | Cited by | China | Search report |
| US2004054725A1 | Cited by | United States of America | Pre-grant |
| WO2005098627A1 | Cited by | World Intellectual Property Organization (WIPO) | Applicant |
| US9330097B2 | Cited by | United States of America | Search report |
| US2014082584A1 | Cited by | United States of America | Pre-grant |
| US7877466B2 | Cited by | United States of America | Search report |
| US2006287994A1 | Cited by | United States of America | Pre-grant |
| US2008263031A1 | Cited by | United States of America | Pre-grant |
| US7668901B2 | Cited by | United States of America | Applicant |
| US2007139189A1 | Cited by | United States of America | Pre-grant |
| US2005234961A1 | Cited by | United States of America | Pre-grant |
| US2007118535A1 | Cited by | United States of America | Pre-grant |
| EP1734451A4 | Cited by | European Patent Office (EPO) | Search report |
| US2009094359A1 | Cited by | United States of America | Pre-grant |
| US9633693B2 | Cited by | United States of America | Search report |
| US2010211617A1 | Cited by | United States of America | Pre-grant |
| US2002194442A1 | Cites | United States of America | Pre-grant |
| US2003195924A1 | Cites | United States of America | Pre-grant |
| US5727155A | Cites | United States of America | Pre-grant |
| US5896506A | Cites | United States of America | Pre-grant |
| US6128644A | Cites | United States of America | Pre-grant |
| US6173377B1 | Cites | United States of America | Pre-grant |
| US6233600B1 | Cites | United States of America | Pre-grant |
| US6513061B1 | Cites | United States of America | Pre-grant |
| US6574742B1 | Cites | United States of America | Pre-grant |
| US6598074B1 | Cites | United States of America | Pre-grant |
| US6687801B1 | Cites | United States of America | Pre-grant |
| US6728886B1 | Cites | United States of America | Pre-grant |
| US6760756B1 | Cites | United States of America | Pre-grant |
1 member in 1 office
Priority claims2
| Document | Office | Kind | Date |
|---|---|---|---|
| 12333202 | United States of America | A | |
| US20020123332 | – | – | – |
Members1
| Document | Office | Kind | |
|---|---|---|---|
| US2003195929A1 | United States of America | A1 |
4 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Information on status: application discontinuationABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTIONSTCB | STCB | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS |
Numbers
- Publication, DOCDB
- 2003195929
- Publication, EPODOC
- US2003195929
- Application
- 10123332
- Application, DOCDB
- 12333202
- Application, EPODOC
- US20020123332
Titles
- English
- Methods and system using secondary storage to store media data accessible for local area users
Classification
- CPC, 5
- H04L67/1095
- H04L29/06
- H04L67/2857
- H04L67/289
- H04L69/329
- IPC, 2
- H04L29 06
- H04L29 08
- USPC, 1
- 709204000