Nachrichten-Komprimierung

Die Nachrichten-Komprimierung komprimiert WinCC OA Nachrichten. Datenkomprimierung bedeutet Kodieren von Informationen durch Verwendung von wenigeren Bits als eine nicht komprimierte Darstellung verwenden würde und durch die Verwendung von spezifischen Enkodierungsschemen. Komprimierung ist sinnvoll, da sie den Verbrauch von aufwendigen Ressourcen wie Übertragungsbandbreite reduziert.

Mit dem Config-Eintrag ”messageCompression” wird das Komprimierungsschema festgelegt. Der Config-Eintrag kann die folgenden Schemen enthalten:

  • "none" (keine Kompression), (Default-Wert ist "" und bedeutet "none")

  • "zlib" (Komprimiert unter Verwendung von der zlib (gzip, zip)), siehe http://www.zlib.org

  • "bzip2" (Komprimiert unter Verwendung des bzip2- Algorithmus (bzip2 ist frei verfügbar, Qualitäts-Datenkomprimierer, siehe http://www.bzip.org). bzip2 komprimiert besser als zlib, aber mit höherer CPU-Auslastung oder

  • "zlib-bzip2" (Komprimiert kurze Messages mit zlib, große Messages wie z.B. die Identifikation mit bzip2.)

Der Eintrag kann in allen Sektionen der Config-Datei verwendet werden.

Es können mehrere Schemen zur Auswahl angegeben werden, z.B. messageCompression = "zlib-bzip2,zlib". Client und Server einigen sich dann auf das erste gemeinsame Verfahren. Ist also beim Client "zlib" und beim Server "bzip,zlib" parametriert, wird das "zlib"-Verfahren verwendet. Der Default-Wert ist "none" und es wird empfohlen "zlib-bzip2" zu verwenden.

Um eine unnötige CPU-Last zu vermeiden, werden nur Nachrichten ab einer gewissen Mindestgröße komprimiert. Die Angabe erfolgt mit dem Config-Eintrag ”messageCompressionThreshold” in Bytes (Default: 0). Der Config-Eintrag kann in allen Sektionen der Config-Datei verwendet werden. Die Message-Komprimierung bietet einen erheblichen Vorteil durch deutliche Reduktion des Verbrauchs von Übertragungsbandbreite sogar bei kleineren Nachrichten. Der Defaultwert 0 bedeutet, dass alle Nachrichten komprimiert werden, solange die Komprimierung einen Vorteil bietet (manchmal kann es vorkommen, dass komprimierte Daten größer als nicht komprimierte sind). Nur Nachrichten von externen Verbindungen werden komprimiert. Die Nachrichten von lokalen (Rechner) Verbindungen werden nicht komprimiert.

Mit der -report dispatch-Option kann die Kompressionsrate abgefragt werden. 20% bedeutet, es wurde auf 1/5 der ursprünglichen Größe komprimiert. Die Rate berechnet sich aus der Größe der übertragenen Nutzdaten / Größe der unkomprimierten Daten.