Data publishing systems and methods
Claim Score by NHIP
Abstract
Systems and methods for data publishing. A back end server collects source data and generates a current publication database from the collected source data. The back end database server also copies the current publication database to an offline database. A front end server directs queries to an online database. After the current publication database is copied to the offline database, the front end server alternates the online and offline databases so that the offline database becomes online for data delivery and the online database becomes offline to prevent data delivery. An automation control database managed by the back end server contains job control data for instructing the front end server which of the associated databases is online and which of the associated databases is offline.

Term
Term ended
Projected expiry passed 25 August 2023, 3.1 years ago.
- Priority and filed
- Published
- Projected expiry
- Today
61 claims: 5 independent, 56 dependent
- 1A data publishing system comprising:at least two associated databases, one of said associated databases being online for delivery of data therefrom to at least one recipient via a data communication network, another one of said associated databases being offline to prevent delivery of data therefrom to the recipient via the data communication network;a back end database server for collecting source data and generating a current publication database from the collected source data, said back end database server copying the current publication database to the offline database;and a front end database server for managing the online and offline databases, said front end database server directing queries from the recipient to the online database for data retrieval, said front end database server further alternating the online and offline databases after the current publication database is copied to the offline database so that the offline database becomes online for delivery of data therefrom to the recipient and the online database becomes offline to prevent delivery of data therefrom to the recipient.
- 18Broadest claimClaim Score 65, broad(NHIP)A method of managing and delivering data comprising:maintaining at least two associated databases;enabling one of said associated databases for delivery of data therefrom to at least one recipient via a data communication network;disabling another one of said associated databases to prevent delivery of data therefrom to the recipient via the data communication network;modifying the data contained in the disabled database;and alternating the enabled and disabled databases after the data in the disabled database is modified to enable the previously disabled database for delivery of data therefrom to the recipient and to disable the previously enabled database to prevent delivery of data therefrom to the recipient.
- 40A metadata publishing system comprising:a publication database containing a plurality of metadata records, said metadata records each relating to content of one or more media files, said media files being adapted for rendering by a media player program executed on a client computer;a back end database server for collecting source data and generating the publication database from the collected source data;a front end database server;and at least two associated databases managed by the front end database server, one of said associated databases being online for delivery of metadata therefrom to at least one recipient via a data communication network, another one of said associated databases being offline to prevent delivery of data therefrom to the recipient via the data communication network, said back end database server copying a current publication database to the offline database, said front end database server directing queries from the recipient to the online database for data retrieval, said front end database server further alternating the online and offline databases after the current publication database is copied to the offline database so that the offline database becomes online for delivery of metadata therefrom to the recipient and the online database becomes offline to prevent delivery of metadata therefrom to the recipient.
- 46A method of managing and delivering metadata comprising:collecting source data;generating a current publication database from the collected source data, said publication database containing a plurality of metadata records, said metadata records each relating to content of one or more media files, said media files being adapted for rendering by a media player program executed on a client computer;maintaining at least two associated databases;enabling one of said associated databases for delivery of metadata therefrom to at least one recipient via a data communication network;disabling another one of said associated databases to prevent delivery of metadata therefrom to the recipient via the data communication network;copying the current publication database to the disabled database;and alternating the enabled and disabled databases after the current publication database is copied to the disabled database to enable the previously disabled database for delivery of metadata therefrom to the recipient and to disable the previously enabled database to prevent delivery of metadata therefrom to the recipient.
- 55An automated control database system comprising:a back end database server for collecting source data and generating a current publication database from the collected source data, said back end database server copying the current publication database to one of at least two associated front end databases managed by a front end database server, one of said associated front end databases being online for delivery of data therefrom to at least one recipient via a data communication network, another one of said associated front end databases being offline to prevent delivery of data therefrom to the recipient via the data communication network, said current publication database being copied to the offline database;and an automation control database managed by the back end database server, said automation control database containing job control data for instructing the front end database server which of the associated databases is online and which of the associated databases is offline, said front end database server directing queries from the recipient to the online database for data retrieval, said front end database server receiving and responsive to the job control data for alternating the online and offline databases after the current publication database is copied to the offline database so that the offline database becomes online for delivery of data therefrom to the recipient and the online database becomes offline to prevent delivery of data therefrom to the recipient.
Independent claims5
76 paragraphs in 5 sections, as filed
TECHNICAL FIELD
P-0001[0001] The present invention relates to the field of data publishing. In particular, this invention relates to publishing large database updates to frequently accessed databases in a production environment.
BACKGROUND OF THE INVENTION
P-0002[0002] Due to recent advances in technology, computer users are now able to enjoy many features that provide an improved user experience, such as playing various media and multimedia content on their personal or laptop computers. For example, most computers today are able to play compact discs (CDs) so users can listen to their favorite musical artists while working on their computers. Additionally, many computers are equipped with digital versatile disc (DVD) drives enabling users to watch movies.
P-0003[0003] As users become more familiar with advanced features on their computers, such as those mentioned above, their expectations of the various additional innovative features will undoubtedly continue to grow. Users often desire to receive media metadata, which includes content-related data associated with digital media files such as those from CDs and DVDs. For example, consider a media player software application that enables a user to play a CD on his or her computer. Typical applications allow the user to display track information associated with the CD by clicking on an appropriate user interface (UI). Such track information usually includes track numbers, song titles, playing times, and the like.
P-0004[0004] Given the large number and variety of media files already existing today, data publications of media metadata can be very large and experience a high volume of query traffic (e.g., several multi-gigabytes in size and under constant access). The size and activity level of any live data-driven service essentially precludes updating any significant portion of data by conventional means while the database is in use. As such, it is impossible to simply update the data while the database is “live” (i.e., being served to customers). Moreover, customers, particularly in a global environment, desire access to current, real-time metadata about media with 100%, around-the-clock availability. Under these circumstances, web services providing media metadata, for example, cannot afford any downtime for updating their data publications.
P-0005[0005] Conventional methods for updating databases are unable to provide timely, current data to users. One known method requires maintaining a snapshot of a web page and delivering data from the snapshot rather than going against the database. In this instance, currency of data is at issue because static content generated earlier is being served. Pre-caching, updating the database in small portions, and taking the database offline for a time to perform updates all suffer from poor performance, particularly when the database is large.
P-0006[0006] Thus, even using efficient modern database server applications, such as Microsoft® SQL Server™, updating a significant amount of data in a large, heavily utilized database can cause a greatly or completely degraded experience to the users of that database. For these reasons, the ability to publish large database updates to constantly accessed databases in a production environment is desired. Accomplishing timely data aggregation and large-scale publishing without causing service interruptions or incurring significant extra hardware or process costs is also desired.
SUMMARY OF THE INVENTION
P-0007[0007] The invention meets the above needs and overcomes one or more deficiencies in the prior art by providing improved data publishing of metadata to enhance user experience when playing various media, including CDs and DVDs. Advantageously, the present invention automatically maintains multiple live images of any large dataset and manages the data interface points in such a way that the transition is absolutely seamless to the users. Systems and methods of the invention make it easier to update an unused image behind the scenes while the other image is being accessed. Moreover, the features of the present invention described herein are less laborious and easier to implement than currently available techniques as well as being economically feasible and commercially practical.
P-0008[0008] Briefly described, a data publishing system embodying aspects of the invention includes at least two associated databases. One of the associated databases is online for delivering data to at least one recipient via a data communication network. Another one of the associated databases is offline to prevent data delivery. The system also includes back end and front end database servers. The back end database server collects source data and generates a current publication database from the collected source data. The back end database server also copies the current publication database to the offline database. The front end database server manages the online and offline databases and directs queries from the recipient to the online database for data retrieval. According to the invention, the front end database server further alternates the online and offline databases after the current publication database is copied to the offline database so that the offline database becomes online for data delivery and the online database becomes offline to prevent data delivery.
P-0009[0009] Another embodiment of the invention is directed to a method of managing and delivering data. The method includes maintaining at least two associated databases, enabling one of the associated databases for delivering data to at least one recipient via a data communication network, and disabling another one of the associated databases to prevent data delivery. The method further sets forth modifying the data contained in the disabled database and then alternating the enabled and disabled databases to enable the previously disabled database for data delivery and to disable the previously enabled database to prevent data delivery.
P-0010[0010] In another embodiment, a metadata publishing system includes a publication database containing a plurality of metadata records. The metadata records each relate to content of a media file adapted for rendering by a media player program executed on a client computer. A back end database server collects source data and generates the publication database from the collected source data. The system also includes at least two associated databases managed by a front end database server. One of the associated databases is online for delivery of metadata to at least one recipient via a data communication network and another one of the associated databases is offline to prevent delivery of data. The back end database server copies a current publication database to the offline database and the front end database server directs queries from the recipient to the online database for data retrieval. Then the front end database server further alternates the online and offline databases so that the offline database becomes online for delivery of metadata to the recipient and the online database becomes offline to prevent delivery of metadata to the recipient.
P-0011[0011] In yet another embodiment, a method embodying aspects of the invention manages and delivers metadata. The method includes collecting source data and generating a current publication database from the collected source data. The publication database contains metadata records that relate to content of media files adapted for rendering by a media player program. The method also includes maintaining at least two associated databases, enabling one of the associated databases for delivery of metadata to at least one recipient via a data communication network, and disabling another one of the associated databases to prevent delivery of metadata to the recipient. The method further includes copying the current publication database to the disabled database and then alternating the enabled and disabled databases to enable the previously disabled database for delivery of metadata and to disable the previously enabled database to prevent delivery of metadata.
P-0012[0012] An automated control database system of the invention includes a back end database server and an automation control database. The back end database server collects source data and generates a current publication database from the collected source data. The back end database server also copies the current publication database to one of at least two associated front end databases managed by a front end database server. One of the associated databases is online for delivery of data to at least one recipient via a data communication network. Another one of the associated databases is offline to prevent delivery of data. The back end server copies the current publication database to the offline database. The automation control database is managed by the back end database server and contains job control data for instructing the front end database server which of the associated databases is online and which of the associated databases is offline. The front end database server directs queries from the recipient to the online database for data retrieval and alternates the online and offline databases after the current publication database is copied to the offline database in response to the job control data.
P-0013[0013] Computer-readable media having computer-executable instructions for performing methods of processing media content embody further aspects of the invention.
P-0014[0014] Alternatively, the invention may comprise various other methods and apparatuses.
P-0015[0015] Other features will be in part apparent and in part pointed out hereinafter.
BRIEF DESCRIPTION OF THE DRAWINGS
P-0016[0016]FIG. 1 is a block diagram of a computer system embodying aspects of the present invention.
P-0017[0017]FIG. 2 is a block diagram illustrating aspects of metadata publishing by the system of FIG. 1.
P-0018[0018]FIG. 3 is a block diagram illustrating aspects of metadata publishing and propagation by the system of FIG. 1.
P-0019[0019]FIG. 4 is an exemplary flow diagram illustrating aspects of the operation of the system of FIG. 1.
P-0020[0020]FIG. 5 is a block diagram illustrating one example of a suitable computing system environment on which the invention may be implemented.
P-0021[0021] Corresponding reference characters indicate corresponding parts throughout the drawings.
DETAILED DESCRIPTION OF THE INVENTION
P-0022[0022] Referring now to the drawings, FIG. 1 illustrates an exemplary network environment in which the present invention can be used. A system <b>100</b> has one or more client computers <b>102</b> coupled to a data communication network <b>104</b>. One or more server computers <b>106</b>, sometimes referred to as “web servers” or “network servers,” are also coupled to the network <b>104</b>. In turn, the client computer <b>102</b> can access the server <b>106</b> via network <b>104</b>. As shown in FIG. 1, the system <b>100</b> also includes one or more databases <b>108</b> associated with server <b>106</b>.
P-0023[0023] In this example, network <b>104</b> is the Internet (or the World Wide Web).
P-0024[0024] However, the teachings of the present invention can be applied to any data communication network. Server <b>106</b> and client computer <b>102</b> communicate in the illustrated embodiment using the hypertext transfer protocol (HTTP), a protocol commonly used on the Internet to exchange information.
P-0025[0025] Referring further to FIG. 1, the user's computer <b>102</b> accesses a digital media file <b>112</b>, such as one residing on a compact disc (CD) or other suitable computer storage media. Client computer <b>102</b> also executes a web browser <b>114</b> and a media player application program <b>116</b>. In this embodiment, server <b>106</b> and its associated database <b>108</b> form a repository web site <b>118</b> with which computer <b>102</b> communicates via network <b>104</b> to access data stored in database <b>108</b>. The media player program <b>116</b> can be any suitable media player that is configured to play digital media so that a user can experience the content that is embodied on the media. For example, suitable media player applications include a CD media player application and a DVD media player application.
P-0026[0026] One aspect of the present invention enables the user or, particularly, enables media player program <b>116</b> executed on a computing device or client, to access, retrieve, and display for the user, so-called metadata. Those skilled in the art are familiar with metadata, which is simply information about data. In the context of the present invention, metadata includes information related to specific content of digital media file <b>112</b> being played on the media player <b>116</b>. Basic metadata includes title, composer, performer, genre, description of content, and the like. Extended metadata includes cover art, performer biographies, reviews, related performers, where to buy similar items, upcoming concerts, ticket sales, URLs to other related experiences including purchase opportunities, and the like.
P-0027[0027] In the embodiment of FIG. 1, server <b>106</b> matches the metadata stored in database <b>108</b> to the specific media content that is being experienced by the user.
P-0028[0028] Server <b>106</b> then returns the metadata to the user's computer <b>102</b>. It is to be understood that FIG. 1 presents a simplified illustration of the relationship between computer <b>102</b>, server <b>106</b>, and database <b>108</b>. Aspects of the invention involving this relationship between the components will be described in greater detail below.
P-0029[0029] In the examples herein, the media content of digital media file <b>112</b> is described in the context of content embodied on a CD or a DVD. It is to be appreciated and understood that the media content can be embodied on any suitable media, including digital files downloaded to the client computer's memory, and that the specific examples described herein are given to further understanding of the inventive principles. For convenience, digital media file <b>112</b> refers to one or more files representing, for example, a single song track or a collection of tracks such as would be found on an audio CD. The media content can include, without limitation, specially encoded media content in the form of, for example, an encoded media file such as media content encoded in Microsoft® Windows Media™ format using the Microsoft® Windows Media™ Player program.
P-0030[0030] The resultant system <b>100</b> permits the user to play media file <b>112</b> on an enabled media-playing device (e.g., computer <b>102</b> running Microsoft® Windows® operating system and Windows Media™ Player) and expect not only to experience the media content but also have access to all manner of related metadata. In addition, the user community has the ability to contribute key information to the process to improve the experience for other users.
P-0031[0031] In an exemplary embodiment of the present invention, a web service (i.e., repository web site <b>118</b>) provides data about music CDs and the like to media player application <b>116</b>. Each time a user plays a CD, for example, in the media player, the media player contacts the web service to see what CD information (e.g., title, artist, cover art, track names, etc.) is available. The media player program <b>116</b> expects that 100% of the time, the user will see the correct information when he or she starts playing the CD.
P-0032[0032] On the back-end, the web service aggregates CD data from a number of different sources, including the user community. The data feeds vary periodically (e.g., daily). The process of collecting metadata is explained below in connection to FIG. 2. In this example, the web service publishes new CD information from different sources every day. Unfortunately, simply copying the new data out to the live server <b>106</b> will cause media player application <b>116</b> to slow down significantly and perhaps even fail to retrieve data from the web service during the process of copying the new data. Also, there is a risk that the player will get incomplete (and therefore incorrect) data for a given CD during the copying process. Neither case is acceptable to media player client <b>102</b>.
P-0033[0033] According to the invention, system <b>100</b> schedules the copying activity in such a way to ensure that the user is always looking at a complete and current copy of the data. The media player users always get the desired CD information without the need for downtime each day during which the data is unavailable or potentially incorrect.
P-0034[0034] Referring now to FIG. 2, one embodiment of repository web site <b>118</b> provides import, datastore, and publishing functions at <b>202</b>. Typically, known data providers <b>204</b> of media metadata (e.g., AMG and Oricon) supply the repository with trusted information, that is, source data. In this instance, data providers <b>204</b> specialize in the gathering and management of media metadata and license the data to system <b>100</b>. Due to the trusted nature of the source, this data is treated as “canonical.” As an example, popular albums that have been released for many years tend to have well-established metadata.
P-0035[0035] Referring further to FIG. 2, the user gathers content-related media data directly from a CD, for example, at <b>206</b> and then submits the information at <b>210</b>. In FIG. 2, system <b>100</b> publishes metadata in several formats. As shown at <b>212</b>, published metadata takes the form of basic CD information. System <b>100</b> can also publish the data in extended CD format at <b>216</b> or DVD format at <b>218</b>. As indicated at <b>220</b>, the present invention contemplates other types of data output.
P-0036[0036] The present invention beneficially scales well to multiple data providers <b>204</b>.
P-0037[0037] While basic metadata for each digital media type (e.g., CD, DVD) can be considered universal because they are tied to the data standards in the media, extended metadata varies widely among multiple data providers. Many data publishers require full updates of metadata on a regular basis. Thus, integrating multiple data sources into a single extended metadata schema necessitates the complete update of the entire data store each time any one provider refreshed its data set.
P-0038[0038] Referring now to FIG. 3, the invention generally involves maintaining at least two copies of each database <b>108</b> that is currently published on a live, front end database server <b>302</b> embodied by, for example, a structured query language (SQL) server(s). The front end server <b>302</b> causes a first copy of each database, shown at <b>304</b>, to serve the live query traffic while a back end database server <b>306</b>, also illustrated as a SQL server(s), updates a second copy <b>308</b>. When the second copy <b>308</b> is completely updated, server <b>302</b> redirects the live traffic to the data publication at the second copy <b>308</b> and it becomes the live database.
P-0039[0039]FIG. 3 also shows two copies <b>312</b>,<b>314</b> of another database. In this instance, front end database server <b>302</b> accomplishes switching in a similar manner.
P-0040[0040] The front end server <b>302</b> repeats the procedure periodically in response to job control data from the back end server <b>306</b>. According to the invention, back end server <b>306</b> maintains a job control database <b>316</b> containing information about which of the database copies is live and which is available for updating. This keeps the live data regularly updated. Using a completely separate copy of the database to update offline, and then providing a mechanism for automatically switching all of the front end interfaces to the database after the updating is complete, provides a very efficient way to publish data.
P-0041[0041]FIG. 4 is an exemplary flow diagram that describes operations in accordance with one embodiment of the invention. The operations can be implemented in any suitable hardware, software, firmware or combination thereof. In the illustrated and described embodiment, the operations are implemented in software residing on the back end of the system. To this extent, FIG. 4 is divided into two different sections, namely, a front, or “live” end, and a back end.
P-0042[0042] The back end components of system <b>100</b> in one embodiment of the invention implement an automation control database, a publication process, a publication propagation process, and a task to redirect the live web servers <b>106</b>. Beginning at <b>402</b> in FIG. 4, back end database server <b>306</b> collects source data (e.g., metadata relating to a plurality of music CDs). The job control, or automation control, database <b>316</b> on the local server (i.e., back end database server <b>306</b>), logs appropriate job control data for later use by system <b>100</b>.
P-0043[0043] At <b>404</b>, back end server <b>306</b> also embodies a publication process, which creates a data publication <b>406</b> from the source data. This process <b>404</b> also logs status to automation control database <b>316</b>. In this instance, the data publication <b>406</b>, that is, the database to be published, constitutes the online database <b>304</b> or <b>312</b> in FIG. 3.
P-0044[0044] A set of publication propagation processes executed at <b>410</b> by back end server <b>306</b> move publication data <b>406</b> from the publication stage <b>404</b> to the live servers (e.g., web server <b>106</b>) in a manner preserving transactional replication where appropriate. Those skilled in the art are familiar with replication concepts associated with relational database management system (RDBMS) software. For example, a database server application, such as Microsoft® SQL Server™, provides three common types of replication, namely, snapshot, transactional, and merge. Snapshot replication involves copying an entire view of data to another computer. In transactional replication, on the other hand, transactions executed on one computer are replicated to another computer. Transactional replication is helpful when incremental changes need to be propagated to subscribers as they occur. Merge replication, which allows various sites to work autonomously, involves updates on any computer that are replicated to another computer at a later time.
P-0045[0045] For the sake of efficiency, publication propagation process <b>410</b> uses bulk copying functions, such as those typically available for use with RDBMS servers, to move data publication <b>406</b> in this embodiment. Each publication propagation process <b>410</b> runs and moves the data to the live server(s) <b>106</b> via a consolidator. As before, publication propagation process <b>410</b> also logs status to automation control database <b>316</b>. The set of publication propagation processes <b>410</b> are shown in FIG. 3 by updates to databases <b>308</b>, <b>314</b>. Moreover, the publication and propagation processes <b>404</b>, <b>410</b> are shown generally at <b>202</b> in FIG. 2.
P-0046[0046] Referring now to data connection switching, shown at <b>412</b> in FIG. 4, back end server <b>306</b> carries out a task that redirects the live web servers <b>106</b> to use the new live publications. In other words, the task causes the online databases <b>304</b>, <b>312</b> to be switched or alternated with the recently updated offline databases <b>308</b>, <b>314</b>. The data connection switching process <b>412</b> runs and switches pointers to all of the databases (e.g., databases <b>308</b>, <b>314</b>) that have passed publication propagation <b>410</b>. This process <b>412</b> also logs status to automation control database <b>316</b>. In one embodiment, a data connection switching subsystem in a server-side scripting environment code (e.g., Active Server Pages (ASP) available from Microsoft Corporation) implements the task for alternating the database connections (e.g., DSNS) used by the web pages to access data.
P-0047[0047] In one embodiment of the invention, back end server <b>306</b> executes the components, or processes, at <b>404</b>,<b>410</b>,<b>412</b> as scheduled tasks on a network server (e.g., Windows <b>2000</b> Server). It is to be understood that this server may be separate from or the same as back end database server <b>306</b>. For simplicity, FIG. 3 illustrates the back end of the system having a single server <b>306</b>. These processes use system-level commands on a consolidator to remove and re-establish transactional replication publications in real time. Limits on the processes include only running if each dependent publication staging process <b>404</b> has succeeded on its last run and only running if the data connection switching process <b>412</b> has succeeded on its last run. In this embodiment, the processes do not write a new value to the key-value control table until the replication snapshot is complete. Thus, the present invention provides a cascading-success system in which each step only runs if all dependent previous steps have succeeded. Additionally, each step makes use of table locking where appropriate to assure that no other step can overwrite data after the step has begun executing.
P-0048[0048] With respect to the task carrying out publication propagation <b>410</b>, the present invention includes a set of jobs each of which begins with a server command file (e.g., NT CMD that is scheduled through the Task Scheduler). Publication propagation <b>410</b> begins logging the progress of the job to the local automation control database <b>316</b> and a text file. The publication propagation process <b>410</b> also calls some appropriate code package on an internal staging SQL-based server, for example, which performs numerous functions. These functions include checking to see whether all of the dependent publication processes <b>404</b> completed successfully on their last run (via standard stored procedure interface) and checking to see whether the data connection switching process <b>412</b> completed successfully on its last run (via standard store procedure interface). Back end database server <b>306</b> further establishes a table lock on all of the input publication tables, sets the appropriate key value in the uncommitted control table in the consolidator control database to NULL, reads the appropriate key value from the committed control table in the consolidator control database, and inverts the key value to determine the non-live database name. The set of publication propagation processes <b>410</b> also include dropping the replication publication and subscriptions on the consolidator for the appropriate database, bulk copying the publication data out to the appropriate consolidator database and establishing the transactional replication publication and subscriptions from the consolidator to the non-live database name. In this embodiment of the invention, publication propagation <b>410</b> further sets an executeafter-snapshot script that will update the appropriate key value in the uncommitted control table in the consolidator control database when the initial snapshot is complete and releases the table lock on the input tables. Following the set of publication propagation processes <b>410</b>, a successful or failed completion is logged to local automation database <b>316</b>.
P-0049[0049] In one embodiment of the present invention, data connection switching <b>412</b> also begins with a server command file (e.g., NT CMD file that is scheduled through the Task Scheduler) and includes logging the progress of the job to local automation control database <b>316</b> and a text file. The data connection switching task <b>412</b> also reads a list of live web servers <b>106</b> from a table and loops through each of the web servers to verify connectivity by checking the status of calling the data connection switching ASP code on each server. Any failure here raises an error and stops any further processing. Next, data connection switching <b>412</b> reads the uncommitted keys table. In this instance, null values in this table signals a long running or failed run of the propagation job <b>410</b> and raises an error in this package, although processing continues. Non-null values are updated in the uncommitted keys table for replication to the live, front end database server <b>302</b>. The data connection switching job <b>412</b> updates values from uncommitted table to committed table and begins a loop with a timeout that continues the data connection switching ASP code on one of the web servers <b>106</b> until the output matches the values updated in the previous step. Expiration of the timeout period raises an error and stops any further processing. Next, data connection switching process <b>412</b> loops through each web server <b>106</b> again, calling the data connection switching ASP code in a set mode and records status of the call. Status errors raise an error in this package, meaning the server could not be set, but processing will continue. Following, data connection switching job <b>412</b> logs a successful or failed completion to local automation control database <b>316</b>.
P-0050[0050] The data connection ASP code mentioned above is one example of a system of maintaining and using application scope variables to reference database pointers. As long as all of the ASP pages performing data access within the application reference the appropriate application scope variables before attempting to fetch data, they will always automatically be looking at the correct database.
P-0051[0051] The present invention takes into account the operational infrastructure of a data center in which the live machines running SQL Server, or the like, are physically isolated from the control network. The live end is accessible only via a “consolidator” machine that can communicate with both the live machines and the control network. For this reason, there is an extra level of abstraction control in the implementation.
P-0052[0052] Referring again to FIG. 1, various features of the described systems and methods include a set of databases, client side executable code, and a series of server side processes that provide for querying and maintaining the databases. One logical organization of exemplary system <b>100</b> includes a process to map a piece of physical media (embodied by digital media file <b>112</b>) to a unique database key or, as referred to herein, a “logical ID.” This organization also includes a query process to retrieve information from database <b>108</b> based on the unique database key or logical ID. A data return mechanism and schema set returns data and a user feedback system allows users to contribute to the set of understood keys or logical IDs. The logical organization of system <b>100</b> also includes a set of management processes that handle user contributions.
P-0053[0053] The following sets forth a description of exemplary query processes according to the invention. In system <b>100</b>, the user on the client side inserts the media into computer <b>102</b>, or otherwise causes the content of media file <b>112</b> to be experienced. Computer <b>102</b> uses a physical ID identifying specific media file <b>112</b> to access the logical ID that uniquely identifies the media. Server <b>106</b> then uses the logical ID as the basis for metadata queries of database <b>108</b>. These queries are designed to retrieve a rich set of related metadata for the user. Server <b>106</b> then returns the metadata to client computer <b>102</b> via network <b>104</b> for display to the user.
P-0054[0054] When the user accesses (“rips”) an audio track from a specific digital medium, the ripped track (i.e., digital media file <b>112</b>) is stored on local storage media associated with the user's computer, such as client computer <b>102</b> in FIG. 1 (see also computer <b>70</b> in FIG. 5). If client computer <b>102</b> is connected to network <b>104</b>, as described with reference to FIG. 1 and FIG. 5, media player program <b>116</b> executing on computer <b>102</b> sends an identifier for digital media file <b>112</b> to server <b>106</b> of repository web site <b>118</b> via network <b>104</b>. As described above, the identifier may take the form of a physical ID such as a table of contents (TOC) identifying the specific digital media file <b>112</b> based on the offsets of each track on the disc. The TOC, defined by a well-known specification referred to as the Red Book, identifies an audio CD based on absolute times for the start of each track. The TOC, found in the CD's lead-in area, is expected to be the same for all like-entitled CDs published from the same source. Repository web site <b>118</b> has access to database <b>108</b>. In response to the received TOC (or the mapped logical ID), server <b>106</b> transmits metadata associated with the identified media file <b>112</b> to the user's computer <b>102</b>.
P-0055[0055] In one described embodiment, each media file <b>112</b> in which the content that is to be experienced by the user resides has a physical ID associated therewith. The physical ID is assigned or otherwise associated with a logical ID, which is then used as the basis for any database queries. With respect to the physical IDs that are associated with the media, any suitable method or technique of generating a physical ID can be used. For example, when a user inserts a piece of media into a properly configured and enabled device, software code can execute and read data from the physical media. The software code can then compose a unique or nearly unique physical ID from that data.
P-0056[0056] In the case where the media comprises a CD, the software code can read the offsets (in frames, which have a resolution of {fraction (1/72)}<sup>nd </sup>of a second) of each track on the disc. A composite key or physical ID is then built from a string of the hex values of these offsets, prefaced by a number of tracks on the disc and finished with a representation of the total length of the disc.
P-0057[0057] In the case where the media comprises a DVD, the software code can read the first 64 kilobytes of two files that are guaranteed to be on every DVD. These files are VIDEO_TS.IFO and VTS<sub>—</sub>01<sub>—</sub>0.IFO. The former contains main-menu information (VMGI), and the latter contains title set information (VTSI) for the first title on the DVD. After the appropriate data blocks are read, the code generates a 64-bit CRC (cyclic redundancy code) checksum of the data, resulting in an appropriately unique key or physical ID. Of course, it is to be understood that the above two examples are simply two ways that a physical ID can be generated for two different types of media. Other methods of generating physical IDs, as well as other media types can be employed.
P-0058[0058] Calculation of the physical IDs takes place, in this example, on the client side by software code that executes on client computer <b>102</b>. Such code can comprise part of a software-implemented media player (e.g., media player program <b>116</b>) that is configured to play the media of interest. Once the physical IDs are generated, client computer <b>102</b> sends the physical IDs to server <b>106</b> of the repository web site <b>118</b> via network <b>104</b> using a suitable protocol. The server <b>106</b> then uses the physical ID to query a lookup table to determine whether there is a proper logical ID associated with it. The logical ID represents the piece of media in metadata database <b>108</b>. If there is a logical ID associated with the physical ID, then that logical ID serves as a basis for a query of database <b>108</b>. This query then returns, to the user, metadata associated with the user's media file <b>112</b>. This metadata comprise a rich collection of data, with non-limiting examples being given above.
P-0059[0059]FIG. 5 shows one example of a general purpose computing device in the form of a computer <b>500</b>. In one embodiment of the invention, a computer such as the computer <b>500</b> is suitable for use in executing media player program <b>116</b>.
P-0060[0060] In the illustrated embodiment, computer <b>500</b> has one or more processors or processing units <b>502</b> and a system memory <b>504</b>. A system bus <b>508</b> couples various system components including the system memory <b>504</b> to the processors <b>502</b>. The bus <b>508</b> represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures. By way of example, and not limitation, such architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI) bus also known as Mezzanine bus.
P-0061[0061] The computer <b>500</b> has at least some form of computer readable media in FIG. 5. Computer readable media may be any available medium that can be accessed locally or remotely by computer <b>500</b>. By way of example and not limitation, computer readable media comprise computer storage media and communication media. Computer storage media include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. For example, computer storage media include RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store the desired information and that can accessed by computer <b>500</b>. Communication media typically embody computer readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism and include any information delivery media. Those skilled in the art are familiar with the modulated data signal, which has one or more of its characteristics set or changed in such a manner as to encode information in the signal. Wired media, such as a wired network or direct-wired connection, and wireless media, such as acoustic, RF, infrared, and other wireless media, are examples of communication media. Combinations of the any of the above are also included within the scope of computer readable media.
P-0062[0062] The system memory <b>504</b> includes computer storage media in the form of removable and/or non-removable, volatile and/or nonvolatile memory. In the illustrated embodiment, system memory <b>504</b> includes read only memory (ROM) <b>510</b> and random access memory (RAM) <b>512</b>. A basic input/output system <b>516</b> (BIOS), containing the basic routines that help to transfer information between elements within computer <b>500</b>, such as during startup, is typically stored in ROM <b>510</b>. The RAM <b>512</b> typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit <b>502</b>. By way of example, and not limitation, FIG. 5 illustrates operating system <b>518</b>, application programs <b>520</b> (e.g., media player <b>116</b>), other program modules <b>524</b>, and program data <b>526</b>.
P-0063[0063] The computer <b>500</b> may also include other removable/non-removable, volatile/nonvolatile computer storage media. For example, FIG. 5 illustrates a hard disk drive <b>530</b> that reads from or writes to non-removable, nonvolatile magnetic media. FIG. 5 also shows a magnetic disk drive <b>532</b> that reads from or writes to a removable, nonvolatile magnetic disk <b>534</b>, and an optical disk drive <b>536</b> that reads from or writes to a removable, nonvolatile optical disk <b>538</b> such as a CD-ROM or other optical media. Other removable/non-removable, volatile/nonvolatile computer storage media that can be used in the exemplary operating environment include, but are not limited to, magnetic tape cassettes, flash memory cards, digital versatile disks, digital video tape, solid state RAM, solid state ROM, and the like. The hard disk drive <b>518</b>, and magnetic disk drive <b>532</b> and optical disk drive <b>536</b> are typically connected to the system bus <b>508</b> by a non-volatile memory interface, such as interface <b>542</b>.
P-0064[0064] The drives or other mass storage devices and their associated computer storage media discussed above and illustrated in FIG. 5, provide storage of computer readable instructions, data structures, program modules and other data for the computer <b>500</b>. In FIG. 5, for example, hard disk drive <b>530</b> stores operating system <b>546</b>, application programs <b>548</b>, other program modules <b>550</b>, and program data <b>552</b>. Note that these components can either be the same as or different from operating system <b>518</b>, application programs <b>520</b>, other program modules <b>524</b>, and program data <b>526</b>. Operating system <b>546</b>, application programs <b>548</b>, other program modules <b>550</b>, and program data <b>552</b> are given different numbers here to illustrate that, at a minimum, they are different copies.
P-0065[0065] For purposes of illustration, programs and other executable program components, such as the operating system <b>518</b>, <b>546</b>, are illustrated herein as discrete blocks. It is recognized, however, that such programs and components reside at various times in different storage components of the computer, and are executed by the data processor(s) of the computer. For example, FIG. 5 shows media player <b>116</b> stored in system memory <b>504</b>. Those skilled in the art understand that components of media player <b>116</b> may reside in system memory <b>504</b>, hard disk drive <b>530</b>, or both.
P-0066[0066] Referring further to FIG. 5, a user may enter commands and information into computer <b>500</b> through input devices such as a keyboard <b>556</b> and a pointing device <b>558</b> (e.g., a mouse, trackball, pen, or touch pad). Other input devices known in the art include an audio/video input device(s) <b>560</b> as well as a microphone, joystick, game pad, satellite dish, scanner, or the like (not shown). These and other input devices are connected to processing unit <b>502</b> through a user input interface <b>564</b> that is coupled to system bus <b>508</b>, but may be connected by other interface and bus structures, such as a parallel port, game port, or a universal serial bus (USB). As is well known in the art, application programs <b>520</b>, <b>548</b> are often configured to present a user interface (UI). The UI allows a user to interact with the application program in some manner using some type of input device (e.g., keyboard <b>556</b> or pointing device <b>558</b>). This UI is typically a visual display that is capable of receiving user input and processing that user input in some way. By way of example, the UI presents one or more buttons or controls that can be clicked on by a user.
P-0067[0067] A monitor <b>566</b> or other type of display device is also connected to system bus <b>508</b> via an interface, such as a video interface <b>568</b>. In addition to the monitor <b>566</b>, computers often include other peripheral output devices (not shown) such as a printer and speakers, which may be connected through an output peripheral interface (not shown).
P-0068[0068] The computer <b>500</b> may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer <b>572</b>. The remote computer <b>572</b> may be a personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to computer <b>500</b>. The logical connections depicted in FIG. 5 include a local area network (LAN) <b>574</b> and a wide area network (WAN) <b>576</b>, but may also include other networks. Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets, and global computer networks (e.g., the Internet).
P-0069[0069] When used in a local area networking environment, computer <b>500</b> is connected to the LAN <b>574</b> through a network interface or adapter <b>580</b>. When used in a wide area networking environment, such as the Internet, computer <b>500</b> typically includes a modem <b>582</b> or other means for establishing communications over the WAN <b>576</b>. The modem <b>582</b>, which may be internal or external, is connected to system bus <b>508</b> via the user input interface <b>564</b>, or other appropriate mechanism. In a networked environment, program modules depicted relative to computer <b>500</b>, or portions thereof, may be stored in a remote memory storage device (not shown). By way of example, and not limitation, FIG. 5 illustrates remote application programs <b>584</b> as residing on the memory device. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used.
P-0070[0070] Generally, the data processors of computer <b>500</b> are programmed by means of instructions stored at different times in the various computer-readable storage media of the computer. Programs and operating systems are typically distributed, for example, on floppy disks or CD-ROMs. From there, they are installed or loaded into the secondary memory of a computer. At execution, they are loaded at least partially into the computer's primary electronic memory. The invention described herein includes these and other various types of computer-readable storage media when such media contain instructions or programs for implementing the steps described below in conjunction with a microprocessor or other data processor. The invention also includes the computer itself when programmed according to the methods and techniques described below.
P-0071[0071] Although described in connection with an exemplary computing system environment, including computer <b>500</b>, the invention is operational with numerous other general purpose or special purpose computing system environments or configurations. The computing system environment is not intended to suggest any limitation as to the scope of use or functionality of the invention. Moreover, the computing system environment should not be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in the exemplary operating environment. Examples of well known computing systems, environments, and/or configurations that may be suitable for use with the invention include, but are not limited to, personal computers, server computers, thin clients, thick clients, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
P-0072[0072] The invention may be described in the general context of computer-executable instructions, such as program modules, executed by one or more computers or other devices. Generally, program modules include, but are not limited to, routines, programs, objects, components, and data structures that perform particular tasks or implement particular abstract data types. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices.
P-0073[0073] In operation, computer <b>500</b> executes computer-executable instructions such as those illustrated in FIG. 4. Back end database server <b>306</b> collects source data, such as media metadata, and generates a current publication database from the collected source data. The publication database contains, for example, a plurality of metadata records that relate to the content of one or more media files <b>112</b>. As described above, media files <b>112</b> are adapted for rendering by media player program <b>116</b> executed on client computer <b>102</b>. Front end database server <b>302</b> maintains at least two associated databases <b>304</b>, <b>308</b> (or <b>312</b>, <b>314</b>). The present invention enables one of the associated databases, such as database <b>304</b>, for delivering data to at least one recipient (e.g., web server <b>106</b>) via data communication network <b>104</b>. In other words, the database is online. According to the invention, the other database <b>308</b> is offline, or disabled, to prevent data from being delivered to the recipient. Back end database server <b>306</b> modifies the data contained in the disabled database <b>308</b> while it is offline and then instructs front end database server <b>302</b> to alternate the enabled database <b>304</b> with the recently updated disabled database <b>308</b>. This enables the previously disabled database for delivering data and disables the previously enabled database to prevent it from delivering data. In one embodiment, back end database server <b>306</b> modifies the data in the offline database by copying the current publication database to it.
P-0074[0074] When introducing elements of the present invention or the embodiments thereof, the articles “a,” “an,” “the,” and “said” are intended to mean that there are one or more of the elements. The terms “comprising,” “including,” and “having” are intended to be inclusive and mean that there may be additional elements other than the listed elements.
P-0075[0075] In view of the above, it will be seen that the several objects of the invention are achieved and other advantageous results attained.
P-0076[0076] As various changes could be made in the above constructions and methods without departing from the scope of the invention, it is intended that all matter contained in the above description and shown in the accompanying drawings shall be interpreted as illustrative and not in a limiting sense.
Contents5
6 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US2014201228A1 | Cited by | United States of America | Search report |
| US8041904B2 | Cited by | United States of America | Applicant |
| US7483927B2 | Cited by | United States of America | Applicant |
| US2010076979A1 | Cited by | United States of America | Pre-grant |
| US11762849B2 | Cited by | United States of America | Search report |
| US2004078398A1 | Cited by | United States of America | Pre-grant |
| US8055623B2 | Cited by | United States of America | Applicant |
| US2010077197A1 | Cited by | United States of America | Pre-grant |
| US2010070701A1 | Cited by | United States of America | Pre-grant |
| US2005125621A1 | Cited by | United States of America | Pre-grant |
| US2007168316A1 | Cited by | United States of America | Pre-grant |
| US2014201228A1 | Cited by | United States of America | Search report |
| US2015261800A1 | Cited by | United States of America | Search report |
| US11914570B2 | Cited by | United States of America | Search report |
| US2010076952A1 | Cited by | United States of America | Pre-grant |
| US8290923B2 | Cited by | United States of America | Search report |
| US2010076947A1 | Cited by | United States of America | Pre-grant |
| US10509730B2 | Cited by | United States of America | Applicant |
| US10216637B2 | Cited by | United States of America | Applicant |
| US10387313B2 | Cited by | United States of America | Applicant |
| US2007162516A1 | Cited by | United States of America | Pre-grant |
| US2009150611A1 | Cited by | United States of America | Pre-grant |
| US2007130229A1 | Cited by | United States of America | Pre-grant |
| EP2661876B1 | Cited by | European Patent Office (EPO) | Examiner |
| US9690496B2 | Cited by | United States of America | Applicant |
| US2014201228A1 | Cited by | United States of America | Pre-grant |
| US7200625B2 | Cited by | United States of America | Search report |
| US2009216777A1 | Cited by | United States of America | Pre-grant |
| US11334484B2 | Cited by | United States of America | Applicant |
| US9405693B2 | Cited by | United States of America | Applicant |
| US2023121898A1 | Cited by | United States of America | Search report |
| US2009063430A1 | Cited by | United States of America | Pre-grant |
| US2004267742A1 | Cited by | United States of America | Pre-grant |
| US2007208780A1 | Cited by | United States of America | Pre-grant |
| US8255645B2 | Cited by | United States of America | Applicant |
| EP2738733A1 | Cited by | European Patent Office (EPO) | Examiner |
| US7979393B2 | Cited by | United States of America | Search report |
| US2007073764A1 | Cited by | United States of America | Pre-grant |
| US2007162512A1 | Cited by | United States of America | Pre-grant |
| US10831731B2 | Cited by | United States of America | Search report |
| CN111857534A | Cited by | China | Search report |
| US5170480A | Cites | United States of America | Pre-grant |
| US5606693A | Cites | United States of America | Pre-grant |
| US5668986A | Cites | United States of America | Pre-grant |
| US6345256B1 | Cites | United States of America | Pre-grant |
| US6377959B1 | Cites | United States of America | Pre-grant |
| US6393434B1 | Cites | United States of America | Pre-grant |
| US6408336B1 | Cites | United States of America | Pre-grant |
2 members in 1 office; this record represents the family
Members2
| Document | Office | Kind | |
|---|---|---|---|
| US2004003003A1 | United States of America | A1 | |
| US7065527B2 | United States of America | B2 |
55 transactions on the USPTO file
Allowed after 1 non-final rejection, 1 final rejection and 1 RCE.
- Non-final rejections
- 1
- Final rejections
- 1
- RCEs
- 1
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Expire PatentEXP. | EXP. | |
| Correspondence Address ChangeC.AD | C.AD | |
| Correspondence Address ChangeC.AD | C.AD | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Date Forwarded to Examiner | – | |
| Date Forwarded to Examiner | – | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Information Disclosure Statement considered | – | |
| Information Disclosure Statement considered | – | |
| Information Disclosure Statement (IDS) Filed | – | |
| Information Disclosure Statement (IDS) Filed | – | |
| Information Disclosure Statement (IDS) Filed | – | |
| Information Disclosure Statement (IDS) Filed | – | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Request for Extension of Time - GrantedXT/G | XT/G | |
| Supplemental ResponseSA.. | SA.. | |
| Mail Advisory Action (PTOL - 303)MCTAV | MCTAV | |
| Advisory Action (PTOL-303)CTAV | CTAV | |
| Mail Examiner Interview Summary (PTOL - 413)MEXIN | MEXIN | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Final ActionA.NE | A.NE | |
| Interview Summary RecordEXIN | EXIN | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) Filed | – | |
| Information Disclosure Statement (IDS) Filed | – | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| IFW TSS Processing by Tech Center CompleteTSSCOMP | TSSCOMP | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) Filed | – | |
| Information Disclosure Statement (IDS) Filed | – | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Application Is Now CompleteCOMP | COMP | |
| IFW Scan & PACR Auto Security Review | – | |
| Initial Exam Team nnIEXX | IEXX |
9 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Lapsed due to failure to pay maintenance feeLapsedFP | FP | |
| AssignmentAS | AS | |
| Lapsed due to failure to pay maintenance feeLapsedFP | FP | |
| Information on status: patent discontinuationPATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362STCH | STCH | |
| Information on status: patent discontinuationPATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362STCH | STCH | |
| Lapse for failure to pay maintenance feesLapsedLAPS | LAPS | |
| Maintenance fee reminder mailedREMI | REMI | |
| Fee paymentFPAY | FPAY | |
| AssignmentAS | AS |
Numbers
- Application
- 18044302
Titles
- English
- Data publishing systems and methods
Patent term adjustment
- A delay
- +511 daysthe office missed an examination deadline
- Applicant delay
- −86 days
- Net adjustment
- 425 days
Classification
- CPC, 4
- G06F16/972
- G06F16/2372
- G06F16/2379
- Y10S707/99953
- IPC, 1
- G06F17 30