`
`iI DI
`
`ll
`
`11111
`
`lvii
`
`III Dli
`US006415335B1
`
`IIDI
`
`lii
`
`iII
`
`lID
`
`12 United States Patent
`Lowery et al
`
`10 Patent No
`45 Date of Patent
`
`US 6415335 Bi
`Jul
`2002
`
`54 SYSTEM AND METHOD FOR MANAGING
`DYNAMIC WEB PAGE GENERATION
`REQUESTS
`
`75 Inventors Keith Lowery Richardson Andrew
`Levine Piano Ronald
`Howell
`all of TX US
`Rowictt
`
`73 Assignee
`
`epicRealm Operating Inc Richardson
`LX US
`
`Notice
`
`Subject
`
`to any disclaimer the term of this
`is extended or adjusted under 35
`patent
`U.S.C 154b by0 days
`
`This patent
`claimer
`
`is subject
`
`to
`
`terminal dis
`
`21
`22
`
`Appl No 09/234048
`Jan 19 1999
`
`Filed
`
`5752246
`5754772
`5761673
`5.774660
`5774668
`
`5/1998
`
`5/1998
`
`6/1998
`
`6/1998
`
`6/1998
`
`Rogers ci at
`Leaf
`Bookman eta
`Brendet et at
`
`Choquier
`
`et at
`
`707/10
`
`395/200.33
`
`707/104
`
`395/200.31
`
`395/200.53
`
`OTHER PUBLICATIONS
`
`Hoffner Interoperability
`and distributed application plat
`form design Web URLhttp/www.ansa.co.uki
`1995 pp
`342_356
`Mourad et al Scalable Web Server Architectures IEEE
`Jun 1997 pp 12_16
`Scalable and Highly Available Web Server
`Dias et al
`IEEE 1996 pp 85_92
`Single System Image and Load Balancing for Network
`Loosely Coupled Complex IBM TDI3 vol 34
`Access
`Feb 1992 pp 464_467
`Scalable and Highly Available Web
`et al
`Dias Daniel
`IBM Research Division T.J Watson Research Cen
`Server
`
`to
`
`ter
`
`pages
`
`Related U.S Application Data
`
`List continued on next page
`
`62 Divisioii of appticalion No 08/636477
`1996 now Pat No 5894554
`
`fIled on Apr 23
`
`Primary ExaminerJeffrey Gaffin
`Assistant ExaminerRehana Perveen
`74 Atlorney Agent or FirmBaker Botts L.L.V
`ABSIRACT
`57
`
`to
`
`method and apparatus
`The present
`invention teaches
`creating and managing custom Web sites Specifically
`embodiment of the present
`invention claims
`computer-
`dynamic Web page
`implemented method for managing
`Web
`the computer
`server
`generation
`request
`implemented method comprising
`the steps of routing the
`request from the Web server to
`the page server
`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
`as the Web server processes
`the other
`requests and
`server
`Web
`to the
`in response
`dynamically
`generating
`page
`the Web page including data dynamically
`request
`from one or more data sources
`
`for
`
`one
`
`retrieved
`
`51
`52
`
`58
`
`56
`
`mt Cl.7
`U.S Cl
`
`Field of Search
`
`GO6F 13/14 GO6F 13/20
`710/5 710/7 709/219
`709/223 709/238
`709/238 223
`2021
`709/219 710/5
`
`References Cited
`
`U.S PATENT DOCUMENTS
`
`4866706
`5341499
`5392400
`5404522
`5404523
`5404527
`5452460
`5532838
`5701463
`5751956
`
`9/1989
`
`Christophersen
`
`8/1994
`
`2/1995
`
`4/1995
`
`4/1995
`
`4/1995
`
`9/1995
`
`7/1996
`
`Ct at
`
`Doragh
`Berkowitz
`Carmon Ct
`DeltaFera et at
`Irwin et at
`
`Distetbcrg
`Barhari
`
`et at
`
`12/1997
`
`Matcotrn
`
`5/1998
`
`Kirsch
`
`ci at.. 370/85.7
`395/700
`
`395/200
`
`395/650
`
`395/650
`
`395/700
`
`395/700
`
`358/400
`
`395/610
`
`395/200.33
`
`29 Claims Drawing Sheets
`
`Petitioner IBM – Ex. 1004, p. 1
`
`
`
`US 6415335 Bi
`Page
`
`OTHER PUBLICATIONS
`
`Andresen Daniel Et Al Scalability
`Issues for High Per
`formance Digital Libraries on the World Wide Web Depart
`ment of Computer Science University of California at Santa
`Barbara 10 pages
`Andresen Daniel Et Al SWEB Towards
`Scalable World
`Wide Web Server on Multicomputers Department of Com
`puter Science University of California at Santa Barbara
`
`pages
`
`Et Al Cooperative
`Caching
`Vegard
`of
`I-Iolmcdahl
`Distributed Web Server Department
`Dynamic Content on
`of Computer Science University of California at Santa
`
`Overson Nicole NeXT Ships WebObjectsOn TimeAs
`NeXT
`Ships WebObjectsOn
`Promised Deja.com
`TimeAs
`Promishttp/X28..deja.com/dncSTm
`ps...EXT927585438 1744765032hitnum33
`pages dated Aug 21 1997
`and van Renesse Robbert Software for
`Scientific American May 1996 pp
`
`International Search Report
`Birman Kenneth
`Reliable Networks
`6469
`Beyond the Web Excavating the Real World Via Mosaic
`International WWW Conference
`Goldberg et al Second
`Oct 17 1994
`
`Barbara
`
`pages
`
`cited by examiner
`
`Petitioner IBM – Ex. 1004, p. 2
`
`
`
`U.S Patent
`
`Jul
`
`2002
`
`Sheet
`
`of
`
`US 6415335 Bi
`
`FIG
`
`200
`
`WEB
`
`CLIENT
`
`REQUESTI
`
`FIG
`PRIOR ART
`
`WEB
`
`SERVER
`
`REQUEST
`
`SERVER
`XECUTABLE
`
`WEB L.2011
`PAGE
`
`201E
`
`WEB L-2012
`PAGE
`
`WEB
`
`SERVER
`
`vEB SERVE\J
`XECUTABL
`
`WEB L_2o21
`PAGE
`
`202E
`
`WEB
`
`PAGE
`
`I_2022
`
`WEB
`
`PAGE
`
`fl202n
`
`WEB
`
`PAGE
`
`fl201n
`
`201
`
`Petitioner IBM – Ex. 1004, p. 3
`
`
`
`U.S Patent
`
`Jul
`
`2002
`
`Sheet
`
`of
`
`Us 6415335 Bi
`
`FIG
`PRIOR ART
`
`BEGIN
`TRANSACTION
`
`3QQ-j
`
`WEB CLIENT MAKES
`
`URL REQUEST
`
`3O2-
`
`URL EXAMINED BY WEB
`BROWSER
`TO DETERMINE
`
`APPROPRIATE WEB
`
`SERVER
`
`304_J REQUEST
`TRANSMITTED
`TO
`APPROPRIATE WEB SERVER
`
`WEB SERVER
`
`EXAMINES URL
`
`WHETHER
`TO DETERMINE
`IT
`IS AN HTML DOCUMENT OR
`
`CCI APPLICATION
`
`3O6-
`
`HTML
`DOCUMENT
`
`3O8-
`
`CCI
`
`APPLICATION
`
`314
`
`31O
`
`WEB SERVER
`LOCATES DOCUMENT
`
`WEB SERVER
`
`LOCATES
`
`CCI APPLICATION
`
`DOCUMENT TRANSMITTED
`BACK TO REQUESTING WEB
`312 BROWSER
`FOR FORMATTING
`AND DISPLAY
`
`CCI APPLICATION
`
`EXECUTES AND
`OUTPUTS
`
`HTML OUTPUT 318
`
`HTML OUTPUT
`TRANSMITTED
`BACK TO REQUESTING WEB
`BROWSER
`FOR FORMATTING
`
`320
`
`AND DISPLAY
`
`__________________
`
`END
`
`TRANSACTION
`
`Petitioner IBM – Ex. 1004, p. 4
`
`
`
`Cl
`
`Cl
`
`406
`
`408
`
`410
`
`SOURCE
`
`DATA
`
`414
`
`CACHE
`
`PAGE
`
`412n
`
`404n
`
`CACHE
`
`SERVER
`
`CONNECTION
`
`PAGE
`
`4122
`
`4042
`
`CACHE
`
`SERVER
`
`CONNECTION
`
`PAGE
`
`CACHE
`
`SERVER
`
`CONNECTION
`
`PAGE
`
`4121
`
`4041
`
`SERVERS
`
`PAGE
`
`404
`
`402 HER
`
`400
`
`201
`
`201E
`
`INTERCEPTOR
`
`EXECUTABLE
`
`SERVER
`
`SERVER
`
`WEB
`
`WEB
`
`FIG
`
`EQUEST
`
`200 R
`
`Petitioner IBM – Ex. 1004, p. 5
`
`
`
`U.S Patent
`
`Jul
`
`2002
`
`Sheet
`
`of
`
`US 6415335 Bi
`
`BEGIN
`PROCESSING
`
`FIG
`
`500
`
`502 -H
`
`WEB
`
`BROWSER
`
`SENDS URL
`
`REQUEST
`
`WEB
`
`SERVER
`
`RECEIVES URL
`
`REQUEST
`
`INTERCEPTOR INTERCEPTS HANDLING OF REQUEST
`
`506H
`
`INTERCEPTOR CONNECTS TO DISPATCHER AND
`SENDS
`REQUEST
`TO DISPATCHER
`
`508
`
`510
`
`512
`
`514
`
`516
`
`518
`
`52O
`
`522
`
`524
`
`DISPATCHER DETERMINES WHICH PAGE
`SERVERS
`CAN HANDLE REQUEST
`
`DISPATCHER DETERMINES WHICH PACE
`SERVER
`IS PROCESSING FEWEST
`REQUESTS
`
`DISPATCHER SENDS REQUEST TO
`PAGE
`APPROPRIATE
`SERVER
`
`PAGE
`
`SERVER
`RECEIVES REQUEST
`PRODUCES HTML DOCUMENT
`
`AND
`
`PAGE
`
`NOTIFICATION
`
`RESPONDS TO DISPATCHER WITH
`SERVER
`OF NAME OF CACHED HTML DOCUMENT
`
`DISPATCHER RESPONDS TO INTERCEPTOR
`
`WITH DOCUMENT NAME
`
`INTERCEPTOR REPLACES REQUESTED
`URL
`NEWLY GENERATED
`HTML DOCUMENT
`WITH
`
`WEB
`
`SERVER
`
`SENDS NEW HTML DOCUMENT TO CLIENT
`
`WEB
`
`BROWSER
`
`RECEIVES AND DISPLAYS HTML
`DOCUMENT CREATED
`BY PAGE
`SERVER
`
`END
`PCESSING
`
`Petitioner IBM – Ex. 1004, p. 6
`
`
`
`US 6415335 B1
`
`SYSTEM AND METHOD FOR MANAGING
`DYNAMIC WEB PAGE GENERATION
`REQUESTS
`
`division of Ser No 08/636477
`This application
`flIed Apr 23 1996 now U.S Pat No 5894554
`
`is
`
`FIELD OF THE INVENTION
`
`invention
`
`The present
`Internet
`relates to
`technology Specifically the present invention relates to the
`creation and management of custom World Wide Web Sites
`
`the field of
`
`DESCRIPTION OF RELATED ART
`
`Tools that generate CGI applications
`do not however
`resolve the problem of managing numerous Web pages and
`at Web site For example
`single company may
`requests
`at their Web site Current
`maintain hundreds of Web pages
`Web server architecture also does not allow the Web server
`the Web page and process Web client
`to efficiently manage
`hundreds of Web
`requests Managing
`these
`pages
`coherent manner and processing all
`requests for access to the
`Web
`task Existing development
`is thus
`pages
`to facilitate dynamic
`io tools are limited in their capabilities
`Web
`and
`do not
`page generation
`managing Web requests or Web sites
`
`difficult
`
`address
`
`the issue of
`
`in
`
`15
`
`25
`
`35
`
`so
`
`55
`
`60
`
`65
`
`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
`
`invention
`the present
`method for managing
`dynamic
`computer-implemented
`Web page generation request to Web server the computer-
`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
`dynamically
`generating
`page in response
`the Web page including data dynamically
`request
`from one or more data sources Other embodiments also
`include connection caches to the one or more data sources
`and custom HTML
`caches
`for each
`page
`page
`server
`extension templates for configuring the Web page
`
`to
`
`the
`
`retrieved
`
`features and
`of
`the present
`Other objects
`advantages
`from the accompanying drawings
`invention will be apparent
`and from the detailed description
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`illustrates
`
`FIG illustrates
`typical computer system in which the
`present invention operates
`FIG
`typical prior art Web server environ-
`men
`FIG illustrates
`ment in the form of
`FIG
`claimed invention
`FIG illustrates the processing of Web browser
`request
`in the form of
`flow diagram according to one embodiment
`of the presently claimed invention
`
`typical prior art Web server environ
`flow diagram
`
`illustrates
`
`one embodiment
`
`of
`
`the presently
`
`OF THE
`DETAILED DESCRIPTION
`PREFERRED EMBODIMENT
`
`invention relates to method and apparatus
`The present
`for creating and managing custom Web sites In the follow
`numerous specific details are set
`ing detailed description
`forth in order
`thorough understanding of the
`to provide
`to one of ordinary skill
`present invention
`It will be apparent
`in the art however
`these specific details need not he
`that
`invention
`In other
`used to practice the present
`well-known
`interfaces
`structures
`been shown in detail
`the present invention
`FIG illustrates
`typical computer system 100 in which
`the present invention operates The preferred embodiment of
`
`in order not
`
`and processes
`to unnecessarily obscure
`
`have not
`
`instances
`
`The World Wide Web the Web
`represents all of the
`that offer users access
`computers on the Internet
`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
`text in non-linear non-sequential manner Hypertext
`links
`known as
`are created
`special software language
`using
`Language HTML
`HyperText Mark-Up
`reside on the Web on Web
`created Web
`Once
`pages
`servers or Web sites AWeb site can contain numerous Web
`client machines running Web browsers can
`pages Web
`these Web pages
`at Web sites via
`communications
`access
`known as HyperText Transport Protocol HY1l
`protocol
`Web browsers are software interfaces that
`run on World
`Wide Web clients to allow access to Web sites via
`browser allows Web client
`user interface.AWeb
`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
`When
`the appropriate Web site receives the URL the Web
`page corresponding to the requested URL is located and if
`required I-ITML output
`is generated The I-ITML output
`then sent via HYFP to 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 site managers to
`effectively manage their Web sites
`Interface CGI standard was
`The Common Gateway
`resolve the problem of allowing
`dynamic
`developed
`to be included in Web pages CGI calls or proce
`dures enable
`created
`applications
`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
`the ability of Web site
`also enhanced
`CGI applications
`to manage Web
`administrators
`sites Administrators no
`longer have to constantly update static Web pages.A number
`for CGI based
`of vendors
`have developed tools
`to address the issue of dynamic Web page
`development
`generation Companies like SpiderTM and BluestoneTM for
`tools for CGI
`example
`each created development
`have
`based Web
`Another
`company Haht
`page development
`SoftwarerM has developed Web page generation tool
`BASIC-like scripting
`language
`uses
`instead of
`scripting language
`
`that
`
`identifies
`
`to
`
`content
`
`simple
`
`is
`
`that
`CGI
`
`Petitioner IBM – Ex. 1004, p. 7
`
`
`
`US 6415335 B1
`
`system
`
`in
`
`display device
`
`invention is implemented on an IBMTM Personal
`the present
`Computer manufactured by IBM Corporation
`of Armonk
`New York An alternate embodiment may be implemented
`on an RSI6000TM Workstation manufactured by IBM Cor
`poration of Armook New York It will be apparent
`to those
`in the art
`of ordinary
`that other computer
`skill
`architectures may also be employed
`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 fnr storing
`the processor 102
`static information
`and instructions for
`105 coupled with the bus 101 for displaying
`computer
`for
`device
`106
`an input
`user
`coupled with the bus 101 for communicating
`information
`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
`age device 107 to allow processor 102 access to the digital
`on data storage medium 108 via bus 101
`information
`wide variety of general
`Processor 102 may be any of
`the Pen
`purpose processors or microprocessors
`such
`as
`tiumm microprocessor manufactured by lntelTM Corpora
`by IBM
`the RS/6000TM processor manufactured
`tion or
`to those of ordinary skill
`Corporation It will be apparent
`that other varieties of processors may also
`the art however
`be used in particular computer system Display device 105
`ray tube CRT or
`may be
`liquid crystal device cathode
`other suitable display device Mass storage device
`107 may
`be
`conventional
`disk drive
`hard disk drive floppy
`CD-ROM drive or other magnetic or optical data storage
`for reading and writing information stored on
`device
`hard
`CD-ROM
`floppy disk
`magnetic tape or other
`storage medium Data
`data
`magnetic or optical
`storage
`lioppy 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
`and downloads
`this information into random
`device
`107
`
`In general
`
`information
`
`digital
`
`disk
`
`103 or
`
`Processor 102
`access memory
`103
`for execution
`then
`an instruction stream from random access memory
`executes
`read-only memory 104 Command selections and
`information
`106 are used to direct
`input device
`input at
`by processor 102 Equivalent
`flow of instructions executed
`106 may also be
`pointing device such
`input device
`conventional mouse or traekball device The results of this
`processing execution are then displayed on display device
`ins
`
`the
`
`a.s
`
`is
`
`into
`
`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
`and executed within computer system 100 Once initiated
`the software of the preferred embodiment operates in the
`manner described below
`FIG
`typical prior art Web server environ
`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
`
`illustrates
`
`55
`
`60
`
`in
`
`is
`
`in
`
`If
`
`25
`
`If
`
`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 \Veb
`client 200 the request may be routed by either Web server
`executable 201E to Web page 201
`for example or from
`Web server executable 202E to Web page 202
`Web
`client 200 can continue making URL requests to retrieve
`other Web pages Web client 200 can also use hyperlinks
`within each Web page to jump to other Web pages or to
`10 other locations within the same Web page
`FIG illustrates this prior art Web server environment
`flow diagram In processing block 300 the
`the form of
`Web client makes
`URL request This URL request
`examined by the Web browser
`to determine the appropriate
`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
`and in
`server
`the Web server executable examines
`processing block 306
`the URL to determine whether it
`is HTML document or
`20 CGI application
`is for an I-ITML document
`the request
`308 then the Web server executable locates the document
`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
`and
`in processing block 318
`finally the HTML output
`is transmitted back
`to requesting
`30 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
`requests or hits in
`single day Current Web servers
`single machine namely
`40 process each of these requests
`on
`the Web server machine Although these machines may be
`running multi-threaded operating
`allow
`systems
`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
`request
`have to be handled by the processor on the Web
`server
`machine When numerous requests
`are being simultaneously
`single machine the Web
`processed by multiple threads on
`slow down significantly
`become
`server
`can
`and
`highly
`inefficient The claimed invention
`this need by
`architecture to facilitate the creation
`utilizing
`partitioned
`and management of custom Web sites and servers
`FIG
`one embodiment
`of
`the presently
`URL request that
`claimed invention Web client 200 issues
`determined
`is processed
`routing In this
`proper
`is routed to Web
`server 201
`embodiment
`the
`request
`server executable 201E processing the
`Instead of Web
`URL request
`400 intercepts
`however
`the
`Interceptor
`to Dispatcher 402 In one embodiment
`request and routes it
`400 resides on the Web server machine as an
`Interceptor
`extension to Web server 201 This embodiment
`is appropri
`ate for Web servers such as NetsiteTM from Netscape that
`number of public domain Web
`support such extensions
`as NCSATM from the Nalional Center
`such
`65 servers
`lhe University of Illinois
`Supereomputing Applications
`Urbana-Champaign
`however
`do not provide support
`
`to
`
`still
`
`that
`
`addresses
`
`illustrates
`
`to
`
`at
`
`for
`
`for
`
`Petitioner IBM – Ex. 1004, p. 8
`
`
`
`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
`can
`also be implemented
`In one embodiment of
`402
`the invention Dispatcher
`different machine than Web server 201 This
`resides on
`embodiment overcomes the limitation described above in
`prior art Web servers wherein all processing is performer by
`single machine By routing the request
`the processor on
`to
`different machine than the Web
`Dispatcher 402 residing on
`server executable 201E the request can then be processed
`the Web
`different processor
`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
`also reside on the same 20
`Dispatcher 402 can however
`machine as the Web server The Web site administrator has
`402
`on
`the same
`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
`number of Page servers
`to one of
`dispatches the request
`
`by
`
`than
`
`server executable
`
`15
`
`to
`
`hits at
`
`404 ln For example if Page server 4041 receives the
`
`it processes the request and retrieves the
`dispatched request
`data from an appropriate data source such as data source
`406 data source 408 or data source 410 Data sources as
`used
`present application
`databases
`in the
`include
`and any other
`type of data repository
`spreadsheets files
`can retrieve data from more than one
`Page server 404
`data source and incorporate the data from these multiple data
`single Web page
`sources in
`each Page server 4041n resides
`In one embodiment
`separate machine on the network
`to distribute
`on
`processing of
`the request Dispatcher 402 maintains
`vari
`on the
`each Page server
`ety of
`information regarding
`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 URL
`request Dispatcher 402
`to the
`then hands off the request
`appropriate Page server
`the URL request requires financial data
`For example if
`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
`thus route the URL
`in data source 408 Dispatcher 402 will
`to Page server 4043 This cunnection
`caching
`is described in mure detail below under
`the
`functionality
`heading Performance Alternately Dispatcher
`402
`
`the
`
`also
`
`request
`
`US 6415335 B1
`
`data cached
`
`has the ability to determine whether
`particular Page server
`already has the necessary
`in the Page servers
`in more detail below under
`cache
`the
`page
`described
`heading Performance Dispatcher 402 may thus deter
`mine that Page server 4041 and 4042 are both logged into
`that Page server 4042 has
`408 but
`Data
`source
`the
`information already cached in Page server 4042s
`financial
`page cache In this case Dispatcher 402 will route the URL
`to Page server 4042 to more efficiently process the
`request
`
`request
`
`10
`
`requests
`
`that
`
`request
`
`number or
`Finally Dispatcher 402 may determine that
`all Page servers 4041n are logged into Data source 408
`In this scenario Dispatcher 402 can examine the number of
`each Page server
`the
`is servicing and route
`to the least busy page server This load balancing
`increase
`capability can significantly
`performance at
`busy
`Web site and is discussed
`in more detail below under the
`heading Scalability
`for example Page server 4042 receives the request
`If
`Page server 4042 will process the request While Page
`server 4042 is processing the request Web server execut
`able 201E can
`process other Web
`concurrently
`requests This partitioned architecture thus allows both Page
`server 4042 and Web server executable 201E to simul
`different
`taneously
`thus
`increasing the
`process
`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
`to Web server 201 for
`accessible
`later retrieval
`One embodiment of the claimed invention also provides
`Web page designer with IITML extensions or dyna tags
`These dyna tags provide customized I-ITML functionality
`to
`Web page designer
`to allow the designer to build custom
`ized HTML templates that specify the source and placement
`data For example in one embodiment
`of
`retrieved
`clynatext 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
`tags allow the
`retrieve data Alternatively dyna-anchor
`to build hyperlink queries while dynablock tags
`designer
`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
`Web server 201 for later retrieval
`The presently
`numerous
`claimed
`invention
`provides
`over prior art Web servers including advantages
`advantages
`in the areas of performance
`security extensibility and
`scalability
`
`client
`
`is
`
`to
`
`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
`sources For example
`as
`connections
`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 412l
`406 data
`connections
`to each of data source
`containing
`and data source 410 thus eliminating connect
`source 408
`times from the Page servers to those data sources
`inven
`Additionally another embodiment of
`the present
`tion supports the caching of finished Web pages to optimize
`the performance of the data source being utilized This page
`
`65
`
`Petitioner IBM – Ex. 1004, p. 9
`
`
`
`US 6415335 Bi
`
`caching feature illustrated in FIG
`as Page cache 414
`allows the Web site administrator
`to optimize the perfor
`by caching Web
`mance
`of data
`sources
`pages
`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
`
`that
`
`are
`
`or CICS
`environments
`as Visual Basic for client-server
`are OLE 2.0
`programs on mainframes If
`these applications
`the Page server dynaobject HTML extension
`compliant
`the application in an OLE
`tag can he 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
`
`Security
`
`Scalability
`
`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
`the Page server
`server
`can be
`caches 4121n
`connection
`to bypass
`configured
`described above for
`particular data source
`and to require
`entry of
`user-supplied identification
`and password for
`data source
`the user is trying to access
`
`to
`
`the
`
`particular
`
`20
`
`25
`
`35
`
`40
`
`One embodiment of the claimed invention allows plug
`and play sealability As described above referring to FIG
`about all
`Dispatcher 402 maintains information
`the Page
`servers configured to be serviced by Dispatcher 402 Any
`number of Page servers can thus be plugged into the
`configuration illustrated in FIG
`and the Page servers will
`be instantly
`activated
`as
`the information
`is dynamically
`in Dispatcher 402 The Web site administrator
`updated
`can
`thus manage
`the overhead of each Page server and modify
`each Page servers load as necessary to improve perfor
`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
`across multiple Page serv
`resources This load-balancing
`Web sites performance
`increase
`ers can significantly
`FIG illustrates the processing of Web browser request
`in the form of
`110w diagram according to one embodiment
`of the presently claimed invention AWeb
`browser sends
`URL request
`Web server in processing block 500 In
`processing block 502 the Web server
`receives the URL
`request and an interceptor
`then intercepts the handling of
`in processing block 504 The interceptor con
`the request
`the URL request
`nects
`and sends
`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
`The Page server
`Page server
`an appropriate
`the request and produces an HTML document
`receives
`in
`processing block 514 The Page server then responds to the
`the name of
`dispatcher with notification
`of
`the cached
`HTML document
`in processing block 516 In processing
`block 518 the dispatcher responds to the interceptor with the
`document
`name
`and
`the
`then
`the
`interceptor
`replaces
`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
`and displays the
`HTML document created
`by the Page server at processing
`block 524
`
`to
`
`to
`
`to the
`
`request
`
`to
`
`receives
`
`method and apparatus for creating and managing
`Thus
`custom Web sites is disclosed These specific arrangements
`and methods described herein are merely illustrative of the
`ss principles of the present invention Numerous modifications
`inform and detail may be made by those of ordinary skill
`the art without
`from the scope of the present
`departing
`invention Although this invention has been shown in rela
`particular preferred embodiment
`it should not be
`tion to
`the present invention is lim
`considered so limited Rather
`claims
`ited only by the scope of the appended
`We claim
`for managing
`computer-implemented
`method
`dynamic Web page generation request to Web server said
`computer-implemented method comprising the steps of
`request from Web server to
`page server said
`receiving said
`and releasing said
`page server
`
`65
`
`routing
`
`request
`
`in
`
`embodiment
`
`the presently
`real-lime access
`of data
`
`of
`
`Additionally another
`claimed
`invention
`requires no
`sources The Web page
`enables
`additional
`security
`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 agent 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
`time and access to the Web pages in this scenario is possible
`even if
`later
`the Page server and dispatcher are not present
`yet another embodiment the Page server can make
`Web library and compile
`Web site
`single pass through
`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
`chical organization of Web document
`templates
`together
`with all
`the associated
`data source information Information
`about an entire Web site is thus contained in
`single physical
`file 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
`
`ability described above
`caching
`sites that want
`for those
`
`to
`
`from internal
`
`information
`
`later
`
`hierar
`
`In
`
`files
`
`single file
`
`Extensibility
`
`One embodiment of the present
`invention
`provides the
`Web site administrator with Object Linking and Embedding
`OLE 2.0 extensions to extend the page creation process
`These OLE 2.