Applications create, send, and receive ToolTalk messages to
communicate with other applications. Senders create, fill in, and
send a message; the ToolTalk service determines the recipients and
delivers the message to the recipients. Recipients retrieve messages,
examine the information in the message, and then either discard
the message or perform an operation and reply with the results.
Sending ToolTalk Messages |
 |
ToolTalk messages are simple structures that contain fields
for address, subject, and delivery information. To send a ToolTalk
message, an application obtains an empty message, fills in the message
attributes, and sends the message. The sending application needs
to provide the following information:
Is the message a notice or a request?
(that is, should the recipient respond to the message?).
What interest does the recipient share with the
sender? (for example, is the recipient running in a specific user
session or interested in a specific file?)
To narrow the focus of the message delivery, the sending application
can provide more information in the message.
Message Patterns |
 |
An important ToolTalk feature is that senders need to know
little about the recipients because applications that want to receive
messages explicitly state what message they want to receive. This
information is registered with the ToolTalk service in the form
of message patterns.
Applications can provide message patterns to the ToolTalk
service at installation time and while the application is running.
Message patterns are created similarly to the way a message is created;
both use the same type of information. For each type of message
an application wants to receive, it obtains an empty message pattern,
fills in the attributes, and registers the pattern with the ToolTalk
service. These message patterns usually match the message protocols
that applications have agreed to use. Applications can add more
patterns for individual use.
When the ToolTalk service receives a message from a sending
application, it compares the information in the message to the registered
patterns. Once matches have been found, the ToolTalk service delivers
copies of the message to all recipients.
For each pattern that describes a message an application wants
to receive, the application declares whether it can handle or observe
the message. Although many applications can observe a message, only
one application can handle the message to ensure that a requested
operation is performed only once. If the ToolTalk service cannot
find a handler for a request, it returns the message to the sending
application indicating that delivery failed.
Receiving ToolTalk Messages |
 |
When the ToolTalk service determines that a message needs
to be delivered to a specific process, it creates a copy of the
message and notifies the process that a message is waiting. If a
receiving application is not running, the ToolTalk service looks
for instructions (provided by the application at installation time)
on how to start the application.
The process retrieves the message and examines its contents.
If the message contains a notice that
an operation has been performed, the process reads the information
and then discards the message.
If the message contains a request to perform an
operation, the process performs the operation and returns the result
of the operation in a reply to the original message. Once the reply
has been sent, the process discards the original message.