Skip to main content

Overview

The Track Manager component is responsible for managing entity tracking and situational awareness data within FreeTAKServer. It provides functionality for tracking positions, exporting track data to external servers, and searching track information across the TAK ecosystem.

Architecture

Component Structure

Key Classes

TrackManagerFacade

Location: FreeTAKServer/components/extended/track_manager/track_manager_facade.py:9
Purpose:
  • Provides public interface for track management operations
  • Isolates internal complexity from external callers
  • Routes requests to appropriate controllers

TrackManagerGeneralController

Location: FreeTAKServer/components/extended/track_manager/controllers/track_manager_general_controller.py:8

Core Functionality

Track Export

The Track Manager supports exporting track data to external servers for:
  • Inter-server track sharing
  • Backup and archival
  • Integration with external systems
  • Multi-server deployments
Usage:
Search functionality enables querying track data based on various criteria: Search Parameters:
  • UID
  • Callsign
  • Time range
  • Geographic bounds
  • Team/group membership
  • Track type
Usage:

Track Storage and Persistence

Controller: TrackManagerPersistence Manages persistent storage of track data:

Track Serialization

The component supports multiple serialization formats: XML (CoT):
JSON:

Track Data Model

Event Model

Location: FreeTAKServer/components/extended/track_manager/domain/_event.py Represents track position events:

Component Properties

Location: FreeTAKServer/components/extended/track_manager/domain/_component_property.py Defines track-specific properties and metadata.

Integration with Services

Service Manager Integration

Track Manager integrates with the Service Manager for:

Database Integration

Tracks are persisted to the database for:
  • Historical playback
  • Track analysis
  • Search capabilities
  • Situational awareness reconstruction

Advanced Features

Track History

Maintains historical track data:

Track Filtering

Filter tracks based on criteria:

Track Aggregation

Aggregate track data for analysis:

Complete Usage Example

Configuration

File: track_manager_constants.py Configuration options:
  • Track retention period
  • Export destinations
  • Search index configuration
  • Serialization defaults

Best Practices

  1. Retention Policy: Configure appropriate track retention periods
  2. Search Indexing: Ensure search indices are optimized
  3. Export Scheduling: Schedule regular track exports for backup
  4. Performance: Use time-based filtering to limit result sets
  5. Cleanup: Regularly purge old track data based on retention policy

Performance Considerations

Database Optimization

  • Index on UID, callsign, and timestamp fields
  • Partition historical data by time period
  • Archive old tracks to separate storage

Search Optimization

  • Use geographic bounds to limit search area
  • Apply time range filters to reduce dataset
  • Limit result set size for large queries

Export Optimization

  • Batch export operations
  • Use incremental exports when possible
  • Compress export data for transmission

Monitoring

Track key metrics:
  • Active track count
  • Track update frequency
  • Search query performance
  • Export success rate
  • Database storage usage

Error Handling