Skip to Content
Author's profile photo Former Member

Comparing SCA and Windows Communication Foundation

David Chappell provides a very good analysis of SCA versus Microsoft Windows  Communication Foundation (WCF, a.k.a Indigo).

But SCA isn’t just a copy of WCF–it’s different in some interesting  ways…WCF focuses on creating services and clients, SCA defines more than just  a way to build services and clients. It also defines how those components can be  assembled into larger modules, including specifying dependencies between them.  The notion of a connection between components, known as a wire, is a first-class  concept in SCA.”

This difference is fundamental. SCA is truly service oriented and enables  peer-to-peer interactions between service components while WCF is for the most  part following a client/server model, only enabling binary relationship between  peer services. This aspect of service orientation was completely overseen during  the design of Indigo. Strangely enough, I was sitting next to David during an  Indigo design review in 2004 and we discussed this very point of peer-to-peer  versus client/server and in particular the role of BPEL. I would like to  complement Dave’s point on BPEL and express that in SCA, BPEL has become a  “task-specific” programming language for implementing services.

David then goes on defining the “Challenges ahead for the SCA creators”. I  would like to comment on one of his point: “Once SCA is available, a Java  developer will need to choose when to use it rather than, say, EJB, JAX-RPC (now  called JAX-WS), or something else.

SCA was created precisely to help developers deferring the choice of  middleware and containers at “assembly” time rather than at implementation time,  therefore it is likely that SCA will become the preferred platform to write  business logic that can be reused in multiple systems. Combined with SDO,  developers have now a development environment that is abstracted from most of  current technologies.

With SCA and SDO  a developer can design a “Purchase Order” Service  which manages the lifecycle of purchase orders within a company. With SDO the  purchase order service can manipulate representations of the purchase order  regardless of the number of systems of record in which the attributes of the  purchase order need to be stored. With SCA, a system designer can compose this  service into multiple business processes, with other services such as one  managing the lifecycle of requisitions or invoices. I publish soon a paper to  illustrate this particular example along with how BPEL can be used with SCA.

Assigned Tags

      Be the first to leave a comment
      You must be Logged on to comment or reply to a post.