JavaOne 2007 – Oracle's General Session by Thomas Kurian – Next Generation of JEE, SOA and Human Interaction

Yesterday opened with a pretty well attended General Session by Thomas Kurian, Senior Vice President Oracle Server Technologies Division. As I have become used to expect from him, it was a very clear, crisp and somewhat sober presentation. No frills, no fluff to wrap the message. He drives it home as it is. And that is not too bad by itself.

The main themes for his presentation: JEE 5, SOA and EDA, Web 2.0 and Grid Computing – not surprisingly of course. Five announcements:

  • JEE 5 certification of the Oracle Application Server
  • Two new world record performance benchmarks for the Oracle AS
  • EclipseLink project which open sources all of Oracle Toplink, the premier ORM (and OXML) framework (dating back to 1995)
  • Donation to Apache MyFaces of the next generation of Rich (JSF) Client Components
  • Release of the Spring Development Kit which bundles Spring libraries in Oracle OC4J, IDE support in JDeveloper, tutorials, sample applications and other resources (Spring modules included include peristence with the TopLink Essentials JPA implementation, management (JMX), transactions)

Kurian announced that "as of today" the Oracle OC4J Application Server has been JEE 5 certified, and is now up on the Sun JEE 5 certification page. This means full support for EJB 3, JPA and JSF as well as JAX-WS and the other component of JEE5.....

Kurian further spoke about the typical architecture for applications with a UI, either in a browser or on a mobile device, stand alone or part of a mashup (such as Portal) and built on top of one or more Enterprise Services, such as Relational Databases, WebServices, SOA infrastructures etc. He outlined that JSF provides a way of defining the functionality and structure of the user interface and having that single application definition rendered to various platforms, protocols and devices. He also explained how the JSR-227 based ADF Data Binding framework allows development of the application against a uniform API to access data and operations on the data, without any knowledge in the application about the underlying technology, being it JDBC, EJB 3 & JPA, SOAP WebService etc: declaratively binding View and Model together.

Announcement: EclipseLink

Toplink open source, all of it (after donating Toplink Essentials as the RI for Java Persistence API. The Build up to 1.0 release, with source code and nightly builds, will be available from the Eclipse repositories expected in June. EclipseLink provides a full JPA implementation of course, but will go way beyond that, offering for example all of Toplink’s ORM features (far surpassing the current JPA spec) as well as O-XML (Object-XML mapping for XML files and databases). Note: Kurian stated EclipseLink will support both structured (O-RM) and unstructured (O-XML) data sources; it was somewhat surprising to hear XML data being described as unstructured. He also mentioned flat-files, but did not return to that subject later on. Other elements of the EclipseLink project include EIS, SDO, Database WebServices and JCA

Productive development of rich web applications

The session went on to discuss rich and richer web applications. Duncan Mills was brought up on stage to demonstrate the MyFlix DVD web application, developed using JDeveloper 11g and the new JSF library of Rich Components that Oracle is introducing. Mills showed the application, then demonstrated how he could very easily and entirely declaratively add drag & drop capability for dragging DVD thumbnails to the shopping cart. Otherrich, Web 2.0, Ajax features offered in these rich components include tabs, drag & drop, popup, popup menu, live data scroller (part of standard table component) as well as stretchable and reorderable columns. Then there is pretty extensive set of Charts, that can be rendered as Flash, PNG or SVG by setting a property on the JSF Chart Component.

Duncan briefly mentioned the kind of Observer model – component watch other component aka Partial Page Refresh/Rendering – that is used in the components to make the Ajax behavior work. For developers it is important that all JavaScript involved is completely transparent, fully contained within the JSF components. All that is required to get the Rich Ajax behavior going is make some declarative settings.

Announcement: Rich Components donated to Open Source community

The new set of Rich Client Components are also donated by Oracle (as Rich Component framework) to Apache MyFaces. When exactly this will be available has not yet been announced.

Human Interaction, Context Rich Collaboration and Communication Environment

The next stage in the presentation demonstrated Oracle WebCenter. However, the product itself was hardly mentioned, and only after several minutes into the discussion and the demo.

Kurian discussed how people are looking for more and more integration of content (document and web content repositories) into their working environment, with advanced search features for all the content as well as tagging (social bookmarking), sharing, discussion and rating of that content. Using a community of fans of The Matrix, a demonstration of a community interaction environment set up using Oracle WebCenter was presented. Members of the community can search, add and edit content – such as documents -, start, review or reply to discussion threads, tag the content, publish changes to either content or discussion threads as RSS feeds and/or through notifications and start communications (chat/IM, email, VOIP) with for example the author of some piece of content or contribution to discussion thread. I thought I heard a JSR-277 Data Control (ADF Data Binding) mentioned for RSS Feeds, for easy inclusion of data from RSS Feeds in for example web applications.

The discussion in the demo pivoted around the role of the character of the Oracle in The Matrix. It included the Oracle SIP Server integrated into WebCenter start a telephone conversation by sending the mobile phone number of the person the user wants to contact to the mobile phone of that user.

The term coined next was Enterprise Mashup: a user interface that provides an integration of Enterprise Services and Enterprise Content. A brief intro followed of the WebCenter Composer – Page Editor, used for adding and editing page components to WebCenter Spaces. Spaces and the Composer are not yet available as part of WebCenter and are scheduled for later this year. Integration of the SIP Server (Oracle Communications and Mobilility Server is available and Discussions and Wiki can be published any day now.

Service Oriented Architecture and the whole happy club of acronyms: SCA, BPEL, ESB, EDA, QoS, WS*, BAM

With Oracle now being one of the front runners in middleware and SOA infrastructure, it is only justified that a substantial portion of Kurian’s talk discussed SOA. Application Development in the near future will no longer be plain application development. It will be about Composite Applications, Assembly of Services, construction of processes consisting of automated steps (i.e. Service calls) and human steps (Workflow tasks). To weave them together, as the current terminology goes, we need a fabric of services.

The upcoming (the SCA standard’s 1.0 Specification was releases March 2007) standard way – support by 18 of the major industry vendors in this space – of assembling services is through SCA – the Service Component Architecture. Oracle will provide an SCA infrastructure based on the Spring Framework, with its 11g Application Server. It will allow service engines, transport engines for wiring to be plugged in – so no monolythic SCA Monster.

The demo of the SOA infrastructure showed an order arriving from the web application into t
he ESB environment and being
routed to a BPEL process. Before making the order shipped by the shipping department, BPEL calls into a Fraud Detection Service that uses CEP (Complex Event Processing, part of the Oracle BAM (Business Activity Monitoring) that does realtime analysis of events to detect for example massive ordering by a single customer using many different credit cards or one credit card being used by many different customers in a short period of time, and can also be used to detect things like bottlenecks in warehouses and logistical processes).

In the demo, fraud detection suggested that Duncan – who had ordered the DVD, might be an unreliable customer. A workflow task was initiated for a human customer service staff employee to analyze the order and Duncan and either reject or approve the order.

The demo continued to show a BAM based map of America with all the warehouses, indicated with their current status and possible expected delays in order processing. Subsequently a new Nevada warehouse was introduced into the infrastructure and wired into the Services Fabric by adding the Warehouse’s order processor service to the Enterprise Service Bus and adding a routing rule to lead order traffic to it, relieving other warehouses.

Cameron Purdy, now of Oracle: introducing Oracle Coherence (fka Tangosol) – The Grid

Kurian stated that the three common objectives for IT infrastructures of availability, throughput (scalability) and performance are traditionally very difficult to merge: they seem to contradict one another. Tangosol has been very successful at addressing these three challenges through a single solution: in memory data grid.

The Tangosol product – now Oracle Coherence – can run on a very scalable cluster of machines (nodes) that each have a portion of the shared cache in memory. Their is some redunancy in the grid, to allow for individual node failure and automatic failover to other nodes, so the grid is available until the last node dies. The nodes contain Java Objects, either the in memory representation of data retrieved from a database – and asynchronously synchronized with the database – or as in the case of one mass consumer website the indivdual state (1 Mb) of all currently active users or any other memory resource (expressed in Java objects) the application may need.

As more nodes are added, queries can be run faster and more data can be handled; when one dies, others take over. So availability, scalability and performance are all addressed by the same infrastructure. What Oracle RAC does for the database, does Coherence to the Application Server – and it seems to do it with even more elegance (well, it is all in memory, so Pandora’s Box of disk buffer caches and SANs can stay closed). Definitely worth looking into!