powered by Jive Software

XMPP Client - web cluster nodes


I have been using Smack API for quiet sometime and have used the library for building “bots” to IM-enable certain intranet applications (mostly web apps).

Now, we are thinking of building an ecosystem where applications use Jabber as connecting infrastructure. More like an IM-Enabled application service bus. Typically, I use to create a user for each app and app logic would be invoked by message handlers of Smack API. Of course, there would be some form of protocol to carry the requests and responses specific to the application carried over IM-messages.

In the new ecosystem, there is a requirement for applications to scale horizontally for redundancy and failover purposes. Therefore same aplication package would be deployed adn running in multiple server nodes simultaneously. In such scenario, I am assuming

a) IM-Bot instances (running in each app server node) would be running in multiple server nodes.

b) each of them login to Jabber Server with same credentials

For example, assume that there is a travel-assistant application which manifests itself as IM-Bot with id as travelassistant@jabber.myintranet.com, and this bot component is packed in a larger application and deployed in multiple nodes of app server (J2EE-Jboss)…

In such a scenario…

  1. Would each bot instance (running on each app server node) login separately to the Jabber Server?

  2. If so, how a typical IM-user would see travelassistant@jabber.myintranet.com in his/her buddy-list?

As single entry or as mutiple entries?

  1. How messages would be routed? Single IM-Message sent to travelassistant@jabber.myintranet.com would

be routed to all instances?



Message was edited by: pearlo

Message was edited by: pearlo