Uses View
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.
Primary Representation
Element Catalog
Internal Elements
resources
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.
main
Contains the highest level of execution hierarchy. The classes contained in this package extract configuration options and register
application services and system healthchecks.
db
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.
model
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.
health
Defines system health checks to monitor service and database availability during application runtime.
mapper
Parses incoming JSON inputs and populates morphia models for runtime data use and storage.
runner
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).
External Elements
dropwizard
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
JSON simple is Java library for JSON processing, used to read and write JSON data with full compliance with JSON specification (RFC4627).
morphia
Morphia is a Java library for direct document mapping with MongoDB.
mongo-java-driver
The MongoDB Driver provides both synchronous and asynchronous interaction with MongoDB.
gams-api
The GAMS Java API provides a Java programming interface to the General Algebraic Model System (GAMS).
References
Drowizard: http://www.dropwizard.io/
JSON simple: https://code.google.com/archive/p/json-simple/
Morphia: https://mongodb.github.io/morphia/
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