Tuesday, November 25, 2008

ServiceMix4: much more than a JBI container

David Greco has posted a nice blog entry about ServiceMix Kernel.
I do totally agree: ServiceMix 4 is not only a JBI container, and more precisely the ServiceMix Kernel which can be run standalone is a universal container (which does not include JBI by default) where you can deploy virtually any kind of artifact from web applications, to JBI applications or plain JAX-WS services.

Thursday, November 13, 2008

SSH Server in Java

ServiceMix Kernel is a small container based on OSGi. The latest release allows external clients to connect to it and issue commands using a simple protocol implemented on top of TCP or SSL. However, this remoting protocol has some drawbacks as the internals makes it unable to do another remote login from a remote session. In addition to that, completion and history do not really work great.

So I've been thinking about using the SSH protocol, which is widely used, secured, with tons of different clients available. Unfortunately, no SSH server is available in Java. Over the past weeks, I've been working on implementing this SSH server, based on the IEFT specifications, the JSch SSH client library, and the OpenSSH server source code. The server itself is based on Apache Mina which is a great framework for using NIO.

The project is available at http://code.google.com/p/sshd/ and although there are lots of limitations right now, the basics of the SSH protocol work. I plan to integrate it in a bit into ServiceMix Kernel as the default remoting protocol. Maybe over time, we'll be able to implement SFTP or even a full SSH server integrated with Unix OS (I've already made some tests, but I'm missing a few bits on the PAM integration for authenticating against the OS).

Anyway, if anyone want to contribute or have any problems trying to use it, just send me an email. I may set up a google group list for that later if there is any need.

Update: the code is now developed as a subproject of Apache Mina and available at http://mina.apache.org/sshd/