|Oracle8i Enterprise JavaBeans and CORBA Developer's Guide
CORBA and EJB have different strengths. CORBA was designed to support a heterogeneous application development environment, incorporating systems and languages of varying age and sophistication. The EJB specification was designed to bring Java within the realm of enterprise application development and to automate the most error-prone features of large-scale development.
Although they represent different development models, you will find that developing for either CORBA or EJB within the Oracle8i JServer framework offers a large degree of conceptual similarity.
Both EJB and CORBA leverage the capabilities of the Oracle8i database server, in particular the multi-threaded server. The threading model offered by the server simplifies not only the implementation of the ORB but the user's view of it.
With both EJB and CORBA applications, access to server-side objects is similar. Objects are published in the Oracle database using the OMG CosNaming service and can be accessed using Oracle's JNDI interface to CosNaming. (CORBA developers have the option of using the pure CosNaming approach, while EJB developers follow the EJB specification and use the much simpler JNDI access style.)
Figure 1-1 shows, in a schematic way, how applications access remote objects published in the database using JNDI.
The organization of this Guide reflects the partial similarity between EJB and CORBA. Chapter 2 covers EJB development, and Chapter 3 discusses CORBA. However, the important issues of session management, security, and client-side transaction control are not covered independently for EJBs and CORBA because there are many similar aspects to them. Chapter 4 discusses the connection and authentication aspects of EJB and CORBA development, and Chapter 5 covers transactions.
Oracle8i provides a Java interpreter for the IIOP protocol. This is done by embedding a pure Java ORB of a major CORBA vendor (VisiBroker for Java version 3.2 by Inprise) and repackaging their Java IIOP interpreter for running in the database. Because Oracle8i is a highly scalable server, only the essential components of the Visigenic IIOP interpreter are required--namely, a set of Java classes that:
Oracle8i does not use the ORB scheduling facilities. The Oracle multi-threaded server does the dispatching, enabling the server to handle IIOP messages efficiently and in a highly scalable manner.
On top of this infrastructure, Oracle8i implements the EJB and CORBA programming models.