-
Notifications
You must be signed in to change notification settings - Fork 6
DSPro Configuration
aci/conf/dspro2.properties: contains all the possible configuration parameters for DSPro and their description.
Depending on the transport adaptors that are enabled, it may be necessary to also configure DisService, Mockets, or TCP:
-
aci/conf/disService.propertiescontains all the possible configuration parameters for DisService and their description. -
mockets/conf/mocketsdefault.confcontains all the possible configuration parameters for Mockets and their description.
Moreover DSPro allows the customization of the message metadata. While DSPro defines a set of default attributes that are also used internally, DSPro allows its users to extend the metadata to include new attributes along with the values that they may assume (values are optional). An example of configuration file that defines new attributes can be found at
aci/conf/dspro.metadata.extraattributes.xml, while an example of configuration file that defines the new attributes' values can be found at dspro.metadata.extravalues.xml
aci.dspro.nodenameaci.dspro.node.id-
aci.dspro.sessionKey: it sets the session ID that the running node should use. It is not currently possible to change this value at run time. Peer nodes with different node IDs will not be able to communicate, and will not perform cooperative caching either, when DisService is being used. -
aci.dspro.instrument: instruct dspro to instrument the code. DSPro execution may incur in slower performance if instrumentations are enabled.
-
aci.dspro.localNodeContext.pszTeamID: the ID of the team the peer node, and the users connected to it belongs to. -
aci.dspro.localNodeContext.pszMissionID: the ID of the mission the peer node, and the users connected to it are taking part to. -
aci.dspro.localNodeContext.pszRole: -
aci.dspro.localNodeContext.usefulDistance: the maximum distance between a metadata’s bounding box and the path for which a message is considered relevant. -
aci.dspro.localNodeContext.usefulDistanceByType: the maximum distance (in meters) between a metadata’s bounding box and the path for which a message is considered relevant. This value of useful distance only applies to the specified metadata. The format of the value of the property is as follows:aci.dspro.localNodeContext.usefulDistanceByType=MIMEType1,UsefulDistance1;MIMEType2,UsefulDistance2For example:aci.dspro.localNodeContext.usefulDistanceByType=x-dspro/x-soi-track,30000;image/jpeg,50000 aci.dspro.localNodeContext.mathcmakingQualifiers-
aci.dspro.localNodeContext.policies: the paths (separated by commas) of the XML files describing the custom policies to be used to compute the matchmaking for the peer. (Refer to the Custom Matchmaking Properties section for the format of the custom policies).
-
aci.dspro.localNodeContext.classifier.type: if learning is enabled (it is enabled if the learning weight parameter is set to a value greater than 0), it specifies which learning algorithm should be used to learn the users’ preferences. The allowed values are “cycle” and “window”. -
aci.dspro.localNodeContext.classification.algorithm: -
aci.dspro.localNodeContext.classification.algorithm.win.size.init: -
aci.dspro.localNodeContext.classification.algorithm.win.size.max -
aci.dspro.localNodeContext.classification.algorithm.win.size.incr -
aci.dspro.localNodeContext.classification.algorithm.error.pcycle -
aci.dspro.localNodeContext.classification.algorithm.win.size.pcycle
-
aci.dspro.adaptor.disservice.enable: it enables the DisService adaptor. DSPro will instantiate DisService.
-
aci.dspro.adaptor.mockets.enable: it enables the Mockets adaptor. DSPro will instantiate a MocketServer -
aci.dspro.mockets.conf: it instructs DSPro where to find the file containing the mockets configuration parameters. -
aci.dspro.mockets.netIFs: it specifies what of the available network interfaces should be allowed to accept mocket connections. -
aci.dspro.adaptor.mockets.port: the port the MocketServer must listen -
aci.dspro.adaptor.mockets.peer.addr: a list of comma-separated IP addressed of the peer nodes the node should connect to via mockets. Only one of the two ends is required to specify this parameter.
-
aci.dspro.adaptor.tcp.enable: it enables the TCP adaptor. DSPro will instantiate a server TCP socket. -
aci.dspro.tcp.netIFs: it specifies what of the available network interfaces should be allowed to accept TCP connections. -
aci.dspro.adaptor.tcp.peer.addr: a list of comma-separated IP addressed of the peer nodes the node should connect to via TCP. Only one of the two ends is required to specify this parameter.
-
aci.dspro.dsprorepctrl.contextForwarding.enabled: if set on true DSPro nodes will forward the node context messages, so that every node in the network will be aware of the other nodes’ context. -
aci.dspro.dsprorepctrl.prestaging.enabled: if set on false the node will not perform matchmaking, and therefore it will not pre-stage messages to other nodes. -
aci.dspro.topologyExchange.enable: if set on true nodes will exchange control messages containing information on the network topology.
The priority rank assigned to a metadata for a certain node is computed as the weighted average of eight different default ranks computed as functions of the parameters that follow:
-
distance of the area of relevance of a message from the current location and the future path of the node (coordinate rank)
-
time when the message will become of relevance for the node (time rank)
-
time when the message will become obsolete (expiration rank)
-
value of importance that the published of the message assigned to it (importance rank)
-
value of reliability of the publishing source (source reliability rank)
-
value of utility of the information contained in the message (information content rank)
-
value of importance of the message for the node estimated by the DSPro prediction algorithm based on the previous node’s message requests (prediction rank)
-
relevance, based on the target of the message (target rank) and the ranks computed on application-defined policies. The priority rank ranges from 0 to 10.
aci.dspro.metadataRanker.coordRankWeight: the weight of the coordinate rank.aci.dspro.metadataRanker.timeRankWeight: the weight of the time rank.aci.dspro.metadataRanker.expirationRankWeight: the weight of the expiration rank.aci.dspro.metadataRanker.impRankWeight: the weight of the importance rank.aci.dspro.metadataRanker.srcRelRankWeight: the weight of the source reliability rank.aci.dspro.metadataRanker.infoContentRankWeight: the weight of the information content rank.aci.dspro.metadataRanker.predRankWeight: the weight of the prediction rank.aci.dspro.metadataRanker.targetRankWeight: the weight of the target rank. -
aci.dspro.metadataRanker.timeRank.considerFutureSegments: if set to false only metadata that is the most relevant for the current path segment will match. If set to false all the path segments will be considered. -
aci.dspro.metadataRanker.targetStrict: if set on false, metadata for which the target is set and does not match may still be matched to a node if the other ranks are high enough. If set on true, if the target does not match the metadata will not match for a node regardless of the value of the other ranks.
-
aci.dspro.controller.nonMatchingDataTypes: comma-separated list of MIME types of messages that should not be considered for matchmaking. -
aci.dspro.controller.nonMatchingDataTypesByPeer: semicolon-separated list of MIME types of messages that should not be considered for matchmaking for a certain peer. The format of the list is as follows: nodeId1,mimeType1;nodeId2,mimeType2 -
aci.dspro.controller.limitPrestagingToLocalData: if set on true only the messages published by the node itself will be considered for matchmaking. -
aci.dspro.controller.rangeOfInfluenceByMilSTD2525SymboleCode: semicolon-separated list of Military Standard 2525 symbols and distances that are used to compute the area of influence of a message when it is not explicitly specified by the application. The format of the list is as follows:symbol1,distance1;symbol2,distance2.
Users can specify via configuration file or via DSPro APIs of custom policies on custom attributes that should be used to compute custom ranks that will be weighted with the other default policies to evaluate the matching score of a metadata against the node context of the user. A policy nothing is but a 3-tuple containing the following elements:
- An attribute name: the attribute that should be considered for this policy.
- A weight: that is used to compute the weighted average of the final matching score.
- A function on the value of the attribute Currently the only type of function that is supported is a static mapping between a set of possible values that the policy attribute may assume, and the corresponding score.
For instance the policy that follows says that if the Affiliation property is set to Friendly, the rank outputted by this policy should be 5.0, while if the value is set to Hostile, the outputted rank should be 9.3:
<?xml version="1.0"?>
<RankerPolicy>
<Type>Static</Type>
<Attribute>Affiliation</Attribute>
<Weight>5.3</Weight>
<Match>
<Value>Friendly</Value>
<Rank>5.0</Rank>
</Match>
<Match>
<Value>Hostile</Value>
<Rank>9.3</Rank>
</Match>
</RankerPolicy>
NB: the name of the property is case-sensitive, as it is the name of the XML elements. The name of the values are not case-sensitive.
-
aci.dspro.scheduler.enforceTiming: if set on true the messages that matched, and that are therefore to be scheduled for pre-staging, will be transmitted by expected time of use by the recipients instead of being transmitted by increasing value of priority rank. -
aci.dspro.scheduler.preStagingSession.messages.threashold: the minimum value of priority rank that a message must be assigned in order to be pre-staged.
aci.dspro.nodePath.setFirstWaypointaci.dspro.nodePath.currentaci.dspro.nodePath.pszPathIDaci.dspro.nodePath.pathTypeaci.dspro.nodePath.probabilityaci.dspro.nodePath.waypoint.WAY_POINT_NUMBERaci.dspro.nodePath.waypoint.WAY_POINT_NUMBER.typeaci.dspro.nodePath.waypoint.WAY_POINT_NUMBER.latitudeaci.dspro.nodePath.waypoint.WAY_POINT_NUMBER.longitudeaci.dspro.nodePath.waypoint.WAY_POINT_NUMBER.altitudeaci.dspro.nodePath.waypoint.WAY_POINT_NUMBER.locationaci.dspro.nodePath.waypoint.WAY_POINT_NUMBER.noteaci.dspro.nodePath.waypoint.WAY_POINT_NUMBER.timestamp