| Previous | Table of Contents | Next |
The three application models for the AS/400 Ive briefly discussed here are by no means the only models of computing AS/400 customers use today, but they are the ones receiving most of the attention for Version 4. In the following sections, I describe the four remaining areas where IBM is making major investments in the AS/400 for Version 4 two software and two hardware. Again, these are not the only areas of the system being enhanced, but they are the most visible ones.
I have already discussed many of the new application enabling products in this and previous chapters. Probably the most significant is the support for Java on the AS/400, because Java is rapidly becoming the universal language for application development. Some estimates have more than 500,000 developers already creating Java applications. If this is true, Java will be the dominant programming language available on all computer systems. This universality gives new meaning to the term openness in our industry. With Java, we may at last have the opportunity to achieve the Holy Grail of openness for an application-development language.
For the benefit of anyone who has been stranded on a desert island the past couple of years, Java is a programming language that Sun Microsystems, Inc., developed. Java was originally designed to write application software for consumer electronics, but soon started to be used for applications that could be executed by a Web browser. At the end of 1995, Sun made Java available by allowing anyone to download the Java Development Kit (JDK) from its Web site and by licensing the specifications of the language to any company that was interested. Computer vendors have almost unanimously accepted this language.
Java, an object-oriented language that maintains commonality with C and C++, was designed to be small and simple so software could run on the small processors found in many consumer products. I like to call Java a de-geeked version of C++, because it has eliminated many of the problem areas that cause complexity in C++. The Java model uses small programs, called applets, to provide granularity in program development and quick loading of a program over a network.
Originally, Java was used to enhance Web pages through the use of applets. Before long, it was being used to develop entire client/server applications. The total application is kept on the server, and only part of the program is downloaded to the client (full PC or NC) when it is needed. This concept of breaking up large, monolithic applications into smaller pieces that are dynamically loaded is often called componentware.
Java is more than just a language; it is a full software platform because of the Java Virtual Machine (VM), which simulates a computer in software. The Java VM can be incorporated into any operating system or Web browser. It also can run on hardware designed only for Java. Sun has introduced a family of Java-specific processor chips that such a specialized computer can use.
The runtime environment for a Java program includes the Java VM, Java class libraries, a class loader, a byte-code verifier, and a byte-code interpreter. The internal form of a Java program is called byte code, which a Java compiler generates and which is not specific to any hardware platform. You can think of byte code as the intermediate text, similar to that used for other languages on the AS/400. It is this byte code that is sent across the network. Because Java is an interpreted language, a byte-code interpreter is usually a part of the runtime environment. Because an interpreter may be too slow for some applications, several systems have introduced a just-in-time (JIT) compiler to the runtime environment. A JIT compiler improves the execution performance by taking the Java byte code and compiling it to the native binaries of the processor before execution, which eliminates the interpretation step.
Note that any language compiler can be adapted to generate Java byte code. One such HLL that generates byte code is JavaScript, which Netscape developed. Other languages and high-level program generators from various vendors also generate Java byte code.
Prewritten software components, called Java Beans, are also becoming readily available from Sun and others. A Bean can be anything from a cartoon to a piece of business logic. The use of Beans makes Java applications easier to write. You can build a simple Java applet by assembling a bunch of Beans without doing any programming, or you can incorporate Beans as part of a sophisticated business application. Later in this chapter, we look at application frameworks that are similar to Java Beans.
Javas real strength is that every major hardware and software vendor has accepted it. The slogan write once, run everywhere is often used to describe Java programming. Software developers can create a program on one Java machine and know it will run on any Java machine.
There are still competitors for Java, most notably Microsofts Object Linking and Embedding (OLE) set of protocols with ActiveX objects. ActiveX objects are to OLE what Beans are to Java. OLE is based on Microsofts proprietary object model known as the Common Object Model (COM). OLE and COM are tied to Windows and a few other operating systems. Java exists entirely in software, so it peacefully coexists with any and all operating systems running on any hardware platform. Because Java is so universal, it is the most natural choice for developing future client/server applications.
Initially, many in the computer industry saw Java only as a Web programming language, but it quickly developed into a mainstream programming language. Java is now so widely accepted that the possibility exists for it to become the dominant programming language for the object-oriented world, displacing C++.
| Previous | Table of Contents | Next |