throbber
United States Patent
`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”>&nbsp; <input type=submit
`value=Search><input type=hidden name=n value=“25”> &nbsp; <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>&nbsp;&nbsp;</font></td>
`a ign=cen er bgco10r=“#dcdcdc”><font
`or=“#000000”><b>Front&nbsp;Page</b></font></td>
`>&nbsp;l&nbsp;</td>
`a ign=cen er><a href=“/news/business/summary.html?V”>Business</a></td>
`>&nbsp;l&nbsp;</td>
`a ign=cen er><a
`ref=“/news/portfolioisummaryhtml7V”>Portfolios</a></td>
`>&nbsp;l&nbsp;</td>
`a ign=cen er><a
`ref=“/news/entertainment/summary.html7V”>Entertainment</a></td>
`c >&nbsp;l&nbsp;</td>
`c a ign=cen er><a href=“/news/sports/summary.html?V”>Sports</a></td>
`c >&nbsp;l&nbsp;</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

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