U.S. patent application number 09/866410 was filed with the patent office on 2002-11-28 for routing instant messages using configurable, pluggable delivery managers.
This patent application is currently assigned to International Business Machines Corporation. Invention is credited to Matsa, Moshe M., Quiaot, Julius Q., Vincent, Christopher R..
Application Number | 20020178227 09/866410 |
Document ID | / |
Family ID | 25347549 |
Filed Date | 2002-11-28 |
United States Patent
Application |
20020178227 |
Kind Code |
A1 |
Matsa, Moshe M. ; et
al. |
November 28, 2002 |
Routing instant messages using configurable, pluggable delivery
managers
Abstract
Configurable, pluggable delivery managers are responsible for
routing instant messages to intended recipients. A delivery manager
is selected for a particular message, and that delivery manager
defines, at runtime, a delivery policy to be used to route the
instant message to an intended recipient of the message. The
delivery policy is based upon a configuration of the delivery
manager, a user configuration of the intended recipient, and one or
more available delivery mechanisms. The delivery manager routes the
instant message using the delivery policy.
Inventors: |
Matsa, Moshe M.; (Cambridge,
MA) ; Quiaot, Julius Q.; (Somerville, MA) ;
Vincent, Christopher R.; (Somerville, MA) |
Correspondence
Address: |
Blanche E. Schiller, Esq.
HESLIN & ROTHENBERG, P.C.
5 Columbia Circle
Albany
NY
12203
US
|
Assignee: |
International Business Machines
Corporation
Armonk
NY
|
Family ID: |
25347549 |
Appl. No.: |
09/866410 |
Filed: |
May 25, 2001 |
Current U.S.
Class: |
709/206 ;
709/238 |
Current CPC
Class: |
H04L 9/40 20220501; H04L
51/214 20220501; H04L 67/54 20220501; H04L 51/04 20130101; H04L
41/00 20130101; H04L 67/63 20220501; H04L 69/329 20130101 |
Class at
Publication: |
709/206 ;
709/238 |
International
Class: |
G06F 015/16; G06F
015/173 |
Claims
What is claimed is:
1. A method of routing instant messages, said method comprising:
defining, at runtime by a pluggable delivery manager, a delivery
policy to be used to route an instant message to an intended
recipient of the instant message, wherein the delivery policy is
based upon a configuration of the pluggable delivery manager, a
user configuration of the intended recipient, and one or more
available delivery mechanisms; and routing said instant message to
the intended recipient using said delivery policy.
2. The method of claim 1, wherein said defining of the delivery
policy comprises: defining a routing policy based on said user
configuration and said one or more available delivery mechanisms,
wherein said routing policy includes one or more possible delivery
mechanisms; and selecting from the routing policy at least one
delivery mechanism to be included in the delivery policy, said
selecting being based upon the configuration of the pluggable
delivery manager.
3. The method of claim 1, wherein said defining of the delivery
policy comprises: determining, from the user configuration, one or
more delivery mechanisms supported by said intended recipient;
determining which of said one or more delivery mechanisms supported
by said intended recipient are included in the one or more
available delivery mechanisms to yield one or more possible
delivery mechanisms; and determining which of the one or more
possible delivery mechanisms are supported by the pluggable
delivery manager, as indicated in the configuration of the
pluggable delivery manager, a result of which defines the delivery
policy.
4. The method of claim 3, wherein said routing comprises
dispatching the instant message to at least one delivery mechanism
of the delivery policy, as indicated by the delivery policy.
5. The method of claim 1, wherein said routing comprises
dispatching the instant message to at least one delivery mechanism
of the delivery policy, as indicated by the delivery policy.
6. The method of claim 1, further comprising selecting the
pluggable delivery manager from a plurality of delivery
managers.
7. The method of claim 1, further comprising configuring said
pluggable delivery manager.
8. The method of claim 7, wherein said configuring comprises
selecting a configuration for said pluggable delivery manager from
a set of one or more configurations, wherein said selecting uses
content of the instant message to make the selection.
9. The method of claim 7, wherein said configuring comprises
configuring said pluggable delivery manager at runtime.
10. The method of claim 1, wherein the intended recipient is
indicated by the instant message.
11. The method of claim 1, wherein at least one available delivery
mechanism of said one or more available delivery mechanisms is
pluggable.
12. A method of routing instant messages, said method comprising:
selecting a delivery manager to route an instant message to an
intended recipient of the instant message, said delivery manager
being pluggable; configuring, at runtime, said delivery manager,
wherein the configuring comprises selecting a configuration for
said delivery manager from a set of one or more configurations,
said selecting using content of the instant message to make the
selection; querying, by the delivery manager, a user configuration
of the intended recipient to determine one or more delivery
mechanisms supported by the intended recipient; determining, by the
delivery manager, one or more available delivery mechanisms;
identifying, by the delivery manager, one or more delivery
mechanisms that are common to a result of the querying and the
determining to yield one or more possible delivery mechanisms;
selecting, from the one or more possible delivery mechanisms, at
least one delivery mechanism supported by the delivery manager; and
routing the instant message to the intended recipient using the at
least one delivery mechanism.
13. The method of claim 12, wherein said at least one delivery
mechanism supported by the delivery manager is included within the
configuration of the delivery manager.
14. The method of claim 12, wherein said routing comprises
dispatching, by the delivery manager, the instant message to one or
more delivery mechanisms of the at least one delivery mechanism in
accordance with a policy specified by said configuration of the
delivery manager.
15. The method of claim 12, wherein at least one available delivery
mechanism of said one or more available delivery mechanisms is
pluggable.
16. A system of routing instant messages, said system comprising:
means for defining, at runtime by a pluggable delivery manager, a
delivery policy to be used to route an instant message to an
intended recipient of the instant message, wherein the delivery
policy is based upon a configuration of the pluggable delivery
manager, a user configuration of the intended recipient, and one or
more available delivery mechanisms; and means for routing said
instant message to the intended recipient using said delivery
policy.
17. The system of claim 16, wherein said means for defining the
delivery policy comprises: means for defining a routing policy
based on said user configuration and said one or more available
delivery mechanisms, wherein said routing policy includes one or
more possible delivery mechanisms; and means for selecting from the
routing policy at least one delivery mechanism to be included in
the delivery policy, the selecting being based upon the
configuration of the pluggable delivery manager.
18. The system of claim 16, wherein said means for defining the
delivery policy comprises: means for determining, from the user
configuration, one or more delivery mechanisms supported by said
intended recipient; means for determining which of said one or more
delivery mechanisms supported by said intended recipient are
included in the one or more available delivery mechanisms to yield
one or more possible delivery mechanisms; and means for determining
which of the one or more possible delivery mechanisms are supported
by the pluggable delivery manager, as indicated in the
configuration of the pluggable delivery manager, a result of which
defines the delivery policy.
19. The system of claim 18, wherein said means for routing
comprises means for dispatching the instant message to at least one
delivery mechanism of the delivery policy, as indicated by the
delivery policy.
20. The system of claim 16, wherein said means for routing
comprises means for dispatching the instant message to at least one
delivery mechanism of the delivery policy, as indicated by the
delivery policy.
21. The system of claim 16, further comprising means for selecting
the pluggable delivery manager from a plurality of delivery
managers.
22. The system of claim 16, further comprising means for
configuring said pluggable delivery manager.
23. The system of claim 22, wherein said means for configuring
comprises means for selecting a configuration for said pluggable
delivery manager from a set of one or more configurations, wherein
the selecting uses content of the instant message to make the
selection.
24. The system of claim 22, wherein said means for configuring
comprises means for configuring said pluggable delivery manager at
runtime.
25. The system of claim 16, wherein the intended recipient is
indicated by the instant message.
26. The system of claim 16, wherein at least one available delivery
mechanism of said one or more available delivery mechanisms is
pluggable.
27. A system of routing instant messages, said system comprising:
means for selecting a delivery manager to route an instant message
to an intended recipient of the instant message, said delivery
manager being pluggable; means for configuring, at runtime, said
delivery manager, wherein said means for configuring comprises
means for selecting a configuration for said delivery manager from
a set of one or more configurations, the selecting using content of
the instant message to make the selection; means for querying, by
the delivery manager, a user configuration of the intended
recipient to determine one or more delivery mechanisms supported by
the intended recipient; means for determining, by the delivery
manager, one or more available delivery mechanisms; means for
identifying, by the delivery manager, one or more delivery
mechanisms that are common to a result of the querying and the
determining to yield one or more possible delivery mechanisms;
means for selecting, from the one or more possible delivery
mechanisms, at least one delivery mechanism supported by the
delivery manager; and means for routing the instant message to the
intended recipient using the at least one delivery mechanism.
28. The system of claim 27, wherein said at least one delivery
mechanism supported by the delivery manager is included within the
configuration of the delivery manager.
29. The system of claim 27, wherein said means for routing
comprises means for dispatching, by the delivery manager, the
instant message to one or more delivery mechanisms of the at least
one delivery mechanism in accordance with a policy specified by
said configuration of the delivery manager.
30. The system of claim 27, wherein at least one available delivery
mechanism of said one or more available delivery mechanisms is
pluggable.
31. A system of routing instant messages, said system comprising: a
delivery policy defined, at runtime by a pluggable delivery
manager, to be used to route an instant message to an intended
recipient of the instant message, wherein the delivery policy is
based upon a configuration of the pluggable delivery manager, a
user configuration of the intended recipient, and one or more
available delivery mechanisms; and said pluggable delivery manager
to route said instant message to the intended recipient using said
delivery policy.
32. A system of routing instant messages, said system comprising: a
delivery manager to route an instant message to an intended
recipient of the instant message, wherein said delivery manager is
pluggable, and configured, at runtime, by selecting, using content
of the instant message, a configuration for said delivery manager
from a set of one or more configurations; said delivery manager
being adapted to: query a user configuration of the intended
recipient to determine one or more delivery mechanisms supported by
the intended recipient; determine one or more available delivery
mechanisms; identify one or more delivery mechanisms that are
common to a result of the query and the determination to yield one
or more possible delivery mechanisms; select, from the one or more
possible delivery mechanisms, at least one delivery mechanism
supported by the delivery manager; and route the instant message to
the intended recipient using the at least one delivery
mechanism.
33. At least one program storage device readable by a machine,
tangibly embodying at least one program of instructions executable
by the machine to perform a method of routing instant messages,
said method comprising: defining, at runtime by a pluggable
delivery manager, a delivery policy to be used to route an instant
message to an intended recipient of the instant message, wherein
the delivery policy is based upon a configuration of the pluggable
delivery manager, a user configuration of the intended recipient,
and one or more available delivery mechanisms; and routing said
instant message to the intended recipient using said delivery
policy.
34. The at least one program storage device of claim 33, wherein
said defining of the delivery policy comprises: defining a routing
policy based on said user configuration and said one or more
available delivery mechanisms, wherein said routing policy includes
one or more possible delivery mechanisms; and selecting from the
routing policy at least one delivery mechanism to be included in
the delivery policy, said selecting being based upon the
configuration of the pluggable delivery manager.
35. The at least one program storage device of claim 33, wherein
said defining of the delivery policy comprises: determining, from
the user configuration, one or more delivery mechanisms supported
by said intended recipient; determining which of said one or more
delivery mechanisms supported by said intended recipient are
included in the one or more available delivery mechanisms to yield
one or more possible delivery mechanisms; and determining which of
the one or more possible delivery mechanisms are supported by the
pluggable delivery manager, as indicated in the configuration of
the pluggable delivery manager, a result of which defines the
delivery policy.
36. The at least one program storage device of claim 35, wherein
said routing comprises dispatching the instant message to at least
one delivery mechanism of the delivery policy, as indicated by the
delivery policy.
37. The at least one program storage device of claim 33, wherein
said routing comprises dispatching the instant message to at least
one delivery mechanism of the delivery policy, as indicated by the
delivery policy.
38. The at least one program storage device of claim 33, wherein
said method further comprises selecting the pluggable delivery
manager from a plurality of delivery managers.
39. The at least one program storage device of claim 33, wherein
said method further comprises configuring said pluggable delivery
manager.
40. The at least one program storage device of claim 39, wherein
said configuring comprises selecting a configuration for said
pluggable delivery manager from a set of one or more
configurations, wherein said selecting uses content of the instant
message to make the selection.
41. The at least one program storage device of claim 39, wherein
said configuring comprises configuring said pluggable delivery
manager at runtime.
42. The at least one program storage device of claim 33, wherein
the intended recipient is indicated by the instant message.
43. The at least one program storage device of claim 33, wherein at
least one available delivery mechanism of said one or more
available delivery mechanisms is pluggable.
44. At least one program storage device readable by a machine,
tangibly embodying at least one program of instructions executable
by the machine to perform a method of routing instant messages,
said method comprising: selecting a delivery manager to route an
instant message to an intended recipient of the instant message,
said delivery manager being pluggable; configuring, at runtime,
said delivery manager, wherein the configuring comprises selecting
a configuration for said delivery manager from a set of one or more
configurations, said selecting using content of the instant message
to make the selection; querying, by the delivery manager, a user
configuration of the intended recipient to determine one or more
delivery mechanisms supported by the intended recipient;
determining, by the delivery manager, one or more available
delivery mechanisms; identifying, by the delivery manager, one or
more delivery mechanisms that are common to a result of the
querying and the determining to yield one or more possible delivery
mechanisms; selecting, from the one or more possible delivery
mechanisms, at least one delivery mechanism supported by the
delivery manager; and routing the instant message to the intended
recipient using the at least one delivery mechanism.
45. The at least one program storage device of claim 44, wherein
said at least one delivery mechanism supported by the delivery
manager is included within the configuration of the delivery
manager.
46. The at least one program storage device of claim 44, wherein
said routing comprises dispatching, by the delivery manager, the
instant message to one or more delivery mechanisms of the at least
one delivery mechanism in accordance with a policy specified by
said configuration of the delivery manager.
47. The at least one program storage device of claim 44, wherein at
least one available delivery mechanism of said one or more
available delivery mechanisms is pluggable.
Description
TECHNICAL FIELD
[0001] This invention relates, in general, to instant messaging,
and in particular, to providing a messaging environment in which
configurable, pluggable delivery managers are used to route instant
messages to intended recipients.
BACKGROUND OF THE INVENTION
[0002] In today's communication environments, instant messaging is
common place. Users send messages to one or more intended
recipients and expect that those messages will be delivered
substantially instantly. Various mechanisms are used for instant
messaging, including one or more instant messaging protocols, such
as the SameTime protocol offered by International Business Machines
Corporation or Instant Messenger offered by AOL. Other techniques
are also used to send instant messages, such as pager gateways.
[0003] Although instant messaging is a common practice, frequently
there are situations in which the message does not reach the
intended recipient. For example, the messaging protocol is down or
the intended recipient does not have access to the protocol sending
the message (e.g., no computer access).
[0004] Thus, there is still a need for a capability that enhances
the success rate with which an instant message reaches the intended
recipient. A further need exists for an environment that is capable
of providing a configurable and flexible delivery policy to be used
to route messages to intended recipients.
SUMMARY OF THE INVENTION
[0005] The shortcomings of the prior art are overcome and
additional advantages are provided through the provision of a
method of routing instant messages. The method includes, for
instance, defining, at runtime by a pluggable delivery manager, a
delivery policy to be used to route an instant message to an
intended recipient of the instant message, wherein the delivery
policy is based upon a configuration of the pluggable delivery
manager, a user configuration of the intended recipient, and one or
more available delivery mechanisms; and routing the instant message
to the intended recipient using the delivery policy.
[0006] In a further aspect of the present invention, a method of
routing instant messages is provided. The method includes, for
instance, selecting a delivery manager to route an instant message
to an intended recipient of the instant message, the delivery
manager being pluggable; configuring, at runtime, the delivery
manager, wherein the configuring comprises selecting a
configuration for the delivery manager from a set of one or more
configurations, the selecting using content of the instant message
to make the selection; querying, by the delivery manager, a user
configuration of the intended recipient to determine one or more
delivery mechanisms supported by the intended recipient;
determining, by the delivery manager, one or more available
delivery mechanisms; identifying, by the delivery manager, one or
more delivery mechanisms that are common to a result of the
querying and the determining to yield one or more possible delivery
mechanisms; selecting, from the one or more possible delivery
mechanisms, at least one delivery mechanism supported by the
delivery manager; and routing the instant message to the intended
recipient using the at least one delivery mechanism.
[0007] System and computer program products corresponding to the
above-summarized methods are also described and claimed herein.
[0008] Advantageously, a messaging environment is provided, in
which delivery managers are plugged in, dynamically configured at
runtime, and used to control the routing of instant messages from
users to intended recipients. The delivery managers determine and
apply delivery policies, which are based on user configurations,
currently available delivery mechanisms, and the configuration of
the delivery managers.
[0009] In an aspect of the present invention, an instant message
delivery environment is provided, which integrates multiple
protocols and notification services to provide a more robust,
intelligent technique of synchronous communication.
[0010] Additional features and advantages are realized through the
techniques of the present invention. Other embodiments and aspects
of the invention are described in detail herein and are considered
a part of the claimed invention.
BRIEF DESCRIPTION OF THE DRAWINGS
[0011] The subject matter which is regarded as the invention is
particularly pointed out and distinctly claimed in the claims at
the conclusion of the specification. The foregoing and other
objects, features, and advantages of the invention are apparent
from the following detailed description taken in conjunction with
the accompanying drawings in which:
[0012] FIG. 1 depicts one embodiment of a computing environment
incorporating and using aspects of the present invention;
[0013] FIG. 2 depicts one embodiment of the logic associated with
routing an instant message using a configurable and pluggable
delivery manager, in accordance with an aspect of the present
invention;
[0014] FIG. 3 depicts one example of an instant message, in
accordance with an aspect of the present invention;
[0015] FIG. 4 depicts one embodiment of a delivery manager
database, in accordance with an aspect of the present
invention;
[0016] FIG. 5 depicts one example of a delivery manager
configuration database, in accordance with an aspect of the present
invention;
[0017] FIG. 6 depicts one embodiment of a user configuration
database, in accordance with an aspect of the present
invention;
[0018] FIG. 7 depicts one example of a delivery mechanism database,
in accordance with an aspect of the present invention; and
[0019] FIG. 8 depicts a particular routing example, which uses
aspects of the present invention.
BEST MODE FOR CARRYING OUT THE INVENTION
[0020] In accordance with an aspect of the present invention, a
messaging environment is provided, in which delivery managers
(i.e., routing logic modules) are plugged in, dynamically
configured at run-time, and used to control the routing of instant
messages from users to intended recipients (e.g., other users). The
delivery managers determine and apply delivery policies, which are
based on user configurations, currently available delivery
mechanisms, and the configuration of the delivery managers, to
route the messages.
[0021] One embodiment of a computing environment incorporating and
using aspects of the present invention is depicted in FIG. 1. As
depicted in FIG. 1, a computing environment 100 includes, for
instance, at least one computing unit 102 coupled to at least one
computing unit 104 via a connection 106. Each computing unit
includes, for example, a personal computer, a workstation, a laptop
computer, or any other type of computer. As one example, each unit
is a personal computer based on the UNIX architecture. Further, the
connection is a standard connection, such as any type of wire
connection, token ring, or network connection, to name just a few
examples. Alternatively, the connection is a communications
channel, which may include one or more servers.
[0022] Executing on at least one of the computing units (e.g.,
Computing Unit 1) are one or more client applications that wish to
send instant messages to one or more intended recipients (such as,
users on Computing Unit 2 or other computing units). The client
applications run in a messaging environment, which supports
multiple diverse delivery managers that are responsible for routing
the messages.
[0023] In accordance with an aspect of the present invention, the
delivery managers can be dynamically added and/or configured at
runtime. Thus, the user can select at runtime which delivery
manager to use and how it is to be configured for a particular
message. The delivery manager then uses a delivery policy to
control delivery of that message. The delivery policy is
constrained by recipient configuration, delivery manager
configuration, and available delivery mechanisms, as described
below.
[0024] One embodiment of the logic associated with routing an
instant message from a user to an intended recipient is described
with reference to FIG. 2. This logic is executed by, for instance,
a client application of a computing environment.
[0025] Referring to FIG. 2, initially, a user composes an instant
message to be sent to the recipient, STEP 200. One example of such
a message is depicted in FIG. 3. As shown, an instant message 300
includes, for instance, a user name 302 indicating the intended
recipient of the message; a message body 304, including the message
to be delivered to the intended recipient; and one or more optional
properties 306. As one example, the properties include a variety of
features, such as behavior (e.g., the priority of the message), an
expiration date of when the message is to expire, and/or any other
features, as desired.
[0026] Returning to FIG. 2, in addition to composing the message, a
delivery manager, responsible for routing the particular message,
is selected, STEP 202. For example, the client application presents
a drop-down menu of a group of one or more available delivery
managers, (e.g., available classes of delivery managers), and the
user selects one of those managers. As a further example, the
client application includes logic (e.g., a selection based on
criteria, such as intended recipient, etc.) that selects a delivery
manager from the group of available delivery managers.
[0027] The group of delivery managers is stored, for instance,
within a database 400 (FIG. 4), which is accessible by the client
application. That is, the database includes a list of available
delivery managers. The delivery managers are pluggable and
hot-swappable (e.g., can be added and/or changed at runtime). In
particular, multiple implementations and functional variants of
delivery managers may exist simultaneously and be dynamically
added, removed or changed.
[0028] Referring again to FIG. 2, subsequent to selecting a
particular class of delivery manager, an instance of the delivery
manager is created and the message is assigned thereto, STEP 204.
In the example presented herein, each message is assigned to its
own delivery manager. However, in other embodiments, a delivery
manager may service multiple messages.
[0029] Thereafter, a configuration for the delivery manager is
selected from, for instance, a delivery manager configuration
database, STEP 206. An example of one such database is depicted in
FIG. 5. As shown, a delivery manager configuration database 500
includes a configuration table 501 for each delivery manager.
Configuration table 501 includes one or more delivery manager
configurations 502 for its respective delivery manager. These
configurations are used to dynamically configure the delivery
manager, at runtime.
[0030] In one embodiment, the particular configuration for the
chosen delivery manager is selected based on the content of the
message. For example, a value of one of the properties, such as
priority, is used to determine which configuration is selected.
That is, if Priority=Normal (see 306 of FIG. 3), then the
configuration for Normal Priority (see FIG. 5) is selected.
Similarly, if Priority=Urgent, then the configuration for Urgent
Priority is selected.
[0031] Subsequent to selecting a configuration for the delivery
manager, the delivery manager is initialized with the selected
configuration data, STEP 208 (FIG. 2). This dynamically configures
the delivery manager, and the delivery manager is ready to begin
message routing.
[0032] As an initial step of the routing process, the delivery
manager defines a routing policy to be used to route the message to
the intended recipient, STEP 210. One component of defining the
policy includes querying, by the delivery manager, a user
configuration database to determine how the intended recipient
would like to receive the message, STEP 212.
[0033] One example of a user configuration database is depicted in
FIG. 6. A user configuration database 600 includes a delivery
mechanism table 602 for each valid message recipient. Each user's
table includes configuration information 604 for one or more of the
delivery mechanisms of the computing environment that are supported
by that user. That is, each intended recipient is a logical user
that has a presence at one or more logical locations, as defined by
the table.
[0034] The configuration information includes an identification of
each delivery mechanism supported by the user (e.g., Instant
Messaging (IM) Protocol 2, Email, Pager), and mechanism-specific
configurations. The mechanism-specific configurations include data,
such as recipient login names on specific servers (e.g.,
user=jsmith@im.net, etc.), public keys for encrypted messaging
protocols, etc.
[0035] The user name of the message is used as an index into the
user configuration database to locate the table corresponding to
that user. The delivery manager accesses the table to determine how
the intended recipient desires to receive the message. In the
example depicted in FIG. 6, the user name is John Smith, and the
mechanisms for John Smith include: Instant Messaging Protocol 2,
Email and Pager.
[0036] Returning to FIG. 2, in addition to querying the user
configuration database to define a routing policy, the delivery
manager also queries a Delivery Mechanism Database to determine the
active delivery mechanisms of the computing environment, STEP 214.
One example of such a database is depicted in FIG. 7.
[0037] As shown in FIG. 7, a Delivery Mechanism Database 700
includes one or more delivery mechanisms 702 currently capable of
sending messages. This database is dynamically updated by, for
instance, the client application to reflect the current operating
environment.
[0038] The intersection of the delivery mechanisms of Delivery
Mechanism Configuration Table 602 and the active delivery
mechanisms of Delivery Mechanism Database 700 specifies the set of
mechanisms available for routing the assigned instant message. For
instance, in the particular example depicted herein, the set of
mechanisms include Instant Messaging Protocol 2, Email and Pager.
This set of mechanisms defines the routing policy to be used to
route the message to the intended recipient.
[0039] The delivery manager implements the routing policy, as
constrained, however, by its own configuration, STEP 216 (FIG. 2).
(This constrained routing policy is referred to herein as the
delivery policy.) For example, if the routing policy yields a set
of mechanisms, which includes Instant Messaging Protocol 2, Email
and Pager, but the delivery manager configuration does not include
Email (see FIG. 5), then the delivery manager is limited to using
Instant Messaging Protocol 2 and Pager.
[0040] The delivery manager applies the delivery policy to send the
message to the intended recipient. In particular, the instant
message is dispatched to one or more of the available delivery
mechanisms of the delivery policy, serially or in parallel, as
defined by the delivery policy. In this example, the delivery
manager dispatches the instant message to Instant Messaging
Protocol 2, and if the recipient is not available, then it
initiates an alphanumeric page, after prompting the sender. This is
indicated by the selected configuration (Normal Priority) of the
delivery manager (see FIG. 5).
[0041] An overview of the particular example described herein is
illustrated in FIG. 8. As shown, a selected delivery manager 800 is
configured with Configuration 802. The delivery manager queries a
Delivery Mechanism Configuration table 804 for John Smith and a
Delivery Mechanisms Database 806 to define the routing policy to be
used to send the message to John Smith. In this example, the
routing policy includes Instant Messaging Protocol 2, Alphanumeric
Pager, and Email. The routing policy, however, is constrained by
configuration 802. That is, the delivery manager cannot use a
mechanism that is not available to the delivery manager. Thus, the
delivery manager defines a delivery policy, which is the routing
policy constrained by configuration 802. In this example, the
delivery policy includes Instant Messaging Protocol 2 (808) and
Pager (810).
[0042] The delivery manager then uses one or more of the mechanisms
of the delivery policy to route the message to John Smith. The
manner in which these mechanisms are used is defined by
configuration 802. Thus, in this example, the message is first sent
by Instant Messaging Protocol 2, and then by pager, after prompting
the sender.
[0043] Although a particular example is described above, the
invention is not limited to such example. For example, additional
and/or different delivery managers and/or delivery manager
configurations are possible. Further, different recipients may have
additional and/or different delivery mechanisms available to them.
Also, at various times, additional and/or different message
delivery mechanisms may be available.
[0044] Described in detail above is a pluggable, agent-driven,
constraint-based instant messaging delivery environment. The
delivery environment integrates multiple protocols and notification
services to assist in providing a more robust, intelligent
technique of synchronous communication. The environment provides
robust message delivery by automatically leveraging and dynamically
configuring many unreliable services simultaneously. When a user
(e.g., one logical user) composes a message and dispatches it to
one or more intended recipients (e.g., one or more other logical
users on the same or different computing units), the system assigns
it to a delivery manager. The delivery manager is an agent which
assumes responsibility for routing the logical content of the
message to the recipient. Message recipients have corresponding
profiles, which specify how they may be contacted via different
delivery mechanisms or messaging services. A delivery manager agent
adheres to a delivery policy, which includes a message routing
algorithm paired with an agent-specific configuration.
[0045] In one aspect of the invention, both the delivery managers
and the delivery mechanisms are pluggable and hot-swappable,
meaning that multiple implementations or functional variants may
exist simultaneously and be dynamically added or removed. Delivery
mechanisms support a common set of instant messaging functionality,
providing an abstraction over a wide variety of network protocols
and notification services. Delivery managers support a common
message routing interface, with each variant implementing different
delivery policies. Delivery policies may utilize any of the
delivery mechanisms available at the time a message is dispatched.
Delivery managers are selected on a per-message basis, according to
user configurations, such as message priority.
[0046] Advantageously, one or more aspects of the present invention
provide higher rates of successful message delivery, as compared to
state of the art instant messaging solutions; incorporate delivery
mechanisms not typically associated with instant messaging clients
(e.g., pagers, e-mail); provide users with fine-grained, accurate
control over message routing behavior, without requiring
interaction on a per-message basis; and support new message
delivery mechanisms (pluggable system components) that may be
implemented and distributed apart from the core system, which
allows incremental refinements and extensions. The client-side
delivery managers efficiently route messages by applying these
constraints based on the current operating environment and
individual message requirements.
[0047] The above-described computing environment and/or computing
units are only offered as examples. The present invention can be
incorporated and used with many types of computing units,
computers, processors, nodes, systems, work stations, and/or
environments without departing from the spirit of the present
invention.
[0048] The present invention can be included in an article of
manufacture (e.g., one or more computer program products) having,
for instance, computer usable media. The media has embodied
therein, for instance, computer readable program code means for
providing and facilitating the capabilities of the present
invention. The article of manufacture can be included as a part of
a computer system or sold separately.
[0049] Additionally, at least one program storage device readable
by a machine, tangibly embodying at least one program of
instructions executable by the machine to perform the capabilities
of the present invention can be provided.
[0050] The flow diagrams depicted herein are just examples. There
may be many variations to these diagrams or the steps (or
operations) described therein without departing from the spirit of
the invention. For instance, the steps may be performed in a
differing order, or steps may be added, deleted or modified. All of
these variations are considered a part of the claimed
invention.
[0051] Although preferred embodiments have been depicted and
described in detail herein, it will be apparent to those skilled in
the relevant art that various modifications, additions,
substitutions and the like can be made without departing from the
spirit of the invention and these are therefore considered to be
within the scope of the invention as defined in the following
claims.
* * * * *