App Servers Mature
Web application servers have reached a significant level of maturity: The market is changing at a slower pace, and theres 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.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 BEAs 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. BEAs 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 wont find a better development tool for them out there, Dreamweaver MXs 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.) BEAs New Direction Tools are a major focus for BEA this year. Although WebLogic Server includes a number of new tools itself, its BEAs WebLogic Workshop, sold separately, that really wowed us in tests. WebLogic Workshops 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 hasnt 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 managementa 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. WebLogics administration console is largely unchanged from Version 6.1 and continues to lack performance statistics at the object levelfor example, figures that would show which EJB (Enterprise JavaBeans) was taking the most processing time. WebLogic Workshops 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 packages 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 Workshops 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 featuresespecially message queuingamazingly 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 Workshops 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 Workshops 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 softwares 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 priceespecially considering the included text search and graph generation engines. ColdFusions 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. Macromedias JRun (which is embedded inside lower-end versions of ColdFusion MX), IBMs 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 ColdFusions CFML (ColdFusion Markup Language) the easiest scripting language to learn, and it doesnt sacrifice any power for that simplicity (although it is more verbose than Microsoft Corp.s Active Server Pages or the PHP Groups 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 ColdFusions 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. Macromedias 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 Macromedias forthcoming Dreamweaver MX tool kit. Dreamweaver MX consolidates two of the companys development tool linesDreamweaver and HomeSiteinto 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. Weve been regular users of JRun Studio (a version of HomeSite) for a number of years now, and Dreamweaver carries forward that packages editing, automatic tag completion, database browsing and file deployment features. Its interface is a marvel in depth, though at the expense of some clutterwindows have collapsible docks, which have tabs, which have menusit 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. Were 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 firstname.lastname@example.org. Related Stories:
Development Tools Deliver a Key App Server Edge
Whos in Charge? JBoss Gaining ISVs Attention
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.