
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1027286 13f79535-47bb-0310-9956-ffa450edef68
174 lines
5.7 KiB
Text
174 lines
5.7 KiB
Text
BigBank Demo
|
|
============
|
|
|
|
This application is made of 3 modules that represent the different aspects
|
|
of a fictitious banking application. Please see bigbank.png for a diagram of this demo.
|
|
|
|
To run the bigbank demo you need to first run the bigbank-calculator and bigbank-stockquote demos. This will start these
|
|
applications on separate copies of the Tuscany runtime and make them available as services. The bigbank demo is dependent
|
|
on these services.
|
|
|
|
|
|
Start bigbank-calculator demo
|
|
-----------------------------
|
|
The bigbank-calculator demo is a calculator application which handles add, subtract, multiply and divide operations.
|
|
Each of these operations is implemented in a different language, including JavaScript, Groovy, Ruby and Python.
|
|
|
|
To run the bigbank-calculator demo and make it available as a service for this demo do the following:
|
|
|
|
cd bigbank-calculator
|
|
ant run
|
|
|
|
OR if you don't have ant, on Windows do
|
|
|
|
java -cp ..\..\lib\tuscany-sca-manifest.jar;target\demo-bigbank-calculator.jar calculator.demo.CalculatorServer
|
|
|
|
and on *nix do
|
|
|
|
java -cp ../../lib/tuscany-sca-manifest.jar:target/demo-bigbank-calculator.jar calculator.demo.CalculatorServer
|
|
|
|
.. Leave the server running
|
|
|
|
|
|
Start bigbank-stockquote demo
|
|
-----------------------------
|
|
This is a very simple web services based stock quote application which returns random stock quotes on request. Please note that the stockquote service
|
|
is not live and is implemented instead to allow for this application to always run without depending on the availability of a web service.
|
|
|
|
cd bigbank-stockquote
|
|
ant run
|
|
|
|
OR if you don't have ant, on Windows do
|
|
|
|
java -cp ..\..\lib\tuscany-sca-manifest.jar;target\demo-bigbank-stockquote.jar stockquote.demo.StockQuoteServer
|
|
|
|
and on *nix do
|
|
|
|
java -cp ../../lib/tuscany-sca-manifest.jar:target/demo-bigbank-stockquote.jar stockquote.demo.StockQuoteServer
|
|
|
|
.. Leave the server running
|
|
|
|
|
|
Start bigbank demo
|
|
------------------
|
|
The main bigbank demo comprises two subsystems that are built from two distinct contributions coming from the
|
|
following demo modules ...
|
|
|
|
1) bigbank
|
|
This contains all artifacts that make up the main bigbank application. This is the application that the
|
|
end user interacts with.
|
|
|
|
2) bigbank-account
|
|
This contains all artifacts that deal with account management within the bigbank demo. The services
|
|
offered by the bigbank-account module are used by the bigbank module. The end user doesn't directly
|
|
interact with the bigbank-account module.
|
|
|
|
Besides using bigbank-account the bigbank composite application invokes services in bigbank-stockquote and
|
|
bigbank-calculator.
|
|
|
|
Start the bigbank application in the following way:
|
|
|
|
cd bigbank
|
|
ant run
|
|
|
|
OR if you don't have ant, on Windows do
|
|
|
|
java -cp ..\..\lib\tuscany-sca-manifest.jar;target\demo-bigbank.jar bigbank.demo.BigBankServer
|
|
|
|
and on *nix do
|
|
|
|
java -cp ../../lib/tuscany-sca-manifest.jar:target/demo-bigbank.jar bigbank.demo.BigBankServer
|
|
|
|
.. Leave the server running
|
|
|
|
|
|
Bigbank and SCA Policies
|
|
------------------------
|
|
The Bigbank demo uses the Tuscany Policy Framework to enforce security in the following ways:
|
|
|
|
Authentication
|
|
--------------
|
|
The bigbank-account subsystem enforces authentication as a required security characteristic for
|
|
all interactions with its CheckingAccountService. Hence the bigbank application which is a client
|
|
to this service authenticates itself for every interaction with the CheckingAccountService. The interaction
|
|
between the bigbank application and the CheckingAccountService is over the web service binding.
|
|
|
|
Integrity
|
|
---------
|
|
All interactions of the bigbank application with the StockQuoteService are guarded with message integrity.
|
|
These interactions use the web service binding.
|
|
|
|
Authorization
|
|
-------------
|
|
Within the bigbank-account subsystem the CheckingAccountService implementation enforces authorization on
|
|
its operations. This is an instance of a custom policy enforcement i.e. the CheckingAccountService
|
|
component's implementation has defined its own customized way of authorizing access to its services.
|
|
|
|
|
|
Demonstrated Features
|
|
---------------------
|
|
This demo illustrates the following : -
|
|
- composition of an application using artifacts belonging to multiple contributions (here two)
|
|
- usage of SCA policies in composite definitions with specific emphasis on enabling security
|
|
|
|
|
|
Run the demo
|
|
------------
|
|
The front end of this demo application is a web app which users JSON-RPC to communicate with the back end for
|
|
retrieving account information.
|
|
|
|
To try the app out point your browser at:
|
|
|
|
http://localhost:8085/AccountJSON.html
|
|
|
|
This should display an interface with a single button that retrieves a single set of account details
|
|
exercising services across the three running SCA applications.
|
|
|
|
If you press the getAccountReport button, you'll see a summary response posted in the browser and
|
|
the detailed data will be displayed in the console where you started bigbank. Among other things
|
|
you will note messages that confirm the enforcement of AUTHENTICATION, AUTHORIZATION and
|
|
SIGNING of messages exchaged.
|
|
|
|
On the console where you have started the StockQuote Service you should also be able to see messages
|
|
that confirm the signing of messages exchanged.
|
|
|
|
|
|
Stop the demo
|
|
-------------
|
|
Go to each of the corresponding command line screens and hit 'enter'.
|
|
This will stop each of the applications.
|
|
|
|
|
|
Building the Demo Using Ant
|
|
---------------------------
|
|
With the binary distribution the demo can be built using Ant as follows:
|
|
|
|
cd bigbank-calculator
|
|
ant compile
|
|
|
|
cd bigbank-stockquote
|
|
ant compile
|
|
|
|
cd bigbank-account
|
|
ant compile
|
|
|
|
cd bigbank
|
|
ant compile
|
|
|
|
|
|
Building the Demo Using Maven
|
|
-----------------------------
|
|
With either the binary or source distribution the demo can be built using
|
|
Maven as follows:
|
|
|
|
cd bigbank-calculator
|
|
mvn
|
|
|
|
cd bigbank-stockquote
|
|
mvn
|
|
|
|
cd bigbank-account
|
|
mvn
|
|
|
|
cd bigbank
|
|
mvn
|