To enable efficient data communication or control between a local Java application and remote native process, some intermediate network protocol and application must exist. Surprisingly, the standard JDK library does not provide enough support for such network communication, and we have to borrow some third party library tools.
I get acquainted with this package during a academic project. To accomplish a remote HSPICE simulation task, simulation data and remote execution command has to be sent over the network. I have compared a few of the available tools.
RMI -- The local client can only talk to remote application through a Java server application which resides on server side.
Sun network package -- This package is included in the current release of JDK, however, not as a standard component, which means it may not be compatible with future JDK versions.
Commercial tools -- not free. :(
some light weight implementations -- lack of the remote execution features.
The Jakarta Commons Net is such an open source effort targeting at implementing the client side of many basic Internet protocols, including FTP, TELNET, REXEC, etc. There are several reasons to the choice of Jakarta Commons Net. First of all, it provides all the necessary protocols we need, FTP, REXEC, and Rlogin. And, it is free and open source, which is very relaxed for academic use.
Specific to my problem, Jakarta Commons Net is purely Java based, which could be interfaced to our existing Java code easily and seamlessly. Another advantage of Jakarta Commons Net over other choices like RMI is that it is a purely client side library, and the remote server side could be left intact for the application to run.
Download link, license agreement and installation information of Jakarta Commons Net could be found at: http://jakarta.apache.org/commons/net/.