Written as a mid-level programming guide, this book provides Java programmers with the information and tools needed to create their own Instant Messenger client and server software. This software can then be used to create personalized IM systems or integrate IM features into existing software. Focus is given to the open source Jabber XML-based IM protocols to create Java IM software. These open protocols allow IM software to seamlessly communicate with the larger number of other Jabber clients and servers available including commercial Jabber systems such as Disney's go.com IM.
My original background is in robotics and computer-integrated manufacturing. In
both, my interests centered on solving communication problems in mission-critical
systems. At the beginning, that meant assembly and C programming as well as
direct participation in the lowest levels of networking protocols. Forget TCP/IP
and Ethernet—we were generating packets by hand on ArcNET networks.
Networks quickly evolved and the problem shifted to an increasing need to
integrate the computerized factory floor into large-scale enterprise systems.
Unfortunately, manufacturing systems are horribly heterogeneous, with each
machine running completely proprietary software (often with one of a kind operating
systems and programming languages). In addition, it is common for manufacturing
machines to be kept in service for 20–30 years or longer. Long
equipment life-spans result in a surprising number of shops still using tape drives,
punch cards, and other ancient computer technology.
On systems where you have a full Java 2 Standard Edition (J2SE) or better environment,
Java Jini (http://www.jini.org) provides a perfect framework for gluing
the various bits together. In addition, it provides a common integration environment
(Java) and elegant, distributed computing facilities, such as self-healing
properties and distributed transactions. As J2SE begins to find its way onto more
and more devices, Jini becomes an increasingly attractive technology for system
integration and coordination.