It's a truism that you don't have to buy software to deliver on SOA, which is primarily a style of technical architecture and business strategy and isn't really something you can go out and purchase.
But it's also true that enabling software can make the job of delivering on SOA 10x easier. Or on occasion, though hopefully not, much worse (10x harder.) But if software can indeed really help make the transition to SOA faster and easier, then the situation today is increasingly becoming a head-to-head competition between commercial and open source SOA solutions..
It should be pointed out that the technical support for SOA, at least in terms of creating interoperable services, has long been built into most modern development stacks today, whether that is .NET, J2EE, and to a lesser degree even the now-rapidly proliferating cloud computing platforms.
However -- especially when it comes to the full spectrum of SOA requirements -- no pure play development platform has it all when it comes to the technical capabilities of the modern SOA with its need for many flavors of service, management, metering, security, and the need to easily connect to hundreds of types of underlying datasets. This means that despite whatever technology platforms you're using today, you'll either need to develop additional SOA capabilities, buy them, or increasingly, adopt a community-based solution.
Thus many of today's enterprise-class SOA efforts have made investments of some kind in software to support development, testing, security, management, and governance across today's service-oriented architecture spectrum. Credible open source alternatives to commercial SOA products have been emerging for quite a while now but I'm only now seeing a relatively sudden and noticeable uptick in both interest in as well as the completeness of the offerings themselves.
Part of this is no doubt the recession and is due to cost sensitivity, but the rest is the compelling nature and maturity of the latest open source SOA offerings. The transparency of and ability to influence open source projects continues to be no small factor either as implementers struggle with more opaque less-frequently updated commercial products..
Since SOA can and should be highly strategic to the way companies operate at their core, deciding to build on community-built solutions can feel like a big step that is rife with implications for those who may have to bet their career on their SOA decisions. This brings us full circle back to the title of this piece: Is open source, a world that's more steeped in the sometimes anti-establishment free software movement and consumer Web development, really going to deliver on the increasingly sophisticated requirements of serious "big enterprise" SOA efforts?
The answer is, as with many complex issues, "it depends."
To understand if open source can provide additional value to SOA today over commercial products we have to consider where it helps improve some key aspects of SOA. From my perspective, there are generally three top level requirements for a successful SOA effort:
- Business architecture. If you are creating services but with no strategic plan, you're just doing low-level integration. It still has value but the big gains in SOA come from a resilient, adaptive global plan implemented locally -- see my piece on fixing modern enterprise architecture for more details -- that gives the whole organization a way of thinking about a component-based business that is shared, pluggable, connectable, reusable, and highly evolvable. Tools have limited impact to this key aspect of SOA but some modeling, repository, and policy solutions can certainly help. Open source is not very strong in these places for SOA yet (though if I'm wrong, I'd love to hear about it in comments below.)
- Interoperability. This is the core way that SOA delivers its value by enabling reusable business services and data, pulling down silos along the way. Without this the higher order functions such as BPM and orchestration can't be achieved. In my experience there are a surprisingly large number of enemies to interoperability including standards themselves sometimes, which in the SOA space are many and varied and complied with differently. Most know I'm increasingly of the view that simple services enable the most value creation, but either way, open source vendors now can deliver on all but the most advanced interoperability requirements (toolkit variations, programming language/platform support, service types such as SOAP and REST, schema incompatibility) and to a lesser extent QoS, governance, and some security requirements.
- Governance. Software support for activities related to exercising control over services in an SOA is one part of governance. This function, like business architecture, is only partially a technical one and while tools can certainly help, this is one area where open source is still fairly weak.
So for now, open source is fairly limited in two of the three top level aspects of SOA while being strongest in the actual implementation of services and process automation. In this realm, the only place that open source SOA seems significantly limited at the moment is in the number of adapters to different back-end enterprise data sources and in open source mashup development tools. This, unfortunately, is one of the critical barriers to tapping into the value of SOA and so for now, I'd give open source a qualified yes as part of a mature SOA strategy with the caveat that it's not possible to build a fully open source enterprise SOA stack today.
The bottom line here is that open source solutions can provide real value to SOA efforts today, both in terms of reductions in up-front cost as well as other the attendant benefits of open source including the ability to directly influence product evolution, more transparent architecture, as long as its functional strengths in service fabric are clearly understood and respected.
As for the future, I believe it's highly likely the open source will continue to encroach on the commercial SOA space especially on the more technical aspects of the practice. But for the foreseeable future, commercial solutions with strong integration with other commercial products, as well as governance software that also has strong commercial product awareness, will continue to have a sustained and significant advantage. If your organization is already far down the road on implementing an open source software strategy, then you will probably find open source SOA about to hit prime time for you and unlikely to fail to meet your needs in the medium to long term. However, companies with a strong COTS presence in their application portfolios will have to be much more careful to ensure their open source tools can play well and deeply integrate with their data.
Sidebar: Software AG's Chief Strategist Miko Matsumura replied to a Twitter query I issued on open source SOA today, summarizing the current situation in a pithy way that only 140 characters can enforce: "my opinion on Open Source SOA stuff--upfront cost=A++ infrastructure=B+ (great standards support poor adapters) governance D-." Well said.
Are you exploring open source SOA? Why or why not?