History
History
Back story (before German Reunification)
A real-time backup network was to be established between Berlin and Frankfurt for the West Berlin branches of a prominent German bank. However, due to the substantial volume of data and files, as well as the network speeds at the time, this proved challenging or even unfeasible. This led to the concept of compressing the data prior to transmission. However, the methods available at the time were impractical due to the significant resources required (CPU time, RAM, etc.) and their adverse consequences (paging, elapsed time, interference with other processes, etc.).
Finding the Idea
A patent application has been filed for a technique for vertical (lossless) compression of statically structured data using run-length compression in columns (bytes) on the basis of self-sufficient units/matrices that are filled with data (records) of different formats (fixed/variable length). This is a method of data compression that was previously unknown in commercial IT and in various technical processes. The process is also efficient in scientific areas if the data is structured and has sufficient vertical redundancies, e.g. measurement data, data in the food industry (data due to verification obligations), etc.
SENSATIONAL K-EFFECTS AND EXTREME PERFORMANCE
Tests showed that typical data from payment transactions at that time could be compressed by up to 95%, in industry parts lists even by up to 98.5%. In the case of measurement data with a wide spread of (binary) measurement values (possibly even floating point values plus mantissa), over 65% was still achieved, e.g. in the weather service. The method can be implemented extremely efficiently as a software solution for data of this type, especially for the mainframe version coded in assembler.
FOUNDATION OF LIMES DATENTECHNIK GMBH - START OF THE DEVELOPMENT OF FLAM (1985)
In 1985, a company was founded at Bad Homburg v.d.H. AG to convert the patent into a marketable software product - initially for mainframe users (IBM, Siemens). The software product is given the name FLAM: Frankenstein-Limes-Access-Method. A prototype is created for presentation purposes: FLAM Version V1.0 for MVS and BS2000. This made it possible to “flambé” or “deflambé” data. All subsequent versions of the prototype FLAM Version V1.0 are fully downward compatible.
THE FIRST OFFICIAL FLAM VERSION V2.0 - WITH ACCESS METHODS
A universal version has been released that can be ported to all systems based on structured data records (measurement, financial and administrative data as well as print, parts and address lists, job logs, etc.). A data record interface that can be integrated into applications has been created to open FLAM as an access method for sequential and index-sequential files (e.g. ISAM, VSAM). From this version onwards, FLAM can also be used as a subroutine or replacement for I/O.
CONTRACT SIGNED WITH ONE OF THE LARGEST BANKS
The bank had more than 40 data centers with different platforms and database systems. Compression software was essential for the nightly synchronization of changes in these databases. This order still exists today. The range of applications within the Group has grown and continues to grow.
COMPATIBLE FLAM VERSIONS FOR 60 PLATFORMS - ONGOING DEVELOPMENT (SINCE 1986)
From 1986 to the present day, FLAM has been implemented for 60 compatible platforms. This has made it possible to declare FLAM the standard in various data exchange procedures, e.g. in clearing procedures. A large number of conversion problems had to be solved in order to ensure the compatibility of characters, fields, formats etc. as well as a transmission-compatible format of the FLAMFILE for the respective FT product/procedure. In payment transactions, this also included a format that remains printable despite compression and can be converted as a text file for file transfer (EBCDIC <=> ASCII).
In addition to the very many platforms required for the standard in payment transactions, switching systems (switches) in global mobile networks were added for the backup (local) and transmission of measurement data to central IT systems for the international clearing of measurement and billing data (billing records) from network operators and providers as well as their platforms for further processing, making FLAM the standard in the GSM network as well. FLAM quickly became widespread in the banking industry, not only among institutions, their associations and publishers, but also among service providers associated with the banking, stock exchange and credit sectors. The clearing of card operators and the handling of cards for orders and authentication were added to this.
FLAM users no longer need to know which computer system the “reader” has or will have in order to process a FLAMFILE created with FLAM. This means that FLAMFILEs can also be decompressed that were created on a system that no longer exists. When decompressing, FLAM uses the character encoding and data formatting that are standard for the respective system. It is also possible to control a converted output according to your own specifications. This also applies to archived original files from the “past of the IT world”, which are merely converted with FLAM.
SUPPLEMENTING FLAM WITH USER EXITS – FROM VERSION V2.X
User exits have been added to FLAM at the request of users. This makes it possible to access and individually influence the data at the points where input/output takes place. It is therefore not necessary to integrate FLAM into an application. Today, it is our various service provider interfaces that we offer our customers for optimum integration of FLAM here.
FLAM AS A SUBSYSTEM FOR MVS (IBM MAINFRAME) – FROM VERSION V2.X
To simplify the integration of FLAM into applications and make it completely transparent, a subsystem for accessing the DMS (Data Management System) of the MVS has been developed so that FLAM can be integrated like an I/O driver between the application and MVS (additional product). The parameter “SUBSYS=FLAM” in the DD statement is sufficient. Integration can take place in applications with sequential as well as index-sequential processing.
A major customer immediately used this for the daily processing of mass data - in the form of hundreds of VSAM files. In the process, some fundamental VSAM problems were solved en passant in favor of this access method. The effects in terms of saving CPU time, disk space and latency in a complex process were and are sensational. This is solely due to the fact that compression takes place in self-sufficient units (matrices), whereby even variable-length records are permitted. FLAM works with its own, highly optimized VSAM key management, which also allows repetitions in the application's original key.
CONCATENATING FLAMFILES – FROM VERSION V2.X
FLAM can link any number of files (like members in a library) to a FLAMFILE during compression. Of course, not only can each individual member be accessed, but also specific self-contained units (segments/data records) within a member. When transferring data (e.g. via FTP, RVS, FTAM), only individual files can usually be transferred. Thanks to this function in FLAM, it was and is possible to combine any number of small files into one file when creating the compressed FLAMFILE.
For example, one customer has easily compressed more than 16,000 files from an old archive with FLAM and concatenated them into a FLAMFILE that can be read compatibly on all systems/platforms supported by FLAM. This makes file transfer extremely efficient if several files are to be sent to one or more addresses at the same time.
It works automatically “end-to-end”, i.e. the client system of the sender is connected to that of the receiver. Functions such as decompression/compression in the FT/server can be suppressed. The receiver therefore only has to decompress the individual member “on demand”. It can use conversion functions for this. - Encryption/decryption was added later with AES (standard).
FLAM allows working IN BACKUP-RESTART MODE
A special application for encrypted data exchange required a solution in which the file to be transmitted, of any size, would not require the entire transmission to be repeated in the event of interruptions due to faults, as a fully integrable process including compression and encryption. By forming self-sufficient units, this was no problem with FLAM. You can fall back on such a self-sufficient unit that has already been compressed and encrypted and simply repeat the entire process.
HIGHLY EFFICIENT DYNAMIC COMPRESSION – FROM VERSION V3.X
After several years of research and development work, a highly efficient compression method MODE=ADC (Advanced Data Compression) for self-sufficient segments filled with any data (max. 64 KB net) was released, which enables compression in one step (straight forward). This is very important if such algorithms are to be integrated into access procedures.
Building on this, the access techniques were expanded to include a very efficient search procedure, so that compressed data can be searched without decompressing it. A bank uses these possibilities, for example, to select individual postings from a huge archive compressed with FLAM (recently even with SEPA transactions in XML format), whereby only different parts (field contents) of a posting need to be known for the search call. For DTA files (old format from German payment transactions), this bank already had a special solution with which it was possible to search very efficiently for postings in the archive created with FLAM on magnetic tapes. This was still vertically compressed and not yet encrypted with AES.
SERIAL AND PARALLEL SPLITTING
In order to limit the amount of data to be transferred at once for large files and to make better use of parallel transmission paths, parallel and serial splitting of FLAMFILES was introduced at the customer's request when they were created.
INTEGRATION OF AES – FROM VERSION 4.0
AES encryption has been integrated into FLAM by default. In this process, the self-contained segments are encrypted with derived keys in such a way that, despite the encryption, the segments can be accessed, decrypted and decompressed - just like you would with index-sequential processing. Various checks are performed, for example using MACs (cryptographic checksums). The input data can also be copied 1:1 into such a segment if the user wishes to merely encrypt. Members of a concatenated FLAMFILE can be treated analogously. Search procedures can also be applied in such a way that decrypted (clear) segments are not used.
ACCESSIBLE TO EVERY KEY MANAGEMENT VIA FKME – STARTING WITH VERSION 4.1
It is possible to easily adapt any encryption method and key management system. The FKME (FLAM Key Management Extension) is used for this purpose. This also makes it possible to link FLAM with an existing HSM (Hardware Security Module) in the respective system. If the user needs to change the key and/or the encryption method, it is sufficient to restrict the change to the header of the FLAMFILE. The encrypted segments/members including MACs only need to be copied. A PCIDSS-compliant solution for ordering debit and credit cards, for example, was created via this service provider interface and is now in use worldwide.
FKMS (FLAM KEY MANAGEMENT SYSTEM) – VERSION V1.0
The FKMS add-on product was developed to solve the problems of key generation, management and distribution (authentication) for customers who do not operate their own cryptographic infrastructure. The FKMS provides the keys for a specific FKME on the basis of a simple role concept.
INTEGRATION OF ENCRYPTION TECHNOLOGY IN FLAM-SUB – FROM VERSION V4.4
This procedure can be integrated into an application via the FLAM subsystem on z/OS, for example; FLAM offers the corresponding interfaces on other platforms. This provides a perfect solution that ensures that plain text data does not leave the respective application when it is created and is also not decrypted outside an application. It is therefore only ever necessary to decrypt and decompress when the plaintext data is actually needed within the respective application, without the application being aware of this. This is the most secure solution for end-to-end security. The user thus (over)fulfills the requirements of the PCIDSS (Payment Card Industry Data Security Standard).
LOGICAL ELEMENTS, NETWORK CAPABILITY, COMPONENTS AND OPEN STANDARDS – FROM VERSION 5.0/1
By generalizing the access method to elements, FLAM makes it possible to understand logical data formats (XML, ASN1, SWIFT, etc.) for the first time - as well as physical file formats. It also becomes possible to search for elements such as a bank sort code in FLAM data or to convert between logical formats (SEPA, SWIFT, DTA). The network capability separates local compression and/or encryption from the remote storage of data in FLAM archives (secure cloud). The component model enables the rapid exchange of procedures (suites), reading from different sources (files, streams, databases), transmission via different networks (IP, SSL/TLS, MQ) and the storage of FLAM data in different repositories (file, cluster, database).
By supporting open standards such as UNICODE, GZIP, OpenPGP and Base64 for the original data, FLAM5 can read and write significantly more data formats than before. In addition to the various I/O methods, any number of different conversions can be combined with a final formatting of the data. For example, in one job step under z/OS it is possible to read a file block-oriented locally from the USS or remotely via SSH from another system, convert the data from Base64 to a binary representation, decrypt it with OpenPGP, decompress it with BZIP2, change the character set from UTF-16LE to IBM1141 and have the whole thing written with ASA control characters to a VBA or FBA file under MVS. FLAM does not require a temporary file and takes each byte/character only once, which saves a lot of computing time and temporary memory and at the same time increases security.
With the FLUC-FS, we offer all these conversion options transparently for use as a file system in user space, even on the small platforms under Unix, where you can edit the data clearly at a mount point and physically, but e.g. PGP files are written to the disk, which can be managed normally in this physical directory.
NEW FLAM5 ARCHIVES WITH INSERT, UPDATE, DELETE AND SEARCH – FROM VERSION 5.2 1
With our new FLAM5 archives, we have integrated the previous full-access solution with FLAM into our archive format. The new format now represents its own incremental file system (each change leads to a new version) that works with three different keys. This allows for the separation of access to the table of contents, the index of individual members (search), and the actual data. An additional parameter string can be used to restrict access to members, formats, and columns, allowing for different views of the data. This feature facilitates secure third-party use of the data in the cloud by anonymizing certain columns with sensitive data (credit card number, personal data)..
The new archives provide full access for insert, update, delete, and select operations on individual records and their columns.The entire solution has been developed for use in and with the cloud, ensuring the continued benefits of FLAM for our customers.We continue to reduce data volumes and data access, increase security, integrate seamlessly, and significantly reduce costs.
In conclusion
The basis of all these developments is and remains the use of autarke Einheit, which started it all in 1985, because vertical (column-wise) compression of structured data would otherwise not have been practicable.