Architecture#

nJAMS is based on decoupled Client / Server architecture. nJAMS Clients are standalone components attached to their target technology. They collect monitoring data and send them to nJAMS Server by using JMS messaging. nJAMS Server receives incoming event messages and stores the content in the persistence sub system. This architecture allows nJAMS to work fully decoupled from the underlying business processes. That means the monitored business processes are not affected by nJAMS.

The combination of nJAMS Server and nJAMS Client(s) is called nJAMS instance. An nJAMS instance consists of one single nJAMS Server and one or more nJAMS Client(s).

nJAMS instance#

The nJAMS instance comprises nJAMS Server, at least one nJAMS Client, and additional 3rd party sub systems such as a JMS provider, a relational database management system (RDBMS), a WildFly Application Server, and an Elasticsearch Cluster.

Architecture

Typically, an nJAMS instance is created separately for each environment. For example, you may want to separate your production environment from your non-production environments. In order to do so, you can create two different nJAMS instances, e.g. nJAMS TEST and nJAMS PROD:

Instances

nJAMS Server#

nJAMS Server represents the core component of an nJAMS instance:

nJAMS Server

nJAMS Server runs inside WildFly Application Server and interacts in 4 directions:

  • nJAMS Log Message Bus: nJAMS Server collects log messages sent by nJAMS Clients via JMS. nJAMS requires a connection to a JMS Server to communicate with the nJAMS Clients.

  • Indexer: nJAMS Server stores its monitoring information (log messages) into an Elasticsearch cluster. Elasticsearch implements high scalability and high availability by distributing and replicating data among distributed nodes.

  • Database system: A relational database system is used to store nJAMS master data (Domain Objects, Privileges, Users/Roles, etc.). nJAMS Server contains a built-in database that is sufficient in most cases, but you can also use your preferred RDBMS. nJAMS Server supports Oracle, SQL Server, or PostgreSQL.

  • User: A user interacts with nJAMS Server by using the nJAMS Server GUI via a standard web browser.

nJAMS Client#

nJAMS Clients are stand-alone components or plugins to their respective target technology. nJAMS Clients collect monitoring data of data sources they are connected to (i.e. other applications, log files, etc) and forward monitoring data to nJAMS Server. The communication can also run in the opposite direction, e.g. nJAMS Server can send configuration updates to nJAMS Clients. nJAMS Clients are fully decoupled from nJAMS Server; an nJAMS Client is fully operational even if the communication with nJAMS Server is interrupted.

nJAMS Clients

nJAMS GUI#

The presentation layer within nJAMS Server drives nJAMS GUI:

nJAMS GUI