DYNAMICALLY GENERATED WEB SITES FROM COMMON DATABASE
FIELD OF THE INVENTION
This invention relates generally to web site page generation systems, and more particularly to a method and apparatus for integrating a page into a dynamically generated web site.
BACKGROUND OF THE INVENTION
Modern web site page generation systems allow integrating a page into a generated web site. Integration is done by adding a link to the page, which typically resides on a web server. When an Internet user views a web page and selects a link to retrieve web content from a new source, the page in a frame, if the page is a frame set, is displayed with the information identifying the content provider of this page. That is, upon a user's request to retrieve web content from a new source, the "look and feel" of the screen changes and the user reviews requested information in a different environment.
The change of the information identifying the content provider of the page is not always desirable. In the conditions of e-commerce, for example, a merchant may want to match its product information, which is typically stored in the merchant's database located on a server, with additional information. Such additional information may include a map or subway directions to the merchant's store from a client's home, a local weather forecast, or location of nearby restaurants. This additional information from various sources provides additional features that enhance the functionality for users.
However, if a conventional web site page generation system is used, the information identifying the content provider will typically change on the screen every time content from a linked page is retrieved from a different source. This change of the "look and feel" of the screen may distract a user's attention and complicate the return to the web site page containing product information. In addition, passing along the information identifying the content provider of the page every time a web site is generated from a linked page typically slows down the display of requested content. Further, displaying frames when they are not needed increases the amount of data to be downloaded, and limits the amount of information a user can review on the display screen, especially on a small display screen.
Therefore, there is a need for an efficient way of dynamically integrating pages into generated web sites and returning seamlessly integrated web sites to a user without the use of frames.
SUMMARY OF THE INVENTION
The present invention provides a method, apparatus and article of manufacture for integrating a page into a dynamically generated web site. The page is provided to the dynamic web site page generation system. The page is analyzed to identify a reference to an object. The identified reference is modified to conform to a requirement of the dynamic web site page generation system. The modified page is integrated into the dynamic web site page generation system.
BRIEF DESCRIPTION OF THE DRAWINGS
The present invention is illustrated by way of example and may be better understood by referring to the following description in conjunction with the accompanying drawings, in which like references indicate similar elements and in which:
FIG. 1 is a system diagram which shows a computer hardware environment compatible with the present invention;
FIG. 2 is a flowchart which shows a method for providing a page to a dynamic web site page generation system compatible with the present invention;
FIG. 3 is a flowchart which shows a method for integrating a page uploaded to a dynamic web site page generation system into a dynamically generated web site compatible with the present invention;
FIG. 4A is a diagram which illustrates various implementations of different embodiments of the present invention;
FIG. 4B is a diagram which shows components of one embodiment of the present invention.
DETAILED DESCRIPTION OF AN EMBODIMENT OF THE PRESENT INVENTION
In the following description of a preferred embodiment, reference is made to the accompanying drawings which form a part hereof, and in which is shown by way of illustration a specific embodiment in which the invention may be practiced. It is to be understood that other embodiments may be utilized and structural changes may be made without departing from the scope of the present invention. A preferred embodiment of the present invention, described below, enables a remote computer system user to execute a software application on a network file server.
In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will
be evident, however, to one skilled in the art that the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to facilitate description.
The present invention provides a method, apparatus and article of manufacture for integrating a page into a dynamically generated web site. The page is provided to a dynamic web site page generation system. The page is analyzed to identify a reference to an object. The object referred to on the page may be a parameter defining state of the page, a path to an image, a path to another page, etc.. The identified reference to the object is modified to conform to a requirement of the dynamic web site page generation system. The modified page is integrated into the dynamic web site page generation system. With the present invention, information regarding state of each page and page's links to images and other pages is preserved which allows producing seamlessly integrated web site pages without the necessity to use frames.
Hardware Environment
FIG. 1 illustrates one embodiment of a computer system 100 which implements the principles of the present invention. Computer system 100 comprises a processor 105, a storage device 110, and a bus 115. The processor 105 is coupled to the storage device 110 by the bus 115. In addition, a number of user input/output devices, such as a keyboard 120 and a display 125, are also coupled to the bus 115. The processor 105 represents a central processing unit of any type of architecture, such as CISC, RISC, VLIW, or hybrid architecture. In addition, the processor 105 could be implemented on one or more chips. The storage device 110 represents one or more mechanisms for storing data. For example, the storage device 110 may include read only memory (ROM), random access memory (RAM), magnetic disk storage mediums, optical storage mediums, flash memory devices, and/or other machine-readable mediums. The bus 115 represents one or more buses (e.g., AGP, PCI, ISA, X-Bus, VESA, etc.) and bridges (also termed as bus controllers). While this embodiment is described in relation to a single processor computer system, the invention could be implemented in a multi-processor computer system.
In addition to other devices, one or more of a network 130, a TV broadcast signal receiver 131, a fax/modem 132, a digitizing unit 133, a sound unit 134, and a graphics unit 135 may optionally be coupled to bus 115. The network 130 and fax modem 132
represent one or more network connections for transmitting data over a machine readable media (e.g., carrier waves). The digitizing unit 133 represents one or more devices for digitizing images (i.e., a scanner, camera, etc.). The sound unit 134 represents one or more devices for inputting and/or outputting sound (e.g., microphones, speakers, magnetic storage devices, optical storage devices, etc.). The graphics unit 135 represents one or more devices for generating 3-D images (e.g., graphics card).
FIG. 1 also illustrates that the storage device 110 has stored therein data 137 and software 136. Data 137 represents data stored in one or more of the formats described herein. Software 136 represents the necessary code for performing any and/or all of the techniques described with reference to FIG. 3. It will be recognized by one of ordinary skill in the art that the storage device 110 preferably contains additional software (not shown), which is not necessary to understanding the invention.
FIG. 1 additionally illustrates that the processor 105 includes decode unit 140, a set of registers 141, and execution unit 142, and an internal bus 143 for executing instructions. It will be recognized by one of ordinary skill in the art that the processor 105 contains additional circuitry, which is not necessary to understanding the invention. The decode unit 140, registers 141 and execution unit 142 are coupled together by internal bus 143. The decode unit 140 is used for decoding instructions received by processor 105 into control signals and/or microcode entry points. In response to these control signals and/or microcode entry points, the execution unit 142 performs the appropriate operations. The decode unit 140 may be implemented using any number of different mechanisms (e.g., a look-up table, a hardware implementation, a PLA, etc.). While the decoding of the various instructions is represented herein by a series of if/then statements, it is understood that the execution of an instruction does not require a serial processing of these if/then statements. Rather, any mechanism for logically performing this if/then processing is considered to be within the scope of the implementation of the invention.
The registers 141 represent a storage area on processor 105 for storing information, including control or status information, integer data, floating point data, and packed data. It will be understood by one of ordinary skill in the art that one aspect of the invention is the described instruction set for operating on packed data. According to this aspect of the invention, the storage area used for storing the packed data is not critical. The term data processing system is used herein to refer to any machine for processing data, including the computer systems(s) described with reference to FIG. 1.
Software Environment
In one embodiment of the present invention, a page may be provided to a dynamic web site page generation system for integration. A "page" in the Internet-related context is typically a block of data available on the World-Wide Web, identified by a uniform resource locator (URL), and stored on a server as a file. Typical pages are written in hypertext markup language (HTML). Such pages are often referred to as HTML pages. However, it will be recognized by one of ordinary skill in the art that other pages, such as Visual Basic (VB) scripts, Common Gateway Interface (CGI) scripts, etc., may be used with the present invention without loss of generality.
In one embodiment of the present invention, a page may be uploaded to a dynamic web site page generation system before integration. FIG. 2 illustrates a process of uploading pages to the dynamic web site page generation system. At step 201, one or more pages are built from information content. Typical information content includes, but is not limited to, media content, consumer product information, training and consulting information, weather information, real estate listings, automobile information, restaurants information, yellow page listings, etc. It will be recognized by one of ordinary skill in the art that a wid variety of information content other than that discussed above may be used with the present invention without loss of generality.
Typically, a web page contains links to other web pages and images. Links can be absolute and relative. An absolute link is a URL which completely describes the location of the file being referred to. A relative URL describes the location of the file being referred to only in terms of the current file. At step 205, all absolute links contained in HTML pages are changed to relative. Typical links include, but are not limited to, links to web pages, images, inline graphics, sounds, movies, Java applets, etc. It will be recognized by one of ordinary skill in the art that a wide variety of links other than those discussed above may be used with the present invention without loss of generality.
At step 207, the HTML pages are sent to a File Transfer Program (FTP) site via FTP for subsequent uploading to a dynamic web site page generation system. In one embodiment of the present invention, the dynamic web site page generation system is a common database that contains information content from various sources. Typical sources include, but are not limited to, newspapers, television stations, businesses, weather services, real estate, car dealers, restaurants, yellow pages, stores, etc. It will be
recognized by one of ordinary skill in the art that a wide variety of sources other than those discussed above may be used with the present invention without loss of generality. The dynamic web site page generation system includes a list of directories which correspond to various sources providing information content. At step 209, a directory is selected for an HTML page to be uploaded according to a source providing the page. At step 211, the HTML page is uploaded to the selected directory contained in the dynamic web site page generation system. After an HTML page is uploaded to the dynamic web site generation system, the page is typically ready for integration.
Although the discussed embodiment of the present invention involves uploading HTML pages to a certain directory of the dynamic web site page generation system via FTP as shown in steps 207, 209 and 211, the present invention can also integrate HTML pages located on a remote file server. Thus, steps 207, 209 and 211 are executed only if HTML pages are uploaded to the dynamic web site generation system before integration. Alternatively, if an HTML page remains on a remote file server, the page still goes through steps 201, 203 and 205. Additionally, the process of providing a remote page to the dynamic web site page generation system for integration includes identifying location of the remote file server and reading the page from the remote file server or from a cache if the page has been retrieved previously.
In one embodiment of the present invention, the integration process is performed in real time by a software system called "PassThru". The PassThru system alters the page to keep user session context in links, and preserves the state of the page. FIG. 4A illustrates three examples of using the PassThru system in different dynamic web site applications.
Example 410 involves new static web site pages that have images and are created by a remote server partner. The partner uploads these web site pages with static content to a dynamic web site page generation system. PassThru 400 alters the pages to conform to the requirements of the dynamic web site page generation system used by a dynamic web site application. The static content is enhanced with top and bottom toolbars showing the normal branding and controls of the dynamically generated website. As a result, a user of the dynamic web site application sees a seamless integration between the existing application pages and the newly added static content provided by the partner.
Example 412 illustrates the operation of a Business Directory Enhanced Listing application which allows a user to view web sites of various individual businesses. An individual business develops its web site by using standard web-authoring tools and stores
this web site on a remote file server. PassThru 400 reads the individual business web site from the remote server and alters it to conform to the requirements of the Business Directory Enhanced Listing application. Software links within the pages activate business directory software to display maps, generate directions, and allow email or fax communication with the business. The user is then able to see a seamless integration between the Business Directory Enhanced Listing pages and the pages authored by the individual business.
Example 414 illustrates a Real Estate Broker application. The application provides a custom real estate broker web site with the functionality of searching real estate classifieds using search criteria entered by a user on the custom web site. The real estate broker designs static web sites and uploads them to a dynamic web site page generation system used by the application. PassThru 400 alters the pages to conform to the requirements of the dynamic web site page generation system. Software links within the pages activate real estate search software to perform database searches, display maps, etc. Subsequently, a user sees a seamless integration between the static pages provided by the real estate broker and data driven pages served by the real estate search software.
FIG. 4B shows major components of the PassThru System. In one embodiment, PassThru 400 consists of URL Parser 450, File System Cache 460, HTML Parser 470 and HTML Alteration 480. URL Parser 450 receives a user's URL request to retrieve a web site with a certain URL address. URL Parser 450 interprets the request and determines the location of the web site. If the web site is located remotely, URL Parser 450 identifies the location of the web site File System 465 using PassThru Configuration 455. PassThru Configuration 455 is an external module which finds the location of the remote file system based on the URL address of the requested web site.
URL Parser 450 then provides a web site page for integration by reading the web site page from remote File System 465 or from a dynamic web site page generation system if the web site has been previously uploaded to this system as described above. If the web site page is located remotely, URL Parser 450 may be able to retrieve the page from File System Cache 460 as long as the page has been read by PassThru 400 previously. File System Cache 460 stores the files that have been once retrieved from File System 465. File System Cache 460 is used to optimize the performance of PassThru 400 by minimizing disk accesses during the system's operation.
Integration of the web site page is done by HTML Parser 470 and HTML Alteration 480 HTML Parser 470 identifies references on the page to external objects which require modification. The external objects are described below in more details HTML Alteration 480 modifies the identified references to conform to the requirements of the dynamic web site page generation system
FIG. 3 illustrates a flow chart of a method for integrating a page uploaded to a dynamic web site page generation system into a dynamically generated web site At step 301, the HTML page is analyzed to identify references to objects on the page Typical routines employed to identify references include, but are not limited to, searching for HTML tags and parsing strings contained on the page It will be recognized by one of ordinary skill in the art that other techniques to identify references may be used with the present invention without loss of generality. The possible objects referred to on the page include links to images and web pages, and parameters defining state of the page. In one embodiment of the present invention, the parameters are used to define whether to display top and/or bottom toolbars, and what other information defining "look and feel" of the page to use. It will be recognized by one of ordinary skill in the art that a wide variety of objects and parameters other than those discussed above may be used with the present invention without loss of generality.
The modification of the page begins at step 307, in which all links contained in the page are converted from relative into absolute. At step 309, the parameters defining state of the page are preserved. That is, the information identifying the content provider which determines "look and feel" of the screen is preserved at each page and continues through the entire session allowing delivery of seamlessly integrated web sites to users, the page is displayed without frames in preserved state.
While the invention is described in terms of preferred embodiments in a specific system environment, those of ordinary skill in the art will recognize that the invention can be practiced, with modification, in other and different hardware and software environments within the spirit and scope of the appended claims.