Progress Sonic, Cape Clear blaze the SOA trail
- 06 November, 2007 10:53
The concept of an SOA "suite" may seem antithetical to those who were counting on SOA to free us from the tyranny of vendor lock-in, but there's an upside to this development. First, today's ESB (enterprise service bus) suites are much more capable than the early point solutions. Second, when you're dropping six figures on a paradigm shift, you want to know someone has your back at every layer of the services stack.
I recently assessed two SOA product suites, the latest editions from SOA/ESB pioneers Cape Clear Software and Progress Software, the latter's offering formerly sold under the Sonic Software moniker.
Both suites, Cape Clear ESB 7.5 and Progress Sonic ESB Product Family 7.5, combine Java-based ESB and process orchestration engines, propped up with a graphical, drag-and-drop IDE for process modeling and debugging, and plenty of wizardry to wrap your business logic for service accessibility.
These suites have come a long way since my previous encounter with the Version 6 releases (and five other commercial ESB solutions), and I was immediately impressed by the level of maturity and development delivered by both vendors.
In this latest incarnation, the Progress Sonic suite migrates its orchestration server to the WS BPEL (Business Process Execution Language) 2.0 standard. Further, the Sonic Workbench , formerly a UML-style Windows IDE, has been rebuilt on Eclipse 3.2, bringing the toolkit in line with competitors' products.
The result was a much easier to use, standardized environment that freed me from the heavy Java-centric coding and scripting requirements that plagued the previous edition. The new IDE not only boosts productivity but also improves portability. It will make it easier for customers to find and cross-train developers without the steep learning curve.
For Cape Clear, September's 7.5 release showcased a new SOA Assembly framework -- a lighter-weight alternative to orchestration that strings together processes that don't require the heavy lifting that BPEL often demands (such as implementing persistence, for example). I was surprised to see Cape Clear stray from its pure-play, standards-based roots in favor of such a custom extension, particularly as it has yet to adopt BPEL 2. The company says the move speaks directly to customer requests and, I must say, there is no denying the expediency with which I had my processes running. SOA Assembly is a good complement to Cape Clear's BPEL engine.
Cape Clear has also added an Invoke-Retry mechanism, providing additional reliability over HTTP, and now offers easy REST-style (Representational State Transfer) invocations in the Assembly framework. For VARs, the addition of customer ID tracking throughout the product provides a skeleton for multitenant and multiuser buildouts.
On the downside, neither product innately addresses good lifecycle management, large-scale provisioning, or SOA governance requirements. They are also short on registry/repository mechanisms for larger enterprise rollouts in need of dynamic runtime support (although Progress does offer add-ons that begin to address these requirements). Even basic business activity monitoring comes at additional cost from both vendors.
The similarities in these solutions end there. Under the surface, these enterprise service buses are poles apart. Cape Clear, narrowly focused on XML-based Web services, has long incorporated WS-* standards for messaging between end points, but requires a Java application server for deployment. In contrast, the Progress Sonic ESB builds on the company's MOM (message-oriented middleware) heritage, relying on the SonicMQ messaging system for its backbone, bringing additional weight to the wire, but proven reliability as well, with easy scalability.
The Cape Clear ESB 7.5 suite makes good sense for small to midsize rollouts where its excellent, event-driven technology implementation and development tools aren't compromised by the unsophisticated management and administration features.
Progress Sonic ESB Product Family 7.5 is a very good choice for large and highly distributed SOA initiatives, thanks to brilliant distributed debugging capabilities and top-notch scalability. Although a number of features for the ESB (such as data services, monitoring, and XML offloading) require add-ons that could quickly escalate cost, Progress has done a great job in building out this product.
Page Break
Cape Clear ESB 7.5
Both Progress Sonic and Cape Clear have eased installation with automation. Cape Clear's core server components and IDE installed autonomously with only minor tweaks. Cape Clear also installed JBoss to serve as the default app server. Progress Sonic includes its XML Server and Database Service out of the box.
Cape Clear bundles its server (ESB and BPEL orchestration engine) and Cape Clear Studio (graphical IDE and debugger) in its development environment, providing a good set of wizards and editors to get your developers productive. All of the expected tools are there: WSDL, XSLT (XSL Transformation), Java client stubs, and more.
By far, the biggest productivity boon comes by way of Cape Clear's new SOA Assembly framework. Where BPEL commands state-management and recovery over long-running processes, Assembly takes a lighter-weight approach, piping simple interfaces into short-lived, try-or-die scenarios. But, whereas BPEL is transport independent, assemblies are more closely tied to the transport, although they don't require SOAP and add support for REST-style calls.
In my testing, the Assembly Editor made rapid work of stringing together transforms and transports (including REST, s/FTP, e-mail, JMS (Java Message Service), outbound XMPP (Extensible Messaging and Presence Protocol), and RSS), along with security and load balancing, from a pallet of activities. The editor also provides hooks to take advantage of the new multichannel features, with only minor declarative tinkering required. Assembly configuration files (XML) get packaged and deployed as Spring-based Java Beans into the runtime.
The Assembly Editor further streamlines development with rapid orchestration prototyping. Hopefully, as standards continue to mature, the company will offer an eventual migration path for portability.
Cape Clear has extended its BPEL as well. A new Flow activity has been added for parallel processing, Partner Link handling has been made easier, and a redesign of copy assignment has improved variable manipulation. The ability to add annotations to diagrams is likewise a nice move.
Debugging is pretty good, facilitated by a TCP/IP monitor, a Web service browser (to view running services), and fresh support for JMS and WS-Security. The data transformation tools, although decent, would benefit from an upgrade, as would the monitoring and management tools, although they're fine for sifting and sorting errant processes from log files.
One nice addition: Administrators can now hand-tweak a stalled process and replay failed activities during recovery rather than simply kick the process to the curb.
Cape Clear can be commended for the extra effort spent on bolstering support materials. Tutorials and samples in Studio help developers get going with the Eclipse IDE, with BPEL, and with services architectures in general. Although the tutorials are general, they stand out in contrast to the less-developed materials of Sonic Workbench.
In all, developer productivity, runtime performance, and transactional reliability all benefit from additions to this rev of the Cape Clear ESB. What's more, Cape Clear continues to deliver one of the easiest-to-use SOA platforms on the market today.
Progress Sonic ESB Product Family 7.5
Progress Sonic's ESB suite has made impressive strides since I last visited the product. In addition to seeing the light of BPEL and adopting WS-ReliableMessaging, the company has extended an olive branch to developers by dumping the old Workbench. The new IDE greatly simplifies configuring, testing, and deploying processes and services, and it helps to mask a good deal of the complex SonicMQ underpinnings of the ESB.
The new dev environment, like that of Cape Clear, consists of pallets of activities, transports, routing options, etc. that I could drag and drop onto the canvas. I found process validation, policy creation wizards, WS-I (Web Services Inspection) validation tools, and an updated XPath mapping tool (much more useable than its precursor in Version 6) all went a long way to improving this developer's experience.
Page Break
The BPEL engine and event correlation have been well integrated with the ESB runtime and messaging. Progress Sonic's ESB runs stand-alone within a JVM -- as opposed to those of Oracle and Cape Clear, for example, which require a J2EE application server -- and employs routing itineraries, which are manifests of routing logic that push processing across domains and clusters at runtime based on content and variable parameters.
Progress Sonic's itinerary-based routing brings flexibility to an otherwise fairly hub-and-spoke approach. BPEL state and ESB itinerary headers combine to support some pretty complex acrobatics in long-running, domain-spanning processes.
Progress Sonic shines when it comes to debugging, too. In addition to providing the traditional niceties -- breakpoints, watches, etc. -- the Sonic Workbench now automates the configuration of test containers, and allows introspection of distributed BPEL and ESB routing itineraries and integration services, giving developers visibility into state and variables across distributed testbeds. The ESB process tracker allowed me to save events for later review, if not yet playback. The message editor now allows manipulation of JMS headers, as well as message headers and data.
Progress Sonic has added auditing support for managing long-running processes and made improvements in role-based security and access rights. These are all to the good, although I would prefer to see more graphical, heads-up displays included to monitor and more quickly isolate service choke points. There are hooks to employ Progress Actional (the parent company's monitoring platform) or, as in Cape Clear, JMX (Java Management Extensions).
Sonic Workbench needs work to ease the developer learning curve and match the strong documentation found in Cape Clear. A basic "Hello World" application is the only tutorial in the Progress Sonic suite. That said, Progress Sonic does provide a series of sample apps to template your startup. Naturally, the company will gladly charge you for consulting services should you require them.
Some developers may be put off by the scope and complexity of the Progress Sonic suite. But any shop involved in implementing a large-scale, distributed SOA (and possessing the commensurate technical expertise) will find that Progress Sonic has precisely the QoS, change management, and scalability safeguards demanded by big rollouts.
The underlying Continuous Availability Architecture delivers transparent failover and easy scalability through the addition of runtime brokers. A number of add-ons (repository services, offloading of XML processing, schema/transform management, etc.) extend and solidify the platform. And strong support for ready-made adapters, from mainframe and packaged apps to b-to-b and ORBs (object request brokers), make Progress Sonic a very attractive choice in transforming legacy investments.
Tooling up for tomorrow
Currently, neither Cape Clear nor Progress Sonic offers much native development support for human interactions. BPEL itself still falls short in this regard, and Cape Clear's Assembly framework fails to address it directly. Until BPEL offshoots such as BPEL4People begin to mature, plan to address human interfaces and workflow needs with custom tooling.
Other improvements would be welcome in both products. One item on my wish list would be simulation in debugging. A second would be support for WSIT (Web Services Interoperability Technologies), which would help bridge Java and the WCF (Windows Communication Foundation). A third would be support for JAXB (Java Architecture for XML Binding).
Nevertheless, these wishes should be viewed as just that -- wishes. I don't consider them knocks against either vendor's current offering. On the contrary, I'm encouraged to see both Cape Clear ESB 7.5 and Progress Sonic ESB Product Family 7.5 growing with the times, changing to address real-world requirements as we scale SOA beyond simple data exchange to the next plateau.