Holos is an influential OLAP (Online Analytical Processing) product of the 1990s. Developed by Holistic Systems in 1987, the product remained in use until around 2004.
The Holos product succeeded an older generation of mainframe products such as System-W. It was the first to use an industry standard SQL database (as opposed to a proprietary one), and also the first to use the new GUI PC for the user interface. In physically separating the number crunching from the user interface, the product was immediately client/server, although the term didn't come into use until some time later. In fact the process was described as cooperative processing at the time as client/server was not a current term at that time. The client/server model used for Holos was initially for a very "light" client as it was not clear at that time (1986/7) that PCs were going to be so commonplace and most were still running MS-DOS.
In fact it was technically possible to run the system using "dumb" terminal with reduced functionality in early versions although save for in Holistic's test environment this was rarely if ever done. In time due to the increased popularly of PCs and their increased power and the available of a stable and more functional version of Microsoft Windows additional functionality was added to the client end mostly in the form of development aids. In addition to data services, the Holos Server supplied business logic and calculation services. It also provided complementary services to the Holos Client which meant the internal processing associated with the report writer, worksheet, etc., was distributed between the two components.
The core of the Holos Server was a business intelligence (BI) virtual machine. The Holos Language (HL) was compiled into a soft instruction code, and executed in this virtual machine (similar in concept to Java in more modern systems). The virtual machine was fully fault-tolerant, using structured exception handling internally, and provided a debugger interface. The debugger was machine-level until quite late on, after which it also supported source-level access.
OLAP data was handled as a core data type of HL, with specific syntax to accommodate multidimensional data concepts, and complete programmatic freedom to explore and utilise the data. This made it very different from the industry trend of query-based OLAP and SQL engines. On the upside, it allowed amazing flexibility in the applications to which it could be applied. On the downside, it mean that 3-tier configurations were never successfully implemented since the processing had to be close to the data itself. This hindered large-scale deployment to many clients, and the use of OLAP data from other vendors. In reality, its own data access times were probably some of the fastest around—at the individual cell level; they had to be in order to be practical. However, when fetching back bulk data for non-cooperating clients, or data from other vendors, the queries could not be optimised as a whole. Its own data access used a machine-wide shared memory cache.