Go to: jmmcms project pages or imutillib project pages
This is the web site for the Java Massively Multi-Client Multi-Server library open source project hosted by SourceForge.
The JMMCMS library is intended to be an 'instantiate and go' drop-in class library providing the gritty communications details of both the client and server sides of an application. By providing a callback object to the library when instantiating a client or server object, the library will be able to pass relevent application-level data back to the callback object for processing, while hiding the underlying complexities of multi-threaded communication, handshaking, sockets, IOExceptions, TCP vs. UPD packet control, intra-server metadata coherency, etc. - as well as providing optional functionality for heartbeats, SSL, application defined message protocols, version verification, automatic updating, and more. As the two primary models for client/server functionality in Java are thread-heavy (thread-per-connection) and performance-limiting (RMI and other reflection based technologies), this library will provide an alternative implementation that is thread-optimized (thread pooling, threads assigned per message) and higher performance (no or limited reflection, most 'value-added' functionality will be optional), as well as protocol-flexible - both security-wise (JDK 1.4 nio has no method of using SSLSockets, though encryption could still be layered on top of standard sockets) and allowing for both TCP and UDP connections 'invisibly' (UDP packet collection and collation being built in to the library).
A 'proof of concept' and example client and server applications have been developed - enough to develop a firm grasp of the dynamics and final structure of the library (approximately 'alpha' level release) - and recrafting/refactoring of the code has begun. The resultant code will consist of two libraries: the actual client/server library, and a utility library (IMUtilLib) that can be re-used for other purposes and developed independantly of the JMMCMS library. In the first phase of this recoding effort, the feature set will be limited, and will not include multi-server capabilities. It will, however, be a completely functional library providing the fundamental 'instantiate and go' ability, as well as being fully documented and fully multi-threaded.