`
`(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-00758
`Netflix Ex. 1008
`
`
`
`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.
`F