



Today, a technology newsletter carried with an article about SCA (Service Component Architecture) which is outshone at IBM campus along with BEA. Is it a another SOA specification? Is it a SOA framework? or, alternate to SOA? Michael Rowley who is the author/architect/inventor of this said that it depends. Confused. Yes, it has been mentioned that SOA is hyped much and many of the things are futile.
Following are the key aspects of SCA:
A service contains a service contract and address. Service contract specifies the operations available in the service, the inputs for which to operate and the promised outputs. Service address provides where the service contract is available for consumption. Components is nothing but C++ libraries or Java JARs. Composites are XML file which contains the map between service contract and its implementation. The domain enables to manage the components and apply policies for their access. It provides common communication infrastructure and extensibility stuffs.
Although in the specification it has been mentioned that SCA is technology and language independant, it is majorly on Java. It has been mentioned that SCA is a concept as well as a framework but does not contains anything for presentation layer and data persistence. However, it integrates with Java based UI and DB framworks.
Instead of web services, SCA lets you connect and composite through web services, RPC or anyother means, unlike today protocol based SOA approach. This is what mentioned and marketed in the SCA specification. When you are crossing the border of “Concept behind SCA” section of this post, you have surprised that what is new in SCA for SOA, since WCF incorporated these few years back when this specification was only on the paper. More interesting and confusing thing is the specification team invited Microsoft for adopting this into .NET. One more buzz is that this specification is based on WSDL. These two make me what else have been proposed apart from what WCF has now with such the level of maturity.
For those who want clear map between above concepts and WCF:
- Services - C# interface with WCF declarations
- Components – C# classes with WCF declarations
- Composites – Service model section in app.config/web.config file.
- Domain – Service host (IIS/WAS/Windows Process)
It provides the following:
It doesn’t have the following:
Unfortunately, WCF has all the above with the power of .NET platform. So, beware of SCA jargon in .NET world, where an elephant WCF has all the capabilities. As of my understanding, SCA is WCF avatar in Java world.
Michael Rowley saluted the WCF proposals and its features, however he tried to oversight it with SCA. Its confused.




Design by contract is a popular approach to designing software. This approach prescribes the software designers should define formal verifications, specification of every components in an application. These verifications and specifications should answer the following questions:
These can be achieved by contracts or assertion which can consumed at method level. These contracts normally contains:
To use this approach in .NET, Microsoft Research Lab released “Code Contracts” for .NET.
There are three components available in this release. These are:
The first two are for runtime checking.
Contract Framework APIs
Contract.Requires() – Pre condition
Contract.Ensures() – Post condition (additional helper methods: Contract.OldValue(), Contract.Result())
Contract.Invariant() – Invariants
ContractInvariantMethodAttribute – Method level attribute, so that we can put all invariant objects into a method.
Binary Rewriter
Normal IL code for the above mentioned APIs cannot be executed at runtime. To provide runtime checking for contracts, you have to use binary rewriter which takes the IL and transforms the contracts so that contracts are executed at the exact programming points.
Get a copy of CodeContract here and user manual here.


More Options ...
Categories
Tag Cloud
Blog RSS
Comments RSS

Void « Default
Life
Earth
Wind
Water
Fire
Light 