Choosing an enterprise-wide standard Java IDE - JavaWorld March 2000
Tutorial Details:
Choosing an enterprise-wide standard Java IDE
Choosing an enterprise-wide standard Java IDE
By: By Sanjay Mahapatra
Reap the benefits of a cross-platform IDE for enterprise development
oday, as more corporations and systems integration vendors choose Java as the preferred language for development across n-application tiers, and the Enterprise JavaBeans (EJB) and the Java Platform 2 Platform, Enterprise Edition (J2EE) gain momentum, the need to define and standardize an enterprise-wide Java IDE is strongly felt by IT managers. In this article, I offer pointers on selecting a standard Java IDE for your enterprise development. However, first I will provide an overview of the Java 2 Platform, Standard and Enterprise editions.
Java 2 Platform, Standard Edition and Java 2 SDK
The Java 2 Platform, Standard Edition (J2SE) is a specification describing an abstract Java platform. It provides a foundation for building and deploying network-centric enterprise applications ranging from the PC desktop computer to the workgroup server. The J2SE is implemented by the Java 2 Software Development Kit (SDK).
The Java 2 Software Development Kit (SDK), which was formerly called JDK 1.2, is Sun's reference implementation of the Java 2 Standard Edition specification and includes both the development tools and the runtime environment. While Sun's JDK 1.0.x and JDK 1.1.x family continue to be called JDK, the JDK 1.2 and higher releases have been named Java Platform 2. For convenience, in this article I use the term JDK to include the Java 2 SDK.
J2EE and EJB
J2EE is a specification that is built on the foundation of the Java 2 Standard Edition specification.
Although Sun Microsystems invented the Java programming language, which has gained almost universal acceptance as the preferred programming language, both the EJB and J2EE specifications represent a collaboration between numerous vendors and industry leaders.
EJB defines a server-side framework and component model for the development, deployment, and runtime of distributed object-oriented applications. EJB is the core of the J2EE platform.
J2EE is the platform for enterprise solutions that is portable, scalable, and supports legacy integration and provides an architecture for supporting the EJB architecture-based components -- all to achieve the ideal "write once, run anywhere" goal in the server environment. J2EE simplifies enterprise applications by defining and specifying a complete set of common standard services, such as naming, transaction management, concurrency, security, database access, and so on -- and thus, provides the plumbing or infrastructural support for applications. J2EE also defines a container model, which houses and manages instances of J2EE application components. Containers are in turn housed within J2EE servers.
J2EE provides full support for EJB components, Java Servlets, JavaServer Pages, JavaMail, JDBC, CORBA technology for interaction with existing enterprise resources, and a security model.
In the J2EE model, you program the "business logic" rather than the "plumbing," which is already provided for you. This boosts productivity and lowers development costs. J2EE also facilitates flexible deployment and customization on the target production environment by means of declarative attributes provided in a deployment descriptor, along with, middleware independence, server-side operating system independence, and application-server independence. J2EE components may be built in-house or procured off-the-shelf, providing more options and flexibility to your IT department.
J2EE aims to protect IT efforts and application development costs. In the past, application code tended to become redundant, and then a new, more powerful proprietary application server hit the market and IT managers needed to purchase it for its useful features and functionality. Under the new J2EE model, application code is written in compliance with a specification, rather than for a particular application server product.
Thus, vendors will provide products that comply with the J2EE specification and compete on the implementation, rather than create their own proprietary specification cum implementation. Within the last year, numerous vendors have released a variety of J2EE and EJB specification-based products.
J2EE reference implementation
A reference implementation of the J2EE 1.2 specification is available from Sun Microsystems as a free download ( Resources ). This J2EE reference implementation is a working version of a J2EE server and provides a standard platform for development and education. J2EE applications are, after all, meant to be written in compliance with the J2EE specification and later deployable on any J2EE server product that is compliant with the same specification. This reference implementation has undergone the same compatibility tests that commercial J2EE 1.2 server products must undergo.
J2EE/EJB support for OS platforms
J2EE/EJB-based products are available for a wide range of common operating system (OS) platforms. Several J2EE/EJB products support more than five of the common server OS platforms listed below. It's interesting to note that support for Linux is on the rise. Flashline.com's "Application Server Comparison Matrix" shows that there are currently 11 out of 30 major application servers supporting Linux, including products from major vendors such as Oracle and IBM. As Linux gains mainstream acceptance as a server-side platform, more J2EE/EJB vendors are supporting Linux, especially due to the fact that the Java 2 Standard Edition has already been implemented on Linux.
HP-UX
DEC Alpha
AIX
Sun Solaris
OS/390
OS/400
Windows NT
Linux
JDK and Java IDEs
Java software development centers on the Sun Microsystems's Java Development Kit (JDK) or an equivalent standard JDK port from some other vendor. This JDK provides the APIs and basic, command-line-based functionality necessary to compile and debug Java programs nonvisually.
Java IDEs (integrated development environments) typically work in conjunction with the industry-standard JDK and aim at making a Java programmer's job easier by providing useful features such as a Java-aware editor with keyword highlighting, brace matching, auto-indentation, and so forth; program template generation and automation of routine tasks; integrated debugging; and resource control and configuration management (optionally).
No Java IDE is a magic wand
It's important to recognize that it takes bright and competent programmers who are well aware of good programming practices to write quality code that works, performs, and delivers. Although the list of positive attributes listed above help to make your job easier, no IDE can be considered a magic wand that creates or generates quality code for you. An IDE typically generates program templates and generally needs judicious "human" intervention by the programmer in order to write quality code.
In fact, some Java IDEs can even be cumbersome and non-intuitive. Some Java IDEs use proprietary repositories rather than a file system for storing Java source code, and hence, tend to "lock" you into a particular closed environment.
Other IDEs provide features -- such as platform-specific libraries/executables, proprietary extensions, and so on -- that are unused in most Java projects (not to mention being contrary to Java's fundamental "write once, run anywhere" philosophy and adding to the IDE's footprint size).
Categorization of Java IDEs
There are dozens of Java IDEs available both commercially and as freeware. Below I've categorized Java IDEs on the basis of operating system (OS) platform support:
Java IDEs with OS-specific installation, supporting few OS platforms
Java IDEs with OS-specific installation, supporting several diverse OS platforms
Java IDEs written in 100 percent pure Java, installable on all OS platforms with available Java Virtual Machine
Of the above, Java IDEs belonging to the second and third categories are respectively "better" and "best" candidates for an enterprise-wide Java IDE.
What is the significance of OS support for selecting your enterprise-wide Java IDE? Typically, several OS platforms are in use within the same organization.
An enterprise-wide Java IDE that is platform-independent and written in Java means that it utilizes diverse OS platforms that exist within the enterprise today and having the freedom to make new OS platform purchases in the future. Various projects for various departments and clients on various OS platforms can thus be executed using a common cross-platform Java IDE, reducing the time it takes for programmers to become familiar with a new IDE.
Traditionally, the development environment tended to mirror the production environment, using identical OS platforms. Java and J2EE provide flexibility in your choice of OS platforms and J2EE servers, both in the development environment as well as in the deployment/production environment. Corporations can thus utilize as much of their available and preexisting OS platforms for Java and J2EE development. And they can retain flexibility and choice for their future OS platform purchases on both production and development environments.
Conclusion
The Java IDE of choice for corporate, enterprise- or department-wide standardization should ideally be one that is functionally useful with cross-platform support for diverse OS platforms, preferably written in 100 percent pure Java. Such an approach can truly leverage the advantages of Java and the J2EE platform.
Just as J2EE leverages existing technologies and resources and provides the flexibility to embrace new and evolving technologies, selecting a Java IDE written in Java is a synergistic approach that helps utilize available OS platforms for enterprise application development. It also retains the flexibility to bring in new OS platforms into the development environment in the future, all without any programmer
Read
Tutorial at: Click here to view the tutorial
Rate Tutorial: Choosing an enterprise-wide standard Java IDE - JavaWorld March 2000
View Tutorial: Choosing an enterprise-wide standard Java IDE - JavaWorld March 2000
Related
Tutorials:
Will Big Blue
eclipse the Java
tools market?
Will Big Blue
eclipse the Java
tools market? |
Step into
the J2EE architecture and process
Step into
the J2EE architecture and process |
Eclipse casts shadows
Eclipse casts shadows |
Best tools for
mobile application development
Best tools for
mobile application development |
A first look at JavaServer Faces, Part I
A first look at JavaServer Faces, Part Learn how to implement Web-based user interfaces with JSF |
Quite poor
testing
Quite poor
testing |
Very
interesting article
Very
interesting article |
Good
introduction
Good
introduction |
Seven Low-Cost Ways to Improve Legacy Code
This article presents seven techniques I\'ve developed and used in my consulting work that are designed to improve legacy code. |
Software Download Central
compatible.
GNU getopt - Java port
A while back I found myself in need of a Java command line option parser. Unsatisfied with free versions I was able to find on the net, I volunteered to port the GNU getopt family of functions from C to Java. The current release |
J2EE security: Container versus custom
Choose the appropriate type of security for your application
Summary
This article covers the factors to consider when choosing between custom J2Esecurity and E standard security, also known as container security. It briefly covers how each type of secu |
Flexdoc
Flexdoc
Description
The goal of this project is to provide a production quality windowing and docking framework similar to what is currently found in the Nebeans and Eclipse IDE's.
|
Atricle Struts, JavaServer Faces, and Java Studio Creator:
The Evolution of Web Application Frameworks Sun Microsystems' Craig McClanahan, the creator of the Apache Struts Framework, co-specification lead for JavaServer Faces 1.0, and prime architect for Sun Java Studio Creator's new release, explains all three. |
Five Reasons to Move to the J2SE 5 Platform
Five important reasons to move to the Java 2 Platform, Standard Edition (J2SE platform) 5.0, supported by data and references to prove that the 5.0 release will reduce development and runtime costs. |
Struts, JavaServer Faces, and Java Studio Creator:
The Evolution of Web Application Frameworks Sun Microsystems' Craig McClanahan, the creator of the Apache Struts Framework, co-specification lead for JavaServer Faces 1.0, and prime architect for Sun Java Studio Creator's new release, explains all three. |
We are providing Knoppix 3.6 Live Linux CD's
We are providing Knoppix 3.6 Live Linux CD's
Knoppix Linux CD's
Now Available Linux Knoppix 3.6 CD's
What is KNOPPIX?
KNOPPIX is a bootable Linux CD with a collection of various GNU/Linux software. It auto-detects hardware and supports many |
UltraLightClient Community Site
Community-driven Wiki site for UltraLightClient Code Snippets and Contributions
If you want to contribute, please go to Register as Committer. There is no support for the content on this site by Canoo. Committers agree that the code can be used free of c |
NetBeans IDE 4.1
Out-of-the-box support for J2EE 1.4 and Web Services. Check out what early access release 2 can do for you! |
Easy Emulation With New NetBeans Mobility Pack 4.0
With the click of a button, switch back and forth between different emulation environments while developing one set of code. It's never been this easy to take advantage of Java technology's cross-platform capabilities. |
New Technical Articles: 64-bit Programming on Solaris 10 OS for x86 Platforms
Four technical articles describe the new Sun Studio 10 software's 64-bit programming features on the Solaris 10 OS for x86 and AMD64 platforms. Important issues regarding the AMD64 ABI (Application Binary Interface), debugging, migration to 64-bits, and p |
|
|
|