throbber
(19) United States
`(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
`
`

`

`so[npoyyWeiso1gJoAreIqry
`
`[dINpoywweisolg
`[|INpopyweiso1g
`|FNpopyWeisolg
`
`Jo“790ue}sSU]
`
`joZ90uR}sU]
`
`JO[90uR\SUT
`
`UudNpop|WieIsOlg
`
`usINpopWieIso1g
`us[NpOo|,Wesso1g
`
`6‘DIA
`
`Patent Application Publication Oct. 18,2007 Sheet 9 of 13
`
`US 2007/0245028 Al
`
`006
`
`jo‘7s0ue\suy]
`
`jo790UkSU]
`
`JO|90UR\sUT
`
`Jo°790ue\suy
`
`JOZ90UPe\sU]
`
`JO|90uR\suy
`
`Za[Npoyweis0lg
`ZINpoypyWieiso1g
`ZINpoyWieisolg
`
`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

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