How to start Airavata System and what is the order to start each component.
To start Airavata system users have to use the scripts provided in AIRAVATA_HOME/bin/ and if you are running all the components with default setup you have to start the components in the following order.
jackrabbit-server.sh - This is the Jackrabbit server startup script, before starting any other component, you have to start the registry instance first because all the components are communicating with Registry.
airavata-server.sh - This starts the WS-Messenger components and GFac service in Apache Axis2 Container. This is pointing to the Registry started in previous step and use the Registry URL is localhost:8081, if you are starting in a different URL, you have to change AIRAVATA_HOME/standalone-server/conf/repository.properties file.
xbaya-gui.sh - Now you have available GFac Service running with a Registry, so its time for you to start XBaya and run your Applications. But if you want XBaya to run with normal Web services, not with GFac Service you do not have to start Airvata Service, you can simply use Xbaya alone, if you require provenance, you have to start Registry.
How to Deploy Airavata on Tomcat
Airavata services depends on Apache Axis2 as a Web Service engine. Each service component in Airavata can be packed as Axis2 Archive (.aar). In order to deploy Airavata system on Tomcat, you need to install Apache Axis2 on Tomcat first. Please refer to this guide for installation guide. We have tested Airavat with Apache Axis2 1.5.1 Release, so you can use the same release and first deploy Axis2 1.5.1 war in to tomcat. To deploy a Message Broker on Tomcat.
- Copy AIRAVATA_HOME/standalone-server/repository/services/messagebroker-0.0.1-SNAPSHOT.jar to webapps/axis2/WEB-INF/services directory.
- Create a configuration file in webapps/axis2/WEB-INF/conf/msgBroker.properties. A sample configuration can be looked up in AIRAVATA_HOME/standalone-server/conf/msgBroker.properties.
- Download and copy a database library (Apache Derby or MySql) to webapps/axis2/WEB-INF/lib directory.
- Copy directory AIRAVATA_HOME/standalone-server/bin/database_scripts to webapps/axis2/WEB-INF/lib directory.
To deploy a Message Box on Tomcat.
- Copy AIRAVATA_HOME/standalone-server/repository/services/messagebox-0.0.1-SNAPSHOT.jar to webapps/axis2/WEB-INF/services directory.
- Create a configuration file in webapps/axis2/WEB-INF/conf/msgBox.properties. A sample configuration can be looked up in AIRAVATA_HOME/standalone-server/conf/msgBox.properties.
- Download and copy a database library (Apache Derby or MySql) to webapps/axis2/WEB-INF/lib directory
-
Copy directory AIRAVATA_HOME/standalone-server/bin/database_scripts to webapps/axis2/WEB-INF/lib directory.
-
Copy all the jars from AIRAVATA_HOME/standalone-server/lib director to webapps/axis2/WEB-INF/lib directory. (You have to copy all the jars if you deploy all the services of airavata in to one tomcat otherwise you only need to copy service specific dependent jars. We hope to document that soon) Note: If you have already deployed MessageBroker in the same tomcat you can skip the step 3 and 4.
To deploy a GFac Axis2 Service on Tomcat.
-
Copy AIRAVATA_HOME/standalone-server/repository/services/gfac-axis2-interface-
.jar to webapps/axis2/WEB-INF/services directory. -
Create a configuration file in webapps/axis2/WEB-INF/lib/repository.properties. A sample configuration can be looked up in AIRAVATA_HOME/standalone-server/conf/repository.properties. Based on your setup configure the GSI security credentials and certificate paths in the properties file.
Note: keep the same properties file in TOMCAT_HOME/bin directory too.. This issue will be fixed in later release.
To deploy Interpretor Service on Tomcat
-
Copy AIRAVATA_HOME/standalone-server/repository/services/xbaya-gui-
.jar to webapps/axis2/WEB-INF/services directory. -
Create configuration file in webapps/axis2/WEB-INF/lib/xbaya.properties and fill up the following property names values based on your gsi security credentials. myproxy.user myproxy.password (This step will be required from 0.3 release if you are using previous release users do not have to create xbaya.properties file)
How do I use only WS-Messenger component
Currently first release of Airavata doesn't have a separate pack for WS-Messenger. But users can check out the source of Airavata and build only WS-Messenger and build will create a pack which contains only WS-Messenger components and it can be used as the WS-Messenger binary distribution. In Airavata code go to AIRAVATA_CODE/modules/ws-messenger directory and run mvn clean install, after successful build you will find the pack(Zip file) at AIRAVATA_CODE/moduels/ws-messenger/distribution/target/.
How to Deploy WS-Messenger with Mysql
Currently WS-Messenger supports Derby and Mysql databases. Users have to change AIRAVATA_HOME/standalone-server/conf/msgBox.properties to change the message Box database and AIRAVATA_HOME/standalone-server/conf/msgBroker.properties to change the message Broker database.
- First create a mysql database in your server with required name (Assume name is:wsmg and username/password is : airavata/airavata).
- Create a tables in the above database using the following scripts.
AIRAVATA_HOME/standalone-server/bin/database_scripts/mgsBox-mysql.sql
AIRAVATA_HOME/standalone-server/bin/database_scripts/msgBroker-mysql.sql
- Change msgBox.properties and msgBroker.properties files with database driver name and database urls as below.
msgBox.jdbc.driver=com.mysql.jdbc.Driver
msgBox.jdbc.url=jdbc:mysql://localhost:3306/wsmg?user=airavata&password=airavata
broker.jdbc.driver=com.mysql.jdbc.Driver
broker.jdbc.url=jdbc:mysql://localhost:3306/wsmg?user=airavata&password=airavata
- Change the driver class name based on your driver and copy your driver to AIRAVATA_HOME/standalon-server/lib directory and start the server.. You are ready to go with Mysql database.
How can I run WS-Messenger without using any database.
Yes, WS-Messenger supports in-memory messaging. If you want to change message broker or message box to be in memory you simply have to change the appropriate property in msgBroker.properties and msgBox.properties as below.
For Message Box - AIRAVATA_HOME/standalone-server/conf/msgBox.properties - msgBox.usedatabase=true
For Message Broker - AIRAVATA_HOME/standalone-server/conf/msgBroker.properties - broker.storage.type=memory
How to use XBaya Arguments
XBaya can be started using AIRAVATA_HOME/bin/xbaya-gui.sh in the binary distribution. During XBaya startup you can give number of arguments for quick detail you can run xbaya-gui.sh with -help.
-help
-config - Users can put their configuration in to a properties file and give that file path as the argument value. In the properties file users can use following property names. gpel-engine-url,gfac-url,msg-box-url,msg-broker-url,dsc-url.
-title - Title that you want to show in the XBaya GUI, if you set title as "My Workflow" You will see a title at the Top of the window as "Workflow - My Workflow".
-enableProvenanceSmartRun - This parameter can be used to enable smart rerun feature, which will keep track of inputs and outputs, if user provide the same inputs to the same service which was ran previously, Xbaya will not invoke the service again, it will simply use the output of the previous invocation. [true/false]
-enableProvenance - This is a parameter to let XBaya to store inputs and outputs in to Registry. [true/false]
How XBaya is going to pick Available GFac URLs
When you start the Registry at very first and then GFac service, GFac service is registering its URL with Registry, GFac does that frequently, so if you have n number of GFac nodes running everyone is registering its URL. Since Every GFac node is registering in a given time interval, if one node goes down that URL in Registry become invalid.. When XBaya runs, it picks the set of URLs which are valid in that point.. and show them in the GFac URL list in XBaya Menu.
How to enable Workflow data provenance.
When XBaya Starts users can give few startup arguments, if you provide "-enableProvenance true" then XBaya will record all the input/output values in to Registry. And users can view the input/output data from JCR Registry Browser.
How to view my data like workflows, and documents like, Host Description,Service Description and Deployment Descrition.
XBaya has a feature of showing your content in your Registry. It will show your available, Host Descriptions, Service Descriptions, Deployment Descriptions, saved workflows etc. So you have a better understanding on what you have in your Repository.