GSoC 2015 student contributions to GenApp and Airavata
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. Copyright (c) 2015 John Wiley Sons, Ltd.
Concurr. Comput. Pract. Exp.