CA2340909A1 - Optimizing server delivery of content by selective inclusion of optional data based on optimization criteria - Google Patents
Optimizing server delivery of content by selective inclusion of optional data based on optimization criteria Download PDFInfo
- Publication number
- CA2340909A1 CA2340909A1 CA002340909A CA2340909A CA2340909A1 CA 2340909 A1 CA2340909 A1 CA 2340909A1 CA 002340909 A CA002340909 A CA 002340909A CA 2340909 A CA2340909 A CA 2340909A CA 2340909 A1 CA2340909 A1 CA 2340909A1
- Authority
- CA
- Canada
- Prior art keywords
- client device
- content
- responsive
- performance characteristics
- requesting client
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
- H04L67/306—User profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/04—Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9577—Optimising the visualization of content, e.g. distillation of HTML documents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- G06F16/986—Document structures and storage, e.g. HTML extensions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/561—Adding application-functional data or data for application control, e.g. adding metadata
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/564—Enhancement of application control based on intercepted application data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/24—Negotiation of communication capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
-
- Y—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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
-
- Y—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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99932—Access augmentation or optimizing
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 (102) is then able to insert the selected content item into the outgoing content page requested by the client (106). The optimization constraints can be, but are not limited to, any one 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. The optional content may include a number of alternate items of content. An optimization constraint is used to select one of the items. The server (102) includes the selected item in an item of content requested by a client device (106). The optimization constraints are associated with varying levels of client/communication channel performance.
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. The optional content may include a number of alternate items of content. An optimization constraint is used to select one of the items. The server (102) includes the selected item in an item of content requested by a client device (106). The optimization constraints are associated with varying levels of client/communication channel performance.
Description
OPTIMIZING SERVER DELIVERY OF CONTENT BY SELECTIVE INCLUSION OF
OPTIONAL DATA BASED ON OPTIMIZATION CRITERIA
BACKGROUND
Field of Invention The present invention relates generally to systems, methods, and software products for delivering content in client-server networks, and more particularly, to systems, methods, 1o and software products that optimize the delivery of such content in response to optimization criteria.
Background of the Invention The Internet generally, and the World Wide Web specifically, provide a client-server model of content delivery, in which content stored on a server at a web site is delivered over a communications channel to a client device. Conventionally, the content as structured by the author is delivered by the server to all requesting clients in the same form. That is, the server does not change the structure of the content to accommodate the performance characteristics of the communication channel to a particular client, or the performance characteristics of the client itself. At best, the client re-formats the received content based on 2o its own capabilities (e.g. a text only browser will filter out images, but still must receive the images, thereby consuming bandwidth).
This delivery model is not satisfactory when there are many different types of clients, with varying performance capabilities and varying communication channels. For example, today a web site may be accessed by many different types of clients, from conventional full zs size computers with large screen displays (e.g. 13" to 17") and full color capabilities (16M
colors) to small handheld computers with small screens (e.g. 4" to 6") and limited color capabilities (256 colors), to cellular telephones with very small screens (1" -
OPTIONAL DATA BASED ON OPTIMIZATION CRITERIA
BACKGROUND
Field of Invention The present invention relates generally to systems, methods, and software products for delivering content in client-server networks, and more particularly, to systems, methods, 1o and software products that optimize the delivery of such content in response to optimization criteria.
Background of the Invention The Internet generally, and the World Wide Web specifically, provide a client-server model of content delivery, in which content stored on a server at a web site is delivered over a communications channel to a client device. Conventionally, the content as structured by the author is delivered by the server to all requesting clients in the same form. That is, the server does not change the structure of the content to accommodate the performance characteristics of the communication channel to a particular client, or the performance characteristics of the client itself. At best, the client re-formats the received content based on 2o its own capabilities (e.g. a text only browser will filter out images, but still must receive the images, thereby consuming bandwidth).
This delivery model is not satisfactory when there are many different types of clients, with varying performance capabilities and varying communication channels. For example, today a web site may be accessed by many different types of clients, from conventional full zs size computers with large screen displays (e.g. 13" to 17") and full color capabilities (16M
colors) to small handheld computers with small screens (e.g. 4" to 6") and limited color capabilities (256 colors), to cellular telephones with very small screens (1" -
2") and virtually no color capabilities (2 - 8 colors monochrome). A web page with many images that is designed to be viewed on a full size, full color monitor will not appear at all properly on a 3o cellular telephone display with only monochrome output. Moreover, the cellular telephone has a much lower bandwidth capability than a standard desktop computer, and thus would require significantly more time (and hence more cost and delay) in loading such a web page.
' CA 02340909 2001-02-16 Typically, in order to accommodate these varying capabilities; a.server must maintain many different web sites or web pages, each designed to be served..toaparticular class of client. But this approach is very labor intensive, particularly for sites that must be updated frequently, since the many different sizes and content selections for a given page must be s kept in synchrony to all have the same current content. Further, display capabilities are only one characteristic that affects client performance. Different client devices may operate with different bandwidth capabilities, having different processor and memory capacities, or even have different pricing schemes associated with retrieval of content. When considering the possible combinations of factors that affect client performance, such as bandwidth and 1o display capabilities (to name just two), the number of different possible web sites that need to be maintained quickly becomes unmanageable.
An alternative solution to maintaining multiple web sites is to design web sites that are acceptable to only the lowest performance devices that are going to access the site. But this approach yields simple sites that do not fully allow higher performance devices to take z5 advantage of their performance features.
Accordingly, it is desirable to provide a system, method, and software product that can optimize delivery of content to client devices in response to optimization criteria. In particular, it is desirable to provide a web server that can efficiently deliver content to client devices having varying bandwidth, display, and other performance characteristics.
The present invention overcomes the limitations of the conventional systems by providing a server software product and a method that selectively delivers content to a client in response to optimization constraints indicative of the client's performance characteristics.
The server delivers content such as web pages, images, text, audio, video, and any other data 25 types to varying client devices with varying performance characteristics.
The present invention augments existing markup languages with a new tag that demarcates a group of one or more content items that may be optionally included in the content to be delivered. Where there are multiple optional items in a group, these items are alternatives for inclusion in the content, and one of the items is selected by the server for 3o inclusion in the content based on an optimization constraint dependent on the characteristics of the client device.
Preferably, the items are ordered in a manner corresponding to some set of client characteristics; one of these items is selected as the content to be delivered when the content z ' CA 02340909 2001-02-16 is requested. The characteristics may be performance -characteristics of the client or communication channel, or other attributes of the client. ~,E.ot..eoample, the ordering of optional content items may be with respect to highest performance to lowest performance devices, or vice versa. For example, in web page providing directions to a desired location, a s group of optional content may include first an image of a map illustrating the directions, followed by a detailed text description of the directions, followed by a very short text description of the directions. Thus, each of these items is intended for different types of client devices, which can best receive and display the directions in one of these formats, and one of these forms of information will be delivered to a requesting client.
to When the server is processing a client request for the document, any content that is demarcated as being optional is included in the delivered content depending on the performance characteristics of client that is requesting the content. More particularly, the server processes the items of optional content in the order in which they are demarcated together. Thus, in an embodiment in which optional items are ordered from highest to is lowest performance capability, if the requesting client is a high performance device (including having a high bandwidth connection), then the first item of content is included in the document; if the requesting client is a low performance device, then the first items) is skipped until the appropriate item of content is reached. Obviously, the reverse of this ordering and selection process is possible. The selection of which item of content is zo appropriate for which client device is based on an optimization constraint.
The server stores data which associates different types of client devices or performance characteristics with different levels of the optimization constraint. The number of different types of client devices or performance characteristics is not limited. The server selects the appropriate optimization constraint based on observable characteristics of the client device requesting the zs content. These observable characteristics include the device type, browser type, operating system, processor, memory, user preferences, software installed on the client, and language type for the requested content.
A set of selection rules is used by the server to select which of the optional items of content are to be delivered to the client device based on the optimization constraint. More 3o particularly, the rules map any optimization constraint to one of the items of content. In a preferred embodiment, where the optional items are ordered with respect to their performance demands, the optimization constraint is used as an index into these items to select the appropriate one for the client. The process may be understood as one of selectively
' CA 02340909 2001-02-16 Typically, in order to accommodate these varying capabilities; a.server must maintain many different web sites or web pages, each designed to be served..toaparticular class of client. But this approach is very labor intensive, particularly for sites that must be updated frequently, since the many different sizes and content selections for a given page must be s kept in synchrony to all have the same current content. Further, display capabilities are only one characteristic that affects client performance. Different client devices may operate with different bandwidth capabilities, having different processor and memory capacities, or even have different pricing schemes associated with retrieval of content. When considering the possible combinations of factors that affect client performance, such as bandwidth and 1o display capabilities (to name just two), the number of different possible web sites that need to be maintained quickly becomes unmanageable.
An alternative solution to maintaining multiple web sites is to design web sites that are acceptable to only the lowest performance devices that are going to access the site. But this approach yields simple sites that do not fully allow higher performance devices to take z5 advantage of their performance features.
Accordingly, it is desirable to provide a system, method, and software product that can optimize delivery of content to client devices in response to optimization criteria. In particular, it is desirable to provide a web server that can efficiently deliver content to client devices having varying bandwidth, display, and other performance characteristics.
The present invention overcomes the limitations of the conventional systems by providing a server software product and a method that selectively delivers content to a client in response to optimization constraints indicative of the client's performance characteristics.
The server delivers content such as web pages, images, text, audio, video, and any other data 25 types to varying client devices with varying performance characteristics.
The present invention augments existing markup languages with a new tag that demarcates a group of one or more content items that may be optionally included in the content to be delivered. Where there are multiple optional items in a group, these items are alternatives for inclusion in the content, and one of the items is selected by the server for 3o inclusion in the content based on an optimization constraint dependent on the characteristics of the client device.
Preferably, the items are ordered in a manner corresponding to some set of client characteristics; one of these items is selected as the content to be delivered when the content z ' CA 02340909 2001-02-16 is requested. The characteristics may be performance -characteristics of the client or communication channel, or other attributes of the client. ~,E.ot..eoample, the ordering of optional content items may be with respect to highest performance to lowest performance devices, or vice versa. For example, in web page providing directions to a desired location, a s group of optional content may include first an image of a map illustrating the directions, followed by a detailed text description of the directions, followed by a very short text description of the directions. Thus, each of these items is intended for different types of client devices, which can best receive and display the directions in one of these formats, and one of these forms of information will be delivered to a requesting client.
to When the server is processing a client request for the document, any content that is demarcated as being optional is included in the delivered content depending on the performance characteristics of client that is requesting the content. More particularly, the server processes the items of optional content in the order in which they are demarcated together. Thus, in an embodiment in which optional items are ordered from highest to is lowest performance capability, if the requesting client is a high performance device (including having a high bandwidth connection), then the first item of content is included in the document; if the requesting client is a low performance device, then the first items) is skipped until the appropriate item of content is reached. Obviously, the reverse of this ordering and selection process is possible. The selection of which item of content is zo appropriate for which client device is based on an optimization constraint.
The server stores data which associates different types of client devices or performance characteristics with different levels of the optimization constraint. The number of different types of client devices or performance characteristics is not limited. The server selects the appropriate optimization constraint based on observable characteristics of the client device requesting the zs content. These observable characteristics include the device type, browser type, operating system, processor, memory, user preferences, software installed on the client, and language type for the requested content.
A set of selection rules is used by the server to select which of the optional items of content are to be delivered to the client device based on the optimization constraint. More 3o particularly, the rules map any optimization constraint to one of the items of content. In a preferred embodiment, where the optional items are ordered with respect to their performance demands, the optimization constraint is used as an index into these items to select the appropriate one for the client. The process may be understood as one of selectively
3 ' CA 02340909 2001-02-16 reducing the data stream provided to a specific client based on encoding of optionally selectable/filterable data, and an optimization constraint value that controls the selection process.
The tag that demarcates optional content can obviously be any useful string.
In one s embodiment, the tag is usefully called the "OPT" tag. The OPT tag is formatted using standard SGML formats, with <OPT> indicating the beginning of the optional content, and terminated by </OPT> indicating the end of the optional content. Within the OPT tag there may be zero or more delimiting tags separating alternative items of optional content. The preferred delimiting tag for separating alternative items is <DOPT> for "Delimiting OPTiori'. A well formed OPT tag has the following form:
<OPT> content (<DOPT>alternative content)*</OPT>
Zero or more <DOPT> tags with their corresponding alternative content follow in an order, which may be from highest to lowest performance requirements, or vice versa. In the former ordering, this typically means from largest data size (e.g. length of text or use of 1s images) to smallest data size.
Examples:
1. <OP'T>Real Time Stock </OPT>Quotes 2. <OPT>Turn left<DOPT>Left<DOPT>L</OPT> on First Street In the first example, the optional content "Real Time Stock" is delivered only to client 2o devices that have no performance limitations, e.g. are not bandwidth limited, and so receive the complete text "Real Time Stock Quotes". A client device that has any optimization constraint only receives "Quotes" when this content is delivered. Thus, the unconstrained version is appropriate, for example, for a standard desktop computer, but the latter version is better supplied to a device with a very small screen or low bandwidth capabilities, such as a Zs cellular telephone.
In the second example, of directions being given to a location, the alternative content selections become progressively smaller, being ordered left to right from least constrained (highest performance) to most constrained (lowest performance). Thus, the first item "Turn left" is delivered to a high performance client, while the last item "L" is suitable for client 30 devices with lower bandwidth and/or smaller displays.
One preferred method of using the optimization constraint as an index into the optional items of content uses both positive and negative numbers as optimization constraints. Positive numbers index from least constrained items to most constrained items.
The tag that demarcates optional content can obviously be any useful string.
In one s embodiment, the tag is usefully called the "OPT" tag. The OPT tag is formatted using standard SGML formats, with <OPT> indicating the beginning of the optional content, and terminated by </OPT> indicating the end of the optional content. Within the OPT tag there may be zero or more delimiting tags separating alternative items of optional content. The preferred delimiting tag for separating alternative items is <DOPT> for "Delimiting OPTiori'. A well formed OPT tag has the following form:
<OPT> content (<DOPT>alternative content)*</OPT>
Zero or more <DOPT> tags with their corresponding alternative content follow in an order, which may be from highest to lowest performance requirements, or vice versa. In the former ordering, this typically means from largest data size (e.g. length of text or use of 1s images) to smallest data size.
Examples:
1. <OP'T>Real Time Stock </OPT>Quotes 2. <OPT>Turn left<DOPT>Left<DOPT>L</OPT> on First Street In the first example, the optional content "Real Time Stock" is delivered only to client 2o devices that have no performance limitations, e.g. are not bandwidth limited, and so receive the complete text "Real Time Stock Quotes". A client device that has any optimization constraint only receives "Quotes" when this content is delivered. Thus, the unconstrained version is appropriate, for example, for a standard desktop computer, but the latter version is better supplied to a device with a very small screen or low bandwidth capabilities, such as a Zs cellular telephone.
In the second example, of directions being given to a location, the alternative content selections become progressively smaller, being ordered left to right from least constrained (highest performance) to most constrained (lowest performance). Thus, the first item "Turn left" is delivered to a high performance client, while the last item "L" is suitable for client 30 devices with lower bandwidth and/or smaller displays.
One preferred method of using the optimization constraint as an index into the optional items of content uses both positive and negative numbers as optimization constraints. Positive numbers index from least constrained items to most constrained items.
4 In example 2) above, an optimization constraint of (1) would select "Turn left" while an optimization constraint of (2) would select "Left". Negative numbers index from most constrained to least; thus (-1) would select "L", which (-2) would also select "Left".
Preferably, positive one (1) always selects the least constrained item, and negative one (-1) selects the most constrained item; zero (0) is treated as negative one (-1).
It is preferable rule that a negative number may never select the least constrained most item, and a positive number may never select the most constrained item. With these rules, any number of optional items of content may encoded in the document and selectively delivered. Again, whether the ordering is left to right or right to left for high to low constraint is an 1o implementation detail; which ever is used, the selection logic is implemented to match.
Using the present invention, it is possible to build a single server which is capable of serving information to multiple clients, over varying bandwidth connections, or with other varying performance characteristics.
The amount of effort required to support a growing number of clients is reduced Is from an order of O(2) [for a traditional system], or a square relationship, to an order of O(1), or a linear relationship.
This savings of effort required to maintain such a server brings the possibility of serving data to a wide range of client devices over a broad scale of bandwidth connections to a reality.
BRIEF DESCRIPTION OF THE DRAWINGS
Fig. 1 is an illustration of a system in accordance with the present invention.
Fig. 2 is an illustration of a method of operating a server in accordance with the present invention.
Figs. 3a-3c illustrates an example of an encoded content item with optional content, 2s and different outputs of optional content according to varying levels of optimization constraint.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
Referring to Fig. 1, there is shown an illustration of a system in accordance with the present invention. The system includes a server 102 and a content database 100. The server 30 102 of interest is the software product that executes on a conventional server grade computer, such as a workstation, minicomputer, mainframe, or the like. The server 102 is configured to execute in accordance with the functional features as described herein.
Preferably, positive one (1) always selects the least constrained item, and negative one (-1) selects the most constrained item; zero (0) is treated as negative one (-1).
It is preferable rule that a negative number may never select the least constrained most item, and a positive number may never select the most constrained item. With these rules, any number of optional items of content may encoded in the document and selectively delivered. Again, whether the ordering is left to right or right to left for high to low constraint is an 1o implementation detail; which ever is used, the selection logic is implemented to match.
Using the present invention, it is possible to build a single server which is capable of serving information to multiple clients, over varying bandwidth connections, or with other varying performance characteristics.
The amount of effort required to support a growing number of clients is reduced Is from an order of O(2) [for a traditional system], or a square relationship, to an order of O(1), or a linear relationship.
This savings of effort required to maintain such a server brings the possibility of serving data to a wide range of client devices over a broad scale of bandwidth connections to a reality.
BRIEF DESCRIPTION OF THE DRAWINGS
Fig. 1 is an illustration of a system in accordance with the present invention.
Fig. 2 is an illustration of a method of operating a server in accordance with the present invention.
Figs. 3a-3c illustrates an example of an encoded content item with optional content, 2s and different outputs of optional content according to varying levels of optimization constraint.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
Referring to Fig. 1, there is shown an illustration of a system in accordance with the present invention. The system includes a server 102 and a content database 100. The server 30 102 of interest is the software product that executes on a conventional server grade computer, such as a workstation, minicomputer, mainframe, or the like. The server 102 is configured to execute in accordance with the functional features as described herein.
5 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.
Some of the content in the database 100 is structured to include at least one item of to optional content demarcated by a specific markup language tag. The preferred tag is <OP1">, 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 <DOP'T>.
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 I5 highest constraint, lowest performance devices. Schematically, a portion of content structured in this manner is as follows:
<OPT>lozvest constraint data<DOPT>next lotvest constraint<DOPT>....<DOPT>highest constraint data</OPT>.
In one embodiment, these tags are part of meta-language that itself marks up other 2o markup languages. In this embodiment, the OPT and DOI'T are set off by «
and », to indicate to the server 102 that they are part of the meta-language, and not part of the underlying markup language. In this mariner, 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 25 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 3o 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.
Some of the content in the database 100 is structured to include at least one item of to optional content demarcated by a specific markup language tag. The preferred tag is <OP1">, 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 <DOP'T>.
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 I5 highest constraint, lowest performance devices. Schematically, a portion of content structured in this manner is as follows:
<OPT>lozvest constraint data<DOPT>next lotvest constraint<DOPT>....<DOPT>highest constraint data</OPT>.
In one embodiment, these tags are part of meta-language that itself marks up other 2o markup languages. In this embodiment, the OPT and DOI'T are set off by «
and », to indicate to the server 102 that they are part of the meta-language, and not part of the underlying markup language. In this mariner, 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 25 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 3o 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.
6 ' CA 02340909 2001-02-16 WO 00/11850 PCT/tJS99/18997 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.
H1'TP). The s server 102 selectively provides optional content from a content item, depending on an optimization constraint associated with a requesting client device 106.
Referring to Fig. 2, there is shown a method in accordance with the present invention.
The server 102 receives 200 a request for a content item from the database 100. The server 102 determines 202 an optimization constraint associated with the requesting client device. The 1o server 102 compiles 204 the requested content item, including selectively including content that is set forth as optional content, and if necessary, by selecting one of the alternate items of content, based on the optimization constraint. The server 102 then transmits 206 the compiled content item to the client. Determining the optimization constraint preferably includes determining either a client device type, client operating system type, client browser 1s type, content language type of the requested content, communication bandwidth of the client, client processor, memory, user preferences, or software installed on the client, or a combination of any of these or other attributes. Selecting one of the alternate items preferably includes applying a set of rules that map the optimization constraint to selected ones of the optional content items.
2o One set of rules uses the optimization constraint as an index, where the items are ordered in manner corresponding to performance capabilities of the client devices. This set of rules is described as follows:
1. Determine the number of optional items. If only one is available, add a blank option as the rightmost (most constrained) option.
25 2. Retrieve the optimization constraint which corresponds to the client device.
3. Positive numbers select from least constrained to most constrained.
Negative numbers select from most constrained to least constrained.
4. The positive number one {1) selects the least constrained item.
5. The negative number one {-1) selects the most constrained item.
30 6. The number zero (0) is equivalent to negativa one (-1)
H1'TP). The s server 102 selectively provides optional content from a content item, depending on an optimization constraint associated with a requesting client device 106.
Referring to Fig. 2, there is shown a method in accordance with the present invention.
The server 102 receives 200 a request for a content item from the database 100. The server 102 determines 202 an optimization constraint associated with the requesting client device. The 1o server 102 compiles 204 the requested content item, including selectively including content that is set forth as optional content, and if necessary, by selecting one of the alternate items of content, based on the optimization constraint. The server 102 then transmits 206 the compiled content item to the client. Determining the optimization constraint preferably includes determining either a client device type, client operating system type, client browser 1s type, content language type of the requested content, communication bandwidth of the client, client processor, memory, user preferences, or software installed on the client, or a combination of any of these or other attributes. Selecting one of the alternate items preferably includes applying a set of rules that map the optimization constraint to selected ones of the optional content items.
2o One set of rules uses the optimization constraint as an index, where the items are ordered in manner corresponding to performance capabilities of the client devices. This set of rules is described as follows:
1. Determine the number of optional items. If only one is available, add a blank option as the rightmost (most constrained) option.
25 2. Retrieve the optimization constraint which corresponds to the client device.
3. Positive numbers select from least constrained to most constrained.
Negative numbers select from most constrained to least constrained.
4. The positive number one {1) selects the least constrained item.
5. The negative number one {-1) selects the most constrained item.
30 6. The number zero (0) is equivalent to negativa one (-1)
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.
8. A negative number may never select the least constrained item.
9. A positive number may never select the most constrained item.
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:
Table 1 15~ Item 5~ Item (Least Constrained)2nd 3~d Item4~ (most constrained) Item Item Opt. n=1 n=2, n=(3, n>=4, n=(-1, 0) -3) Constraint n<= n=-2 n -4 which selects this item:
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:
to Table 2 Language/Bandwith Optimization Constraint HTML (on T1 connection 1 at l.SMb/s) HTML (wired modem <=56Kb/s)2 HTML (wireless <=9600 -3 bps) HDML (<9600 bps) -2 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 TI 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.
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 s 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 to the client device.
Figs. 3a-3c illustrates a more complex example of the present invention. Here, a content item 300 in Fig. 3a is encoded in a markup language, along with multiple portions set out as optional content between OPT tags, some of which have multiple alternate items delimited by DOPT tags. Fig. 3b illustrates the output of this content item by selection for a 1s least constrained environment, HTML over T1. Note that all of the optional text in each OP'T
section is included. Fig. 3c illustrates output of this same content item by selection for the most constrained items for a TTML environment. As is apparent then, a single content item may be easily structured to serve multiple different client devices, without having to maintain many different versions of the content item, as in conventional systems.
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:
Table 1 15~ Item 5~ Item (Least Constrained)2nd 3~d Item4~ (most constrained) Item Item Opt. n=1 n=2, n=(3, n>=4, n=(-1, 0) -3) Constraint n<= n=-2 n -4 which selects this item:
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:
to Table 2 Language/Bandwith Optimization Constraint HTML (on T1 connection 1 at l.SMb/s) HTML (wired modem <=56Kb/s)2 HTML (wireless <=9600 -3 bps) HDML (<9600 bps) -2 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 TI 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.
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 s 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 to the client device.
Figs. 3a-3c illustrates a more complex example of the present invention. Here, a content item 300 in Fig. 3a is encoded in a markup language, along with multiple portions set out as optional content between OPT tags, some of which have multiple alternate items delimited by DOPT tags. Fig. 3b illustrates the output of this content item by selection for a 1s least constrained environment, HTML over T1. Note that all of the optional text in each OP'T
section is included. Fig. 3c illustrates output of this same content item by selection for the most constrained items for a TTML environment. As is apparent then, a single content item may be easily structured to serve multiple different client devices, without having to maintain many different versions of the content item, as in conventional systems.
Claims (37)
1. A method of optimizing the delivery of content data from a web server to a client device, said method comprising:
receiving a request for content data from a client device;
selecting optional content of the content data responsive to performance characteristics of the requesting client device; and transmitting the selected optional content to the requesting client device.
receiving a request for content data from a client device;
selecting optional content of the content data responsive to performance characteristics of the requesting client device; and transmitting the selected optional content to the requesting client device.
2. The method of claim 1 wherein selecting optional content further comprises:
selecting one of a plurality of content items responsive to the performance characteristics of the requesting client device.
selecting one of a plurality of content items responsive to the performance characteristics of the requesting client device.
3. The method of claim 2 wherein the plurality of content items is ordered with respect to highest and lowest performance characteristics of client devices, and selecting comprises:
responsive to a client device having a highest performance characteristic, selecting a first ordered content item.
responsive to a client device having a highest performance characteristic, selecting a first ordered content item.
4. The method of claim 2 wherein the plurality of content items is ordered with respect to highest and lowest performance characteristics of client devices, and selecting further comprises:
responsive to a client device having a highest performance characteristic, selecting a last ordered content item.
responsive to a client device having a highest performance characteristic, selecting a last ordered content item.
5. The method of claim 3 wherein optimization constraints are assigned to classes of client devices, and each class of client device has different performance characteristics, further comprising:
determining the performance characteristics of the requesting client device;
determining a class of client device to which the requesting client device belongs responsive to the determined performance characteristics of the requesting client device;
assigning the requesting client device an optimization constraint responsive to the determined class of client device to which the requesting client device belongs; and selecting comprises selecting a content item whose order corresponds to the optimization constraint.
determining the performance characteristics of the requesting client device;
determining a class of client device to which the requesting client device belongs responsive to the determined performance characteristics of the requesting client device;
assigning the requesting client device an optimization constraint responsive to the determined class of client device to which the requesting client device belongs; and selecting comprises selecting a content item whose order corresponds to the optimization constraint.
6. The method of claim 5 further comprising:
responsive to an optimization constraint specifying a class of device having a lowest performance characteristic, selecting a content item requiring a least amount of bandwidth to be transmitted.
responsive to an optimization constraint specifying a class of device having a lowest performance characteristic, selecting a content item requiring a least amount of bandwidth to be transmitted.
7. The method of claim 5 further comprising:
responsive to an optimization constraint specifying a class of device having a lowest performance characteristic, selecting a content item comprising a least amount of data.
responsive to an optimization constraint specifying a class of device having a lowest performance characteristic, selecting a content item comprising a least amount of data.
8. The method of claim 2 wherein optimization constraints are associated with each content item, and the optimization constraints index classes of client devices, wherein each class of client device has different performance characteristics, further comprising:
assigning the requesting client device an optimization constraint responsive to the performance characteristics of the requesting client device; and selecting comprises selecting a content item responsive to the assigned optimization constraint.
assigning the requesting client device an optimization constraint responsive to the performance characteristics of the requesting client device; and selecting comprises selecting a content item responsive to the assigned optimization constraint.
9. The method of claim 8 wherein assigning an optimization constraint responsive to the performance characteristics of the requesting client device further comprises:
determining a connection type in use by the client device; and associating an optimization constraint responsive to the connection type of the client device.
determining a connection type in use by the client device; and associating an optimization constraint responsive to the connection type of the client device.
10. The method of claim 8 wherein assigning an optimization constraint responsive to the performance characteristics of the requesting client device further comprises:
determining a web browser in use by the requesting client device; and associating an optimization constraint further comprises:
associating an optimization constraint responsive to the web browser in use by the requesting client device.
determining a web browser in use by the requesting client device; and associating an optimization constraint further comprises:
associating an optimization constraint responsive to the web browser in use by the requesting client device.
11. The method of claim 8 wherein assigning an optimization constraint responsive to the performance characteristics of the requesting client device further comprises:
determining a processor type in use by the requesting client device; and associating an optimization constraint further comprises:
associating an optimization constraint responsive to the processor type in use by the requesting client device.
determining a processor type in use by the requesting client device; and associating an optimization constraint further comprises:
associating an optimization constraint responsive to the processor type in use by the requesting client device.
12. The method of claim 8 wherein assigning an optimization constraint responsive to the performance characteristics of the requesting client device further comprises:
determining an amount of memory in use by the requesting client device; and associating an optimization constraint further comprises:
associating an optimization constraint responsive to the amount of memory in use by the requesting client device.
determining an amount of memory in use by the requesting client device; and associating an optimization constraint further comprises:
associating an optimization constraint responsive to the amount of memory in use by the requesting client device.
13. The method of claim 8 wherein assigning an optimization constraint responsive to the performance characteristics of the requesting client device further comprises:
determining a display type in use by the requesting client device; and associating an optimization constraint further comprises:
associating an optimization constraint responsive to the display type in use by the requesting client device.
determining a display type in use by the requesting client device; and associating an optimization constraint further comprises:
associating an optimization constraint responsive to the display type in use by the requesting client device.
14. A system for transmitting content data over a network, comprising:
a content server, for receiving a request for content from a client device, selecting optional content of the content data responsive to performance characteristics of the client device, and transmitting the selected optional content to the requesting client device.
a content server, for receiving a request for content from a client device, selecting optional content of the content data responsive to performance characteristics of the client device, and transmitting the selected optional content to the requesting client device.
15. The system of claim 14 further comprising a plurality of client devices, for transmitting requests for content to the content server and receiving content transmitted from the content server, at least one client device having different performance characteristics than at least one other client device.
16. The system of claim 14 wherein optimization constraints index classes of client devices based upon performance characteristics and the optional content within a context data is indexed by the optimization constraints, and the content server selects optional content from the context data responsive to assigning an optimization constraint to a requesting client device.
17. A method of creating an electronic document forming a collection of content data to permit selective transmission of content data, comprising:
creating content data representing alternate versions of content;
inserting the content data into the content; and demarcating the content data to indicate to a processor that the content data are selectable.
creating content data representing alternate versions of content;
inserting the content data into the content; and demarcating the content data to indicate to a processor that the content data are selectable.
18. The method of claim 17 wherein the content items have different data sizes, and inserting the content items further comprises:
ordering the content items with respect to an amount of bandwidth required to transmit the content items.
ordering the content items with respect to an amount of bandwidth required to transmit the content items.
19. The method of claim 17 in a system in which client devices receive the electronic documents for display, and the client devices have different performance characteristics and inserting the content items further comprises:
ordering the content items with respect to performance characteristics of client devices.
ordering the content items with respect to performance characteristics of client devices.
20. A method of delivering a web page comprising:
receiving a request for transmission of the web page from a remote device;
determining at least one performance characteristic of the remote device;
selecting optional content of the web page responsive to the determined at least one performance characteristic; and transmitting the selected optional content to the remote device.
receiving a request for transmission of the web page from a remote device;
determining at least one performance characteristic of the remote device;
selecting optional content of the web page responsive to the determined at least one performance characteristic; and transmitting the selected optional content to the remote device.
21. The method of claim 20 wherein selecting optional content further comprises:
selecting one of a plurality of content items responsive to the performance characteristics of the requesting client device.
selecting one of a plurality of content items responsive to the performance characteristics of the requesting client device.
22. The method of claim 21 wherein the plurality of content items is ordered with respect to highest and lowest performance characteristics of client devices, and selecting comprises:
responsive to a client device having a highest performance characteristic, selecting a first ordered content item.
responsive to a client device having a highest performance characteristic, selecting a first ordered content item.
23. The method of claim 21 wherein the plurality of content items is ordered with respect to highest and lowest performance characteristics of client devices, and selecting further comprises:
responsive to a client device having a highest performance characteristic, selecting a last ordered content item.
responsive to a client device having a highest performance characteristic, selecting a last ordered content item.
24. The method of claim 22 wherein optimization constraints are assigned to classes of client devices, and each class of client device has different performance characteristics, further comprising:
determining the performance characteristics of the requesting client device;
determining a class of client device to which the requesting client device belongs responsive to the determined performance characteristics of the requesting client device;
assigning the requesting client device an optimization constraint responsive to the determined class of client device to which the requesting client device belongs; and selecting comprises selecting a content item whose order corresponds to the optimization constraint.
determining the performance characteristics of the requesting client device;
determining a class of client device to which the requesting client device belongs responsive to the determined performance characteristics of the requesting client device;
assigning the requesting client device an optimization constraint responsive to the determined class of client device to which the requesting client device belongs; and selecting comprises selecting a content item whose order corresponds to the optimization constraint.
25. The method of claim 24 further comprising:
responsive to an optimization constraint specifying a class of device having a lowest performance characteristic, selecting a content item requiring a least amount of bandwidth to be transmitted.
responsive to an optimization constraint specifying a class of device having a lowest performance characteristic, selecting a content item requiring a least amount of bandwidth to be transmitted.
26. The method of claim 24 further comprising:
responsive to an optimization constraint specifying a class of device having a lowest performance characteristic, selecting a content item comprising a least amount of data.
responsive to an optimization constraint specifying a class of device having a lowest performance characteristic, selecting a content item comprising a least amount of data.
27. The method of claim 21 wherein optimization constraints are associated with each content item, and the optimization constraints index classes of client devices, wherein each class of client device has different performance characteristics, further comprising:
assigning the requesting client device an optimization constraint responsive to the performance characteristics of the requesting client device; and selecting comprises selecting a content item responsive to the assigned optimization constraint.
assigning the requesting client device an optimization constraint responsive to the performance characteristics of the requesting client device; and selecting comprises selecting a content item responsive to the assigned optimization constraint.
28. The method of claim 27 wherein assigning an optimization constraint responsive to the performance characteristics of the requesting client device further comprises:
determining a connection type in use by the client device; and associating an optimization constraint responsive to the connection type of the client device.
determining a connection type in use by the client device; and associating an optimization constraint responsive to the connection type of the client device.
29. The method of claim 27 wherein assigning an optimization constraint responsive to the performance characteristics of the requesting client device further comprises:
determining a web browser in use by the requesting client device; and associating an optimization constraint further comprises:
associating an optimization constraint responsive to the web browser in use by the requesting client device.
determining a web browser in use by the requesting client device; and associating an optimization constraint further comprises:
associating an optimization constraint responsive to the web browser in use by the requesting client device.
30. A computer-readable medium for use in a system having a web server for storing content data, and which is connected to a plurality of client devices, the computer-readable medium storing instructions which cause the server to:
receive a request for content data from a client device;
select optional content of the content data responsive to performance characteristics of the requesting client device; and transmit the selected optional content to the client device.
receive a request for content data from a client device;
select optional content of the content data responsive to performance characteristics of the requesting client device; and transmit the selected optional content to the client device.
31. The computer-readable medium of claim 30 wherein the stored instructions further cause the processor to:
select one of a plurality of content items responsive to the performance characteristics of the requesting client device.
select one of a plurality of content items responsive to the performance characteristics of the requesting client device.
32. The computer-readable medium of claim 31 wherein the plurality of content items is ordered with respect to performance characteristics of client devices, and the stored instructions further cause the processor to:
responsive to a client device having a highest performance characteristic, select a first ordered content item.
responsive to a client device having a highest performance characteristic, select a first ordered content item.
33. The computer-readable medium of claim 31 wherein optimization constraints are assigned to classes of client devices, and each class of client device has different performance characteristics, and the stored instructions further cause the processor to:
determine the performance characteristics of the requesting client device;
determine a class of client device to which the requesting client device belong responsive to the performance characteristics of the requesting client device;
assign the requesting client device an optimization constraint responsive to the determined class of client device to which the requesting client device belongs; and select a content item corresponding to the optimization constraint.
determine the performance characteristics of the requesting client device;
determine a class of client device to which the requesting client device belong responsive to the performance characteristics of the requesting client device;
assign the requesting client device an optimization constraint responsive to the determined class of client device to which the requesting client device belongs; and select a content item corresponding to the optimization constraint.
34. The computer-readable medium of claim 32 wherein optimization constraints are associated with each content item, and the optimization constraints index classes of client devices, wherein each class of client device has different performance characteristics, and the stored instructions further cause the processor to:
assign the requesting client device an optimization constraint responsive to the performance characteristics of the requesting client device; and select a content item responsive to the assigned optimization constraint.
assign the requesting client device an optimization constraint responsive to the performance characteristics of the requesting client device; and select a content item responsive to the assigned optimization constraint.
35. The computer-readable medium of claim 34 wherein the stored instructions further cause the processor to:
determine a connection type in use by the client device; and associate an optimization constraint responsive to the connection type of the client device.
determine a connection type in use by the client device; and associate an optimization constraint responsive to the connection type of the client device.
36. A method of optimizing the delivery of content data from a web server to a client device, wherein the content data is comprised of content items, optimization constraints are associated with each content item, the optimization constraints index classes of client devices, and wherein each class of client device has different performance characteristics, the method comprising:
receiving a request for content data from the client device;
determining a class of device to which the requesting client device belongs responsive to the performance characteristics of the requesting client device;
assigning the requesting client device an optimization constraint responsive to the determined class of client device;
selecting one of a plurality of content items responsive to the assigned optimization constraint; and transmitting the selected optional content to the client device.
receiving a request for content data from the client device;
determining a class of device to which the requesting client device belongs responsive to the performance characteristics of the requesting client device;
assigning the requesting client device an optimization constraint responsive to the determined class of client device;
selecting one of a plurality of content items responsive to the assigned optimization constraint; and transmitting the selected optional content to the client device.
37. In a system in which a content server provides content to client devices, an optional content indicating system for demarcating optional content for transmission, comprising:
a <OPT> tag, placed before a content item to indicate a beginning of optional content;
a <DOPT> tag, placed before a content item which is an alternative for transmission to the content item demarcated by the<OPT> tag; and a </OPT> tag, placed after a content item, to indicate an end of the optional content.
a <OPT> tag, placed before a content item to indicate a beginning of optional content;
a <DOPT> tag, placed before a content item which is an alternative for transmission to the content item demarcated by the<OPT> tag; and a </OPT> tag, placed after a content item, to indicate an end of the optional content.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US9733398P | 1998-08-20 | 1998-08-20 | |
US60/097,333 | 1998-08-20 | ||
US09/312,586 | 1999-05-14 | ||
US09/312,586 US7127493B1 (en) | 1998-08-20 | 1999-05-14 | Optimizing server delivery of content by selective inclusion of optional data based on optimization criteria |
PCT/US1999/018997 WO2000011850A1 (en) | 1998-08-20 | 1999-08-19 | Optimizing server delivery of content by selective inclusion of optional data based on optimization criteria |
Publications (1)
Publication Number | Publication Date |
---|---|
CA2340909A1 true CA2340909A1 (en) | 2000-03-02 |
Family
ID=26793134
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA002340909A Abandoned CA2340909A1 (en) | 1998-08-20 | 1999-08-19 | Optimizing server delivery of content by selective inclusion of optional data based on optimization criteria |
Country Status (5)
Country | Link |
---|---|
US (7) | US7127493B1 (en) |
EP (1) | EP1106007A1 (en) |
AU (1) | AU5682199A (en) |
CA (1) | CA2340909A1 (en) |
WO (1) | WO2000011850A1 (en) |
Families Citing this family (66)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
USRE48056E1 (en) | 1991-12-23 | 2020-06-16 | Blanding Hovenweep, Llc | Ergonomic man-machine interface incorporating adaptive pattern recognition based control system |
USRE47908E1 (en) | 1991-12-23 | 2020-03-17 | Blanding Hovenweep, Llc | Ergonomic man-machine interface incorporating adaptive pattern recognition based control system |
US7127493B1 (en) | 1998-08-20 | 2006-10-24 | Gautier Taylor S | Optimizing server delivery of content by selective inclusion of optional data based on optimization criteria |
US8019770B1 (en) * | 2000-02-22 | 2011-09-13 | M. A. Mobile Ltd. | Dynamic rendering of content that includes query expressions |
US8843617B2 (en) | 2000-03-01 | 2014-09-23 | Printeron Inc. | Multi-stage polling mechanism and system for the transmission and processing control of network resource data |
CA2301996A1 (en) | 2000-03-13 | 2001-09-13 | Spicer Corporation | Wireless attachment enabling |
US7761554B1 (en) | 2000-03-22 | 2010-07-20 | International Business Machines Corporation | Method and system for designating required device attributes for embedding in a world-wide web document request |
US7555542B1 (en) | 2000-05-22 | 2009-06-30 | Internap Network Services Corporation | Method and system for directing requests for content to a content server based on network performance |
FR2812489B1 (en) * | 2000-07-31 | 2003-01-17 | Cit Alcatel | COMMUNICATION PROCESS IN ACCORDANCE WITH A PREDETERMINED SET OF REQUIRED CHARACTERISTICS AND/OR SERVICES AND CORRESPONDING NETWORK |
US7170899B2 (en) | 2000-07-31 | 2007-01-30 | Alcatel | Method of setting up a call with a predetermined set of required service and/or characteristics, and a corresponding network |
AU2001276516A1 (en) * | 2000-08-05 | 2002-02-18 | Idesta Group Limited | Mobile computing system architecture |
US6981055B1 (en) | 2000-08-22 | 2005-12-27 | Internap Network Services Corporation | Method and system for optimizing routing through multiple available internet route providers |
US7970437B2 (en) | 2000-11-29 | 2011-06-28 | Nokia Corporation | Wireless terminal device with user interaction system |
KR100422679B1 (en) * | 2000-12-18 | 2004-03-12 | 주식회사 파인디지털 | Mixed contents server-client system |
KR20020069058A (en) * | 2001-02-23 | 2002-08-29 | (주)싸이버뱅크 | Wireless based thin client E-mail service system and method for transmission data decrease |
US8977284B2 (en) | 2001-10-04 | 2015-03-10 | Traxcell Technologies, LLC | Machine for providing a dynamic data base of geographic location information for a plurality of wireless devices and process for making same |
US7114160B2 (en) | 2002-04-17 | 2006-09-26 | Sbc Technology Resources, Inc. | Web content customization via adaptation Web services |
US7474960B1 (en) | 2002-12-30 | 2009-01-06 | Mapquest, Inc. | Presenting a travel route |
US20040221021A1 (en) * | 2003-04-30 | 2004-11-04 | Domer Jason A. | High performance managed runtime environment application manager equipped to manage natively targeted applications |
FI117951B (en) | 2003-06-27 | 2007-04-30 | Nokia Corp | Method and system for presenting information and apparatus |
EP1690199A4 (en) * | 2003-11-14 | 2007-04-25 | Research In Motion Ltd | System and method of retrieving and presenting partial (skipped) document content |
US8661158B2 (en) * | 2003-12-10 | 2014-02-25 | Aventail Llc | Smart tunneling to resources in a network |
US8590032B2 (en) * | 2003-12-10 | 2013-11-19 | Aventail Llc | Rule-based routing to resources through a network |
US7827590B2 (en) * | 2003-12-10 | 2010-11-02 | Aventail Llc | Controlling access to a set of resources in a network |
US8255973B2 (en) * | 2003-12-10 | 2012-08-28 | Chris Hopen | Provisioning remote computers for accessing resources |
US7472185B2 (en) * | 2004-01-05 | 2008-12-30 | International Business Machines Corporation | Method and apparatus for scaling a user interface adaptively to an object discovery/display system with policy driven filtering |
US20060062362A1 (en) * | 2004-09-22 | 2006-03-23 | Davis Franklin A | System and method for server assisted browsing |
WO2006044820A2 (en) | 2004-10-14 | 2006-04-27 | Aventail Corporation | Rule-based routing to resources through a network |
US8001456B2 (en) * | 2005-02-28 | 2011-08-16 | International Business Machines Corporation | Methods for maintaining separation between markup and data at a client |
US20060223593A1 (en) * | 2005-04-01 | 2006-10-05 | Ixi Mobile (R&D) Ltd. | Content delivery system and method for a mobile communication device |
US8150840B2 (en) * | 2006-04-19 | 2012-04-03 | Hewlett-Packard Development Company, L.P. | Dynamic RSS services |
KR101351821B1 (en) * | 2007-06-11 | 2014-01-16 | 에스케이플래닛 주식회사 | Method and Server for Delivering Contents using Delivering Contents List to Mobile Terminal |
CN101540645A (en) * | 2008-03-21 | 2009-09-23 | 华为技术有限公司 | Method and device for distributing dynamic content |
US8473628B2 (en) * | 2008-08-29 | 2013-06-25 | Adobe Systems Incorporated | Dynamically altering playlists |
US8706910B2 (en) * | 2008-10-28 | 2014-04-22 | Panzura, Inc. | Dynamically adaptive network-based data processing system and method |
JP4982522B2 (en) * | 2009-04-24 | 2012-07-25 | 株式会社エヌ・ティ・ティ・ドコモ | Relay server, content distribution system, and content distribution method |
CA2768026A1 (en) * | 2009-07-16 | 2011-01-20 | Research In Motion Limited | Method and system to discover and subscribe to an enhanced syndicated feed |
US8412798B1 (en) | 2009-10-03 | 2013-04-02 | Frank C. Wang | Content delivery system and method |
US9350799B2 (en) | 2009-10-03 | 2016-05-24 | Frank C. Wang | Enhanced content continuation system and method |
AU2010328326B2 (en) * | 2009-12-07 | 2016-12-01 | Robert Buffone | System and method for website performance optimization and internet traffic processing |
US9009330B2 (en) | 2010-04-01 | 2015-04-14 | Cloudflare, Inc. | Internet-based proxy service to limit internet visitor connection speed |
US9049247B2 (en) | 2010-04-01 | 2015-06-02 | Cloudfare, Inc. | Internet-based proxy service for responding to server offline errors |
US8970873B2 (en) | 2010-09-17 | 2015-03-03 | Printeron Inc. | System and method for managing printer resources on an internal network |
US8570566B2 (en) | 2010-09-17 | 2013-10-29 | Printeron Inc. | System and method that provides user interface on mobile network terminal for releasing print jobs based on location information |
US8799311B2 (en) * | 2010-11-05 | 2014-08-05 | Apple Inc. | Intelligent data caching |
US9760329B2 (en) | 2010-11-30 | 2017-09-12 | Printeron Inc. | System for internet enabled printing |
US8813116B2 (en) * | 2011-04-27 | 2014-08-19 | Morega Systems Inc. | Adaptive video server with virtual file system and methods for use therewith |
US8285808B1 (en) | 2011-05-20 | 2012-10-09 | Cloudflare, Inc. | Loading of web resources |
US20130106894A1 (en) | 2011-10-31 | 2013-05-02 | Elwha LLC, a limited liability company of the State of Delaware | Context-sensitive query enrichment |
US20130173295A1 (en) | 2011-12-30 | 2013-07-04 | Elwha LLC, a limited liability company of the State of Delaware | Evidence-based healthcare information management protocols |
US10340034B2 (en) | 2011-12-30 | 2019-07-02 | Elwha Llc | Evidence-based healthcare information management protocols |
US10679309B2 (en) | 2011-12-30 | 2020-06-09 | Elwha Llc | Evidence-based healthcare information management protocols |
US10475142B2 (en) | 2011-12-30 | 2019-11-12 | Elwha Llc | Evidence-based healthcare information management protocols |
US10552581B2 (en) | 2011-12-30 | 2020-02-04 | Elwha Llc | Evidence-based healthcare information management protocols |
US10528913B2 (en) | 2011-12-30 | 2020-01-07 | Elwha Llc | Evidence-based healthcare information management protocols |
US10559380B2 (en) | 2011-12-30 | 2020-02-11 | Elwha Llc | Evidence-based healthcare information management protocols |
US20140032642A1 (en) * | 2012-07-30 | 2014-01-30 | International Business Machines Corporation | Controlling server response based on client performance |
EP2958025B1 (en) * | 2013-02-12 | 2019-09-04 | Nippon Telegraph and Telephone Corporation | Output function dividing system |
US20140282127A1 (en) * | 2013-03-15 | 2014-09-18 | Lite-On It Corporation | Method of converting an application of a mobile device into a distraction-free mode |
KR20150055689A (en) * | 2013-11-13 | 2015-05-22 | 삼성전자주식회사 | System and method for sharing profile image card for communication |
US9356882B2 (en) | 2014-02-04 | 2016-05-31 | Printeron Inc. | Streamlined system for the transmission of network resource data |
US9680685B2 (en) * | 2014-05-08 | 2017-06-13 | Spb Tv Ag | System and method for managing video content feeds |
US9723056B1 (en) * | 2014-05-30 | 2017-08-01 | Amazon Technologies, Inc. | Adapting a page based on a client environment |
US20190347315A1 (en) * | 2018-05-08 | 2019-11-14 | International Business Machines Corporation | Methods and systems for rendering web pages with restricted features |
US10778786B2 (en) | 2018-10-29 | 2020-09-15 | International Business Machines Corporation | Intelligent multi-device user interaction |
CN111273950B (en) * | 2019-12-31 | 2023-03-21 | 百度国际科技(深圳)有限公司 | Application awakening method and device, electronic equipment and computer readable storage medium |
Family Cites Families (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0778782B2 (en) | 1989-07-19 | 1995-08-23 | インターナショナル・ビジネス・マシーンズ・コーポレーシヨン | Interactive computer system and apparatus and method for adapting use environment thereof |
US5649131A (en) * | 1992-12-30 | 1997-07-15 | Lucent Technologies Inc. | Communications protocol |
WO1995021511A1 (en) | 1994-02-07 | 1995-08-10 | Harold Ii Pace | Mobile location reporting apparatus and methods |
US5625668A (en) | 1994-04-12 | 1997-04-29 | Trimble Navigation Limited | Position reporting cellular telephone |
US5774860A (en) | 1994-06-27 | 1998-06-30 | U S West Technologies, Inc. | Adaptive knowledge base of complex information through interactive voice dialogue |
US5473745A (en) | 1994-12-14 | 1995-12-05 | International Business Machines Corporation | Exposing and hiding a title bar behind its window using a visual cue |
EP0718784B1 (en) | 1994-12-20 | 2003-08-27 | Sun Microsystems, Inc. | Method and system for the retrieval of personalized information |
US5801702A (en) | 1995-03-09 | 1998-09-01 | Terrabyte Technology | System and method for adding network links in a displayed hierarchy |
US5740549A (en) | 1995-06-12 | 1998-04-14 | Pointcast, Inc. | Information and advertising distribution system and method |
US5809248A (en) | 1995-07-05 | 1998-09-15 | Sun Microsystems, Inc. | Method and apparatus for front end navigator and network architecture for performing functions on distributed files in a computer network |
US5706434A (en) | 1995-07-06 | 1998-01-06 | Electric Classifieds, Inc. | Integrated request-response system and method generating responses to request objects formatted according to various communication protocols |
WO1997003460A1 (en) | 1995-07-12 | 1997-01-30 | Hoya Corporation | Bare chip mounted board, method of manufacturing the board, and method of forming electrode of bare chip |
US5649186A (en) | 1995-08-07 | 1997-07-15 | Silicon Graphics Incorporated | System and method for a computer-based dynamic information clipping service |
KR970002795A (en) | 1995-10-30 | 1997-01-28 | 모리 하루오 | Navigation device |
US5625781A (en) | 1995-10-31 | 1997-04-29 | International Business Machines Corporation | Itinerary list for interfaces |
JP3484284B2 (en) | 1995-12-14 | 2004-01-06 | ブラザー工業株式会社 | Data relay system and data relay device applied to the system |
JPH09182143A (en) | 1995-12-27 | 1997-07-11 | Sony Corp | Terminal equipment |
US5745865A (en) | 1995-12-29 | 1998-04-28 | Lsi Logic Corporation | Traffic control system utilizing cellular telephone system |
US5801689A (en) | 1996-01-22 | 1998-09-01 | Extended Systems, Inc. | Hypertext based remote graphic user interface control system |
US5867661A (en) * | 1996-02-15 | 1999-02-02 | International Business Machines Corporation | Method and apparatus of using virtual sockets for reducing data transmitted over a wireless communication link between a client web browser and a host web server using a standard TCP protocol |
US5754774A (en) | 1996-02-15 | 1998-05-19 | International Business Machine Corp. | Client/server communication system |
US5727159A (en) | 1996-04-10 | 1998-03-10 | Kikinis; Dan | System in which a Proxy-Server translates information received from the Internet into a form/format readily usable by low power portable computers |
US5794230A (en) | 1996-03-15 | 1998-08-11 | Microsoft Corporation | Method and system for creating and searching directories on a server |
US5809172A (en) | 1996-04-17 | 1998-09-15 | Canon Kabushiki Kaisha | Non-linear aggregation mapping compression of image data and method |
US5815721A (en) * | 1996-04-25 | 1998-09-29 | Hewlett-Packard Company | Method and apparatus for optimizing complex control structures using abstract web patterns |
US5991809A (en) * | 1996-07-25 | 1999-11-23 | Clearway Technologies, Llc | Web serving system that coordinates multiple servers to optimize file transfers |
US5987480A (en) * | 1996-07-25 | 1999-11-16 | Donohue; Michael | Method and system for delivering documents customized for a particular user over the internet using imbedded dynamic content |
US6018343A (en) * | 1996-09-27 | 2000-01-25 | Timecruiser Computing Corp. | Web calendar architecture and uses thereof |
TW347498B (en) | 1996-09-30 | 1998-12-11 | Casio Computer Co Ltd | Information supply system |
US5890172A (en) | 1996-10-08 | 1999-03-30 | Tenretni Dynamics, Inc. | Method and apparatus for retrieving data from a network using location identifiers |
US5796393A (en) | 1996-11-08 | 1998-08-18 | Compuserve Incorporated | System for intergrating an on-line service community with a foreign service |
US5796952A (en) | 1997-03-21 | 1998-08-18 | Dot Com Development, Inc. | Method and apparatus for tracking client interaction with a network resource and creating client profiles and resource database |
IL132060A0 (en) * | 1997-03-31 | 2001-03-19 | Broadband Associates | Method and system for providing a presentation on a network |
US5893091A (en) | 1997-04-11 | 1999-04-06 | Immediata Corporation | Multicasting with key words |
US5895471A (en) | 1997-07-11 | 1999-04-20 | Unwired Planet, Inc. | Providing a directory of frequently used hyperlinks on a remote server |
US5959577A (en) | 1997-08-28 | 1999-09-28 | Vectorlink, Inc. | Method and structure for distribution of travel information using network |
CN1326565C (en) | 1997-10-14 | 2007-07-18 | 中外制药株式会社 | Potentiator for antibody against lymphoid tumor |
US6128668A (en) * | 1997-11-07 | 2000-10-03 | International Business Machines Corporation | Selective transformation of multimedia objects |
US6167441A (en) * | 1997-11-21 | 2000-12-26 | International Business Machines Corporation | Customization of web pages based on requester type |
US6205482B1 (en) * | 1998-02-19 | 2001-03-20 | Ameritech Corporation | System and method for executing a request from a client application |
US7127493B1 (en) | 1998-08-20 | 2006-10-24 | Gautier Taylor S | Optimizing server delivery of content by selective inclusion of optional data based on optimization criteria |
-
1999
- 1999-05-14 US US09/312,586 patent/US7127493B1/en not_active Expired - Lifetime
- 1999-08-19 CA CA002340909A patent/CA2340909A1/en not_active Abandoned
- 1999-08-19 EP EP99943792A patent/EP1106007A1/en not_active Withdrawn
- 1999-08-19 WO PCT/US1999/018997 patent/WO2000011850A1/en not_active Application Discontinuation
- 1999-08-19 AU AU56821/99A patent/AU5682199A/en not_active Abandoned
-
2006
- 2006-09-19 US US11/533,312 patent/US7627646B2/en not_active Expired - Fee Related
-
2008
- 2008-03-28 US US12/057,711 patent/US8103739B1/en not_active Expired - Fee Related
-
2009
- 2009-03-12 US US12/403,343 patent/US8065388B1/en not_active Expired - Fee Related
-
2011
- 2011-12-20 US US13/332,066 patent/US8484315B2/en not_active Expired - Lifetime
-
2012
- 2012-01-25 US US13/357,918 patent/US8745160B2/en not_active Expired - Lifetime
-
2013
- 2013-06-07 US US13/912,939 patent/US9560113B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US20070016909A1 (en) | 2007-01-18 |
US7127493B1 (en) | 2006-10-24 |
AU5682199A (en) | 2000-03-14 |
US20120124132A1 (en) | 2012-05-17 |
WO2000011850A1 (en) | 2000-03-02 |
WO2000011850A9 (en) | 2000-08-17 |
US8065388B1 (en) | 2011-11-22 |
US8745160B2 (en) | 2014-06-03 |
US20120096117A1 (en) | 2012-04-19 |
US8103739B1 (en) | 2012-01-24 |
EP1106007A1 (en) | 2001-06-13 |
US8484315B2 (en) | 2013-07-09 |
US7627646B2 (en) | 2009-12-01 |
US20130275499A1 (en) | 2013-10-17 |
US9560113B2 (en) | 2017-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7127493B1 (en) | Optimizing server delivery of content by selective inclusion of optional data based on optimization criteria | |
US9807160B2 (en) | Autonomic content load balancing | |
US6763248B1 (en) | Radio network communication system | |
US7210100B2 (en) | Configurable transformation of electronic documents | |
US7765274B2 (en) | Differential caching with template, sub-template, and delta information | |
Ma et al. | Framework for adaptive content delivery in heterogeneous network environments | |
US6826693B1 (en) | Information transmission apparatus | |
US8839098B2 (en) | System and method for rapid document conversion | |
US20030100320A1 (en) | Efficient hyperlinks for transmitted hyperlinked information | |
US20040003028A1 (en) | Automatic display of web content to smaller display devices: improved summarization and navigation | |
US20020107985A1 (en) | Providing data services via wireless mobile devices | |
EP1412867A1 (en) | System and method for converting an attachment in an e-mail for delivery to a device of limited rendering capability | |
CA2423611C (en) | Configurable transformation of electronic documents | |
EP1041497B1 (en) | Information fetching control scheme using data type dependent strategy for reducing user response time | |
US20030106025A1 (en) | Method and system for providing XML-based web pages for non-pc information terminals | |
US20030149745A1 (en) | Method and apparatus for accessing information from a network data source | |
US7503051B1 (en) | Broadcast data receiving device and method for receiving a plurality of multimedia data | |
KR20020041331A (en) | Contents providing system | |
KR20040056294A (en) | Method of applying user preference profiles onto web content service | |
GB2370198A (en) | Calculating loads between base station(s) and a client terminal and transmitting data by pages according to the load | |
KR20050119446A (en) | System and method for previewing text |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FZDE | Discontinued |