Technical architecture
Overview
The figure below extends the previous figure Architecture overview by showing the different interfaces within nevisDetect:
![Technical architecture](/assets/images/6645642-b1aa36121367c6b018c16a25df916291.png)
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:
![HTTP request processing](/assets/images/8004020-8448d332a834a6f419ac05aa655225e4.png)
The processing of an HTTP request during authentication is shown in the following figure:
![Authentication request processing](/assets/images/8004007-536adac2f368b3bc6eb05bdbae8b05d6.png)
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:
![Request data queue](/assets/images/6645653-bd9978fce2ae6e99368a3a8d38ebb691.png)
Monitoring
nevisDetect is a distributed system consisting of several components. The runtime status of all components is monitored by JMS topic:
![Monitoring nevisDetect](/assets/images/6645650-200928b398f6fcea10c9056394eddd91.png)
The monitoring described here is displayed in the nevisDetect web application. For machine-related monitoring services, see chapter Liveness and health services.