The Uses View system representation shows the internal Java packages of the SWIM Water Model Distributor, among with the use of external Java libraries. For the rest of this document, both internal application packages and external libraries will be refered to as elements.
Defines application entry points and final response mechanisms for the webs service endpoints. This package uses the Jersey library which is included in the Dropwizard framework.
Contains the highest level of execution hierarchy. The classes contained in this package extract configuration options and register application services and system healthchecks.
Handles database connectivity and object document mapping between database and custom Morphia model classes. The current implementation interacts Mongo DB which is a NoSQL database manager.
Defines objects that directly map to a document on Mongo DB. This facilitates the process of creating, updating and querying documents on a Mongo collection.
api (target for rename)
Contains application handlers that specify the main workflow of execution.
Defines system health checks to monitor service and database availability during application runtime.
Parses incoming JSON inputs and populates morphia models for runtime data use and storage.
Maps model parameters, executes, and processes model outputs generated from third party modeling software. The current implementation handles interaction with The General Algebraic Modeling System (GAMS).
Dropwizard is a Java framework for developing ops-friendly, high performance, RESTful web services This framework leverages the creation of self-contained web services to facilitate application usability and deployment.
JSON simple is Java library for JSON processing, used to read and write JSON data with full compliance with JSON specification (RFC4627).
Morphia is a Java library for direct document mapping with MongoDB.
The MongoDB Driver provides both synchronous and asynchronous interaction with MongoDB.
The GAMS Java API provides a Java programming interface to the General Algebraic Model System (GAMS).
JSON simple: https://code.google.com/archive/p/json-simple/
Mongo Driver: https://docs.mongodb.com/ecosystem/drivers/java/
GAMS API: https://www.gams.com/help/index.jsp?topic=%2Fgams.doc%2Fapis%2Fjava%2Findex.html