|
Edwin Smith of Allaire's JRun team gave a technical presentation of Allaire's Java Servle Engine JRun Tue, Feb 1 6:00pm Oracle |
|
February's meeting started off with announcements, a lively discussion of possible future topics, and members' recommendations for software. A suggestion was made that it would be nice to have a resource page on the website with links to free software such as IDEs and App Servers.
�
Following this members' open forum, Edwin Smith was introduced and proceeded with the main program. Ed was an excellent speaker and adeptly fielded a wide range of questions from JRun internals to Java performance.
�
Originally conceived as a web server plug-in for running Java applications
on the server, JRun has evolved into a full-fledged engine for running
Java Servlets and Java Server Pages (JSP). Due to a strong design and
distributed architecture, JRun remains a flexible, lightweight product
that plugs in to all the major web servers, such as Apache, IIS, and
Netscape. It even has its own built-in web server.
�
JRun consists of two parts: a plug-in which extends a web server and a separate process, the JRun Service Manager, which contains the Servlet Engine and protocol interfaces. The plug-in communicates with the Service Manager over sockets using TCP/IP and a proprietary proxy protocol. This architecture, while slightly increasing the latency of each message, allows for greater throughput, flexibility and scalability. It also allows for the use of firewalls.
The Service Manager is also very flexible. In addition to the proxy protocol mentioned above, it also supports ZEUS and HTTP protocols. On the back end, it interfaces with a File Servlet, CF_Anywhere (a light version of the ColdFusion Markup Language), JSP (Java Server Pages), JavaScript, SSI (server-side includes), WebL (a scripting language) and Connector. The Connecter is an optional servlet enabling connection to another JRun, allowing JRun processes to be cascaded. Ed gave the example of an ISP configuring a JRun with one connector per user, giving each user his or her own JVM. The Servlet Engine, naturally, supports general web application programming - including JavaBeans, JDBC, CORBA, and RMI - and any other Java APIs a web application might wish to utilize.
�
Ed also discussed the upcoming release 3.0 of JRun. To be released sometime mid-year, it is now in beta testing. Release 3.0 implements the Servlet 2.2 Specification. The performance has been tremendously improved, with numerous enhancements to the Servlet Engine. Some performance pointers Ed discussed were use of String to byte conversions (Java char i/o converter is slow), maximizing reuse of objects over object creation by caching, and profiling. He highly recommended the book:
Java 2 Performance and Idiom Guide
by Craig Larman, Rhett Guthrie
Ed also spoke highly of Java's HotSpot Virtual Machine. This VM uses "on-the-fly adaptive optimization", which means it compiles only those parts of your Java code that it finds to be performance hotspots. It also offers better garbage collection. Ed confirms that Sun delivers on their promise of increased performance as his testing found HotSpot to be about 30% faster than Just-In-Time compiled code (JIT). And JIT code, itself, can be as much as 10-100 TIMES faster than intepreted bytecode. For more information see http://java.sun.com/products/hotspot/1.0/faq.html.
JRun offers additional enhancements by exposing some of its APIs. Giving access to Logging and Session Management, for example, allows the developer much more flexibility and control over the server environment. And with the acquisition of Valto Systems and the subsequent marriage of JRun 3.0 and Ejipt 2.0, Allaire will be providing a complete 100% Java implementation of the Enterprise Java Bean standards.
JRun will be released in 3 versions:
�
|
All told, JRun was a product born of necessity and with the advent of release 3.0 is now well-positioned to be a significant player in the Enterprise market.
These were the highlights of Ed's presentation. Unfortunately, it is not possible in such a short space to really do him justice. Should you have additional questions about JRun, you may reach Ed at edsmith@allaire.com. Many thanks to Ed for addressing a broad range of code and product performance questions with both competence and graciousness.
<Ilane Marie Walberg,Caryatid Software Solutions, Inc.>
Speaker Information
Edwin Smith is a Principal Software Engineer at Allaire Corporation
and works closely with all aspects of JRun engineering, particularly
Java/native integration, system architecture, and performance optimization.
Ed is also an avid motorcycle enthusiast and road racer, winning
the amateur lightweight superbike national title at Daytona in 1996.