Title: Airavata Gateway Framework Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at . http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. Apache Airavata is a software toolkit with features to compose, manage, execute, and monitor small to large scale applications and workflows on computational resources ranging from local clusters to national grids and computing clouds. Airavata builds on general concepts of service oriented computing, distributed messaging, and workflow composition and orchestration. The services primarily communicate using SOAP messages. In addition to the basic Web services specifications like SOAP and WSDL, the Web services also support WS-Addressing and WS-Messaging. WS-Addressing is used to provide an asynchronous communication mechanism for the services to communicate. All the communication channels are secured using https as the transport layer. Airavata features Dynamic Service Binding where in a proxy service accepts an input message intended to a target application Web service instance invoked by a workflow engine. The proxy service binds an appropriate running Web service instance by looking up in XRegistry. When no Web service instances are available, a new instance of the GFac service is created. Airavata's primary goal is to support long running applications and workflows on distributed computational resources. The architecture is designed to be modular, componentized software framework as illustrated in the following Figure. The goal of the Airavata framework is minimalist architectural design (i.e., a thin layer), a conceptually simple to understand architecture; and easier to install, maintain and use. Its salient feature includes using components by themselves or as an integrated solution. ![Airavata Overview](/architecture/airavata.png "Airavata Overview") ## Airavata Features * desktop tools and browser-based web interface components for managing applications, workflows and generated data. * sophisticated server-side tools for registering and managing scientific applications on computational resources. * graphical user interfaces to construct, execute, control, manage and reuse of scientific workflows. * interfacing and interoperability with with various external (third party) data, workflow and provenance management tools. ## Airavata Components * XBaya Workflow Suite - includes a GUI for workflow composition and monitoring. The workflows can be interpreted at each step providing dynamic interactive capabilities. The composed workflow can be exported to various workflow languages like BPEL, SCUFL, Condor DAG, Jython and Java. The defacto workflow enacting engine used is Airavata Workflow Engine. In the future, it will be Apache ODE. * GFac - an application wrapper service that can be used to wrap command line-driven science applications and make them into robust, network- accessible services. This component is build on Axis2 web service stack and constructed workflows. * WS-Messenger - a publish-subscribe based message broker implemented on top of Apache Axis2 web services stack. It implements the WS-Eventing and WS-Notifications specifications and incorporates a message box component that facilities communications with clients behind firewalls and overcomes network glitches. As an example, the workflow execution engine sends out events in various stages, including start, end, failure, successful invocation, of its workflow execution. * Registry-API: A thick client registry API for Airavata to put and get documents. Current JCR implementation is supported by Jack-Rabbit.