Saturday, March 27, 2010

Build and Deploy to Maven2 Repo

OGCE components use Maven2 for build and Archiva for repository management. For legacy reasons some dependencies are exist in extreme lab maven repository. To upgrade these components and release a version and deploy a jar file to extreme lab maven 2 repository, add the following distributionManagement tag to the pom.xml.

<distributionmanagement>
<repository>
<uniqueversion>false</uniqueversion>
<id>xRepo</id>
<name>Extreme Lab Repository</name>
<url>scp://mneme.extreme.indiana.edu/l/extreme/java/repository</url>
<layout>default</layout>
</repository>
</distributionmanagement>

mvn deploy will deploy the generated jar files to the repository but will prompt to enter the password and will also assume local account name. To avoid password prompt and to specify a different user name the following settings.xml can be placed in the $HOME/.m2 directory. For security reasons, never include the settings.xml in any of the packages, this file should be protected by file system security and is strongly advised to set the file permissions to 600.

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xsi="http://www.w3.org/2001/XMLSchema-instance" schemalocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<servers>
<server>
<id>xRepo</id>
<username>smarru</username>
<privatekey>${user.home}/.ssh/id_dsa</privatekey> <!-- if ssh keys are not available the password can be set as <password>my_password</password> -->
<passphrase>some_passphrase</passphrase>
<filepermissions>664</filepermissions>
<directorypermissions>775</directorypermissions>
<configuration></configuration>
</server>
</servers>
</settings>

Friday, March 26, 2010

Gadget Container Theme Customization

The OGCE gadget container has been updated to simplify theme customization. See http://www.collab-ogce.org/ogce/index.php/OGCE_Gadget_Container_Theme_Customization for more information.

Wednesday, March 17, 2010

OGCE Messaging Service Released

We are pleased to announce the release of our Axis 2 based Messaging Service. This is a standalone publish/subscribe service that is also being integrated into the OGCE workflow suite.

For more information and download instructions, see http://www.collab-ogce.org/ogce/index.php/Messaging.

Thursday, March 11, 2010

OGCE Simple Monitoring Script

A simple perl based service monitoring script is available to check out from sourceforge svn at Service Monitoring Dashboard. This is a cleaned up version of the LEAD SOA Status Page authored by Suresh Marru and Marcus Christie.

The perl script periodically pings the registered services and if a service is done, sends an emails to the registered contacts. The scripts also writes our a html page with the following color convention:
  • Green - Service is up
  • Red - Service is down
  • Yellow - Request timed out (i.e., took longer than the default 20 seconds)
The OGCE Team has deployed and will maintain the script. The status of the services can be viewed at Monitoring Dash Board. All services are pinged every 10 mins and the page is refreshed. Additionally, XSUL based services are instrumented with finer details like uptime and total requests served. In the future Axis2 based services will also be explored for more instrumented data. OGCE hosted gateway (demo/tutorial) services as well as gateway services will be monitored. To add a service to the monitoring list, send an email to {smarru or mpierce} at cs.indiana.edu (Note that only project supported gateways will be monitored).

Gateways can checkout the script and deploy and maintain on their own servers. To add a service to the script, use the following template:

push (@services, {
$NAME => "OGCE Gateway Portal",
$ID => "OGCEPortal",
$URL => "https://ogceportal.iu.teragrid.org:8443/gridsphere/gridsphere",
$CONTACTS => [admin@gateway.org],
$GATEWAYS_R_US => $OGCE
});

The GATEWAYS_R_US is a variable to categorize the services. For instance, to generate a separate listing of OGCE Hosted Services and a list of Gateway Services. The perl script is commented to explain these terminologies. The documentation is very naive but will be enhanced more.

Questions or comments, email smarru at cs.indiana.edu

Overview of OGCE Science Gateway Support

The slideshow below was presented at the Indiana University Pervasive Technology Institute and focuses on IU OGCE activities.  For fuller overviews, see for example http://www.collab-ogce.org/ogce/index.php/Tutorials  
OGCE's Advanced Science Gateway Support
View more presentations from marpierc.

Wednesday, March 10, 2010

Analytics Reports for OGCE Web Site

Images below are from our Google Analytics traffic tracking from March 1, 2009-March 1, 2010. The first shows overall site traffic. The second shows global traffic sources. Click the image to see a larger version.


Download Java Server Faces Components for Amazon Cloud Services

We have Amazon EC2 user interface components built with Java Server Faces available for download or SVN checkout.  


To check the code out from SVN, use the command

svn checkout  https://ogce.svn.sourceforge.net/svnroot/ogce/ogce-amazon-gadgets/awsGadget

This will create a directory $HOME/awsGadget.  To build the gadgets, use the command 

mvn clean install -Dcatalina.home=/path/to/your/tomcat

For example, if you download (separately) Apache Tomcat 6.0.18 and put it in your awsGadget directory, you would run the command

mvn clean install -Dcatalina.home=./apache-tomcat-6.0.18/  

Start your tomcat server and point your browser to http://localhost:8080/AWSGadget/index.jsp.

Note the login page requires your Amazon secret key, so you will need to run this over HTTPS.  This code is provided as is under our usual SourceForge license.  

Monday, March 01, 2010

OGCE Jira URL

We are opening up our Jira project and bug tracking system for anonymous viewing.  The URL is http://grids.ucs.indiana.edu:8080/jira.

Using GFac to wrap an application as a service

Launching applications on Super Computers and managing the application during its lifetime and its output after it ends are challenging tasks. GFac aims at being able to provide simple GUI tools that can help launch and manage the application on remote supercomputers.

This post aims at serving as a quickstart to configuring a XSul based GFac persistent service.

The first step is to install GFac and XRegistry components. Good documentation to do this can be found on the OGCE web pages.


After the installation is complete set the GFAC_HOME environment variable to point to the GFac's target/dist-bin folder:

export GFAC_HOME=/Users/archit/ogce/ogce-xsul-services-1.0-RC1/sgfac/target/dist-bin

Now create a folder to house the configuration files that will be used by our service.

cd ogce-xsul-services-1.0-RC1/sgfac
mkdir helloworld
cd helloworld

Now use your favorite editor to create the three XML configuration files needed by GFac to start the persistent service namely the App description document, the host description document and service description document.

Application Description File helloworldapp.xml:

<ApplicationDescription xmlns="http://www.extreme.indiana.edu/namespaces/2004/01/gFac" xmlns:lead="http://www.extreme.indiana.edu/lead">
<applicationName
targetNamespace="http://www.extreme.indiana.edu/lead">HelloWorldApp</applicationName>
<jobType>single</jobType>
<project> <projectName>TG-XXXXXXXXXX</projectName>
<projectDescription>
TG staff
</projectDescription>
</project>
<queue>
<queueName>SERIAL</queueName>
<queueDescription>
BigRed queue
</queueDescription>
</queue>
<maxWallTime>30</maxWallTime>
<count>1</count>
<rslparm name="project">TG-XXXXXXXXXX</rslparm>
<rslparm name="queue">SERIAL</rslparm>
<deploymentDescription>
<hostName>
bigred.iu.teragrid.org
</hostName>
<executable>/N/u/tg-archi/BigRed/helloworld</executable>
<workdir>
/N/u/tg-archi/BigRed/gfactmp
</workdir>
<!-- Tmp directory for this application.
if not specified, the tmp directory of the host will be used-->
<tmpDir>
/N/u/tg-archi/BigRed/gfactmp
</tmpDir>
<applicationEnv>
<name>FIRST_NAME</name>
<value>Archit
</value>
</applicationEnv>
</deploymentDescription>
</ApplicationDescription>

ServiceDescription file: helloworldsvc.xml

<ServiceMap xmlns="http://www.extreme.indiana.edu/namespaces/2004/01/gFac"
xmlns:lead="http://www.extreme.indiana.edu/lead">

<service>
<serviceName targetNamespace="http://www.extreme.indiana.edu/lead">HelloWorldService</serviceName>
</service>
<lifeTime>
<notAfterInactiveMinutes>-1</notAfterInactiveMinutes>
</lifeTime>
<portType>
<method stageOutputDataFiles="true" forceFileStagingToWorkDir="true">
<methodName>Run</methodName>
<application paramValuesOnly="true" useLEADNameListFile="true">
<applicationName targetNamespace="http://www.extreme.indiana.edu/lead">HelloWorldApp</applicationName>
</application>
<inputParameter>
<parameterName>lastname
</parameterName>
<parameterType>String</parameterType>
</inputParameter>
<inputParameter>
<parameterName>inputfile</parameterName>
<parameterType>URI</parameterType>
</inputParameter>

<outputParameter>
<parameterName>friendCount</parameterName>
<parameterType>String</parameterType>
</outputParameter>
<outputParameter>
<parameterName>friendListFile</parameterName>
<parameterType>URI</parameterType>
</outputParameter>
</method>
</portType>
</ServiceMap>

Host Description File: bigred.xml
<HostDescription xmlns="http://www.extreme.indiana.edu/namespaces/2004/01/gFac" xmlns:lead="http://www.extreme.indiana.edu/lead">
<documentInfo>
<documentName targetNamespace="http://www.extreme.indiana.edu/lead">BigRed</documentName>
</documentInfo>
<hostName>bigred.iu.teragrid.org</hostName>
<hostConfiguration>
<tmpDir>/N/u/tg-archi/BigRed/gfactmp</tmpDir>
<globusGatekeeper wsGram="true">
<endPointReference>
https://gatekeeper.bigred.iu.teragrid.org:8443/wsrf/services/ManagedJobFactoryService
</endPointReference>
<jobmanagertype>Loadleveler</jobmanagertype>
</globusGatekeeper>

<gridFTP>
<endPointReference>gridftp.bigred.iu.teragrid.org:2811</endPointReference>
</gridFTP>
</hostConfiguration>
</HostDescription>


Create the service properties file:
Finally, create the GFac service property file: helloworld.properties. This will tell GFac where to get the service, application, and host description files you just made.
serviceMapFile = helloworld/helloworldsvc.xml
appDescFile = helloworld/helloworldapp.xml
hostDescFile = helloworld/bigred.xml
port = 12346
#Comment this to make Factory and Services starts up without https
#transportSecurity=true
#private key used by the GFac to connect to other services, and start https socket, if it is enabled
ssl.hostcertsKeyFile=/home/ogce/ogce-xsul-services-1.0-RC1/sgfac/target/dist-bin/conf/ogce_services_key.pem
ssl.trustedCertsFile=/home/ogce/ogce-xsul-services-1.0-RC1/sgfac/target/dist-bin/conf/trusted_cas.pem
registryURL=https://<yourip>:6666/xregistry?wsdl
#Ask Gfac to go to local mode, so it can work without credentails. Comment if you need a remote installation
installation=local
myproxyServer=myproxy.teragrid.org
myproxyUserName=XXXXX
myproxyLifetime=86400
myproxyPasswd=XXXXXX
#gfac.prefferedProvider=Local|Gram|WSGram|SSH|ResourceBroker
wsgramPrefered=true


Now with your JAVA_HOME and GFAC_HOME set start the persisitent HelloWorldService using the run.sh provided with GFac as foolows:

./run.sh helloworld/helloworld.properties

This will start the service on port 12345 and you are ready to submit HelloWorld jobs.