On the 12th July, Oracle announced the 12c release of the full Cloud Application Foundation (CAF) stack.Since Oracle are trying to bring all their products in line with each other, Oracle Coherence has leaped up in version number from 3.7.1 to 12.1.2 despite 12c being only one major release after 3.7.1.
Major is certainly the operative word here. Oracle has put a lot of effort into upping the amount of added value of running Coherence with Weblogic. Here’s a summary of the changes to Coherence in 12c
Managed Coherence Servers
The first change I want to highlight is a biggie - one are the days of ActiveCache and Coherence*Web and Coherence Managed Servers and GAR (Grid Archive) files are here to stay! If you have a big investment into ActiveCache already, then have no fear, it isn’t retired just yet but is being phased out to give you a chance to refactor those existing Coherence*Web applications.
The idea is to enhance the use of Coherence with Weblogic by optimizing packaging and deployment and provide application isolation and “lifecycle events” (see below!) thanks to the ability to deploy Grid Archives to a Managed Coherence Server. The advantage is that Oracle say that Grid Archives can be used by standalone Coherence customers too!
So the next question is…what is a “Grid Archive”?
Grid Archive (GAR)
A GAR file is simply a directory structure for Coherence configuration files which can be packaged and referenced as a module by other applications.
- GARs must contain at least two folders: lib and META-INF in the root directory.
- The META-INF directory must contain a coherence-application.xml file
- GARs need to be packaged in an EAR to be referenced by other modules.
A major aspect of any cache is consistency of data. Coherence has always been very good at keeping in sync with backend data sources. HotCache fits particularly well with Coherence in that it monitors the database for changes and then pushes them into the cache. The really clever thing about this though, is that extra overhead is avoided by making sure that only stale changes get pushed, lowering latency.
We’ve seen the usefulness of cache event processing in Coherence before (Steve even presented on it at JavaOne). The implementation in 12c has changed a little but the theory remains the same, as do the sort of events available to process. Register an event interceptor with the cache and you can process events relating to the cache data, the cache itself (monitor the movement of partitions around, for instance), or “lifecycle events” – a notification that a ConfigurableCacheFactory instance has either activated or been disposed.
The Coherence REST API has been updated in more than one area:
- Run multiple REST applications
- Configure multiple context paths in the cache config and your application server can run multiple REST applications. As simple as that!
- REST security
- Very necessary, Coherence REST security uses both authentication and authorization. Authentication support includes: HTTP basic, client-side SSL certificate, and client-side SSL certificate together with HTTP basic. Authorization is implemented using Oracle Coherence*Extend-style authorization.
- Support for named queries
- Named queries are CohQL expressions which are configured for resources in the coherence-rest-config.xml file. In a nutshell, an expression is defined in the XML file and given a name. Using a GET request on the query name will return the results of that query!
While all this is nice to have, and some of it very necessary (I’m looking at you, REST api and HotCache), one of the most appealing things about Coherence for me has always been its conciseness when compared to competitors. The lightweight distribution of Coherence never held it back either – indeed, it has performed very well in the market for data grids (and distributed caches, for that matter) thanks to some great design.
If Oracle can maintain that philosophy as it continues to develop and add to Coherence, avoiding the bloat that people often assume comes with all enterprise software, Coherence certainly seems like it will continue to be a formidable player and a crucial component of Oracle’s wider cloud strategy.
For more details, check out the release notes.
Follow @croft | | Mike Crofton
If you enjoyed this post, why not subscribe to our feed?