Daremedy.com Articles

What Kind of Java Developer Are You?
By: Conrad Carter
Date: 2006-05-04
Website:

As Java works its way into more and more of the computing infrastructure, the position of the Java developer has begun to subdivide into distinct specialties.

The model that was common a few years ago, in which a senior guru could dip into any Java coding project and contribute, has been giving way to a model in which even the gurus and architects are specialists. This transition is due in large part to the significantly greater complexity of Java enterprise programming. This refers not only to the J2EE-based application servers, but, of late, to the Web-facing technologies. These are so varied and so layered that they have almost become disciplines unto themselves.

IBM has recognized this trend, and it has begun to provide integrated toolsets through its Rational product line to tackle the problem of complexity, based on the role the developer plays in the IT computing infrastructure.

The company sells three products that build on each other and serve the needs of distinct individuals. These products, part of the newly-named IBM Rational product line, are constructed around the Eclipse 3.0 open source framework.

In every large shop, there are always a few developers who are champions of a text editor, be it emacs, or even vi, that they tout as being better than all the IDEs and GUI-based tools. These programmers are the ones who are probably best served by Eclipse 3.0, where they will find a traditional text editor interface, as well as built-in support for numerous technologies that help write, debug, test, and build Java projects. More than anything, Eclipse provides automation and the framework into which additional resources may be plugged.

These code-oriented programmers, however, have seen their numbers dwindle under pressure from the demands of enterprise software development and the appeal of more efficient and reliable methods of generating code, through wizards, graphical editors and design tools, or modeling. Developers who recognize that not everything should be written by hand will find that IBM Rational tools provide the solutions they need.

Visually-Driven Web Development

Rational Web Developer for WebSphere Software supports the construction, testing, and deployment of Web-facing applications, Web services, and Java applications. It uses a variety of rapid development tools and wizards to facilitate code generation. It provides a user interface builder for quick assembly of screens from which code for Swing and the Standard Widget Toolkit (SWT) can be generated. It also uses the drag-and-drop metaphor to provide database connectivity.

Regarding Web technologies, Rational Web Developer provides wizards for generating servlets; it offers support for Java Server Pages (JSPs) and Struts (in fact it bundles a WYSIWYG round-trip editor for designing these pages); and it supports Java Server Faces (JSF), which is the latest technology to address the challenge of designing Web interfaces for enterprise Java applications.

Another strength of Rational Web Developer is Web services. The product bundles numerous wizards for automation of housekeeping code, a WSDL editor, and a test environment. The Web services tools support most of the key specifications, such as SOAP 1.1, WSDL 1.1, WSIL, UDDI 2.0 and 3.0, and WS-I.

In summary, the developer IBM is targeting with this package spends much of the time working on Web components or on developing, testing, and deploying Web services.

On the other hand, developers who focus more on enterprise programming, such as the use of EJBs, will gravitate to our next product, IBM Rational Application Developer for WebSphere Software.

Enterprise Development

Rational Application Developer is a superset of Rational Web Developer. Its distinguishing additions include support for EJBs, portals and portlets, UML visualization, developer-level testing and quality assurance, and the presence of a reporting engine. Let's look a few of these.

The reporting mechanism derives from Crystal Reports 10 (a product of Business Objects S.A.). It offers tools to build complex standalone reports as well as reports embedded in Web pages. Crystal Reports also includes a development version of its tools for enterprise-wide reporting.

Portlets—the programs that tie an application to the individual components of a dashboard or portal—are a hot development area in Java at present. IBM supports two specifications in this area, JSR 168 and its own portlet API. The JSR 168 document specifies the way portlets work together to create tiles in a larger mosaic, as well as how components should interact with the dashboard or portal. IBM was an early pioneer in this area, and its interest in portals goes back many years. The Rational tools provide end-to-end development capabilities as enterprises accept the integration of Web services and portals as a central part of the enterprise IT infrastructure.

As you would expect from a company that specializes in enterprise computing, Rational Application Developer provides a wealth of tools to the J2EE developer. The product comes with support for the full J2EE environment (with a test version of the WebSphere application server) that includes, of course, EJBs, the Java Message Service (JMS), and the associated technologies. Session beans and entity beans can be created with wizards and tested through generated EJB test clients. IBM's predilection for generating code with templates and wizards must be familiar by now—a powerful riposte to the text-editor-only programming model mentioned earlier. In addition to support for WebSphere Application Server, Rational Application Developer bundles support for deployment of J2EE applications using EJBs on BEA's server via the IBM Rational Toolkit for WebLogic Server.

For many enterprise developers, Rational Application Developer will be entirely sufficient. Some sites, however, prefer to develop enterprise code through the use of modeling, especially the Unified Modeling Language 2 (UML2), which has become the de facto notation for modeling. For those sites, IBM Rational Software Architect will be the offering of choice.

Model-Driven Development

Rational Software Architect provides functionality in two important areas: modeling and design patterns. The UML modeling capabilities are robust—supporting activity, class, component, composite structure, deployment, sequence, state, and, of course, use-case diagrams.

Patterns, especially design patterns, occupy an important place in Rational Software Architect. The product can recognize patterns in UML diagrams, as well as what IBM refers to as anti-patterns: design errors or shortcomings in existing code. Rational Software Architect is particularly useful to architects who want to evaluate the quality of code written by other team members. A rules-based tool provides further data on code quality and adherence to standards. The pattern capabilities and other features of Rational Software Architect are discussed in further detail in our article, "IBM Rational Software Architect 6.0: A Treasure Chest."

A Tool for Every Role

These new tools from IBM provide an important integration of product lines that does away with the traditional perception of Rational as a vendor primarily of modeling tools. These products bring together palettes designed for most of the important development roles in the enterprise IT site. Visual programmers will like the Rational Web Developer, enterprise programmers will favor the Rational Application Developer, and the uber-coders and enterprise designers will find Rational Software Architect to be their product of choice.

If you want to look at these tools for free, order the two-DVD IBM Software Evaluation Kit (SEK). You'll like what you find.

View this article on the web at http://www.daremedy.com/articles/jsp/JSP-122.html