throbber
I 1111111111111111 11111 lllll lllll lllll lllll lllll lllll 111111111111111 11111111
`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

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket