Enterprise technologies in the Java 2 platform
The enterprise presents special challenges for software development. Scalability, portability, security, and interoperability are requirements that must be addressed when developing systems for this environment.
The new Java 2 platform includes a comprehensive family of infrastructure technologies that support enterprise software development. You no longer need to painstakingly cobble together incompatible technologies to create an enterprise application — the key infrastructure that makes everything work together is now built into the Java 2 platform. Included are messaging APIs, transactions APIs, naming and directory service APIs, an enterprise component model, and other plumbing works that are fundamental to building and deploying enterprise applications.
One of the biggest challenges faced in developing enterprise applications is making new applications and systems interoperate with systems in preexisting enterprise architectures. The Java 2 platform’s distributed computing technologies, such as CORBA, Java IDL, and RMI, come to the rescue by integrating communication among disparate systems and applications — systems that are quite possibly implemented in different languages, located in different places, and running on different hardware platforms.
Java CORBA
One of the most useful of the Java 2 platform APIs is the Java CORBA API, which gives developers programmatic access to CORBA (Common Object Request Broker Architecture) directly from Java code.
CORBA is an integration technology that enables disparate systems of objects to communicate. CORBA provides an infrastructure for object systems to expose the methods of server objects to client objects in a straightforward manner. A popular use of CORBA is to wrap legacy systems as CORBA servers, thereby making them appear to client objects as “normal” local objects whose methods can be called. CORBA also provides a large number of other services that distributed applications can employ.
Java CORBA refers to the native CORBA support included with the Java 2 platform, which comes complete with a CORBA implementation usable right out of the box. Also included are the supporting class libraries that allow applications written in the Java programming language to directly access CORBA functionality.
The CORBA standard bundled with the Java 2 platform is the industry reference version of CORBA provided by the Object Management Group (OMG), the industry standards body that manages CORBA. OMG provides CORBA services, such as the CORBA naming service, along with the standard implementation of CORBA for the Java 2 platform.
Java IDL
Java Interface Definition Language (IDL) is the mapping of IDL specifically prepared for the Java platform. IDL is the language used to specify interfaces for CORBA objects. IDL allows CORBA to be language- and platform-independent because CORBA tools compile IDL into a client stub and a server skeleton in the language of choice for the object at hand. The same IDL interface code can be used to produce CORBA objects in any supported language, which provides the flexibility of multiple implementations.
RMI
RMI is a Java platform-specific integration technology similar to CORBA that was originally delivered with JDK 1.1. The main difference between RMI and CORBA from a development perspective is that RMI makes use of Java platform-specific features such as object serialization. RMI is extremely easy for developers working in the Java programming language to use, given that it makes use of Java language features that CORBA doesn’t support. The drawback to this approach is that it will not port across systems that aren’t compatible with the Java platform.
Whereas the version of RMI included with the Java 1.1 platform used its own low-level, or “wire,” protocol to move data around parts of the distributed computing infrastructure, CORBA uses a protocol called IIOP, which stands for Internet Inter-Orb Protocol. The Java 2 platform includes support for IIOP, which enables RMI to integrate directly with CORBA, further simplifying the task for enterprise developers.
The Java Enterprise component model: Enterprise JavaBeans
The introduction of Enterprise JavaBeans as an integral piece of the Java 2 platform is on par with CORBA support as an important resource for enterprise development. Enterprise JavaBeans is the Java 2 platform’s enterprise component model, which provides the mechanism and infrastructure for component creation and reuse in the middleware tier.
Enterprise JavaBeans provides a set of roles that partition code development and allow for maximum development speed, portability, and reuse. The three most important roles are server providers, container providers, and developers.
-
Enterprise JavaBeans server providers and container providers produce environments in which Enterprise JavaBeans components can be deployed and executed. These providers are application server vendors and other vendors who wish to provide Enterprise JavaBeans support to their customers by including Enterprise JavaBeans server and container functionality in the tools and products they make available. Several vendors have already produced pure-Enterprise JavaBeans servers and containers.
- Enterprise JavaBeans developers are the actual programmers who generate Enterprise JavaBeans components as part of applications. Much of the workload usually associated with the creation of middleware tiers is already done for the Enterprise JavaBeans developer, so the developer can concentrate on implementing business logic. The Enterprise JavaBeans container and server provide all the networking infrastructure for communications, as well as hooks into transactions processing services and back-end databases and legacy systems. The Enterprise JavaBeans developer’s job is also simplified because he or she no longer has to be concerned with the threat of concurrency-related issues associated with multithreaded server-side systems; each Enterprise JavaBeans acts appears single-threaded to the developer.
Vendor and industry support
Vendor support for the enterprise portions of the Java 2 platform is moving fast as tool and middleware vendors rush to support the new APIs and specifications. BEA, Secant, Inprise, ObjectSpace, Sybase, OpenConnect, and many others now have offerings in this space.
Systems integrators, consulting firms, and other providers are adopting the Java 2 technology quickly as well. These companies are taking advantage of the benefits of using the platform to deliver value to clients faster.
Conclusion
Back in 1982, Sun planted a visionary seed with its slogan “The Network Is the Computer.” Today, the Java 2 platform has grown that vision into reality through technologies like the enterprise APIs, Java CORBA, and Enterprise JavaBeans. These technologies enable enterprise development by integrating mission-critical enterprise systems and enabling rapid and sure development.