U.S. patent application number 12/762856 was filed with the patent office on 2011-05-26 for method for discovering customers to fill available enterprise resources.
This patent application is currently assigned to AVAYA INC.. Invention is credited to George Erhart, Valentine C. Matula, David Skiba.
Application Number | 20110125580 12/762856 |
Document ID | / |
Family ID | 44062080 |
Filed Date | 2011-05-26 |
United States Patent
Application |
20110125580 |
Kind Code |
A1 |
Erhart; George ; et
al. |
May 26, 2011 |
METHOD FOR DISCOVERING CUSTOMERS TO FILL AVAILABLE ENTERPRISE
RESOURCES
Abstract
The provided contact center can locate customers that may be
willing to buy goods or services, wherein those goods or services
may have shelve lives or pending disposal dates. A profile for a
customer is created in a dialog data structure; the customer is a
likely purchaser of the goods or services. Social media messages
are analyzed to determine if a poster is of a type that would be
willing to buy a certain product. If the social media user is such
a type, the contact center can contact the social media user and
offer the product or service to that customer. As such, the
enterprise receives a service that quickly locates customers that
may be willing to products and allows them to dispose of the
products that have certain shelve lives.
Inventors: |
Erhart; George; (Loveland,
CO) ; Skiba; David; (Golden, CO) ; Matula;
Valentine C.; (Granville, OH) |
Assignee: |
AVAYA INC.
Basking Ridge
NJ
|
Family ID: |
44062080 |
Appl. No.: |
12/762856 |
Filed: |
April 19, 2010 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
61263013 |
Nov 20, 2009 |
|
|
|
Current U.S.
Class: |
705/14.54 ;
705/14.61; 705/14.66; 709/204 |
Current CPC
Class: |
G06Q 50/01 20130101;
H04M 3/5191 20130101; H04M 7/0024 20130101; G06Q 30/0256 20130101;
H04M 2203/655 20130101; H04W 4/21 20180201; H04M 3/5233 20130101;
H04M 3/42068 20130101; G06Q 30/0201 20130101; G06Q 30/0264
20130101; G06Q 30/0269 20130101; G06Q 30/0204 20130101; G10L 15/005
20130101 |
Class at
Publication: |
705/14.54 ;
705/14.61; 705/14.66; 709/204 |
International
Class: |
G06Q 30/00 20060101
G06Q030/00; G06F 15/16 20060101 G06F015/16; G06Q 99/00 20060101
G06Q099/00 |
Claims
1. A method comprising: receiving, by a processor, an advertising
campaign having a profile for a customer; determining, by the
processor, a social media user related to the profile; and
providing, by the processor, the advertising campaign to the social
media user.
2. The method as defined in claim 1, wherein the advertising
campaign is for an excess-capacity good or service.
3. The method as defined in claim 1, wherein the advertising
campaign has a parameter.
4. The method as defined in claim 3, wherein the parameter is a
time at which a good or service must be sold by.
5. The method as defined in claim 1, wherein the social media user
is related to the profile based on a social media message sent by
the social media user.
6. The method as defined in claim 1, wherein the social media user
is related to the profile based on a social media message
history.
7. The method as defined in claim 1, wherein providing the
advertising campaign comprises at least one of a group consisting
of sending a direct contact message to a communication device
associated with the social media user and sending a post to a
social media network for the social media user.
8. The method as defined in claim 1, wherein the advertising
campaign is instructed by a dialog data structure.
9. The method as defined in claim 8, wherein the dialog data
structure is created for the advertising campaign, wherein creating
the dialog data structure comprises receiving an identity for a
social media user; receiving a search term for the social media
user; receive a campaign parameter for the advertising campaign;
receive a contact communication for the social media user; and
storing the identity, search term, campaign parameter, and contact
communication in a dialog data structure.
10. A computer readable medium having stored thereon processor
executable instructions that cause a computing system to execute a
method for creating an advertising campaign directed to a social
media user, the instructions comprising: instructions to receive an
identity, wherein the identity is a profile describing two or more
social media users and wherein the profile is of a social media
user that may want to buy an expiring good or service; instructions
to receive a search term for the social media user; instructions to
receive a campaign parameter for the advertising campaign;
instructions to receive a contact communication for the social
media user, wherein the contact communication directs the social
media user how to purchase the expiring good or service; and
instructions to store the identity, search term, campaign
parameter, and contact communication in a dialog data
structure.
11. The computer readable medium as defined in claim 10, wherein
the expiring good or service has one of a group consisting of a
shelf life and a date upon which the product or service must be
used.
12. The computer readable medium as defined in claim 11, wherein at
least one of the campaign parameters is a date upon which the
advertising campaign terminates and wherein the date upon which the
advertising campaign terminates is associated with the shelf life
or the date upon which the product or service must be used.
13. The computer readable medium as defined in claim 10, wherein
the search term is associated with the expiring good or
service.
14. The computer readable medium as defined in claim 10, wherein
the social media user posts a message on at least one of Facebook,
Twitter, Spoke, MySpace, a blog, a video blog, or a chat room.
15. The computer readable medium as defined in claim 10, wherein
the dialog data structure is created by a dialog creator.
16. A communication system comprising: a social media gateway in
communication with a social media network, the social media gateway
operable to obtain criteria a social media message from the social
media network; a dialog system in communication with the social
media gateway, the dialog system operable to determine if an input
for a dialog data structure associated with an advertising campaign
compares to information in the social media message and, if the
input does compare to information in the social media message,
providing an identity of a social media user associated with the
social media message; and a contact center in communication with
the dialog system, the contact center operable to receive the
identity of the social media user and operable to provide the
advertising campaign to the social media user.
17. The communication system as defined in claim 16, wherein the
dialog system comprises: a dialog core in communication with the
social media gateway, the dialog core operable to compare
information associated with the social media user or in the social
media message to the input; a heuristic rules and dialogs database
in communication with the dialog core, the heuristic rules and
dialogs database operable to store the dialog data structure; a
dialog creator in communication with the heuristic rules and
dialogs database, the dialog creator operable to create the dialog
data structure and operable to store the dialog data structure into
the heuristic rules and dialogs database; a message history
database in communication with the dialog core, the message history
database operable to store an social media message history in which
the dialog core can evaluate to determine if the social media user
compares to the input; and an agent interface in communication with
the dialog core and an agent associated with the contact center,
the agent interface operable to send the identity of the social
media user to the agent to direct the advertising campaign to the
social media user.
18. The communication system as defined in claim 17, wherein the
dialog core comprises a text processing component operable to
compare content of the social media message to the input to
determine if the social media user that posted the social media
message is subject to the advertising campaign.
19. The communication system as defined in claim 16, wherein the
advertising campaign is associated with a good or service having a
limited shelf life.
20. The communication system as defined in claim 19, wherein the
advertising campaign is conducted for a predetermined period of
time, the predetermined period of time associated with the limited
shelf life.
Description
CROSS REFERENCE
[0001] This application claims priority to U.S. Provisional
Application Ser. No. 61/263,013, filed Nov. 20, 2009, entitled "GEO
POD SYSTEM," which is incorporated herein by reference in its
entirety.
BACKGROUND
[0002] Contact centers generally exchange information with
consumers through directed contacts. Directed contacts consist of
emails, phone calls, or other forms of communication that are
directed to the contact center or the consumer. However, many
people today, exchange information or interact through non-direct
methods. Non-direct communications require users to post
communications to third party sites or forums, but not to direct
those communications to a specific person or organization.
Non-direct communication methods include social media, which may
include websites, networks, blogs, micro-blogs, RSS feeds, social
media websites (such as, Linked-In, Facebook, Twitter, MySpace,
etc.), and other types of social media. Generally, it is not
possible for contact centers to communicate with consumers through
non-direct methods. As such, the contact centers may be unable to
interact with consumers that use social media to offer certain
types of customer service.
[0003] Enterprises often have products to sell to customers. Some
of these products may have a short shelf life or have a certain
date upon which they need to be sold. Examples of such type of
products may be fruits and vegetables, airline tickets, concert
tickets, or other types of goods. Enterprises are often left with
excess products or services in which they want to provide to
willing customers. However, enterprises currently don't have a good
ability to find these customers who may be willing to buy these
products or services or contact them if they can locate the
customers.
SUMMARY
[0004] It is with respect to the above issues and other problems
that the embodiments presented herein were contemplated. Methods
and systems described herein provide a contact center which can
locate customers that may be willing to buy goods or services,
wherein those goods or services may have shelve lives or pending
disposal dates. A profile for a customer is created in a dialog
script. Social media messages are analyzed based on the profile to
determine if the customer may be of a type that would be willing to
buy a certain product. If the customer is such a type that may be
willing to buy the product, the contact center can contact the
social media user and offer the product or service to that
customer. As such, the enterprises receive a service that quickly
locates customers that may be willing to buy products and allows
the enterprise to dispose of the products that have certain shelf
lives.
[0005] The system can have a dialog creator which receives inputs
from the user about what type of customers to contact. These user
inputs are stored in a dialog data structure. The dialog data
structure may then be retrieved by a dialog system, which uses the
dialog script to determine customers the enterprise wishes to
contact. Upon finding these customers, a communication stored in
the dialog script can be sent to the customer to engage them in a
contact and offer them goods or services.
[0006] A social media gateway can be used gather information on
specific social network users. In addition, data may be collected
about the user that may exist on public blogs, wilds, etc. Finally,
data sources with public information, e.g., census, zillow.com,
etc., may be used to gather more background user information.
[0007] First, a business may identify that the business has some
excess capacity, over-stocked inventory, or excess service
capacity. The full extent of the excess capacity can be identified
in terms of how much inventory available, price levels, time to
use, time to expire, or any other distinguishing characteristics.
Next, the business can create or identify a previously developed
automated "marketing" campaign. The campaign can be included in a
dialog data structure that can be executed by the social media
contact center. The campaign may utilize automated and, possibly,
agent resources to contact identified consumers and quickly sell
the excess-capacity resources.
[0008] The campaign can consist of several steps to identify
potential consumers. The system can first identify recent
discussions on social network sites and those consumers that have a
social network relationship with the enterprise who have had
"relevant" conversations about the available resource. For example,
if United Airlines has extra seats to Paris later this week, then
all users who have discussed travel to Europe can be
identified.
[0009] As potential customers are identified, the campaign uses any
number of text analysis methods to further qualify the potential of
the customer based on their recent social media interactions. The
customer is also analyzed for potential value based on their
demographic data, location, historical purchases, CRM data, or any
other information known about the customer. This evaluation may be
done through the automated system or by utilizing agents for human
analysis.
[0010] Once the customer has been identified, a contact can be made
from the business to the customer. Several forms of contact are
possible. An agent may reach out directly to the customer. An
automated system may reach out to the customer. The customer may be
reached through a different channel than that of the initial
communication. The initial communication with the customer may be
the first attempt to offer the resource to the customer and may
include follow-up contact instructions for the user to accept the
offer. A key component of the campaign is that the campaign can run
for a specified duration. If a resource is set to expire on Friday,
the campaign may monitor and run starting on Tuesday for three days
or until the resource capacity is met.
[0011] As an example, Flowers.com may have over stocked a specific
flower arrangement. To reduce the inventory, Flowers.com starts a
campaign using the described system. Since time is short (because
the flower arrangement will wilt and die), Flowers.com searches for
users over the next few days who discuss special events, such as,
birthdays, anniversaries, new job, etc., on any social media
network. The automated campaign identifies the potential customers
and begins sending out messages or posts either to the social media
network or to other communication channels with links to reach an
agent to purchase the flower arrangement.
[0012] In another example, United Airlines may have available seats
to Paris on Friday. Existing methods of discounting seats may not
have filled the seats. As such, United Airlines start a campaign
using the described system to identify all people discussing travel
and Europe. Over the next few days the automated systems sends out
special deals to the selected high value customers. The deal
includes a link to a direct agent chat for quick turn-around of the
special offer.
[0013] In still another example, a local electronics dealer has 20
HDTVs that are being discontinued and replaced with a newer model.
A shipment of the newer model HDTVs is due to arrive soon, and the
dealer must sell the 20 older model HDTVS fast. The electronics
dealer can create the outbound campaign to identify potential
customers that are in the local geographic area and may be able to
purchase in the next day or two. In this situation, the location
and demographics of the customers is important. The system searches
and monitors those discussing, not just TVs, but movies, sports,
video games, etc.; thus, the system finds those customers that may
be interested in obtaining one of the closeout items.
[0014] The phrases "at least one", "one or more", and "and/or" are
open-ended expressions that are both conjunctive and disjunctive in
operation. For example, each of the expressions "at least one of A,
B and C", "at least one of A, B, or C", "one or more of A, B, and
C", "one or more of A, B, or C" and "A, B, and/or C" means A alone,
B alone, C alone, A and B together, A and C together, B and C
together, or A, B and C together.
[0015] The term "a" or "an" entity refers to one or more of that
entity. As such, the terms "a" (or "an"), "one or more" and "at
least one" can be used interchangeably herein. It is also to be
noted that the terms "comprising", "including", and "having" can be
used interchangeably.
[0016] The term "automatic" and variations thereof, as used herein,
refers to any process or operation done without material human
input when the process or operation is performed. However, a
process or operation can be automatic, even though performance of
the process or operation uses material or immaterial human input,
if the input is received before performance of the process or
operation. Human input is deemed to be material if such input
influences how the process or operation will be performed. Human
input that consents to the performance of the process or operation
is not deemed to be "material".
[0017] The term "computer-readable medium" as used herein refers to
any tangible storage that participates in providing instructions to
a processor for execution. Such a medium may take many forms,
including but not limited to, non-volatile media, volatile media,
and transmission media. Non-volatile media includes, for example,
NVRAM, or magnetic or optical disks. Volatile media includes
dynamic memory, such as main memory. Common forms of
computer-readable media include, for example, a floppy disk, a
flexible disk, hard disk, magnetic tape, or any other magnetic
medium, magneto-optical medium, a CD-ROM, any other optical medium,
punch cards, paper tape, any other physical medium with patterns of
holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, a solid state
medium like a memory card, any other memory chip or cartridge, or
any other medium from which a computer can read. When the
computer-readable media is configured as a database, it is to be
understood that the database may be any type of database, such as
relational, hierarchical, object-oriented, and/or the like.
Accordingly, the invention is considered to include a tangible
storage medium and prior art-recognized equivalents and successor
media, in which the software implementations of the present
invention are stored.
[0018] The terms "determine", "calculate", and "compute," and
variations thereof, as used herein, are used interchangeably and
include any type of methodology, process, mathematical operation,
or technique.
[0019] The term "module" as used herein refers to any known or
later developed hardware, software, firmware, artificial
intelligence, fuzzy logic, or combination of hardware and software
that is capable of performing the functionality associated with
that element. Also, while the invention is described in terms of
exemplary embodiments, it should be appreciated that individual
aspects of the invention can be separately claimed.
[0020] An "advertising campaign" as used herein is any indirect or
direct effort to entice a consumer to buy a product or service.
BRIEF DESCRIPTION OF THE DRAWINGS
[0021] The present disclosure is described in conjunction with the
appended figures:
[0022] FIG. 1 is a block diagram of an embodiment of a
communication system operable to interact with persons using a
social media network;
[0023] FIG. 2A is a block diagram of an embodiment of a social
media gateway;
[0024] FIG. 2B is a block diagram of an embodiment of a dialog
system;
[0025] FIG. 3 is a block diagram of embodiments of a dialog data
structure;
[0026] FIG. 4 is a flow diagram of an embodiment of a process for
creating a dialog data structure that can be used to direct a
campaign;
[0027] FIG. 5 is a flow diagram of an embodiment a process for
finding customers that may be willing to buy excess-capacity goods
or services;
[0028] FIG. 6 is a block diagram of an embodiment of a computing
environment;
[0029] FIG. 7 is a block diagram of an embodiment of a computer
system.
[0030] In the appended figures, similar components and/or features
may have the same reference label. Further, various components of
the same type may be distinguished by following the reference label
by a letter that distinguishes among the similar components. If
only the first reference label is used in the specification, the
description is applicable to any one of the similar components
having the same first reference label irrespective of the second
reference label.
DETAILED DESCRIPTION
[0031] The ensuing description provides embodiments only, and is
not intended to limit the scope, applicability, or configuration of
the claims. Rather, the ensuing description will provide those
skilled in the art with an enabling description for implementing
the embodiments. Various changes may be made in the function and
arrangement of elements of the embodiment without departing from
the spirit and scope of the appended claims.
[0032] A communication system 100, for interacting with persons
using social media is shown in FIG. 1. The communication system 100
can include a contact center 102, a network 108, and one or more
types of social media networks or systems, such as social media
network 1 112, social media network 2 114, and/or social media
network 3 116. Social media networks 112, 114, and/or 116 can be
any social media including, but not limited to, networks, websites,
or computer enabled systems. For example, a social media network
may be MySpace, Facebook, Twitter, Linked-In, Spoke, or other
similar computer enabled systems or websites. The communication
system 100 can communicate with more or fewer social media networks
112, 114, and/or 116 than those shown FIG. 1, as represented by
ellipses 118.
[0033] The network 108 can be any network or system operable to
allow communication between the contact center 102 and the one or
more social media networks 112, 114, and/or 116. The network 108
can represent any communication system, whether wired or wireless,
using any protocol and/or format. The network 108 provides
communication capability for the contact center 102 to communicate
with websites or systems corresponding to the one or more social
media networks 112, 114, and/or 116. However, the network 108 can
represent two or more networks, where each network is a different
communication system using different communication protocols and/or
formats and/or different hardware and software. For example,
network 108 can be a wide area network, local area network, the
Internet, a cellular telephone network, or some other type of
communication system. The network 108 may be as described in
conjunction with FIGS. 6 and 7.
[0034] A contact center 102 can be a system that can communicate
with one or more persons that use social media networking sites
112, 114, and/or 116. The contact center 102 can be hardware,
software, or a combination of hardware and software. The contact
center 102 can be executed by one or more servers or computer
systems, as described in conjunction with FIGS. 8 and 9. The
contact center 102 can include all systems, whether hardware or
software, that allow the contact center 102 to receive, service,
and respond to directed and non-directed contacts. For example the
contact center 102 can include the telephone or email system, an
interface to human agents, systems to allow human agents to service
and respond to received contacts, and one or more systems operable
to analyze and improve the function of agent interaction.
[0035] The contact center 102 may include a dialog system 104 and a
social media gateway 106. While the dialog system 104 and the
social media gateway 106 are shown as being a part of the contact
system 102, in other embodiments, the dialog system 104 and/or the
social media gateway 106 are separate systems or functions executed
separately from the contact center 102 and/or executed by a third
party. The dialog system 104 may process and receive messages. The
social media gateway 106 can receive and translate messages from
the one or more social media networks 112, 114, and/or 116. An
embodiment of the dialog system 104 is described in conjunction
with FIG. 2B. An embodiment of the social media gateway 106 is
described in conjunction with FIG. 2A.
[0036] The contact center 102 may also communicate with one or more
communication devices 110. The communication devices 110 can
represent a customer's or user's cell phone, email system, personal
digital assistant, laptop computer, or other device that allows the
contact center 102 to interact with the customer. The contact
center 102 can modify a non-direct contact, from a social media
network 112, 114, and/or 116, into a directed contact by sending a
response message directly to a customer's communication device
110.
[0037] An embodiment of the social media gateway 106 is shown in
FIG. 2A. The social media gateway 106 can include one or more
components which may include hardware, software, or combination of
hardware and software. The social media gateway 106 can be executed
by a computer system, such as those described in conjunction with
FIGS. 6 and 7. However, in other embodiments, the components
described in conjunction with FIG. 2A are logic circuits or other
specially-designed hardware that are embodied in a field
programmable gate array (FPGA) application specific integrated
circuit (ASIC), or other hardware.
[0038] Herein, the social media gateway 106 can include one or more
content filters 202a, 202b, and/or 202c. A content filter 202 can
receive all of the messages for the contact center 102 from a
social media network 112, 114, and/or 116 and eliminate or delete
those messages that do not require a response. For example, a
message between two friends on a Facebook page, if not pertaining
to a product or a service of the company operating the contact
center 102, may not need a response. As such, the content filter
202 can filter out or delete the non-suitable message from the
messages that are received by the social media network application
programming interface (API) 1 204a, social media network API 2
204b, and/or social media network API 3 204c. With the content
filter 202, the social media network API 204 only needs to
translate those messages that should be received by the dialog
system 104. Translation typically requires the conversion of the
message into a different format.
[0039] The content filter 202 is provided with one or more
heuristics for filter rules from a filter database (not shown).
These filter rules can be created by the external customer or
internal user (e.g. agent or administrator) of the communication
system 100. Thus, the user or customer of the communication system
100 can customize the filtering of messages from social media
networks 112, 114, and/or 116. Further, different rules may be
applied to different social media networks 112, 114, and/or 116, as
some social media networks 112, 114, and/or 116 may have different
types of messages or postings than other types of social media
networks 112, 114, and/or 116. While the content filter 202 is
shown as part of the social media gateway 106, it is to be
appreciated that the content filter 202 may be a part of the social
media network API 204. The content filter 202 may correspond to
query terms used by the social media network API 204. The content
filter 202 or query terms are an argument to the social media
network API 204 call.
[0040] The social media network API 204 can be an application that
the social media network 112, 114, and/or 116 provides to access
the site. Thus, the social media network API 204 is called and
connects to the social media gateway 106 and to the social media
network 112, 114, and/or 116. Any suitable filter criteria may be
employed for social media API 209. Examples of filter criteria
include positive content of the source of posting, an address
field, destination or recipient address fields, a time stamp field,
a subject matter field, and a message body field. For example, a
type of searchable content can be name of the business enterprise
running or employing the contact center 102 and/or the products or
services of the enterprise.
[0041] The social media gateway 106 can include one or more social
media network APIs 204. As shown in FIG. 2A, the social media
gateway 106 may include a social media network API 204 for each
social media network 112, 114, and/or 116. As such, the social
media gateway 106 can interact with each social media network 112,
114, and/or 116 in the particular (often unique) format or protocol
used by the social media network 112, 114, and/or 116. Further,
when new social media networks are created, the social media
gateway 106 can be easily expanded to interact with those social
media networks by adding another social media network API 204.
Where social media networks 112 are more standardized, or use
substantially similar formats or protocols, a single social media
network API can be shared by multiple social media networks
112-116.
[0042] The social media network API 204 can receive messages from
and send messages to the social media network 112, 114, and/or 116.
The social media network API 204 can translate a message received
from a social media network 112, 114, and/or 116 and send the
translated message to a message filter 206. The social media
network API 204 can translate the received message into a standard
formatted file. For example, the translated message may be
represented by an extensible mark-up language (XML) file or other
file having a general format. As such, each specific and particular
social media network message can be translated into a standard
format for use by the dialog system 104. Further, the social media
network API 204 can receive a generally or standard format response
message, from the dialog system 104, and translate that response
into a particularly or specifically formatted response message that
can be posted to the corresponding social media network 112, 114,
and/or 116.
[0043] Messages to the contact center 102 are addressed to the
contact center 102. For example, a customer may become a "friend"
of the contact center 102 on a social media network 114, such as
Facebook. The customer may then address a message to the contact
center 102 on Facebook. This non-direct contact is a message that
is not sent directly to the contact center 102 but to the contact
center's Facebook page. In other embodiments, the contact center
102 receives messages not addressed to the contact center 102. For
example, the contact center 102 can receive tweets from Twitter
that are "broadcast" rather than addressed to the contact center
102. The contact center 102 may also search for messages or content
on the social media networks 112, 114, and/or 116. Exemplary search
criteria include customer name, customer profession, customer home
address, customer business address, customer employer name,
customer educational or professional background, customer hobby,
personal or business interests, customer family profile, and the
like. Thus, the social media gateway 106 of the contact center 102
can query, gather, or connect to a live feed of data from a social
media network 112, 114, and/or 116 and then apply a filter to the
indirect information.
[0044] The translated messages from the social media network API
204 can be received by a message filter 206. A message filter 206
can perform some or all of the functions of the content filter 202
and eliminate messages before being sent to the dialog system 104.
However, in other embodiments, the message filter 206 eliminates
information from within the messages before the redacted messages
are sent to the dialog system 104. For example, a message from a
social media network 112 may have three or four interactions
between two parties not associated with the contact center 102.
Only one of the several postings may be pertinent to the dialog
system 104. As such, the message filter 206 can eliminate or delete
at least a portion of the other messages for the dialog system 104.
Thus, the dialog system 104 receives a message where some of the
content of the message has been deleted. The message filter 206 can
retrieve heuristics or filter rules from a filter database (not
shown), similar to the content filter 202. A substantial difference
between the content and message filters 202 and 206 is that the
content filter 202 is specific to a particular message format
associated with a corresponding social media network 112, 114,
and/or 116, while the message filter 206 is applied to a
standardized or universal format and is therefore common to
multiple social media networks 112, 114, and/or 116. One skilled in
the art will understand the type of rules that may be used to
filter information from messages such that only pertinent
questions, facts, requests, or information is sent to the dialog
system 104.
[0045] A message aggregator 208 may also be included with the
social media gateway 106. A message aggregator 208 can, in contrast
to the message filter 206, combine two or more messages into a
packet or grouping that is sent to the dialog system 104.
Therefore, the message aggregator 208 can interrelate or combine
messages based on information within the messages. For example, two
messages may be combined based on any of the message fields
referenced above, such as the person that posted the message, the
subject, the request or question asked, the person the message was
sent to, or other information that may be pertinent to the dialog
system 104. Thus, the dialog system 104 may be able to respond
concurrently to two or more messages based on a grouping provided
by the message aggregator 208. Regardless of whether the messages
are aggregated, each message or grouping of messages can be sent
from the social media gateway 106 to the dialog system 104.
[0046] The social media gateway 106 can also send responses back to
the social media networks 112, 114, and/or 116. A response from an
agent 228 in the contact center 102 can be sent to the social media
gateway 106. The response may be in a general format and
translated. The translated response may then be posted to the
appropriate social media network 112, 114, and/or 116 by the social
media gateway 106. In other embodiments, the agent may post the
response directly to the social media network 112, 114, and/or 116
without sending the response to the social media gateway 106.
[0047] An embodiment of the dialog system 104 is shown in FIG. 2B.
The dialog system 104 can include one or more components which may
be hardware, software, or a combination of hardware and software.
The dialog system 104 can be executed by a computer system such as
those described in conjunction with FIGS. 6 and 7. However, in
other embodiments, the components described in conjunction with
FIG. 2B, are logic circuits or other specially-designed hardware
that are embodied in a FPGA or ASIC. The components contained
within the dialog system 104 can include a dialog core 210 that is
communication with a message history database 222, an agent
interface 224, and a heuristic rules and dialogs database 218.
Further, the heuristic rules and dialogs database 218 can be in
communication with a dialog creator 220.
[0048] The dialog core 210 can include one or more sub-components.
For example, the dialog core 210 can include a trend analysis
component 212, a text processing component 214, and an analysis
tools component 216. These components, similar to the components
for the dialog system 104, can be hardware, software, or
combination of hardware and software. The dialog core 210 may step
through the states of a dialog data structure. A dialog data
structure can include a set of inputs and associated actions that
can be taken which allow for the automatic and structured response
to social media requests or messages. For example, if a user asks
for a manual, the input of the text word "manual" can cause the
dialog system 104 in accordance with a dialog data structure, to
send information about one or more manuals. In turn, the receiver
of the response may respond, in kind, with the selection of a
certain user manual. In which case, the dialog data structure may
then instruct the dialog core to send the user to a website where
the user can retrieve an electronic version of the manual. As such,
the dialog data structure provides a script a dialog that allows
the dialog core 210 to automate the interaction between the contact
center 102 and a person. This automation eliminates the need for
agent involvement, in some situations, and makes the contact center
102 more efficient and more effective. Further, the automation
expands the contact center's ability to answer numerous messages
from the plethora of postings on the numerous social media networks
112, 114, and/or 116.
[0049] The dialog creator 220 will create a dialog data structure
300 that includes instructions for various states for each social
media message that comes into the contact center 102. The first
instruction might be to send the social media message to the trend
analysis component 212, then to the text processing component 214,
and then execute a query of a Customer Relationship Management
(CRM) database 232 (to determine if this user has an existing
order). A CRM database 232 can be a database as described in
conjunction with FIGS. 6 and 7 and can store information about
customers or other data related to customer relations. Finally the
dialog data structure 220 might decide that the social media
message should be sent to a human agent 228 for processing. The
instructions or node transitions are executed in the dialog core
210 and make use of many different components that the dialog
creator 220 combines in any way the user desires to handle the
social media messages. The dialog core 210 can make use of the
trend analysis component 212, text processing component 214, or
other systems. The dialog core 210 may also interface with a CRM
system and/or database 232, external databases, social media user
information (e.g., followers, friends, post history, etc. from the
social media site), or other systems.
[0050] The trend analysis component 212 is operable to analyze
trends that occur between two or more messages received by the
social media networks 112, 114, and/or 116. The two messages can be
from different social media networks, so that the trend analysis
component 212 can identify trends across several different social
media networks 112, 114, and/or 116. Trends can include multiple
occurrences of the same word or phrase, multiple occurrences of a
customer identity, product name or service, or multiple occurrences
of some other information that might indicate a trend. Further, the
trend analysis component 212 may be able to identify escalations in
the occurrences of particular text, identities, or other
information, or may identify multiple occurrences over a period of
time. The trend analysis component 212 may also be able to apply
one or more different algorithms to occurrences of information
within the social media networks 112, 114, and/or 116. For example,
the trend analysis component 212 can match the number of
occurrences of a phrase or word over a period of time and apply
analysis to determine if the occurrences are increasing or
decreasing over the period of time.
[0051] The dialog core 210 may detect trending by a customer or
user. Each individual social media user may be "trending" on a
topic. For example, "Bob" occasionally talks (e.g., tweets/facebook
posts) about possible summer vacation plans, but, starting in the
month of March, the frequency of mentions for "summer vacation"
increases from 0.5 mentions per month across all social media
networks 112, 114, and/or 116 to 3 mentions per month across all
social media networks 112, 114, and/or 116. The increase may be a
positive short term trend for an individual user that may trigger a
summer travel advertising campaign to "Bob." Thus, a baseline of
activity on a topic may be determined then the dialog core 210 can
notice significant changes (i.e., statistically significant
changes) that may be valuable information for a business. In other
words, trends are meaningful with an understanding of what the base
"noise" level is for a social media user.
[0052] Further, a trend for one user may be compared to the trends
of other users, either as individuals or as aggregated groups. With
the comparison information, threshold levels (i.e., the levels at
which a customer becomes valuable) can be automatically adjusted.
For example, if a major media outlet (e.g., Time Magazine) writes
an article on time share condos as a vacation option, the average
level of conversation on time share condos for vacation may
increase across a large body of users. An average number of
mentions, for the whole of social media users, of time shares may
increase. As such, trying to determine a valuable customer may not
function with an unadjusted threshold because too many people may
go over the threshold. However, the dialog core 210 may
automatically adjust the threshold based on the actions of the
whole of social media users to cull out those users that post in
excess of the larger general trend. Thus, for any given topic,
there is an average number of mentions. The average number of
mentions can fluctuate with external factors. Users that exceed the
average number of mentions per unit time might be showing greater
interest or potential. This analysis optimizes the use of contact
center resources in attempting to connect to
interested/interesting/influential customers. Functional use of a
trend may require a threshold. The thresholds can be fixed or based
on data across either time (frequency/time>N, where N is either
fixed or a computed average), between users and groups (A relative
to B), or a combination of the two.
[0053] The text processing component 214 is operable to analyze
text of one or more messages from social media networks 112, 114,
or 116. Some possible methods for text processing can include
Regular Expression, Latent Semantic Indexing (LSI), text part of
speech tagging, text clustering, N-Gram document analysis, etc. In
addition, for possibly longer documents, (such as, blogs or
emails), the text processing component 214 may execute one or more
methods of document summarization. The summarization may occur if
the social media message will be sent to an agent 228 of the
contact center 102; the summarization can reduce the amount of
information that the agent may manage. The text processing rules or
models may be stored in and/or retrieved from a text processing
rules database 230. The text processing rules database 230 can be a
database as described in conjunction with FIGS. 6 and 7 that stores
rules or models used by the text processing component 214.
[0054] The text processing component 214 can identify one or more
occurrences of a particular text, such as using one or more of the
message fields referenced above, in order to associate that social
media message with one or more dialogs data structures in the
heuristic rules and dialog database 218. For example, the text
processing component 214 can look for the word "manual," in the
social media message. If the word "manual" is found, the text
processing component 214 may retrieve a dialog data structure from
the heuristic rules and dialogs database 218, and, as the dialog
data structure instructs, communicates with the customer about one
or more owner's manuals, repair manuals, or other types of manuals.
In another example, if the social media message includes the words,
"buy", "sell", "price, "discount" or other types of words that may
indicate the user or customer wishes to buy a product, the text
processing component 214 can retrieve one or more dialog data
structures from the heuristic rules and dialogs database 218 that
can provide instruction to assist the customer in purchasing
products or services from the enterprise.
[0055] The analysis tools component 216 is operable to analyze
response messages received back from an agent interface 224. In
analyzing the agent's responses, the analysis tools component 216
can determine if the dialog data structures 300 (FIG. 3) originally
retrieved by the text processing component 214 met the needs of the
customer. In the analysis, the agent may enter one or more items of
information, for the analysis tools component 216, about the
response and about how the response matched with the dialog data
structures 300. The analysis tools component 216 can review the
response and determine if it was similar to the response provided
by the dialog data structure 300 (FIG. 3). Thus, the analysis tools
component 216 can provide information to the dialog core 210 or the
dialog creator 220 to improve the dialog data structures 300 (FIG.
3) that are included in the heuristic rules and dialogs database
218.
[0056] The message history database 222 can be any database or data
storage system as described in conjunction with FIGS. 6 and 7.
Thus, the message history database 222 can store data in data
fields, objects, or other data structures to allow other systems to
retrieve that information at a later time. The message history
database 222 can store previous messages or information about
previous messages. Thus, for example, if the trend analysis
component 212 is analyzing several messages over a period of time,
the trend analysis component 212 can retrieve information about
previous messages associated with the current analysis from the
message history database 222. As such, the trend analysis component
212 can better detect trends occurring at the social media networks
112, 114, and/or 116. The data stored by the message history
database 222 can include the entire message or only a portion of
the message, and in some circumstances, include metadata about the
message(s).
[0057] The heuristic rules and dialogs database 218 can be any type
of database or data storage system as described in conjunction with
FIGS. 6 and 7. The heuristic rules and dialogs database 218 can
store information in data fields, data objects, and/or any other
data structures. An example of information stored within the
heuristic rules and dialogs database 218 is described in
conjunction with FIG. 3. The heuristic rules and dialogs database
218 stores rules and dialogs data structures that automate
responses to received social media messages. The dialogs data
structures control the interaction between the dialog core 210 and
the social media network 112, 114, and/or 116. The dialogs or
heuristic rules can be created by a dialog creator 220. Thus, the
dialog creator 220 can interface with user input 226 to receive
information about dialogs. The user input 226 is then used to form
the states and responses for a dialog data structure.
[0058] An agent interface 224 is a communication system operable to
send action items to contact center agents, in the contact center
102. An agent 228 can be a person or other system that is operable
to respond to certain questions or requests from a customer. For
example, the agent 228 can be a person that has specialized
expertise in a topic area, such as technical support. The agent
interface 224 can format the social message into an action item and
forward that message to one or more agents 228. The agent interface
224 can also receive response(s) back from the agents 228. The
information provided by the agent 228 may be used by the dialog
core 210 to complete a response to the social media message. For
example, the information may classify the social media message
(e.g., sales, service, etc.). In other embodiments, the response is
a complete response to the social media message that can be posted
to the social media network 112, 114, and/or 116.
[0059] An embodiment of a dialog data structure 300 is shown in
FIG. 3. The dialog data structure 300 can be stored in several
different forms of databases, such as relational databases, flat
files, object-oriented databases, etc. Thus, while the term "data
field" or "segment" is used herein, the data may be stored in an
object, an attribute of an object, or some other form of data
structure. Further, the dialog data structure 300 can be stored,
retrieved, sent, or received during the processing of dialogs by
the dialog core 210 or the dialog creator 220. The dialog data
structure 300 stores one or more items of information in one or
more segments. The numeric identifiers (e.g. 302, 304, etc.) shown
in FIG. 3 can identify, the one or more segments.
[0060] The dialog data structure 300 can include one or more input
segments, such as, input segment 1 302 and input segment 2 304, a
rules segment 306, and/or a dialog script segment 308. Input
segments 302 and 304 each include one or more inputs that may be
required to associate a social media message with the dialog data
structure 300. The inputs segments 302 and 304 may include a
customer identity, a respective customer type, a text word, a
phrase, or other information that indicates that the dialog data
structure 300 is associated with or pertaining to the social media
messages.
[0061] The input segments 302 and 304 may also include certain
trends that the trend analysis component 212 can identify. As such,
if a trend is identified and associated with the inputs 302 and/or
304, the dialog data structure 300 can be retrieved and used by the
dialog core 210. While there are only two input segments 302 and
304 shown in FIG. 3, there may be more or fewer input segments
associated with the dialog data structure 300, as indicated by
ellipses 310.
[0062] The rules segment 306 can include one or more heuristic
rules that either help with the association of the respective
dialog data structure 300 with the social media message or control
the interaction between the dialog core 210 and the social media
customer. For example, the rule 306 can state that the dialog data
structure 300 applies only if the social media message includes
input segment 1 302 but not input segment 2 304. One skilled in the
art will be able to identify other types of rules that may govern
the association of the dialog data structure 300 with the social
media message. In other embodiments, the rules segment 306 states
that if the social media message includes inputs 302 and/or 304,
then the dialog core 210 should respond with a certain type of
action.
[0063] Generally, a dialog script segment 308 includes a script of
actions or responses that direct one or more other components, such
as the dialog core 210 (FIG. 2B), to conduct actions or send the
responses. The dialog script segment 308 can include the one or
more states and corresponding responses or actions required by the
dialog core 210. If the dialog script segment 308 applies (that is,
if the social media message is requesting a certain type of
information), the dialog script segment 308 may include the one or
more responses that the dialog core 210 should communicate to
respond to that social media message. The dialog script segment 308
can also include a response and a pointer to another dialog script
segment 308 or another dialog data structure 300. Further, the
dialog script segment 308 may have one or more actions that may be
taken by another component after a secondary response is received
by a customer. Thus, the dialog script segment 308 can direct or
instruct an interaction to continue with a social media user over a
period of time and over several interactions between the user and
the contact center 102.
[0064] It should be noted that the dialog script segment 308 can
reference one or more other dialog data structures 300. Thus, the
dialog script segment 308 can direct the dialog core 210 to
reference at least one other dialog data structure 300 to further
act on the social media message. Further, the social media message
can be subject of two or more dialog script segments 308, and
direct the dialog core 210 to complete two dialog script segments
308 on the social media message. Also, dialog script segments 308
may not be associated with a response but direct the dialog core
210 to complete other actions, such as populating databases or
gathering information.
[0065] An embodiment of a method 400 create a dialog data structure
for a contact campaign is shown in FIG. 4. Generally, the method
400 begins with a start operation 402 and terminates with an end
operation 414. While a general order for the steps of the method
400 are shown in FIG. 4, the method 400 can include more or fewer
steps or arrange the order of the steps differently than those
shown in FIG. 4. The method 400 can be executed as a set of
computer-executable instructions executed by a computer system and
encoded or stored on a computer readable medium. Hereinafter, the
method 400 shall be explained with reference to the systems,
components, modules, software, data structures, etc. described in
conjunction with FIGS. 1-3.
[0066] The dialog creator 220 receives an identity profile, in step
404. The profile can include a type of customer that the enterprise
desires to contact. In other embodiments, the enterprise may send
one or more identities to the dialog creator 220. The profile or
the identities is submitted as user inputs 226. An identity can be
a name of a person, a user name used in a social network 112, an
address, a phone number, an email address, or some other
identifying information. The profile can include income
characteristics, buying patterns, typical postings by a user or
other information that may be able to identify one or more
customers.
[0067] User input 226 is also submitted to the dialog creator 220
that includes search terms or associations, in step 406. A search
term can be any term that should be used to identify a social media
message as coming from a customer that the enterprise desires to
contact. For example, a search term can be a mention of a product
or situation, can be a characteristic of a customer, such as a
buying trend, etc. An association can include some type of
association between the customer and another entity or group. For
example on Facebook, the customer may associate with or be a friend
or fan of a group. For example, the association can include a
friend or fan association with a group that promotes travel to
Europe, promotes a type of musical instrument, promotes a
vegetarian diet, etc.
[0068] Dialog creator 220 also receives a campaign communication as
user input 226, in step 408. The campaign communication can be a
communication (e.g. a wording for a post on a Social Media Network
112, 114 and/or 116) required by the contact center 102 to
communicate to the customer after identifying the customer as a
customer in which the enterprise desires to contact. The
communication can be a message either written or a voice message
that can be translated into other media. The communication can be
sent to the social media user via the social network 112, 114
and/or 116 or other communication media.
[0069] The dialog creator 220 may also receive campaign parameters,
in step 410. Campaign parameters can determine how the ad campaign
will be conducted. For example, some of the products desired to be
sold by the enterprise may have an expiration date or a date in
which they will no longer be available for use. For example, if the
enterprise is selling vegetables that have a shelf life, the
campaign may only last until the shelf life of the vegetables is
reached. In other embodiments, the product may need to be used on a
certain day. For example, if there are airline seats available for
a certain day of travel to a destination, the campaign may only
continue until that airline has flown and the seats are no longer
available. Campaign parameters may also delineate which social
networks to review, may also determine which customers to ignore or
find, or other parameters which may dictate how the campaign is
conducted.
[0070] After receiving the information, the dialog creator 220 can
create a data dialog data structure 300 which can store the
information received. Then the dialog creator 220 can store the
information, in step 412. For example, the profile identities can
be stored in an input segment 302 or 304. The search terms or
associations can also be stored in an input segment 302 or 304. The
campaign communication can be stored in a dialog script segment
308, while the campaign parameters may be stored in the rule
segment 306. After storing the information in the data dialog
structure 300, the data dialog structure 300 can be stored in the
heuristic rules and dialogs data base.
[0071] An embodiment of a method 500 for processing a response to a
message from the social media network site is shown in FIG. 5.
Generally, the method 500 begins with a start operation 502 and
terminates with an end operation 518. While a general order for the
steps of the method 500 are shown in FIG. 5, the method 500 can
include more or fewer steps or arrange the order of the steps
differently than those shown in FIG. 5. The method 500 can be
executed as a set of computer-executable instructions executed by a
computer system and encoded or stored on a computer readable
medium. Hereinafter, the method 500 shall be explained with
reference to the systems, components, modules, software, data
structures, etc. described in conjunction with FIGS. 1-3.
[0072] A dialog creator can receive data dialog structure 300 from
an enterprise, in step 502. The data dialog structure 300 can
include a dialog script for finding one or more customers that may
be able to purchase or use a resource that is available from the
enterprise. For example, the enterprise may be an airline that may
have empty seats available for an upcoming flight that needs to be
filled. The data dialog structure 300 can locate the passengers or
people that might be willing to buy those seats for the upcoming
flight. In another example the enterprise might be a food
distributor or food producer that has a type of produce that has an
upcoming expiration or spoilage date. If the food is not purchased
by a customer, that food may spoil. As such the data dialog
structure 300 can help the dialog system in locating customers to
purchase that food.
[0073] Two or more actions may be conducted concurrently,
simultaneously, or near simultaneously. The first action can be the
storing of the data dialog structure 300 in the heuristic rules and
dialog database 218 and the triggering of the dialog core 210 to
execute the finding of customers according to the data dialog
structure 300. The triggering of the dialog core 210 can initiate
two actions. First action can be text processing component 214
locating incoming social media messages that may indicate a
customer desires or a subject to data dialog structure 300, in step
504. Thus, the social media network API 204 can receive messages
from the social network, in step 506, and parse those messages for
the dialog core 210. Once sent to the dialog core 210, the dialog
core 210 can search information within the social media message for
relation to the data dialog structure 300. Thus, the dialog core
210 detects processing component or the dialog core 210 can search
for one or more items that may be part of the input field of the
data dialog structure 300. The parsing of the social media message
to search the data dialog structure 300 can be completed by the
text processing component 214, in step 508. The sentiment of the
social media message may also be ascertained. In other words, the
language of the user in the social media message may indicate their
personal feeling about either the seller of the product, the
product, or their personal situation. For example, if the user
blogs about their frequent flier miles on airline A, but airline B
is looking to fill seats, then this user might receive a lower
sentiment score relative to someone else who has not mentioned any
airline affiliation or who has specifically mentioned the airline
with the selling need. In another example, language in a message
like "lost my job" or "attending funeral" might be negative
sentiments that would lower the "score" for a user when evaluating
the merits of reaching out to them with an offer.
[0074] The other action may be the trend processing component
searching for one or more trends of one or more customers in a
customer database or other database. The trends can show trends and
messages that indicate that the customer might be subject to the
data dialog structure 300. For example, if a customer frequently
posts about traveling, they may be subject or a person to contact
for empty airline seats. The dialog core 210 compares the trends
and other information from the social media messages to the inputs
of the data dialog structure 300, in step 510. Thus, any kind of
trend or information the social media messages as compared to one
or more of the inputs of the data dialog structure 300.
[0075] If the customer relates or may be a person of interest to
the enterprise according to the data dialog structure 300, the
dialog core determines that that person is of interest, in step
512. If the person is not of interest, the process proceeds "NO" to
the end operation 518. However, if the person is of interest, the
step 512 proceeds "YES" to step 514. In step 514, the dialog core
210 retrieves the data dialog structure 300 and reads the dialog
scripts. The dialog script will dictate how the dialog core 210
should proceed after identifying customers of interest. The dialog
core 210 can proceed within an advertising campaign according to
the dialog script in step 516. Thus, the dialog script can provide
instructions to the dialog core of how to compose a message to post
to the social media network advertising the resource that the
enterprise desires to sell. For example, the airline may advertise
a very good sale price for an airline ticket to the person who may
be of interest in buying airline tickets. Likewise a sale price or
coupon may be sent to a person who may desire to purchase produce
from the food distributor. In this way, the data dialog system is
operable to assist enterprises in selling or marketing their goods
that have short shelf lives or expiration dates.
[0076] FIG. 6 illustrates a block diagram of a computing
environment 600 that may function as servers, computers, or other
systems provided herein. The environment 600 includes one or more
user computers 605, 610, and 615. The user computers 605, 610, and
615 may be general purpose personal computers (including, merely by
way of example, personal computers, and/or laptop computers running
various versions of Microsoft Corp.'s Windows.TM. and/or Apple
Corp.'s Macintosh.TM. operating systems) and/or workstation
computers running any of a variety of commercially-available
UNIX.TM. or UNIX-like operating systems. These user computers 605,
610, 615 may also have any of a variety of applications, including
for example, database client and/or server applications, and web
browser applications. Alternatively, the user computers 605, 610,
and 615 may be any other electronic device, such as a thin-client
computer, Internet-enabled mobile telephone, and/or personal
digital assistant, capable of communicating via a network 620
and/or displaying and navigating web pages or other types of
electronic documents. Although the exemplary computer environment
600 is shown with three user computers, any number of user
computers may be supported.
[0077] Environment 700 further includes a network 720. The network
720 may can be any type of network familiar to those skilled in the
art that can support data communications using any of a variety of
commercially-available protocols, including without limitation SIP,
TCP/IP, SNA, IPX, AppleTalk, and the like. Merely by way of
example, the network 720 maybe a local area network ("LAN"), such
as an Ethernet network, a Token-Ring network and/or the like; a
wide-area network; a virtual network, including without limitation
a virtual private network ("VPN"); the Internet; an intranet; an
extranet; a public switched telephone network ("PSTN"); an
infra-red network; a wireless network (e.g., a network operating
under any of the IEEE 802.11 suite of protocols, the Bluetooth.TM.
protocol known in the art, and/or any other wireless protocol);
and/or any combination of these and/or other networks.
[0078] The system may also include one or more server 725, 730. In
this example, server 725 is shown as a web server and server 730 is
shown as an application server. The web server 725, which may be
used to process requests for web pages or other electronic
documents from user computers 705, 710, and 715. The web server 725
can be running an operating system including any of those discussed
above, as well as any commercially-available server operating
systems. The web server 725 can also run a variety of server
applications, including SIP servers, HTTP servers, FTP servers, CGI
servers, database servers, Java servers, and the like. In some
instances, the web server 725 may publish operations available
operations as one or more web services.
[0079] The environment 700 may also include one or more file and
or/application servers 730, which can, in addition to an operating
system, include one or more applications accessible by a client
running on one or more of the user computers 705, 710, 715. The
server(s) 730 and/or 725 may be one or more general purpose
computers capable of executing programs or scripts in response to
the user computers 705, 710 and 715. As one example, the server
730, 725 may execute one or more web applications. The web
application may be implemented as one or more scripts or programs
written in any programming language, such as Java.TM., C, C#.TM.,
or C++, and/or any scripting language, such as Perl, Python, or
TCL, as well as combinations of any programming/scripting
languages. The application server(s) 730 may also include database
servers, including without limitation those commercially available
from Oracle, Microsoft, Sybase.TM., IBM.TM. and the like, which can
process requests from database clients running on a user computer
705.
[0080] The web pages created by the server 725 and/or 730 may be
forwarded to a user computer 705 via a web (file) server 725, 730.
Similarly, the web server 725 may be able to receive web page
requests, web services invocations, and/or input data from a user
computer 705 and can forward the web page requests and/or input
data to the web (application) server 730. In further embodiments,
the web server 730 may function as a file server. Although for ease
of description, FIG. 6 illustrates a separate web server 725 and
file/application server 730, those skilled in the art will
recognize that the functions described with respect to servers 725,
730 may be performed by a single server and/or a plurality of
specialized servers, depending on implementation-specific needs and
parameters. The computer systems 705, 710, and 715, web (file)
server 725 and/or web (application) server 730 may function as the
system, devices, or components described in FIGS. 1-3.
[0081] The environment 700 may also include a database 735. The
database 735 may reside in a variety of locations. By way of
example, database 735 may reside on a storage medium local to
(and/or resident in) one or more of the computers 705, 710, 715,
725, 730. Alternatively, it may be remote from any or all of the
computers 705, 710, 715, 725, 730, and in communication (e.g., via
the network 720) with one or more of these. The database 735 may
reside in a storage-area network ("SAN") familiar to those skilled
in the art. Similarly, any necessary files for performing the
functions attributed to the computers 705, 710, 715, 725, 730 may
be stored locally on the respective computer and/or remotely, as
appropriate. The database 735 may be a relational database, such as
Oracle 10i.TM., that is adapted to store, update, and retrieve data
in response to SQL-formatted commands.
[0082] FIG. 7 illustrates one embodiment of a computer system 700
upon which the servers, computers, or other systems or components
described herein may be deployed or executed. The computer system
700 is shown comprising hardware elements that may be electrically
coupled via a bus 755. The hardware elements may include one or
more central processing units (CPUs) 705; one or more input devices
710 (e.g., a mouse, a keyboard, etc.); and one or more output
devices 715 (e.g., a display device, a printer, etc.). The computer
system 700 may also include one or more storage devices 720. By way
of example, storage device(s) 720 may be disk drives, optical
storage devices, solid-state storage devices such as a random
access memory ("RAM") and/or a read-only memory ("ROM"), which can
be programmable, flash-updateable and/or the like.
[0083] The computer system 700 may additionally include a
computer-readable storage media reader 725; a communications system
730 (e.g., a modem, a network card (wireless or wired), an
infra-red communication device, etc.); and working memory 740,
which may include RAM and ROM devices as described above. The
computer system 700 may also include a processing acceleration unit
735, which can include a DSP, a special-purpose processor, and/or
the like.
[0084] The computer-readable storage media reader 725 can further
be connected to a computer-readable storage medium, together (and,
optionally, in combination with storage device(s) 720)
comprehensively representing remote, local, fixed, and/or removable
storage devices plus storage media for temporarily and/or more
permanently containing computer-readable information. The
communications system 730 may permit data to be exchanged with the
network 720 (FIG. 7) and/or any other computer described above with
respect to the computer system 700. Moreover, as disclosed herein,
the term "storage medium" may represent one or more devices for
storing data, including read only memory (ROM), random access
memory (RAM), magnetic RAM, core memory, magnetic disk storage
mediums, optical storage mediums, flash memory devices and/or other
machine readable mediums for storing information.
[0085] The computer system 700 may also comprise software elements,
shown as being currently located within a working memory 740,
including an operating system 745 and/or other code 750. It should
be appreciated that alternate embodiments of a computer system 700
may have numerous variations from that described above. For
example, customized hardware might also be used and/or particular
elements might be implemented in hardware, software (including
portable software, such as applets), or both. Further, connection
to other computing devices such as network input/output devices may
be employed.
[0086] In the foregoing description, for the purposes of
illustration, methods were described in a particular order. It
should be appreciated that in alternate embodiments, the methods
may be performed in a different order than that described. It
should also be appreciated that the methods described above may be
performed by hardware components or may be embodied in sequences of
machine-executable instructions, which may be used to cause a
machine, such as a general-purpose or special-purpose processor or
logic circuits programmed with the instructions to perform the
methods. These machine-executable instructions may be stored on one
or more machine readable mediums, such as CD-ROMs or other type of
optical disks, floppy diskettes, ROMs, RAMs, EPROMs, EEPROMs,
magnetic or optical cards, flash memory, or other types of
machine-readable mediums suitable for storing electronic
instructions. Alternatively, the methods may be performed by a
combination of hardware and software.
[0087] Specific details were given in the description to provide a
thorough understanding of the embodiments. However, it will be
understood by one of ordinary skill in the art that the embodiments
may be practiced without these specific details. For example,
circuits may be shown in block diagrams in order not to obscure the
embodiments in unnecessary detail. In other instances, well-known
circuits, processes, algorithms, structures, and techniques may be
shown without unnecessary detail in order to avoid obscuring the
embodiments.
[0088] Also, it is noted that the embodiments were described as a
process which is depicted as a flowchart, a flow diagram, a data
flow diagram, a structure diagram, or a block diagram. Although a
flowchart may describe the operations as a sequential process, many
of the operations can be performed in parallel or concurrently. In
addition, the order of the operations may be re-arranged. A process
is terminated when its operations are completed, but could have
additional steps not included in the figure. A process may
correspond to a method, a function, a procedure, a subroutine, a
subprogram, etc. When a process corresponds to a function, its
termination corresponds to a return of the function to the calling
function or the main function.
[0089] Furthermore, embodiments may be implemented by hardware,
software, firmware, middleware, microcode, hardware description
languages, or any combination thereof. When implemented in
software, firmware, middleware or microcode, the program code or
code segments to perform the necessary tasks may be stored in a
machine readable medium such as storage medium. A processor(s) may
perform the necessary tasks. A code segment may represent a
procedure, a function, a subprogram, a program, a routine, a
subroutine, a module, a software package, a class, or any
combination of instructions, data structures, or program
statements. A code segment may be coupled to another code segment
or a hardware circuit by passing and/or receiving information,
data, arguments, parameters, or memory contents. Information,
arguments, parameters, data, etc. may be passed, forwarded, or
transmitted via any suitable means including memory sharing,
message passing, token passing, network transmission, etc.
[0090] While illustrative embodiments of the invention have been
described in detail herein, it is to be understood that the
inventive concepts may be otherwise variously embodied and
employed, and that the appended claims are intended to be construed
to include such variations, except as limited by the prior art.
* * * * *