[jdev] Mil XMPP app to replace SOAP?

Fabio Forno fabio.forno at polito.it
Thu Apr 14 06:04:09 CDT 2005


Jones Alasdair wrote:
> Could anyone give me some advice on whether XMPP would be a sensible option
> to use as an inter-application communication method to replace SOAP?
>

SOAP and XMPP cover different aspects of communication. The former 
concerns data representation and econding, while XMPP is a transport, 
like HTTP. Thus I wouldn't say that I want to replace SOAP with XMPP, 
but XMPP can either be an additional transport for SOAP (see JEP 72 
http://www.jabber.org/jeps/jep-0072.html), i.e. SOAP messages within 
XMPP messages, or it can carry your property-encoded data, provided it 
is valid XML.

> The current implementation I intend to replace, centres on a single database
> to which n clients can submit and retrieve XML data. The idea is that each
> client will submit military situational awareness data for it's area of
> coverage to the database. Each client can then retrieve all the data
> submitted by all the other clients. The key is to ensure that each client
> will be able to receive the same data, at the same time. The current
> limitations of this system means that every client has to poll the database
> for updates and there is no inherent security. I'm hoping that by using
> XMPP, I could write a client that can use it's Pub Sub and security
> features. 

This is a scenario where XMPP beats other transports, since it can 
efficiently push data to clients, and pubsub will help you delivering it 
without complicating too much your business logic.

But I don't know if there are any inherent limitations of this
> approach, in particular, the data transmission must be guaranteed and very
> fast (<1sec).

Time constraints are not a major problem, both XMPP servers and pubsub 
components can be scaled accordingly to the load.
Guaranteed trasmission may be a problem under certain circumstances. 
AFAIK at present you may count only on the raliability of TCP, but if 
there are disconnections some messasges may be lost. In the past there 
have been several discussions on this topic, you may search the archives
Anyway this could be generally solved by adding message sequence number 
and acks in your application.

-- 
Fabio Forno, Ph.D.
*** Employer line for sale ***
Phone: +39 011 2276 102 - JabberId: sciasbat at jabber.linux.it



More information about the JDev mailing list