Разработан высокоскоростной WEB OLAP cервер проводок и новый генератор отчетов, обеспечивающий доступ к нему из среды "Турбо9" - проект "ОтчетыOlapСервера".
Постановка задачи
- Создать новый сервер и генератор отчетов, работающий наряду с существующим в "Турбо9", для решения задач плохо решаемых существующим сервером отчетов. При этом:
- Ускорить построение отчетов не менее чем в 10 раз.
- Ускорить досвязывания и полную начитку данных для сервера расчетов в несколько раз.
- Минимизировать время пересвязываниий журналов при изменении аналитики.
- Создать новую архитектуру изоляций, обеспечивающую исключение свопинга оперативной памяти.
- Расширить арифметику на сервере. Реализовать «серверные пользовательские показатели».
- Уменьшить объем передаваемой на клиентские рабочие места информации за счет фильтрации ненужных строк построенного отчета не на клиенте, а на сервере.
- Снизить количество инсталляций серверов проводок, увеличив число одновременно обслуживаемых одним сервером проводок клиентов в несколько раз
- Реализовать единый протокол обмена информацией с новым сервером проводок: как внутренний (с клиентом Турбо 9), так и внешний (с внешними приложениями), чтобы в дальнейшем облегчить экспорт информации.
- API к новому серверу расчетов должно быть реализовано как WEB Service для облегчения создания WEB приложений в будущем.
Реализовано
- Реализован OLAP сервер расчетов с http: интерфейсом, доступным из любого WEB приложения. Сервер написан на языке программирования С++. Операционная система – Linux.
- Реализован «генератор отчетов» как прикладной проект Турбо 9 «ОтчетыOLAPСервера» на языке ТБ.Скрипт. Создан новый тип записи и картотека для хранения созданных экземпляров этих записей - запросов к новому серверу проводок. Написана функция, позволяющая получать результат построения отчета из программ написанных на языке ТБ.Скрипт.
- Скорость построения тестовых отчетов на сервере без отрисовки отчета на клиентском рабочем месте показывает ускорение от 40 до 72 раз по сравнению со скоростью построения аналогичных отчетов на версии штатного сервера расчетов используемого клиентом (ехе 602).
- Скорость построения тестовых отчетов с отрисовкой отчета на клиентском рабочем месте выше от 3 до 40 раз.
- Полное пересвязывание (начитка) базы в 16 раз быстрее штатной (ехе 602).
- Пересвязываний при изменении аналитики «задним числом» не возникает.
- Реализованы вычисления формул на сервере и вывод их в «серверные пользовательские показатели».
- Реализованы 3 уровня фильтров на сервере:
Фильтр на индексы.
Фильтр на проводки с возможностью разыменования полей проводок.
Фильтр на строки отчета – реализованный на сервере аналог «удаления строк» отчета на клиенте.
- За счет хороших алгоритмов распараллеливания сервер одновременно обслуживает без заметной потери производительности столько клиентских запросов, столько ядер физически имеет процессор сервера расчетов. Замедление по сравнению с однопользовательским режимом примерно 20%.