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
Element Catalog
Hardware Nodes
Client
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
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 (https://services.cybershare.utep.edu/water/distributor/) to the Water Distributor Web Service.
Versions Used: Apache 2.2.15, PHP 5.3.3
PHP MongoDB
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).
References:
PHP MongoDB Driver: https://docs.mongodb.com/ecosystem/drivers/php/#access-mongodb-from-php
CIMongo: http://intekhabrizvi.github.io/mongodb-library-for-codeigniter.html
JVM
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
References:
https://en.wikipedia.org/wiki/Java_virtual_machine
MongoDB
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
References: https://www.mongodb.com/
GAMS
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
References:
http://www.gams.de/
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.
References: http://www.dropwizard.io/1.2.0/docs/