GESCHICHTE
GESCHICHTE
VORGESCHICHTE (VOR DER WIEDERVEREINIGUNG)
Für die West-Berliner Filialen einer deutschen Großbank sollte ein Echtzeit-Backup-Netz zwischen Berlin und Frankfurt aufgebaut werden. Aufgrund der Masse an Daten/Dateien und der damaligen Netzgeschwindigkeiten war dies schwierig bis unmöglich. So entstand die Idee, diese Daten vor der Übertragung zu komprimieren. Die damals bekannten Verfahren waren hinsichtlich der aufzuwendenden Ressourcen (CPU-Zeit, RAM, etc.) und deren Folgen (Paging, Elapsed Time, Beeinträchtigung anderer Prozesse, etc.) nicht praktikabel
Ideenfindung
Zum Patent angemeldet wurde eine Technik zur vertikalen (verlustfreien) Kompression statisch strukturierter Daten mittels Run-Length-Compression in Spalten (Bytes) auf der Basis von autarken Einheiten/Matrizen, die mit Daten(sätzen) unterschiedlichen Formats (fixe/variable Länge) gefüllt werden. Es handelt sich dabei um ein Verfahren zur Datenkompression, das bisher in der kommerziellen IT und in verschiedenen technischen Prozessen unbekannt war. Das Verfahren ist auch in wissenschaftlichen Bereichen effizient, wenn die Daten strukturiert sind und ausreichend vertikale Redundanzen aufweisen, z.B. Messdaten, Daten in der Lebensmittelindustrie (Daten wg. Nachweispflichten), etc.
SENSATIONELLE K-EFFEKTE UND EXTREME PERFORMANCE
Tests ergaben, dass typische Daten des damaligen Zahlungsverkehrs um bis zu 95% komprimiert werden konnten, in der Industrie Stücklisten sogar um bis zu 98,5%. Bei Messdaten mit starker Streuung der (binären) Messwerte (ggf. sogar Fließkommawerte plus Mantisse) wurden immerhin noch über 65% erreicht, z.B. im Wetterdienst. Das Verfahren ist für Daten dieser Art als Softwarelösung äußerst performant realisierbar, insbesondere für die in Assembler codierte Großrechnerversion.
GRÜNDUNG DER LIMES DATENTECHNIK GMBH – START DER ENTWICKLUNG VON FLAM
1985 erfolgte am AG Bad Homburg v.d.H. die Gründung einer Firma zur Umsetzung des Patents in ein marktgerechtes Softwareprodukt - zunächst für Mainframe-Anwender (IBM, Siemens). Das Softwareprodukt erhält den Namen FLAM: Frankenstein-Limes-Access-Method. Zu Präsentationszwecken entsteht ein Prototyp: FLAM Version V1.0 für MVS und BS2000. Damit war es nun möglich, Daten zu "flambieren" bzw. zu "deflambieren". Alle Folgeversionen des Prototyps FLAM Version V1.0 sind voll abwärtskompatibel.
DIE ERSTE OFFIZIELLE FLAM-VERSION V2.0 – MIT ZUGRIFFSMETHODEN
Es wurde eine universelle Version freigegeben, die auf alle Systeme portierbar ist, die auf strukturierten Datensätzen basieren (Mess-, Finanz-, Verwaltungsdaten sowie Druck-, Stück-, Adresslisten, Job-Protokolle etc.). Zur Öffnung als Zugriffsmethode für sequentielle und indexsequentielle Dateien (z.B. ISAM, VSAM) wurde eine in Applikationen integrierbare Datensatzschnittstelle geschaffen. Ab dieser Version kann FLAM auch als Unterprogramm oder Ersatz für I/O verwendet werden.
VERTRAGSABSCHLUSS MIT EINER DER GRÖSSTEN BANKEN
Die Bank hatte mehr als 40 Rechenzentren mit unterschiedlichen Plattformen und Datenbanksystemen. Für den nächtlichen Abgleich der Änderungen in diesen Datenbanken war eine Kompressionssoftware unerlässlich. Dieser Auftrag besteht bis heute. Die Anwendungsbreite im Konzern wuchs und wächst stetig.
KOMPATIBLE FLAM-VERSIONEN FÜR 60 PLATTFORMEN – LFD. ENTWICKLUNG
Von 1986 bis heute wurde FLAM für 60 Plattformen kompatibel implementiert. Damit wurde die Möglichkeit geschaffen, FLAM in verschiedenen Datenaustauschverfahren, z.B. in Clearingverfahren, zum Standard zu erklären. Dabei musste eine Vielzahl von Konvertierungsproblemen gelöst werden, um die Kompatibilität der Zeichen, Felder, Formate etc. sowie ein übertragungsgerechtes Format der FLAMFILE für das jeweilige FT-Produkt/Verfahren zu gewährleisten. Im Zahlungsverkehr gehörte dazu auch ein Format, das trotz Komprimierung druckbar und für den Filetransfer als Textdatei konvertierbar bleibt (EBCDIC <=> ASCII).
Zu den sehr vielen Plattformen, die für den Standard im Zahlungsverkehr benötigt wurden, kamen noch Vermittlungssysteme (Switches) in globalen Mobilfunknetzen für die Sicherung (lokal) und Übertragung von Messdaten an zentrale IT-Systeme für das internationale Clearing von Mess- und Abrechnungsdaten (Billing Records) von Netzbetreibern und Providern sowie deren Plattformen zur Weiterverarbeitung hinzu, wodurch FLAM auch im GSM-Netz zum Standard wurde. FLAM verbreitete sich schnell in der Kreditwirtschaft, nicht nur bei den Instituten, ihren Verbänden und Verlagen, sondern auch bei Dienstleistern, die dem Bank-, Börsen- und Kreditwesen nahestehen. Hinzu kamen das Clearing der Kartenbetreiber sowie der Umgang mit Karten bei Bestellungen und Authentifizierungen.
Die Benutzer von FLAM brauchen nicht mehr zu wissen, welches Computersystem der „Leser“ hat oder haben wird, um ein mit FLAM erstelltes FLAMFILE zu verarbeiten. So können auch FLAMFILEs dekomprimiert werden, die auf einem System erstellt wurden, das längst nicht mehr existiert. Dabei orientiert sich FLAM bei der Dekomprimierung an den Zeichenkodierungen und der Datenformatierung, die für das jeweilige System Standard sind. Es ist auch möglich, eine konvertierte Ausgabe nach eigenen Vorgaben zu steuern. Dies betrifft auch archivierte Originaldateien aus der „Vergangenheit der IT-Welt“, die mit FLAM lediglich konvertiert werden.
ERGÄNZUNG VON FLAM DURCH USER-EXITS – AB VERSION V2.X
Auf Wunsch der Anwender wurde FLAM um User-Exits erweitert. Damit ist es möglich, an den Stellen, an denen der Input/Output stattfindet, auf die Daten zuzugreifen und diese individuell zu beeinflussen. Es ist also nicht notwendig, FLAM in eine Anwendung zu integrieren. Heute sind es unsere verschiedenen Service Provider Schnittstellen, die wir unseren Kunden für eine optimale Integration von FLAM hier anbieten.
FLAM ALS SUBSYSTEM FÜR MVS (IBM MAINFRAME) – AB VERSION V2.X
Um die Integration von FLAM in Anwendungen zu vereinfachen und völlig transparent zu gestalten, wurde ein Subsystem für den Zugriff auf das DMS (Data Management System) des MVS entwickelt, so dass FLAM wie ein I/O-Treiber zwischen Anwendung und MVS integriert werden kann (Zusatzprodukt). Es genügt der Parameter "SUBSYS=FLAM" im DD-Statement. Die Integration kann sowohl in Applikationen mit sequentieller als auch mit indexsequentieller Verarbeitung erfolgen.
Ein Großkunde nutzte dies sofort für die tägliche Verarbeitung von Massendaten - in Form von hunderten VSAM-Dateien. Dabei wurden en passant einige grundlegende VSAM-Probleme zugunsten dieser Zugriffsmethode gelöst. Die Effekte bezüglich Einsparung von CPU-Zeit, Plattenplatz und Latenzzeit in einem komplexen Prozess waren und sind sensationell. Dies liegt allein daran, dass die Kompression in autarken Einheiten (Matrizen) erfolgt, wobei sogar Sätze mit variabler Länge erlaubt sind. FLAM arbeitet mit einem eigenen, stark optimierten VSAM-Schlüsselmanagement, das auch Wiederholungen im Originalschlüssel der Anwendung zulässt.
KONKATENIEREN VON FLAMFILES – AB VERSION V2.X
FLAM kann beim Komprimieren beliebig viele Dateien (wie Member in einer Bibliothek) zu einem FLAMFILE verknüpfen. Selbstverständlich kann nicht nur auf jedes einzelne Member zugegriffen werden, sondern auch innerhalb eines Members wieder gezielt auf in sich abgeschlossene Einheiten (Segmente/Datensätze). Bei der Datenübertragung (z.B. per FTP, RVS, FTAM) können in der Regel nur einzelne Dateien übertragen werden. Durch diese Funktion in FLAM war und ist es möglich, beliebig viele kleine Dateien bei der Erstellung der komprimierten FLAMFILE zu einer Datei zusammenzufassen.
Ein Kunde hat beispielsweise problemlos mehr als 16.000 Dateien aus einem alten Archiv mit FLAM komprimiert und zu einem FLAMFILE konkateniert, das auf allen von FLAM unterstützten Systemen/Plattformen kompatibel gelesen werden kann. Dies macht den Dateitransfer äußerst effizient, wenn mehrere Dateien gleichzeitig an eine oder mehrere Adressen gesendet werden sollen.
Es wird automatisch „End-to-End“ gearbeitet, d.h. das Clientsystem des Senders wird mit dem des Empfängers verbunden. Funktionen wie De-/Komprimierung im FT/Server können unterdrückt werden. Der Empfänger muss also nur „on demand“ das einzelne Member dekomprimieren. Dabei kann er Konvertierungsfunktionen nutzen. - Später kam mit AES (Standard) die Verschlüsselung/Entschlüsselung hinzu.
DURCH FLAM KANN MAN IM BACKUP-RESTART-MODE ARBEITEN
Eine spezielle Anwendung zum verschlüsselten Datenaustausch benötigte eine Lösung, bei der die zu übertragende, beliebig große Datei bei Unterbrechungen durch Störungen nicht die Wiederholung der gesamten Übertragung erfordert, und zwar als in sich voll integrierbarer Prozess inklusive Komprimierung und Verschlüsselung. Durch die Bildung von autarken Einheiten war dies mit FLAM kein Problem. Man kann auf eine solche autarke Einheit, die bereits komprimiert und verschlüsselt übertragen wurde, zurückgreifen und nur den Vorgang komplett wiederholen.
HOCH EFFIZIENTE, DYNAMISCHE KOMPRIMIERUNG – AB VERSION V3.X
Nach mehrjähriger Forschungs- und Entwicklungsarbeit konnte ein hocheffizientes Kompressionsverfahren MODE=ADC (Advanced Data Compression) für autarke, mit beliebigen Daten gefüllte Segmente (max. 64 KB netto) freigegeben werden, das die Kompression in einem Schritt (straight forward) ermöglicht. Dies ist sehr wichtig, wenn man solche Algorithmen in Zugriffsverfahren integrieren will.
Darauf aufbauend wurden die Zugriffstechniken um ein sehr effizientes Suchverfahren erweitert, so dass man in komprimierten Daten suchen kann, ohne sie zu dekomprimieren. Eine Bank nutzt diese Möglichkeiten z.B. für die Selektion einzelner Buchungen aus einem mit FLAM komprimierten riesigen Archiv (neuerdings sogar mit SEPA-Transaktionen im XML-Format), wobei jeweils nur verschiedene Teile (Feldinhalte) einer Buchung für den Suchaufruf bekannt sein müssen. Für DTA-Dateien (altes Format aus dem deutschen Zahlungsverkehr) gab es bei dieser Bank bereits eine Speziallösung, mit der sehr effizient in dem mit FLAM auf Magnetbändern erstellten Archiv nach Buchungen gesucht werden konnte. Dabei wurde noch vertikal komprimiert und noch nicht mit AES verschlüsselt.
SERIELLES UND PARALLELES SPLITTING
Um bei großen Dateien die auf einmal zu übertragende Datenmenge zu begrenzen bzw. parallele Übertragungswege besser ausnutzen zu können, wurde auf Kundenwunsch das parallele und serielle Splitting von FLAMFILES bei deren Erzeugung eingeführt.
INTEGRATION VON AES – AB VERSION 4.0
In FLAM wurde die Standard-Verschlüsselung AES integriert. Dabei werden die autarken Segmente mit abgeleiteten Schlüsseln so verschlüsselt, dass trotz Verschlüsselung wie bei der indexsequentiellen Verarbeitung gezielt auf solche Segmente zugegriffen, entschlüsselt und dekomprimiert werden kann. Es finden verschiedene Prüfungen statt, z.B. über MACs (kryptographische Prüfsummen). Die Eingabedaten können auch 1:1 in ein solches Segment übernommen werden, wenn der Anwender nur verschlüsseln will. Mitglieder einer verketteten FLAMFILE können analog behandelt werden. Auch Suchverfahren können so angewendet werden, dass nicht mit entschlüsselten (klaren) Segmenten gearbeitet wird.
ÖFFNUNG ZU JEDEM KEY MANAGEMENT ÜBER FKME – AB VERSION 4.1
Es besteht die Möglichkeit, beliebige Verschlüsselungsverfahren und Schlüsselverwaltungssysteme auf einfache Weise anzupassen. Dazu wird die FKME (FLAM Key Management Extension) verwendet. Damit ist es auch möglich, FLAM mit einem im jeweiligen System vorhandenen HSM (Hardware Security Module) zu verknüpfen. Wenn der Benutzer den Schlüssel und/oder das Verschlüsselungsverfahren ändern muss, ist es ausreichend, die Änderung auf den Header des FLAMFILE zu beschränken. Die verschlüsselten Segmente/Member inkl. MACs müssen nur kopiert werden. Über diese Service Provider Schnittstelle wurde beispielsweise eine PCIDSS-konforme Lösung für die Bestellung von Debit- und Kreditkarten geschaffen, die mittlerweile weltweit im Einsatz ist.
FKMS (FLAM KEY MANAGEMENT SYSTEM) – VERSION V1.0
Das Zusatzprodukt FKMS wurde entwickelt, um die Probleme der Schlüsselgenerierung, -verwaltung und -verteilung (Authentisierung) für Kunden zu lösen, die keine eigene kryptographische Infrastruktur betreiben. Das FKMS stellt die Schlüssel für ein spezifisches FKME auf Basis eines einfachen Rollenkonzepts zur Verfügung.
INTEGRATION DER VERSCHLÜSSELUNGSTECHNIK IN FLAM-SUB – AB VERSION V4.4
Dieses Verfahren kann z.B. auf z/OS über das FLAM-Subsystem in eine Applikation integriert werden; auf anderen Plattformen bietet FLAM die entsprechenden Schnittstellen. Damit steht nun eine perfekte Lösung zur Verfügung, die sicherstellt, dass Klartextdaten die jeweilige Applikation bei ihrer Entstehung nicht verlassen und auch nicht außerhalb einer Applikation entschlüsselt werden. Man muss also immer erst dann entschlüsseln und dekomprimieren, wenn die Klardaten innerhalb der jeweiligen Applikation tatsächlich benötigt werden, ohne dass die Applikation davon etwas mitbekommt. Dies ist die sicherste Lösung für Ende-zu-Ende-Sicherheit. Der Anwender (über-)erfüllt damit die Anforderungen des PCIDSS (Payment Card Industry Data Security Standard).
LOGISCHE ELEMENTE, NETZWERKFÄHIGKEIT, KOMPONENTEN UND OFFENE STANDARDS – AB VERSION 5.0/1
Durch die Verallgemeinerung der Zugriffsmethode auf Elemente ist es mit FLAM erstmals möglich, neben physischen Dateiformaten auch logische Datenformate (XML, ASN1, SWIFT, etc.) zu verstehen und z.B. nach Elementen wie einer Bankleitzahl in FLAM-Daten zu suchen oder zwischen logischen Formaten (SEPA, SWIFT, DTA) zu konvertieren. Die Netzwerkfähigkeit trennt die lokale Komprimierung und/oder Verschlüsselung von der entfernten Speicherung der Daten in FLAM-Archiven (sichere Cloud). Das Komponentenmodell ermöglicht den schnellen Austausch von Verfahren (Suites), das Lesen aus unterschiedlichen Quellen (Dateien, Streams, Datenbanken), die Übertragung über unterschiedliche Netzwerke (IP, SSL/TLS, MQ) und die Speicherung von FLAM-Daten in unterschiedlichen Repositories (Datei, Cluster, Datenbank).
Durch die Unterstützung offener Standards, wie z.B. UNICODE, GZIP, OpenPGP, Base64 für die Originaldaten, können mit FLAM5 wesentlich mehr Datenformate als bisher gelesen und geschrieben werden. Dabei können neben den verschiedenen I/O-Verfahren beliebig viele unterschiedliche Konvertierungen mit einer abschließenden Formatierung der Daten kombiniert werden. So ist es z.B. möglich, in einem Job-Step unter z/OS eine Datei blockorientiert lokal aus dem USS oder remote per SSH von einem anderen System zu lesen, die Daten von Base64 in eine binäre Darstellung zu wandeln, diese mit OpenPGP zu entschlüsseln, mit BZIP2 zu dekomprimieren, den Zeichensatz von UTF-16LE in IBM1141 zu ändern und das Ganze mit ASA-Steuerzeichen in eine VBA- oder FBA-Datei unter MVS schreiben zu lassen. Dabei benötigt FLAM keine temporäre Datei und nimmt jedes Byte/Zeichen nur einmal, was viel Rechenzeit und temporären Speicher spart und gleichzeitig die Sicherheit erhöht.
Mit dem FLUC-FS bieten wir all diese Konvertierungsmöglichkeiten transparent für die Anwendung als Dateisystem im Userspace auch auf den kleinen Plattformen unter Unix an, wo man an einem Mountpoint die Daten übersichtlich bearbeiten kann und physisch, aber z.B. PGP-Dateien auf die Platte geschrieben werden, die man ganz normal in diesem physischen Verzeichnis verwalten kann.
NEUE FLAM5 ARCHIVE MIT INSERT, UPDATE, DELETE AND SEARCH – AB VERSION 5.2
Mit unseren neuen FLAM5-Archiven integrieren wir die bisherige Vollzugriffslösung mit FLAM in unser Archivformat, das nun ein eigenes inkrementelles Dateisystem (jede Änderung führt zu einer neuen Version) darstellt, das mit 3 verschiedenen Schlüsseln arbeitet. Dadurch ist es möglich, den Zugriff auf das Inhaltsverzeichnis, den Zugriff auf den Index der einzelnen Mitglieder (Suche) und den Zugriff auf die eigentlichen Daten zu trennen. Durch einen zusätzlichen Parameterstring, mit dem der Zugriff auf Member, Formate und Spalten eingeschränkt werden kann, lassen sich verschiedene Sichten auf die Daten realisieren. Dies dient beispielsweise dazu, eine sichere Drittverwendung der Daten in der Cloud zu realisieren, indem bestimmte Spalten mit sensiblen Daten (Kreditkartennummer, personenbezogene Daten) anonymisiert werden.
Die neuen Archive erlauben den vollen Zugriff mit Insert, Update, Delete und Select auf einzelne Datensätze bzw. deren Spalten. Die gesamte Lösung wurde für den Einsatz in und mit der Cloud entwickelt und sichert damit den zukünftigen Nutzen von FLAM für unsere Kunden, indem wir wie bisher die Datenmengen und Datenzugriffe reduzieren, die Sicherheit erhöhen, uns nahtlos integrieren und damit die Kosten massiv senken
Fazit
Basis all dieser Entwicklungen ist und bleibt die Verwendung von autarken Einheiten, mit der alles 1985 angefangen hat, weil die vertikale (spaltenweise) Komprimierung strukturierter Daten sonst nicht praktikabel gewesen wäre.