A method and arrangement for implementing a content delivery server is disclosed. The arrangement contains at least one content delivery server and plurality of content terminals. The first computer has means to identify at least one set of content data items from plurality of content data items, means to identify at least one set of second computers from said plurality of second computers and means to link at least one identified set of content data with at least one identified set of second computers. The content delivery server assigns at least one content data item of said identified set of content data items to at least one second computer of said identified group of second computers based on said link.
|
28. A system for delivering digital content data comprising:
a first computer and plurality of second computers, said first computer including at least one storage system for storing a computer program and at least one processor for processing said computer program to:
identify at least one set of content data items satisfying a content selection rule from a plurality of content data items, wherein each content data item is associated with a corresponding content metadata item, wherein said content selection rule includes at least one criterion each specifying a value within content metadata items and each content data item of said at least one identified set of content data items is associated with a corresponding content metadata item including that value to satisfy said content selection rule, and wherein a content rule identifier identifying said content selection rule and one or more content identifiers identifying said identified content data items are stored in a first storage structure to indicate content data items satisfying said content selection rule;
identify at least one set of second computers satisfying a device selection rule from a plurality of second computers, wherein each of at least one device data item representing a second computer is associated with a corresponding device metadata item, wherein said device selection rule includes at least one criterion each specifying a value within device metadata items and each second computer of said at least one identified set of second computers is associated with a corresponding device metadata item including that value to satisfy said device selection rule, and wherein a device rule identifier identifying said device selection rule and one or more device identifiers identifying said identified second computers are stored in a second storage structure to indicate second computers satisfying said device selection rule;
link said content selection rule with said device selection rule to link said at least one identified set of content data items satisfying said content selection rule with said at least one identified set of second computers satisfying said device selection rule for distribution of at least one content data item to at least one second computer, wherein said content rule identifier and said device rule identifier are stored in a third storage structure to indicate content data items linked with second computers;
assign at least one content data item of said at least one identified set of content data items to at least one second computer of said at least one identified set of second computers based on said linking of said at least one identified set of content data items with said at least one identified set of second computers; and
synchronize said content data items residing on said second computers with said content data items assigned to those second computers in response to a change in at least one of said content data items and said assignments of said content data items.
1. A computer-implemented method for delivering digital content data from a first computer to one or more specific second computers comprising:
identifying, via said first computer, at least one set of content data items satisfying a content selection rule from a plurality of content data items, wherein each content data item is associated with a corresponding content metadata item, wherein said content selection rule includes at least one criterion each specifying a value within content metadata items and each content data item of said at least one identified set of content data items is associated with a corresponding content metadata item including that value to satisfy said content selection rule, and wherein a content rule identifier identifying said content selection rule and one or more content identifiers identifying said identified content data items are stored in a first storage structure to indicate content data items satisfying said content selection rule;
identifying, via said first computer, at least one set of second computers satisfying a device selection rule from a plurality of second computers, wherein each of at least one device data item representing a second computer is associated with a corresponding device metadata item, wherein said device selection rule includes at least one criterion each specifying a value within device metadata items and each second computer of said at least one identified set of second computers is associated with a corresponding device metadata item including that value to satisfy said device selection rule, and wherein a device rule identifier identifying said device selection rule and one or more device identifiers identifying said identified second computers are stored in a second storage structure to indicate second computers satisfying said device selection rule;
linking, via said first computer, said content selection rule with said device selection rule to link said at least one identified set of content data items satisfying said content selection rule with said at least one identified set of second computers satisfying said device selection rule for distribution of at least one content data item to at least one second computer, wherein said content rule identifier and said device rule identifier are stored in a third storage structure to indicate content data items linked with second computers;
assigning, via said first computer, at least one content data item of said at least one identified set of content data items to at least one second computer of said at least one identified set of second computers based on said linking of said at least one identified set of content data items with said at least one identified set of second computers; and
synchronizing, via said first computer, said content data items residing on said second computers with said content data items assigned to those second computers in response to a change in at least one of said content data items and said assignments of said content data items.
55. A computer program product for delivering digital content data from a first computer to one or more specific second computers, the computer program product comprising:
a computer readable storage medium having computer readable program code embodied therewith, the computer readable program code comprising computer readable program code configured to:
identify at least one set of content data items satisfying a content selection rule from a plurality of content data items, wherein each content data item is associated with a corresponding content metadata item, wherein said content selection rule includes at least one criterion each specifying a value within content metadata items and each content data item of said at least one identified set of content data items is associated with a corresponding content metadata item including that value to satisfy said content selection rule, and wherein a content rule identifier identifying said content selection rule and one or more content identifiers identifying said identified content data items are stored in a first storage structure to indicate content data items satisfying said content selection rule;
identify at least one set of second computers satisfying a device selection rule from a plurality of second computers, wherein each of at least one device data item representing a second computer is associated with a corresponding device metadata item, and wherein said device selection rule includes at least one criterion each specifying a value within device metadata items and each second computer of said at least one identified set of second computers is associated with a corresponding device metadata item including that value to satisfy said device selection rule, and wherein a device rule identifier identifying said device selection rule and one or more device identifiers identifying said identified second computers are stored in a second storage structure to indicate second computers satisfying said device selection rule;
link said content selection rule with said device selection rule to link said at least one identified set of content data items satisfying said content selection rule with said at least one identified set of second computers satisfying said device selection rule for distribution of at least one content data item to at least one second computer, wherein said content rule identifier and said device rule identifier are stored in a third storage structure to indicate content data items linked with second computers;
assign at least one content data item of at least one identified set of content data items to at least one second computer of said at least one identified set of second computers based on said linking of said at least one identified set of content data items with said at least one identified set of second computers; and
synchronize, via said first computer, said content data items residing on said second computers with said content data items assigned to those second computers in response to a change in at least one of said content data items and said assignments of said content data items.
2. The method according to
3. The method according to
4. The method according to
5. The method according to
6. The method according to
7. The method according to
8. The method according to
9. The method according to
10. The method according to
11. The method according to
12. The method according to
13. The method according to
14. The method according to
15. The method according to
a. at least one content data item,
b. at least one content metadata item associated with a content data item,
c. a data item to instruct deletion of at least one content data item that is stored in said at least one second computer, and
d. a data item to instruct deletion of a content metadata item that is stored in said at least one second computer.
16. The method according to
17. The method according to
18. The method according to
19. The method according to
20. The method according to
21. The method according to
22. The method according to
23. The method according to
24. The method according to
25. The method according to
26. The method according to
27. The method according to
29. The system according to
30. The system according to
31. The system according to
32. The system according to
33. The system according to
34. The system according to
35. The system according to
36. The system according to
37. The system according to
38. The system according to
39. The system according to
40. The system according to
41. The system according to
42. The system according to
a. at least one content data item,
b. at least one content metadata item associated with a content data item,
c. a data item to instruct deletion of at least one content data item that is stored in said at least one second computer, and
d. a data item to instruct deletion of a content metadata item that is stored in said at least one second computer.
43. The system according to
44. The system according to
45. The system according to
46. The system according to
47. The system according to
48. The system according to
49. The system according to
50. The system according to
51. The system according to
52. The system according to
53. The system according to
54. The system according to
56. The computer program product according to
57. The computer program product according to
58. The computer program product according to
59. The computer program product according to
60. The computer program product according to
61. The computer program product according to
62. The computer program product according to
63. The computer program product according to
64. The computer program product according to
65. The computer program product according to
66. The computer program product according to
67. The computer program product according to
68. The computer program product according to
69. The computer program product according to
a. at least one content data item,
b. at least one content metadata item associated with a content data item,
c. a data item to instruct deletion of at least one content data item that is stored in said at least one second computer, and
d. a data item to instruct deletion of a content metadata item that is stored in said at least one second computer.
70. The computer program product according to
71. The computer program product according to
72. The computer program product according to
73. The computer program product according to
74. The computer program product according to
75. The computer program product according to
76. The computer program product according to
77. The computer program product according to
78. The computer program product according to
79. The computer program product according to
80. The computer program product according to
81. The computer program product according to
82. The method according to
83. The system according to
84. The computer program product according to
|
The present invention relates generally to digital content management. Especially, the invention relates to providing a manageable and scalable system and method for digital content delivery.
Digital content delivery from content libraries of a content provider to terminal devices has been in widespread use since the adoption of the World Wide Web (WWW). In its simplest form, a content delivery system of the prior art consists of a Web server from where a client terminal such as a Web browser running on a personal computer may download content identified by an Uniform Resource Locator (URL). Such a simple system has its limitations, however. Most importantly, a single server has its limits in terms of maximum performance. Too many concurrent client terminals downloading data from the server cause the download speed experienced by a client to drop below a critical lower limit which makes rendering multimedia content unpractical.
Digital content may be enhanced by attaching metadata to the content. For example, an audio track containing music may have metadata attached that contain information about the name of the track, artist, composer, genre and date of recording. Similarly, a video stream of a motion picture may contain metadata about the actors, director and producer of the motion picture. In case of a video stream, the stream often consists of a number of segments. Each segment may have its own metadata attached. Such metadata contains information about what the particular segment of the video contains. In video streams, the metadata may be of a standardized nature, e.g., following MPEG-7 or MPEG-21 standards that are based on an Extensible Markup Language (XML) standard. Some metadata may be provided by the provider of the content, but metadata may also be created by individual users of the content. For example, in the World Wide Web, some web sites allow users to tag content. Other users may then use the tagging data to find the content they want to access and use.
Users of the World Wide Web may use various ways to find the content they are interested about. Most typically, users enter some plain text to a search engine as a search criterion. The search engine executes the query against its databases and returns a list of URLs (Uniform Resource Locator) to the web browser of the user. The list typically is sorted by relevance.
Another way to access data that is of interest to the user is to use an alert service. For example, some news sites in the Web provide a service that sends a notification e-mail to a user whenever content matching a persistent search criteria specified by the user is input to the content database. The user may for instance request that whenever a news item containing the word “baseball” is created, a notification about the item along with the URL of the item is sent to the e-mail address given by the user.
Yet another way to receive a specific kind of content data from the web is a so called “Podcast.” Podcast is a service accessible through an URL that provides a “channel” of content for download into a rendering device such as a mobile digital audio player device. For example, an URL may provide a certain daily radio program that has been made available for download. The content of the Podcast channel typically changes regularly, thus providing different content for each download. A user may render the content from the local storage of the device at his/her convenience.
Personalized websites are also well known in the prior art. Such a web site identifies the user and provides a personalized view to the services provided by the web site. For example, the web site may provide different content or a user interface depending on who is accessing the web site.
Patent application US 2004/0068532 teaches a system for supporting production, management and delivery of media content for wireless devices. The method teaches a usage of a single rules engine that uses rules for selecting and delivering such content to mobile devices that can be delivered and rendered in the target device. According to the method, content data is stored in a file server and related rules and metadata are stored in a separate relational database server. Having some data in a file server and some other data in a relational database server introduces a risk of losing data integrity within the overall data model if an error occurs when writing data to the system. Storing data as files in a file server also means that the data cannot be written, e.g., deleted from the system while it is being concurrently read. Moreover, the method of the patent application does not teach a way to scale up the system's content delivery capacity.
The prior art provides suitable methods and systems for finding, accessing and rendering content and metadata in a system where content meeting some search criteria needs to be delivered to individual terminals. However, those methods and systems are not suitable for maintaining reliably and manageably a relevant copy of digital content along with data related to the content in a specified group of devices. Only a set of content that matches the user's or user group's needs, should preferably be sent to the designated devices of the users. When the content is not any more relevant in the device, it should for usability and resource consumption reasons be automatically deleted from the device by the server that sent the piece of content to the device. For manageability reasons, the server should always maintain information about what data actually is in each of the devices with which the server interacts. Users also need to have access to the same content from multiple different devices. Hence, the delivery system should provide a capability for identifying all the devices which a piece of content should be delivered. The methods taught by the prior art also fail to provide a solution for managing digital content in a large content delivery network from a centralized management system. The methods taught by the prior art also fail to provide a method that guarantees good performance and data availability in situations where the same data is being read and written simultaneously in the devices of the network. Finally, the methods taught by the prior art fail to provide a quick system recovery in an error situation where a server computer fails because of a fatal software or hardware error.
One object of the present invention is to provide a method and system for implementing a scalable content delivery server that is able to maintain a copy of digital content data and data associated with the digital content data in specified groups of terminal devices. Further, the object of the invention is to provide a method and system for remotely managing the delivery and maintenance of content data and data related to the content data in a number of terminal devices in a simple, dependable, reliable and highly available manner.
The content delivery server is a data management server, preferably capable of managing data of complex data models as well as providing transactional data access and manipulation services. The delivery server receives annotated content data as well as data about devices as input and processes the data based on some content selection and device selection rules to maintain information about delivery destinations of the content data. Terminals may at any point of time request from the content delivery server updates to content and metadata that is assigned for the terminal. Those updates may contain new data, updated data or instructions to delete data from the terminal.
The objects of the invention are achieved by using content selection rules for determining a set of content data and device selection rules for identifying a group of terminal devices, linking an identified content data set to an identified device set and assigning each data item of the content data set to each device of the identified device group. Further, the objects of the invention are achieved by observing changes in the content data and device data and adjusting the content assignment data accordingly. Yet further, the objects of the invention are achieved by synchronizing the data of a terminal device with the help of the content assignment data. Still yet further, the objects of the invention are achieved by managing all data of the system in database management systems that are capable of transactional data management of all data of the system, data distribution and database mirroring.
In one preferred embodiment, the server receives the following categories of data from one or multiple sources as input data:
Additionally, to facilitate more efficient operation of the server, the content delivery server may maintain a change log that contains information about what's the last data item of each category (content and device data, metadata and rules) processed by the server. This way, changed data can be processed by the server in an incremental manner.
Whenever the content delivery server of the present invention receives new or updated data in one or multiple transactions from one or multiple data sources or it updates some data itself, it may run a batch program that matches rule data with metadata. Following the matching, the server maintains content assignment data that expresses which terminals should contain a particular piece of content data and related content metadata. Database transactions are preferably applied in this assignment process to ensure consistency of the assignment data.
A terminal may request at any point of time, also during the assignment process, a data refresh package for the content that has been assigned to the terminal. Upon such a request, the server identifies content data that should be sent to the terminal based on the current committed state of the content assignment data. In a relational database, this is easily done by joining data from the content assignment table with data from the content table. Further data, such as the metadata related to the assigned content, may be included into the result set using another join operation. Like the assignment process, the refresh package assembly operation is best done in one database transaction that sees a consistent view to the database of the content delivery server.
Depending on the scalability and other needs of the system, the topology of the system may vary. In the simplest implementation, there is only one distribution server that maintains all input data mentioned above. Should the system need to be scaled up, the number of distribution servers can be increased. Now the content and device data along with their metadata may be moved to a different server from where the data is synchronized to the distribution servers. In the most complex distribution topology, content data, device data and distribution rules may all reside in different servers from where appropriate data is synchronized to those distribution servers that need the data. In some embodiments of the invention, the rule execution process may occur also in another rule server. In this case, the rule match data resulting from the rule execution process is sent from the rule server to the delivery server where it is used for maintaining the content assignment data that eventually determines what content data should be sent to which devices.
In some embodiments, some of the content metadata may be device or subscriber specific. For example, the terminal may update some of the metadata or enter its own metadata to content or device data and send the updated and/or new data to the distribution server. The distribution server may process the changed metadata and adjust the content assignment data accordingly. For example, a terminal may add a “viewed-flag” as metadata of a video segment and send it back to the distribution server. The delivery server processes the new data and determines that the assignment row for the content segment and device should be deleted as the user wants to only have “non-viewed” segments of content in the local terminal device. When the terminal requests the next refresh package from the server, the segment of streaming video is deleted from the local terminal.
To achieve high availability and low cost of operation, the data of a distribution server may be mirrored from a primary server to another, secondary server containing an identical database. Preferably, 2-safe replication where transactions are committed synchronously in both databases should be used. This guarantees that both servers always contain data of all committed transactions. If the primary server fails, the secondary server takes over responsibilities of the primary server from the point where the primary server failed.
For concurrency control of the transactions of the distribution server, optimistic, also known as versioning, concurrency control is preferred. Versioning concurrency control means that if data is updated, the updating transaction creates a new version of the data whereas the old version of data is available to other transactions while the updating transaction is active. Because of this, write operations don't block access to concurrent reads and the distribution server is always available for serving the client terminals with consistent data.
The data transfer from the data sources to the content distribution server and from the distribution server to the terminal may be implemented as purpose-made applications or it may be implemented using general purpose data synchronization techniques such as Solid SmartFlow™. A data synchronization technique is preferred between the distribution server and terminal if the terminal has a database that is capable of synchronizing data.
If the terminal is not equipped with a database with which the distribution server may synchronize, the data may be sent to the terminal in some other format, such as an XML document that is custom-made for each terminal or group of terminals. The XML document may be compliant with some standard such as MPEG-7 or MPEG-21. In this embodiment the multimedia content stream may be delivered to the terminal on-line as an HTIP or other stream. To facilitate this, the distribution server creates a set of URLs, one for each segment defined for the stream and sends the URLs to the terminal instead of the content segments. The terminal may now request any segment of the content feed from the server by sending the corresponding URL to the server.
One distribution server may use multiple different methods for maintaining the terminal assignment data of its content. The method used may depend for example on the type of the content metadata. For example, some metadata may be e.g. full text data such as TV program transcripts whereas some other content metadata may be of a data type particular to a certain content type. Metadata that is particular to a certain content type may be expressed in ontology. Different rules processing methods may be applied to different types of rules and metadata.
A preferred embodiment of this invention is to maintain a set of digital content data in specified terminals by matching content's metadata with a set of content selection rules, to identify a group of terminals by matching devices' metadata with a set of device selection rules and to maintain data that assigns a content data item to a terminal by linking together the content data set and device group.
The invention concerns a method for delivering digital content data comprising at least one first computer and plurality of second computers, wherein said first computer has means to identify at least one set of content data items from plurality of content data items based on the value of at least one metadata item related to said content data item, means to identify at least one set of second computers from said plurality of second computers based on the value of at least one metadata item related to at least one device data item representing said second computer and means to link at least one identified set of content data with at least one identified set of second computers, characterized in that said first computer assigns at least one content data item of said identified set of content data items to at least one second computer of said identified group of second computers based on said link.
The invention concerns also an arrangement for delivering digital content data comprising at least one first computer and plurality of second computers, wherein said first computer has means to identify at least one set of content data items from a plurality of content data items based on the value of at least one metadata item related to said content data item, means to identify at least one set of second computers from said plurality of second computers based on the value of at least one metadata item related to at least one device data item representing said second computer and means to link at least one identified set of content data with at least one identified set of second computers, characterized in that said first computer is arranged to assign at least one content data item of said identified set of content data items to at least one second computer of said identified group of second computers based on said link.
The advantage of the invention is the ability to provide in an efficient and reliable manner operable scalable continuous content and device search service that maintains a copy of such content in those terminals where the content is deemed relevant by the rules. Another advantage of the invention is the ability to provide high availability capabilities for the system using standard database replication capabilities. Yet another advantage of the invention is the ability to use advanced query and transaction management capabilities of a standard relational database efficiently in the implementation of the content search and delivery service.
The best mode of the invention is considered to be the search of digital content and maintenance of the digital content data and data related to the content data in separately specified groups of terminals.
Some embodiments of the invention are described in the dependent claims.
The foregoing and other objects, features and advantages of this invention will be apparent from the following more particular description of the preferred embodiments of the invention as illustrated in accompanying drawings.
An exemplary arrangement of servers and terminal devices to deliver digital content into domains, each containing a number of terminals and a domain-specific distribution server is shown in
Additionally, the table advantageously contains the corresponding part of the video stream or the video stream may be stored in one or multiple “chunks” in a separate table (not shown in the picture). In this patent application, it is assumed unless stated otherwise that content data always contains streaming data or has access to the related streaming data stored in another entity of the data model.
According to the invention, it is possible to define content metadata for the entire stream and for each segment of the stream. In the exemplary data model shown, the content metadata is stored in a table called CONTENT_METADATA 420 that contains the following columns 421:
In the example data, SEG_NO value 0 means that the metadata applies to an entire stream whereas a non-zero value means that the metadata item applies to an individual segment of the stream.
In the rows 432a-b of the example table, two rules are defined. Each rule may consist of one or multiple criteria that are stored in the CONTENT_RULE_CRITERION table 440. The table has three columns 441:
For the sake of simplicity and clarity, the CRITERION data type of the example table is a character string (i.e., text) but also other types of data may be used as search criterion. In the example table, rows 442a-c contain the criteria for the rule represented by row 432a and rows 442d-e represent the criteria for the rule of row 432b. Also, for the sake of simplicity, it is assumed in the example that the criteria of a rule are combined using AND operators between the criteria. In other words, to match with the rule #1 (rows 432a, 442a-c) of the example, the content must have “SPORT”, “MOTOR” and “ACTION” items in its metadata. In the example data of
In
Additionally, the table may contain columns like ID of a subscriber using the device, the ID of the server responsible of provisioning the device and so forth. Those additional data items are not explained in detail as they are not essential for the present invention. In the example table, data of three devices 502a-c is stored. The properties of the devices are stored as device metadata in a separate DEVICE_METADATA table 510 that contains three columns 511:
In the example table, metadata values are represented as plain text for the sake of clarity but in actual implementation, also other data types may be used. In the sample data shown in
The devices can be selected into a group by matching their metadata 512a-i with device rules.
Each rule may consist of one or multiple criteria that are stored in the DEVICE_RULE_CRITERION table 530. The table of the example data model contains three columns 531:
The example data contains two rules. Rule #1 (“SET-TOP BOXES IN HELSINKI”, row 522a) has two criteria 532a-b and rule #2 (“ALL DEVICES OF MR. SMITH”, row 522b) has one criterion 532c. Like with content selection rules explained above, it is assumed in the example for the sake of simplicity that the criteria of a rule are combined using AND operators between the criteria.
For each matching content segment data item, the content delivery server maintains a data item that establishes a link between a matching content segment data item and a content rule.
The example data of table 600 expresses that content segments #2 and #3 of content header #1 match with rule #1 (602a,b) and segment #1 of content header #2 matches with content rule #2 (602c). In some other embodiments, one content rule match item may represent multiple content data items that all match the content rule.
Analogously to searching matching content, the content delivery server also maintains a data item that establishes a link between a matching device data item and a device rule.
The example data of table 610 expresses that device #1 match with device rule #1 (row 612a) and devices #1 and #3 match with device rule #2 (rows 612b,c). In some other embodiments, one device rule match item may represent multiple device data items that all match the device rule.
To determine what content should be sent to a specified group of devices, a content rule is linked together with a device rule according to the invention. One exemplary way to establish this link is shown in
The example data of table 620 expresses that content matching with rule #1 should be delivered to devices matching device rule #1 (row 622a) and content matching with rule #2 should be delivered to devices matching device rule #2 (row 622b).
Finally in
In some embodiments, there may also be a SUBSCRIBER_ID column that expresses, to which subscriber the assigned content should be sent. The example data of table 630 expresses that device #1 should have a copy of content segments #2 and #3 of content stream #1 (rows 632a-b) and the segment #1 of stream #2 (row 632c) and that device #3 should have a copy of the segment #1 of stream #2 (row 623d). If the data of the content delivery server is stored in a relational database that is capable of executing queries written in Structured Query Language (SQL), it is quite trivial to select all content data currently assigned to a specified device using a simple SQL statement:
The above example returns all rows from CONTENT_HEADER and CONTENT_SEGMENT tables that have been assigned to terminal #1. The operation to combine data from multiple tables using search criteria is called a join operation. In the above query, for example all such data from CONTENT_HEADER is selected (joined) for which there is a matching row in the CONTENT_ASSIGNMENT table with DEVICE_ID column value 1. Further, data from CONTENT_HEADER table is joined together with data from CONTENT_SEGMENT table where the value of ID column of CONTENT_HEADER table is the same as the value of HDR_ID column of CONTENT_SEGMENT table.
The significant advantage of the present invention is that by organizing, managing and manipulating digital content data, related metadata and rules in a way explained in this patent application, some very complex functionality needed for the maintenance of the data in terminal devices may be left for standard database functionality. This reduces significantly the amount of application level programming needed to implement a complex and scalable content delivery system.
To maintain the data shown in the
If any content-related data is changed, the server must maintain content rule match data 702. Similarly, whenever device-related data is changed, the server must maintain device rule match data 703. If any of the content rule match data 600, device rule match data 610 or rule link data 620 is changed, the server needs to update the content assignment data 630 accordingly 704. Content assignment ends at 705.
In a large system, some data of the database of the content delivery server may be read by one user while the same data item is being updated by another user. For example, a multimedia terminal may be reading a content assignment data item from the content delivery server while the server is updating the same content assignment data item 630. The server may for example be deleting the content assignment data item while it is being read. To achieve the best possible data availability and performance of the system in this kind of mixed-load usage scenario, the data management component such as a relational database server running in the content delivery server advantageously supports versioning concurrency control.
The rule match data for content and devices, such as data of the CONTENT_RULE_MATCH 600 and DEVICE_RULE_MATCH tables 610 needs to be maintained by some computer executable program logic. A simplified example of such logic to process one rule is described in the flow chart of
Once the rule match data for content and device data items has been updated, the program logic of the content delivery server can perform the content assignment data maintenance task. One simplified exemplary method to perform such task is shown in
Now that the content assignment data has been updated after changes in the content rule match data, device rule match data and rule link data, the content delivery server 100, 112, 123, 204 may deliver content to a terminal device 102, 114, 124, 207. One possible method for implementing such functionality is shown at a high level in
A more detailed exemplary explanation about creating a content package mentioned in step 1102 is shown in the flow chart of
To a person skilled in the art it is obvious that in order to have an illustrative description the above presented exemplary embodiments have a structure and a function, which are relatively simple. By applying the model presented in this application it is possible to design different and very complicated systems, which in obvious ways to the expert, utilize the inventive idea presented in this application.
One should note that, although embodiments concerning streaming data delivery are described, the invention is also well applicable to other data delivery solutions, such as delivery of computer executable application software and configuration data.
While the present invention has been described in accordance with preferred compositions and embodiments, it is to be understood that certain substitutions and alterations may be made thereto without departing from the spirit and scope of the following claims.
Patent | Priority | Assignee | Title |
10257319, | Oct 08 2009 | BRIGHT DATA LTD | System providing faster and more efficient data communication |
10277711, | Aug 28 2013 | BRIGHT DATA LTD | System and method for improving internet communication by using intermediate nodes |
10313484, | Oct 08 2009 | BRIGHT DATA LTD | System providing faster and more efficient data communication |
10387316, | May 18 2009 | WEB SPARK LTD. | Method for increasing cache size |
10440146, | Aug 28 2013 | BRIGHT DATA LTD | System and method for improving internet communication by using intermediate nodes |
10447809, | Aug 28 2013 | BRIGHT DATA LTD | System and method for improving internet communication by using intermediate nodes |
10469614, | Aug 28 2013 | BRIGHT DATA LTD | System and method for improving Internet communication by using intermediate nodes |
10469615, | Aug 28 2013 | BRIGHT DATA LTD | System and method for improving internet communication by using intermediate nodes |
10469628, | Oct 08 2009 | BRIGHT DATA LTD | System providing faster and more efficient data communication |
10484510, | Oct 08 2009 | BRIGHT DATA LTD | System providing faster and more efficient data communication |
10484511, | Oct 08 2009 | BRIGHT DATA LTD | System providing faster and more efficient data communication |
10491712, | Oct 08 2009 | BRIGHT DATA LTD | System providing faster and more efficient data communication |
10491713, | Oct 08 2009 | BRIGHT DATA LTD | System providing faster and more efficient data communication |
10523788, | Oct 08 2009 | BRIGHT DATA LTD | System providing faster and more efficient data communication |
10582013, | Oct 08 2009 | BRIGHT DATA LTD | System providing faster and more efficient data communication |
10582014, | Oct 08 2009 | BRIGHT DATA LTD | System providing faster and more efficient data communication |
10616294, | May 14 2015 | BRIGHT DATA LTD | System and method for streaming content from multiple servers |
10616375, | Oct 08 2009 | BRIGHT DATA LTD | System providing faster and more efficient data communication |
10637968, | Oct 08 2009 | BRIGHT DATA LTD | System providing faster and more efficient data communication |
10652357, | Aug 28 2013 | BRIGHT DATA LTD | System and method for improving internet communication by using intermediate nodes |
10652358, | Aug 28 2013 | BRIGHT DATA LTD | System and method for improving internet communication by using intermediate nodes |
10659562, | Aug 28 2013 | BRIGHT DATA LTD | System and method for improving internet communication by using intermediate nodes |
10721325, | Aug 28 2013 | BRIGHT DATA LTD | System and method for improving internet communication by using intermediate nodes |
10785347, | Oct 08 2009 | BRIGHT DATA LTD | System providing faster and more efficient data communication |
10805429, | Oct 08 2009 | BRIGHT DATA LTD | System providing faster and more efficient data communication |
10880266, | Aug 28 2017 | BRIGHT DATA LTD | System and method for improving content fetching by selecting tunnel devices |
10902080, | Feb 25 2019 | BRIGHT DATA LTD | System and method for URL fetching retry mechanism |
10924580, | Aug 28 2013 | BRIGHT DATA LTD | System and method for improving internet communication by using intermediate nodes |
10931792, | Oct 08 2009 | BRIGHT DATA LTD | System providing faster and more efficient data communication |
10958768, | Oct 08 2009 | BRIGHT DATA LTD | System providing faster and more efficient data communication |
10963531, | Feb 25 2019 | BRIGHT DATA LTD | System and method for URL fetching retry mechanism |
10979533, | Aug 28 2013 | BRIGHT DATA LTD | System and method for improving internet communication by using intermediate nodes |
10985934, | Aug 28 2017 | BRIGHT DATA LTD | System and method for improving content fetching by selecting tunnel devices |
10986208, | Aug 28 2013 | BRIGHT DATA LTD | System and method for improving internet communication by using intermediate nodes |
10986216, | Oct 08 2009 | BRIGHT DATA LTD | System providing faster and more efficient data communication |
10999402, | Aug 28 2013 | BRIGHT DATA LTD | System and method for improving internet communication by using intermediate nodes |
11005967, | Aug 28 2013 | BRIGHT DATA LTD | System and method for improving internet communication by using intermediate nodes |
11012529, | Aug 28 2013 | BRIGHT DATA LTD | System and method for improving internet communication by using intermediate nodes |
11012530, | Aug 28 2013 | BRIGHT DATA LTD | System and method for improving internet communication by using intermediate nodes |
11038989, | Oct 08 2009 | BRIGHT DATA LTD | System providing faster and more efficient data communication |
11044341, | Oct 08 2009 | BRIGHT DATA LTD | System providing faster and more efficient data communication |
11044342, | Oct 08 2009 | BRIGHT DATA LTD | System providing faster and more efficient data communication |
11044344, | Oct 08 2009 | BRIGHT DATA LTD | System providing faster and more efficient data communication |
11044345, | Oct 08 2009 | BRIGHT DATA LTD | System providing faster and more efficient data communication |
11044346, | Oct 08 2009 | BRIGHT DATA LTD | System providing faster and more efficient data communication |
11050852, | Oct 08 2009 | BRIGHT DATA LTD | System providing faster and more efficient data communication |
11057446, | May 14 2015 | BRIGHT DATA LTD | System and method for streaming content from multiple servers |
11089135, | Oct 08 2009 | BRIGHT DATA LTD | System providing faster and more efficient data communication |
11102326, | Aug 28 2013 | BRIGHT DATA LTD | System and method for improving internet communication by using intermediate nodes |
11115230, | Aug 28 2017 | BRIGHT DATA LTD | System and method for improving content fetching by selecting tunnel devices |
11128738, | Oct 08 2009 | BRIGHT DATA LTD | Fetching content from multiple web servers using an intermediate client device |
11178250, | Aug 28 2013 | BRIGHT DATA LTD | System and method for improving internet communication by using intermediate nodes |
11178258, | Oct 08 2009 | BRIGHT DATA LTD. | System providing faster and more efficient data communication |
11190374, | Aug 28 2017 | BRIGHT DATA LTD | System and method for improving content fetching by selecting tunnel devices |
11190622, | Oct 08 2009 | BRIGHT DATA LTD | System providing faster and more efficient data communication |
11206317, | Oct 08 2009 | BRIGHT DATA LTD. | System providing faster and more efficient data communication |
11228666, | Oct 08 2009 | BRIGHT DATA LTD. | System providing faster and more efficient data communication |
11233872, | Aug 28 2013 | BRIGHT DATA LTD | System and method for improving internet communication by using intermediate nodes |
11233879, | Oct 08 2009 | BRIGHT DATA LTD | System providing faster and more efficient data communication |
11233880, | Oct 08 2009 | BRIGHT DATA LTD. | System providing faster and more efficient data communication |
11233881, | Oct 08 2009 | BRIGHT DATA LTD. | System providing faster and more efficient data communication |
11272034, | Aug 28 2013 | BRIGHT DATA LTD. | System and method for improving internet communication by using intermediate nodes |
11297167, | Oct 08 2009 | BRIGHT DATA LTD | System providing faster and more efficient data communication |
11303724, | Aug 28 2013 | BRIGHT DATA LTD. | System and method for improving internet communication by using intermediate nodes |
11303734, | Oct 08 2009 | BRIGHT DATA LTD | System providing faster and more efficient data communication |
11310341, | Aug 28 2013 | BRIGHT DATA LTD. | System and method for improving internet communication by using intermediate nodes |
11316950, | Aug 28 2013 | BRIGHT DATA LTD | System and method for improving internet communication by using intermediate nodes |
11336745, | Aug 28 2013 | BRIGHT DATA LTD | System and method for improving internet communication by using intermediate nodes |
11336746, | Aug 28 2013 | BRIGHT DATA LTD | System and method for improving Internet communication by using intermediate nodes |
11349953, | Aug 28 2013 | BRIGHT DATA LTD | System and method for improving internet communication by using intermediate nodes |
11388257, | Aug 28 2013 | BRIGHT DATA LTD | System and method for improving internet communication by using intermediate nodes |
11411922, | Apr 02 2019 | BRIGHT DATA LTD | System and method for managing non-direct URL fetching service |
11412025, | Oct 08 2009 | BRIGHT DATA LTD. | System providing faster and more efficient data communication |
11412066, | Aug 28 2013 | BRIGHT DATA LTD | System and method for improving internet communication by using intermediate nodes |
11418490, | Apr 02 2019 | BRIGHT DATA LTD. | System and method for managing non-direct URL fetching service |
11424946, | Aug 28 2017 | BRIGHT DATA LTD. | System and method for improving content fetching by selecting tunnel devices |
11451640, | Aug 28 2013 | BRIGHT DATA LTD | System and method for improving internet communication by using intermediate nodes |
11457058, | Oct 08 2009 | BRIGHT DATA LTD. | System providing faster and more efficient data communication |
11539779, | Oct 08 2009 | BRIGHT DATA LTD | System providing faster and more efficient data communication |
11558215, | Aug 28 2017 | BRIGHT DATA LTD | System and method for content fetching using a selected intermediary device and multiple servers |
11575771, | Aug 28 2013 | BRIGHT DATA LTD | System and method for improving internet communication by using intermediate nodes |
11588920, | Aug 28 2013 | BRIGHT DATA LTD. | System and method for improving internet communication by using intermediate nodes |
11593446, | Feb 25 2019 | BRIGHT DATA LTD. | System and method for URL fetching retry mechanism |
11595496, | Aug 28 2013 | BRIGHT DATA LTD. | System and method for improving internet communication by using intermediate nodes |
11595497, | Aug 28 2013 | BRIGHT DATA LTD. | System and method for improving internet communication by using intermediate nodes |
11611607, | Oct 08 2009 | BRIGHT DATA LTD. | System providing faster and more efficient data communication |
11616826, | Oct 08 2009 | BRIGHT DATA LTD. | System providing faster and more efficient data communication |
11632439, | Aug 28 2013 | BRIGHT DATA LTD. | System and method for improving internet communication by using intermediate nodes |
11657110, | Feb 25 2019 | BRIGHT DATA LTD | System and method for URL fetching retry mechanism |
11659017, | Oct 08 2009 | BRIGHT DATA LTD. | System providing faster and more efficient data communication |
11659018, | Oct 08 2009 | BRIGHT DATA LTD. | System providing faster and more efficient data communication |
11671476, | Oct 08 2009 | BRIGHT DATA LTD. | System providing faster and more efficient data communication |
11675866, | Feb 25 2019 | BRIGHT DATA LTD | System and method for URL fetching retry mechanism |
11677856, | Aug 28 2013 | BRIGHT DATA LTD | System and method for improving internet communication by using intermediate nodes |
11689639, | Aug 28 2013 | BRIGHT DATA LTD | System and method for improving Internet communication by using intermediate nodes |
11700295, | Oct 08 2009 | BRIGHT DATA LTD. | System providing faster and more efficient data communication |
11711233, | Aug 28 2017 | BRIGHT DATA LTD | System and method for improving content fetching by selecting tunnel devices |
11729012, | Aug 28 2017 | BRIGHT DATA LTD | System and method for improving content fetching by selecting tunnel devices |
11729013, | Aug 28 2017 | BRIGHT DATA LTD. | System and method for improving content fetching by selecting tunnel devices |
11729297, | Aug 28 2013 | BRIGHT DATA LTD. | System and method for improving internet communication by using intermediate nodes |
11757674, | Aug 28 2017 | BRIGHT DATA LTD. | System and method for improving content fetching by selecting tunnel devices |
11757961, | May 14 2015 | BRIGHT DATA LTD. | System and method for streaming content from multiple servers |
11758018, | Aug 28 2013 | BRIGHT DATA LTD. | System and method for improving internet communication by using intermediate nodes |
11764987, | Aug 28 2017 | BRIGHT DATA LTD | System and method for monitoring proxy devices and selecting therefrom |
11770429, | May 14 2015 | BRIGHT DATA LTD. | System and method for streaming content from multiple servers |
11770435, | Oct 08 2009 | BRIGHT DATA LTD. | System providing faster and more efficient data communication |
11799985, | Aug 28 2013 | BRIGHT DATA LTD. | System and method for improving internet communication by using intermediate nodes |
11811848, | Oct 08 2009 | BRIGHT DATA LTD. | System providing faster and more efficient data communication |
11811849, | Oct 08 2009 | BRIGHT DATA LTD. | System providing faster and more efficient data communication |
11811850, | Oct 08 2009 | BRIGHT DATA LTD. | System providing faster and more efficient data communication |
11838119, | Oct 08 2009 | BRIGHT DATA LTD. | System providing faster and more efficient data communication |
11838386, | Aug 28 2013 | BRIGHT DATA LTD. | System and method for improving internet communication by using intermediate nodes |
11838388, | Aug 28 2013 | BRIGHT DATA LTD. | System and method for improving internet communication by using intermediate nodes |
11863339, | Aug 28 2017 | BRIGHT DATA LTD | System and method for monitoring status of intermediate devices |
11870874, | Aug 28 2013 | BRIGHT DATA LTD. | System and method for improving internet communication by using intermediate nodes |
11876612, | Aug 28 2017 | BRIGHT DATA LTD. | System and method for improving content fetching by selecting tunnel devices |
11876853, | Oct 08 2009 | BRIGHT DATA LTD. | System providing faster and more efficient data communication |
11888638, | Aug 28 2017 | BRIGHT DATA LTD. | System and method for improving content fetching by selecting tunnel devices |
11888639, | Aug 28 2017 | BRIGHT DATA LTD. | System and method for improving content fetching by selecting tunnel devices |
11888921, | Oct 08 2009 | BRIGHT DATA LTD. | System providing faster and more efficient data communication |
11888922, | Oct 08 2009 | BRIGHT DATA LTD. | System providing faster and more efficient data communication |
11902044, | Aug 28 2017 | BRIGHT DATA LTD. | System and method for improving content fetching by selecting tunnel devices |
11902253, | Apr 02 2019 | BRIGHT DATA LTD. | System and method for managing non-direct URL fetching service |
11902351, | Oct 08 2009 | BRIGHT DATA LTD. | System providing faster and more efficient data communication |
11902400, | Aug 28 2013 | BRIGHT DATA LTD. | System and method for improving internet communication by using intermediate nodes |
11909547, | Aug 28 2017 | BRIGHT DATA LTD. | System and method for improving content fetching by selecting tunnel devices |
11916993, | Oct 08 2009 | BRIGHT DATA LTD. | System providing faster and more efficient data communication |
8296198, | Jun 28 2007 | SAP SE | Method and system for distribution of information |
8556715, | Sep 27 2011 | U4IA GAMES INC | Personalized client-side visualization in a multiplayer network video game |
9106584, | Sep 26 2011 | AT&T Intellectual Property I, L.P. | Cloud infrastructure services |
Patent | Priority | Assignee | Title |
6351753, | Feb 20 1998 | AT&T Corp | Method and apparatus for asynchronous version advancement in a three version database |
6748437, | Jan 10 2000 | Oracle America, Inc | Method for creating forwarding lists for cluster networking |
7287089, | Oct 25 2000 | REFINITIV US ORGANIZATION LLC | Electronic commerce infrastructure system |
7461067, | Sep 13 2002 | VOLTARI OPERATING CORP | System for supporting production, management and delivery of media content for wireless devices |
20030119531, | |||
20040068532, | |||
20060161635, | |||
20060271552, | |||
20070112676, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Mar 14 2006 | HOTTI, TIMO | Solid Information Technology OY | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 017420 | /0763 | |
Mar 22 2006 | Oy International Business Machines Ab | (assignment on the face of the patent) | / | |||
May 31 2010 | Solid Information Technology OY | Oy International Business Machines Ab | MERGER SEE DOCUMENT FOR DETAILS | 025486 | /0469 | |
May 31 2010 | SOLID TECHNOLOGY OY | Oy International Business Machines Ab | CORRECTIVE ASSIGNMENT TO CORRECT THE ERROR IN THE RECEIVING PARTY ADDRESS IN A COVER SHEET PREVIOUSLY RECORDED ON REEL 025486 FRAME 0469 ASSIGNOR S HEREBY CONFIRMS THE RECEIVING PARTY IBM, HAS RECEIVED THE ENTIRE RIGHT, TITLE AND INTEREST IN ALL OF THE PATENTS AND APPLICATIONS OWNED BY SOLID | 025647 | /0691 |
Date | Maintenance Fee Events |
Sep 26 2014 | REM: Maintenance Fee Reminder Mailed. |
Feb 15 2015 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Feb 15 2014 | 4 years fee payment window open |
Aug 15 2014 | 6 months grace period start (w surcharge) |
Feb 15 2015 | patent expiry (for year 4) |
Feb 15 2017 | 2 years to revive unintentionally abandoned end. (for year 4) |
Feb 15 2018 | 8 years fee payment window open |
Aug 15 2018 | 6 months grace period start (w surcharge) |
Feb 15 2019 | patent expiry (for year 8) |
Feb 15 2021 | 2 years to revive unintentionally abandoned end. (for year 8) |
Feb 15 2022 | 12 years fee payment window open |
Aug 15 2022 | 6 months grace period start (w surcharge) |
Feb 15 2023 | patent expiry (for year 12) |
Feb 15 2025 | 2 years to revive unintentionally abandoned end. (for year 12) |