Deployment View

The Deployment View system representation shows how system components and third party dependencies are deployed into hardware nodes.

SWIM is composed of two main components refered to as artifacts. These components are the SWIM Interface (system frontend), and the Water Modeling Distributor (system backend).

Physical servers and computers are refered to as hardware nodes. Each hardware node contains third party software packages part of the execution environment of SWIM components.

Primary Representation

Deployment View Figure

Element Catalog

Hardware Nodes

The client is any type of device that can have access to the internet and communicate via http protocols. Examples of these type of devices can be, and are not limited to: personal computers, tablets and smart phones.

CentOS 6.3 Server
This machine is used as a server for web applications. The execution environment is composed of a LAMP stack which is further described below.

CentOS 7 Server
This server is used as a database and modeling server. It currently hosts an instance of MongoDB and a fully licensed installation of GAMS. Additionally, the Water Distributor Service is deployed on this server in order to directly interact with GAMS through their Java-based API.

Third Party Software Packages

Web Browser
This artifact can be any web browser that can act as a client for communication with the Water Modeling Interface.

LAMP is a third party software bundle for Linux operating systems. The bundle includes the Apache HTTP Server, the MySQL relational database system and interpreters for the PHP programming language. These software components form part of the execution environment for the Water Modeling Interface. Additionally, Apache is used as a proxy server to redirect incoming requests ( to the Water Distributor Web Service.

Versions Used: Apache 2.2.15, PHP 5.3.3

The PHP MongoDB driver is a PHP extension package currently available from PECL. The current implementation uses the mongo-1.6 legacy driver due to compatibility with the current CodeIgniter library to handle MongoDB business logic (CIMongo).

PHP MongoDB Driver:

A Java virtual machine (JVM) is an abstract computing machine that enables to run the Water Modeling Distributor artifact.

Version Used: Java SE Runtime Environment 8


MongoDB is a NoSQL database system used to drive the IWMP by storing document collections of model metadata, base scenario specifications and user generated scenarios.

Version Used: 2.6.12


The General Algebraic Modeling System (GAMS) is a high-level modeling system for mathematical programming. It is currently used for the implementation of the Rio Grande Basin Hydroeconomic Prototype, also refered to as the "Bucket Model" in this project.

Version Used: GAMS Distribuition 24.7.4


System Component Packages

Water Modeling Interface
The Water Modeling Interface is a PHP CodeIgniter project running under an Apache web server. Additional front-end libraries are included for the implementation of the modeling interface such as: Angular 1, Bootstrap 3, JQuery, Chart JS, D3, ArcGIS API, among others.

Water Modeling Distributor
The Water Modeling Distrubutor is a self-contained dropwizard web-service application packaged as a .jar file. The application runs under the Java SE Runtime Environment.