Class RealTimeRiskMonitor

java.lang.Object
neqsim.process.safety.risk.realtime.RealTimeRiskMonitor
All Implemented Interfaces:
Serializable, Runnable

public class RealTimeRiskMonitor extends Object implements Serializable, Runnable
Real-time Risk Monitor for Digital Twin Integration.

Provides continuous risk monitoring for process systems, enabling integration with digital twin platforms, SCADA systems, and control room displays. Features include:

  • Continuous risk assessment with configurable update intervals
  • Risk trend tracking and anomaly detection
  • Alert generation for risk threshold breaches
  • REST API-compatible data formats for dashboard integration
  • Support for multiple monitoring points across a process
Version:
1.0
Author:
NeqSim Development Team
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • name

      private String name
      Monitor name.
    • processSystem

      private transient ProcessSystem processSystem
      Process system being monitored.
    • riskSimulator

      private transient OperationalRiskSimulator riskSimulator
      Risk simulator.
    • updateIntervalSeconds

      private int updateIntervalSeconds
      Update interval in seconds.
    • historySize

      private int historySize
      History retention (number of assessments).
    • currentAssessment

      private RealTimeRiskAssessment currentAssessment
      Current risk assessment.
    • assessmentHistory

      private Queue<RealTimeRiskAssessment> assessmentHistory
      Historical assessments.
    • equipmentStatus

      Equipment-specific risk levels.
    • alertThresholds

      private RealTimeRiskMonitor.AlertThresholds alertThresholds
      Alert thresholds.
    • activeAlerts

      private List<RealTimeRiskMonitor.RiskAlert> activeAlerts
      Active alerts.
    • alertListeners

      private transient List<RealTimeRiskMonitor.AlertListener> alertListeners
      Alert listeners.
    • monitoringActive

      private volatile boolean monitoringActive
      Monitoring active flag.
    • scheduler

      private transient ScheduledExecutorService scheduler
      Executor for scheduled monitoring.
    • baselineRiskLevel

      private double baselineRiskLevel
      Baseline risk level for anomaly detection.
    • baselineStdDev

      private double baselineStdDev
      Standard deviation of baseline.
  • Constructor Details

    • RealTimeRiskMonitor

      public RealTimeRiskMonitor(String name)
      Creates a real-time risk monitor.
      Parameters:
      name - monitor name
    • RealTimeRiskMonitor

      public RealTimeRiskMonitor(String name, ProcessSystem processSystem)
      Creates a real-time risk monitor for a process system.
      Parameters:
      name - monitor name
      processSystem - process system to monitor
  • Method Details

    • setProcessSystem

      public void setProcessSystem(ProcessSystem processSystem)
      Sets the process system to monitor.
      Parameters:
      processSystem - process system
    • initializeEquipmentStatus

      private void initializeEquipmentStatus()
    • setUpdateIntervalSeconds

      public void setUpdateIntervalSeconds(int seconds)
      Sets update interval.
      Parameters:
      seconds - interval in seconds
    • getAlertThresholds

      public RealTimeRiskMonitor.AlertThresholds getAlertThresholds()
      Gets alert thresholds.
      Returns:
      alert thresholds
    • addAlertListener

      public void addAlertListener(RealTimeRiskMonitor.AlertListener listener)
      Adds an alert listener.
      Parameters:
      listener - alert listener
    • startMonitoring

      public void startMonitoring()
      Starts continuous monitoring.
    • stopMonitoring

      public void stopMonitoring()
      Stops continuous monitoring.
    • assess

      public RealTimeRiskAssessment assess()
      Performs a single risk assessment.
      Returns:
      current risk assessment
    • calculateOverallRiskScore

      private double calculateOverallRiskScore(OperationalRiskResult result)
    • updateEquipmentStatus

      private void updateEquipmentStatus(RealTimeRiskAssessment assessment)
    • checkAlerts

      private void checkAlerts(RealTimeRiskAssessment assessment)
    • generateAlert

      private void generateAlert(RealTimeRiskMonitor.RiskAlert.AlertSeverity severity, RealTimeRiskMonitor.RiskAlert.AlertType type, String source, String message, double current, double threshold)
    • calculateTrends

      private void calculateTrends(RealTimeRiskAssessment assessment)
    • setBaseline

      public void setBaseline(double baseline, double stdDev)
      Sets baseline for anomaly detection.
      Parameters:
      baseline - baseline risk level
      stdDev - standard deviation
    • calculateBaseline

      public void calculateBaseline()
      Calculates baseline from history.
    • run

      public void run()
      Specified by:
      run in interface Runnable
    • getName

      public String getName()
    • getCurrentAssessment

      public RealTimeRiskAssessment getCurrentAssessment()
    • getAssessmentHistory

      public List<RealTimeRiskAssessment> getAssessmentHistory()
    • getActiveAlerts

      public List<RealTimeRiskMonitor.RiskAlert> getActiveAlerts()
    • getUnacknowledgedAlerts

      public List<RealTimeRiskMonitor.RiskAlert> getUnacknowledgedAlerts()
    • acknowledgeAlert

      public void acknowledgeAlert(String alertId)
    • clearAcknowledgedAlerts

      public void clearAcknowledgedAlerts()
    • getEquipmentStatus

      public Map<String, RealTimeRiskMonitor.EquipmentRiskStatus> getEquipmentStatus()
    • isMonitoringActive

      public boolean isMonitoringActive()
    • toJson

      public String toJson()
      Gets current status as JSON for dashboard integration.
      Returns:
      JSON string
    • toString

      public String toString()
      Overrides:
      toString in class Object