U.S. patent application number 11/708071 was filed with the patent office on 2007-06-28 for method, system, and computer program product for propagating remotely configurable posters of host site content.
This patent application is currently assigned to Kforce Inc.. Invention is credited to Michael G. Foulger, Peter B. van Gorder.
Application Number | 20070150804 11/708071 |
Document ID | / |
Family ID | 24202507 |
Filed Date | 2007-06-28 |
United States Patent
Application |
20070150804 |
Kind Code |
A1 |
Foulger; Michael G. ; et
al. |
June 28, 2007 |
Method, system, and computer program product for propagating
remotely configurable posters of host site content
Abstract
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.
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.
Inventors: |
Foulger; Michael G.;
(Novato, CA) ; van Gorder; Peter B.; (Sebastopol,
CA) |
Correspondence
Address: |
STERNE, KESSLER, GOLDSTEIN & FOX P.L.L.C.
1100 NEW YORK AVENUE, N.W.
WASHINGTON
DC
20005
US
|
Assignee: |
Kforce Inc.
Tampa
FL
33605
|
Family ID: |
24202507 |
Appl. No.: |
11/708071 |
Filed: |
February 20, 2007 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
09551746 |
Apr 18, 2000 |
|
|
|
11708071 |
Feb 20, 2007 |
|
|
|
Current U.S.
Class: |
715/207 ;
707/E17.111; 709/217; 715/234 |
Current CPC
Class: |
H04L 67/02 20130101;
G06F 16/954 20190101; H04L 69/329 20130101 |
Class at
Publication: |
715/513 ;
715/501.1; 715/530; 709/217 |
International
Class: |
G06F 17/00 20060101
G06F017/00; G06F 15/16 20060101 G06F015/16 |
Claims
1. A method for propagating a poster of host site content to remote
users over the World Wide Web, comprising the steps of: (a) hosting
a configuration session that allows a first remote user to
configure a propagative poster of host site content based on at
least one configuration selection input by the remote user; (b)
generating a propagative poster identifier that references the
user-configured propagative poster; (c) generating a Web code
segment that includes the propagative poster identifier and a link
to the host site; and (d) forwarding the generated Web code segment
to the first remote user in real-time; whereby the generated Web
code segment can be inserted into a Web page of the first remote
user to create a first remote user-configured propagative poster on
the Web page of the first remote user.
2. The method of claim 1, further comprising the step of: (e)
generating the first remote user-configured propagative poster in
response to a subsequent hit on the first remote user Web page by a
second remote user that selects at least a portion of the Web page
of the first remote user corresponding to the generated Web code
segment.
3. The method of claim 2, wherein the at least one configuration
selection input by the first remote user includes at least one
search parameter, and wherein said generating step (e) includes the
steps of: executing a search query of data based on each search
parameter to obtain a search result; and generating the first
remote user-configured propagative poster, wherein the
user-configured propagative poster includes the search result.
4. The method of claim 3, wherein the search query executing step
executes a search query of data at the host site based on each
search parameter to obtain the search result.
5. The method of claim 2, further comprising the step of displaying
the generated first remote user-configured propagative poster in a
overlay window within a display view of a browser of the second
remote user.
6. The method of claim 2, further comprising the step of hosting a
second configuration session that allows the 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.
7. The method of claim 6, wherein the first remote user-configured
propagative poster includes an input portion that enables a second
remote user to make another propagative poster; and further
comprising the step of initiating said second configuration session
hosting step in response to a selection of the input portion by the
second remote user.
8. The method of claim 1, further comprising the steps of:
converting a pair of screen space coordinates of a user input
selection to a pair of coordinates (x,y) in bitmap space; and at
least one of: determining whether the x,y coordinates in bit map
space correspond to an input portion of the first remote-user
configured propagative poster that enables a second remote user to
make another propagative poster, and displaying detailed
information from the host site related to summary information given
by the pair of coordinates.
9. A system for propagating a poster of host site content to remote
users over the World Wide Web, comprising: (a) hosting means for
hosting a configuration session that allows a first remote user to
configure a propagative poster of host site content based on at
least one configuration selection input by the remote user; (b)
first generating means for generating a propagative poster
identifier that references the user-configured propagative poster;
(c) second generating means for generating a Web code segment that
includes the propagative poster identifier and a link to the host
site; and (d) forwarding means for forwarding the generated Web
code segment to the first remote user in real-time; whereby the
generated Web code segment can be inserted into a Web page of the
first remote user to create a first remote user-configured
propagative poster on the Web page of the first remote user.
10. The system of claim 9, further comprising: (e) third generating
means for generating the first remote user-configured propagative
poster in response to a subsequent hit on the first remote user Web
page by a second remote user that selects at least a portion of the
Web page of the first remote user corresponding to the generation
process.
11. The system of claim 10, wherein the at least one configuration
selection input by the first remote user includes at least one
search parameter, and wherein said third generating means (e)
includes: means for executing a search query of data based on each
search parameter to obtain a search result; and means for
generating the first remote user-configured propagative poster,
wherein the user-configured propagative poster includes the search
result.
12. The system of claim 11, wherein said search query executing
means executes a search query of data at the host site based on
each search parameter to obtain the search result.
13. The system of claim 10, further comprising means for displaying
the generated first remote user-configured propagative poster in a
overlay window within a display view of a browser of the second
remote user.
14. The system of claim 10, further comprising means for hosting a
second configuration session that allows the 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.
15. The system of claim 14, wherein the first remote
user-configured propagative poster includes an input portion that
enables a second remote user to make another propagative poster;
and further comprising means for initiating said second
configuration session hosting means in response to a selection of
the input portion by the second remote user.
16. The system of claim 9, further comprising: means for converting
a pair of screen space coordinates of a user input selection to a
pair of coordinates (x,y) in bitmap space; and means for
determining whether the x,y coordinates in bit map space correspond
to an input portion of the first remote-user configured propagative
poster that enables a second remote user to make another
propagative poster.
17. A system for managing propagation of host site content to
remote users over the World Wide Web, comprising: a propagative
poster configuration module that hosts a configuration session that
allows a first remote user to configure a propagative poster of
host site content based on at least one configuration selection
input by the remote user; and a propagative poster generator that
generates a propagative poster identifier and a Web code segment,
wherein the propagative poster identifier references the
user-configured propagative poster the Web code segment includes
the propagative poster identifier and a link to the host site, and
forwards the generated Web code segment to the first remote user in
real-time; whereby the generated Web code segment can be inserted
into a Web page of the first remote user to create a first remote
user-configured propagative poster on the Web page of the first
remote user.
18. The system of claim 17, wherein said propagative poster
generator further generates the first remote user-configured
propagative poster in response to a subsequent hit on the first
remote user Web page by a second remote user that selects at least
a portion of the Web page of the first remote user corresponding to
the generated Web code segment.
19. The system of claim 18, wherein the at least one configuration
selection input by the first remote user includes at least one
search parameter, and wherein said propagative poster generator
executes a search query of data in a database based on each search
parameter to obtain a search result, and generates the first remote
user-configured propagative poster, wherein the user-configured
propagative poster includes the search result.
20. The system of claim 18, wherein said propagative poster
configuration module further hosts a second configuration session
that allows the 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.
21. A computer program product comprising a computer useable medium
having computer program logic recorded thereon for enabling at
least one processor to manage propagation of host site content to
remote users over the World Wide Web in real-time over the World
Wide Web (WWW), said computer program logic comprising: first
computer readable program code means for enabling said at least one
processor to host a configuration session that allows a first
remote user to configure a propagative poster of host site content
based on at least one configuration selection input by the remote
user; second computer readable program code means for enabling said
at least one processor to generate a propagative poster identifier
that references the user-configured propagative poster; third
computer readable program code means for enabling said at least one
processor to generate a Web code segment that includes the
propagative poster identifier and a link to the host site; and
fourth computer readable program code means for enabling said at
least one processor to forward the generated Web code segment to
the first remote user in real-time; whereby the generated Web code
segment can be inserted into a Web page of the first remote user to
create a first remote user-configured propagative poster on the Web
page of the first remote user.
22. A method for propagating a poster of host site content to
remote sites over the World Wide Web, comprising the steps of: (a)
at a host site, hosting a configuration session that allows a first
remote user to configure a propagative poster of host site content
based on at least one configuration selection input by the remote
user; (b) at the host site, generating a propagative poster
identifier that references the user-configured propagative poster;
(c) at the host site, storing the propagative poster identifier and
the user-configured propagative poster; (d) at the host site,
generating a Web code segment that includes the propagative poster
identifier and a link to the host site; (e) at the host site,
forwarding the generated Web code segment to a remote site in
real-time; (f) at the remote site, inserting into a Web page of the
remote site the Web code segment; (g) at the remote site,
forwarding the Web page of the remote site with the Web code
segment to a second remote user; (h) at the host site, generating a
remote propagative poster based on the propagative poster
identifier; and (i) at the host site, forwarding the remote
propagative poster to the second remote user.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] 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
[0002] 1. Field of the Invention
[0003] The present invention relates to computer networking and
communication, including Web-based communications and commerce.
[0004] 2. Related Art
[0005] 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.
[0006] 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.
[0007] 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.
[0008] 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.
[0009] 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 to 14C 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.
[0010] 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.
[0011] 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
[0012] 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.
[0013] 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.
[0014] 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.
[0015] 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.
[0016] 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.
[0017] 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.
[0018] 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.
[0019] 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.
[0020] 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.
[0021] 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.
[0022] 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.
[0023] 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.
[0024] 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
[0025] 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.
[0026] FIG. 1 is a flowchart of a routine for propagating remotely
configurable posters according to one embodiment of the present
invention.
[0027] FIGS. 2A, 2B and 2C show configuration screens served during
a configuration session according to one embodiment of the present
invention.
[0028] FIG. 2D show a screen with HTML text for propagating a
poster according to one embodiment of the present invention.
[0029] FIGS. 3 and 4 are block diagrams of a system for propagating
remotely configurable posters according to one embodiment of the
present invention.
[0030] 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.
[0031] FIG. 6 is a diagram of a propagative poster record according
to one embodiment of the present invention.
[0032] FIG. 7 is a diagram of example search parameters that can be
used in the propagative poster record of FIG. 6.
[0033] FIG. 8 is a diagram of a set of records for managing
propagative posters according to one embodiment of the present
invention.
[0034] FIGS. 9A and 9B are flowcharts of a routine for propagating
remotely configurable posters according to one embodiment of the
present invention.
[0035] 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.
[0036] FIG. 11 is a flowchart of a routine for propagative poster
maintenance according to one embodiment of the present
invention.
[0037] FIG. 12A is a diagram of an example internetwork environment
according to the present invention.
[0038] FIG. 12B shows a simplified four-layered communication model
supporting Web commerce.
[0039] FIG. 12C is a block diagram of a computer system according
to an example implementation of the present invention.
[0040] FIG. 13 shows an example screen displayed at the GoogleSM
search engine Web site to facilitate non-configurable linking.
[0041] FIGS. 14A, 14B, and 14C show example screens displayed at
the Northern Light search engine to facilitate non-configurable
linking.
[0042] 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
[0043] A. Configuration
[0044] B. Web Code Segment Generation
[0045] C. Tracking
[0046] D. Further Remotely Configurable Poster Propagation
III. Example On-Line Propagative Poster System
[0047] A. Host Site with Propagative Poster Management
[0048] B. Propagative Poster Manager
[0049] C. Operation
[0050] D. Further Propagation
[0051] E. Propagative Poster Maintenance
[0052] F. Example Propagative Poster Record and Tracking
Information
[0053] 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
[0054] 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.
[0055] 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.
[0056] 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).
[0057] 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.
[0058] 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
[0059] The operation of the present invention is described first
with respect to a routine 100, as shown in FIG. 1. During the
description of routine 100, reference is made to example display
screens 210, 220, 230, and 240 shown in FIGS. 2A-2D. Propagative
poster management is then further described with respect to an
example system and architecture shown in FIGS. 3 and 4. Example
data structures used in the propagative poster management system of
FIG. 3 are further described with respect to FIGS. 5, 6, 7, and 8.
The operation of the propagative poster management system 300 is
further described with respect to flowcharts shown in FIGS. 9A and
9B, FIGS. 10A and 10B, and FIG. 11.
[0060] FIG. 1 shows a routine 100 for propagating remotely
configurable posters of content on a host site (steps 110-190).
[0061] A. Configuration
[0062] First, a configuration session is hosted that allows a
remote user to configure a propagative poster (step 110). 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.
[0063] FIGS. 2A-2D show one example series of screens for
configuring and propagating a propagative poster. FIG. 2A shows a
first configuration screen 210. Configuration screen 210 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.
[0064] A user then selects the desired type of propagative poster
from configuration screen 210 and is presented with a second
configuration screen 220, as shown in FIG. 2B. Configuration screen
220 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 in configuration screen 210, then a
configuration screen 220 is served that allows the user to
configure user-specified criteria. As shown in FIG. 2B, a template
is provided in configuration screen 220 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.
[0065] 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).
[0066] As shown in FIG. 2C, a third configuration screen 230 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.
[0067] B. Web Code Segment Generation
[0068] After configuration, a Web code segment is generated. First,
a propagative poster identifier is generated (step 120). The
propagative poster identifier references the configured propagative
poster on the host site. In step 130, 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. In step 140,
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
(step 150).
[0069] FIG. 2D shows an example screen 240 that illustrates steps
120-150. Example screen 240 includes an example Web code segment
generated according to steps 120-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 (step 140). For example, as shown in
FIG. 2D the HTML text can be provided in a box within the screen
240 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 step 150.
[0070] Note screen 240 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.
[0071] The display screens 210 through 240 described with
respective FIGS. 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 screens 210-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.
[0072] After step 150, 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 (step 160). 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.
[0073] 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.
[0074] C. Tracking
[0075] 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 (step
170). 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.
[0076] D. Further Remotely Configurable Poster Propagation
[0077] 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 the configuration screen 230, a propagative poster can
include an input portion labeled "click. here to get a window for
your site" or "make propagation poster now."
[0078] In step 180, 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. Steps 110 through 170 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 routine 100
ends (step 190).
III. Example On-Line Propagative Poster System
[0079] FIGS. 3 and 4 are block diagrams of an on-line system 300
for propagating remotely configurable posters according to one
embodiment of the present invention. Propagative poster system 300
includes a host site 302. Host site 302 is coupled through
communication links over network 305 to any number of clients of
remote users. For clarity, only client 370 of user 1 and client 380
of user n are shown. Client 370 includes a browser 372 and a user
interface 347. Similarly, client 380 includes a browser 382 and a
user interface 384. A remote Web server 376 is also coupled to
network 305. Web server 376 is further coupled to a storage device
377 storing Web page 378. FIG. 4 shows how an example HTML segment
410 generated according to the present invention is inserted into a
remote Web page 378.
[0080] A. Host Site with Propagative Poster Management
[0081] Host site 302 includes a propagative poster manager 310,
storage device 312, database 314, and Web server 316. Propagative
poster manager 310 and Web server 316 are coupled to one another
and to storage device 312 and database 314. Storage device 312
stores records related to the content of propagative posters and
the management of propagative posters. Database 314 stores data for
host site 302, that is, the local content of host site 312.
Propagative poster manager 310 further includes a propagative
poster configuration module 320, propagative poster generator 330,
propagative poster tracker 340, propagative poster maintenance
module 350.
[0082] Host site 302 can be implemented on any one or more
processors. In one example, not intended to limit the present
invention, propagative poster manager 310 is implemented on one or
more servers. Likewise, Web server 316 can be one or more Web
servers supporting Web services. Storage device 312 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.
Database 314 can be any type of database (relational or
non-relational). Additional databases can be added to accommodate
greater capacity. In one example, host site 302 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 for database 314.
[0083] B. Propagative Poster Manager
[0084] Propagative poster manager 310 further includes a
propagative poster configuration module 320, propagative poster
generator 330, propagative poster tracker 340, propagative poster
maintenance module 350. Propagation poster configuration module 320
hosts configuration sessions that allow remote users to configure
propagative posters of host site content. Propagative poster
generator 330 generates propagative poster identifiers and
corresponding Web code segments as described above with respect to
Steps 110-130. Propagative poster tracker 340 tracks URL addresses
of remote servers accessing the user configured propagated posters
and other profiling and tracking information. Propagative poster
maintenance module 350 generates reports based on propagative
poster records and data tracked by the propagative poster tracker
340. Propagative poster manager 310 (including each component
propagative poster configuration module 320, propagative poster
generator 330, propagative poster tracker 340, and propagative
poster maintenance module 350) can be control logic implemented in
software, firmware, hardware or any combination thereof. The
operation of the on-line propagative poster system 300 and in
particular propagative poster manager 310 is described further with
respect to the example data structures in FIGS. 5 to 8 and the
operational flowchart of FIGS. 9A, 9B, 10A, 10B, and 11.
[0085] C. Operation
[0086] As shown in FIG. 9A, a first configuration session 900
begins when a remote user 1 visits host site 302 (step 912). User 1
enters the URL of host site 302 (in particular, the URL of Web
server 316) into browser 372. User 1 is then linked to Web server
316. Host site 302 then through Web server 316 presents different
web pages to browser 372 for reviewing by user 1. These web pages
can include any type of host site content. In step 914, 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.
[0087] In step 916, user 1 requests to make a propagative poster.
Host site 302 receives the request and sends one or more
configuration screens (step 918). In particular, propagation poster
configuration module 320 sends one or more configuration screens
210-230 in a configuration session as described above with respect
to step 110 and FIGS. 2A to 2C. User 1 inputs desired configuration
selections into the one or more screens. Browser 372 then sends the
user's configuration selections to host site 302 (step 920).
[0088] Propagative poster manager 310 then generates and sends a
bitmap or text of a configured propagative poster to browser 372
(step 922). Browser 372 then sends a confirmation input by user 1
indicating that the configured propagative poster is acceptable
(step 924).
[0089] Propagative poster generator 330 then generates a
propagative poster identifier that includes a unique poster number
(step 926). Alternatively, in one embodiment to enhance security
and promote tracking propagative poster 330 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.
[0090] The hash function generator as shown in FIG. 5 receives a
respective private key 510, and unique poster number 520. The hash
function generator then outputs a secure fingerprint 540.
Propagative poster (PP) generator 330 then concatenates the secure
fingerprint 540 and the URL of the first or originating remote user
to generate a secure, trackable propagative poster ID (PPID) 560
(step 928).
[0091] PP generator 330 then generates a non-executable HTML code
segment 410 that includes secure, trackable PPID 560 and a link
(URL) to host site 302 (step 930). PP generator 330 further
generates executable code. PP generator 330 then generates and
stores a PP record 600 in storage device 312 (step 934).
[0092] FIG. 6 shows an example propagative poster record 600 stored
in storage device 312. Propagative poster record 600 includes a
propagative poster ID 560, bitmap 620, non-executable code segment
630, executable code 640, search parameter 650, active/inactive
flag 660, and originator profile data 670. Bitmap 620 is an image
of the propagative poster configured by user. Non-executable code
segment 630 represents the web code segment (e.g, HTML segment 410)
generated in step 930.
[0093] Executable code 640 is executable code that enables host
site 302 to generate a propagative poster configured in accordance
with the selections of the user based on data in database 314 of
host site 302. For example, executable code can include, but is not
limited to, Structured Query Language (SQL) or other language that
enables a search of database 314 to be performed. Search parameter
650 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 parameter 650 as shown in
FIG. 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 code 640 can be executed by host site 302 to search
database 314 based on search parameter 650 to generate and refresh
propagative poster content.
[0094] 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 parameter 650 may not be
used for certain types of posters that do not require a search of
host site data.
[0095] Active/inactive flag 660 is set by propagative poster
maintenance module 350 depending upon how frequently a particular
propagative poster is accessed. For example, if propagative poster
maintenance module 350 determines that no hits have been made to
the propagative poster, then propagative maintenance module 350
sets flag 660, to an inactive value. When a hit is made to the
propagative poster, propagative maintenance module 350 initiates
immediate generation and then sets the flag to active. Propagative
poster manager 310 further stores original profile data 670.
Original profile data 670 can include profile information entered
by the user creating the poster during configuration (or a prior
registration session).
[0096] Propagative poster manager 310 then sends the non-executable
HTML code segment 630 to browser 372 at client 370 (step 936). User
1 through browser 372 then inserts non-executable HTML code segment
into a Web page (step 938). As described with respect to step 150,
the non-executable HTML code segment can be inserted manually
(e.g., cut and pasted) by a user or automatically by host site
302.
D. Further Propagation
[0097] The distribution of propagative posters is further described
with respect to FIGS. 10A and 10B. Remote user n (e.g. user 2)
visits user 1 web page (step 1002). Remote server then interprets
HTML code segment 410 (step 1004). Browser 382 is then linked to
host site 302 and Web server 316. Propagative poster tracker 340
parses the originating URL (User 1's URL), and secure trackable
PPID 560 (step 1006).
[0098] PP tracker 340 further tracks the referring URL of server
376. In step 1008, PP tracker 340 checks whether a valid poster ID
is obtained. For example, PP tracker 340 decrypts fingerprint 540
with a copy of the private key previously stored in host site 302
and compares it with the unique poster number or ID 520 to
determined if the poster ID that is valid. If a valid poster ID has
not been sent, then PP tracker 340 ignores the remote user n (step
1010). Otherwise, when a valid poster ID is verified, PP tracker
340 determines whether the URL of remote user n equals the
originator URL of user 1 (step 1012). If the URL of remote user n
is not equal then PP tracker 340 recognizes that a different user
is accessing the poster and stores the URL of remote user n (step
1014) and proceeds to step 1016. Otherwise, propagative poster
tracker 340 proceeds directly to step 1016.
[0099] In step 1016, propagative poster tracker 340 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 in FIG. 10A, after a valid
poster ID has been verified in step 1008, and the URL of the
accessing remote server 376 has been evaluated in step 1012, and
propagative history updated in step 1016, then propagative poster
manager 310 serves the propagative poster bitmap 620 in real-time
to remote user n (step 1018). Browser 382 then displays to user n
the propagative poster in an overlay window (step 1020). At this
time, remote user n is now viewing PP bitmap 620 on host site
302.
[0100] In step 1022, remote user n selects an input portion or
"make propagation poster" area within PP bitmap 620. Browser 382
forwards this selection to host site 302. Propagative poster
manager 310 receives the "make propagation poster" selection
including a mouse click represented by a set of screen space
coordinates (step 1024). Propagative poster manager 310 converts
the selection screen space coordinates to x-y coordinates in bitmap
space of the poster (step 1026). Propagative poster manager 310
then evaluates the x-y coordinates in bitmap space to determine if
the "make propagation poster" was selected (step 1028). 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, then PP manager 310 ignores the input
or performs other processing (step 1030). If yes, then control is
transferred to PP configuration module 320 to initiate a
configuration session (step 1032).
[0101] E. Propagative Poster Maintenance
[0102] Propagative maintenance module 350 carries out a routine for
propagative poster maintenance 1100 as shown in FIG. 11. PP
maintenance module 350 generates reports based on poster records
and tracking data (step 1110). 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 module 350 also sets poster records to active or
inactive state depending on use (step 1120). In particular, PP
maintenance module 350 sets flag 660 in each PP record 600 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.
[0103] Next, PP maintenance module 350 refreshes propagative
posters (step 1130). For example, PP maintenance module 350
searches and identifies each active PP record 600 (with an active
flag 660). For each active PP record 600, PP maintenance module
executes the executable code 640 based on search parameters 650.
Executable code 640 then generates an updated propagated poster
image based on current content in database 314. An updated image of
the propagated poster is then stored on storage device 312. In
other words, it is rewritten over the existing bit map 620.
Originator profile data 670 can also be updated based on tracked
URL history and/or click-through data.
[0104] F. Example Propagative Poster Record and Tracking
Information
[0105] FIG. 8 shows an example propagative poster record data
structure 800 according to one example implementation of the
present invention. Propagative poster record data structure
includes a poster object 810, poster events object 820, poster
event object type 830, poster owner object 840, poster type object
850, poster click action 860, poster click definition object 870,
poster click action URL object 880, poster parameters 890, and
poster parameters type object 892. Each of the objects 810 through
892 are generated and tracked for a respective propagative poster.
The different fields and function of each field for each of the
objects 810 through 892 is described further in corresponding
tables below.
[0106] Poster object 810 includes the following fields and content
as set forth in Table 1 below. TABLE-US-00001 TABLE 1 Poster Object
810 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)
[0107] Poster events object 820 includes the following fields and
content shown in Table 2 below. TABLE-US-00002 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
[0108] Poster event type object 830 has fields and content as shown
below in Table 3. TABLE-US-00003 TABLE 3 Poster Event 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)
[0109] Poster owner object 840 includes the following fields and
content as set forth in Table 4. TABLE-US-00004 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
[0110] Poster type object 850 has the following fields and content
provided in Table 5. TABLE-US-00005 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)
[0111] Poster click action object 860 includes the following fields
and content as shown in Table 6. TABLE-US-00006 TABLE 6 Poster
Click 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
[0112] Poster click define object 870 has the following fields and
content shown in Table 7. Note points (x1,y1) and (x2,y2) 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-US-00007 TABLE 7 Poster Click Define Object 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)
[0113] Poster click action URL 880 includes the following fields
and content as shown in Table 8. TABLE-US-00008 TABLE 8 Poster
Click Action URL Object 880 Field Content PosterClickActionURLID
number identifying type of poster click action URL ActionURL
URL
[0114] Poster parameters object 890 includes the following fields
and contents and shown in Table 9. TABLE-US-00009 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
[0115] Poster parameters type object 892 includes the following
fields and content as shown in Table 10. TABLE-US-00010 TABLE 10
Poster Parameters Type Object 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 manager
310.
[0116] G. Detailed Viewing of Information Concerning Data
Summarized on a Propagative Poster
[0117] 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.
[0118] 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 manager 310 converts the selection
screen space coordinates to x-y coordinates in bitmap space of the
poster. Propagative poster manager 310 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
[0119] 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.
[0120] 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. Internet 1200 consists of interconnected
computers which supports communication between many different types
of users including businesses, universities, individuals,
government, and financial institutions. Internet 1200 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.
[0121] Communication over a communication network such as, Internet
1200, is carried out through different layers of communication.
FIG. 12B shows a simplified four-layered communication model
supporting Web commerce including an application layer 1208,
transport layer 1210, Internet layer 1220, physical layer 1230. 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 layer
1208 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 service 1201, IRC
chat 1202, Web service 1203, and SMTP (Simple Mail Transfer
Protocol) electronic mail service 1206. Web service 1203 allows
access to HTTP documents 1204, and FTP and Gopher files 1205. A
Secure Socket Layer (SSL) is an optional protocol used to encrypt
communications between a Web browser and Web server.
[0122] 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
[0123] An example of a computer system 1240 is shown in FIG. 12C.
The computer system 1240 represents any single or multi-processor
computer. Single-threaded and multi-threaded computers can be used.
Unified or distributed memory systems can be used.
[0124] Computer system 1240 includes one or more processors, such
as processor 1244. One or more processors 1244 can execute software
implementing routine 100 as described above. Each processor 1244 is
connected to a communication infrastructure 1242 (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.
[0125] Computer system 1240 also includes a main memory 1248,
preferably random access memory (RAM), and can also include a
secondary memory 1250. The secondary memory 1250 can include, for
example, a hard disk drive 1252 and/or a removable storage drive
1254, representing a floppy disk drive, a magnetic tape drive, an
optical disk drive, etc. The removable storage drive 1254 reads
from and/or writes to a removable storage unit 1258 in a well known
manner. Removable storage unit 1258 represents a floppy disk,
magnetic tape, optical disk, etc., which is read by and written to
by removable storage drive 1254. As will be appreciated, the
removable storage unit 1258 includes a computer usable storage
medium having stored therein computer software and/or data.
[0126] In alternative embodiments, secondary memory 1260 may
include other similar means for allowing computer programs or other
instructions to be loaded into computer system 1240. Such means can
include, for example, a removable storage unit 1262 and an
interface 1260. 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 other removable storage units 1262 and interfaces 1260
which allow software and data to be transferred from the removable
storage unit 1262 to computer system 1240.
[0127] Computer system 1240 can also include a communications
interface 1264. Communications interface 1264 allows software and
data to be transferred between computer system 1240 and external
devices via communications path 1266. Examples of communications
interface 1264 can include a modem, a network interface (such as
Ethernet card), a communications port, etc. Software and data
transferred via communications interface 1264 are in the form of
signals which can be electronic, electromagnetic, optical or other
signals capable of being received by communications interface 1264,
via communications path 1266. Note that communications interface
1264 provides a means by which computer system 1240 can interface
to a network such as the Internet.
[0128] The present invention can be implemented using software
running (that is, executing) in an environment similar to that
described above with respect to FIG. 12A. In this document, the
term "computer program product" is used to generally refer to
removable storage unit 1254, a hard disk installed in hard disk
drive 1252, or a carrier wave carrying software over a
communication path 1266 (wireless link or cable) to communication
interface 1264. 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 to computer system
1240.
[0129] Computer programs (also called computer control logic) are
stored in main memory 1248 and/or secondary memory 1250. Computer
programs can also be received via communications interface 1264.
Such computer programs, when executed, enable the computer system
1240 to perform the features of the present invention as discussed
herein. In particular, the computer programs, when executed, enable
the processor 1244 to perform the features of the present
invention. Accordingly, such computer programs represent
controllers of the computer system 1240.
[0130] 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
into computer system 1240 using removable storage drive 1254, hard
drive 1250, or interface 1260. Alternatively, the computer program
product may be downloaded to computer system 1240 over
communications path 1266. The control logic (software), when
executed by the one or more processors 1244, causes the
processor(s) 1244 to perform the functions of the invention as
described herein.
[0131] 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
[0132] 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.
* * * * *