GSoC 2015 student contributions to GenApp and Airavata

Emre H. Brookes, Abhishek Kapoor, Priyanshu Patra, Suresh Marru, Raminder Singh, Marlon Pierce

Research output: Contribution to journalArticlepeer-review

3 Scopus citations


GenApp generates applications on an extensible set of target languages for scientific modules. GenApp utilizes JavaScript object notation (JSON) format for all definition files. To create an application, definition files are created for global directives, menu, and modules. Target languages have definition files detailing the steps-mapping code fragments to output. Modules must be wrapped to accept and produce JSON as defined in the module's definition file. Execution models are not defined by GenApp; they are included in target language code fragments. Previously, GenApp included target languages of HTML5/PHP, Qt3/C++, and Qt4/C++ with execution models of direct local execution, a web server, or a web server accessible resource. A Google Summer of Code (GSoC) 2014 student demonstrated Airavata-managed execution in GenApp's current target languages. Subsequently, Airavata's API and GenApp have evolved. Two GSoC-2015 students updated the previous Airavata integration to support the current API and extend target languages to include Qt5/C++, Qt5/Android, and Java. GenApp was initially developed to wrap modules utilized in the small angles scattering field but is not restricted to this discipline. The GenApp philosophy is to minimize effort of the researcher to deploy modules and insure preservation in an evolving software landscape. Generated applications are in production and used by small angle scattering researchers.

Original languageEnglish
Pages (from-to)1960-1970
Number of pages11
JournalConcurrency and Computation: Practice and Experience
Issue number7
StatePublished - May 1 2016


  • CASE tools
  • design
  • human factors
  • languages
  • middleware
  • science gateway


Dive into the research topics of 'GSoC 2015 student contributions to GenApp and Airavata'. Together they form a unique fingerprint.

Cite this