App Servers Mature
Timothy Dyck
Web application servers have reached a significant level of maturity: The market is changing at a slower pace, and there’s much more of a focus on keeping the servers running well in production environments and squeezing more value out of existing investments. In addition, application server vendors are increasingly turning to specialized development tools to make their complicated server technology more accessible.
This is good news for enterprise IT managers, and clearly evident in two important application server releases: BEA Systems Inc.’s WebLogic Server 7.0 and Macromedia Inc.’s ColdFusion MX Server.
The former adds performance and reliability features that will provide a stronger foundation for WebLogic shops; the latter is an entirely new server design that aligns Macromedia with the Java application server space.
As a scripting-language-based application server, ColdFusion MX is aimed at a much broader and less technical market than WebLogic Server is. (ColdFusion MX will be able to run within WebLogic later this year.) WebLogic is an infrastructure-level enterprise application server and requires a much more rarified skill set, although BEA’s new development tool strategy is aimed at changing exactly that.
eWeek Labs tested both application servers in release candidate form, along with beta releases of associated development tools from BEA and Macromedia that will help reduce costs and speed development and integration efforts.
BEA’s newest development tool set is the impressive WebLogic Workshop. Macromedia, meanwhile, is releasing a solid upgrade to the popular Dreamweaver platform, Dreamweaver MX. WebLogic Workshop applications must be run on WebLogic Server 7.0, so these two products are much more closely coupled than are ColdFusion MX and Dreamweaver MX. While ColdFusion users won’t find a better development tool for them out there, Dreamweaver MX’s strong support for all the major Web scripting languages means it will appeal to a wide variety of Web developers. (See Executive Summaries for WebLogic Workshop and Dreamweaver MX at www.eweek.com/links.)
BEA’s New Direction
Tools are a major focus for BEA this year. Although WebLogic Server includes a number of new tools itself, it’s BEA’s WebLogic Workshop, sold separately, that really wowed us in tests. WebLogic Workshop’s inventiveness and graphical elegance were a surprise, given the lame development tools that application server vendors have a history of producing.
WebLogic Server 7.0 became available April 30, when we were finishing tests of the release candidate, and costs $10,000 per CPU. It runs on Windows, most Unix operating systems, OS/400 and OS/390. WebLogic Workshop is expected to ship next month. (BEA hasn’t announced pricing yet.)
In the WebLogic Server 7.0 release itself, a new WebLogic Builder tool provides a stand-alone program for editing WebLogic deployment descriptors and a new EJBGen tool that automatically creates home and remote interfaces and deployment descriptors based on JavaDoc comment tags.
Security has been completely overhauled in WebLogic 7.0, which includes an embedded LDAP server for user management—a much better model than the simple text file approach that was the default in WebLogic 6.1. Security is now based on the Java security standard SSPI (Security Service Provider Interface), and a policy editor makes it easier to edit security settings by centralizing policy management into a single interface.
A UDDI (Universal Description, Discovery and Integration) 2.0 server is also included for those deploying internal Web services.
WebLogic’s administration console is largely unchanged from Version 6.1 and continues to lack performance statistics at the object level—for example, figures that would show which EJB (Enterprise JavaBeans) was taking the most processing time.
WebLogic Workshop’s main purpose (and something it does beautifully) is wrapping Web service interfaces around EJB, database content, Java Message Service queues or other Web services. Support for J2EE (Java 2 Enterprise Edition) Connectors is planned for the shipping release but was not present in the beta we used.
In eWeek Labs’ tests, creating Web services and connecting them to back-end content was extremely simple using the package’s intuitive interface. The graphical tools and source editor automatically kept each other up-to-date, and the code editor highlighted syntax errors in real time.
WebLogic Workshop’s Web services focus is somewhat narrow, forsaking general Java and Web page development tool spaces. It also, as mentioned previously, requires WebLogic Server 7.0 to run the applications it generates.
However, WebLogic Workshop excels at making advanced J2EE features—especially message queuing—amazingly straightforward. In tests, it demonstrated impressive state handling, automatic data persistence and EJB generation, making it far simpler to build complex applications.
In addition, turning Web service listeners into Java Message Service-based queues was as simple as turning on a buffering option. When we split one synchronous Web service into a two-part asynchronous service by adding a callback, all variables inside our Web application were automatically matched to Web service message IDs and either stored or loaded from automatically created entity beans whenever necessary. Session management was completely transparent to our application.
WebLogic Workshop’s use of simple source code tags as language metadata is a concept popularized by .Net languages, and BEA was smart to borrow the concept. This may become more common in the Java world if proposed Java Specification Requests 175 and 181 become Java standards. At the moment, WebLogic Workshop’s Web service tagging system (based on JavaDoc comments) is not supported by anyone else, a risk for early adopters.
WebLogic Workshop uses a loose coupling between Web services interfaces and Java classes. We could, for example, change the name of Java class parameters independently of XML element names or XML structures and use the software’s data mapping system to compensate.
This mapping system worked using text placeholders to map Java variable names to input or output XML documents.
When we created a Java method, WebLogic Workshop automatically created a matching XML document with placeholders for each method parameter. We could then change the XML freely as long as all the placeholders remained.
ColdFusion Reborn
ColdFusion is slated to ship next month. Professional Edition (the version that we tested) will cost $799 per server and, for upgrades, $549 per server.
This is a hot product for a hot price—especially considering the included text search and graph generation engines.
ColdFusion’s reasonable pricing also gives developers more freedom to prototype without fear of dead-ending applications: ColdFusion code can now be transferred to run within a Java application server to provide a safe growth path for the “little” applications that end up becoming strategic corporate tools.
ColdFusion Server Enterprise Edition (which supports server clustering) costs $4,999 per server; ColdFusion MX for J2EE, the version that runs inside third-party application servers, is priced at $3,999 per CPU. Macromedia’s JRun (which is embedded inside lower-end versions of ColdFusion MX), IBM’s WebSphere and Sun Microsystems Inc.’s iPlanet will initially be supported by ColdFusion MX for J2EE, with BEA WebLogic Server certification coming later this year.
ColdFusion MX Server, which runs on Windows, Linux, Solaris or HP-UX, is a bottom-up rewrite and the most significant change since ColdFusion was first released. With this version, ColdFusion Web pages are no longer interpreted by a C-based run-time engine; instead, they are now compiled to Java bytecode and run on a Java application server.
Unfortunately, JSPs (JavaServer Pages) or Java code cannot be inserted directly into ColdFusion pages, although Cold-Fusion can use JSP custom tag libraries through a special interface as well as call any JavaBean or method defined by a Java class file. ColdFusion pages and JSPs or servlets can also share request, session and application variable information.
But the real value of ColdFusion has always been the language, not the server. eWeek Labs considers ColdFusion’s CFML (ColdFusion Markup Language) the easiest scripting language to learn, and it doesn’t sacrifice any power for that simplicity (although it is more verbose than Microsoft Corp.’s Active Server Pages or the PHP Group’s PHP). This update combines CFML with the maturity and unmatched cross-vendor support of the J2EE world.
This change is very strategic for enterprise customers, which previously had to balance ColdFusion’s rapid development and large developer base with its single-vendor status and the extra cost of maintaining yet another application server (especially one without broad industry backing).
During tests, we found ColdFusion MX quite compatible with older ColdFusion applications. Our reasonably complex Nile benchmark bookstore, written for ColdFusion Server 5.0, ran on the first try when we tested it with ColdFusion MX.
There are a number of compatibility caveats with less common ColdFusion tags, but Macromedia includes a source code scanning tool that points out areas where possible upgrade problems might arise.
The ColdFusion MX installer did an excellent job of porting existing ColdFusion settings to the new design. We were prompted to manually edit our Oracle and DB2 data connections to get them up and running, but this amounted to only a few minutes’ work. ColdFusion includes Java Database Connectivity drivers for all the major databases.
Moving from a C to a Java engine can result in slower performance, but Macromedia has offset this by compiling ColdFusion pages instead of interpreting them. Macromedia’s technical staff said their testing showed similar performance between ColdFusion 5.0 and ColdFusion MX, with some functions slightly faster in MX and some slightly slower.
We did our own tests comparing the two using our Nile bookstore application and found that ColdFusion MX was actually a bit faster at most user loads. We performed tests using Quest Software Inc.’s Benchmark Factory load testing tool (www.quest.com) and tested from one to 100 simultaneous users with no think time.
The change in the platform is the biggest long-term draw for ColdFusion MX, but native XML and Web services support, as well as CFML language enhancements, are also strong attractions. ColdFusion still can access Microsoft Component Object Model objects as it did before through a Java-to-COM bridge included with the product.
XML data objects can be manipulated as native data types in ColdFusion (just like an array), and the server now includes XPath query and XSLT (Extensible Style Language Transformation) features.
A new component object addresses a long-standing weakness in CFML: its inability to effectively encapsulate code. Components allow inheritance, and functions in components can be turned into SOAP (Simple Object Access Protocol)-based Web services just by adding a “remote” attribute to the function.
ColdFusion MX users will find a solid development partner in Macromedia’s forthcoming Dreamweaver MX tool kit. Dreamweaver MX consolidates two of the company’s development tool lines—Dreamweaver and HomeSite—into a single, well- integrated Web development tool.
Dreamweaver MX, which runs on Windows and Mac OS, provides Web site and page editing features for CFML pages, as well as for several other page formats: straight HTML, JSP, ASP, ASP .Net (using C# and Visual Basic .Net) and PHP. The package is slated to ship later this month for $399 per copy.
We’ve been regular users of JRun Studio (a version of HomeSite) for a number of years now, and Dreamweaver carries forward that package’s editing, automatic tag completion, database browsing and file deployment features.
Its interface is a marvel in depth, though at the expense of some clutter—windows have collapsible docks, which have tabs, which have menus—it kept opening up to show more, like a Mandelbrot fractal.
The Beta 3 code we tested was also notably unstable, crashing several times a day. With one file, the application consistently deleted part of the text while we edited it. We’re hopeful that these problems will be cleared up by the final release.
West Coast Technical Director Timothy Dyck has been testing application servers for the past seven years and maintains eWeek Labs’ production Web applications, which were deployed on a Java application server. He can be reached at timothy_dyck@ziffdavis.com.
Related Stories:
Development Tools Deliver a Key App Server Edge
Who’s in Charge? JBoss Gaining ISVs’ Attention
ColdFusion MX Server beta
ColdFusion MX brings together the ease of use and rapid development provided by its Cold Fusion Markup Language and the industry support and maturity of Java application servers. Organizations that want to quickly deploy script-based Web applications should investigate this inexpensive option. However, we advise going slowly until the new engine in this release has had some time on the market to flush out bugs.
Cost Analysis
Priced at less than $1,000, ColdFusion will fit into any department’s budget. The real cost trade-off is between developer costs (low, especially compared with Java) and the transition costs required to move code to a lower-level programming language when a site grows.
+ Can run as a component in a Java application server, allowing the same server to process both ColdFusion and JSP applications; new language components provide cleaner logic encapsulation and can easily be published as Web services; native XML data type, XPath query and XSLT support.
– Some legacy applications will need modifications to run.
Evaluation Short List
Microsoft’s Active Server Pages
Microsoft’s Active Server Pages .Net (especially for Visual Basic shops)
JavaServer Pages
PHP
www.macromedia.com/software/coldfusion
BEA WebLogic Server 7.0 Release Candidate
WebLogic Server’s upfront costs in deployment and training, and its focus on high-end EJB development, make it a major infrastructure commitment. Those on the cutting edge of Java technology will value its market-leading standards support and its clustering and high- availability features.
Cost Analysis
WebLogic Server is a big-ticket purchase, and costs can easily move into the hundreds of thousands of dollars for an application server cluster. Other options may do a good deal of what WebLogic does for significantly less, but its level of industry support and Java standards compliance is unmatched.
+ New development tools make creating J2EE applications easier; new security system provides greater extensibility and manageability, although at the cost of switching to new security APIs; built-in LDAP and UDDI servers.
– Organizations will find it expensive to purchase, create and maintain WebLogic applications; administration tool has little capability for ongoing server performance monitoring.
Evaluation Short List
Hewlett-Packard Co.’s HP Application Server
IBM’s WebSphere
Oracle Corp.’s Oracle9i Application Server
Sun’s iPlanet Application Server
Sybase Inc.’s Sybase Enterprise Application Server
www.bea.com/products/weblogic/server/index.shtml
Copyright © 2004 Ziff Davis Media Inc. All Rights Reserved. Originally appearing in eWEEK.