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 Web service instance created by the Generic Facory Service.
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.
- 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.
- 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 registry implementation is on top of derby or MySQL.