Newsletter sign-up
View all newsletters

Enterprise Java Newsletter
Stay up to date on the latest tutorials and Java community news posted on JavaWorld

Sponsored Links

Optimize with a SATA RAID Storage Solution
Range of capacities as low as $1250 per TB. Ideal if you currently rely on servers/disks/JBODs

Update: Java FTP libraries benchmarked

Find out which library best suits your needs

  • Print
  • Feedback

Page 3 of 3

Figure 1. Large-file transfer speed

The small-file transfer graph (Figure 2) shows that EnterpriseDT's edtFTPj, Calvin Tai's FtpBean, and Glub Tech's Secure FTP Bean exhibit better performance than the others—even the Windows XP FTP command. The notable exception is the Sun JDK. After about 200 downloads, the JDK has given up the transfers, raising memory errors. In the graph, I extrapolated the average transfer speed from the first 200 downloads. The weak score can be explained by the fact that each download requires the opening and closing of a new control connection. This introduces communication overhead between each file transfer. In conclusion, the JDK is appropriate for downloading a limited number of files only.

Figure 2. Small-file transfer speed

For a review of each library's features, click here for the comparison matrix. The library names display at the top; the criteria appear on the left. Abbreviations in the cells are explained in the table's key.

Conclusion

This article builds upon my previous JavaWorld article "Java FTP Client Libraries Reviewed" and follows up on the FTP support issues in the Java platform. In terms of performance, most libraries compare similarly for large-file transfers. For many small transfers, EnterpriseDT's edtFTPj, Calvin Tai's FtpBean, and Glub Tech's Secure FTP Bean are the best options, while the Sun JDK should be avoided for more than 200 downloads. For other characteristics, please refer to the comparison matrix.

With the number of third-party libraries implementing RFC959 FTP support, developers should have sufficient choices for their specific file-transfer needs. However, using a third-party component introduces additional complexity in applications. For example, an applet deployed onto the client would require additional download from the server. This additional complexity would not be implied if the JDK completely supported FTP.

To achieve complete FTP support in the JDK, a Request for Enhancement (RFE) has been introduced in the Sun Developer Network Bug Database. After 30 months of continuous support from a growing community, the number of votes for this RFE has increased from 8 to 88, propelling it into one of the top 25 RFEs. However, by the time of this writing, Sun engineers have not completed the RFE and have not communicated any schedule.

In the meantime, the Java FTP API Standardization Project supports the FTP RFE. This project aims to gather a community of members supporting the RFE for the wealth of the Java platform. The project also strives to assemble a group of experts for submitting a Java Specification Request (JSR) to the Java Community Process (JCP). This JSR would establish an RFC959-compliant FTP implementation as a standard in the Java platform. However, the group of experts has yet to be formed, and the time required for the JSR to become a standard recommendation is unclear. In conclusion, the future of FTP support in the Java platform remains to be defined.

About the author

Jean-Pierre Norguet holds an engineering degree in computer science from the Universite Libre de Bruxelles and a Socrates European master's degree from the Ecole Centrale Paris. After three years of full-time Java development with IBM on mission-critical e-business applications, as team leader and coach, his areas of expertise grew to include the entire application development lifecycle. He now works as a research fellow in Brussels, Belgium, writing a thesis about Web audience analysis. While working on his Ph.D., Norguet has published Java books with Prentice Hall and IBM Redbooks, and several articles in conference proceedings edited by ACM, IEEE, and Springer-Verlag. His outside interests include artistic drawing, French theater acting, and alternative healthcare.
  • Print
  • Feedback

Resources