Technische Lösungen für COBOL

Deutsch

English

Redvers Compression Algorithm

Das „Redvers Compression Algorithm” ermöglicht es Ihnen, Hauptspeicher, Zeit und Kosten der Datenspeicherung zu sparen unter Erhalt der Datenintegrität.

Redvers Consulting Limited hat einen Algorithmus zur Komprimierung und Dekomprimierung erstellt, dessen Hauptzweck es ist, für im COBOL-Format gehaltene Daten optimale Kompressionsraten zu erzielen. Bei der Entwicklung des Algorithmus wurde auf eine sparsame Verwendung von Computerresourcen geachtet, besonders bei der Dekomprimierung, damit die archivierten Daten auch online verzögerungsfrei wiederhergestellt werden können.


Merkmale:

Weil die Software als COBOL Source-Code ausgeliefert wird, kann sie auf jeder COBOL-Plattform kompiliert und ausgeführt werden, sei es IBM Mainframe, iSeries/AS400, UNIX, HP, Linux, Fujitsu BS2000 oder Micro Focus.

Das „Redvers Compression Algorithm” besteht aus einem Paar einfacher, effizienter COBOL-Unterprogramme, die auf Anforderung COBOL Datenstrings komprimieren und dekomprimieren. Diese Datenstrings sind einzelne Felder, Teile eines Satzes, komplette Sätze oder sogar eine Reihe aufeinander folgender Sätze. Durch diesen Ansatz kann der Archivierungsprozeß in-situ stattfinden, also so, daß der Satz mit seiner komprimierten Form an derselben Stelle überschrieben wird, in Datenbanken oder indizierten Dateien, ohne die Schlüsselfelder zu verändern.

Überblick

Das „Redvers Compression Algorithm” besteht aus zwei COBOL-Unterprogrammen. Das eine dient der Datenkomprimierung, das andere der Dekomprimierung. Diese Unterprogramme können unabhängig von der verwendeten Plattform von allen Anwendungen aufgerufen werden, im Batch- oder Onlinemodus.

Im Bild unten wird dargestellt, wie die Kompressions- bzw. Dekompressionsprozedur in einer typischen Anwendungsumgebung verwendet werden kann.

Die Datenkompression erfolgt in einer speziellen Prozedur, die für die Kompression geeignete Daten auswählt. Diese Daten werden dann an das Redvers Kompressionsunterprogramm (RCCMPRES) übergeben, das den String in komprimierter Form zurückliefert. Die Originaldaten im COBOL Format können nun gelöscht werden.

Anwendungsprogramme, die auf die komprimierten Daten zugreifen müssen, übergeben den komprimierten String an das Dekompressionsuntergrogramm (RCUNPRES), welches den Datenstring in seinem normalen COBOL-Format zurückliefert. Andere Dateien oder Parameter werden nicht benötigt.

Wenn das Anwendungsprogramm die komprimierten Daten ändern möchte, können die aktuellen Datensätze an RCCMPRES übergeben und dessen Ausgabe anschließend in die komprimierte Datenbank geschrieben werden.

Alternativ gibt es die Möglichkeit, Plattenplatz in Datenbanken und indizierten Dateien zu sparen, indem Sätze mit unveränderten Schlüsseldaten gespeichert werden, wobei jedoch der Großteil der Daten in den komprimierten Zustand überführt wird.

Compression Flowchart

Technische Informationen

Das „Redvers Compression Algorithm” nutzt einen „verlustfreien” Kompressionsalgorithmus, der von Redvers Consulting Limited entworfen und entwickelt wurde. Der Algorithmus zeichnet sich dadurch aus, daß er optimale Kompressionsraten für COBOL-Anwendungsdaten liefert und dabei eine sparsame Verwendung von CPU-Last erreicht. Er kann jedoch auch zur Komprimierung anderer Daten auf allen Plattformen eingesetzt werden.

Der Algorithmus, den wir verwenden, ist nicht „Huffman” oder „arithmetisch” und benötigt nicht den Overhead, einen Wahrscheinlichkeitsbaum aufzubauen, der dann dem komprimierten Datenstring hinzugefügt werden müßte. Wir verwenden die Standardtechnik des „sich verschiebenden Fensters”, um zuvor benutzte Zeichenketten wiederverwenden zu können.

Die Größe des „sich verschiebenden Fensters” kann durch die rufende Anwendung angepaßt werden, um einen Einfluß auf die gewünschten Prioritäten zu haben: ein großes Fenster führt zu besseren Kompressionsraten, bedingt aber eine höhere CPU-Last; ein kleines Fenster hat schlechtere Kompressionsraten zur Folge, bedingt aber eine geringere CPU-Last.

Da RCCMPRES und RCUNPRES gewöhnliche COBOL-Programme sind, die vom Kunden in seiner Anwendungsumgebung kompiliert werden, werden Obergrenzen der Zeichenkettenlänge zwischen unseren Unterprogrammen und den Anwendungsprogrammen des Kunden vom verwendeten Compiler bestimmt.


Die Kompressionstechnik beinhaltet:

Die Eingabedaten können im ASCII oder EBCDIC-Zeichensatz geliefert werden.

Die eigentliche Kompressionsrate beträgt zwischen ungefähr 35% und 75%, abhängig von der Länge des Eingabedatensatzes und der Länge des „sich verschiebenden Fensters”.

Die Kompression erfolgt mit einer Geschwindigkeit von 0,3 Megabyte pro CPU-Sekunde (wobei ein „sich verschiebendes Fenster” mit einer Größe von 400 Bytes zu Grunde gelegt wird), und die Dekompression geschieht mit mehr als 14 Megabyte pro CPU-Sekunde. Diese Benchmarks wurden gemessen auf einem IBM zSeries Mainframe unter z/OS 1.10.

Laden Sie hier eine kostenlose 30-Tage Demoversion herunter...