powered by Jive Software

Suggestion: Scaling JiveMessenger by using Quickserver

In my quest for scaling up my java-based server I ran into the open source Quickserver framework (http://www.quickserver.org).

QuickServer is an open source Java library/framework for quick creation of robust multi-client TCP server applications. Basically the framework takes care of the multiple socket connections/threads (pooling) while one can just focus on the application logic.

Recently the java nio stuff has been included with support for non-blocking io i.e. multiple clients per thread instead of 1 thread per client (which is also still possible with the framework) which provides a high level of scaling.

Maybe the quickserver framework could be used for upscaling jive messenger.


But we can develop ourself the connection manager.

It isn’‘t really complicate with Java.nio, i’'ve began some server development for this, and not really dificult to manage…

As the people want…

I might as well throw my 2c into the pot. I was looking at JCyclone (www.jcyclone.org) which was built of the SEDA architecture. It’'s a project that was started by Matt Welsh, a member of the expert group for NIO.

EmberIO is also another candidate for references. Mike Spille put a lot of work into research the topic and made some provides some very good analysis of the problem.

The api is low level enough that you could do just about anything you want. What’'s nice is that they already provide a TLS server.

As for writing a NIO base library…that should be a last resort. Instead we should pick an API that exists and customize it to our needs.

What do you think?


indeed, after some reflexion, using an existing lib can be better, but I think, it must use java.nio.

And more it’‘s easy more it’'s good

Another stuff important, is the licence of Pampero, because it depends of the licence of this project, we could use some libs and not another…

just, where can we find the javadoc of emberio ? I searched a little on google and don’'t find another stuff that jar files

There are two places to find docs


And which is the licence of this API ?

LGPL. If it’‘s something else, I’‘m sure we could ask Mike to change it. It’'s a dormant project so anything that would breath life into it would most likely be welcome.


Yes, but I don’'t know it GPL and LGPL are compatible ?

For me the GPL is the best licence.

I don’'t know If you know another better ?

Yes, but I don’'t know it GPL and LGPL are compatible


For me the GPL is the best licence.

I don’'t know If you know another better ?

LGPL or Apache are the best licenses for libraries, so LGPL will be fine.


Why are they better than others ?

Why are they better than others ?

That topic may be too weighty for this forum… The basic gist is that they work better with commercial software efforts. For example, Smack uses the Apache 2 license so that commercial software can use the library as part of their applications. LGPL is similar. Full applications are a different story – in that case, GPL can make more sense.


I agree with Matt, this is topic better suited for another forum. I’'d recommend googling for GPL vs BSD or more recently GPL vs CDDL. Also, check slashdot.org for some very fun and heated debate on the matter.


Another NIO library: http://directory.apache.org/subprojects/mina/