Oracle believes Java is integral part of the upcoming transformation of the Enterprise to more Web-2.0-like -- to adopt the look and feel of Web 2.0 and fulfill the funtional expectations of the typical Web 2.0 user (creating informational mashups, creating new levels of integration between normally non-integrated modules of a web applicion, or at least data elements managed by those modules).
Presenter: Thomas Kurian, Senior VP Oracle
Oracle believes that in the Enterprise spaces, there are 4 trends:
- Service Oriented Architecture (AOA, to make your apps more modular)
- Business Event Architecture - once you make your apps more modular, you can make more flexible
- Rich Enterprise 2.0 (a.k.a. Enterprise 2.0, a.k.a. Web 2.0)
- Grid Computing Architecture
Mr. Kurian then proceeded to explain how Oracle plans to address those four trends with tools features (e.g., new jDeveloper 11g features and capabilities), or with new administrative features (e.g., in Oracle Enterprise Manager), or with better adherence to architecutral standards to achieve easier data binding and UI component binding between elements developers use within an application.
To address the Service Oriented Architecture trend, Oracle believes developers want
- a 100% standards-based Service-Oriented toolset
- an integrated application development environment
- modeling capabilities for all aspects of a system (Business Logic, database, page flow, etc.)
JDeveloper 11g is said to inlcude such new features to address these developer needs.
For example, Oracle plans to standardize its SOA toolset by basing it on SCA (Service Control Architecture).
What is SCA?
In response to requests from customers and Independent Software Vendor (ISV) partners, BEA, Cape Clear, IBM, Interface21, IONA, Oracle, Primeton Technologies, Progress Software, Red Hat., Rogue Wave, SAP, Siemens, Software AG, Sun, Sybase and TIBCO are collaborating on specifications for building systems that use a Service-Oriented Architecture (SOA), which aim to provide developers with simpler and more powerful ways of constructing applications based on SOA. These specifications are published under royalty-free terms. You can learn more about how these specifications work together.
Service Component Architecture (SCA) is a set of specifications which describe a model for building applications and systems using a Service-Oriented Architecture. SCA extends and complements prior approaches to implementing services, and SCA builds on open standards such as Web services.
SCA encourages an SOA organization of business application code based on components that implement business logic, which offer their capabilities through service-oriented interfaces and which consume functions offered by other components through service-oriented interfaces, called service references. SCA divides up the steps in building a service-oriented application into two major parts:The implementation of servicecomponents which provide services and consume other services. The assembly of sets of components to build business applications, through the wiring of service references to services.
This all sounds great, but let's hope it works well and sticks around. I remember previous efforts from long ago (Data-Aware Components, DataBus) from such collaborations that never lasted, because the solutions quickly found limitations that couldn't be overcome. Furthermore, no developer or CTO wants to invest in a technology or framework with no future, even if the framework is perfectly adequate for his/her needs. It's a question of support.
To make applications more flexible, Oracle will be using Business Event Architecture. This allows components of a Java EE application to communicate with one another, much like an MVC GUI components interface with an application.
Rich Enterprise 2.0 (a.k.a. Enterprise 2.0, a.k.a. Web 2.0) addresses Oracle's belief that Enterprise application developers want to make their applications more like Web 2.0 social networking sites. All the same technologies that have been used for social networking sites can be used in enterprise applications just as well. Instead of social networking, the application could perform "professional networking". For example (as demonstrated), a salesman can customize his client page to display an up-to-the-minute report of his commission and a list of sales orders contributing to that commission. If an order is still penidng approval (i.e., blocking progress of the order workflow), the salesman can drill down into the order, then cross-link from the order's account manager field to the salesman's professional-network entry for the person in question for the salesman to contact him in some way.
Grid Computing Architecture, as applied here, allows for very smooth scaling of computing resources in a deployment, e.g., adding/removing a server to/from the grid while monitoring the entire enterprise in the Enterprise Manager. This was demonstrated toward the end of the presentation.
ADF Push-Enabled Comonent Demo:
JDeveloper ADF (JavaServer Faces) demo: with a visual development tool, created a bar graph with live data binding to a data source. Then with a simple change of property to "push", the bar graph rendered in such a way that the graph became animated as orders were processed in another window (it used a renderKit that took advantage of Flash). Then, on the iPhone (which doesn't support Flash), a different renderKit was used, such that the application did not need to be re-written to accommodate this device.
Without being too specific, Duncan also mentioned that Oracle was providing free Eclipse plug-ins for improving programmers' experience of deploying to Oracle middle-tier servers.
Enterprise 2.0 Demo:
A mashup of discussion forum threads, the graph that Duncan created. You can link and tag (user community does this) between any two objects.
Basically, a toolkit that allows developers to create an application similar to a social networking site, but all elements can be cross-linked to one another. This demonstrated the aforementioned scenario, where the salesman needs to follow-up with someone in order to expedite an order approval.
Used Enterprise Manager (with a spiffy, updated look and feel) to demonstrate how, when adding capacity via an extra server, you can see, in real time how latency goes down, throughput goes up and content in memory resources migrating to the new server and relieving the existing server.
(Note: all servers were running on BEA JRockit 6 -- in case you weren't aware, Oracle completed the acquisition of BEA Systems in late April, 2008. See press release: http://www.oracle.com/corporate/press/2008_apr/bea-closes-rls.html)
He then demonstrated "deterministic garbage collection" to solve the problem of "stop-the-world" garbage collection behavior by setting a JVM parameter via the JRockit "Mission Control" panel.
JRockit runtime provides such "live" config param changes without the server skipping a beat -- very smooth transition from one configuration to another.
This seems like an interesting direction for Oracle to take. Instead of starting with a standard and seeing what could be built with it, Oracle started with a vision of "what do we believe the developer want to be able to do", then figure out what arcitecture(s) would be needed to support such a capablilty. This makes a lot of sense, but, as usual, one wonders how much of these JDeveloper capabilites work as advertised and how much of are still "half-baked" and only work correctly within the specific scenario in the demo. One must remember that Oracle customarily throws a lot of ambitious ideas out to the masses via demonstrations and, through end-developer feedback, determines which ideas have traction and which are being ignored. From this, they can determine what ideas to pursue (and throw money at) and which to let fade away into obscurity.