TSSJS DAY 2: Oracle Keynote by David Shaffer

David Shaffer from Oracle gave a keynote this morning on 4 topics.  He divided this up into four areas as follows:

Simplified Product Development

Four main areas for development include Web services, Adapters, ESB, Rules Engine, BPEL/BPM Engine, Human Workflow and finally policy-oriented security.  Much of this has gone through an evolution that leads to SCA to develop composite applications using all of the above.  SCA talks about how to wire these all together.  It exposes services and makes references to other services that can be used to realize a business service.  Spring components are new and help support bi-directional communication/integration with Spring and SCA.  SCA allows you to manage the whole SLC from code to deploy as single artifacts to help increase developer productivity.

Extreme Performance & Scalability

Scaling is a lot of work.  This led to the emergence of the application grid to allow for simplification of scaling, HA, caching, etc.  Oracle realizes this through a high-performance JVM (e.g., deterministic GC), distributed cache, and a powerful application server.  The latter is enhanced with manageability, scalability, and scriptability, regardless if it’s an internal data center or a cloud.  Stateful services can really take advantage of the “application grid” to maintain long-running transactions.  Ultimately, all the components of a SOA can be managed on the grid to provide continuous availability for services, data, and processing logic.

Application Assemblies

Denies Burton’s affirmation that “SOA is dead” (no surprise!).  Cloud computing is expected to go through the same “hype curve” as SOA.  Cloud is amalgamation of SaaS, PaaS, and IaaS.  Oracle finds PaaS the most interesting for opportunities for growth and development.  PaaS is a natural strategy for enterprises.  This allows for flexibility around tools.  Traditionally, operational guys want homogeneous environments, but with PaaS you can aggregate consistent foundations for different styles of development that are housed under PaaS.  To accomplish this you have to create higher level building blocks using application assemblies.  Assemblies can be packaged up and deployed on the grid based on meta data configuration that alters the platform based on an individual application’s need.  Operational guys can provision this all on a VM infrastruction.

Unified Platform for Services, Events, and Processes

SCA event processing is key to develop and end-to-end unified platform.  This can implemented on JMS and add additional meta data.  BPEL4People is a standard that now can incorporate people into workflow tasks. This allows for easy configuration to assign and complete tasks in a workflow.  BPMN 2.0 extends standard graphical representation for system analysts use to describe the system by providing an enhanced metamodel.  This allows them to be transformed to BPEL or have them executed natively without involving further development.

Oracle is still heavily invested in SOA and sees it at the end of the “hype” cycle and asserts standards and unification marks an inflection point without sacrificing the simplicity of open and interoperable systems.  Application grid will be the platform to realize this vision and be a key enabler.

Question: Is this too Utopian and how do you support this abstraction when things go wrong?  Oracle sees that this architecture makes organizations more Agile so the feedback loop is shorter to make corrections.

TSSJS DAY 1: Resource Oriented Architecture (ROA)

Sitting in on the ROA talk from Jeremy Deanne at TSSJS. He goes on to say ROA goes beyond WOA and extends the capability of REST.

Resources return a resource representation that is identified by a relative URI provided by a provider.  Using the HTTP PUT, GET, POST and DELETE to perform create, retrieve, update, and delete (CRUD), ROA then can take this same context and use JMS as the transport protocol.  Here we use the property of JMS (relativeURI, Action and JMSReplyTo properties) to provide information to JMS Queue.  Both approaches can consume representations of the resource.  This is the essence of ROA.

Service security authorization can be a privilege relative to a URI.  Set a privilege as such.

Integration through the ESB allows for “governance” in your ROA and audit communication between the endpoint.

Apply EAI patterns to your ROA.  Netkernel is a resource-oriented computing (ROC) platform that Jeremy used to demo.  Netkernel is one choice but you can use Spring and Spring Integration patterns to implement your ROA.

Just a bunch of web services (JBOWS) is not enough!  Results in a spaghetti SOA.  ESB  provides for service provisioning and decouples consumers from service providers and helps you realize ROA.  This allows them to evolve independently over time.  Key patterns are: Service Gateway (proxy to other services/servers), Pipes and Filters (chain of actions on messages that come through), Content Based Routing (spawn off a representation to a bunch of consumers (XML, JSON, transforms, etc.) and Process Manager (Orchestrating long-running transactions such as a workflow to add an employee to an org.).  Some people argue the latter doesn’t necessary belong in and ESB but rather above the ESB.  Hmmm…something to think about.

Key concepts of a ESB: specify a location agnostic of transport protocol, routing defines message path from SP to consumer and transformations which provides consumer-based transformations.  Main benefits integration functionality (pushes integration to the edge of the network as a URI which translates into better service mgt and scalability), complexity reduction (reduces integration complexity for lower TCO) and independent evolution of consumers and service providers by properly decoupling them.

To see a demo on this check-out: http://www.jeremydeane.net/Home/Speaking_Engagements.html.