Wikipedia defines XMPP as:
…an open-standard communications protocol for message-oriented middleware based on XML.
xmpp.org defines XMPP as:
The Extensible Messaging and Presence Protocol (XMPP) is an open XML technology for real-time communication, which powers a wide range of applications.
Although I’m sure both these definitions are very accurate, they don’t tell me a thing about what I – a Java developer – can actually do with XMPP!
For instance, I’ve heard XMPP can be used with message-oriented middleare (MOM). How so? Can XMPP somehow integrate with my Apache Camel routes, my ESB or some SOA implementation to deliver a better/faster/more robust business tier? If so, how?!?!
A good, King’s-English explanation of XMPP, along with some practical examples (preferable MOM-centric) would be greatly appreciated. Thanks in advance!
XMPP can be used for a wide range of messaging based applications. Basically, it provides core services which can be used to build XML based messaging applications. Its based on a decentralized client-server architecture and utilizes long-lived TCP connections for communicating…
core services include…
textbook use cases…
messaging modes/patterns…
deployment methods…
Java Integration
To your specific question “can it be used in SOA/middleware?”….
Also, XMPP integration with Camel is trivial. See this camel-xmpp unit test for a basic example of interfacing with a Google Talk server. Also, Camel’s framework allows you to build an application and easily swap out different messaging technologies (JMS, STOMP, mina, etc).