Current protocol standards for group communications such as the Extensible Messaging and Presence Protocol (XMPP) are designed for highly centralized (server-based), TCP-based, point-to-point networks. These protocols do not operate effectively in mobile ad-hoc networks (MANETs) and disconnected, intermittent, limited (DIL) environments. XMPP Overlay (XO) provides a decentralized, XMPP-based multi-user group messaging capability using multicast forwarding (e.g. SMF) to provide robustness in highly dynamic edge networks.
XMPP Overlay (XO) has two components: XMPP Overlay Proxy (XOP) and XMPP Overlay Gateway (XOG). XOP serves as a proxy for standard, off-the-shelf XMPP multi-user chat (MUC) and messaging clients. XOP utilizes multicast to avoid the need for a centralized server, relying on SMF for multicast transport within the wireless edge network. XOG serves as an optional gateway between XOP and standard XMPP servers (e.g. OpenFire) in more conventional networks. XOP allows localized messaging groups to continue to communicate effectively amongst themselves while physically disconnected from other XOP nodes, as well as from XOG and the more conventional XMPP server(s).
Initial XO performance findings show significant improvement in message delivery percentage and delay versus operating more conventional solutions in mobile wireless environments. Advantages of using XO in dynamic edge networks include:
- Distributed, serverless operation using multicast
- Graceful degradation with network failures and disruptions
- Supports multiple network transports
- Integrates with existing chat infrastructure
- Utilizes existing XMPP clients and libraries
This page (requires Flash) contains video of a CORE demo showing XO in action, with two logical groups of XO nodes (red and green). These groups of nodes fragment, then come back together. The text on the left shows the messages each group is receiving via XO. When they are separated, they only receive their respective group's messages, but when they coalesce, they again receive messages from both red and green nodes.
Demo Screenshot (click for (Flash movie)
The XO source code and binaries are available on GitHub.
For more information, please contact firstname.lastname@example.org.