Dynamic web page generation method and system

In comparison to unnecessary page generation of the prior art, the page generation time according to the current invention is substantially reduced, and the generated page is efficiently accessed. Since in response to at least one of a predetermined set of update events, a page is dynamically generated in advance of a user page request and the dynamically generated page is stored, the current invention allows the efficient page access. The efficient page access is accomplished by storing the dynamically generated page as a static page at a URL identified by a page access call with an argument. Thus, the user accesses the previously generated dynamic page at a high-speed. The use of the prior art technologies such as proxy servers in combination further improves the cost of transmission of the page to the user according to the current invention.

FIELD OF THE INVENTION

The current invention is generally related to dynamic web page generation, and more particularly related to an automatic web page generation technique in response to a set of predetermined events.

BACKGROUND OF THE INVENTION

The access method is widely used to down load Web pages based upon the Hypertext Markup Language (HTML) or the Extensible Markup Language (XML) to client personal computers (PC) through the world-wide web (www) or the Internet. In the conventional high-speed access methods, cash is primary used to maintain the fixed or static web pages close to the client computers. These techniques are designed to substantially reduce the cost of transmitting the pages to the client computers. On the other hand, to accommodate varied demands, a www page generation technique dynamically generates web pages based upon the requests and users at a www server site. The dynamic web pages are used, for example, in a catalogue in electronic commerce or E-commerce. The dynamic page generation method involves the costs associated with the page generation and the transmission of the pages to the clients.

The web pages include information to generate the client's display screen. In other words, in the www system, it is a unit of information which is specified by an address or Universal Resource Locator (URL) and is to be displayed via a www browser. The web page information includes text data in the HTML or in the XML, and graphics data in the Graphics Interchange Format (GIF) or in the Joint Photographic Experts Group (JPEG) format. The term, page can be also used outside the www system, and it means information which is locally shown on the client PC screen.

To further illustrate the prior art page access or generation techniques, some examples are described below. For example, an article entitled, “WWW Interactive and Read-Ahead System Design and Package,” Computer Software, Pp. 48–61, Vol. 15, No 2 (1998) discloses a technique to transmit a user site a static page in response to a user page request and that the static page is previously authored using an editor such as a HTML authoring tool.FIG. 1shows an exemplary conventional access method of the static Web pages. An author generates static pages90and stores them in a server11. A user sends the server11a down-load request for one or more of the stored static Web pages90via a browser35through a network2. In response to the down-load request, the server11downloads the browser35the requested Web pages to the user via network2. The static Web pages cannot be customized according to user information and or user requests.

Now referring toFIG. 2, another prior art page access technique involves a proxy server40, which is a system cash for cashing requested static page90into cashed page91from a server22in response to a user request via a browser35through a network2. Later, in response to a request to the same cashed page91in the proxy server40, the proxy server40inquires the server22whether or not the cashed information91has been updated at the server site22since the last cashing operation. If there has not been any update on the requested static page90, the page access technique reuses the cashed page91via the proxy server40. The above Computer Software article discloses the proxy based page access technique. In summary, the proxy based page access technique reduces a number of transmissions of the static web pages from the www server22. To a heavy-access client, a copy of the cashed pages is sent from the most closely situated proxy server so as to process the page requests in a high-speed. In certain embodiments, the proxy server resides within the browser. As described above, the static Web pages cannot be customized according to user information and or user requests.

FIG. 3illustrates a prior art push access technique. An example of the push access technique includes Microsoft's Active Channel. A push server94has a push a push definition such as in the Channel Definition Format (CDF). A push client93receives the push definition95and downloads the web pages95from the push server94into a client local cash97based upon the CDF in response to a client's time trigger which is asynchronous with the user page request. In other words, the web page is transparently downloaded to the push client server93from the push server94without the user intervention. The CDF specifies not only the web pages to be distributed or downloaded but also a distribution time. The push client server93locally processes the user page request and returns the locally cashed page97to the user if the user page request specifies the locally cashed pages97. Because of the access to the client rather than the server, the push access technique is advantageously high-speed. Chapter 3 of “First XML,” Nikkei BP Publication (1997) discloses the above described push access technique.

Still referring toFIG. 3, despite the above described features, the push access technique has the following disadvantages. While the push access technique enables the push client server93to perform high-speed access, the push client server93is unable to interactively download the information from the push server94. To customize the information, the push server94must generate and store various versions of the static web page information. Furthermore, the CDF must be individually customized to correspond to the various versions of the static web pages. As described above, the static Web pages cannot be customized according to user information and or user requests.

Now referring toFIG. 4, another prior art example of an efficient page access technique includes the read-ahead technique that is also disclosed in the above Computer Software article. The read-ahead techniques are further grouped into an association type and a statistic type. The association type read-ahead technique scans a content of the static web page90that has been transmitted from the www server11in response to an initial user request via a www browser35via a network2. Based upon the scanned web page90and a predetermined set of rules, a next-page analysis unit98determines other associated web pages that may be subsequently requested, and a batch page calling unit99reads ahead these associated web pages into a cash91in a proxy server40via the network2independent of the user request. If the subsequent user request indeed specifies the read-ahead web pages in the cash91, the www browser35has a high-speed access to the static web pages in the cash91for displaying the web page information. In summary, the association type read-ahead technique saves the download time from the remote server11and stores the web pages in the local cash91in the proxy server40in advance of the user requests. The static read-ahead web pages in the cash91are shared among users whose www browsers35share the proxy server48. As described above, the static Web pages cannot be customized according to user information and or user requests.

Still referring toFIG. 4, the statistic type read-ahead technique is generally similar to the above described association type read-ahead technique except that the next-page analysis unit98statistically processes the scanned web page and determines other associated web pages that may be subsequently requested based upon statistics. Unfortunately, the statistic type read-ahead technique increases the traffic and the benefit of the local cash is marginal. The subsequent web page requests often end up downloading the requested pages90from the www server11rather than the cash91in the proxy server40.

To customize web pages according to user information and or user requests, referring toFIG. 5, a common gate way interface (CGI) is illustrated. In general, in response to a user request via a www browser35and a network, a page generation unit23in a www server11generates a page82from data22and a template23A. In particular, the page generation unit23dynamically generates a HTML page92by inserting certain data from the data22into the HTML template23A according to a processing script in the template. The www server11transmits the generated HTML page92back to the www browser35via the network2for displaying the information in the HTML page82. Specifically, the Japanese Patent Publications 8-22498 and 9-26970 respectively disclose a search engine for an item in a virtual shopping mall and the dynamically customized www page generation. Using the above exemplary shopping environment, the user specifies a specific one of the templates23A, and the page generation unit23dynamically generates a specific shopping catalogue for each user request based upon the specified template23A and associated data from the data base22. In contrast to the above described conventional static web page per item, since the dynamic pages allow the author of the web pages to substantially reduce the development effort, the cost associated with the web page development is also substantially reduced. Furthermore, the dynamic page generation advantageously enables the generation of a web page that contains information such as a user name which is not available in advance of the user request. On the other hand, for each access, the dynamic web page generation requires a certain amount of time to get necessary data, to analyze the template and to generate a web page.

In summary, the above described conventional static and dynamic web page access techniques pose problems for the current need for accessing the web pages. On one hand, although the static web page access techniques allows high-speed access, these conventional techniques fail to accomplish customization of the web pages according to user information and or user requests. On the other hand, although the conventional dynamic web page generation technique allows customization of the web pages according to user information and or user requests, the conventional dynamic generation technique is incapable of high-speed access. The conventional dynamic web page generation techniques unnecessarily generates the same page when multiple page generation requests for the same page are issued by a plurality of users. The server resources are wasted on the unnecessarily repeated web page generation. Let alone, the conventional dynamic web page generation techniques do not generally take advantage of the proxy server.

SUMMARY OF THE INVENTION

In order to solve the above and other problems, according to a first aspect of the current invention, including a method of a page generation/access, including generating a dynamic page based upon a page template and a page generation call with an argument in response to a user page access request including the page generation call with the argument; storing in a batch page generation definition table a unique file name of the generated dynamic page in association with a page update trigger, the page generation call of the dynamic page, the unique file name containing an element corresponding to the argument; storing the generated dynamic page in a storage device at a location specified by the unique file name; updating the generated dynamic page stored in the storage device by generating and storing an updated dynamic page according to the file name stored in the table and based upon the page template and the page generation call with the argument stored in the table in association with the upgrade trigger in response to at least one of predetermined page update events in advance of another user page access request; and outputting the stored dynamic page as updated in the step d)and in response to another one of the user page access request, the user page access request, containing a page generation call with an argument stored in the table in association with a file name corresponding to the outputted dynamic page.

According to a second aspect of the current invention, a system for generating and accessing a page, including a system for generating and accessing a page, including: a batch page generation control unit for determining a dynamic page to be generated in response to at least one of a predetermined set of page update events; a batch page generation unit connected to the batch page generation control unit for generating the dynamic page based upon a page template and a page generation call with an argument in response to a user page access request including the page generation call with the argument; a memory unit connected to the batch page generation unit for storing in a batch page generation definition table a unique file name of the generated dynamic page in association with a page update trigger, and the page generation call of the dynamic page; the memory unit storing the generated dynamic page in a storage device at a location specified by the unique file name, the batch generation unit updating the generated dynamic page stored in the storage device by generating and storing an updated dynamic page according to the file name stored in the table and based upon the page template and the page generation call with the argument stored in the table in association with the page update trigger in response to at least one of predetermined page update events in advance of another user page access request; and an output unit connected to the memory unit for outputting one of the stored dynamic page and the additional dynamic page in response to the user page access request, the user page access request containing a page generation call with an argument stored in the table in association with a file name corresponding to the outputted dynamic page.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT(S)

Referring now to the drawings, wherein like reference numerals designate corresponding structures throughout the views, and referring in particular toFIG. 6, a block diagram illustrates one preferred embodiment of the high-speed dynamic page generation system according to the current invention. The preferred embodiment includes a server or a server computer1, a client or a client personal computer (PC)3, and a network2that connects the server1and the client3via the Internet and Intranet. The client PC3further includes a central processing unit (CPU)3d, a network adapter38, an output device such as a display unit3aas well as an input device such as a keyboard3band a mouse3c. The CPU3dexecutes software instructions such as a communication unit37and a world-wide web (WWW) browser35. Using the input devices3band3c, the user requests a world-wide web (WWW) page within the WWW browser35, and the client PC3formulates a WWW page request to the server1. In general, the server1receives the WWW page request from the client PC3via the network2. Upon receiving the WWW page request, the server1processes the WWW page request so that the WWW browser35receives the requested WWW pages that resides in the server1via the network2. The network2utilizes the Hyper Text Transfer Protocol (HTTP) for transmitting WWW information such as the WWW page request as well as the requested WWW page between the communication unit37of the client PC3and a communication unit36of the server1via the network adapters8and38.

Still referring toFIG. 6, the preferred embodiment of the server1according to the current invention dynamically generates a customized WWW page according to user information and or user requests. The server1includes a central processing unit5, a network adapter8, a disk storage unit7, a memory unit4and an input/output device such as a display9aand a keyboard9b, and these components are connected via a bus6. The network adapter8receives and sends signals to and from the network2, and the signals include the a WWW page request and a requested WWW page. In order to transmit the requested WWW page, the CPU5dynamically generates a WWW page from the information stored in the disk storage unit7. The information includes a template group30containing a group of predetermined templates, a data table31containing a group of tables, a batch generation definition group32containing a group of page generation definitions and a page group33containing a group of pages. A part or all of these groups of the information is copied into the memory4at a corresponding data area via a database management system unit (DBMS)15. The corresponding data areas include a template area23, a data area22, a batch page generation definition area20and a page area24. Using the information from the above areas, the CPU5executes a batch generation unit or program13in a memory unit4with the help of other software such as an operating system (OS)21and a WWW server unit or program11. According to one of the WWW page requests from the client PC3, the WWW server unit or program11retrieves a specified WWW page from the page group33into the page area24before transmitting it back to the WWW browser35. According to another one of the WWW page requests, the WWW server unit or program11outputs a page generation signal to a page generation unit or program12to dynamically generate a WWW page24. In response to the page generation signal, the page generation unit or program12generates the dynamic WWW page24under the control of the WWW server program11and/or a batch page generation control unit13. The dynamic WWW page24is generated based upon a template in the template area23and data in the data area22, and during the interpretation of the template, certain data is obtained from the data group31into the data area22to fill in the template.

FIG. 6also shows components involved in a batch page generation process. A batch page generation control unit13receives batch page generation definitions from a batch page generation definition area20and outputs a page generation signal to the page generation unit or program12in response to a time trigger signal from a timer unit16or a data update trigger signal from a data update unit14. The time trigger signal is generated after a predetermined time period while the data update trigger signal is generated when the data update unit14updates the data in the data area22from the data table31via the DBMS15. The above described batch page generation process prepares the updated dynamic WWW pages in advance of the user requests. This advance dynamic WWW page generation enables high-speed access by substantially eliminating on-the-fly page generation upon the user requests. Because of the advance dynamic WWW page generation, the preferred embodiment of the high-speed dynamic page generation system according to the current invention also takes advantage of a proxy server on the network.

Now referring toFIG. 7, a diagram illustrates a general data flow involved in the preferred embodiment of the high-speed dynamic page generation system according to the current invention. The data update unit or program14updates data22via the DBMS15ofFIG. 6. For example, the DBMS15may be a commercially available database management system for managing product data, a data synchronization tool, a template update program, a program installer or a set up program. Upon updating the data22, the data update unit14outputs a data update trigger signal to a batch page generation control unit or program13. The data update trigger signal specifies that a certain type of batch generation or a certain way to perform the batch generation. The data update trigger signal indicates the time of the update and/or the updated data such as a template or associated data. The information in the data update trigger signal is collected not only from a timer unit16and the data update unit14but also from the program installer, the set up program or a update command inputted by an operator. Some implementations for sending the information to the batch page generation control unit or program13includes the use of the OS message exchange facility or a common memory area. The batch page generation control unit13determines which page to be generated based upon a batch page generation definition20. The batch page generation control unit13outputs a generation signal to a page generation unit or program12. Based upon the above determined page, the page generation unit12receives the corresponding data22and the corresponding template23. The page generation unit12generates the specified page based upon the data22and the template23. Finally, the batch page generation control unit13determines a file name for the newly updated or generated page24as specified in the batch page generation definition20so that the newly updated or generated page24is stored with the file name in a storage device for later access via a WWW server unit11.

Still referring toFIG. 7, the diagram illustrates other general data flows involved in the preferred embodiment of the high-speed dynamic page generation system according to the current invention. Assuming that a page request from a WWW browser35refers to a WWW page that is not often updated and that the WWW page has been recently updated, upon receiving the page request via a network2, the WWW server unit11usually transmits the corresponding WWW page24from the page group33to the browser35via the network2. In this case, a proxy server40may effectively serve its function. Upon receiving the WWW page request, the proxy server40determines whether or not a copy of the same recently updated WWW page24exists in a cash41of the proxy server40. If the same WWW page does exists in the cash41, the proxy server40transmits the WWW page from the cash41to the WWW browser35via the network2. As described above, the WWW page has been dynamically generated or updated in advance of an actual user request, and since a copy of the prepared WWW page is also stored in the proxy server41, the access to the WWW dynamically updated page is optimized. On the other hand, when the above two assumptions are not correct, the preferred embodiment of the high-speed dynamic page generation system generates a requested WWW page in the following manner.

The preferred embodiment of the high-speed dynamic page generation system generates a requested WWW page when it confirms that the requested page is neither available nor updated. When the proxy server40determines that the requested page is not in the cash41or that the requested page in the cash41has not been updated, the proxy server40requests the batch page generation control unit13to generate the requested page24. In another case, the requested page is not available in the cash41or in the page group33in the WWW server unit. A certain WWW page changes every time for each WWW page request. This is because the requested WWW page incorporates certain information that is included in the WWW page request. For example, a name of the user is incorporated in the requested WWW page to customize the page. In this case, the WWW browser35directly requests the WWW server unit11to generate a new WWW page. In the above described situations, after the batch page generation control unit13determines which page to be generated, the page generation unit12generates the requested page24.

Now referring toFIG. 8, a flow chart illustrates acts involved in a preferred process of dynamically generating WWW pages and accessing the dynamically generated WWW pages at a high-speed access according to the current invention. In general, the flow chart illustrates two starting points1000and1020. When data used in a WWW page is to be updated, the preferred process starts at act1000. In act1001, the data is updated using a data update unit and a data base manager. After the data update in the act1001, a data update trigger signal is generated to indicate to the batch page generation control unit that the data update event had taken place in act1002. In response to the data update trigger signal, a page to be generated is determined based upon a batch page generation definition in act1003. In act1004, the selected page is generated using a template and data that correspond to the selected page. After the page is generated, a universal resource locator (URL) is determined based upon the batch page generation definition in act1005, and the generated page is stored in a storage device at a location specified by the URL in act1006. Thus, the page generation in response to the data update event is completed in act1007.

Still referring toFIG. 8, the other starting point1020for the preferred process of dynamically generating WWW pages occurs when a user requests a WWW page through a browser in act1021. It is determined in act1022whether or not the requested WWW page changes every time a request is made. To determine whether or not the requested WWW page changes every time a request is made in the act1022, a WWW server uses the page request information. For example, a static page URL is “http://www.aaa.co.jp/a_g—1000a.html” while a dynamic page URL is “http://www.aaa.co.jp/cgi-bin/page?TEMPLATE=a.html&ITEM=1000a). Because there is a difference in the page request format, the WWW server uses the page request information to determine whether the requested page is static or dynamic. When a static page such as a product page is requested by a URL such as “http://www.aaa.co.jp/a_g—1000a.html,” it is determined that the page usually does not change for each page request in act1022, and an already generated signal is outputted in act1023. Based upon the already generated signal from the act1023, the page that has been generated in acts1001through1006is transmitted to the user in act1024. The WWW server unit usually transmits the requested page through the network to the browser that originated the page request. The transmitted page is displayed in the original browser in act1025. On the other hand, when it is determined that the page usually changes for each page request in the act1022, a page generation request is issued in act1030. In response to the page generation request from the act1030, a page generation starts in act1031. In act1032, the requested page is generated according to a selected template and data. The newly generated page is transmitted to the browser that originated the page request via the network in act1033. Lastly, the transmitted page is displayed in the original browser in the act1025. The page display ends in act1026.

FIG. 9illustrates one example of batch page generation definitions used in the preferred process of dynamically generating WWW pages according to the current invention. In order to start a batch page generation, an update trigger signal has to be generated according to one of the predetermined trigger types and triggering conditions. That is, a trigger type event satisfies a corresponding trigger condition. For example, if a trigger type is time as shown in a trigger ID71, a template C has a time sensitive item that needs to be updated when it is 6 AM. When the time is 6 AM for the time trigger, an associated batch page generation command, “page TEMPLATE=c.html” is issued to the page generation unit. The newly generated file in response to the time trigger is named as “c_g_.html.” Similarly, for a data update type72, when data for a product A is updated, the batch page generation command “page TEMPLATE=a.html & ITEM=1000a” is issued. ITEM=1000a indicates that the template, a.html contains information for the item 1000a. The batch page generation is limited to pages containing the item 1000a information. On the other hand, for a data update type73, when a template itself is updated, the batch page generation command “page TEMPLATE=a.html & ITEM=*” is issued. ITEM=* indicates that since the template, a.html is updated, all pages that are to be generated from the information contained in the template a.html are generated. It is also possible to specify a certain group of items such as outdoor items by “ITEM=Group=outdoor.” In this example, all pages that contains the outdoor item data are updated. As described above, based upon the batch page generation definitions, the pages are generated in a flexible and dynamic manner to reflect a life cycle of each page according to the content of the page. In an alternative process of dynamically generating WWW pages according to the current invention, in stead of storing a predetermined name, a uniquely generated page file name is determined based upon a combination of the template name and the item name. Furthermore, in order to determine a URL, the unique file name such as “a_g—1000a.html” is appended to a predetermined location such as “http:\www.aaa.co.jp\” so that the generated page is stored at a unique address, http:\www.aaa.co.jp\a_g—1000a.html.

FIG. 10shows an exemplary template which is used in the preferred process of dynamically generating WWW pages according to the current invention. A single template is usually stored in a single file in the disk storage unit of a server computer. The exemplary template40000A includes page data generation commands40001through40017in the HTML. For example, an ECEX sentence40002includes a command to search a RDB in a data group31as shown inFIG. 6, and the result is substituted in $KEYWORD and $NCOND. These results are used in HTML sentences4064and405. RPEAT in sentences40004and40007indicates that the sentences40005and40006are repeated for a number of searched records to generate a corresponding number of items in a page.

FIG. 11shows an exemplary page40000B that was generated from the template40000A ofFIG. 10and the searched data as the page was dynamically generated according to the current invention. The page40000B now has HTML sentences40030and40031whose variables have been substituted by the results of the searches as specified by the commands in the template40000A inFIG. 10. For example, a number of product variable $COUNT has been replaced by a search result “184.” This is a number of records in a data group31. Each record has at least one of “text, voice, image and animation.” The search condition $CONDITION is blank, and an initial page is generated. The generated product page is the same for all the users, and it will change only when the product data is updated.FIG. 12illustrate an exemplary display output generated by a browser according to the HTML page40000B ofFIG. 11. The HTML page40000B illustrates only a portion of the HTML sentences to generate the display shown inFIG. 12. That is, the HTML page4000B shows the HTML sentences to display a portion50, but it does not show the HTML sentences to generate display portions51and52. When the user selects a certain item in the display, the search condition is now specified for sub-classifications. The same template40000A is used for a search for the sub-classifications.

To further illustrate a page generation, now referring toFIG. 13, a template65and a data set66are used in the first preferred process of dynamically generating WWW pages. Initially, the underlined EXEC commands in the template65are executed with a parameter specification ITEM=1000a. To find the corresponding data for ITEM=1000a, a product data table is opened as illustrated inFIG. 14. In a product ID60column, data associated with the product item 1000a is found in a row61. Thus, for example, the product name is found to be “Christmas dinner certificate” which substitutes a variable $product name. As shown inFIG. 13, in response to a data update trigger signal to control of a batch page generation control unit13, a page generation unit23substitutes the variables in the template65with searched data66for ITEM=1000a from the product data table ofFIG. 14to generate a page67. According to the above described page generation process, the generated page67is now displayed as shown inFIG. 15. When the parameter is changed to ITEM=1000b, in a product ID60column, data associated with the product item 1000a is found in a row62, and the page is generated accordingly. The generated page for ITEM=1000b is now displayed as shown inFIG. 16.

In an alternative embodiment, a batch page generation is sequentially performed. In other words, in stead of completing the process to turn a template into a page upon the user page access request, the page is prepared in advance of the user access request and the prepared page is stored. At the first page generation, a template becomes substantially static by substituting most or all variables by searched data. Upon the user page access request, the stored page is now used as a template. This sequential or layered approach still advantageously reduces the page generation time at the time of the user request. For example, after a user page access request such as “http://www.aaa.co.jp/cgi-bin/page? TEMPLATE=a.html&ITEM=1000a,” a page is generated and stored as “a_g.html.” In response to “http://www.aaa.co.jp/cgi-bin/page? TEMPLATE=a_g.html&ITEM=1000a,” the previously generated page is efficiently accessed. The addition of a link relation “_g” allows the above efficient access. This method is especially useful for a template that requires a lengthy page generation process. Another advantage is that the page generation is flexibly controlled. When the a_g.html file exists upon the user page access request, the page is transmitted from the existing file. On the other hand, when the a_g.html file does not exist upon the user page access request, the page generation takes place. For example, since the page file is being locked while the corresponding page generation is in progress, when the page access request arrives during the page generation, the new page generation is switched to proceed from the corresponding template.

Now referring toFIG. 17, a block diagram illustrates a second preferred embodiment of the high-speed dynamic page generation system according to the current invention. The second preferred embodiment includes a server or a server computer1, a client or a client personal computer (PC)3, and a network2that connects the server1and the client3via the Internet and Intranet. The client PC3further includes a central processing unit (CPU)3d, a network adapter38, an output device such as a display unit3aas well as an input device such as a keyboard3band a mouse3c. The CPU3dexecutes software instructions such as a world-wide web (WWW) browser35. Using the input devices3band3c, the user requests a world-wide web (WWW) page within the WWW browser35, and the client PC3formulates a WWW page request to the server1. In general, the server1receives the WWW page request from the client PC3via the network2. Upon receiving the WWW page request, the server1processes the WWW page request so that the WWW browser35receives the requested WWW pages that resides in the server1via the network2. The network2utilizes the Hyper Text Transfer Protocol (HTTP) for transmitting WWW information such as the WWW page request as well as the requested WWW page between the client PC3and the server1via the network adapter8.

Still referring toFIG. 17, the preferred embodiment of the server1according to the current invention dynamically generates a customized WWW page according to user information and or user requests. The server1includes a central processing unit5, a network adapter8, a disk storage unit7, a memory unit4and an input/output device such as a display9aand a keyboard9b, and these components are connected via a bus6. The network adapter8receives and sends signals to and from the network2, and the signals include the a WWW page request and a requested WWW page. In order to transmit the requested WWW page, the CPU5dynamically generates a WWW page from the information stored in the disk storage unit7. The information includes a template group30containing a group of predetermined templates, a data table31containing a group of tables and a batch generation definition group32containing a group of page generation definitions. A part or all of these groups of the information is copied into the memory4at a corresponding data area via a database management system unit (DBMS)15. The corresponding data areas include a first template area101, a data area22, a batch page generation definition area20and a second template area102. Using the information from the above areas, the CPU5executes a batch generation unit or program13in a memory unit4with the help of other software such as an operating system (OS)21and a WWW server unit or program11. According to one of the WWW page requests from the client PC3, the WWW server unit or program11retrieves a specified WWW page from the page group33into the page area24before transmitting it back to the WWW browser35.

According to another one of the WWW page requests that is not from the client PC3, the WWW server unit or program11outputs a page generation signal to a delay-capable page generation unit or program100to dynamically generate a WWW page24. In response to the page generation signal, the delay-capable page generation unit100interprets a template A that has been read from the template group30in the first template area101. The delay-capable page generation unit100generates a template A′ in a memory area102under the control of the WWW server program11and/or a batch page generation control unit13. The template A′ is generated based upon the template A in the template area101and data in the data area22, and during the interpretation of the template, certain data is obtained from the data group31. The batch page generation control unit13stores the newly generated template A′ in the template group30in the disk storage unit7to be later retrieved by the delay-capable page generation unit100. Upon receiving the WWW page request from the browser35, the delay-capable page generation unit100generates the requested WWW page that corresponds to the stored template A′ in the area102. The server1transmits the newly generated WWW page to the client PC3. The template A′ has been generated in advance to reflect a change in the server environment so that the same process is eliminated at the page generation upon receiving a WWW page request from a user. Upon receiving a user WWW page request, the template A′ is used to speed up the page generation process even if the user information is processed to generate the requested WWW page.

Now referring toFIG. 18, a diagram illustrates a general data flow involved in the second preferred embodiment of the high-speed dynamic page generation system according to the current invention. In the alternative, a timer program or unit16generates a time trigger signal indicative of updating a certain predetermined portion of data and outputs the time trigger signal to the batch page generation control unit or program13. The data update unit or program14updates data22. Upon updating the data22, the data update unit14outputs a data update trigger signal to a batch page generation control unit or program13. The data update trigger signal specifies that a certain type of batch generation or a certain way to perform the batch generation. The data update trigger signal indicates the time of the update and/or the updated data such as a template or associated data. The information in the data update trigger signal is collected not only from a timer unit16and the data update unit14but also from the program installer, the set up program or a update command inputted by an operator. Some implementations for sending the information to the batch page generation control unit or program13includes the use of the OS message exchange facility or a common memory area. The batch page generation control unit13determines which page to be generated based upon a batch page generation definition20. The batch page generation control unit13outputs a generation signal to a delay-capable page generation unit or program100. Based upon the above determined page, the delay-capable page generation unit100receives the corresponding data22and the corresponding first template A101. The first template A101has a delay execution command, and the delay-capable page generation unit100interprets this command to generate another template rather than a page. The delay-capable page generation unit100generates a second template A′102based upon the data22and the first template A101. The second template A′102is stored the template group30in the disk storage unit7as shown inFIG. 17.

The delay execution commands are further illustrated. For example, the first template A101includes the following delay execution commands:

The delay-capable page generation unit100interprets these delay execution commands by identifying a condition, “non” and generates the second template A′102by removing the condition. Thus, the second template A′102contains the following commands:

The above commands are identical to those before the interpretation except that they are now immediately executable.

Still referring toFIG. 18, the diagram illustrates other general data flows involved in the preferred embodiment of the high-speed dynamic page generation system according to the current invention. Assuming that a page request from a WWW browser35refers to a WWW page that has been recently updated and that the corresponding second template A′102is stored in the disk storage7, upon receiving the page request via a network2, the delay-capable page generation unit100generates a requested WWW page based upon the second template A′102and the data22. The execution delay commands in the first template A101are now executed since these commands are stored as immediately executable ones in the second template A′102. The generated page is transmitted via the network2to the browser35, which issued the page WWW request.

Now referring toFIG. 19, a flow chart illustrates acts involved in a second preferred process of dynamically generating WWW pages and accessing the dynamically generated WWW pages at a high-speed access according to the current invention. In general, the flow chart illustrates two starting points2000and2020. When data used in a WWW page is to be updated, the preferred process starts at act2000. In act2001, the data is updated using a data update unit and a data base manager. After the data update in the act2001, a data update trigger signal is generated to indicate to the batch page generation control unit that the data update event had taken place in act2002. In response to the data update trigger signal, a page to be generated is determined based upon a batch page generation definition in act2003. In act2004, the selected page is generated as a second template A′ using a first template A and data that correspond to the selected page. The delay execution commands embedded in the HTML of the first template A are converted into immediately executable commands in the second template A′. After the second template A′ is generated, a universal resource locator (URL) is determined based upon the batch page generation definition in act2005, and the generated second template A′ is stored in a storage device at a location specified by the URL in act2006. Thus, the page generation in response to the data update event is completed in act2007.

Still referring toFIG. 19, the other starting point2020for the preferred process of dynamically generating WWW pages occurs when a user requests a WWW page through a browser in act2021. The URL in the WWW page request is used to determine whether or not the requested WWW page is the one corresponds to the first template A and the second template A′. For example, a URL is “http://www.aaa.co.jp/cgi-bin/page?TEMPLATE=ad.html&ITEM=1000a” The WWW page request is sent to the server unit identified by “http://www.aaa.co.jp/” in act2022, and the server starts the page generation in act2023. In act2024, the requested page is generated according to the second template A′ and data. The second template A′ is identified by “ad.html” while the data is identified by “ITEM=1000a.” The second template A′ is stored at the location specified in the act2006and has now immediately executable commands. Only these immediately executable commands are now executed. The newly generated page is transmitted to the browser that originated the page request via the network in act2025. Lastly, the transmitted page is displayed in the original browser in the act2026. The page display ends in act2027.

FIG. 20, a first template A, a second template A′ and a data set66are used in the second preferred process of dynamically generating WWW pages. Initially, a delay-capable page generation unit23aexecutes the underlined EXEC commands without “$NOP” in the first template A under the control of the batch page generation control unit13in response to a data update trigger signal. The delay-capable page generation unit23aconverts the delayed execution commands into the immediately executable commands by removing the “$NOP” notations, and the result is stored as a second template A′. For example, the first template A includes “<$nop $User Name>, and this delay command is converted into an immediately executable command” <$User Name>, which is stored in the second template A′. Later, upon receiving from a user WWW browser a page request that corresponds to the first template A, a WWW server11initiates the page generation to the delay-capable page generation unit23b. The delay-capable page generation unit23bgenerates a requested page based upon the second template A′. Using the same example, the delay-capable page generation unit23now executes the immediately executable command, $User Name in the second template A′ and substitutes the user name variable with the name of the page requester, “Mr. Bando.” Since other executable commands have been already completed when the second template A′ was generated from the first template A, the page generation from the second template A′ is substantially speeded up.

The above described page generation is advantageous when a requested page includes information that needs to be updated when the corresponding data is modified and that is not available until the user page request arrives. In other words, the second template A′ is prepared from the first template A in advance of a user page request whenever the relevant data for the first template A is modified or updated. The page is efficiently completed based upon the second template A′ and the incoming information when the user page request occurs. This process allows efficient generation of a customized page for an individual user. In addition to the above described customized user name, more general information can be used in a delayed manner. For example, the general information includes the current time, a number of access to a certain page, and the final page from the second template A′ is generated according to the general information. In an alternative embodiment, in stead of the above described data update, other sources of triggers are used to generate the second template A′. The examples of the alternative trigger sources include a time-base trigger.

Now referring toFIG. 21, a diagram illustrates a general data flow involved in the third preferred embodiment of the high-speed dynamic page generation system according to the current invention. The data update unit or program14updates data22. In the alternative, a timer program or unit16generates a time trigger signal indicative of updating a certain predetermined portion of data and outputs the time trigger signal to a batch page generation control unit or program13. Upon updating the data22, the data update unit14outputs a data update trigger signal to the batch page generation control unit or program13. The data update trigger signal specifies that a certain type of batch generation or a certain way to perform the batch generation. The data update trigger signal indicates the time of the update and/or the updated data such as a template or associated data. The information in the data update trigger signal is collected not only from a timer unit16and the data update unit14but also from the program installer, the set up program or a update command inputted by an operator. Some implementations for sending the information to the batch page generation control unit or program13includes the use of the OS message exchange facility or a common memory area. The batch page generation control unit13determines which page to be generated based upon a batch page generation definition20. The batch page generation control unit13further includes an update flag104for each page in a delay generation function unit103.

Upon receiving the data update trigger signal or the time trigger signal a page corresponding to a first template A101, the batch page generation control unit13sets a corresponding one of the update flag or tuns it on. While the update flag is set or on for the page corresponding to the first template A101, if the delay-capable page generation unit100receives a page request for the corresponding first template A101, the delay-capable page generation unit100generates a second template A′102based upon the data22and the first template A101. The second template A′102is stored the template group30in the disk storage unit7as shown inFIG. 17. After the second template A′102is generated, the corresponding flag is reset or turned off. On the other hand, while the update flag is reset for the page corresponding to the first template A101, if the delay-capable page generation unit100receives a page request for the corresponding first template A101, the delay-capable page generation unit100simply returns the already generated corresponding page. By confirming with the delay generation function103, it is guaranteed that the second template A′102has been already updated.

Still referring toFIG. 21, the diagram illustrates other general data flows involved in the third preferred embodiment of the high-speed dynamic page generation system according to the current invention. Assuming that a page request from a WWW browser35refers to a WWW page that has been recently updated and that the corresponding second template A′102is stored in the disk storage7, upon receiving the page request via a network2, the delay-capable page generation unit100generates a requested WWW page based upon the second template A′102and the data22. The execution delay commands in the first template A101are now executed since these commands are stored as immediately executable ones in the second template A′102. The generated page is transmitted via the network2to the browser35, which issued the page WWW request.

Now referring toFIG. 22, a flow chart illustrates acts involved in a third preferred process of dynamically generating WWW pages and accessing the dynamically generated WWW pages at a high-speed access according to the current invention. In general, the flow chart illustrates two starting points3000and3020. When data used in a WWW page is to be updated, the preferred process starts at act3000. In act3001, the data is updated using a data update unit and a data base manager. After the data update in the act3001, a data update trigger signal is generated to indicate to the batch page generation control unit that the data update event had taken place in act3002. Each of the update flag as defined in the batch page generation definition is set or turned on in act3003to indicate that the relevant page should be later updated. In act3004, the initialization of the update flag is completed.

Still referring toFIG. 22, the other starting point3020for the third preferred process of dynamically generating WWW pages occurs when a user requests a WWW page through a browser in act3021. A request for generating the selected page as a second template A′ from a first template A and the corresponding data is made to the WWW server in act3022. The WWW server initiates the page generation in act3023. The page generation unit inquires into the status of the corresponding update flag in the delay generation function unit in act3024. If the update flag is OFF in act3025, a page is generated from the second template A′ and the corresponding data in act3026. Only these immediately executable commands in the second template A′ are now executed. The newly generated page is transmitted to the browser that originated the page request via the network in act3027. Lastly, the transmitted page is displayed in the original browser in the act3028. The page display ends in act3029. On the other hand, if the update flag is ON in act3025, the page to be generated is determined according to the batch page generation definition in act3030. A second template A′ is generated based upon the first template A and the corresponding data in act3031, and if there any delayed commands in the first template A, these commands are converted into immediately executable commands in the second template A′. After the second template A′ is generated, a universal resource locator (URL) is determined based upon the batch page generation definition in act3032, and the generated second template A′ is stored in a storage device at a location specified by the URL in act3033. The update flag is now reset or turned off in act3034. After the act3034, the preferred process proceeds to the act3026.

Now referring toFIG. 23, a diagram illustrates a data flow involved in the E-commerce such as an electronic mall of the preferred embodiment of the high-speed dynamic page generation system according to the current invention. The electronic or virtual mall includes a store201and a customer200. The store201maintains products information centrally in a virtual mall server202. In response to the request to change certain product information from a store20, the data update unit or program14updates data such as product data22, and page generation definition data is defined to update a product catalogue whenever its product data is modified. Upon updating the product data22, the data update unit14outputs a data update trigger signal to a batch page generation control unit or program13. The data update trigger signal specifies that a certain type of batch generation or a certain way to perform the batch generation. The data update trigger signal indicates the time of the update and/or the updated data such as a template or associated data. The batch page generation control unit13determines which page to be generated based upon a batch page generation definition20. The batch page generation control unit13outputs a generation signal to a page generation unit or program23. Based upon the above determined page, the page generation unit23receives the corresponding data22and the corresponding template101. The page generation unit12generates the specified product page based upon the data22and the template101. Finally, the batch page generation control unit13determines a file name for the newly updated or generated product page102as specified in the batch page generation definition20so that the newly updated or generated product page24is stored with the file name in a storage device for later access via a WWW server unit11.

Still referring toFIG. 23, the diagram illustrates other general data flows involved in the preferred embodiment of the high-speed dynamic page generation system used for the E-commerce according to the current invention. The customer200is interested in a certain product and browses a catalogue at the virtual mall202. Assuming that a page request from a WWW browser35refers to a WWW page, upon receiving the page request via a network2, the WWW server unit11usually transmits the corresponding WWW page24from the page group33to the browser35via the network2. If a huge number of pages needs to be updated for a product information change, only certain pages that are frequently accessed or whose generation process is lengthy are defined to be generated in the batch page generation definition data20. As described above, the WWW page has been dynamically generated or updated in advance of an actual user request, the access to the WWW dynamically updated page is optimized. Furthermore, when the customer200searches certain product, a product page is generated only after a search.

Now referring toFIG. 24, a flow chart illustrates acts involved in the exemplary use of a preferred process of dynamically generating WWW pages and accessing the dynamically generated WWW pages at a high-speed access according to the current invention. In general, the flow chart illustrates two starting points4000and4020. When product data used in a WWW page is to be updated, the preferred process starts at act4000. In act4001, a store participating in a virtual mall wants to update its product information, the product data is uploaded to a server where the product information is kept. After the data upload in the act4001, the server sends the uploaded information to a data update unit in act4002. In response to the uploaded data, the data update unit updates or replaces the corresponding product data with the newly uploaded data, and an update trigger is sent to a batch page generation definition control unit13in act1003. In act1004, based upon the batch page generation definition data, the selected page is generated using a template and the newly updated data that correspond to the selected page. After the product page is generated, the generated product page is stored in a storage device at a location in act4005. Thus, the page generation in response to the data update event is completed in act4006.

Still referring toFIG. 24, the other starting point4020for the preferred process of dynamically generating WWW pages occurs when a customer requests a WWW page for the product information through a browser in act4021. The WWW server initiates the page generation in act4022. A new product page is dynamically generated using the above stored product page as a template in act4023. The newly generated page is transmitted to the browser that originated the page request via the network in act4024. Lastly, the transmitted page is displayed in the original browser in the act4025. The page display ends in act4026. The above virtual mall example illustrates the flexible product information management as well as the dynamic and efficient product page generation. As a result, the customers are able to access the most updated product information in an efficient manner.

Using the above described virtual mall example, a comparison was made in efficiency for the page access between the prior art access method as shown inFIG. 5and the first preferred embodiment according to the current invention as shown inFIG. 7. When the following samples are made:

Sample 1: fifteen data calls in a store catalogue

Sample 2: eight data calls in a focus search page

Sample 3: twenty-five data calls in a product catalogue

In the above sample situations, when ten users simultaneously accessed the same data, an amount of time to complete the display of the accessed data was measured. The measured time is shown as follows:

Prior Art1stPreferred EmbodimentEfficiencySample 1:15 seconds3 seconds5 timesSample 2:40 seconds4 seconds10 timesSample 3:45 seconds3 seconds15 times
As shown above, the response time has improved from approximately 2.5 times to approximately 15 times. The dynamic page generation according to the current invention is flexibly performed according to the life of each page. In comparison to unnecessary page generation of the prior art, the page generation time is substantially reduced, and the generated page is efficiently accessed. Since the dynamically generated page is stored in advance, the current invention allows the use of the prior art technologies such as proxy servers in combination to further improve the performance in the cost of transmission of the page information to the user.

In alternative embodiment according to the current invention, in stead of the page generation at the server site, the page generation takes place at a user site. For example, a batch page generation unit or program as well as a batch page generation control unit or program are located at a client PC. By accessing the data and the template at the server, the client generates a new page at the client site before displaying it on the browser. The batch page generation unit or program as well as the batch page generation control unit or program are delivered in an independent medium such as CD-ROM. In an alternative embodiment, in stead of HTML, other languages are used. For example, XML, PostScript, SGML are alternatively used.

It is to be understood, however, that even though numerous characteristics and advantages of the present invention have been set forth in the foregoing description, together with details of the structure and function of the invention, the disclosure is illustrative only, and that although changes may be made in detail, especially in matters of shape, size and arrangement of parts, as well as implementation in software, hardware, or a combination of both, the changes are within the principles of the invention to the full extent indicated by the broad general meaning of the terms in which the appended claims are expressed.