На главную
Обо мне
Меня зовут: Николай Воронков
Email: job@voronkov.org
Skype: nik-voronkov
Работаю: Freelancer
Мое портфолио (по категориям)
MS SQL / Oracle / mySQL
ASP.NET / Silverlight
C# / PHP
Adobe InDesign (client/server)
SSRS / SSAS
Wordpress

Проект DV-6

Заказчик: Национальное агенство промышленной информации (НАПИ)
Тип проекта: Коммерческий интернет-проект
Моя позиция в проекте:
  • Архитектор баз данных
  • Архитектор программных решений
  • Программист
  • Операционные системы: Windows 2012
    Базы данных: MS SQL, MS Analisys Services (OLAP cubes)
    Языки: C#, SQL, MDX, XML, HTML, JavaScript
    Технологии: ASP.NET, Devexpress ASP.NET components, jQuery
    Языки интерфейса: English, Русский
    Среда разработки: MS Visual Studio 2010, MS SQL Server Management Studio

    Заказчик проекта занимается сбором информации по различным направлениям: продажи автомобилей, грузовиков, автобусов, прицепов; анализ динамики макроэкономических показателей и т.д., данные хранятся в обычных базах данных, но для этого проекта производится их объединение в единое хранилище в формате MS Analisis Services (OLAP-кубы). Цель проекта – обеспечить доступ к данным через интернет, с помощью броузера, не потеряв при этом функциональности, которую может обеспечить MS Excel.

    Перед началом работ над проектом мной был произведен анализ рынка программных компонентов и технологий, которые бы могли в удобном виде показывать содержание OLAP-куба, а также на основе этих данных строить графики. Мной были рассмотрены следующие варианты:

  • Saiku
  • ASP.NET – Developer Express
  • Telerik
  • Radar Soft

    Из этого набора только компоненты от Developer Express смогли удовлетворить высоким требованиям заказчика проекта.

    Архитектура проекта.

  • База данных MS SQL хранит основные объекты системы: данные о пользователях, открытых сессиях, сведения о структуре куба, информацию о базах данных продаж, настройки компонентов (типы графиков, описание иерархий различных treeviews), словари сообщений и пунктов меню на двух языках и т.д.
  • Проект может подключаться только к одному OLAP-кубу, который регулярно обновляется (производится загрузка новой версии и переключение на нее программного обеспечения с помощью конфигурационного файла).
  • Работу интерфейса в броузере обеспечивает проект ASP.NET с помощью компонентов от компании Devexpress.

    Основу проекта составляет блок управления таблицей куба.

    Куб имеет в своем составе несколько сотен полей, поэтому они разбиты на логические блоки, структура этих блоков описана с помощью XML и хранится в базе данных проекта. Пользователь может иметь доступ не ко всем блокам, а только к части. При наличии доступа к нескольким блокам, происходит объединение полей из которых эти блоки состоят. При запросе данных пользователь указывает нужные ему поля и к кубу строится динамический запрос на языке MDX.

    Управление таблицей куба включает в себя:

  • Выделение фрагмента таблицы для построения графиков.
  • Экспорт всей таблицы или выделенного фрагмента в MS Excel.
  • Произвольное перемещение полей (dimensions) в область строк или столбцов.
  • Перемещение блока данных (measures) в столбцы или строки.
  • Установка фильтров по выбранным полям.
  • Сортировка данных по полю.
  • Свертывание и развертывание таблицы на различных уровнях.
  • Построение сложных запросов на основе окна управления фильтрами.
  • Построение пяти вариантов вычисляемых полей.
  • Отображение части значений полей (поле [Прочие]).
  • Сохранение и восстановление конфигурации таблицы.

    Построение графиков

    Программное обеспечение от Devexpress имеет в своем составе компонент WebChart для построение графиков. Графики могут строиться программно и с помощью подключения к компонентам PivotGrid и GridView, которые содержат данные в табличной форме. Во втором случае построение графиков носит тривиальный характер, так как не требует построения серий и заполнения их значениями, но для данного проекта этот подход оказался неприемлемым, так как графики необходимо было строить по выделенному блоку данных в таблице, для технологии ASP.NET компонент AspxPivotGrid не имеет встроенной возможности выделения области.

    Механизм построения графиков в проекте имеет следующие возможности:

  • Поддерживается около 20 видов графиков
  • График может иметь любое количество серий
  • При построении графика строки и колонки могут меняться местами
  • График можно развернуть
  • Для узлов графика можно отображать различные аргументы, при этом активируется окно подсказки с детальным описанием узла на котором стоит указатель мыши
  • Можно управлять положением легенды графика
  • Для круговых графиков возможно отображение данных в процентах
  • Возможно построение дополнительного графика со второй осью
  • Вывод графика в файл (формат PNG).

    Цветовой анализ

    Таблица куба имеет дополнительную возможность для анализа – цветовой анализ, концепция которого разработана заказчиком проекта. Анализируются все данные таблицы, строки и столбцы с итогами исключаются. Если включена фильтрация данных по количеству (функция [Прочие]), то имеется возможность оставить или убрать запись [Прочие] из анализа. Если таблица имеет несколько полей с данными, то можно использовать только одно по выбору, поля с данными должны находиться в столбцах таблицы. Каждой строке присваивается определенный цвет, набор возможных цветов хранится в системном реестре.

    При анализе производится сортировка по убыванию в рамках столбца, если в записи присутствует несколько заголовков полей, то группировка для сортировки производится по последнему полю.
    Результаты анализа можно экспортировать в MS Excel.

    Поиск по ВИН

    ВИН – идентификационный номер транспортного средства. Заказчик проекта поддерживает базы данных по продажам транспортных средств, базы разбиты по годам и типам транспортных средств. Эта часть проекта позволяет осуществить поиск по набору кодов ВИН в различных базах данных. Результаты поиска помещаются в таблицу, возможна группировка таблицы по любому набору полей. После поиска можно увидеть коды, которые не были найдены в выделенных базах данных. Результаты можно экспортировать в MS Excel.

    Как это работает.

    Данные о продажах транспортных средств хранятся в таблицах базы данных MS SQL. Таблицы разделены по годам и типам транспортных средств. Таблицы могут иметь различную структуру в зависимости от типа транспортного средства с набором общих полей. В системном реестре хранится список доступных таблиц и их структура. При запросе данных из нескольких таблиц с помощью динамического SQL производится объединение информации в одну временную таблицу, которая содержит полный набор полей из всех просматриваемых таблиц. Во избежание ошибок, при построении временной таблицы просматриваются системные таблицы базы данных MS SQL, чтобы удалить поля, которые могут быть ошибочно указаны для анализируемых таблиц.

    Управление пользователями

    Проект имеет следующие возможности по управлению пользователями:

  • Отображение списка пользователей на основе фильтров
  • Добавление, коррекцию и удаление пользователя
  • Смену пароля пользователя
  • Присвоение пользователю ролей, которые позволяют иметь доступ к различным частям проекта
  • Присвоение пользователю прав для доступа к базам данных кубов и поиска по VIN
  • Авторизация пользователя через СМС
  • Указание сроков начала и завершения обслуживания аккаунта пользователя
  • Проставление ограничений пользователю для доступа на основе данных куба (география, даты, технические характеристики и т.д.)

    Доступ к проекту осуществляется с помощью сессий. Пользователь может открыть только одну сессию, в рамках сессии, в одном окне броузера он может открыть несколько вкладок с данными, данные о текущей сессии хранится в базе данных проекта. При отсутствии активности пользователя в течение определенного времени его сессия закрывается и для доступу к проекту пользователю необходимо пройти авторизацию повторно.
  • Оставьте комментарий: