Tuscany - Getting Started - SCA C++ Milestone release 2

Tuscany SCA C++ provides a runtime implementation for the Service Component Architecture 0.96 Assembly specification and the 0.95 C++ Client & Implementation specification (found here), written in C++ and currently supports C++, Python and Ruby component implementation types. This page describes what is needed to install and run Tuscany SCA for C++.
If you haven't already done so, the first step is to download the SCA C++ Milestone release 2 of Apache Tuscany from our download page.

System Requirements

In order to run Tuscany SCA there are some minimum requirements:

Software Notes and Download Link
Operating systems:
  • Windows XP SP2
  • Linux
Linux distributions tested on include Redhat Enterprise Linux v3, Redhat Enterprise Linux v4, Ubuntu 6.06 LTS and Fedora Core 5.
Axis2C Release 0.94 http://ws.apache.org/axis2/c/download.cgi
Please download and follow the installation instructions. Ensure you can run the Axis2C samples
Tuscany SDO for C++ Milestone Release 2 http://incubator.apache.org/tuscany/download.html
Please download and follow the installation instructions
Optional: Java SDK 1.4 or later http://java.sun.com/javase/downloads/index.jsp
This is required for building and running the SCAGEN code generation tool, which is used when developing Tuscany SCA C++ components. This is not required when only developing Python or Ruby SCA components.
Optional: Apache Ant 1.6 or later http://ant.apache.org
This is required for building the SCAGEN code generation tool, which is used when developing Tuscany SCA C++ components. This is only required when building a source distribution of Tuscany SCA C++.
Optional: Python version 2.4 http://www.python.org/download/
This is required for building or running the Tuscany SCA Python extension (see below). Please download and follow the installation instructions. You can build the Tuscany SCA Python Extension with other versions of Python - versions 2.3.4 and higher have been tested.
Optional: Ruby version 1.8.x http://www.ruby-lang.org
This is required for building or running the Tuscany SCA Ruby extension (see below). Please download and follow the installation instructions. You should be able to build the Tuscany SCA Ruby Extension with other versions of Ruby.

Installing Tuscany SCA for C++

Getting Tuscany SCA for C++ working with the binary release on Linux

  1. Extract the binary tar package to a folder
  2. Set the TUSCANY_SCACPP environment variable to point to the directory that was just extracted
  3. Add the <tuscany_sca_install_dir>/lib directory to the LD_LIBRARY_PATH environment variable

Getting Tuscany SCA for C++ working with the source release on Linux

  1. Extract the source tar package to a folder <tuscany_sca_install_dir>
  2. The following environment variables are required:
    • TUSCANY_SDOCPP=<path to installed Tuscany SDO>
    • AXIS2C_HOME=<path to axis2c version 0.94>
  3. The following environment variables are optional if you wish to build the Python or Ruby extensions (see the Python extension and Ruby extension documentation):
    • PYTHON_LIB=<path to Python libraries>
    • PYTHON_INCLUDE=<path to Python includes>
    • PYTHON_VERSION=<name of the Python version>
      Note: If you are using a default installation of Python 2.3 these are usually:
      PYTHON_LIB=/usr/lib
      PYTHON_INCLUDE=/usr/include/python2.3
      PYTHON_VERSION=python2.3
    • RUBY_LIB=<path to Ruby libraries>
    • RUBY_INCLUDE=<path to Ruby includes>
      Note: If you are using a default installation of Ruby these are usually:
      RUBY_LIB=/usr/lib
      RUBY_INCLUDE=/usr/lib/ruby/1.8/i386-linux
  4. Build the source with the following command sequence:
    • ./configure --prefix=<tuscany_sca_install_dir>/deploy --enable-static=no --enable-python=yes --enable-ruby=yes
    • make
    • make install
    NOTE: If you don't provide a --prefix configure option, it will by default install into /usr/local/tuscany/sca. If you do not wish to build the Python or Ruby extensions, simply change the --enable-python and --enable-ruby options to "no". Use ./configure --help to see all the available options
  5. Set the TUSCANY_SCACPP environment variable to point to the <tuscany_sca_install_dir>/deploy directory that contains the built Tuscany SCA distribution

Getting Tuscany SCA for C++ working with the binary release on Windows

  1. Unzip the supplied zip file to a folder
  2. Set the TUSCANY_SCACPP environment variable to point to the directory that was just unzipped
  3. Add the <tuscany_sca_install_dir>\bin directory to the PATH environment variable

Getting Tuscany SCA for C++ working with the source release on Windows

  1. Unzip the supplied source zip file
  2. The following environment variables are required:
    • TUSCANY_SDOCPP=<path to installed Tuscany SDO>
    • AXIS2C_HOME=<path to axis2c version 0.94>
  3. The following environment variables are optional if you wish to build the Python or Ruby extensions (see the Python extension and Ruby extension documentation):
    • PYTHON_HOME=<path to installed Python>
    • RUBY_HOME=<path to installed Ruby>
  4. You must have set up the environment for Microsoft Visual C++ tools. The build command will call vcvars32 to set the environment. Ensure the directory containing this is on your path. This will be where you installed the compiler.
  5. Build the source:
    • cd <to where you unzipped the source>
    • build
    This will build all the projects and put the required output into the 'deploy' directory

    Alternatively, open the workspace at <tuscany_sca_install_dir>/projects/tuscany_sca/tuscany_sca.dsw in Visual Studio 6 or at at <tuscany_sca_install_dir>/projectsvc7/tuscany_sca/tuscany_sca.sln in Visual Studio 7.1 - you can build projects individually or build them all in one step
  6. Set the TUSCANY_SCACPP environment variable to point to the 'deploy' directory that was just created

Tuscany SCA Extensions

Tuscany SCA is composed of two distinct areas: the core and extensions. The core provides the implementation of the Service Component Architecture Assembly Model specification, reading composite files, loading the appropriate extensions and invoking components via references and services during runtime. The extensions provide the functionality required to call a component implementation (e.g. a C++ class compiled into a dll) or invoke a binding (e.g. make a Web Services call).

The table below details the extensions that are included with TuscanySCA for C++ Milestone Release 2.

Extension Details
C++ Provides the SCA C++ client API and enables C++ component implementations and interfaces. See the SCA C++ Client and Implementation specification for more details about the SCA C++ Programming Model and the Creating C++ SCA Components document for a step-by-step example.
Axis2C Web Services Provides the Web Service bindings enabling Tuscany to call SCA references via Web Services or expose SCA services as Web Services. See the SCA Web Service bindings specification for more details about SCA Web Service support and the Enabling Web Service access to SCA Components document for a step-by-step example.
Python Provides a Python SCA client API and enables Python component implementations. This extension is disabled by default and must be enabled to be used. See the Python extension documentation for more details.
Ruby Provides a Ruby SCA client API and enables Ruby component implementations. This extension is disabled by default and must be enabled to be used. See the Ruby extension documentation for more details.

Samples

SCA Technology samples Simple samples that emphasize how to to use Service Component Architecture technology. Follow the instructions on the samples Getting Started page to build and run the Tuscany SCA samples

User Guide Documents

Creating and building a Tuscany SCA C++ component A document that describes how to create, build and run a Tuscany SCA C++ component.
Enabling Web Service access to your Tuscany SCA component A document that describes how to expose a Tuscany SCA C++ component as a Web Service via the Tuscany Axis2C Web Service support.
The Tuscany SCA Python Programming Model A document that describes how to create and run a Tuscany SCA Python component.
The Tuscany SCA Ruby Programming Model A document that describes how to create and run a Tuscany SCA Ruby component.

Getting Help

The first place to look is at the Tuscany FAQ at http://incubator.apache.org/tuscany/faq.html

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