In the recent IFR release of
Sun Java System Instant Messaging , we shipped our first implementation of
JEP 124 compliant client and gateway.
What does this provide ?
- Access to the Sun's XMPP server through HTTP.
- The IM client that we bundle with the product can now talk HTTP through any compliant connection manager to allow XMPP access.
The httpbind gateway (as we call it) is a servlet deployed in a
webcontainer which provides HTTP access to clients. You can consider it
as a protocol gateway between compliant HTTP
clients and our pure XMPP server - thats right , the server *does not*
know anything about http : everything is encapsulated and managed at
the gateway itself.
The default client that we ship is built on top of our IM client api which is hosted in netbeans under the
collab
project. The actual protocol is abstracted away at the api level and
the client
does not deal with XMPP (or whatever is the underlying protocol). The
api implementation which provides this client side access to XMPP
through HTTP is available opensource , give it a whirl ! (Any and every
help will be provided by me - drop me a note here

)
What all does this allow for :
- Obvious first case : use our client and our httpbind gateway and
talk over http through http proxies (not persistent CONNECT , but POST
requests
)
- Use a third party JEP 124 compliant client - either a AJAX client
like JWChat , or more heavier cousins and talk via HTTP to httpbind
enable XMPP access.
- Use the api and develop your own client - like what the collab
folks have done with the collab UI within netbeans : and how do you
make this HTTP enabled ? Just change the session provider - thats it
! (I know it works 'cos that is all I did to support this in our client
)
- Use constrained clients - like from a mobile phone , etc : talk
http and still be 'online' (subcase of 2 actually) ... internally for
demo's , we do have a J2ME midlet which does just this.
Ofcourse , this was just one of the main feature additions to
IFR release - the most notable among them being server pooling for high
availability and enhanced security through starttls and sasl support
(finally 1.0 compliant !) among many others.
Next blog entry , I will try to give a rough idea about how to go about
using this new code - some snippets are being promised

You will see
how simple it really is to dish out your own client , all the protocol
heavylifting is already handled at the api level - so let loose your UI
skills !
[Technorati Tag:
XMPP]
[Technorati Tag:
Sun IM api]
[Technorati Tag:
xmpp-im-client]
Trackback URL: http://blogs.sun.com/mridul/entry/jep_124_enabling_xmpp_through