Java


Enterprise JavaBeans is designed to help the programming language Java make the jump from the client platform to the server platform. To be sure, it is possible to develop a server without Enterprise JavaBeans. However, Java offers in its standard libraries extensive support for network communication as well as support for threads. With Enterprise JavaBeans it is possible even for "ordinary" programmers, that is, those who are not server specialists, to expand the functionality of an application server or to develop server-side logic.

How can Java contribute to making Enterprise JavaBeans into a successful concept for the development of enterprise-critical applications?

Object Orientation

Java is an object-oriented programming language, and thus it offers the developer the advantages of object-oriented techniques. Java is also well equipped for the next step, namely, in the direction of component-oriented software development, for which object-oriented technologies are the best starting point (more on this in the section "Beans."

Platform Independence

Many enterprises find themselves confronted with the problem of a heterogeneous hardware and software landscape that can lead to almost insuperable difficulties. Many software systems are available only for specific platforms. Java source code is translated by the Java compiler not into machine code, but into machine-neutral byte code, which is then interpreted by a Java run-time environment. Therefore, applications that are developed in "pure" Java can run on all platforms for which a Java run-time environment is available. The run-time environment is platform-dependent and provides the Java program an implementation of abstract interfaces for system-dependent operations (for example, for access to file systems, access to network interfaces, and the display of graphical interfaces). Java applications offer an enterprise increased security and continuity through their platform independence.

Dynamics

As an interpreted language Java provides the capability of loading byte code either from the local file system or over a network into the address space of a process and from this to generate objects at run time (that is, program segments can be reloaded at run time, even over a network). Thus the stony path of rigid, inflexible systems is smoothed into dynamic run-time systems with a high degree of adaptability, and a contribution as well to greater flexibility and continuity. Java classes can be examined at run time (reflection). Methods can be called dynamically, attributes recognized and modified, and so on. With increasing support for Java in database systems (Oracle, for example), groupware systems (such as Lotus Notes), web servers (via Servlet API and JavaServer Pages), and browsers there are numerous possible combinations for system development. Even the linkage with other platform-independent technologies such as XML offers interesting perspectives. Thus in version 1.1 of the EJB specification XML replaces serialized classes as deployment descriptors (more details on deployment descriptors in Chapter 3).

Stability

The Java programming language is relatively easy to learn (compared, for example, to C++) and less subject to programming errors to the extent that certain language features (such as pointers to variables and functions) are absent, in favor of a consistent object orientation. Since it is platform-independent, to the extent to which the system in question has been developed in pure Java, no porting is necessary. Thus the possibility of porting errors does not arise. Since Java is an interpreted language, serious run-time errors (such as access to invalid object references, null pointers) do not lead to uncontrolled system crashes. The program is terminated in a controlled manner by the run-time environment. Thus critical errors can be located and fixed more rapidly.

Security

Java supports security through the features of the language. Thus direct access to memory by means of pointers is forbidden, stack overflow and exceeding array bounds are trapped and reported as an error in the form of an exception, and so on. Java also supports the sandbox concept, which has application primarily to applets.

On the other hand, security is supported under Java by means of program interfaces and implementations that belong to the standard range of run-time and development environments (currently version 1.3). With an implementation of a Java SecurityManager customized to individual requirements it is possible to keep track of, for example, critical operations of objects (such as reading and writing of files, opening of network connections) and prohibit them as necessary. Java offers management of private and public keys as well as program interfaces for encryption. There is also the possibility of signing Java archive files (JAR files) for preventing the manipulation of byte code by a third party. An excellent and thorough treatment of the topic of security in relationship to Java is given in [16].

Performance

The advantages that Java gains from the properties of an interpreted language must be paid for with performance limitations. Although much has been done to improve Java's performance (for example, by just-in-time compilation), execution speed remains a critical point (in complex client applications as well as in server applications). Through continual improvement in hardware and the Java run-time environment this problem has perhaps become less severe. However, until Java reaches the execution speed of a compiled language, there will remain the necessity of developmental work in the area of virtual machines.




Enterprise JavaBeans 2.1
Enterprise JavaBeans 2.1
ISBN: 1590590880
EAN: 2147483647
Year: 2006
Pages: 103

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net