Apache Airavata

This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).

This product includes open grid forum standard specifications described as  
xml schemas. These schemas as guided by OGF copyright - http://www.ogf.org/About/abt_policies_copyright.php 