Component-based Web and enterprise application development has been a dream of forward-looking managers and technology leaders for years. In this dream, developers assemble powerful applications from prebuilt, pretested components. Development happens faster, introduces fewer bugs, and produces better software.
WebGain Application Composer, the development tool previously known as Spin, attempts to make this dream a reality. And it does a better job than you might expect for a 1.0 release. Application Composer's support for Enterprise JavaBeans (EJBs) and JavaBeans, and its approach to integrating Java Server Pages (JSPs), Servlets, applications, and applets, almost led us to give it a score of Very Good. However, its lack of Swing user interface support and failure to integrate with source-code control software limited it to a score of Good.
A bundle of features
Rather than provide a proprietary toolkit and framework and ask developers to build applications with it, Application Composer starts with standards-based technologies such as Java, JavaBeans, Servlets, JSPs, and EJBs. Application Composer solves the difficult problem of integrating components built with these technologies by introducing an assembly process based on the notions of behaviours and events.
In Application Composer's scheme, components, also known as agents, have behaviours; events generated internally or externally invoke those behaviours to carry out the business operations of the application. In other words, behaviours provide the procedural glue that ties together the components of an Application Composer application.
It's easy to import existing work into Application Composer. Existing HTML pages, images, and other static content can be added directly into a project via the Project|Add menu in the Project window. Once added, the content is accessible to other components in the project. EJBs also can be imported into your projects. Application Composer uses JavaBeans to construct a user interface to access imported EJBs, and the interface methods of imported EJBs remain accessible within the tool. But most other components must be created within Application Composer.
Application Composer includes the free JBoss 2.0 EJB container for use in testing EJBs. It also integrates with popular commercial containers such as the one provided by the WebLogic 5.1 application server. JavaBeans require no special run-time support.
Deployment with a click
More than one development tool has stumbled in the deployment department. But in this regard, Application Composer shines. With one click, Application Composer packages all project files, along with a handful of support files, into a standard .war (Web archive) file. Developers are then free to use this .war file with any Web server or JSP container that supports the Java Servlet Specification 2.2.
On the downside, round-trip development is not part of the offering. Although .war generation is smooth and automatic, it's not quite so easy to take an existing application, developed with different tools or perhaps modified by hand, and turn it into an Application Composer project.
Also, Application Composer doesn't integrate with, or provide hooks to integrate with, popular source-code control applications. Modern development tools, especially those intended for use in enterprise development, typically provide some level of integration with the most popular source-code control applications. It's one more way to make the lives of developers easier and keep development projects on track.
A few practice swings
To quickly put Application Composer through its paces, we installed the software on a Windows 2000 machine with the recommended configuration (128MB of RAM). No problems there. Application Composer comes with JBoss and a database (Pointbase). These components can be activated and deactivated quickly and easily via the Preferences dialog.
Once we had Application Composer running, we quickly tried each of the included examples. The suite of examples runs the gamut from the typical toys (a mortgage calculator, for instance) to the very impressive icDVD.com example, which demonstrates most of the functionality present in a online shopping site.
Application Composer supports truly iterative development. Its iterative approach is clearly faster than manual coding for small changes and component assembly, and it's ideal for tweaking an application's interface. It's not so good for making large-scale changes that affect many layers of an application or for making the same change to a large number of nearly identical components. A macro facility would help here.
WebGain Application Composer supports an impressive number of technologies, including JSPs, Servlets, and EJBs. You can use it to build Web applications, applets, and stand-alone Java applications, although it doesn't yet support building applets and applications using Swing components.
If you'd like a quick indication of the scale and scope of the Web applications it can support, we suggest downloading the time-limited trial version of the software from WebGain's Web site and playing with the icDVD.com example.
As with any tool in this category, if you want to get the most from WebGain Application Composer and realise the dream of faster, easier development through reusable components, you must also have a plan that will drive the development of robust, reusable components. No tool can guarantee good classes, components, and applications, but Application Composer can certainly help.
If your shop is thinking seriously about reusable components, WebGain Application Composer is definitely worth a closer look.