Optimizing server delivery of content by selective inclusion of optional data based on optimization criteria
09560113 ยท 2017-01-31
Inventors
Cpc classification
H04L67/568
ELECTRICITY
Y10S707/99932
GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
H04L67/564
ELECTRICITY
H04L67/04
ELECTRICITY
H04L67/561
ELECTRICITY
Y10S707/99931
GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
International classification
G06F15/16
PHYSICS
Abstract
Optimization constraints are used to select an appropriate content item from an available group of content items which are ordered in a specific manner to facilitate the proper selection of the content item, even if the exact item desired is not present. The server is then able to insert the selected content item into the outgoing content page requested by the client. The optimization constraints can be, but are not limited to, anyone of the following: communication channel performance (bandwidth), client operating system, client processor, client display capabilities, client installed software (video or audio codecs for example), and/or user preferences. A software product and method enable selective delivery of content to client devices of varying performance characteristics, including varying bandwidth, by selective filtering and inclusion of markup language content using tags demarcating optional content. An optimization constraint is used to select one of the items.
Claims
1. A method of optimizing content delivery to a client device, said method comprising: automatically determining a type of client device software that is associated with an electronic request received from a corresponding client device over a communications network; automatically selecting one or more of a first plurality of selectable content items and one or more of a second plurality of selectable content items for said client device if said electronic request is associated with a first type of client device software, wherein said first plurality of selectable content items are configured for said first type but not a second type of client device software, and wherein said second plurality of selectable content items are configured for said first type and said second type of client device software; automatically selecting said one or more of said second plurality of selectable content items if said electronic request is associated with said second type of client device software; and transmitting via the communications network said selectable content items having been selected to said client device.
2. The method as in claim 1, wherein said first plurality of selectable content items comprise a plurality of non-optional selectable content items.
3. The method as in claim 2, wherein said transmitting includes sending one or more of said plurality of non-optional selectable content items to said client device.
4. The method as in claim 2, wherein said second plurality of selectable content items comprise a plurality of optional selectable content items.
5. The method as in claim 4, wherein said transmitting includes sending one or more of said plurality of non-optional selectable content items to said client device and sending one or more of said plurality of optional selectable content items to said client device.
6. The method as in claim 1, wherein said first type of client device software is a first type of browser software and further wherein said second type of client device software is a second type of browser software.
7. The method as in claim 1, wherein said first type of client device software is a first type of operating system and further wherein said second type of client device software is a second type of operating system.
8. The method as in claim 1, wherein said first type of client device software is a first type of rendering software and further wherein said second type of client device software is a second type of rendering software.
9. The method as in claim 1, wherein said selectable content items include web pages, images, text, audio, or video, or a combination thereof.
10. The method as in claim 1, wherein said client device is a mobile device.
11. The method as in claim 1, further comprising: accessing stored content including said first plurality of selectable content items and said second plurality of selectable content items.
12. The method as in claim 11, further including storing said stored content.
13. The method as in claim 1, wherein the automatic selecting is further performed as a function of a communications bandwidth associated with said device.
14. A system for optimizing content delivery, said system comprising: at least one server communicating with a plurality of client devices over a communications network, said at least one server including: a determination module configured to automatically determine a type of client device software associated with an electronic request received from a corresponding client device over said communications network; a selection module configured to automatically select one or more of a first plurality of selectable content items and one or more of a second plurality of selectable content items for said client device if said electronic request is associated with a first type of client device software, wherein said first plurality of selectable content items are configured for said first type but not a second type of client device software, and wherein said second plurality of selectable content items are configured for said first type and said second type of client device software, and automatically select said one or more of said second plurality of selectable content items if said electronic request is associated with said second type of client device software; and a transmitting module configured to transmit via the communications network said selectable content items having been selected to said client device over said communications network.
15. The system as in claim 14, wherein said client device is a mobile device and further wherein said receiving and transmitting modules are further configured to communicate with a transceiver of said mobile device via said communications network.
16. The system as in claim 14, wherein said first type of client device software is a first type of operating system software and further wherein said second type of client device software is a second type of operating system software.
17. The system as in claim 14, further comprising a database coupled to said at least one server, wherein said database is configured to store said content accessible by said at least one server.
18. The system as in claim 14, wherein said at least one server is a server computer.
19. The system as in claim 14, wherein said selectable content items include web pages, images, text, audio, or video, or a combination thereof.
20. The system as in claim 14, wherein the at least one server further includes a storage interface module configured to access stored content that includes said first plurality and said second plurality of selectable content items.
21. The system as in claim 20, wherein said storage interface module is further configured to store said stored content.
22. The system as in claim 14, wherein the at least one server further includes a receiving module configured to receive said electronic request over said communications network from said corresponding client device.
23. The system as in claim 14, wherein the selection module is further configured to automatically select as a function of a communications bandwidth associated with said device.
24. A system for optimizing content delivery, said system configured to communicate with a plurality of client devices over a communications network, said system comprising: a processor; a computer-readable medium having encoded thereon a sequence of instructions which, when executed by said processor, causes said processor to: automatically determine a type of client device software associated with an electronic request received from a corresponding client device over said communications network; automatically select one or more of a first plurality of selectable content items and one or more of a second plurality of selectable content items for said client device if said electronic request is associated with a first type of client device software, wherein said first plurality of selectable content items are configured for said first type but not a second type of client device software, and wherein said second plurality of selectable content items are configured for said first type and said second type of client device software, and automatically select said one or more of said second plurality of selectable content items if said electronic request is associated with said second type of client device software; and transmit via the communications network said selectable content items having been selected to said client device over said communications network.
25. The system as in claim 24 wherein said first type of client device software is a first type of operating system software and further wherein said second type of client device software is a second type of operating system software.
26. The system as in claim 24, wherein said sequence of instructions further causes said processor to access stored content including said first plurality of selectable content items and said second plurality of selectable content items.
27. The system as in claim 26, wherein said sequence of instructions further causes said processor to store said stored content.
28. The system as in claim 24, wherein said sequence of instructions further causes said processor to automatically select as a function of a communications bandwidth associated with said device.
29. A non-transitory computer-readable medium having encoded thereon a sequence of instructions which, when executed by a processor, causes said processor to: automatically determine a type of client device software associated with an electronic request received from a corresponding client device over a communications network; automatically select one or more of a first plurality of selectable content items and one or more of a second plurality of selectable content items for said client device if said electronic request is associated with said first type of client device software, wherein said first plurality of selectable content items are configured for said first type but not a second type of client device software, and wherein said second plurality of selectable content items are configured for said first type and said second type of client device software; automatically select said one or more of said second plurality of selectable content items if said electronic request is associated with said second type of client device software; and transmit via the communications network said selectable content items having been selected to said client device over said communications network.
30. The non-transitory computer-readable medium as in claim 29, wherein said first type of client device software is a first type of operating system software and further wherein said second type of client device software is a second type of operating system software.
31. The non-transitory computer-readable medium as in claim 29, wherein said sequence of instructions further causes said processor to access stored content including said first plurality of selectable content items and said second plurality of selectable content items.
32. The non-transitory computer-readable medium as in claim 31, wherein said sequence of instructions further causes said processor to store said stored content.
33. The non-transitory computer-readable medium as in claim 29, wherein said sequence of instructions further causes said processor to automatically select as a function of a communications bandwidth associated with said device.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) In the drawings appended hereto like reference numerals denote like elements between the various drawings. While illustrative, the drawings are not drawn to scale. In the drawings:
(2)
(3)
(4)
DETAILED DESCRIPTION OF THE INVENTION
(5) Referring to
(6) The content database 100 stores content in a suitable format, such as a markup language, ASCII, and the like. Suitable markup languages include HyperText Markup Language (HTML), Extended Markup Language (XML), Hypertext Dynamic Markup Language (HDML), Tagged Text Markup Language (TTML). The server 102 is then a server of the appropriate type of markup language, and includes functions for receiving requests for a content item, typically indicated by a uniform resource locator (URL), and parsing markup language tags, creating a content item in response to a request, and transmitting the content item to the requesting client.
(7) Some of the content in the database 100 is structured to include at least one item of optional content demarcated by a specific markup language tag. The preferred tag is <OPT>, as described above, and its terminating tag </OPT>. Any number of alternate items of content may be enclosed, each delimited by a specific tag, such as <DOPT>. The items are preferably ordered with respect to some performance criteria, such as bandwidth capability. One ordering is from left to right, from lowest constraint, highest performance devices, to highest constraint, lowest performance devices. Schematically, a portion of content structured in this manner is as follows: <OPT>lowest constraint data<DOPT>next lowest constraint<DOPT> . . . <DOPT> highest constraint data</OPT>.
(8) In one embodiment, these tags are part of meta-language that itself marks up other markup languages. In this embodiment, the OPT and DOPT are set off by and
, to indicate to the server 1 02 that they are part of the meta-language, and not part of the underlying markup language. In this manner, any number of different markup language content items are stored in the database 100, and they are marked up in the meta-language. Various different client devices use various different ones of the markup languages. Client device specific pages are thus constructed in the different markup languages. These client specific pages are marked up with the meta-language tags, and here particularly the OPT tag is used to specify optional content that can be merged or integrated into the client specific pages. In a preferred embodiment, the content within the OPT tags is variable data selected from the database 100 in response to a query; the server filters the query response using the OPT mechanism described herein. The server 102 can thus deliver content in any of the markup languages, and with any of the optionally defined content to any requesting client this allows different clients which use different markup languages to interface with the server 102.
(9) The server 102 communicates with various types of client devices 106 over a communications network 104. The client devices 106 include desktop and laptop computers, pocket organizers, personal digital assistants, cellular telephones, and any other type of communication device adapted for Internet or Web based communications (i.e. HTTP). The server 102 selectively provides optional content from a content item, depending on an optimization constraint associated with a requesting client device 106.
(10) Referring to
(11) One set of rules uses the optimization constraint as an index, where the items are ordered in a manner corresponding to performance capabilities of the client devices. This set of rules is described as follows:
(12) 1) Determine the number of optional items. If only one is available, add a blank option as the rightmost (most constrained) option.
(13) 2) Retrieve the optimization constraint which corresponds to the client device.
(14) 3) Positive numbers select from least constrained to most constrained. Negative numbers select from most constrained to least constrained.
(15) 4) The positive number one (1) selects the least constrained item.
(16) 5) The negative number one (1) selects the most constrained item.
(17) 6) The number zero (0) is equivalent to negative one (1)
(18) 7) Use the optimization constraint as an index into the optional items, where 1 selects the least constrained item, 2 the second least constrained item, and so on; 1 selects the most constrained item, 2 selects the second to most constrained item and so on.
(19) 8) A negative number may never select the least constrained item.
(20) 9) A positive number may never select the most constrained item.
(21) The following table illustrates an example mapping where there are 5 items of alternate content, using a left to right least to most constraint ordering:
(22) TABLE-US-00001 TABLE I 1.sup.st Item 5.sup.th Item (Least (most Constrained) 2.sup.nd Item 3.sup.rd Item 4.sup.th Item Constrained) Opt. n = 1 n = 2, n = (3, 3) n >= 4, n = (1, 0) Constrain n <= 4 n = 2 n which selects this item:
(23) In one embodiment, the optimization constraint is defined with respect to the markup language of the content being served. The next table defines one set of optimization constraints for this embodiment.
(24) TABLE-US-00002 TABLE 2 Language/Bandwith Optimization Constraint HTML (on T1 connection at 1.5 Mb/s) 1 HTML (wired modem <=56 Kb/s) 2 HTML (wireless <=9600 bps) 3 HDML (<9600 bps) 2 TTML 1
(25) The assignment of optimization constraints based on content language is a reflection of the typical bandwidth limitations of client devices that use the specific content language. HTML is generally used in a desktop environment where connection speeds are relatively high and display capacities are also relatively high, and thus a low constraint is appropriate, particularly for HTML on a T1 connection. HTML on a wireless device, such as a PDA is more constrained, and hence a higher constraint. HDML is generally used in a digital cellular telephone communications arena, with a transmission speed limited to 9600 bps and size of messages limited to the telephone memory, hence even more constrained environment, as reflected by the optimization constraint. TTML is generally used over GSM style SMS messages which are limited to 160 characters, and thus is the most constrained environment, and thus given a 1 optimization constraint.
(26) As the server 102 scans an item of content it comes across an OPT encoded item of data. The server 102 can determine the optimization constraint based on the markup language as in Table 2, or using any other set of rules mapping information about the client device attributes to an optimization value. The determined value is then used as an index into the items of DOPT portions, to select the appropriate item of content. This process is repeated for each OPT encoded portion of the requested content, so that the server 102 ultimately compiles a complete content item. The completed content item is transmitted to the client device.
(27)
(28) While a plurality of preferred exemplary embodiments have been presented in the foregoing detailed description, it should be understood that a vast number of variations exist, and these preferred exemplary embodiments are merely representative examples, and are not intended to limit the scope, applicability or configuration of the invention in any way. Rather, the foregoing detailed description provides those of ordinary skill in the art with a convenient guide for implementation of the invention, and contemplates that various changes in the functions and arrangements of the described embodiments may be made without departing from the spirit and scope of the invention defined by the claims thereto.