Holos es un influyente producto OLAP (procesamiento analítico en línea) de la década de 1990. Desarrollado por Holistic Systems en 1987, el producto permaneció en uso hasta alrededor de 2004.
Concepción
El producto Holos sucedió a una generación anterior de productos de mainframe como System-W . Fue el primero en utilizar una base de datos SQL estándar de la industria (a diferencia de uno propietario), y también el primero en utilizar la nueva GUI PC para la interfaz de usuario. [ cita requerida ] Al separar físicamente el procesamiento numérico de la interfaz de usuario, el modelo del producto fue inmediatamente cliente / servidor, aunque ese término no entró en uso hasta algún tiempo después. De hecho, el modelo se describió como procesamiento cooperativo hasta que el término cliente / servidor se volvió omnipresente. El modelo cliente / servidor utilizado para Holos fue inicialmente para un cliente muy "ligero", ya que no estaba claro entonces (1986/7) que las PC iban a ser tan comunes, y la mayoría seguía ejecutando MS-DOS.
De hecho, era técnicamente posible ejecutar el sistema utilizando un terminal "tonto" con funcionalidad reducida en las primeras versiones, aunque, salvo en el entorno de prueba de Holistic, esto rara vez se hacía. Con el tiempo, debido al aumento de la popularidad de las PC, su mayor potencia y la disponibilidad de una versión estable y más funcional de Microsoft Windows, se agregó funcionalidad adicional al cliente, principalmente en forma de ayudas de desarrollo. Además de los servicios de datos, Holos Server proporcionó servicios de cálculo y lógica empresarial. También brindó servicios complementarios al Cliente Holos, lo que significó que el procesamiento interno asociado con el redactor del informe, la hoja de trabajo, etc., se distribuyó entre los dos componentes.
Arquitectura
El núcleo de Holos Server era una máquina virtual de inteligencia empresarial (BI) . El lenguaje Holos (HL), utilizado para impulsar aplicaciones del lado del servidor, se compiló en un código de instrucción suave y se ejecutó en esta máquina virtual (similar en concepto a Java en sistemas más modernos). La máquina virtual era totalmente tolerante a fallos, utilizaba internamente un manejo estructurado de excepciones y proporcionaba una interfaz de depuración. El depurador estuvo a nivel de máquina virtual hasta bastante tarde, después de lo cual también admitió el acceso a nivel de fuente.
Los datos OLAP se manejaron como un tipo de datos centrales de HL, con una sintaxis específica para acomodar conceptos de datos multidimensionales y una libertad programática completa para explorar y usar los datos. Esto lo hizo muy diferente de la tendencia de la industria de motores OLAP y SQL basados en consultas. Por el lado positivo, permitió una flexibilidad asombrosa en las aplicaciones a las que podría aplicarse. En el lado negativo, significa que las configuraciones de 3 niveles nunca se implementaron con éxito ya que el procesamiento tenía que estar cerca de los datos en sí. Esto obstaculizó la implementación a gran escala para muchos clientes y el uso de datos OLAP de otros proveedores. En realidad, sus propios tiempos de acceso a datos fueron probablemente algunos de los más rápidos: a nivel de celda individual; tenían que serlo para que fueran prácticos. Sin embargo, al recuperar datos masivos de servidores que no cooperaron o datos de otros proveedores, las consultas no se pudieron optimizar en su totalidad. Su propio acceso a datos utilizó una memoria caché compartida en toda la máquina.
Idioma
El lenguaje Holos era un lenguaje muy amplio, ya que cubría una amplia gama de declaraciones y conceptos, incluido el sistema de informes, las reglas comerciales, los datos OLAP, los datos SQL (utilizando la sintaxis SQL incrustada dentro de la HL de alojamiento), las propiedades del dispositivo, el análisis, pronóstico y minería de datos. Incluso admitió elementos para permitir la auto documentación y la autoverificación. Colocar todas estas áreas en una base común y permitirles cooperar compartiendo datos, eventos, etc., fue clave para la cantidad de posibilidades que resultaron. Por ejemplo, el redactor de informes admitía la entrada y la salida de datos, además de gráficos interactivos y un mecanismo de eventos completo para devolver información sobre los datos visualizados a los controladores de eventos. Además, los informes y los datos eran entidades independientes, lo que permitía aplicar el mismo informe a diferentes datos siempre que se describiera con metadatos similares. Esto significó que cuando se acuñaron términos como EIS y MIS , la norma de la industria eran las "presentaciones de diapositivas", es decir, transiciones preprogramadas entre vistas, mientras que Holos proporcionaba un desglose basado en datos, es decir, sin vistas ni enlaces preprogramados. Las transiciones podrían depender de los valores y las tendencias de los datos, junto con la lógica empresarial disponible.
Almacenamiento OLAP
Holos Server proporcionó una serie de mecanismos de almacenamiento diferentes, pero compatibles, para su arquitectura de múltiples cubos: memoria, disco, SQL. Por lo tanto, fue el primer producto en proporcionar "OLAP híbrido" ( HOLAP ). Proporcionó un mecanismo muy versátil para unir cubos, independientemente de su tecnología de almacenamiento, dimensionalidad o metadatos, y finalmente se le otorgó una patente de EE. UU. (Denominada COA: arquitectura OLAP compuesta, patente de EE. UU. 6.289.352, patente de EE . UU . 6.490.593 ). El mecanismo COA permitió combinaciones de las siguientes transformaciones centrales: los metadatos de un cubo se anularon (es decir, hacer que un cubo se viera diferente), lo que permitió que los cubos se unieran uno al lado del otro, en un 'estante' (es decir, aumentando el dimensionalidad por uno), admitiendo operadores similares a SQL para plegar una o más dimensiones en un cubo, o 'apilar' un 'bastidor' sobre otro. La frase 'rack and stack' se usaba comúnmente en ese momento. COA también acomodó otros cubos COA sin problemas, y varios clientes lo usaron a múltiples profundidades.
Como ejemplo práctico, el problema de las dimensiones de tiempo múltiples era bien conocido en las aplicaciones de BI: ¿diseña los datos para mostrar una comparación de año a año (normalmente requiere dimensiones de tiempo de año y mes por año separadas), o para mostrar tiempo continuo (por lo general, requiere una única dimensión de tiempo con meses que abarcan dos o más años). La elección generalmente se basaba en si deseaba ver una tendencia o una comparación interanual. Con COA, los datos podrían diseñarse de acuerdo con la eficiencia (localidad, ciclo de vida o mantenimiento), ya que la vista requerida por cualquier aplicación dada se lograría utilizando COA, que era solo una construcción de metadatos y no requería cambios de datos físicos.
Un aspecto novedoso de esto fue una función de "pila" que permitía apilar cubos de lectura / escritura sobre cubos de solo lectura. Las operaciones de lectura en el cubo virtual general visitaron ambos 'racks' (primero la parte superior y luego la inferior), mientras que las operaciones de escritura solo afectaron a la parte superior. El mecanismo similar a una válvula resultante encontró muchas aplicaciones en el intercambio de datos, la predicción hipotética y la agregación de datos lentos basados en SQL. Dado que la sobrecarga de la unión era pequeña, no era raro tener pilas de 7 niveles de profundidad y terabytes de unión de datos OLAP reales. Aproximadamente en V8.5, Holos Server implementó un administrador de bloqueos jerárquico, que permite el anidamiento de bloqueos OLAP de grano fino y grueso, y un control total de las transacciones.
Reglas del negocio
La lógica de negocios admitía cálculos multidimensionales completos, el ordenamiento automático de reglas utilizando análisis de flujo de datos estáticos y la identificación y solución de ecuaciones simultáneas. Las reglas trataron todas las dimensiones de manera ortogonal. El proceso de agregación no distinguió entre cálculos de suma o promedio simples y cálculos no conmutativos más complejos. Ambos se pueden aplicar a cualquier miembro de dimensión. El proceso permitió que los niveles de agregación (es decir, los niveles de cálculo que comienzan con los datos base (nivel 0) y continúan hasta el gran total general) se pre-almacenan individualmente o se dejan calcular a pedido.
Cliente Holos
El cliente de Holos era tanto un vehículo de diseño como de entrega, y esto lo hacía bastante grande. Alrededor del año 2000, el lenguaje Holos se hizo orientado a objetos (HL ++) con el fin de permitir la sustitución del cliente Holos con un producto Java o VB personalizado. Sin embargo, la empresa nunca se vendió en esto, por lo que el proyecto fue abandonado.
Uno de los mayores fallos fue no proporcionar una interfaz de cliente ligero al servidor Holos, y esto debe haber contribuido a la desaparición del producto. Aunque se vendió un juego de herramientas HTML , se consideró torpe y restringido. Cuando se desarrolló un mecanismo de cliente ligero real, ya era demasiado tarde y nunca llegó al mercado.
Despliegue
Antes de su desaparición, el producto Holos Server se ejecutaba bajo Windows NT (Intel y Alpha), VMS (VAX y Alpha), además de alrededor de 10 versiones de UNIX, y accedía a más de media docena de bases de datos SQL diferentes. También fue portado a varios lugares diferentes, incluido el japonés.
Empresa
Holistic Systems fue comprada por la empresa de hardware Seagate Technology en 1996. Junto con otras empresas como Crystal Services , se utilizó para crear una nueva empresa subsidiaria llamada Seagate Software . Solo quedaron Holistic y Crystal, y Seagate Software pasó a llamarse Crystal Decisions . Holistic y Crystal tenían modelos de venta muy diferentes. La venta promedio del Producto Holos en los Estados Unidos superó los $ 250,000 y fue vendido principalmente a compañías Fortune 500 por una fuerza de ventas directa. El modelo de ventas de Crystal se basó en un producto "retractilado" que Crystal Reports vendía principalmente a través de revendedores. Dado que Crystal fue adquirida antes de Holistic, la alta dirección en el ámbito de las ventas y el marketing procedía principalmente de esa organización. Consideraron que toda la gama de productos debería venderse a través de terceros y durante un período de tiempo desmantelaron la fuerza de ventas directa culminando en una caída significativa en las ventas del Producto Holos. Posteriormente, después de algunas luchas internas y discusiones sobre la estrategia del producto, el equipo principal de desarrollo de Holos finalmente comenzó a irse alrededor del año 2000, y Business Objects finalmente se hizo cargo de Crystal Decisions en 2004. Después de la adquisición, el soporte para Holos se subcontrató a Raspberry Software. , que fue creado por ex empleados de Crystal Decisions.