throbber
USOO6996627B1
`
`(12) United States Patent
`Carden
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 6,996,627 B1
`Feb. 7, 2006
`
`(54) SYSTEM AND METHOD FOR PROVIDING
`UPDATE INFORMATION
`
`(75) Inventor: Chris Carden, Seattle, WA (US)
`
`(73) Assignee: RealNetworks, Inc., Seattle, WA (US)
`(*) Notice:
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 0 days.
`
`(21) Appl. No.: 09/318,755
`(22) Filed:
`May 25, 1999
`(51) Int. Cl.
`(2006.01)
`G06F I3/00
`(52) U.S. Cl. ........................... 709/237; 725/39; 725/50
`(58) Field of Classification Search ................ 709/230,
`709/228, 203,224, 237; 710/220; 725/50,
`725/39
`See application file for complete Search history.
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`5,019,963 A 5/1991 Alderson et al.
`5,155,847. A 10/1992 Kirouac et al.
`5,247,683 A 9/1993 Holmes et al.
`5,408.619 A 4/1995 Oran
`5,421,009 A 5/1995 Platt
`5,421,017 A 5/1995 Scholz et al.
`5,473,772 A 12/1995 Halliwell et al.
`5,493.728 A 2/1996 Solton et al.
`5,537,596 A
`7/1996 Yu et al.
`5,557,798 A
`9/1996 Skeen et al.
`5,602,582 A 2/1997 Wanderscheid et al. ...... 348/12
`5,619,716 A 4/1997 Nonaka et al.
`5,635,989 A * 6/1997 Rothmuller .................. 725/46
`5,657,072 A * 8/1997 Aristides et al. .............. 725/46
`5,666.293 A 9/1997 Metz et al.
`5,682,533 A 10/1997 Siljestroemer
`5,696,898 A 12/1997 Baker et al.
`5,706.435 A
`1/1998 Barbara et al.
`5,710,884 A
`1/1998 Dedrick
`5,717.923 A
`2/1998 Dedrick
`
`3/1998 Kullick et al.
`5,732.275 A
`5,734,898 A 3/1998 He
`5,740,549 A
`4/1998 Reilly et al. .................. 704/14
`5,742,829 A 4/1998 Davis et al.
`5,752,042 A 5/1998 Cole et al.
`5,758.342 A 5/1998 Gregerson ................... 707/10
`5,764,992 A 6/1998 Kullick et al.
`5,768,539 A 6/1998 Metz et al.
`(Continued)
`FOREIGN PATENT DOCUMENTS
`2331884. A * 6/1999
`(Continued)
`OTHER PUBLICATIONS
`Vinay Kanitkar and Alex Delis, “Real-Time Client-Server
`Push Strategies: Specification and Evaluation” IEEE Com
`puter Society Technical Committee on Real-Time Systems,
`1998, pps. 179-188.
`
`GB
`
`(Continued)
`Primary Examiner-Kenneth R. Coulter
`(74) Attorney, Agent, or Firm-Steven C. Stewart
`(57)
`ABSTRACT
`
`A System and a method for providing update information.
`The System includes a client computer which is operably
`connected to a program information Server. The program
`information Server maintains one or more program informa
`tion items. The System also includes a program Selection
`Server which allows the user to Select which of the program
`information items are to viewed by the user. Based upon a
`dynamically adjustable polling period, the client computer
`requests the program information Server to provide the client
`computer new program information items. The program
`information items include one or more media items that may
`be selected for Viewing by a user positioned at the client
`computer. The client computer provides a newness indicator
`to the user, the newness indicator indicating to the user when
`one or more items of the media content is new and has not
`been previously viewed by the user.
`
`51 Claims, 8 Drawing Sheets
`
`EN) or ALNE
`ELEMENT LOOP
`
`??
`
`NEW
`HEABLINE
`PRESENT
`
`AD NEW HEADLINE
`MENT TO RETURNATA
`
`HANG 2
`roPROGRAM NC
`ELEMENTS?
`
`YES
`
`A CHANCE FIELS
`To RETURN ATA
`
`Nor PrsRAM
`ELSMENT COP
`
`
`
`as
`FOLLING
`rise SNC
`UDA)
`
`NC
`
`YES
`
`AoA NeWPCLiNTIME
`TorTURNDATA
`
`32
`
`RTURN THE ACCUMULATE
`DATA To THE CLIENTCOMPUTER
`
`a
`
`Netflix v. GoTV
`IPR2023-00757
`Netflix Ex. 1009
`
`

`

`U.S. PATENT DOCUMENTS
`Sadowsky
`Lillich
`Kappe
`May et al.
`Stupek et al.
`Bredenberg .................... 707/2
`Olds
`Olds et al. .................... 707/10
`Neel et al. .................. 345/327
`Fawcett
`Collins, III et al.
`Marsh et al. ................. 705/14
`Northrup
`Cuomo et al. .............. 345/326
`Reed et al. ................. 709/201
`Todd et al.
`Beyda
`Arsenault et al. ........... 370/477
`Gopal et al. ....
`... 709/228
`Cote et al. ...
`... 709/224
`Pitts ........
`... 707/10
`Jackson ...................... 348/460
`Apfel et al.
`Iki et al. ..................... 345/721
`Lambert et al.
`... 709/226
`... 348/563
`Virden et al. ...
`Lipa et al. ...
`... 709/224
`... 717/176
`Aronberg et al.
`Moghe .................
`... 709/224
`Kawaguchi et al. ........ 348/725
`Wallis et al. ............... 709/224
`Plevyak et al. .
`... 709/233
`Cuccia .......
`... 348/731
`Ofer et al. .................. 710/200
`Trovato et al. .
`340/825.24
`Carney et al. ................ 710/15
`Combar et al. ............. 370/252
`Knudson et al. .............. 725/39
`Dickinson ..........
`... 709/203
`Humpleman et al. ....... 345/771
`Arsenault et al. ............. 725/54
`Wang ............
`... 725/39
`Trovato ...
`... 725/39
`Roeck .....
`... 725/111
`Gu et al. .................... 370/450
`
`5,790.796
`5,790,856
`5,805,824
`5,809,251
`5,809.287
`5,826,253
`5,832.275
`5,832,487
`5,838,314
`5,845.077
`5,845,090
`5,848,397
`5,850,518
`5,861,883
`5,862,325
`5,867,714
`5,870,610
`5,886,995
`5,889,963
`5,938.729
`5,946,690
`5,963,264
`5.974.454
`6,008.802
`6,038.601
`6,057,890
`6,061,722
`6,117,188
`6,173,323
`6,271,893
`6,282.569
`6,308.214
`6,337.719
`6,353.869
`6,445,306
`6,449,663
`6,515,968
`6,536,041
`6,574,657
`6,603488
`6,658,661
`6,675,385
`6,701,526
`6,742,186
`6,744,780
`FOREIGN PATENT DOCUMENTS
`
`8/1998
`8/1998
`9/1998
`9/1998
`9/1998
`10/1998
`11/1998
`11/1998
`11/1998
`12/1998
`12/1998
`12/1998
`12/1998
`1/1999
`1/1999
`2/1999
`2/1999
`3/1999
`3/1999
`8/1999
`8/1999
`10/1999
`10/1999
`12/1999
`3/2000
`5/2000
`5/2000
`9/2000
`1/2001
`8/2001
`8/2001
`10/2001
`1/2002
`3/2002
`9/2002
`9/2002
`2/2003
`3/2003
`6/2003
`8/2003
`12/2003
`1/2004
`3/2004
`5/2004
`6/2004
`
`WO
`
`WO 98.57497 A1 * 12/1998
`
`US 6,996,627 B1
`Page 2
`
`OTHER PUBLICATIONS
`Yun-Wu Huang and Philip S. Yu, “A Bandwidth-Sensitive
`Update Scheduling Method for Internet Push” IEEE Com
`puter Society Technical Committee on Distributed Process
`ing, May 1998, pps. 303-310.
`Cliff Berg, “How Do I Create a Signed Castanet Channel'?”
`Dr. Dobb's Journal, Jan. 1998, pps. 121-130.
`Ling Liu, Calton Pu, Wei Tang, David Buttler, John Biggs,
`Tong Zhou, Paul Benninghoff, Wei Han and Fenghua Yu,
`“CO: A Personalized Update Monitoring Toolkit' Sigmod
`98–Proceedings of ACM SIGMOD International Confer
`ence on Management of Data, Jun. 1998, pps. 547-549.
`Cliff Berg, “How Can I Create a Push Java Channel?” Dr.
`Dobb's Journal, May 1997, pps. 99-103.
`Barry Nance, “When Push Comes to Serve”. BYTE, Jul.
`1998, pps. 98-102.
`Pete Loshin, “Tune In, Turn on the Web” BYTE, Feb. 1997,
`pps. 145-146.
`Michael Fisk, “Automating the Administration of
`Heterogeneous LANs' USENIX ASSociation-Proceedings
`of the Tenth Systems Administration Conference Sep.-Oct.
`1996, pps. 181-186.
`Gansheimer,
`Wilfried
`and
`Peter
`W.
`Osel
`“OpenDist-Incremental Software Distribution” USENIX
`Association-Proceedings
`of
`the
`Ninth
`Systems
`Administration Conference, Sep. 1995, pps. 181-193.
`Atsushi Futakata, “Patch Control Mechanism for Large
`Scale Software” USENIX ASSociations-Proceedings of the
`Ninth Systems Administration Conference, Sep. 1995, pps.
`213-219.
`Thomas Eirich, “Beam: A Tool for Flexible Software
`Update” LISA, Sep. 1994, pps. 75-82.
`John Lockard and Jason Larke, “Synctree for Single Point
`Installation, Upgrades, and OS Patches' USENIX
`Associations-Proceedings of the Twelfth Systems
`Administration Conference, Dec. 1998, pps. 261-270.
`Ram R. Vangala, Michale Cripps and Raj G. Varadarajan,
`“Software Distribution and Management in a Networked
`Environment” USENIX Association-Proceedings of the
`Sixth Systems Administration Conference, Oct. 1992, pps.
`163-17O.
`Bobby Krupczak, Kenneth L. Calvert and Mostafa Ammar,
`“Implementing Protocols in Java: The Price of Portability”
`IEEE Infocom '98, vol. 2, pps. 765-773.
`* cited by examiner
`
`
`
`

`

`U.S. Patent
`
`Feb. 7, 2006
`
`Sheet 1 of 8
`
`US 6,996,627 B1
`
`7(22
`
`
`
`CLIENT
`COMPUTER
`
`
`
`727
`
`CONTENT
`PROVIDER
`COMPUTER
`
`MEDIATEMS
`
`774
`
`Z
`772
`
`MEDIA
`SERVER
`
`726
`
`724
`
`
`
`PROGRAM
`INFORMATION
`SERVER
`
`776
`
`PROGRAM
`SELECTION
`SERVER
`
`PROGRAM
`INFORMATION
`ITEM
`
`722
`
`FIG. 1
`
`

`

`U.S. Patent
`
`Feb. 7, 2006
`
`Sheet 2 of 8
`
`US 6,996,627 B1
`
`
`
`PROGRAM DATA
`STRUCTURE
`
`/ 222
`
`222
`
`22
`
`272
`
`276
`
`PROGRAM ELEMENT 29
`PROGRAM
`IDENTIFICATION
`HEADLINE LIST
`MEDIA ITEM LOCATION 227
`OPAGUE DATA
`DEFAULTHEADLINE
`DATA
`REVISION NUMBER
`
`HEADLINE
`ELEMENT
`HEADLINE
`262 IDENTIFIER
`HEADLINE
`22 INFORMATION
`EXPRATION
`236
`TIME
`
`24
`
`HEADLINE
`ELEMENT
`HEADLINE
`IDENTIFIER
`HEADLINE
`INFORMATION
`EXPRATION
`TIME
`
`222
`
`PROGRAM ELEMENT
`PROGRAM
`IDENTIFICATION
`HEADLINE LIST
`MEDIA SERVER
`LOCATION
`OPAOUE DATA
`DEFAULT DATA
`REVISION NUMBER
`
`FIG 2
`
`

`

`U.S. Patent
`
`Feb. 7, 2006
`
`Sheet 3 of 8
`
`US 6,996,627 B1
`
`
`
`
`
`
`
`/ 322
`
`CLIENT DISPLAY WINDOW
`
`XYZ
`BROADCAST
`
`272
`
`HEADLINE
`
`COMEDY
`
`s
`
`HEADLINE
`
`SPORTS
`
`HEADLINE
`
`FIG. 3
`
`

`

`U.S. Patent
`
`Feb. 7, 2006
`
`Sheet 4 of 8
`
`US 6,996,627 B1
`
`FIG. 4A
`
`CLENT INITIATES
`REOUEST FOR UPDATE
`
`402
`
`FIG. 4
`
`FIG. 4A
`
`FIG. 4B
`
`
`
`FOREACH PROGRAMELEMENT IN THE
`PROGRAM DATASTRUCTURE
`PERFORM THE FOLLOWING ACTIONS -
`START PROGRAMELEMENT LOOP
`
`4022
`
`279
`
`
`
`
`
`427
`OPAGUE DATA
`PRESENT 2
`
`
`
`YES
`
`NO
`
`SEND OFAOUE
`DATA TO
`CONTENT
`PROVIDER
`COMPUTER
`
`
`
`FOREACH HEADLINEACTION
`PERFORM FOLLOWING ACTIONS -
`START HEADLINE LOOP
`
`422
`
`
`
`42%
`
`
`
`
`
`
`
`EXPRATION
`TIME IN SERVER
`CHANGED 2
`
`YES a N9
`N
`ADD THE NEW EXPRATION
`TIME TO RETURN DATA
`
`
`
`
`
`
`
`472
`HEADLINE TO
`BE REMOVED 2
`
`
`
`YES
`
`474
`
`NO
`
`SET EXPRATION TIME
`EOUAL TO ZERO
`
`

`

`U.S. Patent
`
`Feb. 7, 2006
`
`Sheet 5 of 8
`
`US 6,996,627 B1
`
`END OF HEADLINE
`ELEMENT LOOP
`
`476
`
`
`
`
`
`
`
`
`
`476
`
`NEW
`HEADLINE
`PRESENT 2
`
`NO
`
`YES
`
`
`
`
`
`
`
`
`
`
`
`ADD NEW HEADLINE
`ELEMENT TO RETURN DATA
`
`42
`
`TO PROGRAM
`ELEMENTS 2
`
`NO
`
`YES
`
`
`
`
`
`
`
`
`
`NO
`
`
`
`
`
`ADD CHANGED FELDS
`TO RETURN DATA
`
`427
`
`
`
`
`
`END OF PROGRAM
`ELEMENT LOOP
`
`425
`
`POLLING
`TIME TO BE
`UPDATED 2
`
`NO
`
`YES
`
`ADD A NEWPOLLING TIME
`TO RETURN DATA
`
`432
`
`
`
`RETURN THE ACCUMULATED
`DAA TO THE CLENT COMPUTER
`
`4.32
`
`FIG. 4B
`
`

`

`U.S. Patent
`
`Feb. 7, 2006
`
`Sheet 6 of 8
`
`US 6,996,627 B1
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`BEGIN
`
`FOREACH PROGRAMELEMENT IN
`PROGRAM DATASTRUCTURE,
`PERFORM THE FOLLOWINGLOOP
`
`
`
`MEDIATEMS
`NOT VIEWEDYET
`BY USER 2
`
`
`
`222.
`
`YES
`
`DISPLAYNEWNESS INDICATOR
`26
`
`FOREACH HEADLINE ELEMENT,
`PERFORM THE FOLLOWINGLOOP
`
`426
`
`EXPRATION
`TIME
`PASSED 2
`
`DELETE
`HEADLINE
`ELEMENT
`
`
`
`672 Y
`DISPLAY HEADLINE INFORMATION
`
`END OF HEADLINEELEMENT LOOP
`
`
`
`676
`
`
`
`
`
`
`
`AT LEAST
`ONE ITEM OF
`HEADLINE INFORMATION
`DISPLAYED 2
`
`279
`
`
`
`PREMENE
`
`22
`
`END OF PROGRAMELEMENT LOOP
`
`
`
`FIG. 5
`
`

`

`U.S. Patent
`
`Feb. 7, 2006
`
`Sheet 7 of 8
`
`US 6,996,627 B1
`
`
`
`a22
`
`CONTEN PROVIDER
`COMPUTER CONNECTS
`TO PROGRAM
`INFORMATION SERVER
`
`624
`
`DISPLAY CURRENT
`PROGRAMINFORMATION
`ITEM DATAON CONTENT
`PROVIDER COMPUTER
`
`DD THE CONTENT
`PROVIDERENTER NEW
`NFORMATION ?
`
`a72
`
`WRITE NEW DATA
`TO PROGRAM
`INFORMATION SERVER
`
`FIG. 6
`
`

`

`U.S. Patent
`
`Feb. 7, 2006
`
`Sheet 8 of 8
`
`US 6,996,627 B1
`
`722
`
`724
`
`
`
`
`
`CLIENT COMPUTER
`CONNECTS TO PROGRAM
`SELECTION SERVER
`
`DISPLAY CURRENT
`PROGRAMS FROM
`CLIENT'S PROGRAM
`DATASTRUCTURE
`
`729
`
`DD THE USER
`ADD OR REMOVE
`PROGRAMS 2
`
`
`
`YES
`
`NO
`
`772
`
`SAVE THE NEW PROGRAM
`DATASTRUCTURE ON
`THE CLIENT COMPUTER
`
`FIG. 7
`
`

`

`1
`SYSTEMAND METHOD FOR PROVIDING
`UPDATE INFORMATION
`
`BACKGROUND OF THE INVENTION
`
`1. Field of the Invention
`The invention pertains to automatic computer upgrading.
`More particularly, the invention pertains to a System and
`method for updating program information items via a net
`work.
`2. Description of the Related Technology
`AS the popularity of the Internet increases, users are
`turning from traditional media Sources, Such as television
`and newspaper, to the Internet to obtain information about
`current news events, activities, entertainment and other
`information. By using a client program which resides on a
`client computer, a user can visit one of many media Servers
`that contain information which is provided by various con
`tent providers. A typical media Server may include a plural
`ity of web pages that are viewable by a user at the client
`computer. The web pages are virtual documents often having
`embedded links which link portions of the virtual pages to
`other virtual pages and other data. A user can traverse the
`Virtual pages and download data by Selecting with a mouse
`or other input device a predetermined portion of the Virtual
`page enabled as a link.
`Traditionally, the client program has been an Internet
`browser that allows a user to visit various web pages by
`providing an address of a Selected media Server. More
`recently, however, client programs provide for the automatic
`downloading and playback of Selected items of information
`to the client computer. As an example, various media servers
`have been developed offering various “streamable” pro
`grams. The term Streamable refers to media that can be
`transmitted from one computer to another, and played in real
`time as the media is received. A Streamable program can
`include any type of audiovisual presentation, Such as, for
`example, a news report, an entertainment Show, a picture,
`text, or an advertisement.
`AS a Service to the user, the media Server provides
`information about each of the Streamable programs to the
`user So that the user may make an informed Selection from
`the available programs. These media Servers are designed to
`periodically update the client computer with the latest Set of
`program information as it is accumulated.
`However, these media servers have encountered difficulty
`Servicing large numbers of users. Some popular media
`Servers may Service thousands of client computers. When a
`content provider desires to make new programming avail
`able on the media Server, the content provider needs to Send
`the new information each of the new users. Disadvanta
`geously, Such an update can cause network congestion
`within Selected portions of the Internet network and con
`Sume network resources. Network congestion may cause
`network packets representing portions of the Streamable
`program to be lost and also impair other communications
`that are being transmitted over the Internet.
`Therefore, there is a need for an improved System for
`distributing information from a media Server to a client
`computer. The System should minimize the amount of net
`work congestion that is caused by an update from a Server
`computer to a client computer.
`
`SUMMARY OF THE INVENTION
`
`The present invention has Several aspects, no single one
`of which is solely responsible for its desirable attributes.
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`US 6,996,627 B1
`
`2
`Without limiting the scope of this invention as expressed by
`the claims which follow, its more prominent features will
`now be discussed briefly.
`One embodiment of the invention includes a method of
`dynamically adjusting the polling frequency of a client
`computer, the method comprising Sending a polling interval
`from a server to a client computer, periodically determining
`whether the Server has new program information items, the
`determining period based at least in part upon the polling
`interval, and transmitting new program information items to
`the media renderer upon the determination that the media
`Server has new program information items.
`Another embodiment of the invention includes a System
`for updating program information items on a client com
`puter, the System comprising a network, a Server computer,
`and a client computer periodically determining whether the
`Server has new program information items, the determining
`period based at least in part upon an polling interval that is
`provided by the Server computer.
`Yet another embodiment of the invention includes a
`System for dynamically adjusting the polling frequency of a
`client computer, the System comprising means for Sending
`an polling interval from a server to a client computer, means
`for periodically determining whether the media Server has
`new program information items, the determining period
`based at least in part upon the polling interval, and means for
`transmitting new program information items to the media
`renderer upon the determination that the media Server has
`new program information items.
`Yet another embodiment of the invention includes a
`System for delivering custom media content to a client
`computer, the System comprising a network, at least one
`media content provider, each of the at least one media
`content provider operably connected to the network, a client
`computer operably connected to the network, opaque data
`residing on the client computer, the opaque data being
`asSociated with one of the at least one media content
`provider, a Server computer configured to retrieve the
`opaque data from the client computer and forward the
`opaque data to the media content provider that is associated
`with the opaque data.
`Yet another embodiment of the invention includes a
`System for delivering custom media content to a client
`computer, the System comprising means for receiving a
`request from a client computer for new information, means
`for determining whether the client computer has any opaque
`data that is associated with the new information, means for
`identifying a media content provider that is associated with
`the opaque data, means for transmitting the opaque data to
`the media content provider, and means for customizing the
`new information based upon the opaque data, and means for
`Sending the new information from the media content pro
`vider to the client computer.
`Yet another embodiment of the invention includes a
`method of displaying program information items, the
`method comprising determining that a media Server has one
`or more new program information items, and displaying a
`content indicator to a user, the content indicator identifying
`to the user that one or more new program information items
`are available for presentation.
`Yet another embodiment of the invention includes a
`System for updating information to a client computer, the
`System comprising a network, a Server computer operably
`connected to the network, and a client computer operably
`connected to the network, the client computer periodically
`receiving updates from the Server, the client computer
`displaying a content indicator to a user indicating that one or
`
`

`

`3
`more program information items is accessible by the user
`upon receipt of each of the updates, the client computer
`retrieving the program information items from a media
`content provider upon a request of the user.
`Yet another embodiment of the invention includes a
`System for displaying program information items, the SyS
`tem comprising means for receiving an update report from
`a Server computer, the update report indicating that a media
`Server has one or more new program information items, and
`means for displaying a content indicator to a user, the
`content indicator identifying to the user that one or more
`new program information is accessible.
`Yet another embodiment of the invention includes a
`method for maintaining up-to-date program information, the
`System comprising receiving one or new program informa
`tion items, each of the program information items having an
`asSociated expiration time, and extending at least one expi
`ration time responsive to a request by a media Server.
`Yet another embodiment of the invention includes a
`program Storage device Storing instructions that when
`executed perform the StepS comprising receiving one or new
`program information items, each of the program information
`items having an associated expiration time, and extending at
`least one expiration time responsive to a request by a media
`SCWC.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG. 1 is a block diagram illustrating a System for
`transmitting one or more program information items to a
`client computer.
`FIG. 2 is a block diagram of a data structure which is
`stored in the client computer of FIG. 1, the data structure
`indicating which of the program information items are to be
`presented to the user.
`FIG. 3 is an exemplary screen display of the client
`computer of FIG. 1, the Screen display illustrating Selected
`ones of the program information items.
`FIG. 4 is a flowchart illustrating a process for transmitting
`new program information items to the client computer of
`FIG. 1.
`FIG. 5 is a flowchart illustrating a process for displaying
`a newness indicator on the Screen display on the client
`computer of FIG. 1, the newneSS indicator indicating the
`presence of one or more media items that may be viewed by
`the client at the client computer.
`FIG. 6 is a flowchart illustrating a proceSS for updating the
`program information items of FIG. 1.
`FIG. 7 is a flowchart illustrating a process for selecting the
`program information items which are displayed to the client
`computer of FIG. 1.
`
`DETAILED DESCRIPTION OF THE
`INVENTION
`
`The following detailed description is directed to certain
`specific embodiments of the invention. However, the inven
`tion can be embodied in a multitude of different ways as
`defined and covered by the claims. In this description,
`reference is made to the drawings wherein like parts are
`designated with like numerals throughout.
`
`System Overview
`
`FIG. 1 is a high-level block diagram illustrating an
`architectural overview of one embodiment of the present
`invention. The System is configured to periodically deliver
`
`65
`
`US 6,996,627 B1
`
`4
`program information items 102 to a client computer 100. As
`used herein, the term “program information items' includes
`any information that is Subject to change over time. AS a
`non-limiting example, the program information items 102
`can include audio and visual information about current news
`events, cultural activities, entertainment, Sports, recreation,
`movies, Stock information, interest rates, pricing informa
`tion, cartoons, advertisements, and other information that
`may be desired by a user. Further, the program information
`items 102 may include the following types of data formats:
`text, animation, 3-D graphics, Streaming media, Joint Pho
`tographic Experts Group (JPEG) files, Motion Picture
`Expert Group (MPEG) files, HyperText Markup Language
`(HTML) files, Extensible Markup Language (XML) files,
`and/or any other type of data that can be associated with
`media content. It is also noted that the program information
`items 102 may include an address or a reference which
`identifies the location of other program information items.
`Further, although only one client computer 100 is shown
`in FIG. 1, the present invention is capable for transmitting
`program information items 102 to a plurality of client
`computers 104 numbering in the tens of millions and
`upwards.
`The client computer 100 is connected via a network 108
`to a program information server 104. It is noted that the term
`“program information Server' is used for convenience to
`describe any computer that can maintain and transmit the
`program information items 102. For example, the program
`information server 104 can be any traditional “web server”
`that hosts media content for viewing by users. The features
`of the program information server 104 are described in
`further detail below.
`The client computer 100 and the program information
`server 104 are operably connected to a media server 112.
`The media server 112 contains one or more media items 114.
`The media items 114 are stored on the media server 112 until
`requested by a user at the client computer 100. Each of the
`media items 114 is associated with Selected program infor
`mation items 102. Further, each of the media items 114 can
`include any of the information as discussed above with
`reference to the program information items 102.
`In one embodiment of the invention, the media items 114
`are significantly larger in size than the Size of program
`information items 102. In this embodiment, the media items
`114 are stored by the media server 112 until requested by a
`user. Due to their size, the media items 114 cannot be
`distributed to the client computer 100 upon each update of
`the client computer 100. However, in this embodiment, since
`the program information items 102 are significantly Smaller
`than the media items 114, the program information items
`102 may be periodically transmitted to the client computer
`100 even absent a specific request from the client for Such
`information, and, advantageously, Such periodic transmis
`Sion does not cause network congestion.
`It is noted that although only one media server 112 is
`shown in FIG. 1, the present invention is capable of having
`a plurality of media Servers 112 numbering in the tens of
`thousands and upwards. Further, in one embodiment of the
`invention, each of the media Servers 112 is associated with
`a content provider. The content provider provides Selected
`ones of the media items 114 to the user. As a non-limiting
`example, a content provider can include: any type of Store,
`e.g., book, automobile, clothing, a broadcasting company; a
`newspaper; a Streaming content provider; or an educational
`Services provider. The content provider can provide the
`media items 114 to the user either for free or for a fee.
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`

`

`S
`The client computer 100 is also connected to a program
`selection server 118 via the network 108. The program
`Selection Server 118 contains a plurality of web pages that
`are viewable by a user at the client computer 100. A user at
`the client computer 100 informs the program selection
`server 118 as to which of the program information items 102
`are to be displayed to the user.
`The network 108 is also operably connected to a content
`provider computer 120. The content provider computer 120
`can be used by a content provider to add, delete, and/or
`modify the contents of the program information items 102
`on the program information server 104. Furthermore, the
`content provider computer 120 can be used by a content
`provider to add, delete, and/or modify the contents of the
`media items 114 on the media server 112.
`Optionally, the program information server 104, the
`media server 112, the program selection server 118, the
`content provider computer 120 or Some combination
`thereof, may be integrated into a Single computer platform.
`Further, it is noted the program information server 104, the
`media server 112, the program selection server 118, the
`content provider computer 120 may not necessarily be
`located in the same room, building or complex. In fact, the
`program information server 104, the media server 112, the
`program Selection Server 118, and the content provider
`computer 120 can be located in different buildings or states.
`The client computer 100, the program information server
`104, the media server 112, the program selection server 118,
`and the content provider computer 120 may each have one
`or more conventional general purpose microprocessorS Such
`as a Pentium(R) processor, a Pentium(R) Pro processor, a 8051
`processor, a MPS(R) processor, a PowerPC(R) processor, or an
`ALPHACR processor. In addition, the microprocessor may be
`any conventional Special purpose microprocessor Such as a
`digital Signal processor or a graphics processor. Further
`more, the client computer 100, the program information
`server 104, the media server 112, the program selection
`server 118, and the content provider computer 120 may each
`comprise a plurality of computers that are connected by a
`network, Such as the network 108. In addition, the client
`computer 100, the program information server 104, the
`media server 112, the program selection server 118, and the
`content provider computer 120 may be a desktop, Server,
`portable, hand-held, Set-top, or other configured computer.
`The client computer 100, the program information server
`104, the media server 112, the program selection server 118,
`and the content provider computer 120 may each be used in
`connection with various operating Systems. Such as: UNIX,
`LINUX, Disk Operating System (DOS), OS/2, Windows
`3.X, Windows 95, Windows 98, and Windows NT.
`The network 108 may include any type of electronically
`connected group of computers including, for instance, the
`following networks: Internet, Intranet, Local Area Networks
`(LAN) or Wide Area Networks (WAN). In addition, the
`connectivity to the network may be, for example, remote
`modem, Ethernet (IEEE 802.3), Token Ring (IEEE 802.5),
`Fiber Distributed Datalink Interface (FDDI) or Asynchro
`nous Transfer Mode (ATM). As used herein, an Internet
`includes network variations Such as public internet, a private
`internet, a Secure internet, a private network, a public
`network, a value-added network, an intranet, and the like.
`The network 108 may include multiple network technolo
`gies including both high and low bandwidth connections.
`The network 108 may include non-persistent connections
`that are only available at intervals, e.g., dial up telephone
`lines, and may also include persistent connections.
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`US 6,996,627 B1
`
`6
`AS can be appreciated by one of ordinary skill in the art,
`each of the program information server 104, the media
`Server 112, the program Selection Server 118, and the content
`provider computer 120 includes a control program (not
`shown) that controls the operation of the respective com
`puter. Each of the control programs comprise various Sub
`routines, procedures, definitional Statements, and macroS. AS
`will be appreciated by one of ordinary skill in the art, each
`of the control programs can be divided into Several compo
`nents which are linked together or made available in a
`shareable dynamic link library. Furthermore, the control
`programs may be Written in any programming language Such
`as C, C++, BASIC, Pascal, Java, and FORTRAN. C, C++,
`BASIC, Pascal, Java, and FORTRAN are industry standard
`programming languages for which many commercial com
`pilers can be used to create executable code.
`FIG. 2 is a block diagram illustrating the elements of one
`embodiment of a program data structure 200 which resides
`on the client computer 100. The program data structure 200
`contains Some of the program information items 102 as well
`as identifies the location of other program information items
`102, such as the media items 114 (FIG. 1). The program data
`structure 200 includes a plurality of program elements 202
`that are each associated with a content provider. It is noted
`that Some content providerS may be associated with multiple
`program elements 202. For example, the XYZ. Broadcasting
`Company (“XYZ") may provide two types of media content:
`sports and entertainment. In this example, XYZ would have
`two program elements 202, one associated with XYZ's
`sports content, the other associated with XYZ's entertain
`ment content. It is noted that although FIG. 2 only displays
`two program elements 202, the program data structure 200
`may be adapted to contain any number of program elements
`2O2.
`Each of the program elements 202 includes a number of
`data fields. AS will be readily appreciated by one of ordinary
`skill in the art, the program elements 202 can be defined
`using any type of data structures having data fields. For
`example, the program elements 202 can be defined as arrayS,
`linked lists, or other data structures. Each of the program
`elements 202 includes a program identification data field
`208. The program identification data field 208 contains a
`program identifier that uniquely identifies the program ele
`ment 202. The program identifier can be any arbitrary
`Sequence of characters that uniquely identifies the program
`element 202.
`Each of the program elements 202 also includes a revision
`number data field 212. The revision number data field 212
`contains a revision number for the respective program
`element 202. In one embodiment of the invention, the
`revision number is an integer. In this embodiment, the higher
`the revision number value of the program element 202, the
`more recent is the information of the program element 202.
`Each of the program elements 202 also includes a head
`line list data field 216. The headline list data field 216
`identifies one or more headline elements 204. The headline
`elements 204 are described in further detail below.
`Fur

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