To build and run Piazza, the table below depicts the software that is needed. As a convenience, Piazza provides Vagrant boxes for the required backing services.
The table below outlines the prerequisites for building/compiling piazza software, and getting piazza up and running in an environment.
Software Item | Version | Description | Backing Service |
---|---|---|---|
Java Development Kit | 1.8 | Compiler for building the following Piazza components: Access, Gateway, Ingest, IDAM, JobCommon, JobManager and ServiceController | No |
Go | 1.7.x | Compiler for building the following Piazza components: Logger and Workflow | No |
Maven | 3.3.9 | Build infrastructure for building Java applications | No |
Oracle VM VirtualBox | 5.0.10 | Virtual Machine infrastructure for running individual backing services | Yes |
MongoDB | 2.6.3 | Database supporting Java micro services | Yes |
GeoServer | 2.9.2 | Server for providing geospatial image support using Open Geospatial Consortium (OGC) standards | Yes |
PostgreSQL (Crunchy) | 9.5.2 | Database used to support storing and retrieving of loaded geospatial data | Yes |
Apache Kafka | 0.9.0.1 | Messaging Bus used for asynchronous message support. | Yes |
Vagrant Box | Location |
---|---|
ElasticSearch | https://github.com/venicegeo/pz-search-metadata-ingest/tree/master/config |
MongoDB | https://github.com/venicegeo/pz-jobmanager/tree/master/config |
GeoServer | https://github.com/venicegeo/pz-access/tree/master/config |
PostgreSQL | https://github.com/venicegeo/pz-ingest/tree/master/config |
Apache Kafka | https://github.com/venicegeo/kafka-devbox |
Using Piazza, NPEs can perform actions such as the loading and retrieval data, the registration and execution user services, and registration of workflow events or triggers. The requests and responses from the Gateway are defined via JSON. The Gateway acts as an external broker, or proxy, to the internal components of the Piazza application. The Gateway will receive user requests, and then route that request or command to the appropriate internal Piazza component.
The Gateway is the single point-of-contact for external users to interact with Piazza Core components. This API provides functionality for loading and accessing data, registering and executing services, and registering events and triggers. The entirety of Piazza functionality is accessed through these Gateway API calls.
For details on the Gateway API, see Swagger Documentation for details on each of the endpoints.
For details on how to use case scenarios, see the Piazza Users Guide.
For details on the code for the Gateway, see the Gateway section for details.