U.S. patent application number 12/826924 was filed with the patent office on 2012-01-05 for dynamic internet advertising system.
This patent application is currently assigned to INTERNATIONAL BUSINESS MACHINES CORPORATION. Invention is credited to Shang Q. Guo, Jeffrey O. Kephart, Jonathan Lenchner.
Application Number | 20120004976 12/826924 |
Document ID | / |
Family ID | 45400387 |
Filed Date | 2012-01-05 |
United States Patent
Application |
20120004976 |
Kind Code |
A1 |
Guo; Shang Q. ; et
al. |
January 5, 2012 |
Dynamic Internet Advertising System
Abstract
Methods and apparatus are provided for the dynamic placement,
management and monitoring of Internet advertising. A provider of
Internet content distributes the Internet content by embedding an
advertisement placeholder in the Internet content; and provides the
Internet content to an aggregator web site. The aggregator web site
presents the Internet content to at least one end user with at
least one advertisement in the advertisement placeholder. The
advertisement placeholder is processed by a third party agent to
automatically share revenue from the at least one advertisement
with the provider of the Internet content and a provider of the
aggregator web site. The advertisement placeholder can optionally
be embedded in the Internet content using one or more templates.
The third party agent also evaluates the content and at least one
policy of multiple parties to identify at least one advertisement
to present in the advertisement placeholder. The advertisement
placeholder embodies a three party agreement between the provider
of the Internet content, the provider of the aggregator web site
and at least one advertiser.
Inventors: |
Guo; Shang Q.; (Cortland
Manor, NY) ; Kephart; Jeffrey O.; (Cortland Manor,
NY) ; Lenchner; Jonathan; (North Salem, NY) |
Assignee: |
INTERNATIONAL BUSINESS MACHINES
CORPORATION
Armonk
NY
|
Family ID: |
45400387 |
Appl. No.: |
12/826924 |
Filed: |
June 30, 2010 |
Current U.S.
Class: |
705/14.41 ;
705/14.49; 705/14.7; 709/202 |
Current CPC
Class: |
G06Q 30/0274 20130101;
G06Q 30/0242 20130101; G06Q 30/02 20130101; G06Q 30/0251 20130101;
G06Q 30/0277 20130101 |
Class at
Publication: |
705/14.41 ;
709/202; 705/14.7; 705/14.49 |
International
Class: |
G06Q 30/00 20060101
G06Q030/00; G06F 15/16 20060101 G06F015/16 |
Claims
1. A method performed by a provider of Internet content for
distributing the Internet content, comprising: embedding an
advertisement placeholder in the Internet content; and providing
the Internet content to an aggregator web site, wherein the
aggregator web site presents the Internet content to at least one
end user with at least one advertisement in the advertisement
placeholder, wherein the advertisement placeholder is processed by
a third party agent to automatically share revenue from the at
least one advertisement with the provider of the Internet content
and a provider of the aggregator web site.
2. The method of claim 1, wherein the advertisement placeholder is
pursuant to a three party agreement between the provider of the
Internet content, the provider of the aggregator web site and at
least one advertiser.
3. The method of claim 1, further comprising the step of
redistributing the Internet content to a third party web site, and
wherein the revenue from the at least one advertisement is
automatically shared by the provider of the Internet content, the
provider of the aggregator web site and a provider of third party
web site.
4. The method of claim 1, wherein the advertisement placeholder
further comprises at least one policy.
5. The method of claim 4, wherein the at least one policy is a
policy of one or more of the provider of the Internet content, the
provider of the Internet aggregator web site and at least one
advertiser.
6. The method of claim 5, further comprising the step of matching
policies of at least two of the parties.
7. The method of claim 4, wherein the at least one policy is
established for a given advertisement placeholder in the Internet
content.
8. The method of claim 4, wherein the at least one policy is a
default policy established by one or more of the provider of the
Internet content, the provider of the Internet aggregator web site
and at least one advertiser.
9. The method of claim 1, further comprising the step of
dynamically matching the Internet content to one or more targeting
criteria of at least one advertiser.
10. The method of claim 1, further comprising the step of
monitoring a performance of the at least one advertisement.
11. The method of claim 8, further comprising the step of selecting
the at least one advertisement based on a prior performance
evaluation.
12. The method of claim 1, wherein the advertisement placeholder is
embedded in the Internet content using one or more templates.
13. An article of manufacture for distributing Internet content,
comprising a machine readable storage medium containing one or more
programs which when executed implement the steps of: embedding an
advertisement placeholder in the Internet content; and providing
the Internet content to an aggregator web site, wherein the
aggregator web site presents the Internet content to at least one
end user with at least one advertisement in the advertisement
placeholder, wherein the advertisement placeholder is processed by
a third party agent to automatically share revenue from the at
least one advertisement with a provider of the Internet content and
a provider of the aggregator web site.
14. A method performed by a third party agent for distributing
Internet content, comprising: receiving a notification that the
Internet content has been posted on an aggregator web site, wherein
the Internet content has one or more embedded advertisement
placeholders; evaluating at least one policy of one or more of a
provider of the Internet content, a provider of the Internet
aggregator web site and at least one advertiser to identify at
least one advertisement to present in the advertisement
placeholder; and automatically sharing revenue from the at least
one advertisement among the provider of the Internet content and
the provider of the aggregator web site.
15. The method of claim 14, wherein the advertisement placeholder
is pursuant to a three party agreement between the provider of the
Internet content, the provider of the aggregator web site and at
least one advertiser.
16. The method of claim 14, further comprising the step of
redistributing the Internet content to a third party web site, and
wherein the revenue from the at least one advertisement is
automatically shared by the provider of the Internet content, the
provider of the aggregator web site and a provider of third party
web site.
17. The method of claim 14, wherein the advertisement placeholder
further comprises at least one policy.
18. The method of claim 17, wherein the at least one policy is a
policy of one or more of the provider of the Internet content, the
provider of the Internet aggregator web site and at least one
advertiser.
19. The method of claim 18, further comprising the step of matching
policies of at least two of the parties.
20. The method of claim 17, wherein the at least one policy is
established for a given advertisement placeholder in the Internet
content.
21. The method of claim 17, wherein the at least one policy is a
default policy established by one or more of the provider of the
Internet content, the provider of the Internet aggregator web site
and at least one advertiser.
22. The method of claim 14, further comprising the step of
dynamically matching the Internet content to one or more targeting
criteria of at least one advertiser.
23. The method of claim 14, further comprising the step of
monitoring a performance of the at least one advertisement.
24. The method of claim 14, wherein the advertisement placeholder
is embedded in the Internet content using one or more
templates.
25. An article of manufacture for distributing Internet content,
comprising a machine readable storage medium containing one or more
programs which when executed implement the steps of: receiving a
notification that the Internet content has been posted on an
aggregator web site, wherein the Internet content has one or more
embedded advertisement placeholders; evaluating at least one policy
of one or more of a provider of the Internet content, a provider of
the Internet aggregator web site and at least one advertiser to
identify at least one advertisement to present in the advertisement
placeholder; and automatically sharing revenue from the at least
one advertisement among the provider of the Internet content and
the provider of the aggregator web site.
Description
FIELD OF THE INVENTION
[0001] The present invention relates generally to electronic
advertising systems and, more particularly, to methods and
apparatus for dynamic placement, management and monitoring of
web-based advertising.
BACKGROUND OF THE INVENTION
[0002] Web logs, typically referred to as "blogs," are increasingly
popular on the Internet. Blogs are often used to disseminate
information and to form public opinion, for example, by news
services and politicians. Blogs are often maintained by an
individual with regular entries, such as commentary and other
material, on a particular topic. Blog entries are typically
displayed in reverse-chronological order. Readers of the blog can
frequently provide comments in an interactive manner.
[0003] Readers have an often overwhelming array of sources from
which to get desired information. A number of techniques have been
proposed or suggested to allow online users to more effectively
identify information of interest. For example, there are a number
of web sites available that aggregate certain types of information
from multiple online sources. For example, a news aggregator
aggregates news from multiple news sources. Increasingly, such
aggregator web sites incorporate content from one or more
blogs.
[0004] Despite the growing popularity of blogs, bloggers have
typically been unable to readily monetize the web traffic they
generate. In addition, it is difficult for advertisers to determine
where to best place advertisements, since content is diffusely
spread over the Internet. A need therefore exists for methods and
apparatus for dynamic placement, management and monitoring of blog
advertising. A further need exists for methods and apparatus for
dynamic placement, management and monitoring of blog advertising
that generate additional revenue for bloggers and provide improved
targeting for advertisers.
SUMMARY OF THE INVENTION
[0005] Generally, methods and apparatus are provided for the
dynamic placement, management and monitoring of Internet
advertising. According to one aspect of the invention, a provider
of Internet content distributes the Internet content by embedding
an advertisement placeholder in the Internet content; and providing
the Internet content to an aggregator web site, wherein the
aggregator web site presents the Internet content to at least one
end user with at least one advertisement in the advertisement
placeholder, wherein the advertisement placeholder is processed by
a third party agent to automatically share revenue from the at
least one advertisement with the provider of the Internet content
and a provider of the aggregator web site. The advertisement
placeholder can optionally be embedded in the Internet content
using one or more templates.
[0006] According to one aspect of the invention, the third party
agent processes the Internet content by receiving a notification
that the Internet content has been posted on an aggregator web
site, wherein the Internet content has one or more embedded
advertisement placeholders; evaluating at least one policy of one
or more of a provider of the Internet content, a provider of the
Internet aggregator web site and at least one advertiser to
identify at least one advertisement to present in the advertisement
placeholder; and automatically sharing revenue from the at least
one advertisement among the provider of the Internet content and
the provider of the aggregator web site.
[0007] The advertisement placeholder embodies a three party
agreement between the provider of the Internet content, the
provider of the aggregator web site and at least one advertiser.
The advertisement placeholder also facilitates the redistribution
of the Internet content to a third party web site. Thus, revenue
from the advertisement in the redistributed content is
automatically shared by the provider of the Internet content, the
provider of the aggregator web site and a provider of third party
web site.
[0008] The advertisement placeholder has at least one associated
policy. The policy can be from the provider of the Internet
content, the provider of the Internet aggregator web site or an
advertiser. Aspects of the invention match the policies of at least
two involved parties. The policies can be established for a given
advertisement placeholder in the Internet content or can be based
on default policies established by the provider of the Internet
content, the provider of the Internet aggregator web site and an
advertiser. In addition, the Internet content is dynamically
matches to targeting criteria of at least one advertiser.
[0009] Additional aspects of the invention optionally monitor a
performance of the at least one advertisement. For example, an
advertisement can be selected based on a prior performance
evaluation.
[0010] A more complete understanding of the present invention, as
well as further features and advantages of the present invention,
will be obtained by reference to the following detailed description
and drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
[0011] FIG. 1 illustrates an exemplary dynamic blog advertising
system incorporating features of the present invention;
[0012] FIG. 2 illustrates an exemplary container template having a
plurality of AdHolders;
[0013] FIG. 3 illustrates an exemplary container template for the
redistribution of blog content having a plurality of AdHolders;
[0014] FIG. 4 illustrates a number of alternative exemplary
templates, each containing one or more AdHolders;
[0015] FIG. 5 illustrates an exemplary process for optimizing the
placement of blog advertisements;
[0016] FIG. 6 illustrates a dynamic blog advertising process
incorporating features of the present invention; and
[0017] FIG. 7 depicts a computer system that may be useful in
implementing one or more aspects and/or elements of the present
invention.
DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS
[0018] The present invention provides methods and apparatus for
dynamic placement, management and monitoring of blog advertising.
Among other benefits, the present invention generates additional
revenue for bloggers and provides improved targeting for
advertisers. FIG. 1 illustrates an exemplary dynamic blog
advertising system 100. As shown in FIG. 1, the disclosed dynamic
blog advertising system 100 comprises one or more AdHolders 110
embedded in a blog page 105 and an AdHolder agent 120. Generally,
an exemplary AdHolder 110 is a template-based advertisement
placeholder (e.g., an "advertising spot") in one or more blog pages
105. The AdHolder agent 120 provides a server-side management
system to inject advertisements into AdHolders 110 embedded in the
blog pages 105 via a dynamic agent-based process whereby the
advertisers are dynamically matched with the content of a given
blog. The AdHolder agent 120 enables and optimizes the AdHolder
110, and also monitors advertising traffic and responses.
[0019] As used herein, a blog comprises any Internet content
comprised of one or more entries by an individual or group of
individuals. For example, a blog can include a serialized log of
comments posted by an individual on a web site, such as critiques
or products in a certain category (i.e., antique cars).
[0020] As shown in FIG. 1 and as discussed further below in
conjunction with FIG. 6, when a blog page 105 embedded with one or
more AdHolders 110 is uploaded to the Internet by a blogger 102,
the AdHolder Agent 120 will be notified immediately via an RSS
(Really Simple Syndication) feed. As discussed further below in
conjunction with FIG. 2, the blogger 102 optionally uses a template
130 to inject his or her content and uploads the filled-in template
to the site. By using a template 130 from the AdHolder Agent 120, a
blogger 102 is able to embed AdHolders 110 in his/her blog pages
105 to receive dynamic advertising feeds 160 that will contribute
revenue to the blogger 105.
[0021] When an embedded blog page 105 is uploaded, the AdHolder
Agent 120 is notified and performs an initial scan of the blog page
105 employing a matching process, discussed further below, in order
to recommend the blog page 105 to one or more appropriate
advertisers 170. Following an authorization from the advertiser(s)
170, the AdHolder Agent 120 enables advertising feeds 160 to the
authorized blog pages 105.
[0022] According to a further aspect of the invention, the AdHolder
Agent 120 optionally adjusts and updates the advertising 160 based
on advertisers' strategies, placement policies and "hit" analysis.
This work is typically done after the blogger 102 publishes his or
her content. Thus, advantageously, these "post-processing" actions
do not require any work from the blogger 102. According to yet
another aspect of the invention, as discussed further below in
conjunction with FIGS. 3 and 6, the AdHolder Agent 120 also works
on redistributed blog pages 150 that are being redistributed by
third party websites. The redistributed blog pages 150 incorporate
a blog page 105 or portions thereof. The blog page 105 and
redistributed blog pages 150 can be viewed by an audience 140.
[0023] If a reader clicks on an advertisement, it will go through
the AdHolder Agent 120 to get verified and redirected to the
advertiser's site.
[0024] Three Party Negotiation of Advertising Terms/Conditions
[0025] According to one aspect of the invention, the disclosed
AdHolders 110 provide a syndication model whereby advertising
revenue and syndication terms can be negotiated virtually among
three parties via the model. In particular, the present invention
enables a model whereby bloggers, advertisers and Internet
aggregators (i.e., blog site owners) can cooperate to generate
revenue for bloggers and Internet aggregators and provide improved
targeting for advertisers.
[0026] As discussed herein, the negotiations among the three
parties address, for example, acceptable pricing and content
limitations. The three parties declare their policies, for example,
in an XML format. The AdHolder agent 120 will enforce and reconcile
the stated policies of the three parties, for example, using rules
and/or filters. For example, suppose a web site owner declares that
no cigarette advertisements should appear on a given web site. The
AdHolder agent 120 will scan any potential ads for mention of words
such as "cigarette," and "smoking," and prevent such ads from
appearing on the given web site. If the blogger declares that ads
each initially go through a two day screening to see if they
generate a sufficient click-through rate, then the AdHolder agent
120 injects ads satisfying the policy constraints of the site owner
and blogger on a two day rotation schedule.
[0027] The framework provided by the present invention allows an
Internet aggregator or blog site owner to declare the types of
content and advertising that are permissible on a given web site.
For example, a given Internet aggregator may not want adult content
or advertising and not want cigarette advertisements. On the other
hand, a blog site may be very narrowly focused-just permitting
blogs about animals and advertising about animals. In addition,
Internet aggregators can declare minimum and/or maximum duration
for any advertising agreement, one time placement fees, if
applicable, and revenue sharing arrangements with bloggers.
Internet aggregators can also declare payment terms and negotiate
all payment terms exclusively through a blogger (e.g., Net 7 days
through PayPal).
[0028] The framework provided by the present invention allows a
blogger 102 to declare the types of advertising that are
permissible or unacceptable in the blog of the blogger 102. For
example, the blogger 102 can specify words/word families that may
or may not be included in advertisements. In one variation, the
blogger 102 can specify that all ads must be pre-approved by
blogger 102, in which case potential ads can be placed in a queue
on an administrative page for the blogger 102 to approve. In
addition, bloggers 102 can declare minimum and/or maximum duration
for any advertising agreement, one time placement fees, if
applicable, and revenue sharing arrangements with Internet
aggregators, in a similar manner to the way the Internet
aggregators declare the same. In further variations, the blogger
102 can specify one or more of a rotation plan for ads, minimum
and/or maximum duration for given ads, a trial period duration
during which competing ads are rotated to see which ads generate
the most revenue, periods when greatest revenue-generating ads are
run. Trial periods can be followed by run periods over a cycle, to
keep top revenue-generating information fresh. The bloggers 102 can
also declare payment terms separately for blog site owner and
advertisers, and the fees from advertisers that are due to the blog
site owner paid through blogger.
[0029] The framework provided by the present invention allows an
advertiser 170 to optionally declare the types of blog sites that
they are interested in appearing on (again supplying matching
words/phrases). Advertisers 170 can also provide an ad stream that
is matched based on content similarity with the blogger's content
(obeying declared constraints by all parties). In addition,
advertisers 170 can declare minimum and/or maximum duration for any
advertising, placement fees (such as fee-per-click-through), if
applicable, and payment terms. The advertisers 170 can specify
times of day, days of week, day of year (i.e., 10 days before
Christmas) that ads should appear. Declarations can be made on a
per-ad and/or per-campaign basis.
[0030] FIG. 2 illustrates an exemplary container template 200
having a plurality of AdHolders 240. As shown in FIG. 2, the
exemplary container template 200 comprises a blogging page 210
containing a controlled area 220 for the blogger, which contains
the blogger's content 230. Generally, each AdHolder 240 is a
placeholder for an advertisement. The AdHolder 240 can be
implemented, for example, as code running on the server of the blog
site owner or the AdHolder Agent (for example as a Java Server Page
or JSP). The AdHolder will pass a pointer to the web page in which
it is resident so that the AdHolder Agent can scan the page's
content, as well as ids of the blog site owner and blogger so that
the AdHolder Agent can reconcile and implement the policies of both
parties in conjunction with policies of potential advertisers. The
advertisements that get injected into the AdHolder slots can be
coded, for example, as banner ads, buttons or hyperlinks, possibly
with surrounding text and/or images.
[0031] The exemplary AdHolders 240 contain a Site identifier and an
AdHolder identifier. The "Site ID" is used to identify the site
where the content resides while the "AdHolder ID" is used to
identify the advertisement to be placed. The Site ID and the
AdHolder ID provides an indication to the AdHolder Agent of the
advertisement and the site that a given click-through corresponds
to, and the combination of the Site id and AdHolder id can be used
to link to a specific advertising feed when enabling that AdHolder
110. In addition, as discussed below, with the Site ID and the
AdHolder ID in the blog page, the AdHolder Agent 120 can
adjust/optimize advertisements in real-time by re-linking the
AdHolder 110 to higher click-through advertisements to maximize
advertising effectiveness. The Container template 200 also includes
a link allowing a third party to download the entire html
associated with the blog page, which contains the blogger's content
and AdHolders embedded for re-distribution.
[0032] FIG. 3 illustrates an exemplary container template 300 for
the redistribution of blog content having a plurality of AdHolders
340. For example, when a third party wants to include a particular
blog (or portion thereof) on a web site of the third party, the
third party can download the html of the blog which includes all
content and AdHolders and fit into the page. In one exemplary
embodiment, the original blog page 105 includes a link that the
third party can follow to obtain the blog content (which includes
the AdHolders) for the redistributed blog page 140. When the blog
is included on the third party web site, the siteID in the html is
changed and the AdHolders are re-linked. As shown in FIG. 3, a web
page 310 of the third party contains an area 320 for the html
associated with the redistributed blog. Thus, the web page 310 of
the third party will include the content 330 from the blog, as well
as the original AdHolders 340. The AdHolders 340 go with the blog
page 105 and stay effective on third party websites.
[0033] Thus, the disclosed AdHolder Agent 120 provides bloggers and
advertisers the ability to track how the blog pages are
re-distributed by third parties. In this manner, bloggers and
advertisers can gain additional revenue from blog re-distribution
through AdHolders 340 in the container template 200 of the blog
advertising system 100. Blog pages 105 are embedded with
advertising spaces along with a mechanism that:
[0034] 1) enables bloggers 102 to offer advertisers 107 advertising
spaces in their own controlled area of blog pages 105;
[0035] 2) enables advertisers 170 to place and replace ads (i.e.,
as a market segment is better understood, or simply for variety and
to keep the advertisements fresh) on blog pages 105;
[0036] 3) enables advertising on re-distributed blog pages 150 with
revenue accruing to the original content provider (i.e., blogger
102); and
[0037] 4) enables advertising on blog archives.
[0038] FIG. 4 illustrates a number of alternative exemplary
templates 410, 420, 430, 440, each containing one or more AdHolders
240. Generally, an author can customize the layout by moving
AdHolders 240 to other parts of the blogger's content-controlled
area.
[0039] FIG. 5 illustrates an exemplary process 500 for optimizing
the placement of advertisements. In one exemplary embodiment, the
AdHolder Agent 120 selects a few test advertising feeds based on
the content and the tags provided by the blogger 102 and the
targeted constraints of the advertisers 170, and then injects the
different feeds into different sites. For example, consider two
third-party distributed sites, A and B, both having similar kinds
of visitors. The AdHolder agent 120 can try different ads in the
Adholders in both sites. If the ads presented on site A provide a
better click-through rate than the ads presented on site B, then
the AdHolder agent 120 can select the same ads used in A to replace
B's ads.
[0040] As shown in FIG. 5, an audience 510 observes published
content 520 and an audience 570 observes redistributed content 530.
The AdHolder Agent 550 monitors the click-through rate of the
audiences 510, 570 from the different sites 560 for a certain time
period, and then employs the optimization process 500 to
adjust/optimize the selections by replacing the advertising feeds
having a lower click-through rate with feeds having a higher
click-through rate (e.g., re-linking the ad holders in the content
520, 530).
[0041] In this manner, the ads presented in accordance with the
AdHolders 110 change over time based, for example, on the
click-through rate in order to maximize the revenue.
[0042] FIG. 6 illustrates a dynamic blog advertising process 600
incorporating features of the present invention. As shown in FIG.
6, a blogger 102 initially uploads content to a blog site 605
during step 610. For example, the blogger can publish his or her
content on a blog site 605 using a template 200 (FIG. 2) that
contains one or more AdHolders 110. Initially, the AdHolder(s) 110
are not enabled.
[0043] Thereafter, during step 620, the AdHolder agent 120 is
notified, for example, by an RSS feed, that the new content is in
the site 605. As shown in FIG. 6, the AdHolder agent 120 obtains
the html or other text content of the blogger controlled area 602,
and scans the content during step 625 and executes a match-making
process during step 630 to find appropriate ads. The scan can
optionally be performed each time a blog is updated. In one
exemplary embodiment, the matching process 630 comprises a keyword
matching technique, whereby the scanned blog content is compared
against targeting criteria of potential advertising campaigns. In
addition, characteristics of the web site can be considered by the
matching process. For example, if most visitors to a given web site
are professional women, this information can be applied in the
matching process. Thereafter, the AdHolder agent 120 configures and
maps the AdHolders 110 embedded in blog pages during step 635, thus
enabling the AdHolders 110.
[0044] As previously indicated, upon redistribution, the AdHolders
110 go with the blog page 105 and stay effective on third party
websites. The dynamic blog advertising process 600 can also
incorporate a billing management function, such that the
advertisement revenues can be shared by the blogger 102 and blog
site 105 and optionally re-distributors. In this manner, ad revenue
can be shared with the blogger 102 and the provider of the blog
site 605 in a mutually advantageous arrangement (in contrast to the
current situation where advertising is the responsibility of the
blog site provider and all revenue accrues to the site
provider).
[0045] Exemplary System and Article of Manufacture Details
[0046] As will be appreciated by one skilled in the art, aspects of
the present invention may be embodied as a system, method or
computer program product. Accordingly, aspects of the present
invention may take the form of an entirely hardware embodiment, an
entirely software embodiment (including firmware, resident
software, micro-code, etc.) or an embodiment combining software and
hardware aspects that may all generally be referred to herein as a
"circuit," "module" or "system." Furthermore, aspects of the
present invention may take the form of a computer program product
embodied in one or more computer readable medium(s) having computer
readable program code embodied thereon.
[0047] One or more embodiments of the invention, or elements
thereof, can be implemented in the form of an apparatus including a
memory and at least one processor that is coupled to the memory and
operative to perform exemplary method steps.
[0048] One or more embodiments can make use of software running on
a general purpose computer or workstation. FIG. 7 depicts a
computer system 700 that may be useful in implementing one or more
aspects and/or elements of the present invention. With reference to
FIG. 7, such an implementation might employ, for example, a
processor 702, a memory 704, and an input/output interface formed,
for example, by a display 706 and a keyboard 708. The term
"processor" as used herein is intended to include any processing
device, such as, for example, one that includes a CPU (central
processing unit) and/or other forms of processing circuitry.
Further, the term "processor" may refer to more than one individual
processor. The term "memory" is intended to include memory
associated with a processor or CPU, such as, for example, RAM
(random access memory), ROM (read only memory), a fixed memory
device (for example, hard drive), a removable memory device (for
example, diskette), a flash memory and the like. In addition, the
phrase "input/output interface" as used herein, is intended to
include, for example, one or more mechanisms for inputting data to
the processing unit (for example, mouse), and one or more
mechanisms for providing results associated with the processing
unit (for example, printer). The processor 702, memory 704, and
input/output interface such as display 706 and keyboard 708 can be
interconnected, for example, via bus 710 as part of a data
processing unit 712. Suitable interconnections, for example via bus
710, can also be provided to a network interface 714, such as a
network card, which can be provided to interface with a computer
network, and to a media interface 716, such as a diskette or CD-ROM
drive, which can be provided to interface with media 718.
[0049] Analog-to-digital converter(s) 720 may be provided to
receive analog input, such as analog video feed, and to digitize
same. Such converter(s) may be interconnected with system bus
710.
[0050] Accordingly, computer software including instructions or
code for performing the methodologies of the invention, as
described herein, may be stored in one or more of the associated
memory devices (for example, ROM, fixed or removable memory) and,
when ready to be utilized, loaded in part or in whole (for example,
into RAM) and implemented by a CPU. Such software could include,
but is not limited to, firmware, resident software, microcode, and
the like.
[0051] A data processing system suitable for storing and/or
executing program code will include at least one processor 702
coupled directly or indirectly to memory elements 704 through a
system bus 710. The memory elements can include local memory
employed during actual implementation of the program code, bulk
storage, and cache memories which provide temporary storage of at
least some program code in order to reduce the number of times code
must be retrieved from bulk storage during implementation.
[0052] Input/output or I/O devices (including but not limited to
keyboards 708, displays 706, pointing devices, and the like) can be
coupled to the system either directly (such as via bus 710) or
through intervening I/O controllers (omitted for clarity).
[0053] Network adapters such as network interface 714 may also be
coupled to the system to enable the data processing system to
become coupled to other data processing systems or remote printers
or storage devices through intervening private or public networks.
Modems, cable modern and Ethernet cards are just a few of the
currently available types of network adapters.
[0054] As used herein, including the claims, a "server" includes a
physical data processing system (for example, system 712 as shown
in FIG. 7) running a server program. It will be understood that
such a physical server may or may not include a display and
keyboard.
[0055] As noted, aspects of the present invention may take the form
of a computer program product embodied in one or more computer
readable medium(s) having computer readable program code embodied
thereon. Any combination of one or more computer readable medium(s)
may be utilized. The computer readable medium may be a computer
readable signal medium or a computer readable storage medium. A
computer readable storage medium may be, for example, but not
limited to, an electronic, magnetic, optical, electromagnetic,
infrared, or semiconductor system, apparatus, or device, or any
suitable combination of the foregoing. Media block 718 is a
non-limiting example. More specific examples (a non-exhaustive
list) of the computer readable storage medium would include the
following: an electrical connection having one or more wires, a
portable computer diskette, a hard disk, a random access memory
(RAM), a read-only memory (ROM), an erasable programmable read-only
memory (EPROM or Flash memory), an optical fiber, a portable
compact disc read-only memory (CD-ROM), an optical storage device,
a magnetic storage device, or any suitable combination of the
foregoing. In the context of this document, a computer readable
storage medium may be any tangible medium that can contain, or
store a program for use by or in connection with an instruction
execution system, apparatus, or device.
[0056] A computer readable signal medium may include a propagated
data signal with computer readable program code embodied therein,
for example, in baseband or as part of a carrier wave. Such a
propagated signal may take any of a variety of forms, including,
but not limited to, electro-magnetic, optical, or any suitable
combination thereof. A computer readable signal medium may be any
computer readable medium that is not a computer readable storage
medium and that can communicate, propagate, or transport a program
for use by or in connection with an instruction execution system,
apparatus, or device.
[0057] Program code embodied on a computer readable medium may be
transmitted using any appropriate medium, including but not limited
to wireless, wireline, optical fiber cable, RF, etc., or any
suitable combination of the foregoing.
[0058] Computer program code for carrying out operations for
aspects of the present invention may be written in any combination
of one or more programming languages, including an object oriented
programming language such as Java, Smalltalk, C++ or the like and
conventional procedural programming languages, such as the "C"
programming language or similar programming languages. The program
code may execute entirely on the user's computer, partly on the
user's computer, as a stand-alone software package, partly on the
user's computer and partly on a remote computer or entirely on the
remote computer or server. In the latter scenario, the remote
computer may be connected to the user's computer through any type
of network, including a local area network (LAN) or a wide area
network (WAN), or the connection may be made to an external
computer (for example, through the Internet using an Internet
Service Provider).
[0059] Aspects of the present invention are described below with
reference to flowchart illustrations and/or block diagrams of
methods, apparatus (systems) and computer program products
according to embodiments of the invention. It will be understood
that each block of the flowchart illustrations and/or block
diagrams, and combinations of blocks in the flowchart illustrations
and/or block diagrams, can be implemented by computer program
instructions. These computer program instructions may be provided
to a processor of a general purpose computer, special purpose
computer, or other programmable data processing apparatus to
produce a machine, such that the instructions, which execute via
the processor of the computer or other programmable data processing
apparatus, create means for implementing the functions/acts
specified in the flowchart and/or block diagram block or
blocks.
[0060] These computer program instructions may also be stored in a
computer readable medium that can direct a computer, other
programmable data processing apparatus, or other devices to
function in a particular manner, such that the instructions stored
in the computer readable medium produce an article of manufacture
including instructions which implement the function/act specified
in the flowchart and/or block diagram block or blocks.
[0061] The computer program instructions may also be loaded onto a
computer, other programmable data processing apparatus, or other
devices to cause a series of operational steps to be performed on
the computer, other programmable apparatus or other devices to
produce a computer implemented process such that the instructions
which execute on the computer or other programmable apparatus
provide processes for implementing the functions/acts specified in
the flowchart and/or block diagram block or blocks.
[0062] The flowchart and block diagrams in the FIGS. illustrate the
architecture, functionality, and operation of possible
implementations of systems, methods and computer program products
according to various embodiments of the present invention. In this
regard, each block in the flowchart or block diagrams may represent
a module, segment, or portion of code, which comprises one or more
executable instructions for implementing the specified logical
function(s). It should also be noted that, in some alternative
implementations, the functions noted in the block may occur out of
the order noted in the figures. For example, two blocks shown in
succession may, in fact, be executed substantially concurrently, or
the blocks may sometimes be executed in the reverse order,
depending upon the functionality involved. It will also be noted
that each block of the block diagrams and/or flowchart
illustration, and combinations of blocks in the block diagrams
and/or flowchart illustration, can be implemented by special
purpose hardware-based systems that perform the specified functions
or acts, or combinations of special purpose hardware and computer
instructions.
[0063] Method steps described herein may be tied, for example, to a
general purpose computer programmed to carry out such steps, or to
hardware for carrying out such steps, as described herein. Further,
method steps described herein, including, for example, obtaining
data streams and encoding the streams, may also be tied to physical
sensors, such as cameras or microphones, from whence the data
streams are obtained.
[0064] It should be noted that any of the methods described herein
can include an additional step of providing a system comprising
distinct software modules embodied on a computer readable storage
medium. The method steps can then be carried out using the distinct
software modules and/or sub-modules of the system, as described
above, executing on one or more hardware processors 702. In some
cases, specialized hardware may be employed to implement one or
more of the functions described here. Further, a computer program
product can include a computer-readable storage medium with code
adapted to be implemented to carry out one or more method steps
described herein, including the provision of the system with the
distinct software modules.
[0065] In any case, it should be understood that the components
illustrated herein may be implemented in various forms of hardware,
software, or combinations thereof; for example, application
specific integrated circuit(s) (ASICS), functional circuitry, one
or more appropriately programmed general purpose digital computers
with associated memory, and the like. Given the teachings of the
invention provided herein, one of ordinary skill in the related art
will be able to contemplate other implementations of the components
of the invention.
[0066] The terminology used herein is for the purpose of describing
particular embodiments only and is not intended to be limiting of
the invention. As used herein, the singular forms "a", "an" and
"the" are intended to include the plural forms as well, unless the
context clearly indicates otherwise. It will be further understood
that the terms "comprises" and/or "comprising," when used in this
specification, specify the presence of stated features, integers,
steps, operations, elements, and/or components, but do not preclude
the presence or addition of one or more other features, integers,
steps, operations, elements, components, and/or groups thereof.
[0067] The corresponding structures, materials, acts, and
equivalents of all means or step plus function elements in the
claims below are intended to include any structure, material, or
act for performing the function in combination with other claimed
elements as specifically claimed. The description of the present
invention has been presented for purposes of illustration and
description, but is not intended to be exhaustive or limited to the
invention in the form disclosed. Many modifications and variations
will be apparent to those of ordinary skill in the art without
departing from the scope and spirit of the invention. The
embodiment was chosen and described in order to best explain the
principles of the invention and the practical application, and to
enable others of ordinary skill in the art to understand the
invention for various embodiments with various modifications as are
suited to the particular use contemplated.
* * * * *