U.S. patent application number 13/239195 was filed with the patent office on 2012-03-29 for predictive customer service environment.
Invention is credited to Dinesh AJMERA, Pankai Ghanshani, Sumit Kumar, Debashish Panda, Mathangi Sri Ramachandran, Ravi Vijayaraghavan.
Application Number | 20120076283 13/239195 |
Document ID | / |
Family ID | 45870668 |
Filed Date | 2012-03-29 |
United States Patent
Application |
20120076283 |
Kind Code |
A1 |
AJMERA; Dinesh ; et
al. |
March 29, 2012 |
Predictive Customer Service Environment
Abstract
A mechanism for facilitating customer interactions within a
customer service environment provides prompt and accurate answers
to customer questions. A smart chat facility for use in a customer
service environment to predict a customer problem examines a
customer chat transcript to identify customer statements that set
forth a customer issue and, responsive to this, can route the
customer to an agent, an appropriate FAQ, or can implement a
problem specific widget in the customer UI. Customer queries are
matched with most correct responses and accumulated knowledge is
used to predict a best response to future customer queries. The
iterative system thus learns from each customer interaction and can
adapt to customer responses over time to improve the accuracy of
problem prediction.
Inventors: |
AJMERA; Dinesh; (Bangalore,
IN) ; Panda; Debashish; (Bangalore, IN) ;
Ghanshani; Pankai; (Delhi, IN) ; Kumar; Sumit;
(Bangalore, IN) ; Vijayaraghavan; Ravi;
(Bangalore, IN) ; Ramachandran; Mathangi Sri;
(Bangalore, IN) |
Family ID: |
45870668 |
Appl. No.: |
13/239195 |
Filed: |
September 21, 2011 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
61385866 |
Sep 23, 2010 |
|
|
|
Current U.S.
Class: |
379/93.17 |
Current CPC
Class: |
G06N 3/006 20130101;
G06N 20/00 20190101; G06Q 30/0202 20130101; G06Q 10/10 20130101;
H04L 51/02 20130101; H04L 12/1827 20130101; H04L 51/04 20130101;
G06Q 30/016 20130101; H04M 3/5183 20130101; G06N 5/04 20130101 |
Class at
Publication: |
379/93.17 |
International
Class: |
H04M 11/00 20060101
H04M011/00 |
Claims
1. A computer implemented method for facilitating customer
interactions within a customer service environment, comprising: a
processor configured for predicting a customer problem in a
customer service environment; said processor configured for
examining a customer chat transcript to identify customer
statements that set forth a customer issue; and said processor
configured, responsive thereto, for any of routing said customer to
any of an agent and a text-based facility, and for implementing a
problem specific widget in a customer UI.
2. The method of claim 1, further comprising: said processor
configured for matching customer queries with most correct
responses.
3. The method of claim 2, further comprising: said processor
configured, based upon said matching customer queries with most
correct responses, for accumulating knowledge to predict a best
response to future customer queries.
4. The method of claim 3, further comprising: said processor
configured for adapting to customer responses over time to improve
problem prediction accuracy.
5. An apparatus for problem prediction in a customer service
environment, comprising: an agent console configured for
interacting with at least one problem predictor, wherein said
problem predictor comprises related articles with which a customer
interacts; a smart chat routing module configured for routing
customer chat to service center agents based upon an issue/agent
mapping; and a first module configured for generating real time
triggers, said real time triggers comprising any of agent alerts
and supervisor alerts, said first module configured for operating
in coordination with said agent console; wherein said triggers are
based upon one or more inputs; and wherein said one or more inputs
comprise any of an off line average hold time (AHT) reduction
solution and values for customer pre-chat time, issue time, and
post-chat time.
6. The apparatus of claim 5, further comprising: a customer console
configured for establishing a smart chat session that is guided by
one or more outputs, wherein said one or more outputs comprise any
of FAQs that are generated based upon dynamic text mining, machine
selection of the right questions to be posed by an agent, and use
of appropriate widgets for standard questions.
7. The apparatus of claim 5, further comprising: a second module
configured for implementing an average hold time (AHT) reduction
model that is based upon previous and current customer interactions
within said service environment, said interaction comprising any of
customer interactions with any of agent-based, text-based, and
widget-based assistance.
8. The apparatus of claim 5, wherein chat related information is
divided into pre-chat, actual chat, and post chat.
9. A computer implemented method for facilitating customer
interactions within a customer service environment, comprising: a
processor configured for examining a customer chat transcript to
identify customer statements that set forth a customer issue; said
processor configured for identifying a position in said chat
transcript at which an issue is posed by the customer; said
processor configured for text mining said chat transcript for key
lines that identify the customer issue; said processor configured
for dividing time components within said chat transcript between
agent time and customer time, wherein said time components comprise
any of pre-chat, actual chat, and post chat; said processor
configured, as a result of said examining, identifying, text
mining, and dividing operations, for producing a dataset, said
dataset comprising any of customer ID, main issue, one or more
sub-issues, agent/customer time for a main issue, agent/customer
time for sub-issues, transfer type, transfer time, hold time,
pre-chat time, post-chat time, number of customer lines, number of
agent lines, number of lines of separation, and status concerning
disconnections by customer chats.
10. A computer implemented method for facilitating customer
interactions within a customer service environment, comprising: a
processor configured for extracting a primary question during a
chat session by identifying a first question in a chat session
transcript and identifying a position of the question in the chat
transcript; wherein if the position of the question in the
transcript is greater than or equal to a predetermined value, then
the issue is extracted; else, the transcript is analyzed to
determine if a predetermined phrase is present; wherein if said
predetermined phrase if found, then a next sentence is deemed to be
the primary question; else, the identifies as the primary question
a first customer sentence in the transcript that has a
predetermined number of words.
11. The method of claim 10, further comprising: said processor
configured for, after the primary question has been extracted,
extracting an issue by extracting a list of text-based materials
with regard to the primary question, said list comprising one or
more related answers; said processor configured for extracting
unigrams and bigrams from the primary question; said processor
configured for preparing a list of top unigrams and bigrams based
upon their occurrence in customer issues; said processor configured
for mapping said bigrams with said customer issues; said processor
configured for mapping said unigrams and bigrams back to one or
more query categories; wherein, if there is a match, then the issue
has been successfully extracted; else, a match is made to the
unigram to obtain the customer issue.
12. An apparatus for facilitating customer interactions within a
customer service environment, comprising: a processor configured
for predicting a customer problem in a customer service
environment; said processor configured for examining a customer
chat transcript to identify customer statements that set forth a
customer issue; and said processor configured, responsive thereto,
for any of routing said customer to any of an agent and a
text-based facility, and for implementing a problem specific widget
in a customer UI.
13. The apparatus of claim 12, further comprising: said processor
configured for matching customer queries with most correct
responses.
14. The apparatus of claim 13, further comprising: said processor
configured, based upon said matching customer queries with most
correct responses, for accumulating knowledge to predict a best
response to future customer queries.
15. The apparatus of claim 14, further comprising: said processor
configured for adapting to customer responses over time to improve
problem prediction accuracy.
16. A computer implemented method for problem prediction in a
customer service environment, comprising: providing an agent
console configured for interacting with at least one problem
predictor, wherein said problem predictor comprises related
articles with which a customer interacts; providing a smart chat
routing module configured for routing customer chat to service
center agents based upon an issue/agent mapping; and providing a
first module configured for generating real time triggers, said
real time triggers comprising any of agent alerts and supervisor
alerts, said first module configured for operating in coordination
with said agent console; wherein said triggers are based upon one
or more inputs; and wherein said one or more inputs comprise any of
an off line average hold time (AHT) reduction solution and values
for customer pre-chat time, issue time, and post-chat time.
17. The method of claim 16, further comprising: providing a
customer console configured for establishing a smart chat session
that is guided by one or more outputs, wherein said one or more
outputs comprise any of FAQs that are generated based upon dynamic
text mining, machine selection of the right questions to be posed
by an agent, and use of appropriate widgets for standard
questions.
18. The methods of claim 16, further comprising: providing a second
module configured for implementing an average handle time (AHT)
reduction model that is based upon previous and current customer
interactions within said service environment, said interaction
comprising any of customer interactions with any of agent-based,
text-based, and widget-based assistance.
19. The method of claim 16, wherein chat related information is
divided into pre-chat, actual chat, and post chat.
20. An apparatus for facilitating customer interactions within a
customer service environment, comprising: a processor configured
for examining a customer chat transcript to identify customer
statements that set forth a customer issue; said processor
configured for identifying a position in said chat transcript at
which an issue is posed by the customer; said processor configured
for text mining said chat transcript for key lines that identify
the customer issue; said processor configured for dividing time
components within said chat transcript between agent time and
customer time, wherein said time components comprise any of
pre-chat, actual chat, and post chat; said processor configured, as
a result of said examining, identifying, text mining, and dividing
operations, for producing a dataset, said dataset comprising any of
customer ID, main issue, one or more sub-issues, agent/customer
time for a main issue, agent/customer time for sub-issues, transfer
type, transfer time, hold time, pre-chat time, post-chat time,
number of customer lines, number of agent lines, number of lines of
separation, and status concerning disconnections by customer
chats.
21. An apparatus for facilitating customer interactions within a
customer service environment, comprising: a processor configured
for extracting a primary question during a chat session by
identifying a first question in a chat session transcript and
identifying a position of the question in the chat transcript;
wherein if the position of the question in the transcript is
greater than or equal to a predetermined value, then the issue is
extracted; else, the transcript is analyzed to determine if a
predetermined phrase is present; wherein if said predetermined
phrase if found, then a next sentence is deemed to be the primary
question; else, the identifies as the primary question a first
customer sentence in the transcript that has a predetermined number
of words.
22. The apparatus of claim 21, further comprising: said processor
configured for, after the primary question has been extracted,
extracting an issue by extracting a list of text-based materials
with regard to the primary question, said list comprising one or
more related answers; said processor configured for extracting
unigrams and bigrams from the primary question; said processor
configured for preparing a list of top unigrams and bigrams based
upon their occurrence in customer issues; said processor configured
for mapping said bigrams with said customer issues; said processor
configured for mapping said unigrams and bigrams back to one or
more query categories; wherein, if there is a match, then the issue
has been successfully extracted; else, a match is made to the
unigram to obtain the customer issue.
23. An apparatus for event-driven, customizable action execution to
facilitate contextual interactions, comprising: a processor
configured as a predictive service platform for building and
provisioning real time interaction management solutions over a
network; said processor configured to capture information
representative of a user's journey across said network; said
processor configured to model said journey as a finite state
machine consisting of distinct states and conditional transitions
between them; and a plurality of different event handlers
configured to take specific actions in response to said distinct
states and conditional transitions between them.
24. The apparatus of claim 23, wherein a page load results into a
state transition, any event can cause a state transition, and all
metadata for action invocation is attached to a state.
25. The apparatus of claim 23, said information comprising any of
data, actions, and time on all pages.
26. The apparatus of claim 23, wherein an event handler can be
configured for any of: causing state transition; showing up an
interaction popup; providing a self service wizard, or any other
customized interaction interface to a user; and initiating a chat
conversation at any point in time.
27. The apparatus of claim 23, said processor configured as a
predictive model for predicting issues and resolutions.
28. The apparatus of claim 23, wherein multiple mediums of
interaction can be employed during an interaction, including any of
chat, self service, emails, social media, and click to call.
29. The apparatus of claim 23, said processor configured to
generate one or more sessions to identify any of a visitor, a
logical browsing session of the user, and a logical interaction
with the user.
30. The apparatus of claim 23, said processor configured to send
periodical and on-demand update of tracked information to a
server.
31. The apparatus of claim 23, wherein said actions comprise
determining any of: whom to engage based on context, including
collected data elements of a visitor; when and where to engage
based on context, including the journey of the user and time spent
on the journey; and what to show based on context, including a
targeted way to engage a customer.
32. An apparatus for event-driven, customizable action execution to
facilitate contextual interactions, comprising: a processor
configured as a predictive service platform for building and
provisioning real time interaction management solutions over a
network; said processor configured to capture information
representative of a user's journey across said network; and said
processor configured to generate events during a lifecycle of
journey responsive to said captured information.
33. The apparatus of claim 32, said processor configured to model
said journey as a finite state machine consisting of distinct
states and conditional transitions between them; and further
comprising a rules engine configured to divide decision making into
three phases, comprising: client side data collection and client
side condition evaluation; server side data collection from third
party integrations; and server side condition evaluation based on
client, as well as server side, data.
34. The apparatus of claim 32, said processor configured to allow
other system components to subscribe for, and take appropriate
actions.
35. The apparatus of claim 33, wherein client side data comprises
any of: time on a page; geography; cookies; DOM data; client side
persistent storage; and data obtained anywhere during a
journey.
36. The apparatus of claim 33, wherein server side data comprises
any of: a page visitor's profile; and past history and any third
party data coming from a backend.
37. An apparatus, comprising: a processor configured to execute a
program that guides a user through a resolution path; said
processor configured to capture information representative of said
user's journey through said resolution path to track an exact state
of the user and for storing said information in a persistent local
storage medium; said processor configured to provide a
synchronization construct for multiple browser tabs and/or windows
to access said storage medium in a consistent manner; wherein said
storage medium is enabled by said processor to allow a stateless
connection to read from and write to said multiple browser tabs
and/or windows.
38. The apparatus of claim 37, said processor configured to effect
read/write synchronization on said storage medium by dividing said
storage medium into different areas and using a browser's events to
store said information into said storage medium from said multiple
browser windows and/or tabs.
39. The apparatus of claim 38, said events comprising any of a
focus event, blur event, mouse over event, unload event, and onload
event.
40. The apparatus of claim 38, said processor configured to create
at least two logical storage areas to store all said information,
including a shared storage area which is common for a Website and
for all tabs and windows and is accessed, read and write, from all
a windows; and a window storage area which every window has its own
copy of and which accessed, read only, from all windows.
41. The apparatus of claim 37, further comprising: said processor
configured to implement a locking mechanism to provide a given
window a right to read or write into a shared storage area.
42. The apparatus of claim 41, wherein said locking mechanism is
implemented using a combination of focus, blur, and mouse over
events generated by a browser; and lock information, including
timestamp, that is maintained inside a window storage area of each
window.
43. The apparatus of claim 42, wherein said events switch said
locking mechanism from one window to another; wherein lock
information stored in said window storage area determines which
window is currently locked.
Description
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application claims priority to U.S. provisional patent
application Ser. No. 61/385,866, filed 09-23-2010, which
application is incorporated herein in its entirety by this
reference thereto.
BACKGROUND OF THE INVENTION
[0002] 1. Technical Field
[0003] The invention relates to customer/agent interaction. More
particularly, the invention relates to problem prediction and
context based resolution in a customer service environment.
[0004] 2. Description of the Background Art
[0005] The customer experience has never been more important,
informed by technological advancements such as Google Predictive
Search, and the collective power of social media to influence
consumer sentiment and behavior. Executive responsible for customer
care face the challenge of meeting rising expectations without
increasing costs.
[0006] Strong growth in the variety and utilization of connected
devices--from PCs to smart phones and tablets--has made the online
channel the one consumers love to use. It is an opportunity for
companies to redefine and dramatically improve customer service and
manage costs--if they can predict customer needs and address them
quickly and courteously--the first time, every time.
[0007] For example, the quality of service provided to a customer
directly affects the relationship between the customer and a
merchant. Call centers and Web-based customer service facilities
strive to provide prompt and helpful answers to customer questions,
but often fail to do so. The process of getting an answer to a
question can be both time-consuming and frustrating for a customer,
as well as for the agent who is assisting the customer.
[0008] It would be advantageous to provide a mechanism for
facilitating customer interactions within a customer service
environment to provide prompt and accurate answers to customer
questions.
SUMMARY OF THE INVENTION
[0009] An embodiment of the invention provides predictive
experience solutions for online customer experiences. Unlike
proactive chat and reactive web-self-service, an embodiment of the
invention predicts not only who needs assistance, but when, where,
why, and how. The invention also integrates self-service and chat
in a compelling interface that guides customer journeys across
multiple pages and queues, if necessary.
[0010] One embodiment of the invention provides a mechanism for
facilitating customer interactions within a customer service
environment to provide prompt and accurate answers to customer
questions. In particular, this embodiment of the invention provides
a smart chat facility for use in a customer service environment to
predict a customer problem. For example, the invention examines a
customer chat transcript to identify customer statements that set
forth a customer issue and, responsive to this, can route the
customer to an agent, an appropriate FAQ, or can implement a
problem specific widget in the customer UI. The invention provides
a facility that learns to match customer queries with most correct
responses and then uses this accumulated knowledge to predict a
best response to future customer queries. Because the invention
provides an iterative system that learns from each customer
interaction, the system can adapt to customer responses over time
and improve the accuracy of problem prediction.
BRIEF DESCRIPTION OF THE DRAWINGS
[0011] FIG. 1 is a block schematic diagram showing a prediction
services platform architecture according to the invention;
[0012] FIG. 2 is a block schematic diagram showing prediction
services platform client integration according to the
invention;
[0013] FIG. 3 is a block schematic diagram that shows high level
state flow, including variable and transitions according to the
invention;
[0014] FIG. 4 is a block schematic diagram that shows how event
handlers trigger actions or state changes, or present widgets to
engage with the customer according to the invention;
[0015] FIG. 5 is a block schematic diagram that shows data and
actions in connection with a customer Web journey according to the
invention;
[0016] FIG. 6 is a block schematic diagram showing an architecture
for a smart chat client for problem prediction in a customer
service environment according to the invention;
[0017] FIG. 7 is a block schematic diagram that shows a problem
predictor in which chat is used to bootstrap guided self-service
according to the invention;
[0018] FIG. 8 is a flow diagram that provides an example of the use
of issue prediction to trigger an appropriate guided self-service
widget according to the invention;
[0019] FIG. 9 is a flow diagram that shows an example of primary
issue line identification according to the invention;
[0020] FIG. 10 is a flow diagram that shows a further example of
primary issue line identification according to the invention;
[0021] FIG. 11 is a flow diagram showing an average hold time (AHT)
reduction algorithm according to the invention;
[0022] FIG. 12 is a flow diagram that shows an example of a text
mining approach according to the invention;
[0023] FIGS. 13a and 13b are a flow diagrams showing an algorithm
for extraction of a primary question during a chat session (FIG.
13a) and extracting an issue (FIG. 13b) according to the
invention;
[0024] FIG. 14 shows a sample progress table for a problem
predictor according to the invention;
[0025] FIG. 15 is a flow diagram that shows a PSP process in the
data collection and rule evaluation stages according to the
invention;
[0026] FIG. 16 is a timeline that shows a visitor session life
cycle according to the invention;
[0027] FIG. 17 is a block schematic diagram that shows periodic,
on-demand user activity information tracking according to the
invention;
[0028] FIG. 18 is a block schematic diagram that shows the multiple
tab window synchronization problem;
[0029] FIG. 19 is a block schematic diagram that shows a client
side information storage system according to the invention;
[0030] FIG. 20 is a flow diagram that shows a multiple tab
synchronization algorithm according to the invention;
[0031] FIG. 21 is a block schematic diagram that shows a high level
design of a real time experimentation framework according to the
invention;
[0032] FIG. 22 is a flow diagram that show visitor tagging
according to the invention;
[0033] FIG. 23 is a flow diagram that shows real time
experimentable value determination according to the invention;
and
[0034] FIG. 24 is a block schematic diagram of a machine in the
exemplary form of a computer system within which a set of
instructions for causing the machine to perform any one of the
herein disclosed methodologies may be executed.
DETAILED DESCRIPTION OF THE INVENTION
[0035] An embodiment of the invention provides a prediction
platform for customer service that analyzes Web behavior, customer
data, call data, and individual journeys of Website visitors to
help segment end-customers with a high propensity to call. It then
eliminates the need for the call by providing a highly personalized
and unique predictive chat or self serve interaction, thereby
eliminating potential calls from the Website.
[0036] FIG. 1 is a block schematic diagram showing a prediction
services platform architecture according to the invention. Broadly,
the platform includes a client side element 21 that comprises one
or more clients 20, a server side element 22, and a reporting
element 23.
[0037] FIG. 2 is a block schematic diagram showing prediction
services platform client integration according to the invention.
Client integration points are shown within the client 20 and
include specifically the action handlers and event manager. Within
the server 22, client integration points include the client data
integrator. The client's server/Website includes pages 1-n, the
client integration libraries, and the client data repository. The
framework components include the chat platform integration
libraries, session manager, persistent storage, rules engine, FSM
state manager, controller, widget libraries, widget runtime and
server 22.
[0038] Another embodiment of the invention provides a mechanism for
facilitating customer interactions within a customer service
environment to provide prompt and accurate answers to customer
questions. In particular, the invention provides a smart chat
facility for use in a customer service environment to predict a
customer problem. For example, the invention examines a customer
chat transcript to identify customer statements that set forth a
customer issue and, responsive to this, can route the customer to
an agent, an appropriate FAQ, or can implement a problem specific
widget in the customer UI. The invention provides a facility that
learns to match customer queries with most correct responses and
then uses this accumulated knowledge to predict a best response to
future customer queries. Because the invention provides an
iterative system that learns from each customer interaction, the
system can adapt to customer responses over time and improve the
accuracy of problem prediction.
Predictive Service Platform
[0039] One embodiment of the invention provides a predictive
service platform that models a user's Web journey. A finite state
machine is implemented consisting of different states and
transitions between the states.
[0040] FIG. 3 is a block schematic diagram that shows high level
state flow, including variable and transitions according to the
invention. FIG. 3 includes a primary FSM, a sub flow FSM and a sub
flow, and a feedback flow FSM and a feedback flow.
[0041] The predictive service platform provides real time
interaction solutions in conjunction with a Website, where the
predictive service platform is integrated to the Website, for
example, via java scripting. An embodiment provides an event driven
customizable action execution mechanism to facilitate contextual
interactions, and also provides a generic session management and
information tracking mechanism to capture a user's Web journey.
[0042] FIG. 4 is a block schematic diagram that shows how event
handlers trigger actions or state changes, or present widgets to
engage with the customer according to the invention.
[0043] The predictive service platform captures the context, i.e.
data and actions, of the visitor journey through the site and takes
contextual decisions by use of sophisticated analytical models that
focus on how to engage the visitor.
[0044] FIG. 5 is a block schematic diagram that shows data and
actions in connection with a customer Web journey according to the
invention. Such data and actions can pertain to any of the
following broad categories: [0045] Whom to engage: based on the
context, especially collected data elements of the visitor
including, but not limited to, customer/visitor's prior history of
interactions, Web journey, and Web behavior; [0046] When and where
to engage: based on the context, especially the journey of the
user, time spent on the journey, etc.; and [0047] What to show:
based on the context, especially according to the targeted way to
engage the customer.
Example Embodiments of the Predictive Service Platform
[0048] Key solutions offered on the predictive service platform for
the Web medium primarily can be categorized into the following
example categories:
Sales solutions, which: [0049] Identify and engage buyers to
increase sales via a rules engine driven chat interaction; [0050]
Provide a proactive and reactive way to engage customers via
invitations and contextual content presentation that let the user
initiate a chat reactively; and [0051] Increase conversion via
customized actions and content; including multi-media content, e.g.
video, audio and chat enabled sales that show targeted promotions,
cross sell, and up sell. Service solutions, which: [0052] Increase
self-serve resolution rates through targeted self service for
specific problems, where a problem predictor is used to identify
the right issues of the user and guided resolution paths are
provided to help the user go though an assisted journey in the main
Website to solve a problem; and [0053] Improve customer loyalty and
satisfaction via contextual and targeted content and actions and
targeted problem prediction and resolutions.
[0054] The predictive service platform thus provides a novel
approach for building and provisioning real time interaction
management solutions over the Web, which captures the user's
journey, e.g. data, actions, and time on all pages, and models the
same as a finite state machine consisting of distinct states and
conditional transitions between them. In an embodiment, a page load
results into a state transition, any event can cause a state
transition, and all metadata for action invocation is attached to a
state.
[0055] An embodiment provides an event-driven, customizable action
execution mechanism to facilitate contextual interactions, in
which: any event can trigger an action to be taken, different event
handlers are allowed to be configured to take specific actions; an
event handler can cause the state transition; an event handler
shows up an interaction popup; a self service wizard, or any other
customized interaction interface to the user; an event handler can
initiate a chat conversation at any point in time; issues and
resolutions can be predicted based on predictive models; and
multiple mediums of interaction can be employed during an
interaction, e.g. chat, self service, emails, click to call,
etc.
[0056] An embodiment also provides a generic session management and
information tracking mechanism to capture user's journey, in which
sessions can be generated to identify a visitor, a logical browsing
session of the user, as well as a logical interaction with the user
and periodical and on-demand update of tracked information can be
sent to the server.
[0057] The invention takes advantage of the persistent local
storage on the browser to keep track of all the information
throughout the user's journey, thereby making the server stateless.
Accordingly, information can be shared across multiple windows, all
contextual information is captured and can be sent across in any of
the client-server interactions, the server is completely stateless,
thereby providing maximum scalability and availability, and
different storage options can be used in the browser, e.g. Flash
cookie, local storage, cookies. etc.
Smart Chat
[0058] FIG. 6 is a block schematic diagram showing an architecture
for a smart chat facility for problem prediction in a customer
service environment according to the invention. In FIG. 6, an agent
console 10 interacts with a problem predictor 15. In a presently
preferred embodiment, a plurality of problems are predicted, where
each problem prediction has related articles which provide
resolution for each of the predicted problems with which a customer
interacts.
[0059] FIG. 7 is a block schematic diagram that shows a problem
predictor in which chat is used to bootstrap guided self-service
according to the invention.
[0060] FIG. 8 is a flow diagram that provides an example of the use
of issue prediction to trigger an appropriate guided self-service
widget according to the invention.
[0061] A feature of the invention provides a smart chat routing
module 17 (FIG. 6) with which customer chat is routed to service
center agents based upon an issue/agent mapping, as well as an
agent performance score. With regard to the agent performance
score, see U.S. patent application Ser. No. 13/161,291, filed Jun.
15, 2011 (attorney docket no. 247C0024), which application is
incorporated herein in its entirety by this reference thereto.
[0062] The agent console operates in coordination with a module
that generates real time triggers 11, such as agent alerts and
supervisor alerts. These alerts are based on such factors as, for
example, if the agent is not doing what they are supposed to, e.g.
they could be taking too long to respond (discussed below); or they
could be taking more time than normal for any one stage of the chat
(discussed below); or they could be responding to the wrong issue,
as determined based on the issue identification model. These
triggers are based upon inputs 13 that include, for example, an off
line average hold time (AHT) reduction solution and values for
customer pre-chat time, issue time, and post-chat time.
[0063] The agent console operates in conjunction with a customer
console 12 to establish a smart chat session that is guided by
outputs 19 that include, for example, responses to FAQs that are
generated based upon dynamic text mining, The system selects the
right issue/issues being faced by the customer, matches them to FAQ
responses to those issues and provides appropriate widgets for
resolving these standard issues/questions. For example, if
"Understanding Bill Details" is the key issue the customer is
trying to resolve, the primary issue line identification algorithm
shown in FIGS. 9 and 10 identifies the primary issue line. This
line is text mined to identify the primary issue, in this case
"Understanding Bill Details," and the widget that helps to explain
the bill details is then deployed for customer interaction.
[0064] In FIG. 11, chat related information is divided into
pre-chat, actual chat, and post chat (200). Pre-chat, actual chat,
and post-chat are described below. Of these, all except pre-chat
time add up to make the average handle time (AHT).
Pre-chat Time--Customer has accepted a chat invitation, but the
chat has not started. Pre-Issue Time--Customer has started chat,
but is still in the greetings and customer statement of the issue.
Authentication Time--Customer gets authenticated by the agent
before the agent starts issue resolution. Issue Resolution
Time--Time taken by the agent to resolve the issue. Closure
time--Time taken by the agent to close the chat after the issue has
been resolved. Wrap-up time--Time taken by the agent to do some
after chat work, i.e. filling disposition forms regarding details
of the chat and the customer.
[0065] Similarly, another key parameter that is tracked is average
response time (ART) for the agent. Average response time is the
average time taken by the agent to respond to a customer sentence.
It is measured by the difference in timestamp between a customer
query and an agent response. If the ART is high or the response
time has a lot of variance, then this is a key driver of customer
dissatisfaction
[0066] The position in the chat transcript at which an issue is
posed by the customer is identified (202). The system text mines
the chat transcript for key lines that identify the issue (204).
(See, also, FIG. 12, which is a flow diagram that shows an example
of a text mining approach according to the invention.)
[0067] The model is developed using a supervised machine learning
approach that learns from tagged data. The model is then used to
classify new data. Thus, the data is initially tagged by human
operators to build a model. Thereafter, the new data is applied to
the model to produce a predicted output. The accuracy of the output
first produced by the text mining operation is validated (206) and,
once validation is acceptable, further validation is performed, for
example by comparing against tagged data (208). As the system
learns, the algorithm used for text mining with regard to the issue
of concern is modified (210). Thereafter, the dataset is extracted
and a final data model is built (214).
[0068] Once the final data model is built, new data is applied to
the system. The system then divides the time components in the new
data, i.e. pre-chat, actual chat, and post-chat, between agent time
and customer time (216). A resulting dataset is produced (218)
containing such information as, for example, customer ID, main
issue, one or more sub-issues, agent/customer time for the main
issue, agent/customer time for the sub-issues, transfer type,
transfer time, hold time, pre-chat time, post-chat time, number of
customer lines, number of agent lines, number of lines of
separation, and status concerning disconnections by customer
chats.
[0069] One aspect of the invention provides reporting for various
experiments on the predictive service platform. For example, a
software engine is provided that uses the customer's Web journey
data, as well as CRM data, to target customers, evaluate their
intent and the right time and mode of engagement to fulfill that
intent. This embodiment also provides a program that can take
decisions to engage with a customer in the customer's Web
journey.
[0070] FIGS. 13a and 13b are a flow diagrams showing an algorithm
for extraction of a primary question during a chat session (FIG.
13a) and extracting an issue (FIG. 13b) according to the
invention.
[0071] In FIG. 13a, the first question in a chat session is
identified (300). (See, also, FIGS. 9 and 10 which show two
possible variations in a multitude of possible variations in
identifying the primary issue line. These are all heuristic based
approaches to identifying a primary line.)
[0072] The position of the question in the chat transcript is then
identified (302). In the presently preferred embodiment of the
invention, if the position of the question in the transcript is
greater than or equal to three (306), then the issue is extracted
(305); else, the transcript is analyzed to determine if a phrase
such as "May I help you?" or "May I assist you?" is present (306).
If such a phrase is found, then the next sentence is deemed to be
the key question (308); else, the system identifies the first
customer sentence in the transcript that has at least four words as
the key question (310). Those skilled in the art will appreciate
that the position of the sentence in the transcript, the phrases
identified, and the number of words in the first customer sentence
are a matter of choice when implementing the invention and that
other values and variations on the steps set forth in connection
with FIG. 13a may be used and are considered to be within the scope
of the invention.
[0073] In FIG. 13b, the primary question has been located and the
issue is then extracted. The system extracts a list of FAQs with
regard to the question and having related answers (320). The system
then extracts unigrams and bigrams from the question (322). An
n-gram is a subsequence of n items from a given sequence. The items
in question can be phonemes, syllables, letters, words, or base
pairs according to the application. An n-gram of size 1 is referred
to as a unigram; size 2 is a bigram; etc. An n-gram model is one
type of probabilistic model that can be used in an embodiment of
the invention for predicting the next item in a sequence. The
n-grams are extracted using classic text mining techniques for
feature extraction. A list of top unigrams and bigrams is prepared
based upon their occurrence in customer issues (324) based on
typical criteria used in text mining, such as TFIDF. See, for
example, Sholom M Weiss, Nitin Indurkhya, Tong Zhang, Fred J.
Damerau, Text Mining--Predictive Methods for Analyzing Unstructured
Information, Springer Publications. The bigrams are mapped with
customer issues (326) based on a probabilistic model, where the
probability of a certain n-gram belonging to a certain issue
category is determined based on features that have historically
been seen in chats discussing that issue category. Such mapping of
features to issue category is performed in one embodiment using
manual tagging. The unigrams and bigrams are then mapped back to
the query categories (328). If there is a match, then the issue has
been successfully extracted; else, a match is made to the unigram
to obtain the issue (330).
Problem Predictor
[0074] One embodiment provides a system that self-learns based on
previous customer interactions and their performance metrics. For
example, a program provides a templatized widget framework to
enable an overlay widget, with rich content, on a client's Website
to assist customers in a self-service mode.
[0075] FIG. 14 shows a sample progress table for a problem
predictor according to the invention. In FIG. 14, variables
evaluated include journey variables, source destination variables,
chat time to departure/arrival time, code sharing or non-code
sharing variables, time of day, and geography variables. See, also,
FIGS. 7 and 8.
[0076] In a presently preferred embodiment of the invention,
problem prediction is effected as a product of probabilities p for
a question Q with regard to a plurality of answers A, as shown in
Equation (1) below.
p(Q/A.sub.1, . . . ,An)=p(Q)p(A1/Q)p(A2/Q) . . . p(A.sub.n/Q)
(1)
[0077] This is a classic Naive Bayes algorithm. Other algorithms
that can predict the probability of the response variable, in this
case an issue prediction, based on various customer attributes can
be used and the invention is not limited to the use of a Naive
Bayes algorithm.
Rules Engine
[0078] One aspect of the invention provides plug-and-play support
for various analytical algorithms and complex multivariate models
in different implementations. Examples of such algorithms include
Naive Bayes, Logistic regression, Support Vector Machines, etc.
There could be many other algorithms as well. Such system enables
distributing condition evaluations across a client, i.e. browser,
and server for optimizing performance. A database is provided that
can hold multiple versions of complex rule configurations, and that
can be taken live without any downtime.
[0079] Each published change of rule engine configuration is
associated with a version specific to a client. Typically, the
latest two versions are maintained to allow the possibility of
switching back to a particular version at any point in time.
[0080] A particular version is marked as the active or default
version (typically the latest one), and this version of the
configuration is picked up for all visitors of the website.
However, for experimentation and testing purposes, there is a
possibility to map requests coming in from a set of IPs to a
particular version or randomly select a version based on a
probability distribution.
[0081] While configuring a new version, the new version becomes
available for general use only when marked as the active version
and any existing version is not impacted because of the change. In
effect, there is no downtime incurred for the system because the
publishing and switching of versions are done atomically. A
published version can be checked for quality extensively before it
is used in production, thereby improving the reliability of the
system.
[0082] An aspect of this embodiment is a program that generates
events during the lifecycle of a customer's session, and that
allows other system components to subscribe for, and take
appropriate actions.
[0083] FIG. 15 is a flow diagram that shows a PSP process in the
data collection and rule evaluation stages according to the
invention. Such system supports segmentation and experimentation to
experiment on solutions for a best customer experience and
includes, but is not limited to, performance of analytical models,
as well as engagement experience, e.g. UI and interaction flow,
with the customer data-driven decision making in a Web application,
where a decision is based on client side data, as well as backend,
data.
[0084] Key features of this embodiment of the invention include a
rules engine that divides the entire decision making into three
phases: client side data collection and client side condition
evaluation; server side data collection from third party
integrations (DB, CRM, etc.); and server side condition evaluation
based on client, as well as server side, data.
[0085] Client side data includes, but is not limited to, time on a
page, cookies, DOM data, HTML5 storage, and data obtained anywhere
during a Web journey.
[0086] Server side data includes, but is not limited to, a page
visitor's profile, past history and any third party data coming
from a backend, for example, geographic information, weather
information, etc.
[0087] Rules are defined in different contexts. For example, in a
context, rules are inter-related in the following manner: [0088]
One fired rule can suppress other rules for a configurable amount
of time; [0089] One fired rule suppresses other rules for the
lifetime of the visitor, expiry of which is configurable in the
framework; and [0090] One fired rule can change other rules'
priorities in specific context or for the lifetime of the
visitor.
[0091] The rules engine can be added to any existing portal by
including a simple script tag which loads the required JavaScript
either at the bottom of the including page or in its head tag.
[0092] In an embodiment, some decision making is delegated on the
client side to scale the decision making system. All the complex
rules are hidden on the server side and can be managed by a
configuration UI without any involvement of the portal owner on
which rule engine is tagged.
[0093] Rules can be combined in a group for categorization and rule
management. Rules can interact with each other in the system, such
that the outcome of a rule can enable/disable certain other set of
rules or suppress them for the given visitor for certain period of
time or forever. Rules are evaluated on the server side on highly
scalable servers and, hence, can be very complex based on
multivariate models and scoring of different mathematical
functions. Rules that are executed on the server can also take
benefit of prediction algorithms to extrapolate outcomes given a
set of parameters.
[0094] The rules engine supports multiple versions of the rules
configuration and it is possible to maintain and push one of them
live anytime from the configuration console. The rules engine
decides on the target and control group based on criteria defined
on the backend. It is possible to configure multiple control groups
and test different rules on each of them. The rules engine can
generate multiple events that other consumers can subscribe for
further processing. FIG. 15 is a flow diagram that shows a PSP
process in the data collection and rule evaluation stages according
to the invention.
Client Storage
[0095] Today, all popular browsers support multiple tab or multiple
window browsing and users do use multiple tabs to browse the
Internet. It may happen that a user opens the same Website in
multiple tabs at the same time. There is a possibility that a
Website, when opened in a browser, needs to store data in user's
computer storage to function properly. Thus, it is clear that a
Website may need to store data on the user's machine and that, too,
across multiple tabs or windows. Also, most of the popular
browsers, such as Mozilla Firefox, Internet Explorer, and Safari,
do not provide any synchronization construct for Websites to be
able to access/write data in user's computer storage from multiple
windows/tabs in a consistent and safe manner.
[0096] One feature of the invention provides a system that takes
advantage of the persistent local storage on the browser to keep
track of all the information through out the user's journey,
thereby making the server stateless. In an embodiment, a program
guides the customer through a resolution path on the Website using
a step-by-step widget, that can track the exact state of the user.
Such program can be a module or script that runs in browsers and
provides synchronization construct for multiple tabs/browsers, thus
opening up the same Website to access computer storage in a
consistent manner using, for example, browser events and
JavaScript.
[0097] Thus, this embodiment comprises a solution which provides
any Website with a consistent and safe way to read and write to the
user's computer storage from multiple tabs or windows. The
implementation approach is generic and any Website can use it.
[0098] On a high level, the system achieves read/write
synchronization on the user's computer storage by dividing the
storage into different areas and using the browser's JavaScript
events. There are algorithms which use JavaScript events generated
by the browser and the storage itself to provide the above
mentioned synchronization and a way to store the data into the
user's computer storage from multiple windows and tabs.
[0099] The following events are examples of events that are used in
the invention: focus event, blur event, mouse over event, unload
event, and onload event. The system creates the following two
logical storage areas to store all the data: [0100] Shared Storage
area: which is common for the Website and for all tabs and windows
and is accessed, read and write, from all the windows; and [0101]
Window storage area: which every window has its own copy of. This
area is also accessed, read only, from all the windows.
[0102] A locking mechanism is used to provide a given window the
right to read or write into the shared storage area. Thus, at a
given point of time, only the window that has this lock and can
read/write into the shared storage area. The locking mechanism is
implemented in this embodiment using a combination of focus, blur,
and mouse over events generated by the browser; and lock
information, including timestamp, that is maintained inside a
window storage area of each window. The events, i.e. focus, blur,
mouse over, are used to switch the lock from one window to another.
The lock information stored in the window storage area determines
which window currently has the lock. Also, the read access to the
window storage area of all the windows from a given window is such
that it ensures fault tolerance in the case of concurrent multiple
reads and a single write.
[0103] FIG. 16 is a timeline that shows a visitor session life
cycle according to the invention.
[0104] FIG. 17 is a block schematic diagram that shows periodic,
on-demand user activity information tracking according to the
invention.
[0105] FIG. 18 is a block schematic diagram that shows the multiple
tab window synchronization problem.
[0106] FIG. 19 is a block schematic diagram that shows a client
side information storage system according to the invention.
[0107] FIG. 20 is a flow diagram that shows a multiple tab
synchronization algorithm according to the invention.
Experimentation Framework
[0108] An interaction system can be composed of several building
blocks which together serve a common purpose, i.e. interact with
the end user in the best possible manner.
[0109] These building blocks can be: [0110] "Rules" which trigger a
new interaction flow or an action within the interaction. [0111]
The channel of the interaction, for example Web, phone, self
service, chat, voice, etc. [0112] The experience within a given
channel. [0113] The seamless handling of an interaction across
various channels.
[0114] To optimize these building blocks to achieve the best
business outcomes, one needs to experiment with these building
blocks and determine which configuration of these building blocks
produces the optimum results in a real world environment. The
optimization can be on any parameter or set of parameters, based on
the business needs.
[0115] Here are a few example use cases: [0116] 1. The ability to
evaluate different set of rules for different samples of visitors
in real time. This experimentation can help figure out which set of
rules performs the best. [0117] 2. The ability to take different
actions whenever a rule triggers for different samples of visitors
in real time. This experimentation can help figure out which action
performs the best. [0118] 3. The ability to have different working,
content, and look and feel of an action for different samples of
visitors in real time. This again, can help figure out which
content/working/look and feel leads to best results.
[0119] While experimentation is an utmost need in today's fast
changing world, the cost of a failure in an experiment needs to be
kept low. Experimentation should happen through a pre-configured
system which can ensure predictability. Experimentation should be
possible in real time and in the real world (live) environment. It
should be possible to try out different configurations within any
building block.
Experimentables
[0120] An experimentable is an entity that someone may like to
experiment with. This means the same entity may have different
values for different samples of users. The intention is to find out
which value for that entity gives optimum results.
Examples
[0121] Set of rules to be evaluated on website visitors. In this
case, different sets of rules are evaluated for different samples
of visitors to see which set works best. [0122] Widget. In this
case, different widgets can be shown to the different samples of
users. [0123] Widget experience. In this case, a different widget
experience, including content, flow, color theme, etc. is shown to
different samples of visitors.
Experimentable Values
[0124] There are various values an experimentable may take
depending on the situation, these values are termed as
experimentable values.
[0125] For example: [0126] A "widgetColor" experimentable may take
{Red, Green, Blue} values for different samples of visitors. [0127]
A "widgetWelcomeMessage" experimentable may take {"Hello", "Hi"}
values for different samples of visitors.
Experimentable Rules
[0128] For the purpose of experimentation, every experimentable can
be configured to have many different values. Which value should be
applied for a given visitor can be dependent on various factors.
Different values need to be applied under different situations.
[0129] To articulate the mapping of situations to set of values
possible in that situation, the experimentation framework provides
the concept of experimentable rules.
[0130] An experimentable rule is a situation under which a given
set of experimentable values should be considered. These rules are
totally flexible can be based on any number, kind of conditions.
The variables used in these conditions again can come from any
source, including an online real time parameter, an offline
pre-configured parameter, and a derived parameter which is a
combination of the above. These rules are evaluated in the
configured order of priority. If a rule is satisfied, the rest of
the (lower priority) rules are not evaluated.
[0131] For example: [0132] Lets say we want to configure the
experimentable--"WidgetColor". [0133] We want one of {Red, Green,
Blue} for the visitors which satisfy a situation `x`. [0134] And we
want one of {violet, pink} for the visitors which satisfy the
situation Y. [0135] In such a case we should configure two
experiment rules `x` and `y`. [0136] `x` and `y` should be composed
of the conditions which define the situations `x` and `y`
respectively. Experimentable Value Selection policy
[0137] Every experimentable rule points to a set of values which
should be considered for a given visitor. The selection of the
value within the considered set depends on a pre-configured policy.
This is termed as experimentable value selection policy. Any policy
can be applied to choose between the set of values.
[0138] For example: [0139] Lets say we want to configure the
experimentable--"WidgetColor". [0140] We want one of {Red, Green,
Blue} for the visitors which satisfy the experiment rule `x`.
[0141] The selection policy could be as simple as "RoundRobin".
[0142] In such a case, Red, Green and blue will be selected in a
round robin fashion.
Experimentation Tags
[0143] An experimentation tag is a string key which can have any
one of a set of values. The selection of the experimentation tag
value is done whenever the given tag is assigned to a new visitor.
The experimentation tag value determines the sample into which this
visitor falls into. Every user can be assigned multiple
experimentation tags, and the selected value with each tag, during
various stages of a session. The value of a given tag for a visitor
is determined based on a random number sampling. Also,
experimentation tags are persistent. This means that once an
experiment tag is created it can be used across all experimentables
for a given visitor.
[0144] Experimentation Tag Values: An experimentation tag value is
a string which helps in identifying a particular kind of output for
a given experimentable.
[0145] For example: [0146] WidgetTag: {VisitorsSampleForWidgets1,
VisitorsSampleForWidgets2}. These are the two string values of the
tag with the key `WidgetTag`. [0147] GeneralTag:
{generalVisitorSample1, generalVisitorSample2,
generalVisitorSample3}. These are the three possible string values
of the tag with the key `GeneralTag`.
Example Experimentation Tag Value Distributions:
[0147] [0148] WidgetTag: 10% visitors--VisitorsSampleForWidgets1,
90% visitors--VisitorsSampleForWidgets1.
[0149] Out of all the visitors which are assigned the `widgetTag`,
10% would have the value `VisitorsSampleForWidgets1` and the rest
would have `VisitorsSampleForWidgets2`. [0150] GeneralTag: 5%
visitors generalVisitorSample1, 80% visitors generalVisitorSample2,
15% visitors--generalVisitorSample3
[0151] Out of all the visitors which are assigned the `GeneralTag`,
5% would have the value `generalVisitorSample1`, 80% would have the
value `generalVisitorSample2 ` and the rest would have the value
`generalVisitorSample2`.
[0152] Given the above two tags, the visitors are sampled across
two dimensions and 6(2.times.3) samples are created (see Table 1
below).
TABLE-US-00001 TABLE 1 General Tag General Tag (5%) General Tag
(80%) (15%) WidgetTag sample 1-10% of sample 2-10% of sample 3-10%
of (10) 5% 80% 15% WidgetTag sample 4-90% of sample 5-90% of sample
6-90% of (90) 5% 80% 15%
[0153] Table 2 below provides an example scenario where each
visitor is assigned two experimentation tags and the values are
assigned based on random number sampling.
TABLE-US-00002 TABLE 2 WidgetTag (Values GeneralTag (Values
Visitors below) below) visitor1 - John VisitorsSampleForWidgets1
generalVisitorSample2 visitor2 - Jane VisitorsSampleForWidgets2
generalVisitorSample1 visitor3 - VisitorsSampleForWidgets2
generalVisitorSample3 unidentified
Design
[0154] FIG. 21 is a block schematic diagram that shows a high level
design of a real time experimentation framework according to the
invention.
[0155] FIG. 22 is a flow diagram that show visitor tagging
according to the invention.
[0156] FIG. 23 is a flow diagram that shows real time
experimentable value determination according to the invention.
Features
[0157] 1. The cost of a failure for experiment needs can be kept
low by keeping the experiment tag value percentage configurations.
[0158] 2. Experimentation happens through a pre-configured system,
including experiment tags, rules, values, and the selection policy.
[0159] 3. Experimentation is supported in real time and in the real
world (live) environment. Every visitor's end-to-end experience can
be experimented with given the above system. [0160] 4. It is
possible to experiment the following building blocks of an
interaction management system: [0161] a. The rules that should be
evaluated on a given visitor. [0162] b. The engagement channel that
should be selected for a given visitor. [0163] c. The engagement
experience within the given channel. [0164] 5. Also, it is possible
to create independent visitor samples at different stages of the
interaction using experimentation tags. [0165] 6. An
experimentation tag is persistent so that the same tag can be used
across all the various experimentables for a given a visitor
interaction experience. [0166] 7. Experimentable values can be
chosen based on the following two constructs: [0167] a.
Experimentable rules; and [0168] b. Value selection policy. [0169]
8. Every experimentable rule can be based on the following inputs
parameters: [0170] a. An online real time parameter including
system parameters, such as experiment tags, etc.; and including
visitor parameters, such as Website variables, etc.; [0171] b. An
offline pre-configured parameter; and [0172] c. A derived parameter
which is a combination of the above. [0173] 9. Experimentable value
selection is a based on a policy and can be configured separately.
[0174] 10. Value selection policy is de-coupled from the experiment
rule evaluation (situation determination).
Computer Implementation
[0175] FIG. 24 is a block schematic diagram of a machine in the
exemplary form of a computer system 1600 within which a set of
instructions for causing the machine to perform any one of the
foregoing methodologies may be executed. In alternative
embodiments, the machine may comprise or include a network router,
a network switch, a network bridge, personal digital assistant
(PDA), a cellular telephone, a Web appliance or any machine capable
of executing or transmitting a sequence of instructions that
specify actions to be taken.
[0176] The computer system 1600 includes a processor 1602, a main
memory 1604 and a static memory 1606, which communicate with each
other via a bus 1608. The computer system 1600 may further include
a display unit 1610, for example, a liquid crystal display (LCD) or
a cathode ray tube (CRT). The computer system 1600 also includes an
alphanumeric input device 1612, for example, a keyboard; a cursor
control device 1614, for example, a mouse; a disk drive unit 1616,
a signal generation device 1618, for example, a speaker, and a
network interface device 1628.
[0177] The disk drive unit 1616 includes a machine-readable medium
1624 on which is stored a set of executable instructions, i.e.,
software, 1626 embodying any one, or all, of the methodologies
described herein below. The software 1626 is also shown to reside,
completely or at least partially, within the main memory 1604
and/or within the processor 1602. The software 1626 may further be
transmitted or received over a network 1630 by means of a network
interface device 1628.
[0178] In contrast to the system 1600 discussed above, a different
embodiment uses logic circuitry instead of computer-executed
instructions to implement processing entities. Depending upon the
particular requirements of the application in the areas of speed,
expense, tooling costs, and the like, this logic may be implemented
by constructing an application-specific integrated circuit (ASIC)
having thousands of tiny integrated transistors. Such an ASIC may
be implemented with complementary metal oxide semiconductor (CMOS),
transistor-transistor logic (TTL), very large systems integration
(VLSI), or another suitable construction. Other alternatives
include a digital signal processing chip (DSP), discrete circuitry
(such as resistors, capacitors, diodes, inductors, and
transistors), field programmable gate array (FPGA), programmable
logic array (PLA), programmable logic device (PLD), and the
like.
[0179] It is to be understood that embodiments may be used as or to
support software programs or software modules executed upon some
form of processing core (such as the CPU of a computer) or
otherwise implemented or realized upon or within a machine or
computer readable medium. A machine-readable medium includes any
mechanism for storing or transmitting information in a form
readable by a machine, e.g. a computer. For example, a machine
readable medium includes read-only memory (ROM); random access
memory (RAM); magnetic disk storage media; optical storage media;
flash memory devices; electrical, optical, acoustical or other form
of propagated signals, for example, carrier waves, infrared
signals, digital signals, etc.; or any other type of media suitable
for storing or transmitting information.
[0180] Although the invention is described herein with reference to
the preferred embodiment, one skilled in the art will readily
appreciate that other applications may be substituted for those set
forth herein without departing from the spirit and scope of the
present invention. Accordingly, the invention should only be
limited by the Claims included below.
* * * * *