GVA Registration Service

The Registration Service is the foundation of GVA system interoperability. It enables automatic discovery of systems, capability exchange, and health monitoring across the vehicle network.

Overview

Every GVA-compliant system must register with the network to:

  • Announce its presence and capabilities
  • Receive information about other systems
  • Maintain health status visibility
  • Enable coordinated operations

Registration Concepts

graph LR subgraph "Vehicle Network" REG[Registry Service] subgraph "Registered Systems" HMI[HMI] BMS[BMS] WPN[Weapons] NAV[Navigation] EXT[External App] end end HMI -->|Register| REG BMS -->|Register| REG WPN -->|Register| REG NAV -->|Register| REG EXT -->|Register| REG REG -->|System List| HMI REG -->|System List| BMS REG -->|System List| WPN REG -->|System List| NAV REG -->|System List| EXT

Message Sequence

System Registration

sequenceDiagram participant App as Application participant DDS as DDS Network participant Reg as Registry Service participant Other as Other Systems Note over App: Application starts App->>DDS: Publish Registration Note right of App: systemId, name, type,
capabilities, status=ONLINE DDS->>Reg: Receive Registration Reg->>Reg: Validate & Store Reg-->>DDS: Acknowledge DDS->>Other: Registration Notification Note right of Other: Other systems learn
about new system loop Heartbeat (every 5s) App->>DDS: Publish Registration Note right of App: status=ONLINE,
updated timestamp DDS->>Reg: Update status Reg->>Reg: Reset timeout end Note over App: Application stops App->>DDS: Publish Registration Note right of App: status=OFFLINE DDS->>Reg: Deregistration Reg->>Reg: Mark offline DDS->>Other: Status change notification

Health Monitoring

sequenceDiagram participant Reg as Registry Service participant Sys as Registered System participant Mon as Monitoring System Note over Reg,Mon: Normal Operation loop Every 5 seconds Sys->>Reg: Heartbeat (status=ONLINE) Reg->>Reg: Update last_seen end Note over Reg,Mon: System Failure Sys--xReg: No heartbeat (system crashed) Reg->>Reg: Timeout detected (>15s) Reg->>Mon: Status change: TIMEOUT Mon->>Mon: Alert operator Note over Reg,Mon: System Recovery Sys->>Reg: Heartbeat (status=ONLINE) Reg->>Mon: Status change: ONLINE

Registration Data

System Information

Field Type Description
systemId string Unique identifier (e.g., "HMI_001")
systemName string Human-readable name
systemType enum HMI, BMS, WEAPON, NAVIGATION, etc.
status enum ONLINE, OFFLINE, DEGRADED, TIMEOUT
capabilities list Supported features
timestamp datetime Last update time

System Types

Type Description
HMI Human Machine Interface
BMS Battlefield Management System
WEAPON Weapon System
NAVIGATION Navigation System
COMMUNICATION Communications
SENSOR Sensor System
POWER Power Management
APPLICATION External Application
SERVICE GVA Service
OTHER Other system type

Registration Status

Status Description
ONLINE System operating normally
OFFLINE System intentionally offline
DEGRADED System operating with reduced capability
TIMEOUT System not responding (set by Registry)
UNKNOWN Status not determined

Best Practices

Registration

  1. Use unique system IDs - Include a prefix for your organisation
  2. Register immediately - Don't delay registration after startup
  3. Include capabilities - Help other systems understand your features

Heartbeats

  1. 5-second interval - Standard GVA heartbeat period
  2. Don't skip heartbeats - Missing 3+ heartbeats triggers timeout
  3. Update timestamp - Always include current time

Shutdown

  1. Deregister cleanly - Set status to OFFLINE before exit
  2. Allow time - Brief delay for message delivery
  3. Handle signals - Catch SIGTERM/SIGINT for clean shutdown

Troubleshooting

System Not Appearing

  • Check DDS domain matches other systems
  • Verify network connectivity
  • Ensure Registration topic name is correct ("Registration")

Timeout Status

  • System crashed or network issue
  • Heartbeat thread not running
  • Firewall blocking DDS traffic

Duplicate Registrations

  • Ensure systemId is unique
  • Check for multiple instances running