ONJava 2004 in Review: Editor's Choiceby Chris Adamson, ONJava Editor
The previous installment of "ONJava 2004 in Review" took a look back at some of the most popular feature articles to appear on the site this year. This second part presents an "Editor's Choice" list of some impressive writing that deserves a second look before closing the books on the year.
Measuring up Tomcat
Srini Penchikala has focused on Tomcat clustering this year, both explaining the concepts and assessing how well Tomcat performs under various configurations and approaches. In "Clustering and Load Balancing in Tomcat 5" (part one and part two), he illustrates how to install, configure, and bring up a clustered web application. In "Session Replication in Tomcat 5 Clusters" (part one and part two), he covers the concepts of session replication and how it's presented by Tomcat, and then experiments with different configurations to show how the choice of session managers, replication mode, and the size of the data to be replicated affects the performance of the cluster.
Speeding up NIO
Java developers are often looking for further performance improvements. The NIO package introduced in Java 1.4 helped accelerate I/O, but Nuno Santos wanted even more, so that his SMS router could support 3,000 simultaneous connections. In "Building Highly Scalable Servers with Java NIO," he describes how his team built an event-driven I/O architecture, strongly influenced by Swing, and then experimented to get the threading model just right to deliver the highest performance with the fewest synchronization headaches. It's an interesting study of taking the core libraries further and optimizing them for your application.
AOP, Meet Attributes
Another type of article that we really like running is one that uses a library or language feature for non-trivial, non-intuitive purposes. For example, by this point, everyone has seen aspect-oriented programming demonstrated by inserting logging messages into arbitrary cut-points in an existing program. But Bill Burke took a different tack with aspects--he combined them with attributes, essentially declaring new Java syntax with the attributes and delivering its implementation with aspects. The result is "Aspect-Oriented Annotations," in which a "launch-and-forget thread" can be represented as a single attribute,
The Security Tour
Denis Pilupchuk's series comparing the security architectures of Java/J2EE and .NET was one of our longer-running series, due to the vast amount of material Denis had to cover. It started in late 2003, continued through spring 2004, and wrapped up this summer with an epilogue that looked at where the two platforms were headed with their upcoming releases (J2SE 5.0 and .NET's "Whidbey" release). One of the things I really admire about this series is the objectivity that Denis brought to his analysis and the obvious fact he is well-versed in both, making him ideally suited to consider the strengths and flaws of each. The articles in the series were:
- "Java Versus .NET Security, Part 1"
- "Java Versus .NET Security, Part 2"
- "Java Versus .NET Security, Part 3"
- "Java Versus .NET Security, Part 4"
- "Java Versus .NET Security: Epilogue"
The series was also compiled as the eDocument Java vs. .NET Security, available for purchase on the O'Reilly web site.
Gotta Have My Tunes
The site tends towards J2EE material--application servers, enterprise middleware, etc.--so it's always a treat to be able to run some fun client-side content. In "Extend JavaSound to Play MP3, Ogg Vorbis, and More," the JavaZOOM team showed off how they used the JavaSound Service Provider Interfaces (SPIs) to bring MP3 audio playback to JavaSound, a core Java library as of Java 1.3. Since JavaSound is meant to be extended via SPIs, the ideas in this article can be used for supporting other formats, and in the article's resources, you'll find links to JavaSound-compliant implementations of Ogg Vorbis, Monkey's Audio, and more.
For the Beginners
One other thing that we'd like to run a little more often than we do now is material that helps the beginning Java programmer--everyone's got to start somewhere, and preferably not on giant mission-critical enterprise applications. A really nice sandbox for starter programmers was described by Alper Coskun in "SSS (Small, Simple Safe)." This article teaches object-orientation and the core libraries by eliminating the need to deal with Java syntax--instead, you work in a GUI, creating objects by clicking on constructors, then specifying them further by clicking on setter methods, combining them into collections, etc.
Next week, we'll be back with the results of the recent ONJava Reader Survey, including an overview of what you work on, what you use, and what you want from the site in 2005.
Chris Adamson is an author, editor, and developer specializing in iPhone and Mac.
Return to ONJava.com.