throbber
(12)
`
`United States Patent
`Willard
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 7,065,752 B2
`Jun. 20, 2006
`
`US007065752B2
`
`(54) METHOD AND APPARATUS COMPILATION
`OF AN INTERPRETATIVE LANGUAGE FOR
`INTERACTIVE TELEVISION
`
`75
`(75) Inventor: Pierre Willard, Palo Alto, CA (US)
`
`(65)
`
`(73) Assignee: OpenTV, Inc., San Francisco, CA (US)
`(*) Notice:
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 706 days.
`(21) Appl. No.: 10/061,902
`(22) Filed:
`Feb. 1, 2002
`9
`Prior Publication Data
`US 2002/012094.0 A1
`Aug. 29, 2002
`O
`O
`Related U.S. Application Dat
`pplication Uata
`e
`(60) Provisional application No. 60/328.963, filed on Oct.
`12, 2001, provisional application No. 60/279.543,
`filed on Mar. 28, 2001, provisional application No.
`60/269,261, filed on Feb. 15, 2001, provisional appli-
`cation No. 60/267,876, filed on Feb. 9, 2001, provi-
`sional application No s 60/266.210 filed on Feb 2
`2001, provisional application No. 60/265,986, filed
`On Feb. 2, 2001.
`s
`
`(2006.01)
`
`(51) Int. Cl.
`G06F 9/45
`717/140
`(52) U.S. Cl
`58 Fi id f Cl- - - - - - ficati - - - - - -s - - - - - - - h- - - - - - - - - - - - - - - - - - - 717/140
`(58)
`O
`t g cars te search hi t
`ee appl1cauon Ille Ior complete searcn n1story.
`(56)
`References Cited
`
`U.S. PATENT DOCUMENTS
`5,286,088 A * 2/1994 Taylor et al. ............... 297/.353
`5.432,937 A
`7, 1995 Tevanian et al. ............ 717/162
`
`4002
`
`4004
`
`4006
`
`5,892,941. A * 4/1999 Khan et al. ................... 703/22
`5,963,934. A * 10/1999 Cochrane et al. .............. 707/2
`6,141,793 A 10/2000 Bryant et al. .....
`... T17,115
`6,188.401 B1
`2/2001 Peyer ........
`... T79,328
`6,327,608 B1* 12/2001 Dillingham ...
`... TO9,203
`6.405,367 B1
`6/2002 Bryant et al. .....
`... T17,115
`6,732,330 B1* 5/2004 Claussen et al. ..
`... 715,513
`2001/004.7394 A1* 11/2001 Kloba et al. ................ 709/217
`FOREIGN PATENT DOCUMENTS
`woofi
`28
`OTHER PUBLICATIONS
`International Search Report: PCT/US 02/02663; Mailed Apr.
`22, 2003.
`* cited by examiner
`Primary Examiner John Chavis
`74) Attorney, Agent, or Firm Meyertons Hood Kivlin
`(
`y, Agent,
`y
`Kowert & Goetzel, P.C.; Rory D. Rankin
`
`wo
`
`(57)
`
`ABSTRACT
`
`-
`A method and apparatus for extracting and compiling an
`interpretative language to implement functions such as those
`written as a script embedded in a HTML page in an
`interactive television environment. HTML pages are
`received from both broadcast and online. The compiler runs
`on a server. The compiled Scripts run faster and require less
`processing power to execute. The scripts are extracted from
`HTML representing content stored at the server. The com
`piled script code is then transmitted from the server to a
`client device, through broadcast or online, for execution
`during content display at the client device. The compiled
`Scripts run faster, require less processing power to execute,
`and run on client devices that do not have the interpreter for
`that language.
`
`53 Claims, 11 Drawing Sheets
`
`4008
`
`4010
`
`JS Compiler
`Front End
`(parser,
`binder, etc)
`
`
`
`JS Compiler
`Back End
`(ocode
`generation)
`
`
`
`L Ocode Binary
`Assembler
`
`Code Module
`Generator
`
`
`
`
`
`
`
`JS2O Page
`Elements
`Compiler
`
`JS2O Compiler
`
`4000
`
`4012
`
`Roku EX1023
`U.S. Patent No. 10,334,311
`
`

`

`U.S. Patent
`
`Jun. 20, 2006
`
`Sheet 1 of 11
`
`US 7,065,752 B2
`
`50
`
`
`
`206
`
`transactional Control/Business functions
`
`
`
`
`
`202 -1-
`
`Communication
`link
`
`200
`
`214
`
`Figure 1
`
`

`

`U.S. Patent
`
`Jun. 20, 2006
`
`Sheet 2 of 11
`
`US 7,065,752 B2
`
`216
`
`218
`
`220
`
`222
`
`
`
`
`
`50
`
`S-2
`See
`Rules
`
`Business Functions
`
`
`
`Point-to-Point
`Transport Convers
`Transport & Communia? N
`
`22
`
`
`
`214
`
`207
`
`2O
`232
`
`Figure 2
`
`

`

`U.S. Patent
`
`Jun. 20, 2006
`
`Sheet 3 of 11
`
`US 7,065,752 B2
`
`50
`N
`
`216
`
`218
`
`220
`
`222
`
`
`
`
`
`206
`
`202
`
`Communication
`link
`
`204
`
`Advertising
`Manager
`
`Point-to-Point r
`
`Transport & Communication
`
`214
`
`232
`
`210
`
`Figure 3
`
`

`

`U.S. Patent
`
`Jun. 20, 2006
`
`Sheet 4 of 11
`
`US 7,065,752 B2
`
`50
`
`267
`
`248
`
`251
`
`254
`
`253
`
`256
`
`241
`
`261
`
`terrestina
`
`O. Cable
`
`(T Messagings Manager ki
`272
`
`
`
`33
`
`266
`
`245
`
`Figure 4
`
`

`

`U.S. Patent
`
`Jun. 20, 2006
`
`Sheet 5 of 11
`
`US 7,065,752 B2
`
`2000
`2002
`200 2026
`
`H2Otiscoder
`Dataand processing flowdiagram
`
`arehon
`
`V \|
`
`HOTiaisode,
`
`2010
`2006
`2012
`2008
`
`2004
`
`2003
`
`2024
`
`| |
`
`| |
`
`|
`
`2070-4
`classes
`2068 4Ge, SHander
`2O66
`Stated -
`2072-SF,
`2064
`posa-5,
`
`EM
`
`HMA
`
`
`
`text
`
`-
`
`Sblocks
`f
`----e. (E
`
`Documet
`Tanscodes
`
`014
`
`H
`
`Resource.cf. 1.
`
`30
`
`2018
`
`3. 2030
`833
`2028
`
`2016
`
`2388
`040
`
`O42
`
`2044
`
`se
`
`(i.e.
`
`tree
`
`Figure 5
`
`

`

`U.S. Patent
`
`Jun. 20, 2006
`
`Sheet 6 of 11
`
`US 7,065,752 B2
`
`
`
`
`
`
`
`9 eun61-I
`
`0242
`
`1791,2
`
`

`

`U.S. Patent
`
`Jun. 20, 2006
`
`Sheet 7 of 11
`
`US 7,065,752 B2
`
`
`
`JS Source
`
`Figure 7
`
`

`

`U.S. Patent
`
`Jun. 20, 2006
`
`Sheet 8 of 11
`
`US 7,065,752 B2
`
`4002
`
`4004
`
`4006
`
`4008
`
`4010
`
`
`
`
`
`JS Compiler
`Front End
`(parser,
`binder, etc)
`
`
`
`
`
`s
`Compiler
`p
`
`S2O
`Cache
`
`
`
`
`
`JS2O Compiler
`
`JS Compiler c Ocode Binary
`Assembler
`Back End
`(oCode
`generation)
`
`Code Module
`Generator
`
`
`
`4000
`
`4012
`
`Figure 8
`
`

`

`U.S. Patent
`
`Jun. 20, 2006
`
`Sheet 9 of 11
`
`US 7,065,752 B2
`
`4102
`
`4010
`
`4112
`
`Class Modules
`--> JS2O
`(otv
`Command SE
`JS Source file
`line
`Compiler
`( js) A) interface
`
`
`
`
`
`
`
`JS Compiler
`Front End
`(parser,
`binder, etc)
`
`JS Compiler
`Back End
`(ocode
`generation)
`
`deasm file
`(.asm)
`
`
`
`JS2O Command Line Compiler
`
`4114
`
`16
`
`Figure 9
`
`

`

`U.S. Patent
`
`Jun. 20, 2006
`
`Sheet 10 of 11
`
`US 7,065,752 B2
`
`Predefined
`Class module
`
`4206
`
`
`
`
`
`External
`Class module
`
`
`
`JS External
`Code module
`
`4210
`
`4208
`
`Figure 10
`
`

`

`U.S. Patent
`
`Jun. 20, 2006
`
`Sheet 11 of 11
`
`US 7,065,752 B2
`
`4300
`
`DS-D-Tlobal war
`Global War 2
`
`global war X
`static obj
`
`.
`
`predefined ob 1
`redefined ob2
`. .
`external mod 1 war 1
`external mod 1 wa? 2
`.
`.
`.
`external mod 2 war 1
`external mod 2 war 2
`
`
`
`
`
`
`
`size
`
`call to JS2O C lib
`
`last JS2O SP
`temp values
`-
`
`as S2O FP
`
`this
`arg O
`arg 1
`---
`arg M
`
`:
`
`local war 1
`previous FP
`previous PC
`this
`number of args
`arg O
`arc. 1
`
`temp values
`
`4302
`
`first JS2O FP
`
`local war N
`-
`oca waf
`ocal war O
`
`previous PC
`
`Figure 11
`
`Figure 12
`
`

`

`US 7,065,752 B2
`
`1.
`METHOD AND APPARATUS COMPLATION
`OF AN INTERPRETATIVE LANGUAGE FOR
`INTERACTIVE TELEVISION
`
`CROSS REFERENCED TO RELATED
`APPLICATIONS
`
`10
`
`15
`
`This application claims priority from the USPTO provi
`sional patent application entitled: “A Method and Apparatus
`Compilation of an Interpretative Language for Interactive
`Television filed on Oct. 12, 2001, Ser. No. 60/328,963
`which is hereby incorporated by reference; USPTO provi
`sional patent application entitled “A System for Adaptive
`Control of Access, Content and Scheduling For Interactive
`Television filed on Feb. 2, 2001, Ser. No. 60/265,986 which
`is hereby incorporated herein by reference; USPTO provi
`sional patent application entitled “A System for Adaptive
`Control of Access, Content and Scheduling For Interactive
`Television filed on Feb. 2, 2001, Ser. No. 60/266,210 which
`is hereby incorporated herein by reference; USPTO provi
`sional patent application entitled “A System for Adaptive
`Control of Access, Content and Scheduling For Interactive
`Television filed on Feb. 9, 2001, Ser. No. 60/267,876 which
`is hereby incorporated herein by reference; and USPTO
`provisional patent application entitled “A System for Adap
`25
`tive Control of Access, Content and Scheduling For Inter
`active Television filed on Feb. 15, 2001, Ser. No. 60/269,
`261 which is hereby incorporated herein by reference:
`USPTO provisional patent application entitled “A System
`for Adaptive Control of Access, Content and Scheduling For
`Interactive Television' filed on Mar. 28, 2001, Ser. No.
`60/279.543 which is hereby incorporated herein by refer
`CCC.
`
`30
`
`COPYRIGHT NOTICE
`
`A portion of the disclosure of this patent document
`contains material (code listings and message listings) to
`which the claim of copyright protection is made. The
`copyright owner has no objection to the facsimile reproduc
`tion by any person of the patent document or the patent
`disclosure, as it appears in the U.S. Patent and Trademark
`Office file or records, but reserves all other rights whatso
`ever. Copyright 2001 OpenTV. Inc.
`
`BACKGROUND OF THE INVENTION
`
`35
`
`40
`
`45
`
`1. Field of the Invention
`The present invention relates to the field of interactive
`television content display and specifically to the extraction
`of an interpretative language, e.g., JavaScripts from text
`mark up language, e.g., HTML pages and the compilation of
`the JavaScript at a server for downloading and to a client
`device for execution on display of content provided by a
`broadcast, the Internet or cache in an interactive television
`display space.
`2. Summary of the Related Art
`Interactive television systems can be used to provide a
`wide variety of services to viewers. Interactive television
`systems are capable of delivering typical video program
`streams, interactive television applications, text and graphic
`images, web pages and other types of information. Interac
`tive television systems are also capable of registering viewer
`actions or responses and can be used for Such purposes as
`marketing, entertainment and education. Users or viewers
`may interact with the systems by ordering advertised prod
`ucts or services, competing against contestants in a game
`
`50
`
`55
`
`60
`
`65
`
`2
`show, requesting specialized information regarding particu
`lar programs, or navigating through pages of information.
`Typically, a broadcast service provider or network opera
`tor generates an interactive television signal for transmission
`to a viewer's television. The interactive television signal
`may include an interactive portion consisting of application
`code or control information, as well as an audio/video
`portion consisting of a television program or other informa
`tional displays. The broadcast service provider combines the
`audio/video and interactive portions into a single signal for
`transmission to a receiver connected to the user's television.
`The signal is generally compressed prior to transmission and
`transmitted through typical broadcast channels, such as
`cable television (CATV) lines or direct satellite transmission
`systems.
`Typically, a set-top box connected to the television con
`trols the interactive functionality of the television. The
`set-top box receives a broadcast signal transmitted by the
`broadcast service provider, separates the interactive portion
`from the audio-video portion and decompresses the respec
`tive portions of the signal. The set-top box uses the inter
`active information, for example, to execute an application
`while the audio/video information is transmitted to the
`television. The set-top box may combine the audio/video
`information with interactive graphics or audio generated by
`the interactive application prior to transmitting the informa
`tion to the television. The interactive graphics and audio
`may present additional information to the viewer or may
`prompt the viewer for input. The set-top box may provide
`viewer input or other information to the broadcast service
`provider via a modem connection or cable.
`In accordance with their aggregate nature, interactive
`television systems provide content in various different com
`munication protocols that preferably can be understood by
`the client or viewer who receives the information from the
`broadcast service provider/network operator. Typically the
`client is a set top box with a processor possessing limited
`processing power and communication bandwidth. Transla
`tion of the various protocols is beyond the limited process
`ing capability available in the typical set top box processor.
`Moreover, there exist multiple sources using a multitude of
`web authoring tools to create content. These sources tend to
`utilize the hypertext mark up language (HTML) as a stan
`dard with embedded JavaScript in the HTML pages. Java
`Script are typically interpreted. Client devices typically
`possess limited processing power and bandwidth, incapable
`of interpreting and executing an interpretative language in a
`fast and efficient manner. Thus, there is a need for a robust
`client and server architecture, which eliminates the need for
`interpretation of JavaScript embedded in HTML code so that
`HTML encoded content can be displayed by the client or set
`top box processor without requiring an inordinate amount of
`processing power or communication bandwidth.
`
`SUMMARY OF THE INVENTION
`
`The present invention addresses the needs of the interac
`tive television environment discussed above. The present
`invention provides a method and apparatus comprising
`Software and hardware for accepting and extracting an
`interpretative language. Such as JavaScript from an input
`language, such as HTML and compiling the interpretative
`language for display at a client device. A compiled JavaS
`cript page common to a plurality of pages is sent only once
`and referenced as an external page by compiled pages, thus
`reducing the amount of data to be sent and associated
`bandwidth. The viewer or client can be a viewer at a (STB),
`
`

`

`US 7,065,752 B2
`
`3
`a cellular telephone user, a digital assistant, a pocket PC or
`any other electronic reception device.
`The present invention provide distinct advantage over
`known systems. The present invention provides for extract
`ing scripts from an HTML page and compiling the Scripts on
`a server, for execution on a client device, which is an
`improvement over known systems where a browser to
`interprets and executes the Scripts on the same machine.
`The present invention also gathers Scripts for each language,
`for example JavaScript or any other Script language, from an
`HTML document into a single package, for passing to the
`compiler, so that Some of or all the Scripts are compiled
`together. Scripts are embedded in HMTL documents in
`many ways. For example, between a pair of <SCRIPTs and
`</SCRIPTs tags, or as attribute value for event handlers.
`The present invention parses the HTML document, aggre
`gates the script (for a specified language, e.g., JavaScript)
`into one package, and then calls the compiler. Some pieces
`of scripts (e.g., included Scripts) may be compiled separately
`into different modules. All modules are sent to the client
`device for execution. This allows, for example, compiled
`scripts to be shared across different HTML pages. This
`means the compiler has an interface to compile included
`script that maybe different from the one to compile the main
`document Scripts. Thus, it is easier and simpler to create a
`single compiled module.
`The client device knows how to link and execute pieces
`of compiled Scripts, as if it was a single script. Compiled
`Scripts may be cached, so that compiling does not occur if
`the Script is already in the cache. The present invention also
`provides a compile time marker in the scripts for code to be
`executed only on usual HTML browsers (ie, never executed
`in the client device). In prior systems enable the script to test
`at execution time which browser is running (Internet
`Explorer, Netscape, etc). In the present invention, the pre
`ferred compiler recognizes a keyword, e.g., “JS2O’. Thus,
`in a piece of code like: “if (JS2O) DO A; else DO B” the
`compiler will not compile “DO B as it knows that “if
`(JS2O) is always true. Thus, the entire piece of code is
`actually compiled as “DO A: The script compiler does not
`compile code that is never executed on client device, thus
`reducing the compiled code size, and improving code execu
`tion time. The compiler replaces some late binding refer
`ences by compile time bindings for faster execution on client
`device. Prior systems resolve references at execution time.
`For example, in JavaScript, when accessing an identifier
`“foo', the script engine will look for the name “foo' in a
`scope chain. This takes time of course. Here the compiler
`binds (in some cases) the identifier 'foo' to a specific
`address for fast access at runtime. For example, in JS2O,
`(Some) properties are allocated memory space as regular
`global variables in C language, and (some) other properties
`are allocated slots in the Stack as regular local variables in
`C. The compiler replaces some late binding references by
`absolute values for faster execution on client device. In this
`embodiment instead of binding to an address, the compiler
`replaces the identifier directly by a value. For example, in
`JavaScript, the identifier "NaN” is a property of an object.
`Here the compiler directly replaces references to "NaN' by
`its value.
`The preferred compiler supports an interface to define
`new classes of objects. This enables the compiler to access
`and/or optimize creation and manipulation of those objects,
`and allows the runtime to link with the code for that class.
`The class code can be implemented as an Open TV module.
`In a preferred embodiment, H2O defines an HTML syntax to
`
`4
`declare new classes of objects. The compiler Supports an
`interface to define predefined/external instance of objects
`which enables the compiler to access and/or optimize
`manipulation of those objects, and allows the runtime to
`access those objects. Those objects are created outside of the
`script execution. In a preferred embodiment, H2O defines an
`HTML syntax to declare predefined/external instance of
`objects.
`
`10
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`Other objects and advantages of the invention will
`become apparent upon reading the following detailed
`description and upon reference to the accompanying draw
`ings in which:
`FIG. 1 is an illustration of a head-end providing content
`to a client device;
`FIG. 2 is an illustration of a head-end providing content
`to a client device;
`FIG. 3 is an illustration of a head-end providing content
`to a client device;
`FIG. 4 is an illustration of a head-end providing content
`to a client device;
`FIG. 5 is a H2O HTML Transcoder architecture diagram;
`FIG. 6 is H2O Browser processing and data flow diagram;
`FIG. 7 illustrates an interface between H2O and JS2O:
`FIG. 8 illustrates the components of JS2O compiler;
`FIG. 9 illustrates the compiler as a JS2O command line
`compiler,
`FIG. 10 illustrates execution of the compiled JS main
`code module at the client;
`FIG. 11 illustrates a preferred data segment; and
`FIG. 12 illustrates a preferred stack segment.
`While the invention is susceptible to various modifica
`tions and alternative forms, specific embodiments thereof
`are shown by way of example in the drawings and will
`herein be described in detail. It should be understood,
`however, that the drawings and detailed description thereto
`are not intended to limit the invention to the particular form
`disclosed, but on the contrary, the invention is to cover all
`modifications, equivalents and alternatives falling within the
`spirit and scope of the present invention as defined by the
`appended claims.
`
`DETAILED DESCRIPTION OF A PREFERRED
`EMBODIMENT
`
`Turning now to FIG. 1, the Service Platform 50 comprises
`a group of applications roughly divided into three catego
`ries, Content Conversion 204, Transaction Control/Business
`Functions 206 and Transport Conversion 207. The Service
`Platform enables services 200 to interact with a client 212.
`The services 200 communicate through a communication
`link 202 to the Service Platform 50. The Service Platform 50
`in turn communicates with a client 212. The client 212 may
`be a STB, a digital assistant, a cellular phone, or any other
`communication device capable of communicating with the
`Service Platform through communication link 230. The
`Content Conversion 204 and Transport Conversion 207
`services provide the transport and communication function,
`and the Business Function services provide the Business
`Control functions.
`As shown in FIG. 2, transaction Control/Business Func
`tions 206 are distributed between the Service Platform and
`the client 212. For example, a client can perform some
`business functions (e.g. implement advertising campaign
`rules and advertising/business filters to select advertise
`
`15
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`

`

`US 7,065,752 B2
`
`5
`
`5
`ments viewed) and select contents, which are more Suitable
`to the client 212 (e.g., select an advertisement or program
`which fits the user profile). The functions of FIG. 2 are
`expanded in FIG. 3. As shown in FIG. 3, the Business
`Functions 206 comprise four major functional components:
`Service Manager 238, Viewer Manager 240, Transaction
`Manager 242, and Advertisement (Ad) Manager 244. One
`example of a high-level operation flow for a preferred
`embodiment follows.
`Referring now to FIG. 3, a Service 200 negotiates with a
`network operator to offer a service to subscribers via the
`Head-End operator's Service Platform. The network or
`Head End operator uses the Service Manger 238 to register
`the services and the negotiated business rules 222 (e.g.
`schedule, bandwidth requirements, service access to viewer
`15
`information) associated with the service. The Service Man
`ager 238 stores Service data 216 (e.g. URL address, con
`tent). Based on the business rules 222 and Service Data 216,
`Service Manager 238 communicates with the Broadcast
`Communication 234 function to retrieve the content from
`the content provider.
`When the content is retrieved from the Service 200, it may
`be processed by the Content Conversion 204 and Content
`Filters 224 to convert the content into a form suitable for the
`client device 212. The Broadcast 234 function converts the
`content into a form suitable for the broadcast 234 network.
`The client 212 receives the converted content over broadcast
`link 211. Client 212 and Service 200 interact via Point-to
`Point link 210 and Point-to-Point function 232, which are
`part of Transport Conversion 207. The service 200 may
`comprise shopping, audio/video, gaming, voting, advertise
`ment, messaging, or any other service.
`Client 212 communicates through Point-to-Point 232
`communication link to the Service Platform 50 and Service
`200. Load Balancer 236 interacts with the Business Func
`tions 206 to determine the optimal load distribution between
`the Broadcast 234 Communication link 211 and the Point
`to-Point 232 Communication link 210. The Platform Busi
`ness Agents 226 use business rules 222 to control the
`interaction and exchange of information between the Service
`200 and the client 212. For example, the network operator
`may choose to prevent Service 200 access to user informa
`tion. Service 200 preferably pay a fee based on the Business
`Rules 222 and Service data 216 to access the user informa
`tion.
`Viewer Manager 240 stores client/user information in
`User Data 220. Platform Business Agents 226 control the
`flow of viewer information to the Service 200. Transaction
`Manager 242 records transactional information exchanged
`between the service 200 and Client 212. Based on the
`Business Rules 222 and the User Data 220, Advertising
`Manager 244 determines which advertisements and which
`type of advertisements will be presented to the client via
`Broadcast link 211 and Point-to-Point link 210.
`FIG. 4 illustrates another example of a preferred imple
`mentation of Service Platform 50. Services 200 provide
`shopping, chat, and other services either over the Internet or
`over another network or communication channel accessible
`to the network operator. Using the Service Platform, the
`network operator accesses those services. Business Func
`tions 206, comprising Service Manager 238, interact with
`Carousel Manager 254 to retrieve content from a Service
`200. The carousel comprises a repeating stream of audio/
`video/interactive data broadcast to clients from the Service
`Platform 50. Carousel manager 254, transaction manager
`242 and Service Manager 238 control the content insertion
`and deletion from the broadcast carousel. Service content is
`
`25
`
`30
`
`35
`
`40
`
`45
`
`6
`retrieved, converted into a client suitable format by H2O
`248. H2O 248 is a possible implementation of Content
`Conversion 204 and Content Filter 224. H2O converts
`HTML Content into Service Platform/Client readable con
`tent. The converted content is formatted into a data carousel
`and multiplexed by the Open Streamer 256 for broadcast to
`the client 212. Client 212 interacts with the services and if
`necessary communicates with the Service Platform and the
`Services 200. Point-to-Point communication goes through
`Service Gateway 246. Service gateway 246 performs trans
`port conversion to convert the STB protocol into a form
`Platform Business Agents 226 and H2O 248 expect and
`understand. Load Balancer 236 interacts with Business
`Functions 206, Carousel Manager 254, and Service Gateway
`246 to determine the optimal load between the Broadcast
`link 241 and the Point-to-Point Communication link 210.
`Business Functions 206 interact with the Platform Business
`Agents 226 to control access and information exchange
`between the Services 200 and client 212.
`In a preferred embodiment of the present invention, H2O
`is a client/server solution, which enables Internet content
`developers to build interactive TV applications and services
`for network operators running the Service Platform. The
`Service Platform enables viewer access to the larger pool of
`Internet talent and content made available to the vast grow
`ing worldwide market of interactive TV applications. The
`H2O server process converts Internet content (HTML pages,
`ECMAScripts, and HTML page formatting) into Service
`Platform assets. The H2O client process renders the assets
`and interacts with the client 212. In a T-Commerce/E-
`Commerce case scenario, H2O enables E-Commerce shops
`to utilize existing Web tools to create shopping services and
`to interface with the preferred Service Platform (operator),
`using standard Web protocol.
`H2O acts as a proxy to the Service Gateway and the
`broadcasting tools to convert Web content. H2O receives
`HTML from both broadcast and online sources. The present
`invention enables web sites use their current HTTP servers
`and application servers to generate interactive TV content.
`In a preferred embodiment, H2O converts HTML, JavaS
`cript, and Internet graphics to client compatible code, pref
`erable Ocode, a C-based OpenTV code running on a virtual
`machine on the set top box. Any other known or developed
`protocol can also be added to the functionality of H2O. H2O
`enables the Service Platform to communicate with clients
`STBs that are not full browser capable and to create original
`user interfaces. H2O enables Service Platform connection to
`any commerce engine that uses only HTML. H2O is respon
`sible for converting Web content such as HTML pages, JPG
`pictures, wave audio files, etc. into client-friendly resources
`that can be easily utilized with minimal processing capabil
`ity and bandwidth at the client.
`The server side of H2O is an HTTP proxy, H2OS. For
`other purposes, it can be packaged as a DLL or batch tool.
`The client side of H2O, an STB OCOD application, is
`H2OC, H2OC is built on top of other Service Platform client
`components, such as the Service Gateway library or the
`Carousel Load library. H2O enables URLs to be used to
`address documents and services. H2O enables tracking in
`the broadcast and online environments. H2OS provides
`HTTP proxy functionality. Service Platform applications
`request a document through H2O. H2O retrieves the docu
`ment, parses it, compiles it, and returns the document to the
`requester. This H2O functionality enables use of the same
`engine for different uses, online and broadcast, facilitates
`scalability, and enables flexible use of H2O. The parsing
`depends on the type of document, e.g., H2O parsing can be
`
`10
`
`50
`
`55
`
`60
`
`65
`
`

`

`US 7,065,752 B2
`
`10
`
`15
`
`25
`
`30
`
`7
`HTML parsing, a GIF picture, or JPEG images, etc. To make
`it expandable, H2O provides function to “plug-in” and run
`new third party filters.
`H2O Supports special tags comprising: A/V control, chan
`nel control; on Screen display (OSD) control; and Triggers.
`H2O Supported W3C tags comprise: controlled positioning
`of graphical elements (x, y, z). JavaScript libraries comprise
`Math, DOM, and Date. The client side of H2O, H2OC
`composes graphics assets in the client or STB. H2O enables
`updated display of a user viewed page upon reception.
`H2OC utilizes libraries (communication, carousel, et al.)
`provided by other Service Platform components. H2O
`enables refreshing a page in a single update, but also
`provides an option to choose between partial updates as
`assets are loaded, versus waiting for all or some assets to
`load. H2O enables dynamic linking/unlinking of third party
`classes.
`In broadcast mode, preferably, a global permanent object
`is provided, that is not cleared when starting a new page. The
`permanent object maintains context between pages. Other
`base objects provided by the Service Platform are also made
`permanent on transition (e.g., station control. OSD). Gad
`gets are client-defined methods. Gadgets are defined through
`an interface definition language to enable creation of new
`gadgets, modification of gadgets and to enable adding meth
`ods without modifying the JS2O compiler 4000 of the
`present invention.
`Now turning to FIGS. 5 and 6, a discussion of the main
`H2O components follows. H2O transcoder 2001 converts
`HTML inputs 2062 into H2O transcodes that can be effi
`ciently and interactively displayed by an H2O Browser in a
`client device, e.g., an OpenTV STB. The H2O Browser
`views H2O transcodes in limited Dynamic HTML4 fashion.
`The host, such as HTTP proxy 2003, invokes H2O
`Transcoder 2001. H2O Transcoder 2001 interfaces with
`35
`MIME handler 2036 and MIME info 2028 for content
`information in non-HTML MIME type. The JS2O compiler
`4000 is multi-thread safe. H2O Transcoder invokes H2O
`JavaScript Handler 2000 to take scripts as input, fetch
`external scripts or class URI, and invokes JS2O compiler
`and pre-link JavaScript. The JS handler 2000 processes JS
`custom classes 2070 and JS shared scripts 2066.
`Turning now to FIG. 6, the H2O Browser 2100 interfaces
`with JS2O JavaScript runtime 2129 for JavaScript support.
`The H2O Transcoder runs as a task, fetches MIME content
`through host HTTP proxy, and processes MIME content as
`requested. Preferably an interface is provided with the proxy
`host to handle caching mechanism for better efficiency. The
`H2O transcoder executes synchronously.
`The H2O transcoder supports a selected subset of the
`HTML4.01 W3 standard. H2O transcoder supports a subset
`of text: paragraphs, lines, phrases; Subset of list; Subset of
`table and subset of links. The H2O transcoder supports a
`subset of Object and Image elements. The H2O transcoder
`also Supports a filter authoring-side object (e.g., IE (Internet
`Explorer) custom object) and Supports runtime custom
`objects for the STB; both authoring-side (PC) and STB
`custom object class development; a Subset of image map
`(client-side, server-side); a subset of form and form controls;
`Script element; and a subset of JavaScript.
`In H2O transcoder, the HTML nodes contain once-com
`puted CSS information in element nodes. Very limited, if
`any, additional CSS is preserved. This is fundamentally
`different from the dynamic cascading rules of CSS. Dynamic
`style is limited as a style change preferably is applied to only
`65
`one node. This means that in order to query through DOM
`a property of the style of a particular element and expect it
`
`55
`
`8
`to return a valid value, the style property (e.g. style color:
`red) is explicitly specified for the element inside an inline
`style, or explicitly created in a JavaScript code in order for
`PC emulation to behave similarly.
`The present invention invokes a H2O JavaScript handler
`task to process Script element data. The JavaScript handler
`task fetches the script URI, and invokes the JS2O JavaScript
`compiler. JS2O returns a data package containing the com
`piled JavaScript code module. JS2O may cache compiled
`JavaScript scripts and matches repeated similar and identical
`JavaScript scripts.
`The present invention generates H2O Transcodes using
`client compatible resources from parser engine internal data
`models with layout and limited Style information, and Java
`Script co

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