MultiXTpm Application Server

MultiX Network Applications Development Toolkit.
Copyright (C) 2007, Moshe Shitrit, Mitug Distributed Systems Ltd., All Rights Reserved.

This file is part of MultiX.

MultiX is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
MultiX is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program;
if not, write to the:
Free Software Foundation, Inc.,
59 Temple Place,
Suite 330,
Boston,
MA 02111-1307
USA

Author contact information:
msr@mitug.co.il
Thank you for using MultiXTpm Application Server.

MultiXTpm Application Server is based on a product I have developed few years ago. During the past years I have modified it and rewrote large parts of it. One thing I did not manage to complete is the documentation of all parts. I have decided to release it with its very limited documentation in order to get the feeling about what’s important to others and what’s not. So while I'm working on the documentation of the different parts, I'll be answering the questions thru the Forums of the project at SourceForge.net.
or
MultiXTpm group at Yahoo Groups.
or
To contact me directly you may send me an email to: msr@mitug.co.il

Thank you
Moshe Shitrit.
Mitug Distributed Systems Ltd.
Part of the software embedded in this product is gSOAP software.
Portions created by gSOAP are Copyright (C) 2001–2004 Robert A. van Engelen, Genivia inc. All Rights Reserved.

THE SOFTWARE IN THIS PRODUCT WAS IN PART PROVIDED BY GENIVIA INC AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANYWAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 In the MultiXTpm Application Server directory you will find the following documents:
Before using MultiXTpm Application Server, please read ReleaseNotes.htm.

Setting Up the runtime environment

WIN 32 platforms

Before starting MultiXTpm Application Server, few things need to be done:
  1. The build process assume the existance of 2 software packages:
  2. Before building the solution, make sure that defined the following:
    • Add an environment variable called MultiXTpm and set its value to MultiXTpm Application Server main directory. (for example: MultiXTpm="c:/MultiXTpmInstallation/MultiXTpmApplicationServer"
    • Add the runtime directory to the PATH using the MultiXTpm environment variable. (PATH=...;%PATH%;%MultiXTpm%/runtime)
    • Make sure that %MultiXTpm%/include is on the INCLUDE path of Visual Studio
    • Make sure that %MultiXTpm%/Debug and %MultiXTpm%/Release are on the LIB path of Visual Studio
    • Make sure that gSoap base directory is on the INCLUDE path of Visual Studio. This directory should be where stdsoap2.cpp and stdsoap2.h are located. 
  3. Build the entire solution. You will notice that all DLL and EXE file names built using Debug Mode have a "D" appended to their names.
  4. Once the entire solution is built with no errors, on the command prompt, change directory to MultiXTpm Application Server directory (cd %MultiXTpm%) and run the batch file MakeRuntime.cmd. This will create the directory "runtime" and will copy all relevant files to it.
  5. The current setting in TpmConfig.xml instructs MultiXTpm to look for DLLs and executables in the current directory – the runtime directory.
  6. If you want to run MultiXTpm as a standard process, just change to the runtime directory and run MultiXTpm.
  7. If you want to run MultiXTpm as a windows service, do the following:
    • Type: net start MultiXTpm (to start the service).
    • Type: net stop MultiXTpm (to stop the service).

Linux platforms

Before starting MultiXTpm Application Server, few things need to be done:
  1. The build process assume the existance of 3 software packages:
  2. Before building the solution, make sure that defined the following:
    • Add an environment variable called MultiXTpm and set its value to MultiXTpm Application Server main directory. (for example: export MultiXTpm=~/MultiXTpmInstallation/MultiXTpmApplicationServer"
    • Add the runtime directory to the PATH using the MultiXTpm environment variable. (PATH="${MultiXTpm}"/runtime:":"${PATH}")
    • Add the runtime directory to the environment variable LD_LIBRARY_PATH. (export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}":"${MultiXTpm}"/runtime)
    • Make sure that gSoap base directory is on the INCLUDE path of the compiler. This directory should be where stdsoap2.cpp and stdsoap2.h are located. (for gcc use CPATH=${CPATH}:~/<gSoap install directory>) 
  3. Build the entire solution - Change to MultiXTpm Application Server directory (cd $MultiXTpm) and execute LinuxBuildAll.sh. You will notice that all DLLs and executable file names built using Debug Mode have a "D" appended to their names.
  4. Once the entire solution is built with no errors, on the command prompt, change directory to MultiXTpm Application Server directory and run the batch file MakeRuntime.sh. This will create the directory "runtime" and will copy all relevant files to it.
  5. The current setting in TpmConfig.xml instructs MultiXTpm to look for DLLs and executables in the current directory – the runtime directory.
  6. If you want to run MultiXTpm, just change to the runtime directory and run MultiXTpm (or MultiXTpmD for the debug version).

Configuring the runtime environment

All system configuration is done thru TpmConfig.xml file. In order for changes to take place, you need to modify the xml file and restart MultiXTpm. MultiXTpm can be reconfigured using Web Service interface, and MultiXTpm Administration Server can be used on Windows platforms for this purpose. Although it runs on Windows platforms, it can be used to control and configure MultiXTpm Application Servers running on other platforms. 

For a description of the fields in TpmConfig.xml see TpmConfig.htm.

SSL Support

MultiXTpm Application Server provides SSL support thru OpenSSL software package. To use and configure SSL Support please read SSL_Support.htm located at MultiXTpm Application Server directory.

Using the Visual Studio 2005 MultiXTpm Application Wizard

The Visual Studio 2005 solution contains a project called "MultiXTpm Application Wizard".
In order to use wizard do the following steps:
  1. In the IDE, Right click the project "MultiXTpm Application Wizard".
  2. Select "Properties".
  3. Select "Configuration Properties->Build Events->Post-Build Event".
  4. Change "Exclude from build" from "Yes" to "No".
  5. Click OK.
  6. Build the project.
  7. To avoid repeating the copy operation, perform steps 1-4 again but on step 4 change "Exclude from build" from "No" to "Yes".

Download information

MultiXTpm Application Server is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

MultiXTpm Application Server is distributed in source code format and it supports: Windows OS, Linux, Solaris and HP Nonstop Server OSS.

The source code is packed in ZIP file and can be downloaded from SourceForge.net.

To Access the Download Page at SourceForge.net you may click Here
or
Navigate to http://sourceforge.net/projects/multixtpm

Contact information

For more information, Bug Reports, Feature Requests, and Support Requests, please use:
SourceForge.net tracker
or
SourceForge.net Project Forums
or
MultiXTpm group at Yahoo Groups.
or
you may send an email to: Moshe Shitrit