CSDMS Web Modeling Tool


The CSDMS Web Modeling Tool

The CSDMS Web Modeling Tool, WMT, is a web application that provides an Ajax client-side graphical interface and a RESTful server-side database and API that allows users, from a web browser on a desktop, laptop or tablet computer, to build and run coupled surface dynamics models on a supercomputer.

With WMT, users can:

  • Design a model from a set of components
  • Edit component parameters
  • Save models to a web-accessible server
  • Share saved models with the community
  • Submit runs to an HPC system
  • Download simulation results

WMT provides a standardized graphical interface for components created from models submitted to the CSDMS Model Repository.

To see how you can use WMT to configure and run a standalone or a coupled model on the web, check out the WMT tutorial, or jump right into using WMT at https://csdms.colorado.edu/wmt.

The architecture of WMT

WMT consists of two applications, the WMT client and the WMT server.

In a RESTful application, the client and server are separated. The client (what the user sees) stores little information, making it portable. The server (where the work is done) isn’t concerned with actions in the client, making it scalable. The client and server communicate through HTTP GET and POST methods, using JSON to carry information. WMT is stateless: each message passed between the client and the server contains all the information needed to perform an action.

The WMT client is an Ajax application written in Java with the GWT toolkit. For deployment on the web, the GWT compiler translates Java code to optimized and obfuscated JavaScript. The WMT client is supported on Firefox, Chrome, Safari, and Internet Explorer.

The WMT server, written in Python and SQLite, is a layered system, with each layer exposing a web service API:

  • wmt-db: database of component, model, and simulation metadata and output
  • wmt-api: configure and connect components
  • wmt-exe: launch simulations on remote execution servers

The database server provides JSON-encoded metadata for users to couple model components, including descriptions of component exchange items, uses and provides ports, and input parameters. Execution servers are network-accessible computational resources, ranging from HPC systems to desktop computers, containing the CSDMS software stack for running a simulation. Once a simulation completes, its output, in NetCDF, is packaged and uploaded to a data server where it is stored and from which a user can download it as a single compressed archive file.

A tool for the community

WMT was designed for use by the CSDMS community. If you encounter any problems in using WMT, or if you'd like to leave us feedback or suggestions for improvement, please email the CSDMS software engineers at CSDMSsupport@colorado.edu.

WMT is an MIT-licensed open source application, built entirely with open source software. The WMT source code is freely available on GitHub. We actively encourage CSDMS members to contribute to the development of WMT by forking and cloning its GitHub repositories, then sending pull requests with improvements back to the CSDMS software engineers.


--Mpiper (talk) 14:26, 13 October 2016 (MDT)