InfoQ

News

Setting out for Service Component Architecture

Posted by Jean-Jacques Dubray on Oct 18, 2007 11:00 PM

Community
Architecture,
SOA
Topics
SOA Platforms
Tags
Web services,
BPEL,
Service Component Architecture,
Service Data Objects

There has been some debate, here and there recently about what is SCA v1.0 about? Henning Blohm is a Java EE Software Architect at SAP and co-chair of the SCA-J committee. In this article he gives us his answer.

it is easy to get lost in the SCA universe...[and there] is little experience with using SCA in the community.

The article contains a list of projects involving SCA as well as a series of references. He develops the argument that SCA is about:

... integration with existing technologies...A deep integration of SCA assembly with a given environment reduces nasty model frictions introduced by abstractions that try to generically wrap any sort of runtimes into one common "higher" runtime model. 

Read the full article.

12 comments

Reply

IBM's SCA deserves a mention by Justin Wood Posted Oct 25, 2007 3:06 PM
Re: IBM's SCA deserves a mention by Johan Eltes Posted Oct 26, 2007 2:23 PM
Re: IBM's SCA deserves a mention by Alvaro Gareppe Posted Oct 26, 2007 3:37 PM
Re: IBM's SCA deserves a mention by Johan Eltes Posted Oct 27, 2007 4:41 AM
To annotate or not to annotate.... by Mike Edwards Posted Dec 6, 2007 9:32 AM
Re: IBM's SCA deserves a mention by Henning Blohm Posted Nov 12, 2007 11:24 AM
SCA & SDO by Alvaro Gareppe Posted Oct 26, 2007 9:01 AM
Re: SCA & SDO by PJ Murray Posted Oct 27, 2007 9:36 AM
Re: SCA & SDO by Henning Blohm Posted Nov 12, 2007 11:27 AM
C++ & Java in SCA by Patrick Leonard Posted Oct 26, 2007 12:11 PM
Re: C++ & Java in SCA by Henning Blohm Posted Nov 12, 2007 11:25 AM
Re: C++ & Java in SCA by Patrick Leonard Posted Nov 19, 2007 10:35 AM
  1. Back to top

    IBM's SCA deserves a mention

    Oct 25, 2007 3:06 PM by Justin Wood

    IBM's Websphere Integration Developer product is a really strong SCA implementation.

  2. Back to top

    SCA & SDO

    Oct 26, 2007 9:01 AM by Alvaro Gareppe

    Very illustrative article! SCA specification brings to SOA a common invocation model, allowing all kind of invocation methods. A very important addition in this concern is SDO. SDO works with SCA as a common data model. SDO specification gives to SOA the functionality to handle business objects as the data outside the components. I have been developing with WebSphere Integration Developer (IBM software that implements SCA & SDO specifications) and WebSphere Process Server since last year and the implementation provided by this tools (especially WID, as an IDE) is very powerfull and allows an independent implementation of the service components and the assembly of the components. Little summary… SCA gives SOA a technologic independent implementation, and specially detach the components from each other.

  3. Back to top

    C++ & Java in SCA

    Oct 26, 2007 12:11 PM by Patrick Leonard

    Henning, this is a nice overview, very helpful. I wanted to respond to your comment about C++ / Java integration. Rogue Wave's HydraSCA actually does host both Java and C++ components in the same runtime and they can communicate in-memory (without web services) for higher performance, or of course with web services if you prefer. It's JNI under the covers, but the developer just sees SCA components.

  4. Back to top

    Re: IBM's SCA deserves a mention

    Oct 26, 2007 2:23 PM by Johan Eltes

    IBM did found the acronym and pioneered the architecture approach. The should have credit for that. And for initiating OSOA. But it isn't an implementation of OSOA SCA. As an example, Integration Developer / WebSphere Process Server does not support dependency injection, which is a critical feature to keep SCA none-intrusive to service component business logic.

  5. Back to top

    Re: IBM's SCA deserves a mention

    Oct 26, 2007 3:37 PM by Alvaro Gareppe

    If I not getting all wrong with "support of dependency injection" you mean accessing other service using @reference annotation instead of using a lookup function... Of course that is important that every implementation of SCA implements every aspect of the specification... and I agree with Johan that it should be like that. On the other hand... the target of the dependency injection is to keep track of “what services are used by a component”, mostly for tracking the impact of changes...Ii think that all of that is possible with the assembly diagrams provided by WID. With this diagram I know, if I made a change, what components would be affected and what components will have to be, i.e., retested But, again, is true that every implementation on SCA should follow exactly the specification... this will be important if in the future "they" want to make the specification become standard

  6. Back to top

    Re: IBM's SCA deserves a mention

    Oct 27, 2007 4:41 AM by Johan Eltes

    Do you really need annotations when a .componentType file is provided for the implementation class? Annotations will require an import statement that will require SCA libraries on your classpath, although you may reuse the class in a none-sca set-up (e.g. in a pure Spring environment).

  7. Back to top

    Re: SCA & SDO

    Oct 27, 2007 9:36 AM by PJ Murray

    Very illustrative article! SCA specification brings to SOA a common invocation model, allowing all kind of invocation methods. A very important addition in this concern is SDO. SDO works with SCA as a common data model. SDO specification gives to SOA the functionality to handle business objects as the data outside the components.
    In addition to providing a data object, SDO also provides a common data access API - currently in Java and C++, but with additional languages coming.

  8. Back to top

    Re: IBM's SCA deserves a mention

    Nov 12, 2007 11:24 AM by Henning Blohm

    Justin, sorry for not mentioning IBM's product. I should have. SCA evolved quite a bit and many integration aspects have been added, so that I was focused on what's going on right now.
    Thanks, Henning
    Ps.: Sorry for that late reply as well. I didn't check for a few days and didn't get any notice (or didn't notice) that there are comments

  9. Back to top

    Re: C++ & Java in SCA

    Nov 12, 2007 11:25 AM by Henning Blohm

    Patrick, that sounds very interesting. Can you provide a pointer to more background information? Thanks, Henning

  10. Back to top

    Re: SCA & SDO

    Nov 12, 2007 11:27 AM by Henning Blohm

    Right. SDO is an important utility in SCA. However, SCA does not depend on SDO as DTO implementation. During our implementation work we found that SDO is very useful however. Thanks, Henning

  11. Back to top

    Re: C++ & Java in SCA

    Nov 19, 2007 10:35 AM by Patrick Leonard

    sure, it's in our product called HydraSCA. this is fairly high level, I can get you more technical info if you like: http://www.roguewave.com/hydra/hydrasca.cfm

    Patrick, that sounds very interesting. Can you provide a pointer to more background information? Thanks, Henning

  12. Back to top

    To annotate or not to annotate....

    Dec 6, 2007 9:32 AM by Mike Edwards

    Ah, whether to annotate or whether to include metadata in separate files is a long debate. There are definitely some developers who prefer to keep everything relevant to a code module inside the code module. Annotations provide a standard means to do this in Java. Agreed, use of the annotations does tie the code to the annotation libraries - but as you say, the code does not require the annotations to be read in order to work. In SCA it is also possible to keep the metadata outside the code modules, using things like componentType files. Equally important, the assembler of an SCA application can override some aspects of the metadata, should that be necessary when composing the application. So, I think SCA provides a useful level of flexibility in the creation of components and in their assembly into a larger application. As for the question of injection - it is a style of programming which aims to eliminate the use of technical APIs - all that the component developer gets to worry about are business interfaces - the ones that are offered by the component and the ones that are used by the component. Of course, SCA gets to have it both ways - there ARE APIs which allow the programmer to go fetch reference proxies, if that style of programming better suits the requirements. Yours, Mike.

Exclusive Content

Tapestry for Nonbelievers

A new article by I. Drobiazko and R. Zubairov introduces v. 5 of the Apache Tapestry component-oriented web framework. The tutorial shows how to create a component and covers IoC in Tapestry and Ajax.

Pete Lacey on REST and Web Services

In this interview, Burton Group consultant Pete Lacey talks to Stefan Tilkov about his disillusionment with SOAP, his opinion on REST, and addresses some of the perceived shortcomings REST vs. WS-*.

Business Natural Languages Development in Ruby

Jay Fields presents his concept of Business Natural Languages - a type of Domain Specific Languages geared towards being readable by domain experts.

Distributed Version Control Systems: A Not-So-Quick Guide Through

Adoption and interest for Distributed Version Control Systems is constantly rising. We will introduce the concept of DVCS and have a look at 3 actors in the area: git, Mercurial and Bazaar.

Segundo Velasquez and Agile as Seen Through the Customer's Eyes

Deborah Hartmann interviewed Segundo Velasquez about his experience as customer with an Agile team during the initial phase of software design of a product.

Fine Grained Versioning with ClickOnce

David Cooksey shows how to fine grained versioning to a ClickOnce deployment using an HttpHandler written with ASP.NET, making partial rollouts to a test audience much easier.

Implementing Manual Activities in Windows Workflow

Windows workflow (WF) is an excellent framework for implementing business processes, but lacks support for human activities. This article describes a completely generic approach for changing this.

Markus Voelter about Software Architecture Documentation

In this interview taken during OOPSLA 2007, Markus Voelter talks about the importance of documenting the software architecture, and gives some good and also bad examples on how it could be done.