A couple of months ago, I talked about how LiveCycle ES uncovers the holy grail of SOA. Pretty bold statement to make without any description of what exactly LiveCycle ES does and how it does it. So this is a first of several articles that will attempt to demystify Adobe LiveCycle ES and why I think it ROCKS!
Before talking about process serving and composite application development, we should spend a little time talking about architecture. Don’t worry – I won’t get into a long winded discussion about architecture and design patterns… That’s what Duane Nickull is for In his post about the new SOA Whitepaper, Duane talks about Web 2.0 as a common set of architecture and design patterns. The bottom line is that Web 2.0 applications are made up of a Service Oriented Architecture which is accessed by a Service Oriented Client.
In this diagram, we quickly recognize the Resource Tier and the Service Tier. This is where IT professionals have spent a vast amount of time and resources ensuring that backend resources are available and accessible. Web Services have been created, Java Beans developed, services were born. So, what’s the problem? The problem is that the needs of the business often outpace the bandwidth of the IT department. New requirements flood the IT shop, new services are born to meet the demand. Seems harmless enough… right? Turns out, not so much. All of a sudden, specialized services are invading the once clean and sterile SOA scene. The reality is, service multiplication causes maintenance nightmares.
Concept: Process Serving
What books like Secrets of SOA are telling us is that we need to take a step back and re-evaluate SOA approaches and implement what we have learned. One of those key lessons learned is that we need the ability to "string" multiple generic services together in order to create specific composite services. This is what Terry Borden and Bill Mitlehner refer to as process serving. Process serving is the ability to link two or more services together, the execution path of these links are driven by business rules specific to the implementation, and deployed as a new "composite" service with the same availability and accessibility as the atomic services themselves.
Theory: Service Container
For process serving to occur, you need to have an extremely flexible environment that would be able to expose a "workflow" like process engine that could invoke generic services synchronously or asynchronously while maintaining complete control over execution flow and state. Among other things, this service container would require:
- Registry/Repository where all execution assets and state information can be stored.
- Sophisticated foundation would be required to manage common tasks like logging, file system access
- Job management to handle the various requests
- Invocation layer that would be able to dynamically register endpoints for new composite services
- Granular security model
- Design tools to facilitate process definition and deployment
Reality: LiveCycle ES
This is exactly what Adobe LiveCycle ES provides. Sure, we talk about PDF documents and document services, that is our bread and butter. But when you take a serious look at what the LiveCycle ES platform delivers… you get process serving. LiveCycle ES implements a service container on top of the J2EE stack (Weblogic, WebSphere, JBoss) with a dynamic invocation layer which automatically exposes multiple endpoints for each new service or composite service. A sophisticated foundation with common services and integration points. A security model (User Manager) which leverages existing user registries. A service registry/repository to store and maintain service execution and state. Of course, LiveCycle ES comes with a complete set of design tools built on Eclipse (Workbench).
A good friend of mine, Greg Wilson, has recently posted several interesting articles around LiveCycle ES. His latest post is particularly of interest since it is directly related to what I have begun to cover here. I highly recommend that you take 15 minutes and watch his introduction to LiveCycle ES video. Also, take the time to have a look around the LiveCycle Developer Center… Read some of the great content posted there and download a trial copy. The download is quite large, if you would like to receive a DVD shipped to you, please drop me an email with your shipping information.
In the next article, I will introduce LiveCycle Workbench ES and how it is used to create composite services that can be deployed to the service container.