Glasswall’s SISL Splitter

Harry Georgiou
Glasswall Engineering
3 min readDec 2, 2019
Seamlessly deconstructing, validating and reconstructing files

How Glasswall uses custom file types to represent file internals:

When a file of any file type is exported, the file is deconstructed and a compressed file is created. The compressed file contains a group of files, each of which are an intermediate representation of the document structure. These files can be used upon execution of Glasswall import to generate a file visually identical to the original input file, but structurally verified.

SISL is a bespoke and lightweight way of representing the contents that make up a file. This is one of the file types Glasswall uses throughout the export/import process, by deconstructing the file internals and serialising into SISL files. So, essentially SISL is an intermediate format like JSON, XML etc.

Glasswall is able to ensure that the file is only regenerated if all of Glasswall’s verification and security checks have been passed. Additionally, if there are any structural defects in any of the SISL or XML files that do not conform to the SISL or XML specifications, the import would not be successful. This will result in the report file presenting the failure and a file will not be regenerated from the collection of SISL or XML files.

What is the Glasswall SISL Splitter and what is its purpose?

The purpose of the SISL Splitter is to be able to be able to split SISL files into multiple files of a much smaller size. Doing so, presents a potential increase in flexibility and performance with what can be done with the package of fragmented files.

Furthermore, a very important relationship between Glasswall’s export and SISL Splitter is that Glasswall provides the ability to deconstruct files down across multiple levels, validates and reconstructs them again during the import process. The export deconstructs the file to its core components, then the SISL Splitter takes it a step further by splitting out the SISLs into multiple smaller files. There are many cool things that can be done at the core level. Below are some examples of how useful the SISL Splitter can be in the end to end process.

The SISL Splitter consists of two main functionalities which are ‘Fragment’ and ‘Defragment’. The ‘Fragment’ functionality decompresses the Glasswall exported package and splits out the SISLs when the file is above a specified file size. Then, the ‘Defragment’ functionality merges the files which have been split out into multiple files, back to one. Further to this, the SISLs are then packaged into a compressed file.

The diagram below is an end to end representation of how the SISL Splitter fits into Glasswall.

Example use-cases which demonstrate the importance of using the SISL Splitter:

  1. Processing files of large size across a network can be slow and resource intensive. However, with the use of the SISL Splitter, larger files are being fragmented, hence reduced in size. This allows for multiple files to be transferred across the network in parallel.
  2. There may be situations when machine processing limitations can result in difficulties or inabilities to be able to process large files. Therefore, the utilisation of the SISL Splitter can be of massive advantage in this scenario as no matter the limitations of the machine, the SISL files can be split to a desired size.

Stop it. Block it. Glasswall it.

--

--

Harry Georgiou
Glasswall Engineering

I am a technical and business enthusiast, with a passion for designing and building robust, revolutionary software solutions.