Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Many articles have been written about SOA and Service Component Architecture already12. This article focuses on a real, an available, open source implementation of the Service Component Architecture that provides a simple way to implement SOA solutions. This freely available SCA implementation is being developed in the Apache Tuscany Incubator open source project. The project started in 2006 and is being used by many who are looking for a simple SOA infrastructure. The recent Apache Tuscany SCA version 1.0, which was released in September 2007, supports the Service Component Architecture specification 1.0. In addition to implementing the SCA specification, Tuscany is also a nursery for new ideas. Some of these ideas will find their way into the specifications and some will be regarded as extensions available in Apache Tuscany. For example, support for Ruby, JavaScript, XQuery, Web2.0 and distribution are currently extensions beyond the specification.

...

SCA provides a consistent model of distributed applications and of the components from which they are constructed. This model explicitly separates business logic (Component/Services/References) from the details of how a running application is assembled (Composite/Wire) and deployed. This promotes a common terminology and supports a common understanding of the capability of applications and the way that those applications work together. This common model also provides the hooks for tooling, governance, monitoring and management in the service oriented world.

...

This very simple mechanism of applying bindings to the services and references defined by a component is at the root of SCA's ability to separate business logic from deployment concerns. It works regardless of whether the component implementation is brand new or wraps some existing business logic. It is also the mechanism by which SCA components communicate with services outside of SCA. Bindings can be defined such that existing applications can access SCA services or so that SCA components can access existing applications. This does not make sense. should it be changed to bindings can be defined such that existing applications can access SCA services or be referenced by those services. ??? This flexibility allows the SCA approach to be introduced incrementally into an organization.

In the SCDL examples below, implementation.java indicates that the business logic of the AccountServiceComponent is written in Java. Tuscany SCA provides support for a selection of languages for building business logic, for example, XQuery, BPEL, script. The BigBank demo implements the various operations of the calculator using scripting languages. Tuscany SCA's implementation.script currently supports Javascript, Groovy, Ruby and Python. Those developers comfortable with writing scripts can now provide server side component implementations in a manner that is consistent with enterprise developers.

...