Technical architecture
Overview
The figure below extends the previous figure Architecture overview by showing the different interfaces within nevisDetect:

The table below lists the interfaces within nevisDetect:
| Interface name | Description | Type | Provider | Consumer |
|---|---|---|---|---|
| ICAP (0) | ICAP interface | ICAP | nevisDetect Feature Correlator | nevisProxy (ICAP filter) |
| Request Data (1) | Interface for forwarding the data of the actual request as well as returning the generated rule in case of synchronous communication. | JMS queue | nevisDetect Core | nevisDetect Feature Correlator |
| Authentication Data (2) | Interface for forwarding the data of the actual authentication as well as returning the generated rule in case of synchronous communication. | JMSqueue | nevisDetect Core | nevisAuth (nevisDetect AuthState) |
| Statistic (3) | Interface for updating the user related statistical data and for persisting generated rules. | REST | nevisDetect Persistency | nevisDetect Core |
| Configuration (4) | Interface for reading the system configuration and the persisted rules. | REST | nevisDetect Persistency | nevisDetect CorenevisDetect Feature Correlator |
| Entities (5) | Interface for read/write access to the persisted entities. | REST | nevisDetect Persistency | nevisDetect Web App |
| Component Control (6) | Interface for getting the runtime status of all nevisDetect components. | REST | nevisDetect Controller | nevisDetect Web App |
| Component Status (7) | Interface for getting the status of a single nevisDetect component. | JMS topic | nevisDetect CorenevisDetect Feature CorrelatornevisDetect Persistency | nevisDetect Controller |
The next table lists the runtime of the nevisDetect components:
| Component | Runtime | Remarks |
|---|---|---|
| nevisDetect Feature Correlator | Standalone JVM | TCP/IP server listening on localhost |
| nevisDetect AuthState | nevisAuth execution environment | AuthState deployed by nevisAuth |
| nevisDetect Core | Standalone JVM | A JMS Messaging Listener |
| nevisDetect Persistency | Servlet container | Web application implementing REST services |
| nevisDetect Controller | Servlet container | Web application implementing REST servicesServes the nevisDetect Web App with static content |
| nevisDetect Web App | Browser | Single Page Application (SPA) based on Angular 2 |
Runtime
The following figure shows the asynchronous processing of an HTTP request within nevisDetect:

The processing of an HTTP request during authentication is shown in the following figure:

Scaling and fail-safeness
Fail-safeness and scaling of nevisDetect is guaranteed by the message bus. The figure below is therefore showing the system from a messaging point of view:

Monitoring
nevisDetect is a distributed system consisting of several components. The runtime status of all components is monitored by JMS topic:

The monitoring described here is displayed in the nevisDetect web application. For machine-related monitoring services, see chapter Liveness and health services.