Versions Compared

Key

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

...

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 9 uses binding.dwr to implement a Direct Web Remoting 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.

Data integration

On of the values of an SOA environment is to support a consistent framework for data exchange between business services. Business In a typical enterprise, business data comes from many different sources and is presented in many different formats. Tuscany SCA provides several features to ease data integrationa databinding framework which seamlessly handles data format mapping and therefore freeing the developers from such concerns.

Let's look at a simple scenario that deals with aggregation of XML data from different sources. This demo didn't make it into the V1.0 Tuscany SCA release but it is expected to be will be available in a future release of Tuscany. The business function here calculates the total value of all the accounts (checking, saving and stock) that a customer owns.

1) In this scenario, data is received from various data sources and manipulated as XML. The following data exchanges are occuring.
1) Use an RSS feed to retrieve the currency exchange rates from the web and exact the rate for a given currency.
2) Load the account data for a customer from an XML file or database.
3) Invoke a live web service to get the quotes for a list of symbols.
4) Calculate of the total value by joining the XML data from 2 and 3.

In this case, data are loaded/received from various data sources and manipulated as XML. As Handling of different data formats in the enterprise can be complex. For example,business data may be represented in many different ways, even if they are for the same infoset Tuscany SCA provides a number of different databindings . For example, we can model a Customer business object as:

    • JavaBeans
    • SDO
    • JAXB
    • XMLBeans
    • DOM

Different protocol implementation stacks also support . A Customer business object can be defined as JavaBean, SDO, JAXB, XMLBeans or DOM. At the same time, protocol implementation stacks require different data representations. For example, in the Web Service domain, we have: Axis1 uses DOM

...

, Axis2 uses AXIOM

...

ad JAX-WS uses JAXB

...

. Implementation technologies may also impose requirements on the data too. For example,as well; for example Apache ODE BPEL engine

...

consumes/produces data using DOM

...

, SAXON XQuery engine consumes/produces data using NodeInfo

...

and script Implementation uses AXIOM.

Application Application developers should have the freedom to choose their preferred data representation without being restricted by the above concerns and worrying about the mappings. Tuscany SCA provides suitable data transformation mediations which are attached automatically the wires between components to take account of the different choices that the component developer and application deployer may make. automatically handles this for them. LIST WHAT IS SUPPORTED

WHY IS IT IMPORTANT TO SHOW THESE BINDINGS AGAIN. READER KNOWS HOW TO DO THIS ALREADY

In the sample here the exchange rate is retrieved (step 1) using the feed binding (binding.rss) as follows.

...

The various XML data are joined together using XQuery (implementation.xquery) in step4. XML is most popular data representation in the SOA world. XQuery is becoming the most applicable language for extracting and transforming XML data. Its SQL-like syntax is relatively easy to learn. The XQuery implementation type brings the power of XQuery and SCA together. With the help of the databinding framework, we can use XQuery to mediate data from many services and the capability of an XQuery can be extended by invoking other SCA components. WHY IS IT RELEVANT TO TALK ABOUT XQUERY VALUE?! THIS IS AN SCA PAPER. WHAT ARE WE TRYING TO SAY HERE? ARE WE TALKING ABOU USING IT FOR MEDIATION? THIS WOULD BE SEPARATE FROM DATABINDING FRAMEWORK DISCUSSION ABOVE

Code Block
    <component name="StockValue">
        <tuscany:implementation.xquery location="stock.xq" />
    </component>

...

This is very useful for contacting external services or, in the case of services, for exposing SCA service to external applications. If this approach This approach would require ..... CAN WE REWORD THE FOLLOWING AS A CONTINUATION OF THIS SENTENCE INSTEAD? is used for all reference references and services within an SCA Domain then reference and service bindings are likely to require changing as services are moved between nodes in a domain.

...

Tuscany SCA will automatically use a default binding to communicate with the target service regardless of whether the service is local or remote to the calling component. In this way the infrastructure can be adjusted and the components redeployed without having to change .composite file information. FIRST TIME WE USE .composite in the paper. Can this be changed to... without changing the SCLD?

Choosing how to run the Tuscany SCA runtime depends on you your local environment but there are several options currently supported. are several options currently supported.

NEED A STRONGER STATEMENT HERE. Can we say Tuscany SCA runtime can be emebedded or run with any available application servers or web servers. The following are available with release 1.0 of Tuscany: Tomcat, Geronimo, Websphere, ...

  • Embed into Embedded into your own Java application
  • As a WAR file contributed to a suitable web application server
  • As a plugin to the Geronimo application server (available as an plugin to Geronimo and not part of the Tuscany SCA V1.0 release)

Getting Started With Your Own Project

The easiest way to get started with Tuscany SCA is to download the latest release 3 and try some of the samples.

There is set of guides for the Tuscany Java SCA software available from the Apache Tuscany website. In particular the User Guide Java SCA web pageTODO provides user documentation and extension guide. The User Document provides a simple walkthrough of the Tuscany Java SCA Calculator sample. There is also a paper giving detailed instructions of how to build the simple Web2.0 application described in this paper using Tuscany Java SCA 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.

...

Returning to the business questions we discussed earlier in the paper your application development process will involve some of the following steps. The order of the steps here will vary of course as it is unlikely that you will be starting with a clean sheet. can vary since Tuscany SCA allows a top-down or bottom-up development approach. DOES THIS SOUND OK?

Model the application in a ".composite" file.

...

The application model and its component implementation dependencies can now be contributed to the Tuscany SCA runtime. CONTRIBUTION IS NEW TO THIS PAPER. HOW ELSE CAN THIS BE SAID

I am wondering if we really need to have this kind of detail here. User doc covers these steps, why repeat it?

Summary

In this paper, we selected a few scenarios to demonstrate some of the powerful aspects of SCA programming model and how it applies to the real world. Apache Tuscany currently implements version 1.0 of the specification and extends the SCA programming model with its support for many different protocols (bindings), different component implementation types and runtime environments. It can be embedded as a solution or run standalone. Apache Tuscany's modular and extensible architecture makes it possible to easily incorporate new ideas. Many businesses are using Apache Tuscany and their feedback is helping to solidify Apache Tuscany as a simple SOA infrastructure as well as making it a nursery for new ideas. You are welcome to come and try the software and contribute to the project.

...

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 sample/helloworld-ws-service-secure
7 From the Tuscany SCA distribution 3 look for samples/store
8 Getting Started With SCA - Store - http://incubator.apache.org/tuscany/sca-java-10-incubating-release-summary.data/getting-started-1.0.pdf
9 From the Tuscany SCA distribution 3 look for samples/chat-webapp
10 Direct Web Remoting - https://dwr.dev.java.net/
11 From the SCA distribution3 look for Documentations

Acknowledgements

A big thank you to the Apache Tuscany Incubator community.

...