`US007127493B1
`
`02) United States Patent
`Gautier
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 7,127,493 Bl
`Oct. 24, 2006
`
`(54) OPTIMIZING SERVER DELIVERY OF
`CONTENT BY SELECTIVE INCLUSION OF
`OPTIONAL DATA BASED ON
`OPTIMIZATION CRITERIA
`
`(76)
`
`Inventor: Taylor S. Gautier, 2237 Trafalgar Pl.,
`Oakland, CA (US) 9461 I
`
`( *) Notice:
`
`Subject to any disclaimer, th e tenn of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 0 days.
`
`(21) Appl. No.: 09/312,586
`
`(22) Filed:
`
`May 14, 1999
`
`(51) Int. Cl.
`G06F 15/16
`(2006.01)
`(52) U.S. Cl . .............................. 709/217; 707/1 ; 707/2;
`707/10; 709/201
`(58) Field of Classification Search ................ 7 15/ 513,
`715/500.1 , 526; 709/201- 203, 246, 217- 219;
`707/ 10
`See application file for complete search history.
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCillvlENTS
`
`5,179,700 A
`5,586,244 A
`5,625,781 A
`5,649,131 A "
`5,649,186 A
`5,706,434 A
`5,740,549 A
`5,754,774 A
`5,761 ,662 A
`5,794,230 A
`5,796,393 A
`5,796,952 A
`5,801,689 A
`5,801,702 A
`5,809,248 A
`5,890,172 A
`5,893,091 A
`5,895,471 A
`
`111993 Aihara et al . ............... 395/650
`12/1996 Beny et al.
`4/ 1997 Cline et al.
`7/ 1997 Ackerman et al. ....... ... 345/744
`7/ 1997 Ferguson
`1/ 1998 Kremen et al. ........ 395/200.09
`4/ 1998 Reilly et al.
`5/ 1998 Bittinger et al.
`6/ 1998 Dasan
`8/1998 Horadan et al.
`8/1998 MacNaughton et al.
`8/1998 Davis et al.
`9/ 1998 Huntsman
`9/ 1998 Dolan et al.
`9/ 1998 Vidovic
`3/ 1999 Bonnan et al.
`4/ 1999 Hunt et al.
`4/ 1999 King et al.
`
`6,128,668 A * 10/2000 Barber et al . ............... 709/246
`6,167,441 A * 12/2000 H.inunel ...................... 709/217
`6,598,075 Bl* 7/2003 Ogdon et al . ............... 709/204
`
`OTHER PUBLICATIONS
`
`PCT International Application No. PCT/JP97/03460*
`''Intelligent User Inte1face Prompt Level'', IBM Technical Disclo(cid:173)
`sure Bulletin, vol. 35, No. IA, Jun. 1992, (United States) p. 25-26.
`F. Vitali, et al. , '·Extending HTML in a Principled Way With
`Displets", Computer Networks and ISDN Systems, vol. 29, No.
`8-13, Sep. I, 1997, (United States) pp. 1115-1128.
`
`(Continued)
`
`Primary Examiner- William Thomson
`Assistant Examiner- Van Nguyen
`
`(57)
`
`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, any one of the following: comnnmication channel
`performance (bandwidth), client operating system, client
`processor, client display capabilities, client installed soft(cid:173)
`ware (video or audio codecs for example), and/or user
`preferences. A sofuvare product and method enable selective
`delivery of content to client devices of varying perfom1ance
`characteristics, including varying bandwidth, by selective
`filtering and inclusion of mar.l'Up language content using
`tags demarcating optional content. The optional content may
`include a nlllllber of alternate items of content. An optimi(cid:173)
`zation constraint is used to select one of the items. The
`server includes the selected item in an item of content
`requested by a client device. The optimization constraints
`are associated with varying levels of client/communication
`channel perfonnance.
`
`22 Claims, 3 Drawing Sbeets
`
`Receive Request for
`Coment Item From Client
`
`~ •
`
`Determine
`Opimization Constraint
`for Cienl/Requesied
`Content Item
`
`222 •
`
`Compile Requ8$18d
`Conlent Item, and Select
`Optional Content According
`to Optional Constraint
`
`~ •
`
`Transmtt Compiled
`Conlentllemlo
`Requesting Client
`20§
`
`
`
`US 7,127,493 Bl
`Page 2
`
`OTHER PUBLICATIONS
`
`"HDML 2.0 Language Reference Version 2.0 .. , Jul. 1997, (Unite.ct
`States) pp. 1-56.
`D. Atkins, et aJ., "Integrated Web and Telephone Service Creation",
`Bell Labs Technical Joumal, Winter 1997, (United States) vol. 2,
`No. 1, pp. 19-35.
`
`Shimada, T. et al., Ime.ractive Sealing Comro/ Mechauism for
`World-Wide Web Systems, Computer Networks and ISDN Systems,
`vol. 29, pp. )467-1477 (1997).
`PCT PreLiminaiy Examination Repo1t, PCT lntema.tional Applica(cid:173)
`tion No PCT/US99/18997.
`* cited by examiner
`
`
`
`U.S. Patent
`
`Oct. 24, 2006
`
`Sheet 1 of 3
`
`US 7,127,493 Bl
`
`(0
`0
`.,...
`
`Q)
`C
`0
`.c
`a.
`Q)
`(.)
`~
`C
`a.
`
`LL
`
`,_
`Q)
`
`-
`
`~
`a.
`E
`0 ·u
`a.
`0
`. ..-
`a.
`co
`....J
`
`.... Q)
`N
`·2
`as
`....
`0)
`0
`
`D
`0
`
`l~I f[]
`
`E
`Q)
`1n
`>-en
`a.
`0
`S:
`(h
`Q)
`Cl
`
`~ gggg
`
`oDDD
`ODD
`DOD
`DODD
`aaoo
`ooao
`
`i!: O,q-1 3:o
`Q),....
`z
`
`(\J
`C>
`
`..(cid:173)....
`~
`<1> en
`
`1]211 =-= =--====-= -===-
`
`'~
`
`0
`
`"
`
`-
`
`Q)
`C <n
`a> as~
`-.D
`§ 19,....
`\) (.)~
`
`\
`
`j
`
`
`
`U.S. Patent
`
`Oct. 24, 2006
`
`Sheet 2 of 3
`
`US 7,127,493 Bl
`
`FIG. 2
`
`Receive Request for
`Content Item From Client
`200
`
`, t
`
`Determine
`Optimization Constraint
`for Client/Requested
`Content Item
`202
`
`Compile Requested
`Content Item, and Select
`Optional Content According
`to Optional Constraint
`204
`
`Transmit Compiled
`Content Item to
`Requesting Client
`206
`
`
`
`U.S. Patent
`
`Oct. 24, 2006
`
`Sheet 3 of 3
`
`US 7,127,493 Bl
`
`Directions<OPT> to our offices<OPT>:<BR>
`<OPT >CONTINUE<DOPT >C<IOPT ><OPT> onto<IOPT > HARRISON ST <OPT>
`--><IOPT> <OPT>Go <IOPT><OPT>a short distance<DOPT>short
`distance<IOPT><OPT> and then<IOPT><BR><OPT> TURN
`RIGHT <DOPT>R<IOPT><OPT> onto<IOPT> 2ND ST <OPT> --><!OPT>
`<OPT>Go
`<IOPT>0.1 <OPT>miles<DOPT>m<IOPT><OPT> and
`then<IOPT><BR><OPT> TURN LEFT <DOPT>l<IOPT><OPT> onto<IOPl>
`WEBSTER
`ST<BR><OPT>CONTINUE<DOPT>C<IOPT> <OPT>a short
`distance<DOPT >short
`distance<OPT><BR><BR><OPT> Total distance is<DOPT> Total:<IOPT>0.2
`<OPT >miles<DOPT >m<IOPT ><OPT ><BR>Estimated driving
`time<DOPT>,<IOPT> 0.9 <OPT>minutes<DOPT>min<IOPT>
`
`FIG. 3A
`
`Compiled for Low
`ConstrainUHigh
`Performance Device
`(e.g., HTML)
`
`Directions to our offices:
`CONTINUE onto HARRISON ST --> Go a short distance and then
`TURN RIGHT onto 2ND ST--> Go 0.1 miles and then
`TURN LEFf onto WEBSTER ST
`CONTINUE a short distance
`
`I
`
`Compiled For High
`Constraint/Low
`Performance Device
`(e.g.; TTML)
`
`Total distance is 0.2 miles
`Estimated driving time 0.9 minutes
`FIG. 38
`
`Directions
`C HARRISON ST short distance
`R 2ND ST0.1 m
`LWEBSTERST
`C short distance
`
`Total: 0.2 m, 0.9 min.
`
`FIG. 3C
`
`
`
`US 7,127,493 Bl
`
`1
`OPTil\UZING SERVER DELIVERY OF
`CONTENT BY SELECTIVE INCLUSION OF
`OPTIONAL DATA BASED ON
`OPTIMIZATION CRITERIA
`
`BACKGROUND
`
`2
`this approach yields simple sites that do not folly allow
`higher perfom1ance devices to take advantage of their per(cid:173)
`formance features.
`Accordingly, it is desirable to provide a system, method,
`s 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 perfonnance characteristics.
`
`SUMMARY OF THE INVENTION
`
`30
`
`35
`
`I. Field oflnvention
`The present invention relates generally to systems, meth- 1o
`ods, and software products for delivering content in client(cid:173)
`server networks, and more particularly, to systems, methods,
`and software products that optimize the delivery of such
`content in response to optimization criteria.
`2. Background of the Invention
`Tue Internet generally, and the World Wide Web specifi(cid:173)
`cally, provide a client-server model of content delivery, in
`which content stored on a server at a web site is delivered
`over a collllllunications channel to a client device. Com1en-
`. ed 20
`tionally, the content as structured by the author is deliver
`by the server to all requesting clients in the same form. That
`is, the server does not change the strncture of the content to
`accommodate the perfomiance characteristics of the com(cid:173)
`munication cha1mel to a particular client, or the performance
`characteristics of the client itself. At best, the client re- 25
`formats the received content based on 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 conununication channels. For
`example, today a web site may be accessed by many
`different types of clients, from conventional foll size com(cid:173)
`puters with large screen displays (e.g. 13" to I 7") and foll
`color capabilities (16 M colors) to small handheld computers
`with small screens (e.g. 4" to 6") and liniited color capa(cid:173)
`bilities (256 colors), to cellular telephones with very small
`screens (I "- 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, fulJ color monitor will
`not appear at all properly on a cellular telephone display
`with only monochrome output. Moreover, the cellular tele(cid:173)
`phone has a much lower bandwidth capability than a stan(cid:173)
`dard desktop computer, and thus would require significantly
`more time (and hence more cost and delay) in loading such
`a web page.
`Typically, in order to accommodate these varying capa(cid:173)
`bilities, a server must maintain many difforent web sites or
`web pages, each designed to be served to a particular class 50
`of client. But tliis approach is very labor intensive, particu(cid:173)
`larly for sites that must be updated frequently, since the
`manv different sizes and content selections for a given page
`must be kept in synchrony to all have the same current
`content. Further, display capabilities are only one charac- 55
`teristic that affects client perfom1ance. 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 60
`factors that affect client performance, such as bandwidth and
`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 65
`is to design web sites that are acceptable to only the lowest
`performance devices that are going to access the site. But
`
`The present invention overcomes the limitations of the
`conventional systems by providing a server software product
`1s 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 types to varying client devices with varying perfor-
`mance characteristics.
`The present invention augments existing markup lan(cid:173)
`guages 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
`inclusion in the content based on an optimization constraint
`dependent on the characteristics of the client device.
`Preferably, the items are ordered in a maimer correspond-
`ing to some set of client characteristics; one of these items
`is selected as the content to be delivered when the content is
`requested. The characteristics may be performance charac(cid:173)
`teristics of the client or communication channel, or other
`attributes of the client. For example, the ordering of optional
`content items may be with respect to highest performance to
`lowest perfonnance devices, or vice versa. For example, in
`web page providing directions to a desired location, a 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 fom1s of in:fonnation will be delivered to a
`requesting client.
`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 per-
`formance 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 wliich optional items
`are ordered from highest to lowest performance capability,
`if the requesting client is a high perfonnance device (includ(cid:173)
`ing 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 item(s) is
`skipped until the appropriate item of content is reached.
`Obviously, the reverse of this ordering and selection process
`is possible. Tue selection of which item of content is
`appropriate for which client device is based on an optinii-
`zation constraint. Tue server stores data which associates
`different types of client devices or performance character(cid:173)
`istics with different levels of the optimization constraint. Tue
`number of different types of client devices or performance
`characteristics is not limited. The server selects the appro-
`priate optimization constraint based on observable charac-
`
`40
`
`45
`
`
`
`US 7,127,493 Bl
`
`4
`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 a preferable mle that
`a negative muuber may never select the least constrained
`item, and a positive number may never select the most
`constrained item. With these mies, any muuber of optional
`items of content may encoded in the document and selec(cid:173)
`tively delivered. Again, whether the ordering is left to right
`or right to left for high to low constraint is an implementa(cid:173)
`tion detail; which ever is used, the selection logic is imple(cid:173)
`mented 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 from an order of 0(2) [for a
`traditional system], or a square relationship, to an order of
`0(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
`
`s
`
`3
`teristics of the client device requesting the content. These
`observable characteristics include the device type, browser
`type, operating system, processor, memory, user prefer(cid:173)
`ences, software installed on the client, and language type for
`the requested content.
`A set of selection mies 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
`particularly, the rules map any optimization constraint to one
`of the items of content. In a preferred embodiment, where 10
`the optional items are ordered with respect to their perfor(cid:173)
`mance 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
`reducing the data stream provided to a specific client based 15
`on encoding of optionally selectable/filterable data, and an
`optimization constraint value that controls the selection
`process.
`1l1e tag that demarcates optional content can obviously be
`any useful string. In one embodiment, the tag is usefully 20
`called the "OPT" tag. The OPT tag is fom1atted using
`standard SGML formats, with <OPT> indicating the begin(cid:173)
`ning 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 25
`alternative items of optional content. 1l1e preferred delim(cid:173)
`iting tag for separating alternative items is <DOPT> for
`"Delimiting OPTion". A well formed OPT tag has the
`following form:
`<OPT> content {<DOPT>alternative content}*<IOPT>
`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 images) to smallest data 35
`size.
`Examples:
`I. <◊Pf>Real Time Stock <IOPT>Quotes
`2. <OPT>Turn left<DOPT>Left<DOPT>L<IOPT> on
`First Street
`In the first example, the optional content "Real Time
`Stock" is delivered only to client 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 45
`receives "Quotes" when this content is delivered. 'Ibus, the
`unconstrained version is appropriate, for example, for a
`standard desliop computer, but the latter version is better
`supplied to a device with a very small screen or low
`bandwidth capabilities, such as a cellular telephone.
`In the second example, of directions being given to a
`location, the alternative content selections become progres(cid:173)
`sively smaller, being ordered left to right from least con(cid:173)
`strained (highest performance) to most constrained (lowest
`performance). Thus, the first item 'Turn Jeff' is delivered to 55
`a high performance client, while the last item "L" is suitable
`for client devices with lower bandwidth and/or smaller
`displays.
`One preferred method of using the optimization constraint
`as au index into the optional items of content uses both 60
`positive and negative numbers as optimization constraints.
`Positive numbers index from least constrained items to most
`constrained items. In example 2) above, an optimization
`constraint of (I) would select 'Turn left" while an optimi(cid:173)
`zation constraint of (2) would select "Left". Negative num(cid:173)
`bers index from most constrained to least; thus (-1) would
`select .. L", which (-2) would also select "Left". Preferably,
`
`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
`30 in accordance with the present invention.
`FIGS. 3a- 3c illustrates an example of an encoded content
`item with optional content, and different outputs of optional
`content according to varying levels of optimization con-
`straint.
`
`DETAILED DESCRJPTION OF THE
`PREFERRED EMBODIMENTS
`
`Referring to FIG. 1, there is shown an illustration of a
`40 system in accordance with the present invention. The system
`includes a server 102 and a content database 100. The server
`102 of interest is the software product that executes on a
`conventional server grade computer, such as a workstation,
`minicomputer, mainfran1e, or the like. The server 102 is
`configured to execute in accordance with the fi.mctional
`features as described herein.
`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 Lan-
`so guage (HTML), Extended Marl·up Language (X~IL),
`Hypertext Dynamic Markup Language (HDML), Tagged
`Text Marl'11p Language (TTML). The server 102 is then a
`server of the appropriate type of marl·up language, and
`includes functions for receiving requests for a content item,
`typically indicated by a unifonn resource locator (URL), and
`parsing mark-up 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 optional content demarcated by
`a specific markup language tag. The preferred tag is <OPT>,
`as described above, and its terminating tag <!OPT>. Any
`mnnber of alternate items of content may be enclosed, each
`delimited by a specific tag, such as <DOPT>. The items are
`65 preferably ordered with respect to some performance crite(cid:173)
`ria, such as bandwidth capability. One ordering is from left
`to right, from lowest constraint, highest performance
`
`
`
`5
`devices, to highest constraint, lowest performance devices.
`Schematically, a portion of content strncnired in this manner
`is as follows:
`
`US 7,127,493 Bl
`
`6
`3. Positive numbers select from least constrained to most
`constrained. Negative numbers select from most constrained
`to least constrained.
`4. TI1e positive number one (I) selects the least con(cid:173)
`strained item.
`5. TI1e negative number one (-I) selects the most con(cid:173)
`strained item.
`6. The number zero (0) is equivalent to negative one (-1)
`7. Use the optimization constraint as an index into the
`optional items, where l selects the least constrained item, 2
`the second least constrained item, and so on; - I selects the
`most constrained item, - 2 selects the second to most con(cid:173)
`strained item and so on.
`8. A negative number may never select the least con(cid:173)
`strained item.
`9. A positive nmnber may never select the most con(cid:173)
`strained item.
`The following table illustrates an example mapping where
`there are 5 items of altemate content, using a left to right,
`least to most constraint ordering:
`
`TABLE I
`
`!"Item
`(Le3SI
`Constrained) 2nd Item
`
`3"' Item
`
`4th Item
`
`n • I
`
`n • 2,
`n <• - 4
`
`n • (3, - 3)
`
`D >• 4.
`ll • - 2
`
`5"' Item
`(most
`constrained)
`
`n • (-1, 0)
`
`Opt.
`Constraint
`n which
`selects this
`item:
`
`In one embodiment, the optimization constraint is defined
`with respect to the mar.kup language of the content being
`served. The next table defines one set of optimization
`constraints for this embodiment:
`
`TABLE 2
`
`Optimization Constraint
`Language/Bandwith
`__ ....;:....;:;._ _________________ _
`
`HTML (on Tl co1mection at
`1.5 Mb/s)
`HTML (wired modem <=56 Kb/s)
`HTML (wireless <=9600 bps)
`HDML ( <9(,00 bl'$)
`TTML
`
`2
`- 3
`-2
`-1
`
`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 cormection speeds are relatively high and display
`capacities are also relatively high, and thus a low constraint
`is appropriate, particularly for HTML on a Tl c01mection.
`HTML on a wireless device, such as a PDA is more
`constrained, and hence a higher constraint. HDML is gen(cid:173)
`erally used in a digital celJular telephone col1l11lunications
`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 optimi(cid:173)
`zation 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
`65 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 infor-
`
`5
`
`10
`
`15
`
`20
`
`40
`
`lowest
`data<OOPT>next
`constraint
`<OPT>lowest
`constraint<DOPT> . .. <DOPT>highest constraint data</
`OPT>.
`In one embodiment, these tags are part of meta-language
`that itself marks up other markup languages. In this embodi(cid:173)
`ment, the OPT and OOPT are set off by « and » , to
`indicate to the server 102 that they are part of the meta(cid:173)
`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 marl-.'up 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 particu(cid:173)
`larly 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. TI1e server 102 can thus 25
`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 difterent markup
`languages to interface with the server 102.
`The server 102 communicates with various types of client 30
`devices 106 over a conmmnications network 104. TI1e 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 35
`server 102 selectively provides optional content from a
`content item, depending on an optimization constraint asso(cid:173)
`ciated with a requesting client device 106.
`Referring to FIG. 2, there is shown a method in accor-
`dance with the present invention. The server 102 receives at
`200 a request for a content item from the database 100. The
`·
`·
`·
`·
`server 102 determine at 202 an optl!lllZatJon constrarnt
`associated with the requesting client device. The server 102
`compiles at 204 the requested content item, including selec-
`tively including content that is set forth as optional content, 45
`and if necessary, by selecting one of the altemate items of
`content, based on the optimization constraint. The server
`102 then transmits at 206 the compiled content item to the
`client. Determining the optimization constraint preferably
`includes detenuining either a client device type, client 50
`operating system type, client browser 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 55
`preferably includes applying a set of niles that map the
`optimization constraint to selected ones of the optional
`content items.
`One set of rules uses the optimization constraint as an
`index, where the items are ordered in manner corresponding 60
`to performance capabilities of the client devices. This set of
`rules is described as follows:
`I. Determine the number of optional items. If only one is
`available, add a blank option as the rightmost (most con(cid:173)
`strained) option.
`2. Retrieve the optimization constraint which corresponds
`to the client device.
`
`
`
`US 7,127,493 Bl
`
`7
`mation about the client device attributes to an optimization
`value. The detem1ined 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 co11tent, so that the server 102 s
`ultimately compiles a complete content item. The completed
`content iten1 is transmitted 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 mark.'Up 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 least constrained envirollillent, HTML over Tl. Note that
`all of the optional text in each OPT section is included. FIG. 15
`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
`stn1ctured to serve multiple difterent client devices, without
`having to maintain many different versions of the content 20
`item, as in conventional systems.
`
`8
`4. The method of claim 2 farther comprising:
`responsive to said one of said optimization constraints
`specifying a class of device having a lowest perfor(cid:173)
`mance characteristic, selecting a content item compris(cid:173)
`ing a least ammmt of data.
`5. The method of claim 1 wherein optimization con(cid:173)
`straints are associated with each content item, and the
`optimization constraints index classes of client devices,
`wherein each class of client device has different perfor-
`10 mance characteristics, further comprising:
`assigning the client device an optimization constraint,
`said assignment based on the performance characteris(cid:173)
`tics of the client device; and
`said step of selecting comprising selecting a content item,
`said selection based on the assigned optimization con(cid:173)
`straint.
`6. The method of claim 5 wherein assigning an optimi(cid:173)
`zation constraint based on the performance characteristics of
`the client device further comprises:
`determining a connection type in use by the client device;
`and
`associating with the client device an optimization con(cid:173)
`straint the associating based on the connection type of
`the client device.
`7. The method of claim 5 wherein assigning an optimi(cid:173)
`zation constraint based on the performance characteristics of
`the client device further comprises:
`determining a processor type in use by the client device;
`and
`the step of associating an optimization constraint further
`comprises associating an optimization constraint, the
`association based on the processor type in use by the
`client device.
`8. The method of claim 5 wherein assigning an optimi-
`35 zation constraint based on the performance characteristics of
`the client device further comprises:
`determining an an1ount of memory in use by the client
`device; and
`the step of associating an optimization constraint further
`comprises associating an optimization constraint the
`associating based on the amount of memory in use by
`the client device.
`9. The method of claim 5 wherein assigning an optimi(cid:173)
`zation constraint based on the performance characteristics of
`45 the client device further comprises:
`determining a display type in use by the client device; and
`the step of associating an optimization constraint further
`comprises associating an optimization constraint, the
`associating based on the display type in use by the
`client device.
`10. The method of claim 1, wherein the client device
`perfom1ance characteristics are selected from the group
`consisting of client device operating system, connection
`type, processor type, amount of memory, user preferences,
`55 display size, and software installed.
`11. A method of delivering a web page comprising:
`storing a plurality of web pages, at least one of said web
`pages containing non-optional content data and a plu(cid:173)
`rality of files, at least one of said files containing
`optional content data, said optional content data includ(cid:173)
`ing a plurality of optional content items, said plurality
`of content items ordered with respect to a highest and
`lowest perfonuance characteristic of client devices;
`receiving a request for transmission of at least said one of
`said web pages from a remote device;
`detenuining at least one a highest perfonuance charac(cid:173)
`teristic of the remote device;
`
`50
`
`The invention claimed is:
`1. A method of optimizing the delivery of content data 25
`from a web server to a client device, said method compris(cid:173)
`ing:
`storing a plurality of files, at least one of said files
`containing non-optional content data and at least
`another one of said files containing optional content 30
`data, said optional cont