Deep clickflow tracking

A system and method is disclosed herein for obtaining information from web site use. In one embodiment, the method comprises tracking interactions of a user with web content when the user uses a modified link to enter a website. The modified link is a link in a format that resembles a website address for the website but resolves at a location through which the user's interactions can be tracked. The method also includes storing data indicative of tracked interactions in a database.

FIELD OF THE INVENTION

The present invention relates to the field of marketing information support systems; more particularly, the present invention relates to tracking interactions of a user with web content when the user uses a modified link to enter a website.

BACKGROUND OF THE INVENTION

The internet continues to expand as a source of information gathering and information distribution. Businesses increasingly market, sell, support, and offer information about products to potential customers via the internet. To provide support to such companies approaches have been developed which provide information about how web sites are used by visitors/potential customers. How a business's web site is viewed by visitors can provide important marketing information. When a visitor, or potential prospect, enters a web site of a business, the business both knows the visitor is interested in the business, product, or service, and a point of contact with the potential customer is established.

One prior approach for acquiring marketing information from web site use was to utilize information from web servers. To obtain relevant data, however, software was either required to be installed at a web server, software and/or hardware was required to have access to the web server, or instrumentation code was required to be embedded in a company's web page. Each approach was far from ideal. In order for the above approaches to be implemented, significant time, money, and personnel are required to both install and debug such systems. Further, the approaches require constant maintenance and monitoring which can severely impact both the reliability and efficiency of the web server.

A less intrusive, but also less informative, approach to supplying information about the use of a web site by a visitor, is referred to as “entrance tracking.” Entrance tracking captures a first click, or entrance, to a web site and keeps track of the number of first clicks. For example, Google offers AdWords, which is a pay-per-click advertisement system. To implement entrance tracking under AdWords, when a link is created for a Google advertisement, a unique identifier is attached to the link. When the link is selected, a web server records the selection along with the unique identifier before immediately redirecting the visitor/customer to the target website. Because the approach only records the first click, it fails to provide valuable information about how a website is used by a potential customer.

Therefore, using the approaches described above, companies are not afforded a full picture of how their web site is being used by potential customers, nor do they realize valuable marketing information, which can be acquired directly from a point of contact with an interested potential customer.

SUMMARY OF THE INVENTION

A system and method is disclosed herein for obtaining information from web site use. In one embodiment, the method comprises tracking interactions of a user with web content when the user uses a modified link to enter a website, where the modified link is in a format that resembles a website address for the website but resolves at a location through which the interactions can be tracked. The method also includes storing data indicative of the tracked interactions in a database.

DETAILED DESCRIPTION

An apparatus for deep clickflow tracking and a method for using the same are described. The method includes capturing data relevant to marketing professionals generated by user interactions with a web site without requiring additional instrumentation to the web server or web pages. In one embodiment, interactions of a user with web content are tracked when the user uses a modified link to enter a website. Although the link is in a format that resembles a Universal Resource Locator (URL) link to the website, the link resolves at a location through which the user's interactions with web content can be tracked. Data indicative of the tracked user interactions is stored in a database

In one embodiment, an original URL is received. The original URL is an address for web content on the Internet. In order to track user interactions with the web content, URL links are modified to resemble the original URLs for the web content but to resolve at a location where user interactions can be tracked. In one embodiment, the location is a tracking server. In response to a user selecting a modified link, web content corresponding to the modified link is obtained and data indicative of the interaction is stored in a database. Because the obtained web content may also contain links to one or more web content objects, the one or more links are replaced with modified link. Use of these modified links will further be recorded and web content with modified links will be supplied to the user. As a result, a full view of user interactions with a website can be continuously tracked. In one embodiment, links which permit the tracking of user interactions with web content can be included in an email, recited in a voicemail, written in a direct mailing, etc.

A vital aspect of tracking user interactions with web content is to preserve the integrity of the user's experience with web content. When a user accesses web content, the web browser being used by the user will include request parameters. Such parameters may include, for example, browser type. Therefore, upon receiving a request from a user for web content, header information relevant to the web browser type used by the user is forwarded with the request for content. As a result, web content appropriate for the user's browser type can be obtained and supplied to the user. The user's experience with the web content, therefore appears and functions as if the content had not been modified.

In one embodiment, user interactions with modified content are recorded to a database, the recorded information provides comprehensive data regarding how a user interacts with a web site. The data can indicate, for example, the sequence of pages within the customer's website traversed by the user, length of visit, presence on a website, etc. Further, modified links can be personalized to track information pertaining to individual users, all users connected with a specific product or service, or any other desired grouping that may be valuable to a marketing professional.

FIG. 1is a block diagram providing an overview of a system for implementing deep clickflow tracking. Front end server(s)104receive URLs from customer web browser102. The URLs provide addresses for web content, where user interactions with the web content will be tracked. Front end server(s) may be a single server or multiple servers. Further, front end server(s) may be located directly within the company's infrastructure or remotely. In either configuration front end server(s) are in contact with the databases106-108.

Customer web browser102is displayed in dashed lines to indicate that it is not part of the deep clickflow tracking system, but rather provides communication capabilities with the system in order to receive transmission of information necessary to initiate deep clickflow tracking. Front end server(s)104communicate with customer web browser102using standard Hyper Text Transfer Protocol (HTTP) protocols. Any form of communication could be utilized to receive a URL, or an indication of the URL, to be tracked.

Upon being contacted, the front end server(s)104receive customer account information which is recorded to customer account database106. In one embodiment, customer account database106stores, among other items, customer URLs that will be modified, customer contact information, customer names, customer addresses, modified URLs, etc. Customer accounts database106can be configured to store any information relevant to the customer and/or useful to administering deep clickflow tracking for the customer.

Back end processor112then modifies a customer URL, as discussed in greater detail below, and stores the modified URL in one or all of the company databases106-110. The modified URLs are later utilized by the back end processor112in recording clickflow data of associated with a user within the relevant sections of the clickflow log database110, visitor profile database108, and/or customer accounts database106.

In one embodiment, the modified URL is then transmitted by the front end server(s)104to the customer web browser102. The modified URL is transmitted using standard HTTP protocols so that it can be received in any HTTP compliant web browser utilized by an invitee. In one embodiment, the modified URL is referred to as a GURL, where Genius is the company that provides deep clickflow tracking services to customers. As will be discussed in greater detail below, the modified URL, or GURL, is modified to resemble the customer's URL, but to resolve at a location through which the interactions of a user can be tracked. In one embodiment, the modified link resolves at an address for rewriter servers120.

Rewriter servers120receive data indicative of a user's selection of a modified link. In one embodiment, the link may itself supply a key into the relevant portions of the databases106-110used by the back end processor112to record link selection. In another embodiment, the link facilitates a look-up by back end processor112before link selection can be recorded in one or more of the company databases106-110.

Web services may also be supplied by web services logic114in connection with the rewriting servers120and/or the deep clickflow tracking. Web services logic114may be used to support customer adverting web services or to provide a customer with new or additional advertising web services. In one embodiment, the advertising web services supplied by web services logic114include, for example, cost-per-click (CPC) processing associated with advertisements, monitoring keywords associated with an advertisement, impression recordation, etc.

Web services logic114may also provide customer resource management (CRM) web services. The CRM web services would users and customers. The CRM web services could monitor and/or provide customers with contact information for users, sales information, monetary amounts, etc. Further, in one embodiment, the CRM services may be provided to customers independent of modified links. Thus, in one embodiment, the CRM services provided by web services logic112support ongoing business activities.

In one embodiment, web services logic114may also provide e-mail support services. Such e-mail support services may include sending notifications whenever a modified link has been selected, user presence on a website is detected, a database has been update, etc. The e-mail support services may further support update notifications in Short Message Service (SMS) form so that update notifications may be distributed over wireless networks. One skilled in the art will recognize the various channels of distributing update notifications.

Although specific examples have been discussed above with respect to web services logic, any number of services, notifications and associated conditions relevant to advertising, marketing, CRM services, email services, etc. can be provided as will be apparent to those skilled in the art.

FIG. 2is a block diagram of one embodiment for a deep clickflow tracking process. Upon a user224using a modified link202, as discussed in greater detail below, the link resolves at a location where user interaction with web content can be tracked. Such web content may be web content of a customer. In one embodiment, the modified link resolves at company rewriter server(s)120.

In one embodiment, the link is modified to include data which is either a key to, or facilitates the acquisition of, user/visitor data and customer data associated with the link. In one embodiment, the customer data includes any or all of the an original customer URL, customer information, information relating to an advertisement campaign of the customer, user identifiers, etc. Customer data is acquired216by the back end processor (not shown) from the customer accounts database (not shown) while visitor data associated with a user is acquired216from the visitor profile database108. Rewriter server(s)120also record the modified link selection as well as other data pertaining to user interactions with web content that is relevant to clickflow tracking.

In another embodiment, the customer and user/visitor information is stored in a cookie rather than in encoded in the form of a modified link. The cookie contents are served back to rewriter server120with every request for a web page so that the requested information can be reassembled by rewriter server120. Advantageously, the use of cookies for non-URL information allows for modified links that appear more like original URL links with just the domain having been changed.

In one embodiment, a record of clickflow relevant data is written to clickflow log database110. In one embodiment, relevant clickflow data recorded to the database includes requested URL, referrer, host Internet Protocol (IP) address, cookies, time on page, time on site, presence, visitor ID, campaign ID, customer ID, etc. One skilled in the art will recognize that more or less data, according to the requirements of a customer can be recorded.

From the data obtained by rewriter server(s)120, the original URL associated with the modified link is used to request web content204from customer web server212. Rewriter servers receive the requested web content205. Because not all requested content may be located on customer web server212, rewriter server(s)120further request content objects from non-customer web servers206. Thus, rewriter server requests and receives all web content necessary to supply the user with the requested web content.

In one embodiment, rewriter server(s) then modifies/rewrites207links within the received web content into modified links. In one embodiment, only source content which contains links, i.e., URLs, is rewritten. Because web pages continue to include bandwidth intensive content, such as images, sounds, movies, animations, etc. rewriter server(s)120provide such bandwidth intensive content objects to user224directly from the customer's web server212or non-customer web server206, rather than through the rewriter server(s)120. In another embodiment, only links that refer back to the customer's web server are rewritten because tracking users outside the customer's domain is unnecessary. Furthermore, rewriting content and dynamically injecting content into web content beyond customer's domain can impact the rights of third parties.

Thus, each link included in the web content served208to user224is also a modified link. Because all links are now modified links, in response to any one of them being used, clicked, or selected, control will again return to rewriter server(s)120. The rewriting process repeats for the newly requested page, which results in continued tracking of the user's clickflow while the user remains on the web site.

In one embodiment absolute URLs and relative URLs are handled differently, Absolute URLs are URLs which contain a path to the file represented by the link, whereas relative URLs are URLs that include a path to content in relationship to the current path. In one embodiment, absolute URLs are rewritten while relative URLs are not in order to reduce the amount of HTML supplied to a user while minimizing the rewriting performed by rewriter server120.

Additionally, rewriter server120will, if possible, attempt to deposit a user-cookie specific cookie with user224when web content is provided to the user. The cookie is a small file deposited into the user's computer (not shown) that will serve to uniquely identify the user during future visits to the customer's web site. However, depositing the cookie will allow tracking of user224even if the user returns to tracked web content via a non-modified link.

For example, rewriter server120may be configured to track clickflow data associated with users that request web content through a banner advertisement. If rewriter server120has successfully deposited a cookie with user224, rewriter servers120can track the user's interactions with the web content. Although the banner add might provide a category that is being tracked (i.e., all clickflow data associated with users that request customer web content via the banner advertisements), the cookie would also inform rewriter server(s)120of the specific identify of the user224.

In one embodiment, content is further dynamically injected207into web content before the content is served208to a user. Content may be injected into content with the permission and/or at the direction of the customer. Further, rewriter server120can be configured to automatically inject content into web content when predetermined conditions have been satisfied. For example, logic within company rewriter server120may determine that a specific user has viewed a web page related to troubleshooting a product of the customer on numerous occasions. Upon determining this, rewriter server120could then dynamically inject a chat function with customer support services, a “yellow sticky note” offering help with the user's perceived issues, etc. In one embodiment, JavaScript (or other scripting) content is dynamically injected into a web page to record the details of browsing behavior on a web page, such as mouse movements, amount of scrolling, text data entry including deletions, etc. Such information is very useful information to web page designers who want to make their sites more user friendly, effective to navigate, efficient, etc. One skilled in the art will recognize the numerous conditions and occasions when content could be dynamically injected into web content.

Advantageously, company rewriter server supplies the user with a good user experience. The experience is considered good because the web content provided to the user appear like the originally requested web content. Thus, the user is not impacted by the rewriting process. Further, and more importantly, the web content functions the same as the original web page.

Furthermore, the rewriter does not require installation of software or hardware on a customer's web site or customer web server. Thus, the services of information technology professionals are not needed to implement the rewriting services and deep clickflow tracking. Additionally, no maintenance time is required of the customer, and minimal man hours are spent setting up and interacting with the system. However, in another embodiment, the rewriter could reside at a customer location so that the rewriting server could be in direct communication with the customer web server. In yet another embodiment, the rewriting services can be implemented within the web server so that no additional equipment, beyond the customer's original web server is required.

In one embodiment, the rewriting process is a hybrid of server based rewriting, as previously described, and script (e.g., JavaScript, Prehypertext Processing script, etc.) based rewriting inside a web browser. By combining server based and script based rewriting, dynamic web content, such as dynamically created menu system, is also modified fo the purpose of clickflow tracking.

In another embodiment, deep clickflow tracking is not initiated with the selection of a modified link. Instead, a single (or some small number of) entry pages contain a script. These entry pages initiate the deep tracking process by redirecting requests for web content to rewriter server(s)120, after which the deep clickflow tracking process continues as described above. An advantage of embedding scripts in one or more entry pages is that all visitors (including anonymous/previously unknown web site visitors) can be tracked by rewriting server(s)120. Furthermore, a modified link is not required for the initial entry pages as an entry page may be typed, bookmarked, found via a search engine etc. Thus, with minimal content change effort, web pages become highly trackable.

In yet another embodiment, a script (different from the entry page described above) is provided to the owner of web content to be placed in every one of the owner's web pages. Upon vistor/user entry into a web page, the script reports access from a web browser to rewriter server(s)120using asynchronous data transfer after the requested web page is finished loading. As such, a visitor/user is tracked upon selection of an original URL link, as modified links not necessary under the current embodiment. Furthermore, any incoming visitor/user for a web site with the embedded script is tracked, not just those requesting web content via modified links.

In one embodiment, in order to obtain more detailed and/or comprehensive clickflow tacking data, one or more of the techniques described above are simultaneously employed. Thus, various forms of visitors/users interactions with web content are tracked, including return visitors/users, previously identified as well as new “anonymous” visitors/users, visitor/users that request web content via a modified link, visitors/users that request web content form an entry page with an embedded script, etc.

In order to provide a good user experience for user, web content should appear and act as if it is served directly from customer web server210.FIGS. 3A and 3Bare block diagrams which illustrate how web content served from a rewriting server preserves the functionality and appearance of a web content.

FIG. 3Aillustrates one embodiment of standard HTTP request and response operations administered by rewriting server(s)120. As discussed above, when a modified link is selected it resolves at a location through which user interactions with web content can be tracked. In one embodiment, a modified link resolves at the rewriter server(s)120. That is, rewriter server(s)120receive a request from a user302for web content associated with a modified link, HTTPReq1. In order to faithfully reproduce the look and feel of the user's experience, rewriting server(s)120request web content from the customer web server210by forwarding all relevant HTTPReq header information received from the user302. HTTPReq2, therefore, forwards relevant user interface information, such as the user's useragent, user's browser type, cookie information, authentication parameters, etc. directly to the customer web server.

Rewriter server(s)120receives web content, including HTTPRsp 1 parameters, and includes them in the modified web content served the user302. Therefore, the information relevant to a user interface being used by the user is utilized to both request and then to supply web content, including the modified links. As a result, the user's experience is preserved so that modified web content both acts and functions as if it were served directly from customer web server210.

A complication arises because modern web pages have a variety of other forms of content that may contain links. For example, embedded JavaScript is rewritten using document.location.href and window.open, whereas links in HTML are written using document.write. Further, embedded Macromedia Flash content and Postscript Document Format (PDF) files are rewritten so that the links within the embedded Macromedia Flash and PDF content included modified links. One skilled in the art will recognize the various file formats that are present in modern web content, and which can be rewritten, in order to provide for comprehensive deep clickflow tracking.

FIG. 3Billustrates a special case of the HTTP Request and HTTP Response operations carried out by rewriting server(s)120. The internet is now a source of private and secure content. As such, protocols have been developed for communicating secure information, such as credit card numbers or personal identification numbers, over the internet. One such protocol in wide use on the internet is the https communications protocol. The protocol utilizes site-specific digital certificates (SSL certificates), in addition to standard request and response protocols, to encrypt data communicated using SSL. Because the SSL certificates are site-specific, rewriter server(s)120cannot use a customer certificate in connection with modifying web content.

To overcome the noted obstacle, rewriter server(s)120utilize an SSL certificate SSL of the rewriter during secure protocol communications between the user302and rewriter server(s)120. However, rewriter server(s)120utilize an SSL certificate of the customer during communications between the rewriter server(s)120and customer web server212. As a result secure communications between the user and web content, despite being rewritten, are secure under the SSL protocol. The remaining flow ofFIG. 3Bis substantially the same as that discussed with respect toFIG. 3A. In one embodiment, if a web page is served using https, then all content contained in the page (images, flash, etc.) are served through rewriter server(s)120instead of directly, thus avoiding dialogs in the client browser warning of mixed content (secure/insecure). Thus, the technique would prevent the possibly disconcerting dialogs while preserving the experience the user would have had by visiting the original site directly.

Links may be modified, or transformed into Genius URLs (GURLs), by the system discussed inFIGS. 1-2in various ways, according to embodiments of the present invention. The modified links (GURLs) are a special form of URL link, crafted on behalf of a customer to allow access to informative web content supplied by, or on behalf of, the customer. The modified link can be created from received URL. However, to preserve and protect third party rights, only URLs on customer owned or authorized websites, and not arbitrary 3rdparty web sites may be rewritten. Furthermore, any URL can be used, as long as there is an existing page or file present on the customer's server associated with the URL.

The modified URL link is a rewritten form of the URL that points to rewriting server(s) (not shown), with a subdomain corresponding to a customer, allowing for cobranding. The actual target URL on the customer's webserver, and any additional tracking information is encoded into the modified URL. In one embodiment, a URL and tracking information are stored in a database. The tracking information is keyed to a database by a key that provides access to that record.

In one embodiment, checksum bits are added for tamperproofing, error detection, and error correction. In the embodiment, a short alphanumeric representation of a bitstring is returned as the path element behind the servers host address. This short form of the modified link, without any special characters, is convenient for transmission over email as it is unlikely to be cut into pieces by email servers imposing a maximum number of characters per line or other gateway parsers tripping over long or complicated URLs. It can also be copy/pasted easily into other documents, printed/offline collateral, or transmitted by voice over the phone.

For example, the deep clickflow tracking system may receive an original URL that reads:

http://www.bvs.com/webinar/invite.php
In one embodiment, the initial modified link, which can either be sent out or stored in a database for later use and/or retrieval by the clickflow tracking system, would read (with minor syntactical changes ignored below for clarity of presentation):

In one embodiment, the final form of the modified URL link, where “Ws28dDFW” is a key into a database record, would read:

http://bvs.rsvp1.com/Ws28dDFW
In another embodiment, the final form of the modified URL can be simplified to be more human-readable and memorable. Via an additional database lookup, the modified link can be written without the actual database key, resulting in fewer typos and better recall of modified links on direct mail pieces, television, radio, or any other form for distributing information. Thus, the link:

http://bvs.rsvp1.com/webinar_invite
via a database lookup, would result in a record corresponding to, for example, the database record associated with the key “Ws28dDFW.”

In one embodiment, links may be modified and tailored based on a general area of interest to a customer, such as links targeted at an advertisement for a television, a radio show, or a pledge drive, etc. For example, the modified links would read:

In all cases, the “rsvp1” domain is an example domain owned by the company and “bvs” is an example subdomain corresponding to one customer. Browsers would resolve the modified link into an IP address of a machine (or cluster of machines) hosted by the company.

FIGS. 4A-4Cillustrate a flow diagram for one embodiment of a process for deep clickflow tracking. The process is performed by processing logic that may comprise hardware (circuitry, dedicated logic, etc.), software (such as is run on a general purpose computer system or a dedicated machine), or a combination of both.

The process begins, inFIG. 4A, when processing logic receives a link for web content that resolves at the customer's web server (processing block402). In one embodiment, the customer's web server is a web server maintained by a third party on behalf of the customer. In another embodiment, the customer has actual control and/or possession of the web server. Note that the process is applied when the received URL link is a link that resolves at the customer's web server, and not an arbitrary third party server. This condition preserves the rights of third parties from being intruded upon, as well as possible interference with third party copyright protections.

The received link is then modified by processing logic to an initial modified link form (processing block404). Because the initial modified form of the link may be difficult to remember or appear unrelated to the initial customer supplied link, processing logic modifies the initial modified link form to a final link form (processing block406). In one embodiment the final modified form may allow for recording tracking information relevant to individuals, groups, specific activities, targeted advertisement campaigns, etc.

Processing logic then transmits the invitation link to the customer (processing block408). The process then proceeds toFIG. 4Bupon receiving an indication that a user is using a modified link to access web content.

Processing logic then receives a web content request from a user, the request corresponding to modified link (processing block412). Upon detecting that a modified link has been traversed, processing logic records data to a database indicative of the user's present interaction with the requested web content (processing block414). In one embodiment, the data includes any of the URL requested, time spent on page, time spent on site, presence on site, sequence of pages requested, etc. Further, the database may consist of a single database or a collection of databases. In either case, the data recorded to the database is corresponds with the invitation link.

Processing logic then requests web content from the web server consistent with the selected link (processing block416). In one embodiment all relevant user header information, received from the user agent during processing block412, is forwarded to the web server which supplies the web content so that the request for content appears as if it is a request directly from the user. Further, by forwarding the relevant header information, processing logic can ensure that the look and the functionality of the web content are preserved so that the user has a good experience. In another embodiment, processing logic first decrypts a secure user request utilizing the user's SSL certificate before re-encrypting the request with the rewriter server's SSL certificate. Because not all content for the requested web page may be located on a single web server, such as a customer web server, processing logic further requests additional content not located on the web server (processing block418).

Processing logic then modifies links within the received web content, and other content, to a final form of a link for deep clickflow tracking (processing block420). As discussed above, the final modified form of the URL link can be modified according to various schemes, to various levels of modification, to the needs of a customer, etc. In one embodiment, the modified link is a Genius URL.

The process then proceeds toFIG. 4C.

Processing logic then determines whether or not to dynamically inject additional content into the received web content (processing block422). In one embodiment, processing logic dynamically inserts additional content on the customer's behalf and with the customer's permission. In another embodiment, processing logic can utilize parameters to determine whether and what kind of dynamic content to insert in web content. In yet another embodiment, processing logic will dynamically inject additional content when data indicative of a user's past and/or present browsing behavior satisfies a predetermined condition with respect to a current page request.

If processing logic determines additional content will not be dynamically injected into the modified customer content, processing logic proceeds to processing block426. However, if processing logic determines additional content is to be dynamically injected, processing logic proceeds to processing block424.

In one embodiment, processing logic injects one or more of coupons, dynamic help, customer annotations, watermarks, on-page chat, JavaScript for user interface recording, etc. (processing block424). In one embodiment, the dynamically injected content is injected in the form of an HTML <div> Tag floating on top of the existing content. Depending on the preferences and instructions of a customer, the <div> Tags can be injected unobtrusively, extremely visible, or at some intermediate level of visibility.

After processing logic has received all necessary web content, modified all links, and injected content when appropriate, processing logic supplies the modified content to the user (processing block426). As noted above, the content will both look and act as if it were served directly from the original web server. Further, processing logic will attempt to deposit a cookie, if possible, with the user (processing block428) so that processing logic can identify a user when the user requests content via a non-modified link, such as through a banner advertisement.

Processing logic then receives an additional request for web content from the user (processing block430). Upon receiving the additional request, processing logic returns to processing block412ofFIG. 4Bso that processing logic can continue deep clickflow tracking.

FIG. 5is a block diagram of an exemplary computer system that may perform one or more of the operations described herein. Referring toFIG. 5, computer system500may comprise an exemplary client or server computer system. Computer system500comprises a communication mechanism or bus511for communicating information, and a processor512coupled with bus511for processing information. Processor512includes a microprocessor, but is not limited to a microprocessor, such as, for example, Pentium™, PowerPC™, Alpha™, etc.

System500further comprises a random access memory (RAM), or other dynamic storage device504(referred to as main memory) coupled to bus511for storing information and instructions to be executed by processor512. Main memory504also may be used for storing temporary variables or other intermediate information during execution of instructions by processor512.

Computer system500also comprises a read only memory (ROM) and/or other static storage device506coupled to bus511for storing static information and instructions for processor512, and a data storage device507, such as a magnetic disk or optical disk and its corresponding disk drive. Data storage device507is coupled to bus511for storing information and instructions.

Computer system500may further be coupled to a display device521, such as a cathode ray tube (CRT) or liquid crystal display (LCD), coupled to bus511for displaying information to a computer user. An alphanumeric input device522, including alphanumeric and other keys, may also be coupled to bus511for communicating information and command selections to processor512. An additional user input device is cursor control523, such as a mouse, trackball, trackpad, stylus, or cursor direction keys, coupled to bus511for communicating direction information and command selections to processor512, and for controlling cursor movement on display521.

Another device that may be coupled to bus511is hard copy device524, which may be used for marking information on a medium such as paper, film, or similar types of media. Another device that may be coupled to bus511is a wired/wireless communication capability525to communication to a phone or handheld palm device.

Note that any or all of the components of system500and associated hardware may be used in the present invention. However, it can be appreciated that other configurations of the computer system may include some or all of the devices.