CROSS-REFERENCE TO RELATED APPLICATIONS This application is a continuation of U.S. application Ser. No. 09/551,746, filed Apr. 18, 2000, which is incorporated herein in its entirety by reference.
BACKGROUND OF THE INVENTION 1. Field of the Invention
The present invention relates to computer networking and communication, including Web-based communications and commerce.
2. Related Art
The World Wide Web is increasingly becoming the Internet technology relied upon for conducting electronic commerce and communication. The World Wide Web, also called the Web or WWW, has three basic parts: client software, servers and content. Client software runs on a user's computer and, among other things, provides the graphical user-interface through which a user can “browse” or “surf” the Web. Servers (also called Web servers) are computers that provide the content to users through a communication link. Content can be any kind of multi-media, e.g., images, text, animation, motion video, sound, and Java applets.
Communication between a browser and a server is carried out through Hyper Text Transfer Protocol (HTTP), Hyper Text Transfer Protocol-Secure (HTTPS) or other Web-compatible protocol. Web content is primarily transferred in Web documents or files, called Web pages, which are addressed by a Uniform Resource Locator (URL). Web pages are often multi-media hypertext documents written in a HyperText Markup Language (HTML) which supports hyper-linking. Data entry in Web pages allows users to make selections and fill-out template or profiles to facilitate user input. For example, scripts are often run on servers through a Common Gateway Interface (CGI) to implement data entry. Programming languages, such as Java, and plug-ins such as Flash, are also being extended to support data entry on the Web.
These parts are well-suited for electronic communication and commerce between remote users. Indeed, the popularity and use of the World Wide Web has increased dramatically. The number of Web sites and Web pages continues to grow. Accordingly, it has become increasingly important to many Web businesses and services to draw traffic to their site. Advertising revenue, registration fees and other sources of revenue generally increase as the number of hits to a site rises. It is also important for many Web businesses and services that access to the local content on their site be distributed widely. Accordingly, it is important to distribute knowledge about the content of a Web site.
Hyperlinking between Web pages is one way a Web site increases traffic to its site. Hyperlinking alone, however, has disadvantages. For example, consider the case where a remote user with a remote Web page adds a hyperlink to another site, such as, a Web site that provides sports information. The remote user inserts a URL for the sports Web site into his or her Web page (e.g., an HTML document). The URL itself, however, does not provide any significant contextual information or actual information about the content of the sports Web site. A user may provide text to describe the sports Web site, but this information can be soon out of date and may not reflect actual information on the Web site.
Some Web services, such as, search engines attempt to increase traffic to their sites by making available HTML code for logos or search bars to be inserted in Web pages on other sites.FIG. 13 shows an example screen served up at the GoogleSM search engine Web site to facilitate linking. In this case, a user is provided with an HTML code segment (called a snippet) and an image that shows how the snippet will appear on the user's Web page. The user is then expected to cut and paste the HTML code segment into their own Web page.FIGS. 14A to14C show similar examples displayed at the Northern Light search engine. A user is provided with a variety of options (logos and search bars) and corresponding HTML code segments from which to select.
In both of these examples, the HTML code segments are predetermined. No real-time configuration or modification can be made by the user prior to cutting and pasting the HTML code snippet. Any configuration of the HTML code segments must be done by the user. In addition, the servers generating the HTML code segments do not facilitate or support real-time configuration based on user selections or preferences. This increases the burden on the user. Users who do not know HTML or how to configure or modify the HTML code snippet are unable to tailor the link as they desire.
What is needed is an invention which remotely and easily propagates access to Web content. Users need to be able to remotely and easily configure in real-time a link to another Web site.
SUMMARY OF THE INVENTION A method, system, and computer program product for propagating access to host site content to remote users over the World Wide Web are provided. Access to host site content is distributed more widely and easily through propagative posters. Remote users can access a host site and configure propagative posters in real-time. A Web code segment corresponding to a configured propagative poster is then generated and sent to the remote user in real-time. A remote user can easily cut and paste the generated Web code segment into the user's remote Web page. Alternatively, the generated Web code segment can be automatically inserted into the user's remote Web page if access rights to write on the Web page are available. According to the present invention, propagative posters also permit users to click on (i.e., select) displayed summary information to access further information about a selected item or topic.
In one embodiment, a Web code segment is generated that includes a propagative poster identifier and a link to the host site. The propagative poster identifier allows each poster to be identified. For example, the propagative identifier can be a unique poster number. In one embodiment, to enhance security and facilitate URL tracking, a respective private key and a unique poster number are sent through a hash function to obtain a secure fingerprint. The propagative poster identifier is then a combination of the secure fingerprint, the unique poster number and the URL of the remote user that created the poster.
In one embodiment, a propagation poster manager is provided for managing propagation posters of host site content to remote users over the World Wide Web. The propagation poster manager includes a propagative poster configuration module and a propagative poster generator. The propagative poster configuration module hosts a configuration session that allows a remote user to configure a propagative poster of host site content based on at least one configuration selection input by the remote user. The propagative poster generator generates and forwards the propagative poster identifier and the Web code segment to the remote user in real-time.
In one embodiment, configuration is made easy for a user by presenting a series of configuration screens to guide user input. For example, the propagative poster configuration module serves data that enables a first configuration screen to be displayed that includes images of different types of sample posters that can be configured by a user. The propagative poster configuration module then receives a selection by a remote user that identifies one selected type of sample poster and serves data that enables a second configuration screen to be displayed. The second configuration screen has a template for the remote user to configure the selected type of sample poster. The propagative poster configuration module then receives inputs entered in the template. The inputs represent configuration selection inputs made by the remote user. The propagative poster configuration module serves data that enables a third configuration screen to be displayed that includes the first remote user-configured propagative poster. In this way, the remote user can verify in real-time that the user-configured propagative poster is acceptable. After verification, a fourth configuration screen is served that includes the Web code segment to be copied. In one example, the Web code segment is a HTML code segment that enables a browser to access the remote user-configured propagative poster for display.
According to a further feature of the invention, a propagation poster, initially configured by a first remote user, is easily used by subsequent remote users. The propagative poster generator generates the original remote user-configured propagative poster in response to a hit on the first remote user Web page by subsequent remote user that selects at least a portion of the Web page of the first remote user that corresponds to the generated Web code segment. For example, if the first remote user configured a button or link to access the poster, then a button or link is added in the generated Web code segment. When the second remote user selects the button or link in the Web page of the first remote user, the browser of the second remote user is transferred to the host site. The propagative poster generator then receives the propagation poster identifier and generates data from the host site that corresponds directly to the data presented in the original propagative poster.
According to a further feature, a propagation poster further includes an input portion, such as, a “Make Propagation Poster Now” button. The input portion enables a remote user to make another propagative poster. Another configuration session to create a new poster is then easily initiated by a user by selecting the input portion. For example, the propagation poster configuration module further hosts a second configuration session that allows a second remote user to configure a second remote-user configured propagative poster of host site content based on at least one configuration selection input by the second remote user. In this way, content on a host site is distributed more quickly to a wider audience as users who visit the web page of the first remote user can select and propagate their own posters.
In one embodiment, the propagation poster is periodically refreshed or updated in that the poster is generated based on code executed on current data in the host site content. In one example, at least one configuration selection input made by the first remote user includes at least one search parameter. The propagative poster generator then generates a propagation poster by first executing a search query of data based on each search parameter to obtain a search result based on current host site content. The propagative poster is then generated which includes the current search result. This executing of the code can occur in real-time at the time any remote user accesses the poster or off-line such as during a periodic maintenance run.
In one example implementation, a propagative poster can be any type of window or image including, but not limited to, a window listing job postings, a window listing resume information, a button or go to link to the host site, a search box to search the host site, or a window displaying data related to content on the host site, such as, statistical information, data reports, etc.
According to a further feature, the propagation poster manager includes a propagative poster tracker. The propagative poster tracker tracks URL addresses of remote users accessing the first remote user-configured propagative poster.
According to a further feature, the propagation poster manager includes a propagative poster maintenance module. The propagative poster maintenance module that generates reports based on propagative poster records and data tracked by the propagative poster tracker.
A further feature is the ability to track which posters are not being viewed and to discontinue the off-line generation of the posters until a remote user attempts to view it again, thereby causing it to be automatically generated as well as putting it back in the automatic generation queue. This feature enables reduction of the overhead of offline generation without disrupting service.
In one example implementation, a storage device is coupled between a server and a Web server. The server includes a propagative poster configuration module, a propagative poster generator, a propagative poster tracker, and a propagative poster maintenance module. The storage devices stores at least the following fields of information related to respective generated user-configured propagative posters: a propagative poster identifier, a bit map, a non-executable Web code segment, and an executable code. A database is also coupled between the server and the Web server. The database stores propagative poster records that include user profile and tracking information related to respective generated user-configured propagative posters.
Further features and advantages of the present invention, as well as the structure and operation of various embodiments of the present invention, are described in detail below with reference to the accompanying drawings.
BRIEF DESCRIPTION OF THE DRAWINGS The accompanying drawings, which are incorporated herein and form part of the specification, illustrate the present invention and, together with the description, further serve to explain the principles of the invention and to enable a person skilled in the pertinent art make and use the invention.
FIG. 1 is a flowchart of a routine for propagating remotely configurable posters according to one embodiment of the present invention.
FIGS. 2A, 2B and2C show configuration screens served during a configuration session according to one embodiment of the present invention.
FIG. 2D show a screen with HTML text for propagating a poster according to one embodiment of the present invention.
FIGS. 3 and 4 are block diagrams of a system for propagating remotely configurable posters according to one embodiment of the present invention.
FIG. 5 is a diagram of a propagative poster identifier and a secure, trackable propagative poster identifier according to one embodiment of the present invention.
FIG. 6 is a diagram of a propagative poster record according to one embodiment of the present invention.
FIG. 7 is a diagram of example search parameters that can be used in the propagative poster record ofFIG. 6.
FIG. 8 is a diagram of a set of records for managing propagative posters according to one embodiment of the present invention.
FIGS. 9A and 9B are flowcharts of a routine for propagating remotely configurable posters according to one embodiment of the present invention.
FIGS. 10A and 10B are flowcharts of a routine for further propagating remotely configurable posters including tracking and profiling, according to one embodiment of the present invention.
FIG. 11 is a flowchart of a routine for propagative poster maintenance according to one embodiment of the present invention.
FIG. 12A is a diagram of an example internetwork environment according to the present invention.
FIG. 12B shows a simplified four-layered communication model supporting Web commerce.
FIG. 12C is a block diagram of a computer system according to an example implementation of the present invention.
FIG. 13 shows an example screen displayed at the GoogleSM search engine Web site to facilitate non-configurable linking.
FIGS. 14A, 14B, and14C show example screens displayed at the Northern Light search engine to facilitate non-configurable linking.
The present invention will now be described with reference to the accompanying drawings. In the drawings, like reference numbers indicate identical or functionally similar elements. Additionally, the left-most digit(s) of a reference number typically identifies the drawing in which the reference number first appears.
DETAILED DESCRIPTION OF THE FIGURES Table of Contents
I. Overview and Terminology
II. Propagating Remotely Configurable Posters
A. Configuration
B. Web Code Segment Generation
C. Tracking
D. Further Remotely Configurable Poster Propagation
III. Example On-Line Propagative Poster System
A. Host Site with Propagative Poster Management
B. Propagative Poster Manager
C. Operation
D. Further Propagation
E. Propagative Poster Maintenance
F. Example Propagative Poster Record and Tracking Information
G. Detailed Viewing of Information Concerning Data Summarized on a Propagative Poster
IV. Example Environment
V. Example Computer System
VI. Conclusion
I. Overview and Terminology
The present invention provides a method, system, and computer program product for propagating access to host site content to remote users over the World Wide Web (also referred to as WWW or the Web). Access to host site content is distributed more widely and easily through propagative posters. Remote users can access a host site and configure propagative posters in real-time. A Web code segment corresponding to a configured propagative poster is then generated and sent to the remote user in real-time. Propagative posters also permit users to select summary information about an item or topic displayed thereon to access further information about that selected item or topic.
The term “propagative poster” refers to any type of poster created and managed according to the present invention. Such a “poster” can include, but is not limited to, any one or more of an image, bitmap, link, button, window, display view, and/or applet.
The term “real-time” means information, such as a user input and a host site response, that can be exchanged in a round-trip cycle between a remote user and the host site with little or no delay, such as, within seconds or minutes (any delay being essentially a function of the communication medium and devices connected between a user and the host site).
The terms “Web code segment” and “non-executable code segment” refer interchangeably to an segment that can be inserted into a Web page and is capable of being interpreted by a browser. A Web code segment can include, but is not limited to, HTML text.
The present invention is described with respect to propagating posters over the Web. The present invention is not necessarily limited to the Web and can be applied in any interactive, computer networking service, including but not limited to the Web.
II. Propagating Remotely Configurable Posters
The operation of the present invention is described first with respect to a routine100, as shown inFIG. 1. During the description ofroutine100, reference is made to example display screens210,220,230, and240 shown inFIGS. 2A-2D. Propagative poster management is then further described with respect to an example system and architecture shown inFIGS. 3 and 4. Example data structures used in the propagative poster management system ofFIG. 3 are further described with respect toFIGS. 5, 6,7, and8. The operation of the propagativeposter management system300 is further described with respect to flowcharts shown inFIGS. 9A and 9B,FIGS. 10A and 10B, andFIG. 11.
FIG. 1 shows a routine100 for propagating remotely configurable posters of content on a host site (steps110-190).
A. Configuration
First, a configuration session is hosted that allows a remote user to configure a propagative poster (step110). The configuration session allows the remote user to configure a propagative poster based on inputs or configuration selections made by the remote user. In one example, the present invention serves data that enables a series of configuration screens to be displayed to the remote user. The configuration screens can include templates or forms to further guide input by the user.
FIGS. 2A-2D show one example series of screens for configuring and propagating a propagative poster.FIG. 2A shows afirst configuration screen210.Configuration screen210 includes images of different types of sample posters that can be configured by user. In this example, four sample types of posters can be selected by a user. The first type is a window that displays job posting information at a host site. The second type is a window that displays resume information at the host site. The third type is a search button that enables a user to perform a search of data at the host site. The fourth type of poster is a data display window that displays information. For example, a data display representing statistical information about data on the host site can be provided in a propagative poster.
A user then selects the desired type of propagative poster fromconfiguration screen210 and is presented with asecond configuration screen220, as shown inFIG. 2B.Configuration screen220 allows the user to further configure the content of the propagative poster. For example, if a user selected the job posting type of propagative poster inconfiguration screen210, then aconfiguration screen220 is served that allows the user to configure user-specified criteria. As shown inFIG. 2B, a template is provided inconfiguration screen220 that allows a user to enter a title for the propagative poster, and to select a job function, type of industry, city, and state information. Pop-up windows can be selected to further guide a user to different types of job functions or types of industries which can be input. Similar configuration screens are presented when a user selects a resume type of propagative poster. These configuration screens, however, include templates designed to facilitate user input of fields related to resume information, such as user name, start date, years of experience, and location.
When anything but the search box type of propagative poster is configured, the configuration screens include one or more templates that allow a user to enter desired search parameters. Finally, when a data window is selected as the type of propagative poster to be configured, configuration screens are presented that allow a user to select the type of data display. For example, a template can be displayed that allows a user to select the type of data to be displayed (e.g., job or resume type of information), and the type of display format (e.g., statistical summaries, pie charts, bar charts, graphs, tables, and other formats).
As shown inFIG. 2C, athird configuration screen230 is then displayed that shows the user configured propagative poster as it would appear on a web page. The remote user can then verify that the configured propagative poster is acceptable. In one example, an OK button or other input device can be used to enable the user to indicate that the poster is acceptable.
B. Web Code Segment Generation
After configuration, a Web code segment is generated. First, a propagative poster identifier is generated (step120). The propagative poster identifier references the configured propagative poster on the host site. Instep130, a Web code segment is generated that includes at least a propagative poster identifier and a link to the host site. The link can be a URL of the host site through which the propagative poster can be accessed. Instep140, the generated Web code segment is forwarded in real time to the browser of a remote user. The generated Web code segment is then inserted into a remote page at a remote site designated by the user (step150).
FIG. 2D shows anexample screen240 that illustrates steps120-150.Example screen240 includes an example Web code segment generated according to steps120-130. The Web code segment is HTML text and includes a propagative poster identifier and a link to the host site. The HTML text is sent over an HTTP link for display in the browser of the remote user (step140). For example, as shown inFIG. 2D the HTML text can be provided in a box within thescreen240 to enable a user to easily select the HTML text. The user can then cut and paste the HTML text into another remote Web page as described with respect to step150.
Notescreen240 also includes instructions to guide the user to further facilitate easy cutting and pasting of the HTML code segment. Alternatively, the Web code segment can be automatically inserted by the host site into a designated Web page of the remote user. This of course requires that the host site be granted access rights to write on the Web server of the remote user.
The display screens210 through240 described with respectiveFIGS. 2A through 2D are illustrative and not intended to limit the present invention. For example, a smaller or larger number of screens can be used. Different types of information and format can be included in screens210-240 in accordance with the present invention. Any type of user input entry device can be used, including but not limited to templates, forms or other data entry modes.
Afterstep150, the first or original configured propagative poster is then accessible to subsequent users that visit the remote Web page with the inserted Web code segment. For example, the remote Web page may include a display of the propagative poster itself and/or a button or link to the propagative poster. When a subsequent user visits or “hits” the remote Web page the original configured propagative poster is generated (step160). Because the inserted Web segment included a link to the propagative poster host site the subsequent user can be hyperlinked to the host site itself through conventional HTTP. The propagative poster identifier drawn from the Web code segment further allows the host site to automatically serve the appropriate propagative poster to the second or subsequent remote user. In particular, an overlay window is generated on the browser of the subsequent remote user that displays the original configured propagative poster.
At this time, the subsequent user is communicating directly with the host site. The host site can generate the original configured propagative poster based on current data at the time the poster is accessed. Alternatively, the host site can display the original configured poster data based on data in the host site at the time the original user configured the poster or at the time when the poster was periodically “refreshed” or updated. For example, the host site may periodically generate and store the configured propagated posters offline as part of a daily maintenance or updating procedure. Regardless, the subsequent user is able to view the poster configured by the original user that includes data on the host site. In this way, host site data is propagated and distributed widely over the WWW.
C. Tracking
The host site can further track information related to the original remote user that configured the propagative poster and subsequent accesses made to the configured propagative poster (step170). For example URL history information of the original remote user and subsequent remote users that access the propagative posters can be tracked. Click-through information can be tracked. In general, any type of tracking and user profiling can be used depending on what we have access to via the document object model (DOM) and/or other methods. According to one feature of the present invention, the number of accesses made to configured propagative posters and the frequency of the number of accesses made is tracked. In this way more active propagative posters can be refreshed more often.
D. Further Remotely Configurable Poster Propagation
According to a further feature of the present invention a propagation poster further includes an input portion, such as, a “Make Propagation Poster” button. The input portion enables a remote user to easily make another propagative poster. For example, as shown in theconfiguration screen230, a propagative poster can include an input portion labeled “click. here to get a window for your site” or “make propagation poster now.”
Instep180, a check is made to determine whether a user wishes to configure a propagative poster. In particular, a check is made to determine whether the user has made a selection to the input portion for making a propagative poster. When a user does wish to configure a propagative poster, a configuration session to create a new poster is then initiated.Steps110 through170 are then repeated for the subsequent remote user. In this way, another propagation poster is easily generated for the subsequent remote user. Content on the host site is then distributed even more quickly to a wider audience as users who visit the Web page of the remote user select and propagate their own posters. When a user doesn't want to configure a propagative poster then routine100 ends (step190).
III. Example On-Line Propagative Poster System
FIGS. 3 and 4 are block diagrams of an on-line system300 for propagating remotely configurable posters according to one embodiment of the present invention.Propagative poster system300 includes ahost site302.Host site302 is coupled through communication links overnetwork305 to any number of clients of remote users. For clarity, onlyclient370 ofuser1 andclient380 of user n are shown.Client370 includes abrowser372 and a user interface347. Similarly,client380 includes abrowser382 and auser interface384. Aremote Web server376 is also coupled tonetwork305.Web server376 is further coupled to astorage device377storing Web page378.FIG. 4 shows how anexample HTML segment410 generated according to the present invention is inserted into aremote Web page378.
A. Host Site with Propagative Poster Management
Host site302 includes apropagative poster manager310,storage device312,database314, andWeb server316.Propagative poster manager310 andWeb server316 are coupled to one another and tostorage device312 anddatabase314.Storage device312 stores records related to the content of propagative posters and the management of propagative posters.Database314 stores data forhost site302, that is, the local content ofhost site312.Propagative poster manager310 further includes a propagativeposter configuration module320,propagative poster generator330,propagative poster tracker340, propagativeposter maintenance module350.
Host site302 can be implemented on any one or more processors. In one example, not intended to limit the present invention,propagative poster manager310 is implemented on one or more servers. Likewise,Web server316 can be one or more Web servers supporting Web services.Storage device312 can be type of data storage device or combination of data storage devices including, but not limited to, a type of memory and/or database.Database314 can be any type of database (relational or non-relational). Additional databases can be added to accommodate greater capacity. In one example,host site302 is a Web site that supports on-line employment services, especially for independent consultants and hiring managers who are looking to hire independent consultants. These on-line employment services can include but are not limited to presenting and managing job postings, resume collection, formatting and storage, spidering, and e-mail campaign generation and management. Other servers and modules (not shown) can support these services and provide data fordatabase314.
B. Propagative Poster Manager
Propagative poster manager310 further includes a propagativeposter configuration module320,propagative poster generator330,propagative poster tracker340, propagativeposter maintenance module350. Propagationposter configuration module320 hosts configuration sessions that allow remote users to configure propagative posters of host site content.Propagative poster generator330 generates propagative poster identifiers and corresponding Web code segments as described above with respect to Steps110-130.Propagative poster tracker340 tracks URL addresses of remote servers accessing the user configured propagated posters and other profiling and tracking information. Propagativeposter maintenance module350 generates reports based on propagative poster records and data tracked by thepropagative poster tracker340. Propagative poster manager310 (including each component propagativeposter configuration module320,propagative poster generator330,propagative poster tracker340, and propagative poster maintenance module350) can be control logic implemented in software, firmware, hardware or any combination thereof. The operation of the on-linepropagative poster system300 and in particularpropagative poster manager310 is described further with respect to the example data structures in FIGS.5 to8 and the operational flowchart ofFIGS. 9A, 9B,10A,10B, and11.
C. Operation
As shown inFIG. 9A, afirst configuration session900 begins when aremote user1 visits host site302 (step912).User1 enters the URL of host site302 (in particular, the URL of Web server316) intobrowser372.User1 is then linked toWeb server316.Host site302 then throughWeb server316 presents different web pages tobrowser372 for reviewing byuser1. These web pages can include any type of host site content. Instep914, a propagation poster query is sent. This query for example can be an input portion on a window that indicates “make propagation poster now.” Alternatively, a separate window asking the remote user if they wish to configure a propagative poster can be displayed.
Instep916,user1 requests to make a propagative poster.Host site302 receives the request and sends one or more configuration screens (step918). In particular, propagationposter configuration module320 sends one or more configuration screens210-230 in a configuration session as described above with respect to step110 andFIGS. 2A to2C.User1 inputs desired configuration selections into the one or more screens.Browser372 then sends the user's configuration selections to host site302 (step920).
Propagative poster manager310 then generates and sends a bitmap or text of a configured propagative poster to browser372 (step922).Browser372 then sends a confirmation input byuser1 indicating that the configured propagative poster is acceptable (step924).
Propagative poster generator330 then generates a propagative poster identifier that includes a unique poster number (step926). Alternatively, in one embodiment to enhance security and promote trackingpropagative poster330 further includes a hash function generator. Any type of hash function can be used including but not limited to a one-way hash function such as the MD5 message-digest algorithm (B. Schneier,Applied Cryptography, Second Edition(John Wiley & Sons, Inc. United states of America) 1996, pp. 351-354, and R. Rivest, “MD5 Message-Digest Algorithm,” Networking Group Request for Comments: 1321 MIT Laboratory for Computer Science and RSA Data Security, Inc., April 1992 (downloaded Mar. 30, 2000)), each of which is incorporated in its entirety herein by reference.
The hash function generator as shown inFIG. 5 receives a respectiveprivate key510, andunique poster number520. The hash function generator then outputs asecure fingerprint540. Propagative poster (PP)generator330 then concatenates thesecure fingerprint540 and the URL of the first or originating remote user to generate a secure, trackable propagative poster ID (PPID)560 (step928).
PP generator330 then generates a non-executableHTML code segment410 that includes secure,trackable PPID560 and a link (URL) to host site302 (step930).PP generator330 further generates executable code.PP generator330 then generates and stores aPP record600 in storage device312 (step934).
FIG. 6 shows an examplepropagative poster record600 stored instorage device312.Propagative poster record600 includes apropagative poster ID560,bitmap620,non-executable code segment630,executable code640,search parameter650, active/inactive flag660, and originator profile data670.Bitmap620 is an image of the propagative poster configured by user.Non-executable code segment630 represents the web code segment (e.g, HTML segment410) generated instep930.
Executable code640 is executable code that enableshost site302 to generate a propagative poster configured in accordance with the selections of the user based on data indatabase314 ofhost site302. For example, executable code can include, but is not limited to, Structured Query Language (SQL) or other language that enables a search ofdatabase314 to be performed.Search parameter650 are keywords, Boolean operators, or other operators that identify a particular search selected or configured by the user during the configuration of the respective propagative poster. In one example, search parameters can include poster title, job function, zip code and state.FIG. 7 shows an example of search parameters input to obtain a desired resume information type of propagation poster. For example,search parameter650 as shown inFIG. 7 include field type (P1, P2, P3) and field value (T1, T2, T3) information. Field type P1 corresponds to city information with a value of “Annandale” T1. Field type P2 corresponds to state information with a value of “VA” T2. Field type information P3 corresponds to years of experience with a value “6” T3. In this way,executable code640 can be executed byhost site302 to searchdatabase314 based onsearch parameter650 to generate and refresh propagative poster content.
This example is illustrative only and not intended to limit the present invention. Any number and type of data fields and values can be used as would be apparent to a person skilled in the art given this description. Also,search parameter650 may not be used for certain types of posters that do not require a search of host site data.
Active/inactive flag660 is set by propagativeposter maintenance module350 depending upon how frequently a particular propagative poster is accessed. For example, if propagativeposter maintenance module350 determines that no hits have been made to the propagative poster, thenpropagative maintenance module350 setsflag660, to an inactive value. When a hit is made to the propagative poster,propagative maintenance module350 initiates immediate generation and then sets the flag to active.Propagative poster manager310 further stores original profile data670. Original profile data670 can include profile information entered by the user creating the poster during configuration (or a prior registration session).
Propagative poster manager310 then sends the non-executableHTML code segment630 tobrowser372 at client370 (step936).User1 throughbrowser372 then inserts non-executable HTML code segment into a Web page (step938). As described with respect to step150, the non-executable HTML code segment can be inserted manually (e.g., cut and pasted) by a user or automatically byhost site302.
D. Further Propagation
The distribution of propagative posters is further described with respect toFIGS. 10A and 10B. Remote user n (e.g. user2) visitsuser1 web page (step1002). Remote server then interprets HTML code segment410 (step1004).Browser382 is then linked tohost site302 andWeb server316.Propagative poster tracker340 parses the originating URL (User1's URL), and secure trackable PPID560 (step1006).
PP tracker340 further tracks the referring URL ofserver376. Instep1008,PP tracker340 checks whether a valid poster ID is obtained. For example,PP tracker340 decryptsfingerprint540 with a copy of the private key previously stored inhost site302 and compares it with the unique poster number orID520 to determined if the poster ID that is valid. If a valid poster ID has not been sent, thenPP tracker340 ignores the remote user n (step1010). Otherwise, when a valid poster ID is verified,PP tracker340 determines whether the URL of remote user n equals the originator URL of user1 (step1012). If the URL of remote user n is not equal thenPP tracker340 recognizes that a different user is accessing the poster and stores the URL of remote user n (step1014) and proceeds to step1016. Otherwise,propagative poster tracker340 proceeds directly to step1016.
Instep1016,propagative poster tracker340 updates the history information of propagative poster. In particular, the history is updated to indicate that an access to the propagative poster has been made and to provide a history of the accessing URL and time stamp information. As shown inFIG. 10A, after a valid poster ID has been verified instep1008, and the URL of the accessingremote server376 has been evaluated instep1012, and propagative history updated instep1016, thenpropagative poster manager310 serves thepropagative poster bitmap620 in real-time to remote user n (step1018).Browser382 then displays to user n the propagative poster in an overlay window (step1020). At this time, remote user n is now viewingPP bitmap620 onhost site302.
Instep1022, remote user n selects an input portion or “make propagation poster” area withinPP bitmap620.Browser382 forwards this selection to hostsite302.Propagative poster manager310 receives the “make propagation poster” selection including a mouse click represented by a set of screen space coordinates (step1024).Propagative poster manager310 converts the selection screen space coordinates to x-y coordinates in bitmap space of the poster (step1026).Propagative poster manager310 then evaluates the x-y coordinates in bitmap space to determine if the “make propagation poster” was selected (step1028). For example, if a small “make propagation poster” label is added at the bottom of a poster the x-y coordinates in bitmap space are checked to see if they correspond to the area of the small label at the bottom of the poster. If not, thenPP manager310 ignores the input or performs other processing (step1030). If yes, then control is transferred toPP configuration module320 to initiate a configuration session (step1032).
E. Propagative Poster Maintenance
Propagative maintenance module350 carries out a routine forpropagative poster maintenance1100 as shown inFIG. 11.PP maintenance module350 generates reports based on poster records and tracking data (step1110). Any type of report can be generated based on the information in the poster records and tracking data. Such reports can include but are not limited to reports of each kind of poster that provides information on how many posters reviewed today, how many posters were clicked on today, how many posters were made today, what's the view/click ratio, what are the most active sites that view those site posters, what are the most active sites that generate mouse clicks or searches, what sites generate the most poster creations, what posters are the most popular, and what single poster identifier is on the most sites.PP maintenance module350 also sets poster records to active or inactive state depending on use (step1120). In particular,PP maintenance module350 setsflag660 in eachPP record600 to an active state when the poster has been activated on a frequent basis (i.e., at least one hit a day), or to an inactive value if the poster has not been accessed on a frequent basis.
Next,PP maintenance module350 refreshes propagative posters (step1130). For example,PP maintenance module350 searches and identifies each active PP record600 (with an active flag660). For eachactive PP record600, PP maintenance module executes theexecutable code640 based onsearch parameters650.Executable code640 then generates an updated propagated poster image based on current content indatabase314. An updated image of the propagated poster is then stored onstorage device312. In other words, it is rewritten over the existingbit map620. Originator profile data670 can also be updated based on tracked URL history and/or click-through data.
F. Example Propagative Poster Record and Tracking Information
FIG. 8 shows an example propagative posterrecord data structure800 according to one example implementation of the present invention. Propagative poster record data structure includes aposter object810, poster events object820, posterevent object type830,poster owner object840,poster type object850,poster click action860, posterclick definition object870, poster clickaction URL object880,poster parameters890, and poster parameters typeobject892. Each of theobjects810 through892 are generated and tracked for a respective propagative poster. The different fields and function of each field for each of theobjects810 through892 is described further in corresponding tables below.
Poster object810 includes the following fields and content as set forth in Table 1 below.
| Field | Content |
|
| PosterID | unique poster identifier number |
| Encrypted ID | encrypted poster identifier |
| PosterOwner ID | unique poster owner identifier number (pointer |
| to poster object 840) |
| PosterType ID | number identifying type of poster (e.g., job |
| posting poster, resume poster, search button, |
| or statistical display), GIF or TEXT version |
| of poster, choice of color and size scheme. |
| (pointer to poster object 850) |
| PosterURL | URL of original user that created poster |
| PosterHTML | HTML segment that is cut and pasted to |
| propagate poster |
| GIFName | file name of stored poster (e.g., a hash coded |
| secure, trackable ID filename with a .gif file |
| type extension) |
| PosterCreateDate | time and date stamp of when poster was created |
| by originator |
| Active | active/inactive flag |
| PosterParamsID | number identifying poster search parameters |
| (pointer to poster object 890) |
| PosterClickActionID | number identifying poster click action |
| parameters (pointer to poster object 860) |
|
Poster events object
820 includes the following fields and content shown in Table 2 below.
| TABLE 2 |
|
|
| Poster Events Object 820 |
| Field | Content |
| |
| PosterEventsID | event number |
| PosterID | unique poster number |
| PosterEventTypeID | number identifying type of poster event |
| | (pointer to poster object 830) |
| ReferringURL | URL address of site that accessed or “hit” |
| | poster |
| EventDate | time and date stamp of hit on poster |
| |
Poster
event type object830 has fields and content as shown below in Table 3.
| TABLE 3 |
|
|
| PosterEvent Type Object 830 |
| Field | Content |
|
| PosterEventTypeID | number identifying type of poster event |
| PosterEventDescriptionID | textual description of poster event (e.g., |
| poster hit, poster viewed for length of time) |
|
Poster owner object840 includes the following fields and content as set forth in Table 4.
| TABLE 4 |
|
|
| Poster Owner Object 840 |
| Field | Content |
| |
| Poster Owner ID | unique poster owner identifier number |
| PosterOwnerName | name of originator of poster |
| PosterOwnerEmail | email address of originator of poster |
| |
Poster type object850 has the following fields and content provided in Table 5.
| TABLE 5 |
|
|
| Poster Object Type 850 |
| Field | Content |
|
| PosterTypeID | number identifying type of poster (e.g., job |
| posting poster, resume poster, search button, |
| or statistical display), GIF or TEXT version |
| of poster, choice of color and size scheme. |
| PosterType Description | textual description of type of poster (e.g., job |
| posting poster, resume poster, search button, |
| or statistical display), GIF or TEXT version |
| of poster, choice of color and size scheme. |
| PosterClick DefID | number identifying which area corresponds |
| to an input portion on poster for making |
| another propagation poster (pointer to poster |
| object 870) |
|
Poster
click action object860 includes the following fields and content as shown in Table 6.
| TABLE 6 |
|
|
| PosterClick Action Object 860 |
| Field | Content |
|
| PosterClick ActionID | number identifying poster click action |
| parameters |
| PosterClickDefID | number identifying poster click action |
| parameters (pointer to poster object 870) |
| PosterAreaNumber1 | area number of poster (e.g., one of three |
| areas where banner ads can be placed) |
| ActionURL | URL |
|
Poster click define
object870 has the following fields and content shown in Table 7. Note points (x
1,y
1) and (x
2,y
2) can be two points defining a rectangle (or square) area on a web page in bitmap space. In one embodiment, this set of points defines an input portion where a user clicks to propagate another poster.
| TABLE 7 |
|
|
| Poster Click DefineObject 870 |
| Field | Content |
|
| PosterClickDefID | number identifying poster click action |
| parameters |
| X1 | x coordinate of first point in bit map space |
| Y1 | y coordinate of second point in bit map space |
| X2 | x coordinate of second point in bit map space |
| Y2 | y coordinate of second point in bit map space |
| PosterAreaNumber | area number of poster (e.g., one of three |
| areas where banner ads can be placed) |
| PosterEventTypeID | number identifying type of poster event |
| (pointer to poster object 830) |
| PosterClickActionURL | number identifying type of poster click |
| action (pointer to poster object 880) |
|
Poster
click action URL880 includes the following fields and content as shown in Table 8.
| TABLE 8 |
|
|
| Poster ClickAction URL Object 880 |
| Field | Content |
|
| PosterClickActionURLID | number identifying type of poster click |
| action URL |
| ActionURL | URL |
|
Poster parameters object
890 includes the following fields and contents and shown in Table 9.
| TABLE 9 |
|
|
| Poster Parameters Object 890 |
| Field | Content |
| |
| PosterParametersID | number identifying type of poster search |
| | parameters (pointer to poster object 892) |
| ParametersTypeID | number identifying type of poster search |
| ParameterValue | value of type of poster search |
| |
Poster parameters type
object892 includes the following fields and content as shown in Table 10.
| TABLE 10 |
|
|
| Poster Parameters TypeObject 892 |
| Field | Content |
| |
| ParamsTypeID | number identifying type of poster search |
| ParamsDescription | textual description of search parameters |
| |
Note other information can be tracked including client side variables, such as, screen depth, screen width, platform type, browser, and plug-ins installed on client. Such information and tracking is optional depending upon a particular application or preference of an administrator of
propagative poster manager310.
G. Detailed Viewing of Information Concerning Data Summarized on a Propagative Poster
As noted above, a feature of the present invention permits users to click on (i.e., select) summary information displayed on a propagative poster to access further information about a selected item or topic. In other words, a propagative poster allows a user to select summary information about an item or topic displayed on the propagative poster to thereby access further information about that selected item or topic.
In the context of a list of resumes, for example, a user can access details about a resume that looks interesting simply by clicking on a summary of the desired resume displayed in a list of resumes on a propagative poster. As described in the above sections,propagative poster manager310 converts the selection screen space coordinates to x-y coordinates in bitmap space of the poster.Propagative poster manager310 then evaluates the x-y coordinates in bitmap space to determine which resume summary was selected. The system then presents more detailed data corresponding to the resume summary from some host site to the user.
IV. Example Environment
The present invention can be implemented in any communication network, such as, the Internet, which supports interactive services and applications. In particular, the present invention can be implemented in any Web service, preferably a Web service supporting secure transactions, such as, the Secure Socket Layer (SSL) protocol and/or using a Secure HyperText Transport Protocol (S-HTTP). In one example, the present invention is implemented in a multi-platform (platform independent) programming language such as Java 1.1. Java-enabled browsers are used, such as, Netscape, HotJava, and Microsoft Explorer browsers. Active content Web pages can be used. Such active content Web pages can include Java applets or ActiveX controls, or any other active content technology developed now or in the future. The present invention, however, is not intended to be limited to Java or Java-enabled browsers, and can be implemented in any programming language and browser, developed now or in the future, as would be apparent to a person skilled in the art given this description.
FIG. 12A is a diagram of an example internetwork environment according to the present invention.FIG. 12A shows a communication network or combination of networks (Internet)1200 which can support the invention.Internet1200 consists of interconnected computers which supports communication between many different types of users including businesses, universities, individuals, government, and financial institutions.Internet1200 supports many different types of communication links implemented in a variety of architectures. For example, voice and data links can be used including phone, paging, cellular, and cable TV (CATV) links. Terminal equipment can include local area networks, personal computers with modems, content servers of multi-media, audio, video, and other information, pocket organizers, Personal Data Assistants (PDAs), and set-top boxes.
Communication over a communication network such as,Internet1200, is carried out through different layers of communication.FIG. 12B shows a simplified four-layered communication model supporting Web commerce including anapplication layer1208,transport layer1210,Internet layer1220,physical layer1230. As would be apparent to a person skilled in the art, in practice, a number of different layers can be used depending upon a particular network design and communication application.Application layer1208 represents the different tools and information services which are used to access the information over the Internet. Such tools include, but are not limited to, telenet log-in service1201,IRC chat1202,Web service1203, and SMTP (Simple Mail Transfer Protocol)electronic mail service1206.Web service1203 allows access toHTTP documents1204, and FTP and Gopher files1205. A Secure Socket Layer (SSL) is an optional protocol used to encrypt communications between a Web browser and Web server.
Description of the example environment in these terms is provided for convenience only. It is not intended that the invention be limited to application in this example environment. In fact, after reading the following description, it will become apparent to a person skilled in the relevant art how to implement the invention in alternative environments.
V. Example Computer System
An example of acomputer system1240 is shown inFIG. 12C. Thecomputer system1240 represents any single or multi-processor computer. Single-threaded and multi-threaded computers can be used. Unified or distributed memory systems can be used.
Computer system1240 includes one or more processors, such asprocessor1244. One ormore processors1244 can execute software implementing routine100 as described above. Eachprocessor1244 is connected to a communication infrastructure1242 (e.g., a communications bus, cross-bar, or network). Various software embodiments are described in terms of this exemplary computer system. After reading this description, it will become apparent to a person skilled in the relevant art how to implement the invention using other computer systems and/or computer architectures.
Computer system1240 also includes amain memory1248, preferably random access memory (RAM), and can also include asecondary memory1250. Thesecondary memory1250 can include, for example, ahard disk drive1252 and/or aremovable storage drive1254, representing a floppy disk drive, a magnetic tape drive, an optical disk drive, etc. Theremovable storage drive1254 reads from and/or writes to a removable storage unit1258 in a well known manner. Removable storage unit1258 represents a floppy disk, magnetic tape, optical disk, etc., which is read by and written to byremovable storage drive1254. As will be appreciated, the removable storage unit1258 includes a computer usable storage medium having stored therein computer software and/or data.
In alternative embodiments,secondary memory1260 may include other similar means for allowing computer programs or other instructions to be loaded intocomputer system1240. Such means can include, for example, aremovable storage unit1262 and aninterface1260. Examples can include a program cartridge and cartridge interface (such as that found in video game devices), a removable memory chip (such as an EPROM, or PROM) and associated socket, and otherremovable storage units1262 andinterfaces1260 which allow software and data to be transferred from theremovable storage unit1262 tocomputer system1240.
Computer system1240 can also include acommunications interface1264.Communications interface1264 allows software and data to be transferred betweencomputer system1240 and external devices viacommunications path1266. Examples ofcommunications interface1264 can include a modem, a network interface (such as Ethernet card), a communications port, etc. Software and data transferred viacommunications interface1264 are in the form of signals which can be electronic, electromagnetic, optical or other signals capable of being received bycommunications interface1264, viacommunications path1266. Note thatcommunications interface1264 provides a means by whichcomputer system1240 can interface to a network such as the Internet.
The present invention can be implemented using software running (that is, executing) in an environment similar to that described above with respect toFIG. 12A. In this document, the term “computer program product” is used to generally refer toremovable storage unit1254, a hard disk installed inhard disk drive1252, or a carrier wave carrying software over a communication path1266 (wireless link or cable) tocommunication interface1264. A computer useable medium can include magnetic media, optical media, or other recordable media, or media that transmits a carrier wave or other signal. These computer program products are means for providing software tocomputer system1240.
Computer programs (also called computer control logic) are stored inmain memory1248 and/orsecondary memory1250. Computer programs can also be received viacommunications interface1264. Such computer programs, when executed, enable thecomputer system1240 to perform the features of the present invention as discussed herein. In particular, the computer programs, when executed, enable theprocessor1244 to perform the features of the present invention. Accordingly, such computer programs represent controllers of thecomputer system1240.
The present invention can be implemented as control logic in software, firmware, hardware or any combination thereof. In an embodiment where the invention is implemented using software, the software may be stored in a computer program product and loaded intocomputer system1240 usingremovable storage drive1254,hard drive1250, orinterface1260. Alternatively, the computer program product may be downloaded tocomputer system1240 overcommunications path1266. The control logic (software), when executed by the one ormore processors1244, causes the processor(s)1244 to perform the functions of the invention as described herein.
In another embodiment, the invention is implemented primarily in firmware and/or hardware using, for example, hardware components such as application specific integrated circuits (ASICs). Implementation of a hardware state machine so as to perform the functions described herein will be apparent to persons skilled in the relevant art(s).
VI. Conclusion While various embodiments of the present invention have been described above, it should be understood that they have been presented by way of example only, and not limitation. It will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined in the appended claims. Thus, the breadth and scope of the present invention should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.