`Nazem et al.
`
`19
`
`54) DYNAMIC PAGE GENERATOR
`75 Inventors: Farzad Nazem, Redwood City;
`Ashvinkumar P Patel, Milpitas, both
`of Calif.
`
`73 Assignee: Yahoo, Inc., Santa Clara, Calif.
`
`21 Appl. No.: 08/873,975
`22 Filed:
`Jun. 12, 1997
`
`(51) Int. Cl." ...................................................... G06F 17/30
`
`52 U.S. Cl. ............................ 707/10; 707/104; 707/500;
`707/513; 707/517; 395/200.47; 705/1; 705/10
`
`58 Field of Search .............................. 707/10, 104, 200,
`707/500, 513,517; 395/200.47, 200.48,
`200.49; 705/1, 10
`
`56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`5,754,938 5/1998 Herz et al. ............................... 455/4.2
`5,754,939 5/1998 Hertz et al. .............................. 455/4.2
`5,761,662 6/1998 Dasan ........................................ 707/10
`5,793,497 8/1998 Funk ..
`... 358/402
`5,793.972 8/1998 Shane ...
`395/200.49
`5,835,087 11/1998 Herz et al. .............................. 345/327
`5,848,396 12/1998 Gerace ...................................... 70.5/10
`FOREIGN PATENT DOCUMENTS
`0749081A1 12/1996 European Pat. Off..
`WO 97/17662 5/1997 WIPO.
`
`USOO5983227A
`Patent Number:
`11
`(45) Date of Patent:
`
`5,983,227
`Nov. 9, 1999
`
`OTHER PUBLICATIONS
`Garris, John, “Grab That Database', PC Magazine, vol. 15,
`No. 15, Sep. 10, 1996, p. NE1-NE7.
`Chesnais et al., “The Fishwrap Personalized News System’,
`IEEE, D–7803–27560X/95, Jun., 1995, pp. 275-282.
`Yuri
`Quintana,
`University
`of Western
`Ontario,
`“Knowledge-Based Information Filtering of Financial
`Information,” XP-002057953, May, 1997, pp. 279-285.
`Primary Examiner Paul R. Lintz
`Attorney, Agent, or Firm-Philip H. Albert; Townsend and
`Townsend and Crew LLP
`57
`ABSTRACT
`An custom page Server is provided with user preferences
`organized into templates Stored in compact data Structures
`and the live data used to fill the templates stored local to the
`page Server which is handing user requests for custom pages.
`One process is executed on the page Server for every request.
`The process is provided a user template for the user making
`the request, where the user template is either generated from
`user preferences or retrieved from a cache of recently used
`user templates. Each user process is provided access to a
`large region of shared memory which contains all of the live
`data needed to fill any user template. Typically, the pages
`Served are news pages, giving the user a custom Selection of
`Stock quotes, news headlines, Sports Scores, weather, and the
`like. With the live data stored in a local, shared memory, any
`custom page can be built within the page Server, eliminating
`the need to make requests from other Servers for portions of
`the live data. While the shared memory might include RAM
`(random access memory) and disk storage, in many com
`puter systems, it is faster to store all the live data in RAM.
`9 Claims, 7 Drawing Sheets
`
`204
`
`GLOBAL FRONT
`PAGE TEMPLATE
`
`I
`
`FRONT PAGE
`GENERATOR
`
`USER'S FRONT
`PAGE TEMPLATE
`
`PAGE GENERATOR
`
`USER'S
`FRONT PAGE
`
`
`
`
`
`
`
`
`
`CACHED SER
`TEMPLATES
`
`206
`
`USER
`CONFIGURATION
`
`
`
`NEWS
`SERVER
`
`DATA FROM DATA SOURCES
`
`Lenovo Exhibit 1007
`
`Page 1
`
`
`
`U.S. Patent
`
`Nov. 9, 1999
`
`Sheet 1 of 7
`
`5,983,227
`
`
`
`
`
`
`
`02
`
`BROWSER
`
`MYYAH00.COM
`
`04
`
`PAGE
`SERVER
`
`PAGE
`SERVER
`
`PAGE
`SERVER
`
`TCP/IP
`
`2
`
`EDIT
`SERVER
`
`NFS
`
`
`
`
`
`
`
`EDT, MY YAHOO.COM
`
`6
`
`USER
`CONFIGURATION
`DATABASE
`
`DATA FROM
`DATA SOURCES
`
`
`
`EDT
`SERVER
`
`
`
`NETAPP
`
`A/G /
`
`Page 2
`
`
`
`U.S. Patent
`
`Nov. 9, 1999
`
`Sheet 2 of 7
`
`5,983,227
`
`204
`
`200
`
`GLOBAL FRONT
`PAGE TEMPLATE
`
`FRONT PAGE
`GENERATOR
`
`USER'S FRONT
`PAGE TEMPLATE
`
`
`
`CACHED USER
`TEMPLATES
`
`206
`
`USER
`CONFIGURATION
`
`- 104
`- - - - -
`
`- 5212
`
`SHARED
`MEMORY
`
`:
`
`USER's
`FRONT PAGE
`
`(234
`232
`230
`SPORTS | STOCK || NEWS
`| SERVER || SERVER
`SERVER
`
`- - - - - - m - - - - - -
`
`DATA FROM DATA SOURCES
`
`A/G 2.
`
`Page 3
`
`
`
`U.S. Patent
`
`Nov. 9, 1999
`
`Sheet 3 of 7
`
`5,983,227
`
`
`
`<head>
`<title>My Yahoo! news summary for <!-- login --></title>
`</ head>
`<body >
`
`< Center >
`< - - banner : Sun -->
`
`< -- ad -->
`<!-- nav Oa
`</ Center >
`
`<table border=1 cellpadding = 4 CellSpacing=O width=100% '>
`<t r > < t d align=center valign=top width='1%' >
`<!-- left Side: n sum -->
`3 O2
`
`<p></td)
`<td align=center valign=top width="100% '>
`<!-- mode bar: "FRONT PAGE -->
`< -- Channel : n Slum -->
`
`</td) < /t r >
`</table>
`
`< Center >
`<table border = i cellpadding=2 CellSpacing-C width=100% '>
`<!-- mot d: motin. html -->
`</table>
`</ Center >
`< -- Search -->
`
`<!-- copyright : sum. -->
`
`</body >
`</html>
`
`FIG. 3.
`
`Page 4
`
`
`
`U.S. Patent
`US. Patent
`
`7
`
`5,983,227
`0‘2,
`5,
`
`HI
`
`203/
`Nomx\
`
`
`
`ooszmUmz\on\mumz~oo:>\x<X<\xmm<\onH<\<»z<\Hma<\H\H1wm.mmuosouoflfiowuuogIlmv
`
`
`
`AI-mow*~ekmmomm\mmkzuwmIlmv
`
`
`
`All0Hm\wlumconEHunumv
`
`
`
`Allommm
`
`llmv
`
`
`
`
`1’llmVMAllwomvHoflmm\flomvm\OUCOHx3\aomomkwnmwzpmm3[:MvMAllmommomqu\
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Ommgmz‘ovum/NmozJfixogmzKSmuwfimz~M<Og<\mmmh/ENUZKZ<mmqZ\Z<mqmz\QmmbmfiazuUHMOQmMOUm
`
`vow
`
`
`
`
`
`9A11wmmww>du\Qaedooom\3W\un\mHN>MmWESm\Wm3®:\Eoo.oozm>.>E\\”Quuzumc0U.wuflummmwhumEEsm+m3mZmefi£.\:mo<m520mm:nnmn@60E
`
`
`
`
`
`Allmow?Hapg.cpoE1mzucuoEIlflv
`
`MA>Uonv
`4AUm®£\vwAwauAp\vNom:mmHow>HwEE3mmzmcfloozmw
`
`
`>2Amapfluv%Awmmzv
`
`AHEpcv
`
`3II%vat
`
`A>UQQ\V
`
`AHEMQ\V
`
`PageS
`
`Page 5
`
`
`
`US. Patent
`
`Nov. 9, 1999
`
`Sheet 5 0f 7
`
`5,983,227
`
`maxx
`
`@Q393no 53::-szzwE::289:28Ea;2:2E@;UGEEw®u
`
`
`
`mzoEo_zumfim_tsp—SmE:2:
`
`
`
` NE532233:28“;_#522255532.5.:QO_mwmzazm_SE:2:”mzozomw
`
`NonKSn.\
`
`
`
`
`
`358.:88:822
`
`§n~h§fiMx§x232SignEE21.m22Hi:2:
`
`2238222934:8
`
`
`
`mmHo=c
`
`22%Eggs:5;.523:as:2:5.
`
`
`
`Etzafiog825mm525*on:2:$535$53$52mo....2523E3:0
`
`
`-..3:E5592:52mam—zamidsuz
`:53:oz<$52395.3.$2535--355:cm3:33$58
`
`
`
`
`
`
`:2.Es£32:2:5:E5:”E5:2;:3322322
`
`
`$2:a:E.2::35:32552._a?$22.a;
`252:.13>;as:2as::2:E?35:3
`
`
`
`
`“we:figcoma“.
`
`“=55Ema:2:”522:2:2.3:2:.2..S-3.s85;..
`
`
`:5:222::e::22;.8:82:.2..Wyn-a“MW$qu
`
`$3225:3:25mm:25325E.z.a$3.Em32%3:;S-N:mm8.;.
`
`as:EI
`
`\qom
`
`
`
`
`
`<”2:533-2522o29%as:ewas.:3_gauge“
`
`
`
`#6.“9K
`
`:33
`
`Page 6
`
`Page 6
`
`
`
`
`
`
`
`
`
`U.S. Patent
`US. Patent
`
`Nov. 9, 1999
`Nov. 9, 1999
`
`Sheet 6 of 7
`Sheet 6 0f 7
`
`5,983,227
`5,983,227
`
`
`
`metexom33w“5$2:3%:$3.
`
`
`
`”20:35:33?E::52me232m32.mMSmazofifimA
`
`2:215:#22_922::was:<5:5::._3:5:1
`
`3%..“2%232m“:2:322gw:22fl
`
`
`
`Q38255%;“25:5.
`
`
`5322%3:55§:52szLWsmszofihm42
`
`LmEEG%$33192E;55.2was:5222:25:
`
`
`
`22:22035%2223v5%:I
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`SEEKS:9583E45352.SEE;
`
`sowon
`
`x‘3%\§_+33o:FmM\.Eu.L$28<95253.
`
`SEE:ME#2WEE)8.2$5938;.“$32:.
`
`
`
`
`
`
`@383.$35”:$23:$5><wm<ov.22.
`“3.5.3vs.2823
`
`:5
`
`m25%Edz<§<o
`
`
`
`543szEozmcmm8is2oV65
`
`
`
`35%<9.wwofiz<m
`
`52%:er7mmatA.
`
`
`
`mzozfimmCazzsoo69:;
`
`3:5dzz<=o$33%605;
`3.3%.23m2atE8389:;EME20”2:28a:
`
`.8:5:53E5»WEE:SE
`
`
`
`88>55:.55:£32.203be
`
`Em:30:5
`
`6wt
`
`Page 7
`
`Page 7
`
`
`
`
`
`
`
`U.S. Patent
`US. Patent
`
`Nov. 9, 1999
`N0V.9,1999
`
`Sheet 7 of 7
`Sheet 7 0f 7
`
`5,983,227
`5,983,227
`
`
`
`
`
`
`
`
`
`606'
`N s|| || ||
`{ EIHHII
`5|||||
`gillilll
`|||||
`llllll
`
`
`
`F/G6.
`
`
`
`
`I<L
`
`u
`s
`.—
`
`
`
`Page 8
`
`
`
`1
`DYNAMIC PAGE GENERATOR
`
`5,983.227
`
`COPYRIGHT NOTICE
`A portion of the disclosure of this patent document
`contains material which is Subject to copyright protection.
`The copyright owner has no objection to the Xerographic
`reproduction by anyone of the patent document or the patent
`disclosure in exactly the form it appears in the Patent and
`Trademark Office patent file or records, but otherwise
`reserves all copyright rights whatsoever.
`
`BACKGROUND OF THE INVENTION
`The present invention relates to the field of customized
`information presentation. More Specifically, one embodi
`ment of the invention provides a custom page Server which
`can quickly Serve custom pages and is Scalable to handle
`many users simultaneously.
`Web servers for serving static documents (“Web pages”)
`over the global Internet are known. While static documents
`are useful in many applications where the information to be
`presented to each requesting user is the same, Some appli
`cations require customization to appeal to users. For
`example, in presenting news to users, custom pages present
`news which is more relevant to the requesting users than
`Static pages. With Static pages, a user will often have to
`Scroll through many topics not of interest to that user to get
`to the information of interest. With custom pages, the
`information is filtered according to each user's interest.
`Customizing a Server response based on the requester is
`known, however known Systems do not Scale well. One
`method of Serving custom pages is to execute a Script, Such
`as a CGI (Common Gateway Interface) script, or other
`program to collect the information necessary to generate the
`custom page. For example, if the custom page is a news page
`containing Stock quotes, Sports Scores and weather, the Script
`might poll a quote Server to obtain the quotes of interest, poll
`a Sports Score Server to obtain the Scores of interest and poll
`a weather server to obtain the weather. With this
`information, the Server generates the custom page and
`returns it to the user. This approach is useful where there are
`not many requesters and where the attendant delay is accept
`able to users. While it may be the case that current users are
`Willing to wait while pages load in their browsers, growing
`impatience with waiting will turn users away from Such
`Servers, especially as use increases.
`One approach to avoiding long waits is to transfer the
`custom information in non-real-time, So that the information
`is Stored local to the user as it arrives and is presented to the
`user on request. A disadvantage of Such a System is that the
`networks used by the user become clogged with data con
`tinually Streaming to the user and require large amounts of
`local Storage. Another disadvantage is that the locally Stored
`information will become out of date as the Server receives
`new data.
`From the above it is seen that an improved system for
`delivering custom pages is needed.
`SUMMARY OF THE INVENTION
`An improved custom page Server is provided by Virtue of
`the present invention. In one embodiment, user preferences
`are organized into templates Stored in compact data Struc
`tures and the live data used to fill the templates is Stored local
`to the page Server which is handing user requests for custom
`pages. One process is executed on the page Server for every
`request. The proceSS is provided a user template for the user
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`2
`making the request, where the user template is either gen
`erated from user preferences or retrieved from a cache of
`recently used user templates. Each user proceSS is provided
`access to a large region of shared memory which contains all
`of the live data needed to fill any user template. Typically,
`the pages Served are news pages, giving the user a custom
`Selection of Stock quotes, news headlines, Sports Scores,
`weather, and the like. With the live data stored in a local,
`shared memory, any custom page can be built within the
`page Server, eliminating the need to make requests from
`other servers for portions of the live data. While the shared
`memory might include RAM (random access memory) and
`disk Storage, in many computer Systems, it is faster to Store
`all the live data in RAM.
`If the Volume of requests becomes too great for one page
`Server to handle, the System is easily Scaled by adding
`additional page Servers. Each page Server maintains its own
`copy of the live data in its shared memory, and needs to
`maintain only the user templates for the requests it is
`handling, So no communication between page Servers is
`needed.
`A further understanding of the nature and advantages of
`the inventions herein may be realized by reference to the
`remaining portions of the Specification and the attached
`drawings.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`FIG. 1 is a block diagram of a client-server architecture
`according to one embodiment of the present invention;
`FIG. 2 is a Schematic diagram showing how a user's
`custom page is generated from a user configuration, a global
`template and live data.
`FIG. 3 is an illustration of a global front page template as
`might be used to generate user templates.
`FIG. 4 is an illustration of a user template generated from
`the global front page template of FIG.3 as might be used to
`generate a custom uSer page.
`FIG. 5 is an illustration of a user page generated using the
`global template of FIG. 4.
`FIG. 6 is an illustration of how intelligent defaults are
`Selected.
`Two appendices are included at the end of this descrip
`tion. Appendix A is a full listing of the user template shown
`in part in FIG. 4. Appendix B is an HTML source code
`listing of the HTML page used to generate the browser
`display shown in FIG. 5.
`DESCRIPTION OF THE PREFERRED
`EMBODIMENTS
`FIG. 1 shows a client-server system 100 which is used to
`display custom news pages. A custom news page is dis
`played on a browser 102 which obtains the page from a page
`server 104 via Internet 106. While only one browser 102 is
`shown, a typical System will have many browsers connect
`ing and disconnecting to the System.
`The art of client-server systems using HTTP (HyperText
`Transport Protocol) messaging or other protocols is well
`known and will not be addressed in detail here. Essentially,
`browser 102 makes a request for a particular page by
`specifying a Uniform Resource Locator (“URL) for the
`page. In the example shown in FIG. 1, the request is directed
`to the URL “http:/my.yahoo.com/. Normally, this URL is
`directed to the root directory of a machine named my..ya
`hoo.com. AS is the convention in Internet communications,
`browser 102 submits the domain portion (“my.yahoo.com')
`
`Page 9
`
`
`
`3
`of the URL to a name server, Such as name server 108, to
`determine an actual address for the page server 104. Name
`server 108 returns an IP (Internet Protocol) address to
`browser 102 directing it to a page server 104. Where
`multiple page servers 104 are used, name server 108 returns
`IP addresses in a round-robin fashion to distribute the load
`over multiple page servers. Alternatively, name server 108
`might distribute the load more deterministic by tracking
`browser addresses and hashing the browser address to Select
`a page Server 104. It is deterministic in that any given
`browser always accesses the same page Server 104. This
`allows for more efficient caching of user templates, Since
`more cache hits are likely where a given browser always
`returns to one page Server.
`When a page server receives the URL for its root
`directory, it interprets that as a request for the user's custom
`Summary page. The user is determined not from the URL,
`but from a “cookie” provided by browser 102 with the URL.
`Cookies are Strings of data Stored by browsers and Sent along
`with any request to a URL having a domain associated with
`the cookie.
`Page servers 104 obtain the live data from many disparate
`Sources and reformat the data into a form Suitable for use by
`the page Server. Page Servers 104 are coupled, via a network,
`to edit Servers 112, which are used when a user changes his
`or her user template. The user templates are Stored in a user
`configuration database 116 and are Stored and provided to
`edit servers by a network appliance 114 written for this
`purpose. Network appliance 114 is a process tuned to
`quickly locate files in large directories (N400 files/directory)
`and return them to the edit Servers or page Servers. One
`embodiment of network appliance 114 is the F330 fault
`tolerant scalable server Supplied by Network Appliance, of
`Mountain View, Calif.
`In a Specific embodiment, page Servers 104 are micro
`computers running the Unix(R) operating System with 64 to
`128 megabytes of shared memory, page Servers 104 and edit
`servers 112 are coupled using TCP/IP (Transport Control
`Protocol/Internet Protocol) and the user configuration data
`base 116 is a Unix file structure which stores each user
`configuration in a text file. The particular file used by a user
`is a combination of the user's user name and a hash result,
`to allow for quick access when many user configurations are
`Stored. For example, the user configuration for Summary
`“front” page for a user “ash802” might be stored at /de/13/
`y.ash802, where “de” and “13' are hash results of a hash of
`the user name “ash802'.
`FIG. 2 shows in more detail the generation of a custom
`page for a user, using a front page generator 200 and page
`server 104. Front page generator 200 generates a user
`template 202 from a global front page template 204 and a
`user configuration record 206. FIG. 3 shows an example of
`a global front page template. User configuration record 206
`is a record Selected from user configuration database 116.
`The record might have been obtained from a cache, but in
`the preferred embodiment, the records are not cached, the
`user templates are.
`Page Server 104 is shown comprising a page generator
`210, a shared memory 212 for Storing live data and a cache
`214 for caching user templates Such as user template 202.
`Page generator 210 generates a custom front page 218 from
`a user template and the live data Stored in shared memory
`212. Although not shown, custom pages other than the front
`page can be generated in a Similar fashion. Using user
`templates and a shared memory for the live data, page Server
`104 can quickly build custom pages in response to a user
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`5,983.227
`
`4
`request. Where the user template is cached, the page can be
`generated entirely within page Server 104.
`Shared memory 212 is organized as a Set of memory
`mapped files. With memory mapped files, the operating
`System maintains the data in permanent Storage, but perma
`nently caches the files in shared memory 212. This allows
`for quick recovery should a page Server crash, Since all of the
`shared memory can Simply be reloaded from the permanent
`Storage. This is a great feature from a user convenience
`Standpoint, Since the user will never be faced with a situation
`where they have to wait for a Server to rebuild a page for
`them by querying the various data providing Servers, Such as
`sports server 230, stock server 232 and news server 234. As
`should be apparent from this description and FIG. 2, page
`generator 210 can generate custom front page 218 much
`more quickly using shared memory 212 as compared with
`using servers 230, 232, 234 and page template 202. One
`reason for this is that the time it takes to retrieve data from
`shared memory 212 does not appreciably increase relative to
`the bandwidth delay time when more data is retrieved. For
`example, if Stock Server 232 were queried for each indi
`vidual Stock quote, a page with fifty Stock quotes might take
`ten times as long to generate as a page with five Stock quotes.
`One aspect of the present invention is the realization that
`every piece of information a perSon can request on a page is
`Storable in a shared memory closely coupled to a page
`generator. For example, page Server 104 shown in FIG. 2 can
`accommodate 65,000 different symbols for which quotes are
`provided. In one embodiment, all of the stock information
`for all 65,000 symbols is stored in a 13 to 14 megabytes
`section of the shared memory. Where shared memory 212 is
`a 64 MB or 128 MB memory, this leaves sufficient room for
`other data, Such as news headlines, sport Scores, and
`memory used by the operating System for each process
`running on page Server 104. In Some embodiments, shared
`memory 212 is large enough to also accommodate more than
`just news headlines. For example, news Summaries (as
`described further in connection with FIG. 5) can be stored in
`shared memory 212 for quick access.
`As shown in FIG. 2, the user's front page template 202
`does not need to be generated each time, but rather is Stored
`in cache 214. In a preferred embodiment, user templates are
`Stored in cache 214 for long enough to be reused. Some users
`might choose to access their front page only infrequently,
`while others might choose to access their front page hourly.
`Since the pages are customized and dynamic, the user would
`See different information each time, but the Same user
`template would be used each time. Of course, when the user
`edits his or her template, any cached copy of a user template
`is flushed. A garbage-collection proceSS may also flush the
`cache of user pages which have been inactive for Several
`days. In one implementation, cache 214 would accommo
`date 60,000 to 70,000 user templates. Where a particular
`page Server is assigned on a random round robin basis,
`multiple page Servers may cache their own copy of a given
`user template, but where a user is directed always to a
`particular server (except in the case where the particular
`Server fails and a secondary server is used), that page server
`will be the only one which needs to cache that users user
`template. Even where the round robin name Server Scheme
`is used, Some browserS may cache IP addresses, even longer
`than the specified “time to live” variable associated with the
`IP address, in order to save the time required to obtain an IP
`address each time. With Such a browser, the user is effec
`tively directed to the same page Server each time and the
`Server Side of the page Serving System does not need to direct
`users to particular page Servers. With newer browsers,
`
`Page 10
`
`
`
`5,983.227
`
`S
`however, the “time to live” variable is honored and new
`requests are made for IP addresses after the “time to live”
`has expired. In these cases, if the assignment of a user to a
`single page server is desired, name server 108 (see FIG. 1)
`will use the user name from the provided cookie or the user's
`IP address to assign a page Server based on a hash of the user
`name or IP address.
`FIG. 3 is an illustration of global user template 204.
`Global user template 204 is an HTML (HyperText Markup
`Language) document with additional tags as placeholders
`for live data. Several placeholders 302 are shown in FIG. 3.
`FIG. 4 is an illustration of user template 202 as might be
`generated from global user template 204 (see FIG. 3) and a
`user configuration record 206. A full listing of user template
`202 is included herewith in Appendix A. User template 202
`is determined by the user configuration and is independent
`of the live data, therefore it can be cached without needing
`to be updated, unless the user chooses to edit the configu
`ration information. Preferably, the user templates are cached
`rather than the user configuration, to Save a step and reduce
`the time to respond to a request for the page. Caching is
`more effective where the typical user makes Several requests
`in a short time span and then doesn’t make any requests for
`a long period of time.
`Essentially, user template 202 contains the information
`about the user which does not change until the user changes
`his or her preferences. Of course, the System operator could
`choose to make changes to how the System operates, thus
`requiring changes to the user preferences and user templates.
`User template 202 is shown comprising internal variables
`Such as a time Zone and demographic information. The
`demographic information, on the Second line in FIG. 4 is
`used for selection of an advertisement which will be part of
`the custom page. In this example, the advertisement is
`targeted by the demographic information in the user tem
`plate “:M,85,95035,T,” indicating that a suitable ad should
`be targeted to a male user, age 85, located in Zip code 95035,
`etc. AS shown, the portfolio Section contains Selected Stock
`Symbols, the Scoreboard Section contains Selected team
`Symbols, and the weather Section contains Selected weather
`cities/Zip codes.
`The Selections of Stock quote Symbols, team Scores, and
`weather cities are set by the user. In a preferred embodiment,
`intelligent defaults are Selected by the System prior to user
`Selection, So that users unfamiliar with the customization
`proceSS will nonetheless be able to View non empty custom
`pages. This is described in further detail below in connection
`with FIG. 6.
`FIG. 5 is an illustration of a user front page 218 returned
`by page server 104. User front page 218 as shown in FIG.
`5 includes many elements, Some of which are described here
`in further detail. User front page 218 is built according to a
`user template and live data. The user template Specifies, for
`example which quotes are shown in the portfolio module,
`which cities are displayed in the weather module, etc. Each
`of the modules 504 can be customized by a user and moved
`about front page 218. The modules 504 are also reusable, in
`that any customized module which appears on multiple
`pages can be edited from any one of those pages and the
`edits will be reflected on each of the pages. Other custom
`pages for the user can be viewed by Selecting one of the page
`buttons 502 appearing below the header. Other pages and
`utilities can be selected using the buttons 508 which are part
`of the header.
`In addition to all of the live date shown in FIG. 5 being
`Stored in the shared memory, Summaries from each of the
`
`6
`major news topics can also be Stored in the shared memory
`and viewed by pressing on the news topic header, Such as
`news topic header 506. As should be noted, the page
`generator can also intelligently display dates 510 customized
`for a particular user, using a time Zone variable in the user
`template. This time Zone variable is shown as the first line
`in user template 202 in FIG. 4. In addition to being able to
`modify each of the modules, in many cases the order of
`appearance of the modules is customizable. For example, the
`order of the various sections of user template 202 shown in
`FIG. 4 is not fixed.
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`The preference editing process can be initiated by the user
`pressing the appropriate edit button 512. AS explained
`above, once the editing process is complete, the user tem
`plate is flushed from the cache and regenerated. Since each
`of the news Stories is essentially a Static page linked to a
`headline shown in the news Section, these can simply be
`linked to Static pages on a news Server.
`Referring now to FIG. 6, an illustration of intelligent
`defaulting for populating a user template, and consequently
`a user Summary page. AS part of a registration process, a user
`indicates, among other things, his or her Zip code. This Zip
`code is used to locate an approximate longitude and latitude
`for the user using a zip code lookup table 602. This allows
`the user's location to be located on a map 604. Map 604
`provides city boundaries and, with team location table 606,
`also provides locations for various Sports teams which can
`be selected in a Sports module. In Selecting a default
`predetermined number of cities and Sports teams for inclu
`Sion as initial Selections for a particular user, a circle is
`drawn around the user and increased in diameter until the
`circle envelopes a Suitable predetermined number of cities
`and Sports teams. In this way, each user is guaranteed a
`default number of nearby teams and cities for Sports and
`weather, respectively. While this assumes that the user is
`interested in only the teams nearest the user, the System can
`be arranged to provide intelligent defaults where geographic
`anomalies are known to exist. Geographic anomalies occur
`in communities which have more loyalty to distant teams
`than nearby teams, Such as might occur when the distant
`team is much better than the nearby team or when the nearby
`team recently moved to a distant location. In any case, the
`user is allowed customize his or her pages beginning with
`the intelligent defaults Selected.
`Other intelligent defaults can be provided in other con
`texts. For example, the header of user front page 218
`includes a button 508 labelled “my web” which, when
`pressed, would lead the user to a custom listing of web sites.
`The initial defaults for that custom listing of web sites might
`be generated based on the keywords of interest to that user
`or based on the news topics, Sports teams or weather cities
`Selected by the user.
`The above description is illustrative and not restrictive.
`Many variations of the invention will become apparent to
`those of skill in the art upon review of this disclosure. The
`Scope of the invention should, therefore, be determined not
`with reference to the above description, but instead should
`be determined with reference to the appended claims along
`with their full Scope of equivalents.
`
`Page 11
`
`
`
`5,983,227
`
`APPENDIX A
`
`Listing of a User Template
`
`<!-- timezone: —8,PT 0 -->
`<!-- ad:M,85,95035,T,* 792 -->
`<!--
`portfolio:Quotes,pf,1,1, ADJIfNYAfIXIC, ASPX,AXAX,YHOO,NSCP,IOM,NSCP,YHOO
`2836 -->
`<! --
`scoreboard:NCAAFSSC,NHLSAN,MLSSAN,NCAAFSSS,ALOAK,NBAGSW,NFLOAK,NCAAFCCD,NF
`LSFO,NLSFO 3803 -->
`<!-- weather:f,30901,uk710nd0,94601,95101 4368 - - >
`<!--
`modeibar:“FRONTiPAGEl”,.hier=News+Summary%3aEdit&.done=http://my.yahoo.com/
`news/summary.htm1?v 4538 -->
`<!-- summary2:3,rt,rw,z0000,mlb,re,vf 4597 -->
`<!-- motd:us,motn.htm1 4696 -->
`<html>
`<head>
`<title>My Yahoolnews summary for ash802</title>
`</head>
`<body>
`<center>
`<map name=“t0p”><area shape=rect coords=“0,0,45,66“
`href=“/news/summary.html?V”><area shape=rect coords=“45,0,90,66”
`href=“/intemet/directory.html?V”><area shape=rect coords=“90,0,135,66”
`href=“/contacts/Whiteipages.html?V”><area shape=rect coords=“135,0,346,66”
`href=“/?myHome”><area shape=rect coords=“346,0,389,66”
`href=“/he1p/news/summary.html”><area shape=rect coords=“389,0,431,66”
`href=“http://edit.my.yahoo.com/config/evaliprofile”><area shape=rect
`coords=“431,0,477,66” href=“http://edit.my.yahoo.com/config/toffly”>
`</map>
`<center><a href=“/bin/top,menu"><img border=0 height=62 Width=477 ismap
`usemap=“#top” src=“http://WWW.yahoo.com/images/my/banner/news1.gif’
`a1t=“My Yahoo!”></a></center>
`
`<p>
`<center><form action=“http://search.my.yahoo.com/search/my”> <font
`size=“—2”>[ <a
`href=“http://edit.my.yahoo.com/config/setiattr?attr=s10c&value=b&.done=htt
`p://my.yahoo.com/news/summary.html?V”>move to bottom</a> ] </font><input
`size=25 name=p> <font size=“—1”> <input type=submit
`value=Search><input type=hidden name=n value=“25”> <a
`href=“http://search.my.yahoo.com/search/my/options”>Options</a></font></fo
`rm></center><p>
`<center>
`able border=0 cellspacing=0 cellpadding=2>
`r>
`c a ign=cen er><font
`or=“#000000”><b>Secti0ns:</b> </font></td>
`a ign=cen er bgco10r=“#dcdcdc”><font
`or=“#000000”><b>Front Page</b></font></td>
`> l </td>
`a ign=cen er><a href=“/news/business/summary.html?V”>Business</a></td>
`> l </td>
`a ign=cen er><a
`ref=“/news/portfolioisummaryhtml7V”>Portfolios</a></td>
`> l </td>
`a ign=cen er><a
`ref=“/news/entertainment/summary.html7V”>Entertainment</a></td>
`c > l </td>
`c a ign=cen er><a href=“/news/sports/summary.html?V”>Sports</a></td>
`c > l </td>
`< c a ign=cen er><a
`href=“/news/technology/summary.html?V”>Techno10gy</a></td>
`
`DAD/\AAOno
`AAACT‘AACT‘AAAA
`
`
`
`
`
`
`
`
`
`</tab e>
`</center>
`</center>
`<tab1e border=1 cellpadding=4 cellspacing=0 width=“100%”>
`<tr><td align=center valign=top width=“1%”>
`<a
`href=“http://edit.my.yahoo.com/config/evalileft7mode=1eftinsum&.done=http%
`3a%2f%2fmy%2eyahoo%2ecom%2fnews%2fsummary%2ehtml%3fV”><img border=0
`src=“http://Www.yahoo.com/images/my/left.gif’a1t=“edit 1eft”></a>
`<tab1e border=0 cellpadding=1 cellspacing=0 width=“100%”>
`<tr bgcolor=“#dcdcdc”><td colspan=4 width=“100%”><tab1e border=0
`cellpadding=2 cellspacing=0 width=“100%”><tr><td width=“100%”><b><font
`size=“+1”>P<font size=“+0">ORTFOLIOS</font></font></b></td><td
`
`Page 12
`
`Page 12
`
`
`
`
`
`
`
`<hr size=0><table border=0 cellpadding=2 cellspacing=0 Width=“100%”>
`<tr bgcolor=“#dcdcdc”><td colspan=3 Width=“ 00%”><table border=0
`cellpaccing=2 cellspacing=0 Width=“100%”><tr><td Width=“100%”><a
`href=“/my/?http://Weather.yahoo.com/”><b><font size=“+1”>W<font
`size=“+0">EATHER</font></font></b></a></tc ><td align=right><a
`href=“ 1 tp://edit.my.yahoo.com/config/setiwni?.done=http://my.yahoo.com/ne
`ws/summary.html?V”><img align=absmiddle border=0 height=13 Width=25
`src=“h t3://Www.yahoo.com/images/my/persona ize.gif’
`alt=“eci ”></a></td></tr></table></td></tr>
`<tr><tc align=center colspan=3><font size=0>c ick on city for extended
`forecas </font></td></tr>
`</table>
`
`
`
`9
`
`10
`
`5,983,227
`
`APPENDIX A-continued
`
`Listing of a User Template
`
`align=right><a
`href=“http://edit.my.yahoo.com/config/evaliquotes?.d