40 rearranged so that they are the first message in the batch that will be transmitted to the
client. This allows high priority messages to be transmitted ahead of the other messages.
10.1.2 Message Prioritization by Time to Expire
A feature of the Prioritization module is the ability to prioritize the order of message transmission to a client by comparing the relative time to expire value of the message to
the other messages in the client’s transmission queue. During client session negotiation, the aircraft client will define a Prioritization policy that includes a truefalse value
indicating to the DMS whether or not the aircraft client wishes to have messages prioritized prior to transmission. Messages being forwarded to a client with prioritization
enabled are placed in a transmission queue. Once in the queue, the DMS parses incoming messages in batches and checks for metadata data describing the message type
and expiration time. The messages contained in each batch are prioritized by their relative time to expire. Soon to expire messages are set as high priority and placed in the
front of the queue to be transmitted ahead of low priority messages. Once all messages in a batch have been successfully transmitted to the client, the next batches of messages in
the transmission queue are sent to the aircraft client. By prioritizing messages in batches, the DMS prevents low priority messages being blocked from transmission by a large
number of high priority messages.
10.2 Implementation
Apache Camel provides a rule-based queuing and routing engine that is used by the DMS to prioritize messages. Received messages sent to an Apache Camel service and
temporarily stored on server memory. Once Apache Camel receives a preconfigured number of messages in this case 5 messages, but this is easily changed it groups them
together and evaluates each message for message type and time to expire. This grouping of messages is known as a batch. Messages in the batch are parsed and any messages
containing a type defined as high priority e.g. runway closure are sent to the front of the priority queue. The remaining messages not defined as being high priority are ordered by
their individual time to expire relative to the other messages in the same batch. Once the batch of messages is queued the DMS transmits the messages, one at a time, to the
aircraft client. The DMS waits for aircraft client acknowledgement of messages reception before transmission of the next message in the queue. Once all messages in the batch
have been successfully transmitted to the aircraft the DMS transmits the next batch of messages. The batching of messages prior to queuing for transmission prevents blocking
of low priority message from transmission by an influx of very high priority messages.
10.3 Lessons Learned
The initial approach to prioritization was to utilize the differentiated services DiffServ quality of service QoS standard to mark messages with priority levels for use by the
DMS – aircraft client data links. DiffServ is a computer networking architecture that specifies a mechanism for classifying and managing network traffic using 6-bit values
inserted into the IP header of a packet. Routing and transmission equipment use the 6-bit
41 values to control the application of network resources to specific packets. DiffServ can be
used to provide low latency to voice communications while providing best effort to file transfers on the same network. The DMS could use DiffServ to prioritize message to
optimally utilize network resources without having actual knowledge of network resource availability. The intent was to insert Diffserv 6-bit values into the packets headers
carrying high priority messages to increase the chances of the message being received in an expeditious manner. Technical gaps where discovered when attempting the insertion
of DiffServ values into the packets that contained high priority messages. Because the DMS deals with messages on the application level, it was not directly possible to
associate messages to the individual packets on the network level. It was realized that DiffServ is designed to be implemented to allow a single network interface card to insert
the same DiffServ 6-bit value into every IP packet transmitted. This is not conducive to the type of operational capability required by the Provenance Module.
10.4 Future Work