Number 15 December 2005 |
|||
Foundations for Service-Oriented Applications: Comparing WCF and SCA |
|||
When Microsoft went public with Windows Communication Foundation (WCF) in 2003, I wondered what the Java worlds response would be. We now know the answer: its Service Component Architecture (SCA), defined in a recently-published group of specs created by IBM, BEA, Oracle, SAP, IONA, and others. Originally code-named "Indigo", WCF was expressly designed to support the creation of service-oriented applications. SCA, according to its creators, focuses on "building applications and systems using a Service Oriented Architecture", which at least in this case amounts to pretty much the same thing. In the .NET world, WCF is certain to become the dominant foundation for building service-oriented applications. If the vendors behind SCA can breathe life into this still-incomplete specification, SCA has the potential to play the same role in the Java world and beyond. Given that WCF and SCA address many of the same problems, its not surprising that the two technologies look alike in a number of ways. The similarities include the following:
There are many more similarities. Both define a proprietary optimized wire protocol, for example, and both also have explicit support for a REST binding. These two technologies clearly target the same problemcreating service-oriented applicationsand its also clear that to a great degree they address this problem in a similar way. But SCA isnt just a copy of WCFits different in some interesting ways. Among the additions that SCA provides are the following:
Designing SCA cant have been an easy task. At least three major challenges are evident: managing the process used to create the technology, addressing the problem of supporting diverse platforms, and facing the need to control complexity. The Process Challenge If anything, the process used to create SCA is reminiscent of how the various WS-* specs were created. Those agreements were also hammered out behind closed doors, then presented to the world largely as a fait accompli. (Like the WS-* specs, IBM has even predicted that SCA will eventually be submitted to a standards body.) While its possible to criticize this approach, its much harder to argue with its success. Whatever the process lacks in openness is more than made up for in speed and efficacy. Unlike some of the more open processes, the private consortium approach can actually work well. Yet its worth pondering what this means for the future of the JCP. If IBM, BEA, and other major Java vendors can go their own way, as the process used to create SCA suggests, then the JCP becomes irrelevant. The Burton Groups Richard Monson-Haefel has called J2EE "a standard in jeopardy", and the publication of SCA suggests that hes right on target. The process used to create SCA, together with the fact that SCA is not a Java-only technology, are harbingers of the storms ahead for J2EE as a standard and for the Sun-controlled JCP itself. Its worth comparing all of this with the way that WCF was created. Microsoft combined the groups responsible for a range of technologies, including Enterprise Services, .NET Remoting, ASP.NETs web services (commonly called ASMX), and more, under a single leader, then made these people responsible for coming up with a coherent replacement for these diverse but related technologies. This process certainly had its share of politics, but they were all inside one company. Ultimately, there was always someone with the power to make a final decision on any issue. The Platform Challenge The solution is less clear, however. The SCA specs published so far omit a number of important aspects of the technology. Among the things left unspecified in the published version 0.9 specifications are the following:
If the experience of WCFs designers is any guide, hashing out how to deal with challenges like security and asynchronous communication will take some timethey really are complex areas. A few aspects of SCA are implemented in (and apparently derived from) version 6 of IBMs WebSphere Process Server, and the Apache-sponsored Tuscany project is getting underway to create an open source implementation of at least some parts of SCA. Still, all of the vendors backing this new spec clearly have a substantial amount of work left to do. Meeting the broad platform and language goals expressed in the initial SCA specifications wont be simple. Once again, the creators of WCF faced a significantly easier problem. Although web services and SOA are platform independent, the foundation that supports service-oriented applications need not be. As a result, WCF takes the straightforward path of supporting only one platform: the .NET environment on Windows. Even with this simpler goal, Microsoft spent more than five years designing and implementing WCF, a fact that might help SCAs creators plan realistic delivery schedules. The Complexity Challenge With WCF, a primary goal was to make life simpler for developers. Rather than add another technology for building service-oriented applications, Microsoft took the fairly radical step of subsuming several existing technologies, including Enterprise Services, .NET Remoting, ASMX, and more, into the single approach provided by WCF. Once WCF ships, most new applications that would have been built on any of these will instead be built on WCF. By placing such a big bet on services, Microsoft gambled that service-oriented applications really would be the norm going forward. This bet was correct, and the payoff will be a simpler development platform. The first public release of the SCA specifications was in November 2005. The second beta release of WCF (the code, not the specs) is expected in early 2006, with the final release planned for late that year. Given this disparity in delivery dates, its a safe bet that 2007 will see more WCF applications than SCA applications. Still, the appearance of SCA should stifle any remaining doubts about the coming dominance of service-oriented applications. And while some parts of this new technology owe a clear debt to WCF (Microsoft even has a patent on the idea of attributes), borrowing across the Microsoft/Java divide has a long and bilateral history. Neither camp has a monopoly on good ideas, and this kind of cross-fertilization benefits both sides. SCA has the potential to provide significant value in the Java world and beyond. If the vendors behind this new technology can complete the tasks theyve set for themselves, we can look forward to a day when the two major foundations for creating service-oriented applications are SCA and WCF. As with .NET and J2EE today, healthy competition between two established camps is good for everybody.
|
|
||
David Chappell is Principal of Chappell & Associates (www.davidchappell.com) in San Francisco, California. Through his speaking, writing, and consulting, he helps information technology professionals around the world understand, use, and make better decisions about enterprise software. David has been the keynote speaker for conferences in the U.S., Europe, Asia, and Latin America, and hes also delivered keynotes at many in-house events. His popular seminars have been attended by tens of thousands of developers, architects, and decision makers in forty countries, and his books on enterprise software technologies have been published in ten languages. In his consulting practice, David has helped clients such as Hewlett-Packard, IBM, Microsoft, Stanford University, and Target Corporation adopt new technologies, market new products, train their sales force, and write business plans.
|
© Copyright 2005
David Chappell and Associates
|
|
||||