2009/10/12

Book review: Understanding SCA

I bought this book to get a global overview of the possibilities of SCA, because it is also implemented within the Oracle SOA Suite 11g. It is the first book on the fairly new SCA standard.



If you want to get a global overview the first chapter will already do. The next chapters go deeper into the concepts with Java as the example programming language.

Chapter 1 - Introducing SCA

The book starts with a global introduction of SCA and its place w.r.t. SOA, J2EE, .NET, Spring and distributed computing. SCA focuses on being able to describe assemblies of components which have been written in a variety programming models and protocols. It does not cover presentation and persistency.

Within this chapter the main terms are explained: Service, Component, Composite and Domain.
Why another standard? Because there are still some issues with J2EE and .NET, namely complexity and reusability. You have to understand a lot of different technologies like JAX-WS, JMS, EJB, ASP.NET, .NET Messaging.

Chapter 2 - Assembling and deploying a composite
This chapter describes the creation of composites and deploying them into a domain as a contribution. Fabric3 (open source Java SCA implementation) with Java is taken as example language.

Chapter 3 - Service-Based development Using Java
This chapter shows how to create Java services (asynchronous and synchronous) and it is described how the life cycle of components are handled.

Chapter 4 - Conversational Interactions Using Java
Chapter about implementing conversational interactions in which several interface calls belong together as one conversation.


Chapter 5 - Composition
This chapter describes in more detail how applications are assembled into composites. Its about service bindings, performance, properties, including other composites.

Chapter 6 - Policy
This chapter is about policies wich include authentication, encryption, signing, reliability, transaction propagation.

Chapter 7 - Wires
This focuses more in details the possibilities with wiring components. It uses the Inversion of Control pattern to inject dependencies. This can be automatically done by the SCA runtime or at configuration level.

Chapter 8 - Bindings
Bindings are used to expose the services of components to external clients. This chapter describes it in more detail. It covers the usage of WSDL and JMS.

Chapter 9 - The Domain
The domain is the SCA runtime in which management, policies administration, communication infrastructure and resource sharing is handled. There are local, distributed and federated domains. Components are installed as contributions within the domain.

Chapter 10 - Service-Based development using BPEL
The BPEL is also taken as an example to develop SCA components. Some SCA extensions to bpel are covered.

Chapter 11 - Persistence
This chapter describes a way to incorporate persistency into the services. Persistency is not part of the SCA standard. It covers JDBC and JPA.

Chapter 12- Presentation
Also the presentation layer is not part of the SCA. This chapter describes the way to integrate with technologies like JSP and servlets.



Conclusion
SCA is Spring in the large that uses the Dependency Injection pattern to wire components into composite services. Note however that Spring also has Spring Integration for integrating distributed components.

Oracle SOA Suite 11g supports the SCA way of working, so that is a good base for its adaptation, but I wonder if you always need this kind of flexibility of protocols used between components. And the configuration based approach may also be a reason for some not to use it.
I have not seen it used within the projects i worked for, but i am curious in using it within the Oracle SOA Suite.
It is a great book to get you introduced into the SCA standard.

Some interesting links on SCA

No comments:

Post a Comment