Sunday, February 1, 2004

A simple introduction to J2EE


By David Gewirtz

This week, we're beginning a series of articles that'll run every few weeks about the basics of WebSphere. We're finding more and more readers interested in WebSphere, but still somewhat confused what it really does and is. Because the WebSphere Application Server supports J2EE, we're going to start off by providing a short intro to J2EE.

J2EE is Java, optimized for enterprise computing. Officially J2EE stands for Java 2 Platform, Enterprise Edition. Unlike the traditional Java, which is often used to build client enhancements, J2EE is designed to build server applications. Officially, the J2EE platform is "a set of coordinated specifications and practices that together enable solutions for developing, deploying, and managing" such server applications.

As an enterprise platform, the J2EE environment extends basic Java with tools that "provide a complete, stable, secure, and fast Java platform to the enterprise level."

One goal often stated by developers is that by using J2EE, they're reducing the cost and complexity of creating large-scale solutions. Because Java is a strongly typed language (meaning that it requires data types to be used as specified), use of the language is often inherently more secure in Web applications than Web applications built with less strong typing (such as C or even PHP and Perl).

According to Sun, the gurus of Java, there are four main benefits to working with J2EE. They'll be discussed in the next four sections of this article.

Complete Web services support

J2EE supports SOAP (Simple Object Access Protocol), a form of RPC between applications. The Java version of this is called JAX-RPC, which is the Java API for XML-based RPC. The idea with SOAP, JAX-RPC, and XML-RPC (one of the fore-runners of SOAP and still very actively in use today -- including here at ZATZ) is that applications on the Web and on servers can communicate easily across the network and between applications, regardless of what the originating and receiving environments may be. This means, for example, that a J2EE application might talk to a Domino application, which could talk to a Frontier application, which could talk to a PHP application, all seamlessly. It's very cool, although a bitch and a half to debug.

Faster solutions delivery time to market

Sun claims faster time to market, but my experience over the last 20+ years of dealing with development environments that every new environment claims the same thing. That said, J2EE does have some cool structural tools to make development more effective.