System Architecture

PilotPy/python_simulator/
├── config.py                 # Configuration and enum definitions
├── result_generator.py       # Random result generator
├── task_manager.py           # Task lifecycle management
├── zmq_router_server.py      # Core ZMQ Router server
├── zmq_pub_server.py         # ZMQ Publish server (status updates)
├── main.py                   # Program entry point
├── protocol_adapters/        # Protocol adapters   ├── superconducting.py    # Superconducting protocol adapter   ├── ion_trap.py           # Ion trap protocol adapter   ├── neutral_atom.py       # Neutral atom protocol adapter   └── photonic.py           # Photonic protocol adapter
└── README.md                 # This file (Documentation)

Communication Modes

The server uses two complementary ZMQ communication modes:

Router-Dealer Mode (Request-Reply)

  • Ports: 7000-7003

  • Purpose: Processes client requests and sends responses.

  • Connection: The client connects as DEALER, and the server acts as ROUTER.

  • Characteristics: Two-way communication.

Publish-Subscribe Mode (Pub-Sub)

  • Ports: 8000-8003

  • Purpose: Pushes status updates and notifications to subscribers.

  • Connection: The server acts as PUBLISHER, and the client connects as SUBSCRIBER.

  • Characteristics: One-way push communication, real-time status updates.

  • Message Structure: Three-layer message structure (Topic + Operation + Data).