`(12) Patent Application Publication (10) Pub. No.: US 2007/0245028A1
`Baxter et al.
`(43) Pub. Date:
`Oct. 18, 2007
`
`US 20070245028A1
`
`(54) CONFIGURING CONTENT IN AN
`INTERACTIVE MEDIA SYSTEM
`
`(76) Inventors: Robert A. Baxter, Bedford, MA (US);
`John D. Puterbaugh, Sterling, MA
`(US)
`
`Correspondence Address:
`FSH & RICHARDSON PC
`P.O. BOX 1022
`MINNEAPOLIS, MN 55440-1022 (US)
`
`(21) Appl. No.:
`
`11/479,114
`
`(22) Filed:
`
`Jun. 30, 2006
`
`Related U.S. Application Data
`
`(63) Continuation-in-part of application No. 1 1/394,671,
`filed on Mar. 31, 2006.
`
`Publication Classification
`
`(51) Int. Cl.
`(2006.01)
`G06F 5/16
`(52) U.S. Cl. .............................................................. 709/228
`
`ABSTRACT
`(57)
`A method for configuring content to be provided to a client
`comprises receiving information specifying characteristics
`of the client; modifying reference content that represents
`content to be provided to the client according to multiple
`modification processes to generate multiple versions of the
`reference content, each modification process applying dif
`ferent modifications related to the characteristics of the
`client; for each version, determining respective values asso
`ciated with multiple attributes of the version; for each of the
`values for the different versions that are associated with the
`same attribute, normalizing the value to be comparable with
`values associated with the other attributes; for each version,
`generating a combination of the normalized values associ
`ated with the multiple attributes of the version; and selecting
`one of the modification processes based on a value of the
`combination of the normalized values.
`
`
`
`Server Application
`
`Volatile
`Memory
`
`Persistent
`Storage
`
`Network
`
`106
`
`Client Application
`
`Persistent
`Storage
`
`126
`
`130
`
`1
`
`APPLE 1008
`
`
`
`Patent Application Publication Oct. 18, 2007 Sheet 1 of 13
`
`US 2007/0245028A1
`
`
`
`I "OIH
`
`2
`
`
`
`Patent Application Publication Oct. 18, 2007 Sheet 2 of 13
`
`US 2007/0245028A1
`
`Z 'OIH
`
`
`
`
`
`
`
`
`
`
`3
`
`
`
`Patent Application Publication Oct. 18, 2007 Sheet 3 of 13
`
`US 2007/0245028A1
`
`909
`
`
`
`
`
`
`
`
`
`4
`
`
`
`Patent Application Publication Oct. 18, 2007 Sheet 4 of 13
`
`US 2007/0245028A1
`
`
`
`5
`
`
`
`Patent Application Publication Oct. 18, 2007 Sheet 5 of 13
`
`US 2007/0245028A1
`
`
`
`6
`
`
`
`Patent Application Publication Oct. 18, 2007 Sheet 6 of 13
`
`US 2007/0245028A1
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`7
`
`
`
`Patent Application Publication Oct. 18, 2007 Sheet 7 of 13
`
`US 2007/0245028A1
`
`
`
`
`
`b
`
`
`
`
`
`
`
`
`
`8
`
`
`
`Patent Application Publication Oct. 18, 2007 Sheet 8 of 13
`
`US 2007/0245028A1
`
`
`
`
`
`Z 9?npOWN Uue ?ãoJ?
`
`
`
`u 9?npo W Uue ?ãoJ?
`
`8 "OIH
`
`
`
`
`
`I 9InpOWN Uue ?ãoIA
`
`
`
`
`
`008uo?eo?IddV quòIIO
`
`
`
`
`
`9
`
`
`
`Patent Application Publication Oct. 18, 2007 Sheet 9 of 13
`
`US 2007/0245028 A1
`
`coo
`
`:oG8:88:
`
`:2282888::
`
`:oG8:88:
`
`N25:82888::
`
`:0=N8:88:
`
`:2:828:8on
`
`:oN8:88:
`
`:o:8:88:
`
`:2:82888::
`=2:82888::
`
`a6::
`
`:o:8:88:
`
`:oN8:88:
`
`:2382888::
`:23:82888::
`
`
`
`8:282888:::o@821:
`
`:oN8:88:
`
`:o:8:88:
`
`N2382888::
`N2:82888::
`
`10
`
`10
`
`
`
`Patent Application Publication Oct. 18, 2007 Sheet 10 of 13
`
`US 2007/0245028A1
`
`s
`
`s
`
`s
`
`11
`
`
`
`Patent Application Publication Oct. 18, 2007 Sheet 11 of 13
`
`US 2007/0245028A1
`
`
`
`H
`
`|-
`
`st
`
`e
`
`e
`
`st
`
`C
`v
`
`- Cn
`word
`
`of
`vid
`
`st
`
`c
`
`
`
`
`
`
`
`
`
`
`
`12
`
`
`
`US 2007/0245028A1
`
`00ZI
`
`ZI "OIH
`
`
`
`Patent Application Publication Oct. 18, 2007 Sheet 12 of 13
`
`/ \4-
`
`€0ZI?0?I IOZI
`
`???!!!!!!!!!!!!????||?||?||),
`|||||||||500||HLOBO?EEEEE|0=1
`0||0||0|||||||||||||||||||0||0||0||0||0||||||||||||||0||0
`||||||||||9|9|9|9|9|9|9||||||||||||}}}
`
`13
`
`
`
`Patent Application Publication Oct. 18, 2007 Sheet 13 of 13
`
`US 2007/0245028A1
`
`
`
`
`
`
`
`cy
`
`gf
`
`cy
`v
`
`14
`
`
`
`US 2007/0245028A1
`
`Oct. 18, 2007
`
`CONFIGURING CONTENT IN AN INTERACTIVE
`MEDIA SYSTEM
`
`CROSS-REFERENCE TO RELATED
`APPLICATIONS
`0001. This application is a continuation-in-part applica
`tion of and claims priority to U.S. application Ser. No.
`11/394,671, filed on Mar. 31, 2006, incorporated herein by
`reference.
`
`TECHNICAL FIELD
`0002 The invention relates to configuring content in an
`interactive media system.
`
`BACKGROUND
`0003 Communication systems for delivering content
`(e.g., multimedia content) from a server to a client include
`software that runs on the server and software that runs on a
`client device. Software modules on the client and server
`implement a communication protocol used over a network
`connection between the server and client. Classes of soft
`ware applications that run on the client device include media
`browser applications and media player applications, for
`example. Media browser applications permit a user to search
`a catalog of content (e.g., audio or video content) on the
`server, select content of interest, and invoke a media player
`application to present the selected content to the user using
`the device display screen and/or speaker or headphones.
`0004 Some media browser applications for wireless
`mobile devices use the Wireless Access Protocol (WAP).
`Such browsers are called WAP browsers. Other mobile
`applications include Macromedia's Flash for mobile phones
`(Flash Lite), Synchronous Multimedia Integration Language
`(SMIL) players, and special purpose media search and
`playback applications.
`0005. In some approaches to delivering multimedia con
`tent data to a mobile device, the size of downloaded files, or
`the length of a data stream, is reduced by compressing the
`content data (or an approximate representation of the content
`data) using an encoder. The data is decompressed using a
`decoder that resides on the mobile device, for example,
`either as an installed software application or embedded in an
`integrated circuit on the mobile device.
`
`SUMMARY
`In one aspect, in general, the invention features a
`0006.
`method for configuring content to be provided to a client.
`The method comprises receiving information specifying
`characteristics of the client; modifying reference content that
`represents content to be provided to the client according to
`multiple modification processes to generate multiple ver
`sions of the reference content, each modification process
`applying different modifications related to the characteristics
`of the client; for each version, determining respective values
`associated with multiple attributes of the version; for each of
`the values for the different versions that are associated with
`the same attribute, normalizing the value to be comparable
`with values associated with the other attributes; for each
`version, generating a combination of the normalized values
`associated with the multiple attributes of the version; and
`selecting one of the modification processes based on a value
`of the combination of the normalized values.
`
`0007. In another aspect, in general, the invention features
`Software stored on a computer-readable medium, for con
`figuring content to be provided to a client. The software
`includes instructions for causing a computer system to:
`receive information specifying characteristics of the client;
`modify reference content that represents content to be pro
`vided to the client according to multiple modification pro
`cesses to generate multiple versions of the reference content,
`each modification process applying different modifications
`related to the characteristics of the client; for each version,
`determine respective values associated with multiple
`attributes of the version; for each of the values for the
`different versions that are associated with the same attribute,
`normalize the value to be comparable with values associated
`with the other attributes; for each version, generate a com
`bination of the normalized values associated with the mul
`tiple attributes of the version; and select one of the modi
`fication processes based on a value of the combination of the
`normalized values.
`0008 Aspects of the invention may include one or more
`of the following features.
`0009. The combination of the normalized values com
`prises a linear combination.
`0010. The linear combination comprises a weighted sum
`in which each normalized value is multiplied by a weight
`coefficient between Zero and 1.
`0011 Normalizing the value to be comparable with val
`ues associated with the other attributes comprises normal
`izing the value according to a range of the values for the
`attribute so that normalized values for each attribute are in
`the same range.
`0012. The method further comprises receiving the con
`tent to be provided to the client, and modifying the content
`according to the selected modification process.
`0013 The content comprises an audio signal.
`0014. The audio signal is selected from the group con
`sisting of music, speech, a ringtone, and Sound effects.
`0015. At least one of the modification processes com
`prises normalizing a volume of the audio signal based on an
`audio output characteristic of the client.
`0016. At least one of the modification processes com
`prises compounding the audio signal.
`0017. At least one of the modification processes com
`prises filtering the audio signal based on a frequency
`response characteristic associated with the client.
`0018. The frequency response characteristic comprises a
`frequency response characteristic of a speaker integral with
`the client.
`0019. The frequency response characteristic comprises a
`frequency response characteristic of headphones usable with
`the client.
`0020. The content comprises a video signal.
`0021. At least one of the modification processes com
`prises modifying a visual characteristic of the video signal
`based on a video output characteristic of the client.
`0022. The video output characteristic comprises a char
`acteristic of a display Screen associated with the client.
`
`15
`
`
`
`US 2007/0245028A1
`
`Oct. 18, 2007
`
`0023 Modifying the visual characteristic comprises
`modifying a luminance characteristic.
`0024 Modifying a luminance characteristic comprises
`performing luminance contrast enhancement.
`0.025 Modifying the visual characteristic comprises
`modifying a color characteristic.
`0026 Modifying a color characteristic comprises per
`forming opponent color contrast enhancement.
`0027. At least one of the modification processes com
`prises modifying a frame rate of the video signal.
`0028. At least one of the multiple attributes comprises a
`Subjective quality rating.
`0029. The subjective quality rating comprises a rating
`provided by at least one subject to which at least two of the
`reference content, a first modified version of the reference
`content, and a second modified version of the reference
`content has been presented.
`0030. At least one of the multiple attributes comprises an
`objective quality measure.
`0031. The objective quality measure comprises a signal
`to-noise ratio.
`0032. Aspects of the invention may include one or more
`of the following advantages.
`0033. The content delivery system can be configured to
`take into account performance constraints when delivering
`and presenting multimedia content to mobile devices. For
`example, a mobile device may have memory and computa
`tional constraints, and/or may be connected to a bandwidth
`constrained wireless network.
`0034) Techniques for configuring server and/or mobile
`client operating characteristics such as communication pro
`tocol requests, operating modes of program modules, or
`content increase responsiveness of the system to the user.
`0035. The techniques enable methods of developing mul
`timedia search, browse, and playback applications opti
`mized for specific devices or classes of devices and for
`bandwidth-constrained networks, and optimized presenta
`tion of multimedia data on portable devices.
`0036) The techniques provide a procedure for focusing
`development efforts on improving those operating charac
`teristics that would otherwise contribute most to decreasing
`the responsiveness to the user or decreasing the quality of
`the rendered content.
`0037 Other features and advantages of the invention will
`become apparent from the following description, and from
`the claims.
`
`DESCRIPTION OF DRAWINGS
`0038 FIG. 1 is a block diagram of a content delivery
`system.
`0.039
`system.
`0040 FIG. 3 is a block diagram of a server application.
`0041
`FIG. 4 is state transition diagram for a media
`application.
`
`FIG. 2 is a block diagram of a configuration
`
`FIG. 5 is Request Attribute Table.
`0.042
`0043 FIG. 6 is a flowchart for an optimization procedure.
`0044 FIG. 7 is a table of sorted requests.
`0045 FIG. 8 is a block diagram of a client application.
`0046 FIG. 9 is a block diagram of a library of program
`modules.
`0047 FIG. 10 is a graphical representation of rows in an
`activity matrix.
`0048 FIG. 11 is a table of user input categories.
`0049 FIG. 12 is an activity matrix.
`0050 FIG. 13 is a block diagram of a wireless commu
`nication system.
`
`DETAILED DESCRIPTION
`
`Overview
`0051. The number of mobile devices is increasing at a
`rapid rate. Mobile devices that are wirelessly connected to a
`network provide access to a large variety of data sources.
`Some mobile devices can access the internet just as easily as
`a desktop or laptop computer. However, most mobile
`devices are not as computationally powerful as a desktop or
`laptop computer. Some characteristics of a content delivery
`system, including software for a server and mobile client
`device, can be configured to take into account the lower
`computational power (e.g., processing speed), the Smaller
`display screen size, and the Smaller speaker size of mobile
`devices. A configuration system can perform various proce
`dures (e.g., optimization procedures) to prepare the server
`and/or client device to provide a rich and responsive user
`experience.
`0.052
`Referring to FIG. 1, a content delivery system 100
`includes a server 102 that communicates with a client 104
`(e.g., a mobile device) connected over a network 106. The
`content delivery system 100 can include interactive media
`capabilities including discovery, delivery, and/or playback
`of content, and can facilitate various interactions and trans
`fer of information between the server 102 and the client 104
`(or user of the client 104). The client 104 can be a portable
`device such as a mobile phone, a Personal Digital Assistant
`(PDA), or a smart phone, for example. The server 102
`includes a server application 110 that includes one or more
`computer program modules that run within the operating
`system (OS) 112 on the server. The program modules can
`include modules that implement communication protocols,
`modules that search for and provide access to content (e.g.,
`from a content catalog), and modules that configure content
`before it is provided to a client, for example. The server
`application 110 has access to volatile memory 114 (e.g.,
`random access memory or RAM) and persistent storage 116
`(e.g., hard disk storage).
`0053) The client 104 includes a client application 120 that
`includes one or more computer program modules that run
`within the OS 122 on the client 104 (e.g., Java (J2ME),
`BREW, Symbian, or Windows Mobile). The program mod
`ules can include modules that implement communication
`protocols, and modules for browsing and playing content,
`for example. The client application 120 has access to volatile
`memory 124, persistent storage 126, a display Screen 128,
`
`16
`
`
`
`US 2007/0245028A1
`
`Oct. 18, 2007
`
`and an audio output 130 (e.g., a speaker) on the device. The
`client 104 can also include any of a variety of types of user
`interfaces for receiving input from a user (e.g., keypad,
`pressure-sensitive screen, and/or microphone), depending
`on the type of device.
`0054 Data is transferred between the server 102 and the
`client 104 using a communication protocol for handing
`request and delivery of content objects (or “content object
`protocol). The client 104 sends a content object request to
`the server 102, and in response the server sends content
`object data to the client. Content object requests can include
`arguments passed to the server 102 that specify the content
`to be included in the content object data (e.g., a song request
`can include an argument that specifies the title of the Song
`requested). The server application 110 and client application
`120 include program modules to configure messages and
`data to be transferred according to the content object pro
`tocol.
`Applications for the client 104 can be characterized
`0.055
`by various performance characteristics. Such as program
`size, the amount of memory used to run the program, and the
`time that elapses in responding to various user inputs. The
`time to respond to user input can be characterized according
`to computational delays and delays in accessing data stored
`on the device (e.g., in Volatile memory or persistent storage)
`or downloaded or streamed via a network connection (e.g.,
`to a local area network, a wide area network, or the internet).
`The fastest response times involve, for example, low com
`putational delays and access to data in local memory. The
`slowest response times involve, for example, high compu
`tational delays (e.g., decrypting and decompressing a video
`file), or access to data on the internet with a low-bandwidth
`connection, or both.
`0056 Referring to FIG. 2, a configuration system 200
`includes a configuration module 202 (e.g., a software pro
`gram running in a computing environment) that generates
`configured program modules 206 for the server application
`110 and/or the client application 120 based on estimated
`attributes of a communication system. The configuration
`system 200 enables the interactive media discovery, deliv
`ery, and playback aspects of the content delivery system 100,
`for example, to be configured to improve performance and
`responsiveness to a user by configuring different potentially
`inter-related aspects of the system. The server 102 can also
`configure content before it is provided to the client 104, such
`that the content is optimized for a given target device or class
`of devices, or such that the content has properties that enable
`the content delivery system 100 to deliver the content with
`increased responsiveness to the user.
`0057. An estimation module 204 receives usage data 210
`representing resources used during operation of the com
`munication system and estimates the attributes to be used for
`configuring the program modules 206. The usage data 210
`may correspond to historical and/or statistical data compiled
`by the communication system (e.g., from logs of the com
`munication system), or may correspond to predictions of
`expected resources that would be used by a system running
`the communication protocol in response to different possible
`communication protocol requests.
`0.058. The estimated attributes can include attributes of
`client or server software and/or hardware or attributes of a
`network over which the client and server are to be con
`
`nected. For example, the attributes can include computa
`tional delays, transfer delays, or memory usage for different
`types of requests, or for different possible instantiations of
`program modules. The configuration module 202 determines
`budgets for the attributes based on system information 208
`characterizing the capabilities of the server 102, client 104,
`and network 106, which can include information from a user
`about what the budgets should be.
`0059. In some implementations, the configuration mod
`ule 202 configures existing program modules, and in other
`implementations, the configuration module 202 generates
`new configured program modules. An optional loader 212
`loads the configured program modules 206 into a server 102
`or a client 104. The configuration system 200 can store
`program modules, for example, as individual source or
`executable files or compiled into server applications or client
`applications, to be loaded into a server 102 or client 104
`locally, or to be downloaded remotely. In some cases, a
`client application module is dynamically downloaded to a
`client device according to characteristics of the device or the
`network over which the client device is connected to the
`Server 102.
`0060. In an example of an interaction between a client
`104 and server 102 in a configured system, the client device
`runs an application program that includes a program module
`for playing video content. The application may include other
`program modules for activities such as browsing available
`content or purchasing content, for example. The application
`transitions among multiple program states related to pre
`senting various screens and performing other interactions
`with a user.
`0061 The system can be configured to select different
`possible implementations of the client 104, the server 102.
`and the communication protocol. The selections can be
`made to improve the experience of a user of a given device
`in a given network environment. The system can be con
`figured so that the user experiences reduced delay (or
`increased responsiveness) after interacting with the device to
`transition among the states.
`0062 For example, one group of states may correspond
`to a hierarchy of Screens of a browser program module
`presented to a user for selecting a music video to be played
`on the device. A user may select an option to receive a list
`of popular music videos. Before selecting a particular music
`video, the user may play a clip to preview several of the
`music videos. When the user selects a music video, the
`content is streamed or downloaded to the client device for
`presentation to the user.
`0063. One way to configure the system includes grouping
`potential requests that can be made from the client to the
`server to anticipate choices of a user. In some implementa
`tions, a client application makes a request to the server 102
`after each transition from one state to another. If the user
`selects an option to browse music videos that are available,
`the protocol may be configured to send a request for both a
`list of genres corresponding to the next application state and
`a list of popular videos corresponding to a Subsequent
`application state that the user may potentially trigger. In the
`case that the user does not ask for the list of popular videos,
`since the amount of data involved is Small, not much
`additional delay has been experienced by transferring the
`list. In the case that the user does ask for the list of popular
`
`17
`
`
`
`US 2007/0245028A1
`
`Oct. 18, 2007
`
`Videos, the responsiveness has been increased since the list
`does not need to be downloaded from the server 102 after the
`user asks for the list.
`0064. Another way to configure the system includes
`selecting content pre-processing and instantiations of pro
`gram modules well-suited to the device and/or network
`capabilities. For example, if the client device is a wireless
`device roaming in an area without a high-bandwidth digital
`connection and the device has sufficient computational capa
`bilities, the loader 212 may select highly a highly com
`pressed version of a music video and may dynamically
`transfer an application module configured for playing highly
`compressed content. There may also be different versions of
`a music video for different devices, for example, to com
`pensate for different display screen characteristics (e.g.,
`differences in contrast or color reproduction). A particular
`client device can be pre-loaded with a particular program
`module instantiation based on capabilities of the device and
`an anticipated network environment. A combination of fac
`tors can be used to configure the system in various situa
`tions. In the description that follows, examples of config
`uring a content object protocol, client applications, content,
`and any combination of system aspects, is described in more
`detail.
`The Content Object Protocol
`0065. The client application 120 communicates with the
`server application 110, for example, to present audio and
`video content to the user or in order to present a list of
`content that is available for presentation to the user. The user
`can search, browse, or playback multimedia content on the
`client 104 within an appropriate program module of the
`application 120. The content object protocol affects the
`responsiveness of the client application, for example, when
`ever the client needs to retrieve data from the server. The
`program modules on the server 102 and client 104 that
`communicate according to the content object protocol are
`configured to reduce communication delays and increase
`responsiveness. The content object protocol includes mul
`tiple layers of protocols, including network compatible,
`server compatible, and client compatible protocols. The
`network compatible protocols are typically specified by the
`network, but other portions of the content object protocol are
`configured to be compact and parsimonious such that client
`server communication bandwidth and delays are reduced.
`0.066
`Referring to FIG. 3, program modules of the server
`application 110 include a request module 300 that receives
`content object requests from the client 104, and a content
`object module 302 that sends an assembled content object to
`the client 104. The client request module 300 processes the
`content object requests received from the client 104 and
`sends instructions to the content object module 302 for
`assembling a content object with the desired content.
`0067. The content object module 302 retrieves interface
`data 304 including, for example, data related to rendering
`screens presented to the user, and content data 306 includ
`ing, for example, text data files, audio data files, image data
`files, and video data files. The data related to rendering
`screens presented to the user may include text data, audio
`data, image data, video data, and instructions and parameters
`for rendering the screen content. The assembled content
`object can include either or both the interface data 304 and
`the content data 306, depending on the request and the
`
`available content. In response to a single request, the content
`object module 302 may assemble a content object that
`includes several different types of content. The content
`object module 302 sends the assembled content object to the
`client 104.
`0068 There are various types of delays that can be
`associated with various aspects of delivering and presenting
`content to a user of the client 104.
`0069. There is a delay associated with establishing a
`connection between the server 102 and client 104 over the
`network 106. For example, it can take several seconds or
`more to establish a HyperText Transfer Protocol (HTTP)
`connection over a wide area network. In some implemen
`tations, the content object protocol is configured to reduce
`the number of new connections established between the
`client and the server so that the connection delays are
`reduced.
`0070 There is also a delay associated with a request to
`the server 102 from the client 104. The length of delay
`depends on what the server 102 needs to do in response to
`the request. Also, there can be a delay associated with a
`request to the client 104 from the server 102. Such delays are
`referred as request processing delays.
`0071. There are also communication delays associated
`with transferring data. Once a connection is established and
`a request is processed by the server 102, data are transferred
`between the server 102 and the client 104 at a rate that is
`determined by the network bandwidth. For example, if the
`network bandwidth is 10,000 bytes per second then it will
`take 10 seconds to transfer 100,000 bytes between the client
`and the server. However, if the 100,000 bytes could be
`compressed to 10,000 bytes, then it would only take 1
`second for the transfer. In some implementations, the con
`tent object protocol is configured to reduce the number of
`bytes that need to be transferred between the client 104 and
`the server 102.
`Configuring the Content Object Protocol
`0072 The configuration system 200 can generate a con
`figured client request module 300 for the server 102, and
`corresponding program module for the client 104, to imple
`ment a content object protocol that reduces delays to provide
`increased responsiveness to a user. The configuration mod
`ule 202 is able trade off different attributes that affect delay
`times to reduce delays associated with various requests. In
`Some cases, the configuration module 202 optimizes pro
`gram module characteristics based on a metric that repre
`sents weighted contributions from multiple attributes.
`0073. The configuration module 202 can incorporate a
`tradeoff between reducing the number of new connections,
`reducing the number of requests, reducing the number of
`bytes transferred per connection, and reducing the number of
`bytes transferred per request. For example, one approach to
`reducing the number of new connections is to use a single
`connection, keep that connection open until the application
`terminates, and make multiple requests through that single
`open connection. While maintaining an open connection and
`making multiple requests through a single connection is
`feasible in Some situations, a large number of users would
`lead to a large number of open connections and could
`potentially overburden the server 102. Another approach to
`reducing the number of new connections is to use a single
`
`18
`
`
`
`US 2007/0245028A1
`
`Oct. 18, 2007
`
`connection to transfer all possible data needed by the
`application in a single download. This option is viable if (1)
`the connection has a very large bandwidth, (2) the applica
`tion requires the transfer of a very Small amount of data, or
`(3) the application can parse and use the data before the
`download completes.
`0074. One approach to reducing the number of bytes
`transferred per connection is to simply limit the number of
`bytes transferred to a single byte or to a small number of
`bytes. In this case, the number of new connections will be so
`large that the user could spend a significant amount of time
`waiting for connections to be established. Another approach
`is to use a single connection and to reduce the number of
`bytes transferred per request by limiting the number of bytes
`transferred per request to a single byte or to a small number
`of bytes, and maintaining an open connection while making
`multiple requests.
`0075. In some implementations, the configuration mod
`ule 202 generates program modules configured to perform
`an optimized content object protocol that balances the
`tradeoff between reducing the number of new connections,
`reducing the number of requests, reducing the number of
`bytes transferred per connection, and reducing the number of
`bytes transferred per request given the constraints of the
`network, the server, and the client. In some implementations,
`only one request per connection is permitted. In this case, the
`tradeoff can be made by a joint minimization of the number
`of new requests and the number of bytes transferred per
`request. Other implementations based on aforementioned
`approaches are possible.
`0076.
`In some implementations, the configuration mod
`ule 202 determines how to optimize the content object
`protocol based on relationships between requests and pro
`gram states of the client application 120. As the client
`application 120 executes on a client device, the application
`120 transitions among various program States. Each program
`state may present a corresponding screen state on the device
`from which the program state can interact with a user.
`0.077
`For example, referring to FIG. 4, a media applica
`tion 400 running on a client device, such as a Smartphone,
`presents various screen states to a user including a home
`state 402, media browser states 404A-404C, media player
`states 406A-406C, and user preferences states 408A-408D.
`From a given state, the user can provide user input (e.g., a
`button press, a screen tap or drag, a voice command, etc.) to
`select among various options presented to the user in the
`screen state (or otherwise associated with the screen state).
`Other examples of media applications can include any of a
`variety of other interactive functions, such as a media
`capture function for uploading recorded content from the
`client 104 to the server 102, for example.
`0078. In some cases, the user input triggers a transition to
`a different screen state. For example, from the home state
`402, the user is able to provide input to trans