METHOD AND SYSTEM FOR MANAGING WEB PAGES
TECHNICAL FIELD
The present invention relates generally to managing web pages, and more particularly, to defining and generating web pages.
BACKGROUND
Because it facilitates electronic communications, the Internet is increasingly being used by organizations to disseminate information to customers, clients, and others. The Internet comprises a vast number of computers and computer networks that are interconnected through communication channels. The dissemination of information is often used to further "electronic commerce." Electronic commerce refers generally to commercial transactions that are at least partially conducted using the computer systems of the parties to the transactions. For example, a purchaser can use a personal computer to connect via the Internet to a vendor's computer. The purchaser can then interact with the vendor's computer to conduct the transaction.
The Internet facilitates conducting electronic commerce, in part, because it uses standardized techniques for exchanging information. Many standards have been established for exchanging information over the Internet, such as electronic mail, Gopher, and the World Wide Web ("WWW"). The WWW service allows a server computer system (i.e., web server or web site) to send graphical web pages of information to a remote client computer system. The remote client computer system can then display the web pages. Each resource (e.g., computer or web page) of the WWW is uniquely identifiable by a Uniform Resource Locator ("URL"). To view a
specific web page, a client computer system specifies the URL for that web page in a request (e.g., a HyperText Transfer Protocol ("HTTP") request). The request is forwarded to the web server that supports that web page. When that web server receives the request, it sends the requested web page to the client computer system. When the client computer system receives that web page, it typically displays the web page using a browser. A browser is typically a special-purpose application program that effects the requesting of web pages and the displaying of web pages.
Currently, web pages are generally defined using HyperText Markup Language ("HTML"). HTML provides a standard set of tags that define how a web page is to be displayed. When a user indicates to the browser to display a web page, the browser sends a request to the server computer system to transfer to the client computer system an HTML document that defines the web page. When the requested HTML document is received by the client computer system, the browser displays the web page as defined by the HTML document. The HTML document contains various tags that control the displaying of text, graphics, controls, and other features. The HTML document may contain URLs of other web pages available on that server computer system or other server computer systems.
Web pages are typically defined by static HTML documents, which are documents that are created and stored at the server computer system and then retrieved whenever requested by a client computer system. To allow customization of web pages, web servers can generate HTML documents dynamically when a request is received for a web page. One technology for dynamically generating HTML documents is referred to as an "active server page." When a web server receives a request from a client computer system for an active server page identified by a URL, the web
server retrieves that active server page and invokes a special-purpose server to execute the commands of the active server page. The commands of an active server page typically result in the generating of an HTML document that is then sent to the client computer system. The commands of an active server page may retrieve data from a database to be used when a generating the HTML document. For example, if the web server supports the sale of computers, then an active server page may access to database that contains a description of the computers that may be purchased. The execution of the active server page results in the generation of an HTML document defining a web page that contains the information retrieved from a database. This HTML document is then sent to the client computer system as a response to the request for the URL that identified the active server page.
The creation of the web pages (e.g., HTML documents that define the web pages) for a web site can be time-consuming and expensive because of the number of web pages that may be used by a web site, because of the complex interrelation of web pages, and because of the high level of skill needed by a web page developer. It would be desirable to have a system that facilitates the development of web pages so that web pages can be developed and maintained by a person who is not a highly skilled web page developer.
SUMMARY
A method and system for managing web pages is provided.
The web page management system generates a hierarchy of web pages based on layout templates and content associated with the web pages. A layout template defines the overall organization of a web page that includes defining the type of content to be included on the web page and defining the location
of that content on the web page. The management system maintains a mapping between a web page and its layout template and content and positions of web pages within the hierarchy. When a web page is generated, the web page management system retrieves the layout template and the content for that web page and positions the content on the web page in accordance with the layout template. A web site administrator may create a new web page by specifying the mapping for the new web page. The management system may maintain a listing of layout templates that can be used to define web pages. A web site administrator may define additional layout templates as needed. The management system may allow a web site administrator to view the currently defined layout templates when defining a new web page. The web site administrator can then select the desired layout template for the new web page. The web site administrator also specifies the content to be associated with that new web page. The management system may allow the web site administrator to view and select previously defined content or may allow the web site administrator to define new content. The management system may allow the web site administrator to duplicate or move a sub-tree of web pages within the hierarchy.
BRIEF DESCRIPTION OF DRAWINGS
Figure 1 illustrates a sample web page generated by the management system.
Figure 2 is a block diagram illustrating a hierarchy of web pages.
Figure 3 illustrates the layout defined by a sample layout template that was used to generate the web page of Figure 1.
Figure 4 is a block diagram illustrating components of the management system in one embodiment.
Figure 5 is a block diagram illustrating the data structure of the web page database in one embodiment.
Figure 6 is a diagram illustrating a web page for maintaining the web page definitions of the web page database in one embodiment.
Figure 7 is a diagram illustrating a web page for maintaining the content definitions in the web page database.
Figure 8 is a flow diagram of an example function that implements a web page generator component in one embodiment.
Figure 9 is a flow diagram of an example function to validate the access.
Figure 10 is a flow diagram illustrating an example function to generate a standard area of a web page.
Figure 11 is a flow diagram illustrating an example function for adding left navigation links to the web page.
Figure 12 is a flow diagram illustrating an example function to generate a custom area of the web page in one embodiment.
Figure 13 is a diagram illustrating an implementation of the management system that uses active server pages.
DETAILED DESCRIPTION
A method and system for defining and generating web pages is provided. In one embodiment, a web page management system provides a database in which a hierarchy of web pages can be defined. A web site administrator can use the management system to add web pages to the hierarchy, remove web pages from the hierarchy, and to modify the web pages. Each web page within the hierarchy is assigned a layout template by the web site administrator. A layout template defines the overall layout of a web page. For example, a layout template may specify that a web page is to contain text at certain positions and graphic images at certain other positions, but might not specify the content of the text and graphic images at those positions. The management system may provide a variety of layout templates for web pages. When a web page is accessed, the management system retrieves the layout template for that a web page and retrieves content that has been assigned to the web page. The management system then uses the retrieved layout template and retrieved content to generate the web page.
In one embodiment, the layout templates are stored as active server pages. When a request is received for a web page, the management system identifies the layout template assigned to that web page by accessing the database. The management system then directs the execution of the layout template, which is an active server page. The layout template uses the identification of the requested web page to retrieve from the database information describing the content of that web page. The layout template generates an HTML document that has the overall layout defined by the layout template and is customized to the content of the requested web page. The layout template may also include other standard active server pages to generate portions of the HTML document that may be common to the web
pages defined in the hierarchy. For example, each HTML document may contain a company logo at a certain location or may contain navigation controls that are common to all web pages.
The web page management system includes a maintenance component for maintaining the web page definitions in the database. The maintenance component allows a web page administrator to add new web pages to modify existing web pages, and to reorganize the hierarchy of web page. The maintenance component may also allow a web page administrator to control the release and effective dates of the web pages and their content. For example, the maintenance component may allow a new web page to be defined and to be placed in the hierarchy of web pages. That new web page may, however, be given an initial status of held. The management system will ignore held web pages when dynamically generating web pages requested by a client computer system. Once, however, the status of a web page is changed to released, the management system will treat that web page as fully integrated into the hierarchy that is accessible by the client computer system. Each web page may also have a start and end effective date. When generating web pages, the management system will ignore a web page when the current date is outside its effective date range. In this way, a web site administrator can control releasing of web pages.
Figure 1 illustrates a sample web page generated by the management system. Web page 100 includes a URL field 101, a logo area 102, a left navigation area 103, a top navigation area 104, custom information area 105, and footer navigation area 106. This web page is example of a fifth level web page within a hierarchy of web pages. The path through the web page hierarchy for this web page is "products/business/computers/PC." The left navigation area includes
navigation links to first and second level web pages. In this example, the first level web pages relate to products, services, contacting the web server, and information about the web site. The second level web pages of the products web page relate to home, business, and other. The top navigation area includes navigation links to the third and fourth level web pages. In this example, the third level web page of the business web page relates to computers, printers, and miscellaneous. Navigation links below links the third level web pages are to the fourth level web pages. The navigation link for the PC web page is highlighted to indicate that the displayed web page is an ancestor web page of that web page. The logo includes a navigation link to the main web page of the web site. The custom information area in this example contains information relating to a certain computer. The footer navigation area contains navigation links to the first level web pages.
Figure 2 is a block diagram illustrating a hierarchy of web pages. The main level corresponds to the main web page of the web site. From the main web page, a user may select any level 1 web page. From a level 1 web page, a user can select any level 2 web page that is a descendent of that level 1 web page. From a level 2 web page, a user can select any level 3 web page that is a descendant of the level 2 web page. This hierarchy of web pages may continue to an arbitrary level of nesting. Each web page may also allow a user to select the main web page (e.g., a link associated with a logo) or a level 1 web page (e.g., via a navigation footer area).
Figure 3 illustrates the layout defined by a sample layout template that was used to generate the web page of Figure 1. In this example, the layout template defines a logo area 302, a left navigation area
304, the top navigation area 305, a custom information area 306, and a footer navigation area 307. This layout template specifies that the web page will
contain a logo in the logo area 302, links to level 1 and 2 web pages in the left navigation area, links to level 3 and 4 web pages in the top navigation area, and links to level 1 web pages in the footer navigation area. The custom information area includes an area for a short textual description, a long textual description, and a graphic image. When the management system receives a request for a web page at level 5, it generates a web page that includes standard web page information for the web pages of the web site. In this example, the logo area and the navigation areas are standard to each web page of the web site. In one embodiment, the layout template includes an active server page that defines the standard web page information.
Figure 4 is a block diagram illustrating components of the management system in one embodiment. The client computers 401 and a server computer 403 are interconnected via the Internet 402. The computers may include a central processing unit, memory, input devices (e.g., keyboard and pointing device), output devices (e.g., display devices), and storage devices (e.g., disk drives). The memory and storage devices are computer- readable media that may contain computer instructions that implement the management system. The client computers may use a browser to access web pages via the Internet. The server computer implements the management system. The management system includes a web server 404, a web page generator 405, a web page maintenance component 406, web page folders 407, and a web page database. The web server receives requests for resources (e.g., web pages) via the Internet and coordinates the generation and transmission of the resources. The web page generator component receives requests for web pages, generates the web pages based on the information stored in the web page database and the web page folders, and provides the generated web page. The web page maintenance component
allows a web site administrator to define the hierarchy of the web pages and content of the web pages. The web page database stores the hierarchy and content of the web pages. The web page folders may contain data to be included on various web pages as specified by the web page database. The web page folders may contain the layout templates and image files that are referenced by the web page database. One skilled in the art will appreciate that the concepts of the management system can be used in various other environments other than the Internet, such as an intranet or a non-networking environment. Various communication channels may also be used such as a local area network, wide area network, or point-to-point dial-top connection instead of the Internet. The server system may comprise any combination of hardware or software.
Figure 5 is a block diagram illustrating the data structure of the web page database in one embodiment. The web page database includes a page table 501 and a content table 502. The page table contains an entry for each web page that can be generated by the management system. The page table contains the following fields:
The content table contains an entry for each content that can be dynamically included on a web page. The content table contains the following fields:
The page table and the content table may also contain fields for tracking the maintenance of the web pages and content. For example, the page table may include fields that identify the person who created the web page, who approved the web page, and the person who released the web page. The page table may also include date fields associated with the creating, approving and releasing of web pages.
The web page database also includes a log on table 503, an audience table 504, and a log on/audience table 505. The management system uses the log on table to determine whether a user is a member of the audience for web pages. The log on table contains an entry for each user who is registered to access the dynamically generated web pages. The log on table contains a user identifier, a user password, a user name, and other information relating to the user. The audience table contains entries that each described an audience of users. The audience table contains an audience identifier and an audience name. The log on/audience table maps each audience to the users who are members of the audience.
Figure 6 is a diagram illustrating a web page for maintaining the web page definitions of the web page database in one embodiment. Web page 600 is used to maintain a definition of the web pages. The web page shows the information relating to the definition of the web page corresponding to Figure 1. The web page includes fields 601 that correspond to the fields of the page table. For example, the web page includes a page identifier field, a page named field, an audience field, and so on. A web site
administrator enters the name of the layout template into the template field. The layout template files may be stored in a certain folder within the web page folders. The content portion 602 of the web page indicates the content that is to be included on the web page. The content portion contains information that is stored in the content table. The web site administrator may modify the data within the fields and may select a content title to request a web page for modifying that content.
Figure 7 is a diagram illustrating a web page for maintaining the content definitions in the web page database. Web page 700 allows the web site administrator to specify the content that is to be included on the web page. This web page displays the information for one content entry in the content table. This web page displays the page identifier associated with this content, the category of the content, a template for this content, and in this example, text that forms the content.
Figures 8-12 are flow diagrams illustrating sample processing performed by various functions of the management system. The functions may be implemented using active server pages or any programming language. The function receives a page identifier and a generates the web page for that page identifier. The function validates that the requesting user has access to the web page, generates a standard area for the web page, generates a custom area for web page, and then generates a footer area for the web page. In step 801, the function invokes the validate access function passing the page identifier and receiving in return an indication as to whether the access is valid. In step 802, if the returned indicator indicates that the access is valid, then the function continues in step 803, else the function returns an error web page. In step 803, the function invokes a generate standard area function passing the page identifier. That function creates the standard portion of the
web page. In step 804, the function invokes the generate custom area function passing the page identifier. That function generates the area of the web page that is customized by the web page site administrator. In step 805, the function generates a footer for the web page and then returns.
Figure 9 is a flow diagram of an example function to validate the access. This function accesses the log on/audience table to determine whether the requesting user has access to the web page. In step 901, if the user is in the audience, then the function continues at step 902, else the function returns an invalid indication. The function determines whether a user is within the audience by retrieving the audience identifier from the entry for the web page identifier and then accesses the log on/audience table to determine whether the identifier for the user is in that audience. In step 902, if the requested page is currently effective, then the function continues at step 903, else the function returns an invalid indication. A web page is currently effective if its status is released and the current date is within the effective date range of the web page as indicated by the entry in the page table. In step 903, if at least some content of the web page is effective, then the function returns a valid indication, else the function returns an invalid indication. The content of the web page is effective if the content is released and the current time is within the effective date range as indicated by the content table.
Figure 10 is a flow diagram illustrating an example function to generate a standard area of a web page. The standard area of a web page is that portion of the web page that contains information that is standard to all the web pages (e.g., hierarchy navigation links). In step 1001, the function sets a background color for the web page. An indication of the background color can be stored in the layout template or in the database. In step 1002,
the function retrieves the page identifier and title and adds them to the web page. In step 1003, the function retrieves a background image for the background color and adds that image to the web page. The same image can be used in several different web pages. Different versions of that image may be stored to accommodate the various possible background colors. In step 1004, the function retrieves a logo image for the color and adds it to the web page with a link to the main page. In step 1005, the function invokes a function to add the left navigation links (e.g., level 1 and 2) to the web page. In step 1006, the function invokes a function to add the top navigation links (e.g., level 3 and 4) to the web page. The function then returns.
Figure 11 is a flow diagram illustrating an example function for adding left navigation links to the web page. (The function for adding top navigation links to the web page functions in an analogous manner.) This function adds navigation links for levels 1 and 2. In step 1101, the function retrieves the titles of the level 1 pages from the page table. In step 1102, the function retrieves the titles of the level 2 pages of the level 1 ancestor of the requested web page. In step 1103, if the level of the current web page is equal to 1 or 2, then the function highlights the title of the requested web page within the navigation links in step 1104, else the function continues at step 1105. In step 1105, the function adds the retrieved titles for levels 1 and 2 to the web page as navigation links and returns.
Figure 12 is a flow diagram illustrating an example function to generate a custom area of the web page in one embodiment. This function is customized for each layout template. In step 1201, the function retrieves an entry for the requested page from the content table. In step 1202, the function adds the content from the retrieved entry to the web page. The
function continues its processing of additional content of the web page in a similar manner. The function then returns.
Figure 13 is a diagram illustrating an implementation of the management system that uses active server pages. The layout template active server page 1301 defines a web page that includes a standard area and a custom area. In this example, the custom area includes a quote content (/'. e. , short text), a graphics content (i.e., image) and a text content (i.e., long text) and corresponds to the web page of Figure 1. When this template active server page is executed, it first executes the "header" and "page" active server pages to add standard areas to the web page, which have been included 1304, 1305 into the layout templates. In this example, the "header, asp" active server page adds the logo, left navigation, and top navigation areas. The "page. asp" active server retrieves the entries of the content table for this web page. The main body of layout template 1306 includes an active server page for each content with the custom area. For example, the active server page "G-275x200" 1303 is included to add the graphic image to the web page. That active server page retrieves the content entry for the graphic image from the content table and adds the image specified by that entry to the web page. The layout template includes 1307 an active server page to add the footer navigation to the web page.
From the foregoing, it will be appreciated that although specific embodiments of the management system have been described for purposes of illustration, various modifications may be made without deviating from the spirit and the scope of the invention. For example, the management system may generate any type of display page that can be used to specify display output. In addition, the management system may even generate display output directly from the templates and content. The
management system may allow sub-trees of web pages within the hierarchy to be moved, copied, or deleted. A sub-tree may be moved by changing the parent identifier for the root web page of the sub-tree to identify the new parent web page. When that new parent web page is next dynamically generated, the management system adds to the web page navigation links to the sub-tree. Accordingly, the invention is not limited except by the following claims.