Home
Categories
Dictionary
Download
Project Details
Changes Log
Who We Are
FAQ
License

Server communication configuration



This article explains how to configure the Server Network communication.

Communication

There are several constrainsts imposed on the communication architecture:
  • The J661 UI framework impose that all graphic updates are performed on the UI framework, Thread
  • A lot of the protocol reception APIs (such as TCP or UDP protocols) are blocking or impose to loop to receive messages
  • Emissions or receptions heavily depend on the network performance[1]
    For example, slow Network can add a lot of lag on events sendings and even slow the Server itself if the sending was performed on the UI Thread
To avoid problems with the emissio or receptions in the Server, the J661 architecture separates:
  • The reception and decoding Thread
  • The emission and encoding Thread
  • The UI Thread including the management of widgets updates

comarchitecture

Configuration properties

This chapter presents the configuration properties which are relevant to the Server communication and Network configuration.

Properties useful if a Network configuration is not defined

These properties are not used if a Server Network configuration is defined.
  • serverInputPort: The port for the communication Client => Server (used by the Client to set the parameters)
  • serverOutputPort: The port for the communication Server => Client (used by the Server to send events on widgets and error reports)
  • serverInputSize: The size of the port for the communication Client => Server
  • serverOutputSize: The size of the port for the communication Server => Client
  • "protocol.clientHost": The property name to specify the Client host for the protocol, as seen by the Server. By default all communication will happen on the local host (127.0.0.1)
  • "protocol": the name of the built-in protocol used for communication, which can be:
    • "udp" for UDP protocol (default)
    • "tcp" for TCP/IP protocol
    • or the key of an additional protocol given by the protocol Provider (see Built-in protocols for those which are provided by default)
  • "maximumQueueSize": The maximum size of the events queue received by the Client or the Server. This is a very important parameter to consider for the reception Thread. See Network configuration

Network configuration

  • network": defines a Network XML file defining the channels to open for the UA <=> CDS communication. It allows to define more than one Channel of communication between UA and CDS, each with specific properties

Layer activations properties

These properties are used to configured how the Layer activations are managed by the Server. See server configuration properties for more information on these properties. Also the ""server.autoConnect" specifies if the Server automatically perform a connection to the Client at start.

Input properties

  • eventQueue.showSkippedEvents": set to true if a Warning should be printed if events are skipped in the Input Event Queue if its size is > 2
  • "server.layersUpdateCap": The layers update Cap is the minimum time in ms between two Layer updates, regardless of the Layer. See server configuration properties for more information on this property
  • "server.projectionUpdateCap" and "server.optimizeMapUpdates" properties: See server configuration properties for more information on these properties

Output properties

  • "server.evtProcessorQueueSize" : The queue size for the Server event processor, which manages events sent from the Server to the UA. See server configuration properties for more information on this property
  • "server.evtProcessorYield": The time to wait in ms between two sending. This protects against cases where several output messages sent in very short succession are overridden in the User Application reception. This can happen in some protocols, for example UDP. Note that the wait itself will be performed in a background Thread which manage the sending, thus not stealing CPU time to the main Thread of the Server. See server configuration properties for more information on this property
  • "compactOutputBuffers": The property name to specify that it is allowed to compact the content of an output Buffer if several block are to be sent for several Layers of the same Buffer. This can for example allow to send only one Buffer containing all the A661_NOTE_LAYER_IS_ACTIVE and A661_NOTE_LAYER_IS_INACTIVE for all the Layers managed by a Channel if the cockpit configuration is changed. See server configuration properties

Notes

  1. ^ For example, slow Network can add a lot of lag on events sendings and even slow the Server itself if the sending was performed on the UI Thread

See also


Categories: dev | server | user

Copyright 2016-2017 Dassault Aviation. All Rights Reserved. Documentation and source under the LGPL v2 licence