`
`Ill
`
`lOll
`
`1I
`US005894554A
`
`liii
`
`liii
`
`101111111 OM
`
`11111
`
`United States Patent
`
`Lowery et al
`
`SYSTEM FOR MANAGING DYNAMIC WEB
`PAGE GENERATION REQUESTS BY
`INTERCEPTING REQUEST AT WEB
`SERVER AND ROUTING TO PAGE SERVER
`THEREBY RELEASING WEB SERVER TO
`PROCESS OTHER REQUESTS
`
`Inventors Keith Lowery Richardson Andrew
`Levine Piano Ronald
`Howell
`Rowlelt all of Tex
`
`Assignee
`
`thfoSpinner
`
`Inc. Richardson Tex
`
`AppI No 08/636477
`
`Filed
`
`Apz 23 1996
`
`list. Cl.6
`U.S Cl
`
`GO6F 13/14 GO6F 13/20
`395/200.33
`395/200.68
`3951200.75 395/680 707/10 707/104
`Field of Search
`358/400 395/800
`3951700 200.68 200.75 200.53 680 200.33
`707/104
`10
`
`References Cited
`
`U.S PATENT DOCUMENTS
`
`4866706
`5341499
`5392400
`5404522
`5404523
`5404527
`
`9/1989
`
`8/1994
`
`2/1995
`
`4/1995
`
`4/1995
`
`4/1995
`
`Christophersen
`
`et al
`
`Doragh
`Berkowitz
`et al
`Cannon et al
`DellaPera et al
`Irwin et al
`
`370/85.7
`
`3951700
`
`395/200
`
`395/650
`
`395/650
`
`395/700
`
`Patent Number
`
`Date of Patent
`
`5894554
`
`Apr 13 1999
`
`5452460
`5532838
`5751956
`5761673
`
`9/1995
`
`Distdberg Ct al
`7/1996 Barbari
`
`5/1998
`
`6/1998
`
`Kirsch
`Bookman et al
`
`395/700
`
`358/400
`
`395i200.33
`
`707/104
`
`OTHER PUI3LICATIONS
`
`Beyond the Web Excavating the Real World Via Mosaic
`Goldberg et al Second International WWW Oct 17 1994
`PCI International Search Report Aug 21 1997
`
`Primary EraminerThomas
`Lee
`Assistant ExamjnerRehana Perveen
`Attome Agent or FirmBlakely Sokoloff Taylor
`Zafman LLP
`
`ABSTRACT
`
`for
`
`The present
`method and apparatus
`invention teaches
`creating and managing custom Web sites Specifically one
`embodiment of the present
`invention
`claims
`computer-
`dynamic Web page
`implemented method for managing
`Web
`server
`to
`the computer
`generation
`request
`implemented method comprising the steps of routing the
`from the Web server to page server the page server
`request
`receiving the request and releasing the Web server to process
`other
`requests processing the request
`the processing being
`performed by the page server concurrently with the Web
`server as the Web server processes the other requests and
`Web
`page
`dynamically generating
`the
`in response to
`the Web page including data dynamically
`retrieved
`request
`from one or more data sources
`
`11 Claims Drawing Sheets
`
`CONNECTION
`CACHE 4121
`
`REQUEST
`
`DATA
`SOURCE
`
`41
`
`Petitioner IBM – Ex. 1001, p. 1
`
`
`
`01
`
`01 01
`
`iQ
`
`MEDIUM
`STORAGE
`
`DATA
`
`FIG
`
`Petitioner IBM – Ex. 1001, p. 2
`
`
`
`U.S Patent
`
`Apr 13 1999
`
`Sheet
`
`of
`
`5894554
`
`WEB
`CLIENT
`
`j4/REQUEST
`
`200
`
`WEB SERVER
`
`WEBSERVEi
`EXECUTABLE
`
`WEB
`PAGE
`
`201EjJ
`
`2011
`
`WEB
`PAGE
`
`2012
`
`WEB
`PAGE
`
`201n
`
`Qi
`
`REQUEST
`
`WEB SERVER
`
`WEB SERVER
`
`TABL
`
`202E
`
`WEB
`PAGE
`
`2021
`
`WEB
`PAGE
`
`2022
`
`WEB
`PAGE
`
`202
`
`FIG PRIOR ART
`
`Petitioner IBM – Ex. 1001, p. 3
`
`
`
`U.S Patent
`
`Apr 13 1999
`
`Sheet
`
`of
`
`5894554
`
`CLIENT MAKES URL REQUES
`
`300
`
`URL EXAMINED BY WEB BROWSER TO
`DETERMINE APPROPRIATE WEB SERVER
`
`302
`
`REQUEST TRANSMITTED
`TO
`APPROPRIATE WEB SERVER__
`
`304
`
`WEB SERVER EXAMINES URL TO DETERMINE WHETHER
`IT IS AN HTML DOCUMENT OR
`CGI APPLICATION
`
`306
`
`HTML
`DOCUMEN
`
`308
`
`310
`WEB SERVER LOCATES DOCUMENT
`
`316
`
`CGI
`APPLICATION
`314
`
`SERVER LOCATES CGI APPLICA
`
`312
`DOCUMENT TRANSMITTED
`BACK
`TO REQUESTING WEB BROWSER
`FOR FORMATTING AND DISPLAY
`
`318
`
`___________________
`CGI APPLICATION
`EXECUTES
`AND OUTPUTS HTML OUTPUT
`________________________
`
`320
`
`HTML OUTPUT TRANSMITTED
`BACK TO REQUESTING WEB BROWSER
`FOR FORMATTING AND DISPLAY
`
`\iRASA1
`FIG PRIOR ART
`
`Petitioner IBM – Ex. 1001, p. 4
`
`
`
`CID
`
`01
`
`Ui
`
`CACHE4121
`CONNECTION
`
`FIG
`
`INTERCEPTOR
`
`SERVER
`
`WEB
`
`REQUEST
`
`Petitioner IBM – Ex. 1001, p. 5
`
`
`
`U.S Patent
`
`Apr 13 1999
`
`Sheet
`
`of
`
`5894554
`
`PROCE
`
`WEB BROWSER SENDS URL REQUEST
`
`500
`
`WEB SERVER RECEIVES URL REQUESTI
`
`502
`
`INTERCEPTOR INTERCEPTS HANDLING OF REQUEST
`
`504
`
`INTERCEPTOR CONNECTS TO DISPATCHER AND SENDS
`REQUEST TO DISPATCHER
`
`506
`
`DISPATCHER DETERMINES WHICH PAGE
`SERVERS CAN HANDLE REQUEST
`
`508
`
`DISPATCHER DETERMINES WHICH PAGE SERVER
`IS PROCESSING FEWEST REQUESTS
`
`510
`
`DISPATCHER SENDS REQUEST TO APPROPRIATE PAGE SERVER
`
`512
`
`PAGE SERVER RECEIVES REQUEST AND PRODUCES HTML DOCUMENT1_
`
`514
`
`PAGE SERVER RESPONDS TO DISPATCHER WITH
`NOTIFICATION OF NAME OF CACHED HTML DOCUMENT
`
`4516
`
`DISPATCHER RESPONDS TO INTERCEPTOR WITH DOCUMENT NAME
`
`518
`
`INTERCEPTOR REPLACES REQUESTED URL WITH
`NEWLY GENERATED HTML DOCUMENT
`
`520
`
`WEB SERVER SENDS NEW HTML DOCUMENT TO CLIENTJ22
`
`WEB BROWSER RECEIVES AND DISPLAYS HTML
`f-
`DOCUMENT CREATED BY PAGE SERVER
`
`ONG
`
`524
`
`FIG
`
`Petitioner IBM – Ex. 1001, p. 6
`
`
`
`5.894554
`
`SYSTEM FOR MANAGING DYNAMIC WEB
`PAGE GENERATION REQUESTS BY
`INTERCEPTING REQUEST AT WEB
`SERVER AND ROUTING TO PAGE SERVER
`THEREBY RELEASING WEB SERVER TO
`PROCESS OTHER REQUESTS
`FIELD OF THE INVENTION
`
`The present
`relates to the field of Internet
`technology Specifically the present invention relates to the
`creation and management of custom World Wide Web sites
`
`invention
`
`10
`
`Tools that generate CGI applications
`do not however
`resolve the problem of managing numerous Web pages and
`requests at Web site For example
`single company may
`maintain hundreds of Web pages at
`their Web site Current
`Web server architecture also does not allow the Web server
`to efficiently manage the Web page and process Web client
`these hundreds of Web
`requests Managing
`pages
`coherent manner and processing all requests for access to the
`Web pages
`is thus
`task Existing development
`tools are limited in their capabilities
`to facilitate dynamic
`Web
`and do not address the issue of
`page generation
`managing Web requests or Web sites
`
`difficult
`
`in
`
`SUMMARY OF THE INVENTION
`
`It
`
`is therefore an object of the present invention to provide
`method and apparatus for creating and managing custom
`Web
`sites Specifically the present
`invention
`claims
`method and apparatus for managing
`dynamic web
`generation requests
`
`page
`
`In one embodiment
`
`claims
`
`the present
`invention
`method for managing
`computer-implemented
`dynamic
`Web page generation request to Web server
`the computer-
`implemented method comprising
`the steps of routing the
`request from the Web server to
`page server
`the page server
`receiving the request and releasing the Web server to process
`other requests processing the request
`the processing being
`performed by the page server concurrently with the Web
`server as the Web server processes the other requests and
`Web
`page
`dynamically
`generating
`in response to the
`the Web page including data dynamically
`request
`retrieved
`from one or more data sources Other embodiments also
`to the one or more data sources
`include connection caches
`and custom HTML
`for each page server
`page
`the Web page
`extension templates for configuring
`features and
`Other objects
`of
`the present
`advantages
`invention will be apparent from the accompanying drawings
`and from the detailed description
`
`caches
`
`20
`
`30
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`FIG illustrates
`typical computer system in which the
`invention operates
`present
`FIG illustrates
`typical prior art Web server environ
`ment
`FIG illustrates
`ment
`in the form of
`FIG
`
`illustrates
`
`one
`
`embodiment
`
`of
`
`the presently
`
`typical prior art Web server environ
`flow diagram
`
`claimed invention
`FIG illustrates the processing of Web browser request
`in the farm of
`flow diagram according to one embodiment
`of the presently claimed invention
`
`DErAILED DESCRIPTION OF THE
`PREFERRED EMBODIMENT
`
`The present
`invention relates to method and apparatus
`for creating and managing custom Web sites In the follow
`ing detailed description numerous specific details are set
`forth in order to provide
`thorough understanding of the
`present invention It will be apparent to one of ordinary skill
`in the art however
`that
`these specific details need not be
`used to practice the present
`invention In other instances
`well-known
`interfaces and processes
`structures
`been shown in detail
`in order not to unnecessarily obscure
`the present
`invention
`FIG illustrates
`typical computer system 100 in which
`the present invention operates The preferred embodiment of
`
`have not
`
`60
`
`65
`
`text in
`
`special
`
`that
`
`DESCRIPTION OF RELATED ART
`The World Wide Web the Web represents all of the
`computers on the Internet
`that offer users access to infor
`documents or Web
`mation on the Internet via interactive
`pages These Web pages contain hypertext
`links that are used
`any combination of graphics audio video and
`to connect
`non-linear non-sequential manner Hypertext
`links
`known as
`are created
`software language
`using
`Language HTML
`HypeYIext Mark-Up
`created Web pages
`reside on the Web on Web
`Once
`servers or Web sites
`Web site can contain numerous Web
`pages Web
`client machines running Web browsers can
`access these Web pages at Web sites via
`communications
`protocol known as HypeYIext Transport Protocol HITP
`Web browsers are software interfaces that
`run on World
`Wide Web clients to allow access to Web sites via
`simple
`user interface AWeb browser allows Web client
`to request
`particular Web page from Web
`site by specifying
`Uniform Resource Locator URL URL is Web address
`the Web page and its location on the Web
`identifies
`When
`the URL the Web
`the appropriate Web site receives
`page corresponding to the requested URL is located and if
`required HTML output
`is generated The HTML output is
`then sent via HTTPto the client for formatting on the clients
`screen
`Although Web pages and Web sites are extremely simple
`to create the proliferation of Web
`sites on the Internet
`number of problems The scope and ability of
`highlighted
`Web page designer to change the content of the Web page
`was limited by the static nature of Web pages Once created
`Web page remained static until
`it was manually modified
`This in turn limited the ability of Web
`effectively manage their Web sites
`The Common Gateway Interface CGI standard was
`developed to resolve the problem of allowing dynamic
`to be included in Web pages CGI calls or proce
`content
`dures enable applications
`created
`to generate
`dynamically
`HTML output
`thus creating Web pages with dynamic con
`tent Once created these CGI applications do not have to be
`modified in order to retrieve new or dynamic data Instead
`when the Web page is invoked CGI calls or procedures
`data and to
`are used to dynamically
`retrieve the necessary
`Web page
`generate
`CGI applications
`the ability of Web site
`also enhanced
`to manage Web
`administrators
`sites Administrators
`no
`longer have to constantly update static Web pages
`number
`for CGI based
`of vendors have
`developed
`tools
`the issue of dynamic Web page
`development
`to address
`generation Companies like SpidcrmM and Bluestone for
`tools for CGI
`have
`example
`each
`created
`development
`based Web
`development Another
`page
`company Haht
`Software has developed Web page generation tool
`BASIC-like scripting language instead of
`uses
`scripting language
`
`site managers to
`
`that
`
`CGI
`
`Petitioner IBM – Ex. 1001, p. 7
`
`
`
`5894.554
`
`that perform the processing of Web client
`requests Each
`number of Web pages 2011n
`Web server may have
`and 2021n Depending on the URL specified by the Web
`client 200 the request may be routed by either Web server
`executable 201E to Web page 201
`for example or from
`server executable 202E to Web page 202
`Web
`Web
`client 200 can continue making URL requests
`other Web pages Web client 200 can also use hyperlinks
`within each Web page to jump to other Web pages or to
`locations within the same Web page
`to other
`FIG illustrates this prior art Web server environment
`flow diagram In processing block 300 the
`the form of
`URL request This URL request
`Web
`client makes
`examined by the Web browser
`to determine the appropriate
`15 Web server to route the request
`to in processing block 302
`In processing block 304 the request is then transmitted from
`the Web browser
`to the appropriate Web server and in
`processing block 306 the Web server executable examines
`the URL to determine whether
`is HTML document or
`is for an HTML document
`20 CGI application
`the request
`308 then the Web server executable locates the document in
`processing block 310 The document
`is then
`transmitted
`through the requesting Web browser for formatting and
`back
`display in processing block 312
`the URL request
`is for CGI application 314 however
`the Web server executable locates the CGI application in
`processing block 316 The CGI application then executes
`and outputs HTML output
`in processing block 318 and
`finally the HTML output
`is transmitted back to requesting
`Web browser for formatting and display in processing block
`320
`This prior art Web server environment does not however
`provide any mechanism for managing the Web requests or
`the Web sites As Web sites grow and as the number of Web
`increase Web
`and
`site management
`clients
`requests
`crucial need
`becomes
`large Web site may receive thousands of
`For example
`single day Current Web
`requests or hits in
`servers
`single machine namely
`process each of these requests on
`the Web server machine Although these machines may be
`running multi-threaded operating
`systems that allow
`threads all
`transactions to be processed by independent
`single machine sharing
`the threads are nevertheless on
`45 processor As such the Web executable thread may hand off
`processing thread but both threads will still
`request
`to be handled by the processor on the Web
`have
`server
`machine When numerous requests are being simultaneously
`single machine the Web
`processed by multiple threads on
`slow down significantly
`and become
`can
`so server
`inefficient The claimed invention
`addresses
`
`to retrieve
`
`in
`
`is
`
`it
`
`If
`
`25
`
`If
`
`to
`
`the present invention is implemented on an IBM Personal
`Computer manufactured by IBM Corporation of Armonk.
`N.Y An alternate embodiment may be implemented on an
`RS/6OOOTh Workstation manufactured by IBM Corporation
`of Armonk N.Y It will be apparent to those of ordinary skill
`in the art that other computer system architectures may also
`be employed
`
`In general
`
`tion or
`
`such computer systems as illustrated by FIG
`bus 101 for communicating
`information
`comprise
`processor 102 coupled with the bus 101
`for processing
`information main memory 103 coupled with the bus 101 for
`storing information and instructions for the processor 102
`read-only memory 104 coupled with the bus 101 for storing
`for the processor 102
`static information and instructions
`display device 105 coupled with the bus 101 for displaying
`an input device 106
`computer
`information
`for
`user
`information
`coupled with the bus 101 for communicating
`and command selections to the processor 102 and
`mass
`storage device 107 such as magnetic disk and associated
`disk drive coupled with the bus 101 for storing information
`data storage medium 108 containing
`and instructions
`information is configured to operate with mass stor
`digital
`107 to allow processor 102 access to the digital
`age device
`on data storage medium 108 via bus 101
`information
`wide variety of general
`Processor 102 may be any of
`as the Pen
`such
`purpose processors or microprocessors
`tiumTh microprocessor manufactured
`by InteIm Corpora
`by IBM
`the RSI6OOO processor manufactured
`in
`Corporation It will be apparent
`to those of ordinary skill
`that other varieties of processors may also
`the art however
`be used in particular computer system Display device 105
`liquid crystal device cathode ray tube CR1 or
`may be
`other suitable display device Mass storage device 107 may
`hard disk drive floppy disk drive
`be
`conventional
`CD-ROM drive or other magnetic or optical
`data storage
`device for reading and writing information stored on
`hard
`CD-ROM magnetic tape or other
`floppy disk
`disk
`storage medium Data storage
`data
`magnetic or optical
`floppy disk CD-ROM
`medium 108 may be
`hard disk
`magnetic tape or other magnetic or optical
`data storage
`medium
`In general processor 102 retrieves processing instructions
`and data from data storage medium 108 using mass storage
`device 107 and downloads this information into random
`Processor 102 then
`access memory 103 for execution
`an instruction stream from random access memory
`executes
`103 or read-only memory 104 Command selections and
`input at input device 106 are used to direct
`the
`information
`executed by processor 192 Equivalent
`flow of instructions
`input device 106 may also be
`pointing device such as
`conventional mouse or trackball device The results of this
`processing execution are then displayed on display device
`105
`The preferred embodiment of the present
`invention
`software module which may be executed
`implemented as
`computer system such as computer system 100 in
`on
`conventional manner Using well known techniques
`the
`application software of the preferred embodiment
`is stored
`on data storage medium 108 and subsequently loaded into
`and executed within computer system 100 Once initiated
`the software of the preferred embodiment
`operates in the
`manner described below
`typical prior art Web server environ
`FIG illustrates
`ment Web client 200 can make URL requests to Web server
`201 or Web server 202 Web servers 201 and 202 include
`Web server executables 201E and 202E respectively
`
`highly
`this need by
`architecture to facilitate the creation
`utilizing
`partitioned
`and management of custom Web sites and servers
`FIG
`one
`embodiment
`of
`the presently
`claimed invention Web client 200 issues
`T.JRL request
`to determined proper
`routing In this
`is processed
`is routed to Web
`server 201
`embodiment
`the request
`server executable 201E processing the
`Instead of Web
`URL request however
`400 intercepts
`the
`Interceptor
`to Dispatcher 402 In one embodiment
`request and routes it
`Interceptor 400 resides on the Web server machine as an
`extension to Web server 201 This embodiment
`is appropri
`ate for Web servers such as Netsite from Netscape that
`number of public domain Web
`support such extensions
`such as NCSATh
`from the National Center
`servers
`of illinois
`Supercomputing Applications
`the University
`however
`do not provide support
`
`illustrates
`
`Urbana-Champaign
`
`at
`
`that
`
`for
`
`for
`
`is
`
`55
`
`60
`
`65
`
`Petitioner IBM – Ex. 1001, p. 8
`
`
`
`5.894.554
`
`this type of extension Thus in an alternate embodiment
`Interceptor 400 is an independent module connected
`via an
`intermediate program to Web server 201 This intermedi
`simple CGI application program that
`ate program can be
`Interceptor 400 to Web server 201 Alternate inter
`connects
`mediate programs the perform the same functionality
`also be implemented
`
`can
`
`Alternately Dispatcher 402 also has the ability to deter
`mine whether
`Page
`particular
`server
`already has
`in the Page servers
`cached
`necessary data
`page
`described
`in more
`detail below under
`the heading
`Perfonnance Dispatcher 402 may thus determine that
`Page server 4041 and 4042 are both logged into Data
`source 408 but
`that Page server 4042 has the financial
`in Page server 4042s page
`information already cached
`route the URL
`cache In this case Dispatcher
`402 will
`to Page server 4042 to more efficiently process the
`to request
`
`cache
`
`the
`
`15
`
`20
`
`25
`
`client
`
`request
`Finally Dispatcher 402 may determine that
`number or
`all Page servers 4041n are logged into Data source 408
`In this scenario Dispatcher 402 can examine the number of
`requests that each Page server is servicing and route the
`request to the least busy page server This load balancing
`can significantly
`capability
`increase performance at
`busy
`Web site and is discussed in more detail below under the
`heading Scalability
`If for example Page server 4042 receives the request
`Page server 4042 will process the request While Page
`server 4042 is processing the request Web server execut
`able 201E can
`other Web
`concurrently
`process
`requests This partitioned architecture thus allows both Page
`server 4042 and Web server executable 201E to simul
`taneously process different
`thus
`increasing the
`requests
`efficiency of the Web site Page server 4042 dynamically
`Web page in response to the Web client request
`generates
`and the dynamic Web page is then either transmitted back to
`requesting Web
`client 200 or stored on
`machine that
`accessible to Web server 201 for later retrieval
`One embodiment of the claimed invention also provides
`Web page designer with HTML extensions or dyna tags
`These dyna tags provide customized HTML functionality
`to
`Web page designer
`to allow the designer to build custom
`ized HTML templates that specify the source and placement
`of
`data For example
`in one embodiment
`retrieved
`dynatext HTML extension tag specifies
`data source and
`column name to allow the HTML template to identify the
`data source to log into and the column name from which to
`retrieve data Alternatively dyna-anchor
`tags allow the
`designer to build hyperlink queries while dynablock tags
`the designer with the ability
`provide
`to iterate through
`blocks of data Page servers use these HTML templates to
`create dynamic Web pages Then as described above these
`dynamic Web pages are either transmitted back to requesting
`Web client 200 or stored on machine that
`is accessible
`to
`Web server 201 for later retrieval
`
`is
`
`The presently
`numerous
`claimed
`invention
`provides
`over prior art Web servers including advantages
`in the areas of performance
`security extensibility and
`
`advantages
`
`scalability
`
`Performance
`
`illustrated
`
`One embodiment of the claimed invention utilizes con
`nection caching and page caching
`to improve performance
`Each Page server can be configured to maintain
`cache of
`to numerous data
`connections
`sources For example
`as
`in FIG Page server 4041 can retrieve data
`from data source 406 data source 408 or data source 410
`Page server 4041 can maintain connection cache 4121
`connections to each of data source 406 data
`containing
`source 408 and data source 410 thus eliminating
`connect
`times from the Page servers to those data sources
`Additionally another embodiment of
`the present inven
`tion supports the caching of finished Web pages to optimize
`
`to
`
`65
`
`to
`
`hits at
`
`has
`
`same
`
`In one embodiment of
`the invention Dispatcher 402
`different machine than Web server 201 This
`resides on
`embodiment overcomes the limitation described above in
`prior art Web servers wherein all processing is performed by
`single machine By routing the request to
`the processor on
`different machine than the Web
`Dispatcher 402 residing on
`server executable 201E the request can then be processed
`than the Web
`different processor
`by
`server executable
`201E Web server executable 201E is thus free to con
`requests on Web server 201 while the
`tinue servicing client
`is processed off-line at
`the machine on which
`request
`Dispatcher 402 resides
`Dispatcher 402 can however
`also reside on the same
`machine as the Web server The Web site administrator
`402
`on the
`the option of configuring
`Dispatcher
`machine as Web server 201 taking into account
`variety of
`particular Web site such as the size of
`factors pertinent
`the Web site the number of Web pages and the number of
`the Web site Although
`this embodiment will not
`described above namely off-loading the
`enjoy the advantage
`processing of Web requests from the Web server machine
`small Web site
`the embodiment does allow flexibility
`for
`to grow For example small Web site administrator
`can use
`single machine for both Dispatcher 402 and Web server
`201 initially
`then off-load Dispatcher 402 onto
`separate
`machine as the Web site grows The Web site can thus take
`advantage of other features of the present
`invention regard
`less of whether the site has separate machines configured as
`Web servers and dispatchers
`Dispatcher 402 receives the intercepted request and then
`to one of
`number of Page servers
`the request
`dispatches
`
`404 1n For example if Page server 4041 receives the
`
`dispatched
`request
`it processes the request and retrieves the
`data from an appropriate data source such as data source
`406 data source 408 or data source 410 Data sources as
`used in the present application include databases
`spreadsheets files and any other
`type of data repository
`Page server 404
`can retrieve data from more than one
`data source and incorporate the data from these multiple data
`single Web page
`sources in
`In one embodiment each Page server 4041-n resides
`separate machine on the network
`on
`to distribute the
`processing of the request Dispatcher 402 maintains
`ety of
`information regarding
`each Page
`server on the
`network and dispatches requests based on this information
`For example Dispatcher 402 retains dynamic information
`regarding the data sources that any given Page server can
`access Dispatcher 402 thus examines
`particular
`request
`and determines which Page servers can service the IJRL
`request Dispatcher 402 then hands off the request
`to the
`appropriate Page server
`the URL request
`For example if
`data
`requires financial
`from data source 408 dispatcher 402 will
`first examine an
`list Dispatcher 402 may determine that Page
`information
`server 4043 for example has access
`to the requisite data
`in data source 408 Dispatcher 402 will
`thus route the URL
`to Page server 4043 This connection
`caching
`is described in more detail below under
`functionality
`the
`heading Performance
`
`request
`
`vari
`
`Petitioner IBM – Ex. 1001, p. 9
`
`
`
`5.894.554
`
`the performance of the data source being utilized This page
`caching feature illustrated in FIG as Page cache 414
`allows the Web site administrator
`to optimize the perfor
`by caching Web pages
`that are
`inance of data sources
`repeatedly accessed Once the Web page is cached subse
`quent requests or hits will utilize the cached Web page
`than re-accessing the data source This can radically
`rather
`improve the performance of the data source
`
`business rule implemented using various applications such
`as Visual Basic for client-server environments or CICS
`are OLE 2.0
`programs on mainframes If
`these applications
`the Page server dynaobject HTML extension
`compliant
`the application in an OLE
`tag can be used to encapsulated
`2.0 automation interface The Page server is thus extensible
`and can incorporate the existing application with the new
`Page server functionality
`
`Scalability
`
`Security
`
`The present invention allows the Web site administrator
`utilize multiple levels of security to manage the Web site In
`one embodiment the Page server can utilize all standard
`encryption and site security features provided by the Web
`In another embodiment
`server can be
`the Page
`server
`caches 4121n
`connection
`
`to
`
`to bypass
`configured
`described above for
`entry of
`
`data source and to require
`particular
`and password for the
`user-supplied identification
`data source the user is trying to access
`particular
`Additionally another embodiment of
`the presently
`no real-time access
`of data
`claimed
`invention
`requires
`sources The Web page
`caching ability described above
`those sites that want
`enables
`additional
`for
`security
`
`to
`
`later
`
`from internal
`information
`content
`publish non-interactive
`systems but do not want real-time Internet accessibility to
`information systems In this instance the Page
`those internal
`replication and staging gent and create
`server can act as
`than in real-time These rep
`Web pages in batches rather
`licated Web pages are then staged for access at
`the Web pages in this scenario is possible
`time and access
`even if the Page server and dispatcher are not present later
`In yet another embodiment the Page server can make
`Web site
`single pass through Web library and compile
`form of separately available
`that exists in the traditional
`collection of related Web books and
`Web library is
`Web pages More specifically the Web library is
`hierar
`chical organization of Web document
`templates
`together
`data source information Information
`with alJ the associated
`about an entire Web site is thus contained in single physical
`thus simplifying the problem of deploying Web sites
`across multiple Page servers The process of deploying the
`Web site in this embodiment
`simple copy of
`is essentially
`
`files
`
`file
`
`single file
`
`Extensibility
`
`One embodiment of the present
`provides the
`invention
`Web site administrator with Object Linking and Embedding
`OLE 2.0 extensions to extend the page creation process
`These OLE 2.0 extensions also allow information submitted
`over the Web to be processed with user-supplied function
`as Visual Basic
`ality Utilizing development
`tools such
`Visual C-H- or PowerBuilder
`the creation of
`that support
`the Web site administrator
`OLE 20 automation
`features and modify the behavior of
`the Page
`servers
`described above This extensibility allows one embodiment
`the claimed invention to be incorporated with existing
`to develop an infinite number of custom web
`
`of
`
`technology
`
`can add
`
`allow
`
`site
`
`servers
`Web
`For example OLE 2.0 extensions
`to encapsulate existing business rules in an
`administrator
`OLE 2.0 automation interface to be accessed over the Web
`One example of
`business rule is the steps involved in the
`payoff on an installment or mortgage loan The payoff may
`involve
`into account
`the
`current
`for example taking
`balance the date and the interest
`payment Most
`
`organizations
`
`accrued
`have
`
`already
`
`since
`
`the last
`
`this type of
`
`30
`
`to
`
`One embodiment of the claimed invention allows plug
`and play scalability As described above referring to FIG
`Dispatcher 402 maintains information about all
`the Page
`servers configured to be serviced by Dispatcher 402 Any
`number of Page servers can thus be plugged into the
`15 configuration illustrated in FIG and the Page servers will
`be instantly activated
`as the information is dynamically
`updated in Dispatcher 402 The Web site administrator can
`thus manage the overhead of each Page server and modify
`load as necessary to improve perfor
`each Page servers
`mance In this manner each Page server will cooperate with
`other Page servers within multi-server environment Dis
`patcher 402 can examine the load on each Page server and
`route new requests according to each Page servers available
`resources This load-balancing across multiple Page serv
`Web sites performance
`increase
`ers can significantly
`FIG illustrates the processing of Web browser request
`flow diagram according to one embodiment
`in the form of
`Web browser
`sends
`of the presently claimed invention
`to Web server in processing block 500 In
`UIRL request
`server receives the URL
`processing block 502 the Web
`then intercepts the handling of
`request and an interceptor
`in processing block 504 The interceptor con
`the request
`the URL request
`to the
`and sends
`nects
`dispatcher
`in processing block 506 In processing block 508
`dispatcher
`the dispatcher determines which Page servers can handle the
`request The dispatcher also determines which Page server is
`processing the fewest requests in processing block 510 and
`the URL
`in processing block 512 the dispatcher
`sends
`to an appropriate Page server The Page
`server
`request
`receives the request and produces an HTML document
`processing block 514 The Page server then responds to the
`the name of
`the
`cached
`of
`dispatcher with notification
`HTML document
`in processing block 516 In processing
`block 518 the dispatcher responds to the interceptor with the
`name
`document
`and
`the
`the
`then replaces
`interceptor
`requested URL with the newly generated HTML document
`in processing block 520 The Web server then sends the new
`HTML document
`in processing block
`to the requesting client
`522 Finally the Web browser
`receives and displays the
`HTML document created
`by the Page server at processing
`block 524
`Thus method and apparatus for creating and managing
`custom Web sites is disclosed These specific arrangements
`and methods described herein are merely illustrative of the
`55 principles of the present invention Numerous modifications
`in form and detail may be made by those of ordinary skill
`in
`from the scope of the present
`the art without departing
`invention Although this invention has been shown in rela
`particular preferred embodiment it should not be
`tion to
`invention is lim
`considered so limited Rather
`the present
`the appended claims
`ited only by the scope of
`We claim
`method for managing
`computer-implemented
`to Web server said
`dynamic Web page generation request
`the steps of
`computer-implemented method comprising
`routing said request from said Web server to
`page server
`said page server receiving said request and releasing
`
`in
`
`Petitioner IBM – Ex. 1001, p. 10
`
`
`
`5.894554
`
`10
`
`dynamically
`
`generating
`
`10
`
`15
`
`said Web server to process other requests wherein said
`routing step further
`includes the steps of intercepting
`said request at said Web server
`routing said request
`from said Web server to
`and dispatching
`dispatcher
`said request
`to said page server
`processing said request said processing being performed
`by said page server while said Web server concun-ently
`processes said other requests and
`Web page in response to said
`said Web page
`request
`data dynamically
`including
`retrieved from one or more data sources
`The computer-implemented method in claim wherein
`said step of processing said request
`includes the step of
`identifying said one or more data sources
`from which to
`retrieve said data
`The computer-implemented method in claim wherein
`said step of dynamically generating said Web page includes
`the step of dynamically retrieving said data from said one or
`more data sources
`The computer-implemented method in claim wherein 20
`said step of processing said request i