Java Object Cache – The Future

You will all encounter, or maybe already have encountered, at some point in time, applications that perform bad. You check the code, or better, profile it. After removing the Thread.sleep(1000) calls :-) there are still cases where the code runs too slow. The reasons can be various, from bad architecture to large object creation times and external systems with slow response times.
If the architecture is bad, you have a problem, in all other cases you can think about implementing a caching mechanism.
There are various cache libaries available or you can even write your own. It all depends on the requirements for the cache.
As an Oracle minded company, we use the Oracle caching products.

Oracle provides a caching library called the Java Object Cache (JOC). It is fairly easy to implement and supports distributed caching across multiple JVMs. JOC is a part of the OC4J and thus the Oracle Application Server, so you can use it for ‘free’ if you have licensed the app server.

Since the launch of Oracle Fusion Middleware 11G I wondered if Oracle would still supports the JOC because:
-) The current version of JOC is 10.1.2, no 11G version in sight.
-) It is embedded in OC4J but OC4J is replaced by Weblogic.
-) Oracles strategic caching product is Coherence.

So I did a little research. Indeed Coherence is the way to go. Coherence has all the features of JOC and many more. But imho Coherence true power unleashes when using it as an enterprise grid cache. And yes, there is the standard edition without the grid capabilities, but still, JOC is a better choice if you want a no nonsense, simple to use, embedded in your application, I can’t afford Coherence, cache.

Back to my initial question. Is JOC still supported? Actually it does. Webcenter 11G uses JOC in the Webcenter Spaces component. Maybe, Oracle will release an 11G version…you never know.

References
JOC home page
Coherence
JOC in Webcenter 11G
More about Oracle caching mechanisms (2005)

The marriage of Toplink and Coherence

When we talk about Object Relational Mapping Frameworks or ORM frameworks we’re talking about mapping relational data to an object-oriented programming language.

The ORM framework will hold features such as support for JPA (Java Persistency API); database access control mechanisms such as JNDI, JTA, JDBC; distributed processes, 2 phase commit, etc.

So on the hand you need to be able to map your relational data to object relational data and on the other hand you need to have a clear view on your persistency layer.
How are you going to manage the different transactions in your application, how are you going to deal with distributed transactions, etc.

In Oracle Toplink 11g or the Oracle Toplink Grid you have the marriage of the ORM Framework and Coherence which offers you the power to control your transaction based application.

In other words you can hand over the persistency management to coherence instead of giving your architect and developers the burden of solving this puzzle themselves.

When using Toplink Grid you can choose to have Coherence manage the persisting of new and modified Entities. This integrated solution involves a layer between JPA and the data store where the grid can be leveraged to scaling beyond the database bound operations.

In other words you’re application doesn’t need to wait for your database transaction to return an answer before it can proceed. Using asynchronous processing in your application will be a huge improvement for the end users’ experience and will leave the responsability to the JPA layer were it needs to reside.

For more information regarding the Toplink Grid, read the following article.

This is a whole new way of thinking about persistency and data centric web applications which will have a great influence on as well the software architects as the end users’ experience.

Will we still have the so called ‘slow java web apps’ versus ‘data centric web apps’ which can lead to huge discussions amongst ‘client-server developers’ and ‘web developers’ ?

OOW : Forms 11g – Forms to SOA – Oracle Data Integrator – OFM High Availability

Yesterday a couple of more sessions were on the agenda, which were all very interesting and of course a lot of sneak previews ;o)

Oracle Forms: Strategy and road to SOA
The first session was given by Eurotransplant, a company from the Netherlands that has implemented SOA in its forms-environment in the past few years. During this session Oracle has given an insight on Forms 11g, the road ahead and Eurotransplant gave an insight on the lifecycle they went through.

The most important keynote to keep in mind for Forms 11g is the ability to hook in bpel, human task workflows inside your forms application. The forms application will be event-driven in the future, so the end-users can react upon events through using JMS and Advanced Queueing.

The way Eurotranplant has integrated SOA into their environment was by first giving its Forms-developers a J2EE-development course using the JDeveloper environment and ADF Faces (first they used plain JSP and afterwards UIX), but Faces is the future. By using JHeadstart they could use the automatic generation framework on their existing Forms application.

In 2006 they’ve implemented the first BPEL process and hooked it up inside their forms application. A more advanced bpel process is being implemented right now and will be completed next year. To be able to hook-up bpel processes and service-enable their forms application, they’ve put the business logic which was inside their forms application inside the database. These pl/sql procedures, packages can then e called through pl/sql webservices and integrated inside new bpel processes and their forms applications.

The second session was given by Dave Berry and David Shaffer regarding the new SOA Grid enabled application.
Next generation Grid enabled SOA:

Features:

  • DataGrid Servers: Asynchronous write-behind queues to dehydrate data
  • Grid maintains one instance data of business logic, which can be a service such as bpel process
  • Build new messaging layer that takes advantage of grid-enabled to subscribe to state-changes
  • In memory access feeds (no disk-assistance required)
  • Activate/Rehydrate, relocatable bpel processes
  • Say no to HUB-and-SPOKE
  • Dehydrate current bpel process into grid, and relocate in another grid

SOA GRID:

  • Better performance and availability of bpel processes via SOA GRID
  • Release: 11g , next year
  • ESB Mediation:
  • Primarely stateless against bpel which is primarly statefull
  • Execute async-rule sending rid payload reference id through JMS
  • Subscribe to payloads via reference calls

New Model for Scaling SOA:

  • A new model for efficient resource utilization => scale up horizontally
  • Work together with Coherence for data-usage use cases
  • Use soa-grid inherently for as well cpu, memoiry
  • State-aware continuos availability for service infrastructure
  • Software-only solution, no hardware costs necessary
  • Heterogenous environment

The 3d session that I’ve scheduled today was regarding Oracle Data Integrator, which I’ve blogged about regarding setting up a migration path.

Event-Driven Business Intelligence from Heteregoneous Data using ODI:

The most important message given in this session was: ODI will be integrated in all technology stacks of Oracle, such as BI EE, Oracle SOA Suite

Enterprise Information Management:

Challenges:

  • Understand the past (BI)
  • Coordinate the present (BPM, BAM)
  • Plan for the future

ODI Strategy:

  • Pre-integrated with Oracle Middleware & Applications, BI Tools, Hyperion, Packaged Applications (ERP, CRM), Master Data Management, Fusion Application Pilars

ODI Offering:

  • ODI Core
  • Oracle Data Quality for DI (ODQ)
  • Oracle Data Relationship Management

Differentiator:

  • Declarative design
  • Knowledge modules
  • Active datamodel (change data capture)
  • Batch loads are performed faster via data-caching on staging area
  • Adapters are for free in the whole ODI stack
  • Oracle Data Quality Profiling => changes it into data quality rules

And the last interesting keynote : A Game has been organized during Oracle Open World, to win a plasma screen, car, etc. and this game is using RFID-tags, BAM and ODI as its technology stack. Sadly enough only US citizens can win these prices :(, maybe I’ll need to immigrate to the US before I come to Open World ;o)

The last session for today was very interesting and gave more insight on the different integration efforts oracle is providing throughout its technology stack.

High Availability for Oracle Fusion Middleware:

New Features in OFM 11g:

  • On Demand Scalability
  • Non-stop availability
  • Unified Management: Using the Middleware Administration Server (MAS) and the MAS Repository for configuring changes in one single point of truth, the MAS. The MAS Agent will then push the changes made in the Server to the different OC4J instances existing in your farm.
  • Resource Discovery via MAS: runtime announcement of services, no downtime needed which virtualizes the OC4J connection information
  • OFM Load Balancer: create virtual IP’s
  • Cold Failover Cluster with Oracle Clusterware (CRS), Cluster Manager & Cluster Server
  • High Availability Patching through which you can patch in a sequential manner when you have different Oracle homes or perform out of place patching when you have shared Oracle Homes. Using the Out Of Place Patching you will clone the shared Oracle Home, perform the patches, and merge the cloned Oracle Home with the non-patched version

The most interesting feature and ‘stockhorse’ (stokpaardje) of Oracle: Oracle Coherence which can be described as ‘RAC for the Middletier’.

What are the different features?

  • Distributed Management Solution
  • Runs inside JVMs
  • Automatic ‘scale out’/ horizontal scaling
  • Automatic High Availability : every object in memory has a backup via another server
  • Extreme transaction processing
  • Runs business logic inside the Grid: Analytics
  • Trigger other consumers, applications when data changes in the grid using a push or pull-mechanism

That was it for today, I’ll keep you posted …