Implementation Lessons Learned Engineering Reports | OGC

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