# Copyright (C) 2013 CEA/DEN, EDF R&D, OPEN CASCADE
#
-# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
#
+---------------
+1. Introduction
+---------------
------------------- Quick overview and installation instructions -----------------
-
-1. SIMANIO library provides interaction of SALOME modules with SIMAN (SALOME
+SimanIO library provides interaction of SALOME modules with SIMAN (SALOME
Simulation Data Manager) server using Web Services and based on WSO2 Web Services
Framework for C++ (wso2-wsf-cpp-x.x.x).
-This library building is based on CMake build system (http://www.cmake.org/)
+---------------
+2. Installation
+---------------
+
+2.1 Pre-requisites
-So, you have to check (or install if needed) the dependant software programs
-on your system:
-- CMake build system version 2.4 or newer
+SimanIO library is based on CMake build system (http://www.cmake.org/); this
+means that you must have CMake installed on your system (minimum version 2.8.8)
+in order to build and install SimanIO.
+
+Additional pre-requisites:
- C++ compiler with standard libraries
- WSO2 Web Services Framework for C++ (wso2-wsf-cpp-2.1.0)
-If these required software are installed on your system, you should set the proper
-shell environment to get access to the software components
-(env_build.sh script).
+2.2. Building and installing library
+
+To build the library, you will have to extract the source package in a
+directory where you have write permissions:
+
+ $ tar xzf simanio-x.y.z.tar.gz (x.y.z is a version signature)
+
+You can then build the library directly in the source tree, but it is strongly
+advised to use an independant build tree. For that, just go to the directory
+where you extracted SimanIO and type for instance:
+
+ $ mkdir simanio_build
+ $ cd simanio_build
+
+After that, you will just need to run cmake to generate the Makefiles and to
+run make and make install to install the library:
+
+ $ cmake ../simanio-x.y.z (x.y.z is a version signature)
+ $ make
+ $ make install
+
+Normally, the pre-requisites are automatically detected during the configuration
+procedure basing on the current environment; this procedure is managed by CMake
+by analyzing standard directories and environment variables.
+However, if it fails or if you want to specify alternative installation of some
+pre-requisite, you can do it by setting the corresponding environment variable.
+For example, you might want to specify installation directory of wso2-wsf-cpp-2.1.0
+with WSO2_ROOT_DIR environment variable:
-2. The Generating Web Service Client Stubs using WSO2 Web Services Framework for C++
+ export WSO2_ROOT_DIR=/usr/local/wso2-wsf-cpp-2.1.0
-The properly, completelly built and installed WSO2 includes the java based tool
-to generate the required web services client stubs with the other supporting files
-from on SIMAN wsdl file. Use following parameters to generate the Axis2/C client
-stub code with ADB (Axis Data Binding) support :
- $ ./siman_service_code_generator.sh -uri ${wsdl_location} -d adb -u
+Alternatively, to change CMake behavior, you can either preset the environment
+variables CMAKE_INCLUDE_PATH and CMAKE_LIBRARY_PATH (see CMake documentation
+for more details) or use CMake graphical interface. For this, run cmake once
+to populate the cache and then run ccmake:
-The provided SIMANIO script (siman_service_code_generator.sh) generates the client
-stub files .h and .cpp from the given SIMAN wsdl file
-(<SIMANIO_SRC>/resources/SimanSalomeService.wsdl)
-and added them to the <SIMANIO_SRC>/src directory.
+ $ cmake ../simanio-x.y.z (x.y.z is a version signature)
+ $ ccmake ../simanio-x.y.z (x.y.z is a version signature)
-3. Then you can perform the next steps to build and install the SIMANIO library:
+Note, that by default 'make install' will install all staff to the /usr directory.
+The installation directory can be changed by specifying custom location with
+CMAKE_INSTALL_PREFIX variable (passed to cmake or ccmake):
- $ mkdir <SIMANIO_build>
- $ cd <SIMANIO_build>
- $ cmake -D CMAKE_INSTALL_PREFIX=<SIMANIO_install> <SIMANIO_SRC>
- $ make install
+ $ cmake -DCMAKE_INSTALL_PREFIX=/home/user/siman ../simanio-x.y.z
-That's all.
+--------------------------------------
+3. Generating Web Service Client Stubs
+--------------------------------------
-Note :
+It is the optional action for current version.
-To build SALOME KERNEL in the mode with SIMAN the SIMANIO_ROOT_DIR variable should
-be defined and points to the directory containing the preliminarily built and
-installed SIMANIO library (<SIMANIO_install>. The setting the SIMANIO_ROOT_DIR
-variable is provided by executing (. env_build.sh/).
-It can be also achieved by using the build option -DSALOME_USE_SIMAN=ON
-during building SALOME KERNEL.
+SimanIO library sources include a set of web services client stubs generated
+by means of WSO2 Web Services Framework for C++.
-Then, the SALOME components GEOM, MED, SMESH, ... implementing correpondent can be
-built as usual. All SALOME modules indended for communication with SIMAN should
-implement required interfaces as decribed in documentation
-(SIMAN_Integration_of_SALOME_Modules_vx.y).
+Properly installed WSO2 includes the java based tool that is used to generate
+all required web services client stubs and other supporting files from the
+SIMAN wsdl file.
-The next section provides you with some additional info.
+Use the following parameters to generate the Axis2/C client stub code with
+ADB (Axis Data Binding) support:
---------------------- Additional info ----------------------
+ $ ./siman_stabs_code_generator.sh -uri <wsdl_location> -d adb -u
-1. Building and installing the library basing on SALOME installation
+The SIMAN stabs code generator script
+(<SIMANIO_SRC>/scripts/siman_stabs_code_generator.sh) generates the client stub
+files .h and .cpp from the given SIMAN wsdl file, path to which is specified
+via <wsdl_location> (<SIMANIO_SRC>/scripts/SimanSalomeService.wsdl)
+and puts generated files to the src sub-directory of a source tree.
-The source codes of the SIMANIO library are delivered as part of the offcial
-SALOME installation or can be get from CVS SIMAN repository as usual :
-cvs -d :pserver:<user_name>@cvs.opencascade.com:/home/server/cvs/SIMAN
-checkout -r V7_main SIMANIO_SRC
+-------------------------------------------------
+4. Build SALOME KERNEL module with SIMAN support
+-------------------------------------------------
-The building the library is performed using the SALOME environment and build
-scripts provided during SALOME installation:
- build.sh - SALOME build script
- env_build.sh - SALOME build environment script
- env_products.sh - SALOME run environment script
+To build SALOME KERNEL with SIMAN support, the SIMANIO_ROOT_DIR environment
+variable should be specified to point to the directory containing preinstalled
+SimanIO library.
-The dependencies and pre-requisite products as well as generation of
-the service clint stubs and other required files are controlled and
-provided by SIMANIO cmake procedure.
+Then, use SALOME_USE_SIMAN variable to build SALOME KERNEL with SIMAN support:
-The building and installation of the SIMANIO library using the scripts are
-performed in accordance with the steps described above.
+ $ cd KERNEL_BUILD
+ $ cmake -DSALOME_USE_SIMAN=ON [<other-cmake-options>] ../KERNEL_SRC
+ $ make
+ $ make install
-2. Testing
+Note, that other SALOME modules (GEOM, MED, SMESH, ...) that implement
+interaction with SIMAN are built as usual. Each SALOME module that requires
+communication with SIMAN should implement corresponindg interfaces as decribed
+in the documentation (SIMAN_Integration_of_SALOME_Modules_vx.y).
-The set of the tests using this library for accesing to SIMAN server is developing
-and delivered separatelly. They can be properly executed when SIMAN web and database
-servers are configured and run.
+-----------
+5. APPENDIX
+-----------
-3. Additional scripts
+This paragraph provides some additional information about SIMAN and SimanIO.
-The directory <SIMANIO_SRC>/scripts contains environment and start scripts used
-for running specific SALOME modules communicatiing with SIMAN. These scripts are
-copied to SALOME installation root directory by the build procedure and should be
-adjusted if necessary (including setting the run permissions) :
- run_salome_siman.sh - the script used by SIMAN for SALOME running in SIMAN mode
- castem_env_products.sh - CASTEM module run time environment (CEA DEN request)
+5.1. Building and installing the library basing on SALOME installation
+
+The source code of the SimanIO library is delivered as part of the offcial
+SALOME distribution; alternatively it can be obtained from CVS repository:
+
+ $ cvs -d :pserver:<user_name>@cvs.opencascade.com:/home/server/cvs/SIMAN
+ $ cvs checkout -PRA SIMANIO_SRC
+
+Building and installation of the SimanIO library is performed in accordance
+with the procedure described above (paragraph 2).
+
+5.2. Testing
+
+The set of the tests using SimanIO library for accesing SIMAN server is
+developed and delivered separatelly from this package.
+These tests can be properly executed only when SIMAN web and database
+servers are properly configured and run.
+
+5.3. Additional scripts
+
+The scripts sub-directory contains several scripts that can be used to
+set environment and and running specific configuration of SALOME session
+communicating with SIMAN.
+These scripts are automatically copied to the SimanIO installation directory
+(share/simanio/misc sub-directory) by the build procedure; they can be
+adjusted if necessary:
+
+ run_salome_siman.sh - the script used by SIMAN to start SALOME
+ session in SIMAN mode
+ castem_env_products.sh - CASTEM module run time environment
eficas_aster_env_products.sh - EFICAS & ASTER modules run time environment
- (EDF R&D request)
- syrthes_env_products.sh - SYRTHES modules run time environment (EDF R&D request)
+ syrthes_env_products.sh - SYRTHES modules run time environment
+
+5.4. Additional modules communicating with SIMAN
+
+These specific SALOME modules are delivered separatelly from SALOME platform;
+each module is built in accordance with the instructions provided by module
+maintainer.
-4. Additional customers modules communicating with SIMAN - Optional
+If necessary, build SALOME CASTEM (CEA/DEN) module using the latest CASTEM_SRC
+source code that includes all necessary updates of scripts (e0_donnees.py,
+CASTEM.py) in a usual way.
+Set proper value of CASTEM solver binaries location in e0_donnees.py,
+for example:
-These specific customers modules are delivered separatelly from SALOME
-installation and built in accordance with instructions provided by module
-responsible developers.
+ castem_exe = modele("castem_exe" , "<castem10_path>/bin/castem10")
-If necessary, build CEA DEN CASTEM SALOME module using the lastest modified
-CASTEM_SRC codes include necessary updates of script scripts (e0_donnees.py,
-CASTEM.py) in usual manner. Set proper value of CASTEM solver binaries location
-in e0_donnees.py, for example :
-castem_exe = modele("castem_exe" , "<<castem10_path>/bin/castem10")
+If necessary, build and configure EFICAS, ASTER and SYRTHES SALOME modules
+(EDF R&D) and the tools used by these modules: Eficasv1 (tool), EFICAS
+(module used by SALOME_MECA), CODE_ASTER (tool), ASTER_MODULE and
+CODE_SYRTHES (tool), MODULE_SYRTHES (module) in a usual way.
-If necessary, build and configure EDF R&D EFICAS, ASTER and SYRTHES SALOME modules
-and the tools used by them : Eficasv1 (TOOL), EFICAS (MODULE used by SALOME_MECA),
-CODE_ASTER (TOOL), ASTER_MODULE and CODE_SYRTHES (TOOL), MODULE_SYRTHES
-in usual manner.
+5.5. Test SALOME session with and without SIMAN support
-5. Test running SALOME without and with SIMAN mode
+For properly built SimanIO and SALOME modules you can check operating of SALOME
+in two modes (with and without SIMAN) after setting run time environment with the
+script env_products.sh as following:
-For properly built SIMANIO and SALOME modules you can check manually runnability
-of SALOME in two modes without and with SIMAN after setting run time environment
-with the escript env_products.sh as follwoing:
+ $ . <salome_install_dir>/env_products.sh
+ $ . <prefix>/share/simanio/misc/castem_env_products.sh (if necessary)
+ $ . <prefix>/share/simanio/misc/eficas_aster_env_products.sh (if necessary)
+ $ . <prefix>/share/simanio/misc/syrthes_env_products.sh (if necessary)
+ $ runSalome
+ $ runSalome --siman
-. env_products.sh
-. castem_env_products.sh (if necessary)
-. eficas_aster_env_products.sh (if necessary)
-. syrthes_env_products.sh (if necessary)
+Here, <prefix> is a SimanIO installation directory, e.g. /home/user/siman, and
+<salome_install_dir> is a SALOME installation directory.
-runSalome
-runSalome --siman
+Note: mentioned env_products.sh script is a part of SALOME Installation procedure;
+it sets up the environment required for proper SALOME operating.
+If SALOME is built/installed in another way than with SALOME Installation
+procedure, you will need to use alternative way to set proper environment.
-6. Configuration of SIMAN web server and SIMAN database server
+5.6. Configuration of SIMAN web server and SIMAN database server
-Please see all necessary details concerning the configuration and running of
+Please find all necessary details concerning the configuration and running of
SALOME SIMAN client and SIMAN Web server with SIMAN database in the SIMAN
Administration Guide (SIMAN_AdminGuide_vX.Y).
-7. Basic working mode of using SALOME with SIMAN server
+5.7. Basic working mode of SALOME with SIMAN server
-If installation and configurations have been performed successfully the SIMAN server.
-can be accesible on SALOME client side from your browser using URL :
-"http://<server_name or server_IP>:8080/siman"
-Normally displaying the the SIMAN start page
+If installation and configuration of SIMAN have been performed successfully
+the SIMAN server can be accesible on SALOME client side from your browser using URL:
+"http://<server_name or server_IP>:8080/siman".
+Normally, this should display the SIMAN start page.
-SALOME in the mode with SIMAN is run automatically from the browser accessing to
-the SIMAN server providing all functionality defined in the SIMAN Detailed
-Functional Specifications for current version.
-(SIMAN_Functional_Specifications_vx.y).
+SALOME session connected to SIMAN is automatically started from the browser;
+this SALOME session will access SIMAN server providing all functionality defined
+in the SIMAN Detailed Functional Specifications for the current version of SIMAN
+(see SIMAN_Functional_Specifications_vx.y).