Oracle Application Server 10g Migrating from WebLogic 10g (9.0.4) Part Number B10425-01 |
|
This appendix provides additional comparative information between WebLogic Server 7.0 and Oracle Application Server 10g. This information consists of:
Oracle Application Server 10g and WebLogic Server 7.0 both support JMS 1.0.2. Table F-2 highlights some of the key JMS features supported by both application servers.
Oracle Application Server provides support for JMS in the following manner:
The first is OracleJMS, which uses the Oracle databases integrated Advanced Queuing (AQ) to offer secure, transactional, recoverable, and guaranteed delivery of messages. Oracle Application Server also offers a fast and lightweight, in-memory JMS that can be used to pass messages between applications in the middle tier. In contrast, WebLogic provides a simple JMS implementation.
ConnectionFactories
and Destinations
.
Oracle Application Server defines a ResourceProvider
interface for plugging in message providers and provides the implementation classes for Oracle's Advanced Queuing and for third-party messaging systems such as MQSeries, SonicMQ and SwiftMQ. The ResourceProvider
interface allows switching between message providers transparently to the JMS client. JMS clients can mix messages from multiple messaging systems in the same application, and switch between them by merely changing the JNDI mappings, and without any changes in the source code.
WebLogic has lesser support for plugging-in other JMS providers. Its approach to supporting IBM MQ Series is complicated. Developers need to use BEA WebLogic MQ Series JMS classes, a separate library of classes, to plug in MQ Series. Oracle Application Server, on the other hand, makes it extremely easy to plug in, almost as simple as a DataSource
.
OJMS is the Java front-end for the Oracle database integrated Advanced Queuing (AQ), which offers secure, transactional, recoverable, guaranteed delivery of messages.
Advanced Queuing provides a number of important facilities. OJMS leverages the Oracle database robustness, query-ability and DML operations, scalability and high availability, and support for all data types in message payload, including relational data, text, XML, and multimedia.
The following general features are discussed:
WebLogic Server does not have the following set of capabilities that Oracle Messaging (JMS) provides:
On the other hand, BEA WebLogic JMS clustering is not as robust. One of the key considerations in the choice of JMS is reliability. WebLogic Server does not have failover of persisted messages pertaining to a server failure. Further, it provides failover only for JMS destinations. However, these JMS destinations are not replicated. For example, you can deploy multiple persistent queues with the same JNDI name across all nodes of a cluster. A client will hit just one until that node fails, in which the cluster will transparently failover the client to the next available node/queue.
However, what's stored in the first queue remains in the first queue since it is persistent until someone manually brings that node up again. Or, you need to find some mechanism for retrieving the messages yourself. Oracle Application Server and Oracle AQ, on the other hand, can leverage the high availability capabilities of Oracle9i RAC to avoid this problem.
The Java Object Cache is designed to improve access performance for shared Java objects and to reduce SQL-to-Java overhead (database access overhead). The Java Object Cache is distributed and can be accessed in-process, across process boundaries on a single machine, and across processor/machine boundaries.
To improve performance, the creation of Java objects is distributed to avoid bottlenecks. The cache is configurable, allowing objects to be grouped, pooled, pinned, and paged as necessary. Finally, the Java Object Cache is clusterable with updates that can be synchronized across clusters.
The goal of the HTTP-level (for servlets), and EJB clusters is to provide a load balanced and fault tolerant system. The Java Object Cache focuses on providing better performance by distributing pre-computed objects across the Oracle Application Server instances so that expensive computation is done only once.
The Java Object Cache is an in-process cache of Java objects that can be used on any Java platform and by any Java application. It allows applications to share objects across requests, across users, and coordinates the life cycle of the objects across processes. The Java Object Cache enables data replication amongst processes even if they have no island, instance, or cluster relationship amongst each other. This replication provides performance improvement by caching expensive (shared) Java objects no matter which application produced them, and also provides availability improvement in case the sources (for example, database, an external application) required to re-create the Java objects are down. Further, if an object is updated or invalidated in one process, it is also updated or invalidated in all other associated processes. This distributed management allows a system of processes to stay synchronized, without the overhead of centralized control. Moreover, the Java Object Cache also supports versioning of objects, thus allowing different applications to have different versions of an object, which is especially useful during application upgrades.
The Java Object Cache supports two modes of operation: local mode and distributed mode. Using local mode, objects are isolated to a single Java VM process and are not shared. Using distributed mode, the Java Object Cache can propagate object changes - including invalidations, destroys, and replaces- through the cache's messaging system to other communicating caches running either on a single system or across a network (the Java Object Cache messaging system is built on top of TCP/IP).
Thus, while the primary focus of the Java Object Cache is performance improvement, it does indeed have the side effect of improved scalability and availability, since the contents of the cache are available for results computation even when the back-end server is down.
WebLogic Server does not have any feature comparable to the Java Object Cache.
Gathering meaningful performance metrics on a deployed application server is essential for an administrator to troubleshoot bottlenecks, identify resource availability issues, and tune the application server. Oracle Application Server provides such a monitoring framework called Dynamic Monitoring Service.
DMS has been instrumented into a number of Oracle Application Server components including the Oracle HTTP Server, OC4J, OracleAS Portal, Oracle SOAP, and JServ. By publishing key metrics within these components and others, DMS provides a comprehensive view into the performance of applications managed by Oracle Application Server.
For instance, metrics such as the number of currently active requests in the Oracle HTTP Server, milliseconds required to parse the incoming request in the OC4J Servlet Engine, total free memory in the JVM, and numerous operating system metrics are published by DMS and displayed through Application Server Control. Since clients such as OEM retrieve DMS data via HTTP connections, these metrics can also be displayed through a browser.
While DMS is built into Oracle Application Server, it is also available as a monitoring framework for developers to utilize when building their own applications. DMS enables application developers to measure and export customized application specific performance metrics, thus making the application easier to support by administrators, developers, and support analysts.
There is a Java API called Java Management Extensions (JMX) that is in some ways similar to DMS and in other ways complimentary to DMS. WebLogic Server has been providing some support for JMX. Both DMS and JMX are being reviewed by the Java Community for possible inclusion into specifications.
The existing J2EE framework provides a very productive and scalable environment to author and deploy transaction-based, short-lived applications. However, it does not yet fully address emerging E-business requirements of long-lived interactions between autonomous applications. Further, as Web Services proliferate within organizations, Web Services will need to communicate with other Web Services in a loosely coupled environment, over a long period of time, without limiting resources, and surviving abnormal system crashes. Long-lived interactions between autonomous application components and Web Services require that all participants act as peers and communicate in an asynchronous and reliable fashion. To address these issues, Oracle Application Server introduces Active Components for J2EE (AC4J), a programming framework for developing loosely coupled applications, which are consistent, scalable, and recoverable.
AC4J introduces the concept of loosely coupled beans, known as Active Enterprise Java Beans. An AC4J is a standard EJB with the following important features:
To support this programming model, Oracle Application Server provides reliable asynchronous, disconnected, one way, or request/response type interactions between Active EJBs.
AC4J hides queues/topics and related JMS constructs from applications, provides automatic definition of communication message formats, and packs/unpacks messages, automatic routing of service requests to the appropriate service provider, automatic security context propagation, authorization and identity impersonation, automatic exception routing and handling, which is integrated in the EJB framework and automatic tracking and documenting of the computation progress of Active EJBs.
There is no AC4J-equivalent feature available in WebLogic Server.
In an enterprise Java environment, one of the most formidable challenges is storing business objects and components in a relational database (RDB). OracleAS TopLink makes application development more productive by offering an easy to use mapping workbench that maps the Java objects to relational databases and by simplifying one of the most difficult aspects of developing applications - persisting information to the database. Using OracleAS TopLink, developers gain the flexibility to map objects and Enterprise Java Beans to a relational database schema with minimal impact on ideal application design or database integrity. The result: developers focused on addressing business needs rather than building infrastructure. OracleAS TopLink is built on JDBC and is portable across any JDBC-compliant database, including Oracles Database, DB2, SQL Server, Sybase, Informix, and Microsoft Access.
The OracleAS TopLink solution offers three key benefits:
In essence, OracleAS TopLink offers the best solution in the market to perform Java-to-relational database object-relational mapping. With OracleAS TopLink, Oracle has blended the Java world and the relational database world in the best way possible, and solved one of the greatest challenges facing J2EE developers: productively mapping their Java objects and entity beans to a relational database.
With Oracle Application Server 10g, OracleAS TopLink is an integrated component of Oracle Application Server. Specifically, the OracleAS TopLink framework is integrated with the Oracle Containers for J2EE, and the OracleAS TopLink mapping Workbench is integrated with JDeveloper.
|
![]() Copyright © 2003 Oracle Corporation. All Rights Reserved. |
|