Versions Compared

Key

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

Work In progress

Audiance

New user
Its ready to useful things

Target

SOA World on line initially
October 15th

Contents

ow to get involved in the project

  • You can extend it but details are a different paper

Summary - Haleh (first draft)

  • Its ready to use

Introduction

Many articles have been written about SOA and Service Component Architecture already12. This article focuses on a real, available, open source implementation for Service Component Architecture that provides a simple way to implement SOA solutions. This free open source project is called the Apache Tuscany Incubator project. The project started in 2006 and is being used by many who are looking for a simple SOA infrastructure. 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 to the specifications and some will be regarded as extensions available in Apache Tuscany. For example, support for Ruby, JavaScript, Xquery, web 2.0 and distribution are currently extensions beyond the specification.

...

The precise relationship between the abstract components and runtime infrastructure is further refined using policy statements to apply organizationally agreed constrains on the behaviour behavior of the application in its deployed environment. For example, this could range from dictating which communications should be encrypted to describing what level of monitoring and logging is required.

Another feature of SCA that enables this separation is the support for policy and policy intents that allow organisation wide statements of intent to be made about the way that an application will behave.

For example, the helloworldFor example, the helloworld-ws-service-secure sample ? 6 shows how the intention that clients accessing a service must be authorized to do so can be expressed.

...

Tuscany demonstrates how a Web2.0 application and the services it relies on can be constructed using an internet shopping example called "Store" 6 7. There is a guide which walks through the steps required to build this sample 7 8.

From this sample you can see a Catalog component providing a service to the Web2.0 application over JSONRPC. The Catalog component provides information about the products the store has for sale and has been constructed without regard for how it might be accessed. Using Tuscany SCA the components Java implementation is associated with the JSONRPC binding (binding.jsonrpc).

...

Tuscany SCA supports other modes of operation that will be of interest to Web2.0 application developers. For example, the Tuscany Java SCA Chat sample 8 9 provides binding.dwr to implement a Direct Web Remoting 9 10 connection between a Javascript browser based application and an SCA service. Using this binding, service to browser communication is supported alongside browser to service communication.

TODO - move policy stuff here.

Data integration

On of the main values of an SOA environment is to support a consistent framework for data exchange between business services. Business data comes from many different sources and is presented in many different formats. Tuscany SCA provides several features to ease data integration.

...

SCA allows the location of target service services to be described explicitly, for example, from the bigbank-account demo 5

...

There is set of guides for the Tuscany Java SCA software ?available from the Apache Tuscany website. In particular the User Guide provides a simple walkthough walkthrough of the Tuscany Java SCA Calculator sample. There is also a paper giving detailed instructions of how to build a simple Web2.0 application using Tuscany Java SCA 7 8.

There are many more samples provided in the "samples" directory of the release. The file samples/README gives an overview of each of them and each sample comes with its own README and a graphical representation (.png file) of the services that the sample is demonstrating.

...

1 Real SOA - Web Services and Service Oriented Architecture, http://www.java.sys-con.com/read/299972.htm
2 What Is SCA, http://www.java.sys-con.com/read/325183.htm
3 Tuscany SCA Java downloads, http://incubator.apache.org/tuscany/sca-java-releases.html
4 Apache License Version 2.0 , http://www.apache.org/licenses/LICENSE-2.0
5 From the Tuscany SCA distribution 3 look for demos/bigbank-account
6 From the Tuscany SCA distribution 3 look for samples/store
7 sample/helloworld-ws-service-secure
7 From the Tuscany SCA distribution 3 look for samples/store
8 Getting Started With SCA - Store - http://cwiki.apache.org/confluence/display/TUSCANY/Getting+Started+with+Tuscany+Release+1.0 - TODO - Needs linking into the web page
8 9 From the Tuscany SCA distribution 3 look for samples/chat-webapp
9 10 Direct Web Remoting - https://dwr.dev.java.net/5 sample/helloworld-ws-service-secure
6 demo/bigbank-account

Acknowledgements

A big thank you to the Apache Tuscany Incubator community for working hard to get recent SCA, SDO and DAS releases out.

Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both. Other company, product, or service names may be trademarks or service marks of others.

Old Words

Introduction

The Service Component Architecture would never claim to solve every one of your distributed computing problems, or even provide and answer to all of the questions you are likely to have about Service Oriented Architecutures. It does how ever provide a consistent component programming and assembly model that will pay dividends in lots of situations.

The most first benefit you will see when you start to use the Tuscay SCA implementation is that it removes the need to learn lots of different APIs for connecting to remove service or for exposing service for others to connect to.

Before SCA the typical mode operation for building a program that had to talk remotely to other programs was to read the SOAP, RMI, REST manual for the product of you choice.

You ended up with code like the following

Code Block

// some business logic

// some comms api logic

// some business logic

With Tuscany SCA the application developers to focus on business logic and all other concerns to be addressed by the supporting runtime. There are many more benefits of course alongside conmmuncation technology abstraction

...