Tuscany SCA Native includes a set of simple technology samples that demonstrates some of the functionality of the Tuscany SCA Native runtime. This page describes the samples and links to the documents that describe how to build and run them
CppCalculator | A very simple sample to show how an SCA composite can wire together two C++ components to implement a Calculator service |
PythonCalculator | A very simple sample to show how an SCA composite can wire together two Python components to implement a Calculator service |
RubyCalculator | A very simple sample to show how an SCA composite can wire together two Ruby components to implement a Calculator service |
RESTCalculator | This sample is based on RubyCalculator but exposes the Calculator service as a REST Service running under the Apache HTTPD server |
CppBigBank | A more complex sample that implements the "Simplified BigBank" scenario. A whitepaper describing the scenario based on the SCA 0.9 Assembly specification can be found here. This sample uses multiple C++ components, calls out to an external Web Service via a reference, exposes the service as a Web Service and also provides a PHP based client. |
RubyBigBank | A more complex sample that implements the "Simplified BigBank" scenario. This sample uses multiple Ruby components, calls out to an external Web Service via a reference and exposes the service as a Web Service. |
HTTPDBigBank | A more complex sample that implements the "Simplified BigBank" scenario. This sample contains the same SCA components and calls as RubyBigBank, but demonstrates running the sample under the Apache HTTPD server |
PythonWeatherForecast | This sample makes calls to an external Web Service via a reference, demonstrating how Python ElementTree objects are used in Tuscany to access the XML data returned from the service. |
RestCustomer | This sample demonstrates a Python component exposed as a REST Service either with or without the REST interface (which specifies whether the service uses CRUD operations that translate to HTTP POST, GET, PUT and DELETE or uses HTTP GET and XML over HTTP POST to invoke named operations) running under the Apache HTTPD server |
RestYahoo | This sample demonstrates a Python component that is wired to make REST calls out to the external Yahoo! Web Search service. This sample uses a Ruby local client to invoke the Python component. |
AlertAggregator | A more complex sample that shows how a Web 2.0-style application can be built using SCA. The Alert Aggregator Sample aggregates various data sources and presents a unified view of data from these sources, served as XML and displayed via a web page |
The Tuscany samples each demonstrate different aspects of functionality provided by Tuscany, often in particular extensions. The table below documents the extension dependencies that each sample has. Please see the extension documentation for more details on the dependencies that particular extensions have.
C++ Extension | Python Extension | Ruby Extension | Axis2C Web Service Service Extension | Axis2C Web Service Reference Extension | REST Service Extension | REST Reference Extension | REST Interface Extension | SCA Service Extension | SCA Reference Extension | |
CppCalculator | Yes | |||||||||
PythonCalculator | Yes | |||||||||
RubyCalculator | Yes | |||||||||
RESTCalculator | Yes | Yes | Yes | |||||||
CppBigBank | Yes | Yes | Yes | |||||||
RubyBigBank | Yes | Yes | Yes | |||||||
HTTPDBigBank | Yes | Yes | Yes | Yes | Yes | |||||
PythonWeatherForecast | Yes | Yes | ||||||||
RestCustomer | Yes | Yes | Yes | Yes | ||||||
RestYahoo | Yes | Yes | Yes | |||||||
AlertAggregator | Yes | Yes | Yes |
The table below documents the libraries or environments necessary to build and/or run each sample. These are generally required by the Tuscany extensions that the sample employs. Please see the extension documentation for more details (such as the version required) about the dependencies that particular extensions require.
Java runtime | Python runtime | Ruby runtime | Axis2/C library | Axis2/C HTTP server | libcurl library | HTTPD server | Universal Feed Parser library | |
CppCalculator | Build | |||||||
PythonCalculator | Run | |||||||
RubyCalculator | Run | |||||||
RESTCalculator | Run | Run | Run | |||||
CppBigBank | Build | Run | ||||||
RubyBigBank | Run | Run | Run | |||||
HTTPDBigBank | Run | Run | Run | |||||
PythonWeatherForecast | Run | Run | ||||||
RestCustomer | Run | Run | Run | |||||
RestYahoo | Run | Run | Run | |||||
AlertAggregator | Run | Run | Run | Run |
The first place to look is at the Tuscany SCA FAQ at http://cwiki.apache.org/confluence/display/TUSCANY/Tuscany+SCA+-+FAQ
Any problem with this release can be reported to the Tuscany mailing lists or create a JIRA issue at http://issues.apache.org/jira/browse/Tuscany.
Thank you for your interest in Tuscany. -The Tuscany Development Team |