summaryrefslogtreecommitdiffstats
path: root/cpp/sca/samples/CppBigBank/README.html
blob: 4720dd7b579b83bcacf5c2e210f1833718157e45 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<!--
   Licensed to the Apache Software Foundation (ASF) under one
   or more contributor license agreements.  See the NOTICE file
   distributed with this work for additional information
   regarding copyright ownership.  The ASF licenses this file
   to you under the Apache License, Version 2.0 (the
   "License"); you may not use this file except in compliance
   with the License.  You may obtain a copy of the License at
   
     http://www.apache.org/licenses/LICENSE-2.0
     
   Unless required by applicable law or agreed to in writing,
   software distributed under the License is distributed on an
   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
   KIND, either express or implied.  See the License for the
   specific language governing permissions and limitations
   under the License.
-->

<HTML>
<HEAD>
   <META CONTENT="text/html; charset=iso-8859-1" HTTP-EQUIV="Content-Type">
   <META CONTENT="text/css" HTTP-EQUIV="Content-Style-Type">
   <STYLE MEDIA="all" TYPE="text/css">
@import url("../../doc/css/maven-base.css");
@import url("../../doc/css/maven-theme.css");
   </STYLE> 

    <LINK HREF="../doc/css/maven-theme.css" MEDIA="print" REL="stylesheet"
         TYPE="text/css">
   <TITLE>Tuscany SCA Native Samples - C++ BigBank Sample</TITLE>
</HEAD>

<BODY>
<DIV ID="bodyColumn"> 
   <DIV ID="contentBox"> 
      <DIV CLASS="section"> 
         <H1>Tuscany SCA Native Samples - C++ BigBank Sample</H1> 

         <P>This sample implements the "Simplified BigBank" scenario. A whitepaper describing
            the scenario based on the SCA 0.9 Assembly specification can be found 
            <A HREF="http://www.osoa.org/display/Main/SCA+-+Previously+Published+Specifications">here</A>.
            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.
         </P>
         <P>There are three sub projects in this workspace:</P>
         <UL>
            <LI>bigbank.account<BR/>
                This contains the source code and SCDL artifacts for the SCA BigBank 
                composite implementing the account services.
            </LI>
            <LI>bigbank.client<BR/>
                A sample client which does a local call to the BigBank service.
            </LI>
            <LI>bigbank.phpclient<BR/>
                A sample PHP client which calls the BigBank Web service and then deconstructs 
                and displays the result by using the 
                <A HREF="http://www.osoa.org/display/PHP/SOA+PHP+Homepage">SDO for PHP extension</A>.
                  <P>This is a pair of very simple PHP scripts to demonstrate how the Accounts service
                     that the C++ Big Bank sample exposes can be used from within the PHP scripting 
                     language. 
                  </P>
                  <P>bigwelcome.php<BR/>
                     A bootstrap script that shows a form and allows the user to press a button
                     in order to invoke the bigaccount.php script
                  </P>
                  <P>bigaccount.php<BR/>
                     Makes a call to a locally installed BigBank Accounts service. The script 
                     shows how to use PHP SDO and SOAP extensions to construct the call 
                     and interpret the result. 
                  </P>
            </LI>
         </UL>
         <P>Additionally, there is the bigbank.app.composite file. This describes the
            configuration of the SCA BigBank composite deployed to the SCA runtime.                                                                       
         </P>

      </DIV>

      <DIV CLASS="section"> 
         <H2>Contents</H2> 
         <OL>
            <LI><A HREF="#linuxbld">Building the C++ samples on Linux and Mac OS X</A></LI>
            <LI><A HREF="#linuxrun">Running the C++ BigBank sample on Linux and Mac OS X:</A></LI>
               <UL>
                  <LI><A HREF="#linuxbasic">Running the basic client</A></LI>
                  <LI><A HREF="#linuxphp">Installing and running the PHP web client</A></LI>
               </UL>
            <LI><A HREF="#winbld">Building the C++ BigBank sample on Windows</A></LI>
            <LI><A HREF="#winrun">Running the C++ BigBank sample on Windows:</A></LI>
               <UL>
                  <LI><A HREF="#winbasic">Running the basic client</A></LI>
                  <LI><A HREF="#winphp">Installing and running the PHP web client</A></LI>
               </UL>
            <LI><A HREF="#help">Getting help</A></LI>
         </OL>
      </DIV>


       <DIV CLASS="section"> 
         <A NAME="linuxbld"><H2>Building the C++ samples on Linux and Mac OS X</H2></A>
         <P>If using the binary distribution the samples are built and installed in
            &lt;tuscany_sca_install_dir&gt;/samples - go directly to <A HREF="#linuxrun">Running the samples on Linux and Mac OS X</A>.</P>
         <OL>
             <LI>The following environment variables are required:                                 
                <UL>
                  <LI>TUSCANY_SCACPP=&lt;path to installed Tuscany SCA&gt;                                      
                  <LI>TUSCANY_SDOCPP=&lt;path to installed Tuscany SDO&gt;                                      
                </UL></LI>
             </LI>
             <LI>Build the C++ samples with the following command sequence:
                  <UL>
                      <LI>cd &lt;tuscany_sca_install_dir&gt;/samples</LI>
                      <LI>./configure --prefix=$TUSCANY_SCACPP/samples --enable-static=no</LI>
                      <LI>make</LI>
                      <LI>make install</LI>
                  </UL>
	              NOTE: If you don't provide the --prefix configure option, it will by default install into
                  /usr/local/tuscany/sca/samples/CppBigBank</LI>
         </OL>                                                  
        </DIV>

       <DIV CLASS="section"> 
         <A NAME="linuxrun"><H2>Running the C++ BigBank sample on Linux and Mac OS X</H2></A>
         <A NAME="linuxbasic"><H3>BigBank with basic client</H3></A>
         <OL>
             <LI>The C++ BigBank sample requires the following extensions:
                <UL>
                   <LI><A HREF="../../doc/CppExtension.html">C++ Extension</A></LI>
                   <LI><A HREF="../../doc/Axis2CWSExtension.html">Axis2/C Web Services Extension</A></LI>
                </UL>
                 Please follow the documentation to ensure you have these extensions built and installed
                 on your system
             </LI>
             <LI>The following environment variables are required:                                 
                <UL>
                  <LI>TUSCANY_SCACPP=&lt;path to installed Tuscany SCA&gt;</LI>                                      
                  <LI>TUSCANY_SDOCPP=&lt;path to installed Tuscany SDO&gt;</LI>                                      
                  <LI>AXIS2C_HOME=&lt;path to Axis2/C version 0.96&gt;</LI>
                </UL>
             </LI>
             <LI>Run the sample with the following commands:
                <UL>
                   <LI>cd &lt;tuscany_sca_install_dir&gt;/samples/CppBigBank/deploy/bigbank.client</LI>
                   <LI>./runclient.sh</LI>
                </UL>
             </LI>
         </OL>                                                  
        <A NAME="linuxphp"><H3>BigBank with PHP web client</H3></A>
          <OL>
             <LI>The C++ BigBank sample requires the following extensions:
                <UL>
                   <LI><A HREF="../../doc/CppExtension.html">C++ Extension</A></LI>
                   <LI><A HREF="../../doc/Axis2CWSExtension.html">Axis2/C Web Services Extension</A></LI>
                </UL>
                 Please follow the documentation to ensure you have these extensions built and installed
                 on your system
             </LI>
             <LI>Ensure you have enabled Axis2/C to run Tuscany SCA services. Follow the instructions 
                 found <A HREF="../../doc/Axis2CWSExtension.html#deploy">here</A>.
             </LI>
             <LI>Start the Axis2/C simple http server:
                <OL>
                   <LI>The following environment variables are required:                                 
                      <UL>
                        <LI>TUSCANY_SCACPP=&lt;path to installed Tuscany SCA&gt;</LI>                                      
                        <LI>TUSCANY_SDOCPP=&lt;path to installed Tuscany SDO&gt;</LI>                                      
                        <LI>AXIS2C_HOME=&lt;path to Axis2/C version 0.96&gt;</LI>
                      </UL>
                   </LI>
                   <LI>cd &lt;tuscany_sca_install_dir&gt;/samples/CppBigBank/deploy/bin
                   </LI>
                   <LI>./runwsserver.sh</LI>
                </OL>
             </LI>
             <LI>To run the php scripts requires some configuration and setup of a php runtime with 
                 the SDO and SimpleXML extensions enabled. The bits you will need are:
                 <UL>
                   <LI><A HREF="http://httpd.apache.org/">Apache web server</A> (tested with version 2.0.55)</LI>
                   <LI><A HREF="http://www.php.net/downloads.php">PHP 5</A> (tested with version 5.1.6)</LI>
                   <LI><A HREF="http://pecl.php.net/package/sdo">PHP SDO</A> (tested with version 1.0.3)</LI>
                 </UL>
                 <P>Follow 
                    <A HREF="http://livedocs.phpdoc.info/index.php?l=en&q=ref.sdo">these instructions</A> to
                    install SDO and DAS.
                 </P>
               </LI>
               <LI>You need to configure Apache to run PHP of course. This is well documented but this
                   is what to put at the end of httpd.conf:
                 <PRE># PHP5 Support
LoadModule php5_module "/home/php/php5.1.6/php5apache2.so"
AddType application/x-httpd-php .php

# configure the path to php.ini
PHPIniDir "/home/php/php5.1.6"</PRE>
               </LI>
               <LI>Copy the &lt;tuscany_sca_install_dir&gt;/samples/CppBigBank/bigbank.phpwsclient
                   directory to your Apache document root directory (by default this is named 'htdocs').
               </LI>
               <LI>Finally, start your Apache web server.
             </LI>
             <LI>Run the PHP web client by pointing your browser at
                <A HREF="http://localhost/bigbank.phpwsclient/welcome.php">http://localhost/bigbank.phpwsclient/welcome.php</A>.
                You should now be able to press the "GetAccount" button and see the values
                returned from the BigBank SCA application.
             </LI>

          </OL>
        </DIV>

        <DIV CLASS="section">
         <A NAME="winbld"><H2>Building the C++ BigBank sample on Windows</H2></A>
         <P>If using the binary distribution the samples are built and installed in
            &lt;tuscany_sca_install_dir&gt;\samples - go directly to <A HREF="#winrun">Running the samples on Windows</A>.</P>
         <OL>
             <LI>The following environment variables are required:                                 
                <UL>
                  <LI>TUSCANY_SCACPP=&lt;path to installed Tuscany SCA&gt;                                      
                  <LI>TUSCANY_SDOCPP=&lt;path to installed Tuscany SDO&gt;                                      
                </UL></LI>
             </LI>
             <LI>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.
             </LI>
             <LI>Build the source, either via the Visual Studio Express projects under 
                 &lt;tuscany_sca_install_dir&gt;\samples\CppBigBank\VSExpress\CppBigBank.sln or via the command-line build file
                 found at &lt;tuscany_sca_install_dir&gt;\samples\CppBigBank\VSExpress\CppBigBank\build.bat
                 which will build and deploy the samples.
             </LI>
         </OL>                                                  
        </DIV>

       <DIV CLASS="section"> 
         <A NAME="winrun"><H2>Running the C++ BigBank sample on Windows</H2></A>
         <A NAME="winbasic"><H3>BigBank with basic client</H3></A>
         <OL>
             <LI>The C++ BigBank sample requires the following extensions:
                <UL>
                   <LI><A HREF="../../doc/CppExtension.html">C++ Extension</A></LI>
                   <LI><A HREF="../../doc/Axis2CWSExtension.html">Axis2/C Web Services Extension</A></LI>
                </UL>
                 Please follow the documentation to ensure you have these extensions built and installed
                 on your system
             </LI>
             <LI>The following environment variables are required:                                 
                <UL>
                  <LI>TUSCANY_SCACPP=&lt;path to installed Tuscany SCA&gt;</LI>                                      
                  <LI>TUSCANY_SDOCPP=&lt;path to installed Tuscany SDO&gt;</LI>                                      
                </UL>
             </LI>
             <LI>Run the sample with the following commands:
                <UL>
                   <LI>cd &lt;tuscany_sca_install_dir&gt;\samples\CppBigBank\deploy\bigbank.client</LI>
                   <LI>runclient.bat</LI>
                </UL>
             </LI>
         </OL>                                                  
        <A NAME="winphp"><H3>BigBank with PHP web client</H3></A>
          <OL>
             <LI>The C++ BigBank sample requires the following extensions:
                <UL>
                   <LI><A HREF="../../doc/CppExtension.html">C++ Extension</A></LI>
                   <LI><A HREF="../../doc/Axis2CWSExtension.html">Axis2/C Web Services Extension</A></LI>
                </UL>
                 Please follow the documentation to ensure you have these extensions built and installed
                 on your system
             </LI>
             <LI>Ensure you have enabled Axis2/C to run Tuscany SCA services. Follow the instructions 
                 found <A HREF="../../doc/Axis2CWSExtension.html#deploy">here</A>.
             </LI>
             <LI>Start the Axis2/C simple http server:
                <OL>
                   <LI>The following environment variables are required:                                 
                      <UL>
                        <LI>TUSCANY_SCACPP=&lt;path to installed Tuscany SCA&gt;</LI>                                      
                        <LI>TUSCANY_SDOCPP=&lt;path to installed Tuscany SDO&gt;</LI>                                      
                        <LI>AXIS2C_HOME=&lt;path to Axis2/C version 0.96&gt;</LI>
                      </UL>
                   </LI>
                   <LI>cd &lt;tuscany_sca_install_dir&gt;\samples\CppBigBank\deploy\bigbank.account
                   </LI>
                   <LI>runwsserver.bat</LI>
                </OL>
             </LI>
             <LI>To run the php scripts requires some configuration and setup of a php runtime with 
                 the SDO and SimpleXML extensions enabled. The bits you will need are:
                 <UL>
                   <LI><A HREF="http://httpd.apache.org/">Apache web server</A> (tested with version 2.0.55)</LI>
                   <LI><A HREF="http://www.php.net/downloads.php">PHP 5</A> (tested with version 5.1.6)</LI>
                   <LI><A HREF="http://pecl.php.net/package/sdo">PHP SDO</A> (tested with version 1.0.3)</LI>
                 </UL>
                 <P>You can get Windows binary builds from 
                    <A HREF="http://www.php.net/downloads.php">http://www.php.net/downloads.php</A>. 
                    For SDO you need two dlls as follows: 
                 </P>
                 <UL>
                   <LI><A HREF="http://pecl4win.php.net/ext.php/php_sdo.dll">php_sdo.dll</A></LI>
                   <LI><A HREF="http://pecl4win.php.net/ext.php/php_sdo_das_xml.dll">php_sdo_das_xml.dll</A></LI>
                 </UL>
                 <P>Copy these to the php5.1.6\ext dir ( php_soap.dll is already there) and add the 
                    following to php.ini file (having already renamed php.ini-recommended to php.ini 
                    of course)
                 <PRE>extension=php_soap.dll
extension=php_sdo.dll
extension=php_sdo_das_xml.dll</PRE>
                    I also changed the extension_dir directive to point to my extensions directory:
                 <PRE>extension_dir="C:\php5.1.6\ext"</PRE>
                 </P>
                 <P>Asking PHP to list what modules are active gives the following:
                 <PRE>C:\php5.1.6>php -m
[PHP Modules]
bcmath
calendar
com_dotnet
ctype
date
dom
ftp
hash
iconv
libxml
odbc
pcre
Reflection
sdo
sdo_das_xml
session
SimpleXML
soap
SPL
standard
tokenizer
wddx
xml
xmlreader
xmlwriter
zlib

[Zend Modules]</PRE>
                    Of particular relevance to these scripts note that soap, sdo and sdo_das_xml are active. 
                 </P>
               </LI>
               <LI>You need to configure Apache to run PHP of course. This is well documented but this
                   is what to put at the end of httpd.conf:
                 <PRE># PHP5 Support
LoadModule php5_module "C:\php5.1.6\php5apache2.dll"
AddType application/x-httpd-php .php

# configure the path to php.ini
PHPIniDir "C:\php5.1.6"</PRE>
               </LI>
               <LI>Copy the &lt;tuscany_sca_install_dir&gt;\samples\CppBigBank\bigbank.phpwsclient
                   directory to your Apache document root directory (by default this is named 'htdocs').
               </LI>
               <LI>Finally, start your Apache web server.
             </LI>
             <LI>Run the PHP web client by pointing your browser at
                <A HREF="http://localhost/bigbank.phpwsclient/welcome.php">http://localhost/bigbank.phpwsclient/welcome.php</A>.
                You should now be able to press the "GetAccount" button and see the values
                returned from the BigBank SCA application.
             </LI>
          </OL>
      </DIV>


              
      <DIV CLASS="section"> 
         <A NAME="help"><H2>Getting Help</H2></A>

         <P>The first place to look is at the Tuscany SCA FAQ at 
         <A HREF="http://cwiki.apache.org/confluence/display/TUSCANY/Tuscany+SCA+-+FAQ"
            TARGET="_blank">http://cwiki.apache.org/confluence/display/TUSCANY/Tuscany+SCA+-+FAQ</A> </P>

         <P>Any problem with this release can be reported to the Tuscany 
         <A HREF="http://cwiki.apache.org/TUSCANY/mailing-lists.html"
            TARGET="_blank">mailing lists</A> or create a JIRA issue at&nbsp;<A HREF="http://issues.apache.org/jira/browse/Tuscany"
                                                                                TARGET="_blank">http://issues.apache.org/jira/browse/Tuscany</A>.</P>
         
      </DIV>
   </DIV>
</DIV>
</BODY>

</HTML>