|Oracle8i Integration Server Overview
Release 3 (8.1.7)
Part Number A83729-01
The Oracle8i Java Virtual Machine (JVM) provides a highly scalable and available environment in which to run and execute server-oriented Java applications.
This chapter contains:
The Oracle8i JVM has several key architectural components. This section contains:
The Java VM is a 100% complete Java execution environment, complying with the Java Language Specification and the Java VM specified in the JavaSoft JDK 1.1.6 standard. It is tightly integrated with the database and has a number of components: a bytecode compiler, a garbage collector, an integrated Java class loader, and a Java-through-C compiler, all of which have been designed for optimal performance and scalability within the database environment.
It runs in the same process space and address space as the database kernel itself, sharing a number of the memory heaps and having direct access to the buffer cache of the database to avoid copying memory for optimal performance. The Java VM provides a runtime environment for Java objects. It includes the representation of all Java data structures and supports Java method dispatch. It supports all of the standard Java bytecode operations, including the Java non-recoverable exception model and Java Language-level threads. The VM's dispatch and execution model are also designed to support hybrid interpreted or compiled systems, enabling users to access Java-through-C translation for better performance.
The Java VM provides the following core functions:
The Java VM provides the following core runtime functionality:
.sosby the Java VM.
Oracle Corporation does not externalize JNI to general purpose application developers, in order to prevent you from linking unsafe C libraries into the address space of the database.
The Java VM interfaces with the rest of the Oracle8i database through four different mechanisms:
These tools have themselves been integrated within the Oracle JDeveloper 2.0 tool.
The Oracle8i Java Virtual Machine can be programmed in three specific ways:
The Java VM in Oracle8i can be used to develop three types of Java applications:
The support for CORBA provided by the Oracle8i Java Virtual Machine creates an ideal platform for applications to communicate with each other in a synchronous, request-response manner. The Oracle8i JVM provides standard CORBA services including:
This section contains:
In addition to the IIOP and ORB facilities described earlier in this document, several additional CORBA facilities are integrated with the database:
java2idl, which make application development simple.
The Oracle8i Java Virtual Machine also supports the Enterprise JavaBeans component model and a number of standard EJB servers.
Enterprise JavaBeans (EJB) is a relatively coarse-grained set of Java application logic defined as a component with clearly specified interfaces that can be efficiently executed on a host system infrastructure provided by an EJB transaction server. EJB are not arbitrary Java classes, but must obey a set of constraints imposed by the hosting server. The EJB component model provides Java application programmers a convenient and highly productive component model for server-side business logic, facilitating application code reuse and multi-tier application development in the following important ways:
No Foreign Interface Definition Language (IDL): EJB defines a high-level infrastructure and programming interface, enabling application developers to specify their component model entirely in Java, without forcing the developer to learn a foreign IDL such as CORBA or D/COM.
No Systems-Level Programming: EJB is designed around the concept of a transaction server that is responsible for providing the system-level infrastructure and services such as scalability, load balancing, connection pooling, failover, and transactions. This frees the application programmer from low-level systems software concerns. The Transaction Server takes care of transaction and state management; as a result, programmers can declaratively specify the transactional behavior of EJB components.
Variety of Execution Environments: The EJB spec has been designed to allow EJB components to be deployed and executed in many different host environments that serve as EJB Transaction Servers, including TP Monitors, Application Servers, and databases. Oracle provides a consistent model for EJB components on the Java VM integrated with Oracle8i and Oracle Application Server and sharing a common set of services between the two environments.
Variety of Communication Infrastructures: EJBs were also designed to isolate Java developers from the specific communications infrastructure that is used between the client, middletier, and database. Specifically, it enables Java developers to design and implement applications as EJB components, which are then portable to a variety of communications infrastructures including CORBA/IIOP, DCOM, and Java's own Remote Method Invocation (RMI) protocol. EJB applications are I-directionally compatible with any underlying infrastructure. Oracle has chosen to support CORBA/IIOP as its communication infrastructure.
Productivity: EJBs provide a way to declaratively rather than programmatically specify transactional and security properties on a server-side Java component. Java tools, including JDeveloper, are designed to enable Java developers to directly support EJB-specified interfaces, providing an extremely productive environment for users to combine thin clients with server-side EJB components capturing their business logic.
Open Systems Alternative: In contrast with Visual Basic components executed within the Microsoft Transaction Server, the Enterprise JavaBean facilities of Oracle8i provide two important benefits: an integrated server that provides both unparalleled data management capabilities with support for Java-based business object logic and an open, portable application solution that does not lock customers into a proprietary, vendor-specific solution.
The Oracle8i database provides a number of facilities to make it a highly productive and scalable EJB Transaction Server. Architecturally, it integrates several different components that have been illustrated in the figure.
This section contains:
The session management facilities in the server provide support for the low-level registration of IIOP invocations, provide data-dependent routing of IIOP requests to sessions, and free related resources. These facilities are provided by several different components of the multithreaded server platform of the database including:
In order to allow seamless interoperability across a multi-tier environment, Enterprise JavaBeans leverages a common set of Network Computing Services. The most important services include: