Java For Business Takes A Step Forward
There’s no shortage of articles arguing the technical advantages of Java and the JavaBeans component model, in terms of platform portability, reduced complexity, inherent networkability, and robustness. However, while Java is a better technical solution, it is equally true that a language’s power lies not only in its features and capabilities, but also in its acceptance and use. For example, Java has quickly become a de facto standard for serious Web applications and has strong industry impetus behind it. The newest generation of development tools are Java-based and most software vendors now use the Java version of their product as their reference platform. Also, companies that are using Java find it easier to attract and retain top technical talent. Business managers take note, these developers will be able to leverage their Java skills across multiple tools, application types, projects, and platforms.
Most corporate and technical managers understand that certain types of Java applications (Java applets) can be embedded into the HTML code of a Web page. Using Java-capable browsers, HTML-embedded applets are dynamically downloaded from the Web server and executed on the client.
Originally, the purpose of most applets was to add GUI-like functionality to browsers and make static Web pages more dynamic and interactive. Java applets are now primarily used to dynamically extend the functionality of browser clients. Virtually all middleware suppliers have added applet interfaces to their existing products so that Java applets could also interact with database and application server back ends directly using various types of middleware. Using applets, organizations can extend their core business systems to the Internet, and in doing so revolutionize the way they do business.
To expand Java’s role in enterprise system development and integration efforts, Sun, the Object Management Group, and a coalition of hardware and software companies developed the Java Platform for the Enterprise (JPE). JPE comprises a set of APIs, termed the Enterprise Java Application Programming Interfaces, to a core set of services necessary for building, running, and managing strategic business systems in an easy and predictable manner.
Services supported in the JPE specification include naming, remote invocation, messaging, transactions, database access, life-cycle management, and others. The Enterprise Java APIs provide a common interface to these underlying infrastructure services, regardless of implementation and platform. For each infrastructure service, a single Enterprise Java API provides a standard, uniform interface to a variety of products supporting that service.
There are really two Java language interfaces defined for each infrastructure. The first is the application level programming interface that defines how a Java application accesses the infrastructure. The second is a Service Provider Interface, which defines how a provider of the infrastructure can be connected to programs using the API. In this manner, Java is the first language that effectively isolates developers from the difficulty of writing to multiple APIs for service support. This approach increases developer productivity, expands deployment options, and protects investments in software. It also provides a high degree of architectural flexibility and is the best bet for investment protection as the Java technology moves forward.
At this time, the Enterprise Java API that is receiving the most interest is the Enterprise JavaBean API. Like JavaBeans, Enterprise JavaBeans (EJBs) is a software component model, but EJBs extends the concept to the server. Enterprise JavaBeans was designed to support the development, deployment, and management of transactional business systems using distributed objects built in the Java language. More importantly, the transactions are implied and are defined declaratively. With EJBs, developers do not have to write code to define, initialize, or commit transactions, or to invoke interapplication communication protocols. Therefore, developers can build robust transactional applications quickly and relatively cheaply.
Like JavaBeans, EJBs must also run within a container, but in this case EJBs can be server-side application servers (Java-based or not), transaction monitors, databases, Corba ORBs, or Web servers — in fact any server container that adheres to the EJB specification. Basically, Java guarantees portability across hardware and operating system boundaries, while the EJB specification insures portability across container types and other toolsets. This is a very powerful concept and increases architectural deployment options dramatically, with many implied advantages in terms of scalability, investment protection, and technological positioning for the future.