Apache Airavata
In Airavata 0.10 distribution, you will find three main distributions as
We define <AIRAVATA_SERVER_HOME> as the location where you extract apache airavata server binary and <AIRAVATA_XBAYA_HOME> as the location where you extract airavata xbaya distribution. To start Airavata server users have to use the scripts provided in <AIRAVATA_SERVER_HOME>/bin. If you want to start XBaya, you have to use scripts provided in <AIRAVATA_XBAYA_HOME>/bin. If you are running all the components with default setup, you have to start the components in the following order:
By default, Airavata is running using Apache Derby as the backend database. You can use MySQL database instead of default derby database if you wish.
<authenticator name="basicAccessAuthenticator" class="org.apache.airavata.services.registry.rest.security.basic.BasicAccessAuthenticator"
enabled="true" priority="8" userstore="org.apache.airavata.security.userstore.JDBCUserStore">
<specificConfigurations >
<!-For MySQL->
<database>
<jdbcUrl>jdbc:mysql://localhost:3306/persistent_data</jdbcUrl>
<userName>$user</userName>
<password>$password</password>
<databaseDriver>com.mysql.jdbc.Driver</databaseDriver>
<userTableName>Users</userTableName>
<passwordHashMethod>SHA</passwordHashMethod>
<userNameColumnName>user_name</userNameColumnName>
<passwordColumnName>password</passwordColumnName>
</database>
</specificConfigurations>
</authenticator>
6. Go to <AIRAVATA_SERVER_HOME>/bin and start the script airavata-server.sh. Now Airavata server will start with MySQL database (in this case persistent_data database).
7. When starting XBaya, it should also point to the same database that we specified when starting Airavata server.
In the airavata 0.6 distribution, you will notice apache-airavata-server-0.6-war.zip file. This is the war file that you need to use if you want to deploy airavata in tomcat.
To deploy a Message Box on Tomcat.
To deploy a GFac Axis2 Service on Tomcat.
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
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/.
Currently WS-Messenger supports Derby and Mysql databases. Users have to change AIRAVATA_SERVER_HOME/bin/airavata-server.properties to change the message Box and message Broker databases.
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
XBaya can be started using AIRAVATA_XBAYA_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]
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.
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.
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.
###########################################################################
# Airavata Embedded-Tomcat Server Configuration
###########################################################################
# By default, tomcat runs on port 80. If the port is changed, it will be
# have to be specified with port properties. This will be picked up by
# the registry service to register the service end-points.
port=8080
# Axis2 server automatically picks up IP address from axis configuration,
# but some DHCP enables machines do not report correct ip addresses,
# in which case, the IP address can be manually specified.
#ip=192.2.33.12
#This property will enable https and stops http, during the url registration, https urls will be stored and
# http urls will not get registered, because currently airavata supports only one url for each service
#enable.https=false
#system properties used by services to register service URLs
system.gateway=default
system.user=admin
system.password=admin
airavata.server.url=http://localhost:8080/airavata/services/registry
###########################################################################
# ----------------------------------Airavata Registry Configuration ------------------------------------------
###########################################################################
#for derby [AiravataJPARegistry]
registry.jdbc.driver=org.apache.derby.jdbc.ClientDriver
registry.jdbc.url=jdbc:derby://localhost:1527/persistent_data;create=true;user=airavata;password=airavata
# MySql database configuration
#registry.jdbc.driver=com.mysql.jdbc.Driver
#registry.jdbc.url=jdbc:mysql://localhost:3306/persistent_data
registry.jdbc.user=airavata
registry.jdbc.password=airavata
start.derby.server.mode=true
validationQuery=SELECT 1 from CONFIGURATION
jpa.connection.properties=MaxActive=10,MaxIdle=5,MinIdle=2,MaxWait=60000,testWhileIdle=true,testOnBorrow=true
# Properties to setup registry service
default.registry.user=admin
default.registry.password=admin
default.registry.password.hash.method=SHA
default.registry.gateway=default
#for rest [RegistryClient]
#registry.jdbc.url=http://localhost:9080/airavata-services
#user defined registry accessor classes
#class.provenance.registry.accessor=org.apache.airavata.persistance.registry.jpa.impl.AiravataJPARegistry
#class.configuration.registry.accessor=org.apache.airavata.persistance.registry.jpa.impl.AiravataJPARegistry
#class.descriptor.registry.accessor=org.apache.airavata.persistance.registry.jpa.impl.AiravataJPARegistry
#class.project.registry.accessor=org.apache.airavata.persistance.registry.jpa.impl.AiravataJPARegistry
#class.user.workflow.registry.accessor=org.apache.airavata.persistance.registry.jpa.impl.AiravataJPARegistry
#class.published.workflow.registry.accessor=org.apache.airavata.persistance.registry.jpa.impl.AiravataJPARegistry
############################################################ ###############
# Airavata Workflow Interpreter Configurations
###########################################################################
runInThread=true
provenance=true
provenanceWriterThreadPoolSize=20
gfac.embedded=true
#
# Security Configuration used by Airavata Generic Factory Service
# to interact with Computational Resources.
#
###########################################################################
# Airavata GFac MyProxy GSI credentials to access Grid Resources.
###########################################################################
myproxy.server=myproxy.teragrid.org
myproxy.user=ogce
myproxy.pass=
myproxy.life=3600
# XSEDE Trusted certificates can be downloaded from https://software.xsede.org/security/xsede-certs.tar.gz
trusted.cert.location=/Users/lahirugunathilake/Downloads/certificates
# SSH PKI key pair or ssh password can be used SSH based authentication is used.
# if user specify both password authentication gets the higher preference
###########################################################################
################# ---------- For ssh key pair authentication ------------------- ################
###########################################################################
#public.ssh.key=/path to public key for ssh
#ssh.username=username for ssh connection
#private.ssh.key=/path to private key file for ssh
#ssh.keypass=passphrase for the private key
#######################################################################################
################# ---------- For ssh username password authentication ------------------- ################
#######################################################################################
#If your deployment is using ssh authentication with a remote resource for file transfering or job submission
#following parameters can be used, if you need to do third party file transfer between ssh resources, credential
#configuration has to be done in gfac-config.xml
#ssh.username=username for ssh connection
#ssh.password=Password for ssh connection
###########################################################################
# ------------------------Airavata Message Broker Basic Configurations -------------#####
# ------------------------This module is currently not in use ------------------------#####
###########################################################################
# Default derby database configuration
broker.jdbc.driver=org.apache.derby.jdbc.EmbeddedDriver
broker.jdbc.url=jdbc:derby:wsmg;create=true;user=airavata;password=airavata
# Note: This database will only be used if 'broker.storage.type=persistent'
# is set in advanced properties below.
# MySql database configuration
#broker.jdbc.driver=com.mysql.jdbc.Driver
#broker.jdbc.url=jdbc:mysql://localhost:3306/wsmg?user=airavata&password=airavata
###########################################################################
# Airavata Message Box Basic Configurations,
# the Advanced section provides detailed custom configuration properties.
#This module is currently not in use
###########################################################################
# Default derby database
msgBox.jdbc.driver=org.apache.derby.jdbc.EmbeddedDriver
msgBox.jdbc.url=jdbc:derby:wsmg;create=true;user=airavata;password=airavata
# MySql database configuration
#msgBox.jdbc.driver=com.mysql.jdbc.Driver
#msgBox.jdbc.url=jdbc:mysql://localhost:3306/wsmg?user=airavata&password=airavata
###########################################################################
# ------------------------ Advanced Message Broker Configurations --------------------------------------
----------------------------This module is currently not in use ---------------------------------------------
###########################################################################
#socket time out in milliseconds for sending messages. (defaults is 20000)
broker.socket.timeout=60000
broker.storage.type=persistent
#broker.storage.type=memory
#specifies wether delivery component should be started or not.
broker.start.delivery.thread=true
#fixed thread pool based delivery
#broker.delivery.method=pcrew
#dynamic thread pool based delivery
#broker.delivery.method=parallel
#single thread delivery
broker.delivery.method=serial
#number of message delivery failures before a url become black listed (default is 2)
#broker.msg.delivery.retries=2
#time period (in seconds) a url will be kept blacklisted (default is 5 seconds)
#consumer.expiration.time.gap=5
#maximum number of messages to be send to a one consumer/url at time.
#applicable if 'broker.delivery.method' is 'pcrew' . (default is 10)
#sending.batch.size=10
#size of the thread pool. only applicable if 'broker.delivery.method' is 'pcrew'. (default is 4)
#sending.thread.pool.size=4
#
# Advanced Message Box Configurations
#
msgBox.usedatabase=true
messagePreservationDays=2
messagePreservationHours=0
messagePreservationMinutes=0
messagePerservationIntervalDays=0
messagePerservationIntervalHours=1
messagePerservationIntervalMinutes=0
###########################################################################
###---------------------------REGISTRY API IMPLEMENTATION---------------------------###
###########################################################################
class.registry.accessor=org.apache.airavata.persistance.registry.jpa.impl.AiravataJPARegistry
#class.registry.accessor=org.apache.airavata.rest.client.RegistryClient
###########################################################################
###---------------------------Computational Middleware Configurations---------------------------###
###########################################################################
#enable.application.job.status.history=true
#http://localhost:8080/axis2/services/RegistryService?wsdl
registry.service.wsdl=http://localhost:${port}/${server.context-root}/services/RegistryService?wsdl
# If false, disables two phase commit when submitting jobs
TwoPhase=true
###########################################################################
###---------------------------Monitoring module Configurations---------------------------###
###########################################################################
#Can add multiple monitoring implementation with comma separated full qualified class names
monitors=org.apache.airavata.job.monitor.impl.pull.qstat.QstatMonitor,org.apache.airavata.job.monitor.impl.LocalJobMonitor
#,org.apache.airavata.job.monitor.impl.push.amqp.AMQPMonitor
#This is the amqp related configuration and this lists down the Rabbitmq host, this is an xsede specific configuration
amqp.hosts=info1.dyn.teragrid.org,info2.dyn.teragrid.org
proxy.file.path=/Users/lahirugunathilake/Downloads/x509up_u503876
connection.name=xsede_private
###########################################################################
###---------------------------Orchestrator module Configurations---------------------------###
###########################################################################
job.submitter=org.apache.airavata.orchestrator.core.impl.EmbeddedGFACJobSubmitter
job.validator=org.apache.airavata.orchestrator.core.validator.impl.SimpleAppDataValidator
submitter.interval=10000
threadpool.size=10
start.submitter=true
embedded.mode=true
enable.validation=false
orchestrator=org.apache.airavata.orchestrator.server.OrchestratorServer
###########################################################################
###---------------------------API Server module Configurations---------------------------###
###########################################################################
apiserver=org.apache.airavata.api.server.AiravataAPIServer
###########################################################################
###---------------------------Airavata Server Configurations---------------------------###
###########################################################################
servers=apiserver,orchestrator
#shutdown.trategy=NONE
shutdown.trategy=SELF_TERMINATE