-
Notifications
You must be signed in to change notification settings - Fork 1
License
coolmay/HPCSOA
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Introduction
============
This is the Java library providing interop capability with the SOA feature
on Windows HPC cluster.
HpcServiceHost\ - hpc host service and session contract. output : Microsoft-HpcServiceHost-3.0.jar and Microsoft-HpcSession-3.0.jar
sample\
|- HpcSoam\ - common interfaces and classes for hpc soam service. output : HpcSoam.jar
|- HpcSoamSvc\ - hpc soam host service. output : HpcSoamSvc.jar
|- SampleService\ - sample soam service program. output : SampleService.jar
|- SampleClient\ - sample Java client for sample soam service program. output : HelloWorld.class
|- CSharpClient\ - sample C# client for sample soam service program. output : SampleClientSoam.exe
SoamSvcHost - %SOA_HOME% for running sample soam service program on Windows
SoamSvcHostLinux - ${SOA_HOME} for running sample soam service program on Linux
Prerequisites
=============
1) JDK 1.8.0.60
Download Jave SE from http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html
2) CXF 2.7.17 (Warning: 3.x versions of CXF does not work.)
Download Apache CXF from http://cxf.apache.org/download.html
How to build
============
1) On compute nodes, download and install all "Prerequisites".
2) Switch to HpcServiceHost/src/ directory and edit makejar.sh .
( makejar.cmd if on Windows ).
3) Make sure JAVA_HOME, CXF_HOME, SOA_HOME point to the correct location.
E.g.
export JAVA_HOME=/usr/java/jdk1.8.0_60
export CXF_HOME=/opt/apache-cxf-2.7.17
export SOA_HOME=/soa/SoamSvcHostLinux
4) Run "makejar.sh" without any argument.
5) Do the same things in sample/HpcSoam/src/ , sample/HpcSoamSvc/src/ , sample/SampleService/src/ .
6) JAR files should be copied to SOA_HOME directory automatically.
You should see the following files added into your SOA_HOME directory.
Microsoft-HpcServiceHost-3.0.jar
Microsoft-HpcSession-3.0.jar
HpcSoam.jar
HpcSoamSvc.jar
SampleService.jar
How to setup the system
=======================
1) On compute nodes, switch to SOA_HOME directory and edit SoamSvcLinux.config .
( SoamSvc.config if on Windows ).
2) In the section <microsoft.Hpc.Session.ServiceRegistration>, make sure all paths point to the correct locations.
set ENABLE_BACKEND_SECURITY to "true" if you want to encrypt messages between broker and compute nodes.
3) Copy this config file to %CCP_HOME%\ServiceRegistration directory on your head node and broker nodes.
( The default path of %CCP_HOME% should be C:\Program Files\Microsoft HPC Pack 2012\ . )
4) if you set ENABLE_BACKEND_SECURITY to "true" in step 2, switch to SOA_HOME directory again and run createcert.sh .
( createcert.bat if on Windows ).
5) The script will create certificate files ( keystore ) for encryption between compute nodes and broker nodes.
6) Install the created "brokerkey.pfx" and "brokertrust.cer" to Local Machine\Personal on your broker nodes.
Add certificate for Java client ( not necessary )
=======================
Please note the below steps on linux client are only required when the preference file
~/.java/.userPrefs/com/microsoft/hpc/scheduler/session/prefs.xml exists and contains the following entry:
<map MAP_XML_VERSION="1.0">
<entry key="RequireSSLValidation" value="true"/>
</map>
If the preference file does not exist or the value is "false" for the key "RequireSSLValidation", the certificates are not required.
On both head node and broker node, setup certificate.
(NOTE: if your broker node is your head node, only do it for once.)
a) make sure makecert.exe is in your PATH.
NOTE: you might need to install Windows SDK to get makecert.exe.
Or install Visual Studio 2010 to get Windows SDK.
b) Create a self-signed certificate. Run the following command in elevated console:
createcert.cmd <nodename>
createcert.cmd can be found under ~\tools\ directory.
c) Install the certificate. In PowerShell, run as an admin user,
- Set-ExecutionPolicy Unrestricted
- installcert.ps1 install
- select the new certificate just created above. It's the one named
"CN=<nodename>". Normally it should be the last one.
On java client (Linux) machine, set up SSL trust between Java client and Headnode/BrokerNode.
a) Create the environment variable JAVA_HOME and set it to the Java installation path. Compile the GetCert.java under ~/tools/
b) "$JAVA_HOME/bin/javac" GetCert.java
c) Create head node and broker node certificates.
- "$JAVA_HOME/bin/java" GetCert <HeadNode>
- The above should create a file called "cacerts_new"
- If broker node is a different node, call "$JAVA_HOME/bin/java" GetCert <BrokerNode>
- The above should update the file "cacerts_new" with the certificate for broker node
- copy ecacerts to overwrite $JAVA_HOME/jre/lib/security/cacerts
(NOTE: You need administrate privilege on Vista/7)
How to use
==========
To run Java client :
1) Go to sample/SampleClient/src .
2) Edit RunTest.sh for JAVA_HOME, CXF_HOME and SOA_HOME path.
( RunTest.cmd if on Windows ).
3) Edit RunTest.sh for Keystore_Password if necessary.
4) Edit HelloWorld.java for username, password, headnode, and service name.
5) Run "RunTest.sh src" to build.
6) Run "RunTest.sh run" to run.
To run C# client :
1) Go to sample/CSharpClient .
2) Open SampleClient.sln with Visual Studio.
4) Edit Program.cs for headnode, and service name.
5) Build the project.
6) Run "SampleClientSoam.exe" to run.
About
No description, website, or topics provided.
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published