[JDEV] Jabber in the real world.

Thomas Muldowney temas at box5.net
Tue Jan 23 18:19:44 CST 2001


Spread some replies in throughout your points:

--temas

On Tue, Jan 23, 2001 at 11:38:41AM +0000, Michael Wilson wrote:
> We're just about to deploy the beta of a Jabber-based IM system
> (initially for customer support) and I thought I might as well
> share some of the server issues that came up. My apologies if
> there are fixes for these that I'm not aware of; if this is the
> case please do let me know!
> 
> * Server instability; the Jabber (1.2) server is fairly good as
>   long as well behaved clients are logging on, but it's fairly
>   trivial to crash by sending arbitary XML. Solution; filter all
>   connections through a proxy that removes all dangerous syntax
>   (discovered by some source peeking and a lot of trial-and-error).

What is the XML you are sending it?  Have you tried CVS which will be 1.4 soon?

> * Broken character entities and non-ASCII character handling.
>   Fixed by escaping everything in the proxy then fixing the broken
>   characters that come back from Jabber.

Could you be more specific?  I believe all our handling is per XML standards
regarding CDATA and PCDATA sections.

> * No concept of access control or virtual severs. Fixed these by
>   implementing fine-gained (ACL) access control and messaging
>   domains in the proxy (including presence information and
>   per-domain connection quotas).

ACL is scheduled to be in 1.4, I'm not sure how far along it is.  Virtual
Servers are already in and work fine.

> * Lack of broadcast/multicast message support (other than
>   groupchat, which is overkill). Fixed by implementing in proxy
>   (also put in a management console that allows most of the same
>   operations as IRC network operator privilidges).

Could you be more specific for what you are looking for?

> * Lack of session statistics reporting and conversation content
>   capture. Implemented in proxy (user-specific logging levels)
>   with optional per-domain connection quotas; the data goes into
>   MySQL (which also holds applet config details for each domain)
>   and is viewed by a HTML/PHP reporting and management interface. 

There are some better statistics given by the 1.4 server, but more is always
better in some environments =)

> * Lack of any kind of clustering/high availability. Solution; run
>   two Jabber servers and mirror the spool directories with a
>   replication script. Run three proxy servers with cluster
>   synchronisation and use high-availability code to load-balance
>   connections across the two Jabber servers (and stop using one
>   that goes down).

Have you played with jpolld at all?  This is a front end that handles TCP/IP
multiplexing into jabber.  I wrote it and can answer questions you have
surrounding it.  We used a jpolld setup to push a server to 100k users all 
active.

> 
> On the client side we're using a skinnable applet with a
> definable level of functionality which defaults to sending
> Jabber XML over port 80 (port-translated by the switches to the
> proxies, filtered then forwarded to Jabber). Since some of our
> users are sitting behind firewalls that don't allow anything
> through except email and valid HTTP, there's also a secondary
> mode that encapsulates all upbound messages in a fake HTTP post
> request; this allows the applet to work from anywhere that can
> can see the world wide web. This was somewhat complicated by the
> fact that the proxies are behind load balancing switches; since
> the main HTTP download connection and the HTTP message posts may
> be routed to different servers they have to be identified and
> sent over the peer connections (if neccessary) before being
> amalgamated and sent to Jabber.
> 
> -- 
> | Michael Wilson               "Smart Applications - Tools for life"
> | Java Developer                           available @              
> | Insight ASP LTD                   http://www.myopenapps.com       
> +----------------------Open Source Innovation-----------------------
> 
> _______________________________________________
> jdev mailing list
> jdev at jabber.org
> http://mailman.jabber.org/listinfo/jdev
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 232 bytes
Desc: not available
URL: <https://www.jabber.org/jdev/attachments/20010123/0f632967/attachment-0002.pgp>


More information about the JDev mailing list