A Web Application for Experimental Modeling Environment Framework for Linking and Interoperability (EMELI-WEB) ************************************************************************************************************** EMELI-WEB is a web application for `EMELI `_ (Experimental Modleing Environment Framework for Linking and Interoperability). The objective of creating EMELI-WEB is to integrate BMI-enabled web service models in a service-oriented architecture, and also make it easy for users to utilize this resource through a web application. The original EMELI is a smart modeling framework, written in Python and able to couple reusable models standardized through `CSDMS Basic Model Interface `_ (BMI). In this project, EMELI is revised to integrated :ref:`BMI-label` and elevated to a web application by using Flask. The basic procedures of using EMELI-WEB includes selecting models, configuring models, coupling models and showing results. *URL*: http://ecgs.ncsa.illinois.edu/emeli-web/ A SQL Database for authorization & recording coupling activity -------------------------------------------------------------- A simple relational database is constructed by using SQL (Structured Query Language) to enable the authorization of using EMELI-WEB and also record the coupling activities of each user. The **User** database model is used to record user's basic information, which allows the authorization of using EMELI-WEB. The **EMELI_Instance** database model is used for recording coupling activities of each user, which is referred by the connection between **user_id** in **EMELI_Instance** and **id** in **User**. .. image:: ../images/sql_db.jpg Procedures of Using EMELI-WEB ----------------------------- Main page ######### Once a user signs up in EMELI-WEB and gets the authorization of using EMELI-WEB, he/she can start to couple BMI-enabled web service models by clicking the **couple model** button in the **Main page**. .. image:: ../images/main_page.png Select models ############# When directed to the **Select models** page, a new EMELI instance will be generated for the user to record the basic information (based on the fields of **EMELI_Instance** database model) of this coupling activity. In this page, a user is required to: 1. select the models from the available BMI-enabled web service models in the execution order; 2. check the connections between models by clicking the **check model connections** button; 3. provide the spatial and temporal domains for searching required data files from other data resources (*under development*); 4. click **submit** to go to the **Configure models** page. .. image:: ../images/select_models.png Configure models ################ In the **Configure model** page, a user need to: 1. enter the values of the configuration variabls; 2. provide the files of the configuration variables if required (or choose files from a recommended list (*under development*)); 3. click **submit** to generate the configuration files and start to couple models. .. image:: ../images/configure_models.png Couple models & show results ############################ After all the values or files of the configuration variables are provided, EMELI-WEB will create an run-time environment and start to couple the selected BMI-enabled web service models. Once the coupling finishes, a user will be directed to the **Results & Outputs** page to download the outputs. .. image:: ../images/results.png