Macromedia JRun 4
By: Drew Falkman
Summary:
At around $900, this application server offers not only all of the features you would expect from a J2EE application server, but a host of other features and advantages for both developers and administrators, including an easy-to-use Web Services engine. Having used JRun in the past, I will say that JRun 4 is the most exciting release of this product by far. This is for a number of reasons that I will soon explain. JRun is not perfect; it has its flaws and limitations. But I believe that much of the competition (IBM, BEA, etc.) offers way more than developers and administrators need – and at a significant cost. Macromedia JRun 4 is as Macromedia claims: a simple, fast and inexpensive J2EE server with all of the necessary features to handle 95% of J2EE applications.
Optimal Users:
JRun 4 is clearly well-suited for small to medium organizations (or corporate divisions) who want all of the power of J2EE and Web Services, but don’t need the mag wheels and leather upholstery offered by the leading commercial J2EE application servers. JRun is currently used in 8 out of the top 10 financial institutions and 7 of the top 10 telecommunications company. JRun’s customers include Cisco, Pfizer, CitiGroup, IBM and Nokia, among others (more at:
http://www.macromedia.com/software/jrun/proven/). Additionally, JRun offers the support, documentation and integration of features that couldn’t be found in open source software – but in an open environment that will make open source aficionados comfortable.
Introduction to JRun
The history of JRun runs parallel to the evolution of server-side Java and the Internet. Initially created in 1997, JRun was one of the first Java servlet engines available. In 1998, JavaServer Pages (JSP) was a hot new technology and JRun Pro (as it was then called) became the first commercial JSP engine. As is typical with Internet technologies created by small companies, JRun’s creator, Live Software was acquired by Allaire Corporation, and eventually Allaire was purchased by Macromedia. Throughout these changes, each company has put an indelible stamp on the server technology: Live finished version 2.3.3 – a tight, fast and well-used JSP/servlet engine, Allaire created version 3.0 (and later 3.1), which made JRun J2EE compliant, and most recently, Macromedia has incorporated JRun into it’s larger scheme.
Although not directly part of it, JRun 4 is at the core of Macromedia’s MX initiative, which links
Macromedia’s major client- and server-side technologies. ColdFusion MX is built on top of JRun. Also built
on JRun, Flash Remoting allows for the use of what Macromedia terms "Rich User Interfaces", which is basically
using Flash as the front end for dynamic Web applications (more on this later).
JRun 4 is also a child of Macromedia’s new commitment to open-source technologies and J2EE standards. Macromedia actively participates in the Java Community Process (JCP, the system through which Java standards are determined) on a number of different technologies, including the Enterprise JavaBeans 2.0 specification, the JSP Standard Tag Library (JSTL), and Java server faces, among others. (More information on JCP can be found at: jcp.org). In addition, Macromedia is beginning to actively participate in open-source initiatives, most specifically Axis, the Java Web services engine.
Surprisingly for all its history, JRun occupies a relatively small market share in the world of application servers, in 2001 sharing the 22% "Others" category (rather a large percentage to lump together, but that’s another story...) in a Gartner Dataquest application server poll with the likes of Microsoft and H-P. There is extremely stiff competition in the application server market, but even considering where it started, JRun’s market share deflation from 1998 to 2001 is notable. Part of this is due to the frequent change of hands (and product direction), part due to it’s second fiddle status (to ColdFusion) at Allaire/Macromedia, part due to some complaints people had about the technology itself (most notably the EJB container in version 3 and 3.1), and part due to the rise in open-source technologies – such as Tomcat and JBoss – that were increasingly adopted in the low-end application server market that JRun calls home.
But this release, the first under Macromedia, looks to signal a change for the better. For starters, at $899, JRun is the most affordable fully-compliant commercial J2EE 1.3 server out there. Macromedia’s apparent goal for JRun is to offer a simple and fast J2EE server; in this it appears they have succeeded. They have rebuilt the EJB container, making it not only better, but EJB 2.0 compliant, as well. They have also added a number of features, including a solid Web services implementation, hot deployment and modification, a Java Management eXtension (JMX) architecture and revolutionary Jini-based server clustering.
The JRun Platform – Architecture and Administration
To begin explaining JRun 4, it is best to explain how it functions, that is, the underlying architecture and how the container itself is managed. To start, JRun 4 is J2EE 1.3 compliant. In order to be fully compliant to this standard, it must inherently contain a JSP/Servlet and EJB container, provide services for messaging (Java Message Service, or JMS) and mail (JavaMail), and otherwise support a number of APIs that include tools for XML processing, database connectivity (via Java DataBase Connectivity, JDBC) and more.
One of the strongest features of JRun 4 is that the container is JMX-based. This means that developers and administrators can opt to provide additional services or use different implantations of the services that JRun provides. For example, if a developer preferred the SonicMQ JMS service this could be used instead of the built-in JMS service. In addition, a JMX architecture provides the ability to disable unused services as well as develop custom services to perform domain-specific functions. Macromedia shows this well at http://www.macromedia.com/software/jrun/productinfo/features/
4/05_administration_customization/
Part of the simple aspect of JRun has always included simple administration. This version includes a revamped Web-based administration interface called the JRun Management Console (JMC). This console provides the ability to perform major administrative tasks without having to mess around with properties and eXtensible Markup Language (XML) configuration files. The tasks that can be done from this interface range from deploying Web Application aRchive (WAR) and Enterprise Application aRchive (EAR) files, entering JDBC datasources and JMS connection factories to tweaking Java Virtual Machine (JVM) and other server settings and defining Web services.
One of the nice features of this console is the ability not only to view log files remotely, but the ability to actually filter their contents. Any developer who has spent hours in notebook, WordPad or vi sorting through log files looking for what is causing a problem will certainly appreciate this.
The JMC isn’t quite as granular as it was in JRun 3 and 3.1. In those earlier versions of JRun, developers and administrators could tweak even application settings – those contained in the web.xml deployment descriptor – for every J2EE application on the server. While this was nice, it was really only applicable in a development environment and with the addition of new features, there are now more things to administrate than before. Figure 1 shows a screen capture of the JMC interface.
From the JMC, it is even possible to administer multiple remote JRun servers. This can allow for the management of development, staging and production servers or for maintaining multiple instances of JRun server – from the intranet, Web, etc. In addition, using the clustering feature of JRun can be done directly in the JMC; it is surprisingly simple. JRun 4’s clustering allows for load balancing and failover at multiple levels: the Web server (this can be done with hardware based systems, as well), the Web server connector, and at the object level using new Jini technology (note: JRun is the only J2EE server that currently implements Jini technology for clustering). This last method allows for servlets, JSP pages, EJB components and other Java objects to cluster and will even handle session failover for stateful beans and other managed sessions. (Details on this clustering can be found at: http://www.macromedia.com/software/jrun/
whitepapers/pdf/jr4_clustering_wp.pdf).
Drew Falkman is the author of the JRun Web Application Construction Kit and
co-author (with Ben Forta) of Reality ColdFusion: J2EE Integration, both
published by Macromedia Press. Over the past 6 years, Drew has developed
over 150 Web applications in all sizes using ColdFusion and Java. Currently
Drew consults, speaks at events, writes for numerous publications, and
teaches courses at Portland State University. His latest project through his
consulting company, Veraison LLC, was a real-time cattle auction using Flash
Remoting and Flash Communication Server. In addition, Drew is a member of
Team Macromedia, a certified ColdFusion Developer and a certified Macromedia
instructor.
Last Modified
December 27, 2002
New on the Java Boutique:
New Review:
Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling
API boasts simplicity, ease-of-integration, a well-rounded feature
set, and it's free!
New Applet:
Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA
sequences into three useful formats.
Elsewhere on internet.com:
WebDeveloper Java
Lots of Java information on webdeveloper.com
WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.
ScriptSearch Java
Hundreds of free Java code files to download.
jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.
New on the Java Boutique:
New Review:
Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling
API boasts simplicity, ease-of-integration, a well-rounded feature
set, and it's free!
New Applet:
Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA
sequences into three useful formats.
Elsewhere on internet.com:
WebDeveloper Java
Lots of Java information on webdeveloper.com
WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.
ScriptSearch Java
Hundreds of free Java code files to download.
jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.