Next: Conclusion
Up: XEVENTS/XMESSAGES: Application Events and
Previous: Salient Features
Subsections
There is potential for extending the current design to provide more
functionality. We describe some of the further work that is in progress to
expand the features of the framework.
The SQL querying available currently is sufficient for basic retrieval
needs. But there is scope for adding other types of query objects for both
general purpose requirements like name-value pair matching to special
applications that require the making of complex decisions using scripts. We
see a place for a JINI like template filtering presently and other
filtering and querying methods can be added as and when required in
particular situations.
XMessages considers all messages to be just a valid XML structure. So it
parses the message to verify the correctness of the XML but does not try to
interpret it. To do so, it would have to be aware of the XML schema and
this can be provided by mapping different message types to the
corresponding message object. This makes it necessary to maintain a central
repository of mappings accessible to different messaging interfaces. This
is not viable and a better alternative is to present a generic XML
structure of the message that can be understood by indiavidual
implementations of the messaging components. This would provide a standard
API to the XML form of the message and ease access to its fields without
worrying about parsing the XML. Application writers can use this API to
write different message handling routines based on the XML content and at
the same time, the core messaging layer can be retained without being aware
of the message schema.
The message channel can provide a gamut of value added service and be quite
powerful as it can act as a central controller for switching messages
between applications. But the ability to add such features to the channel
must be made more convenient instead of having to write complete
implementations of the message channel for each new feature. We are
adopting the popular concept of plugins to allow for adding features to a
channel incrementally.
Each channel starts of with a default set of core features. When a message
is to be processed, it runs through an optional chain of plugins before
using the default handling routine. These plugins can be added or removed
on the fly by the application starting the channel. This application acts
as a controller of the channel and could accept requests to add or remove
plugins.
For example, consider a user who has launched a component that publishes
events about its status every few minutes to a channel. The user may
initially have a simple listener application on her desktop machine to
receive these events from the channel. If she needs to go away from her
desk and still continue to monitor the status, say for a job completion or
exception event, she could request the channel to load a plugin to forward
the particular events to her handheld device or cellular phone. If she gets
back to her desk before its occurrence, she could unload that plugin and
continue to monitor all events on the desktop. The plugin feature could be
put to many such uses.
Currently, we have made the XMessages API transport independent
(i.e.) in the WSDL specification, we have defined all message interfaces
without using protocol specific constructs such as SOAP header. We are
however investigating an optimized transport binding for XMessages, such as
one that uses SOAP headers to describe message control parameters (like
currentToken, nextToken, leaseDuration etc.), with the message being placed
in the SOAP body directly.
Exchanging messages in a large grid brings into focus the need to verify
the authenticity of the message and check the authorization of those
allowed to publish and subscribe for messages. This check may be on an
individual basis as in a message source or sink trusting one another or on
a larger perspective with the publishers and listeners being authenticated
by a common channel they subscribe to. The modalities of such a security
mechanism needs to be looked into more closely.
One of the advantages we attributed to the XMessages system is the ability to
extend it to implement other messaging APIs or even act as bridges
between messaging systems operating in a diverse environment. We need
to demonstrate this by creating implementations of other messaging
specifications, specifically JMS and OGSA, that have APIs similar to
XMessages.
Next: Conclusion
Up: XEVENTS/XMESSAGES: Application Events and
Previous: Salient Features
Aleksander Andrzej Slominski
2002-09-20