Сравнительное исследование технологий доступа к реляционным БД на основе нестандартных моделей данных

Содержание

Слайд 2

Характеристики информационных систем
Объем кода
Сложность модели данных
Масштабируемость
Возможность повторного использования функциональности
Конфигурируемость приложения
Возможность изменять логику

Характеристики информационных систем Объем кода Сложность модели данных Масштабируемость Возможность повторного использования
в режиме реального времени
Задачи, решаемые при проектировании системы
Выбор подхода к хранению данных
Разработка объектной модели приложения
Описание процессов и бизнес-правил

Введение

Слайд 3

I. Сравнение технологий доступа и моделей данных по производительности, гибкости и простоте

I. Сравнение технологий доступа и моделей данных по производительности, гибкости и простоте
реализации
Подходы к хранению данных в БД
«Плоские» модели
«Метамодели»
Адаптивные ОМ
ММ типа NetCracker
Нестандартные объектные модели
Технологии доступа
JDBC
EJB 2.x (Entity)
ORM (JPA etc)
II. Исследование «нестандартной» однотабличной модели данных

Постановка задачи

Слайд 4

Реализованные подходы и технологии

Дополнительные возможности
Кэширование (на стороне Application-сервера)
Перенесение части нагрузки на сервер

Реализованные подходы и технологии Дополнительные возможности Кэширование (на стороне Application-сервера) Перенесение части
БД
Денормализация

Слайд 5

Субъективные тесты (1 пользователь)
WEB-приложение, сценарий типа «выполнить следующие действия с данными»
Формализованные нагрузочные

Субъективные тесты (1 пользователь) WEB-приложение, сценарий типа «выполнить следующие действия с данными»
тесты
Поиск объектов и отображение страницы параметров
Поиск по идентификатору объекта
Обход дерева иерархий
Переходы между объектами по ссылкам
Результаты
Время загрузки параметров и открытия страницы
Количество обращений в базу при выполнении «стандартных» операций

Методика тестирования производительности

Слайд 6

Enterprise JavaBeans 2.0
Стандартная реализация
Усовершенствование в виде кэширования метаданных на стороне Application-сервера
Полное кэширование

Enterprise JavaBeans 2.0 Стандартная реализация Усовершенствование в виде кэширования метаданных на стороне
данных на сервере
Java Persistence API
Реализация без дополнительных настроек
Усовершенствование настроек для обеспечения наибольшей производительности

Исследуемые реализации

Слайд 7

Результаты

Результаты

Слайд 8

Результаты

Сложность реализации

Результаты Сложность реализации

Слайд 9

В среднем технология JPA обеспечивает несколько меньшую производительность по сравнению с EJB2.0
Однако

В среднем технология JPA обеспечивает несколько меньшую производительность по сравнению с EJB2.0
в большинстве случаев это различие несущественно
В некоторых обстоятельствах JPA превосходит EJB по быстродействию
Реализация технологии EJB намного более затратна в терминах объема и сложности кода
JPA «выигрывает» засчет простоты реализации и множества утилит, упрощающих разработку
EJB позволяет вносить усовершенствования на уровне кода программируемых модулей
В то время как в JPA все это делается исключительно настройками

Выводы

Слайд 10

Модель с единственной таблицей
Любой объект, тип, атрибут, бизнес-правило представлены одной записью в

Модель с единственной таблицей Любой объект, тип, атрибут, бизнес-правило представлены одной записью
таблице
Цель
Введение дополнительных уровней абстракции для повышения гибкости приложения и Service Availability
«Вложение» моделей друг в друга, исследование совместимости моделей данных
Влияние степени нормализации данных на быстродействие и сложность приложения

«Нестандартные» метамодели

Слайд 11

Plain DB + JDBC
Data Warehouse
Plain DB + JPA
Social Networks
Metamodels + JPA
Bookstore
E-Shop
Metamodels +

Plain DB + JDBC Data Warehouse Plain DB + JPA Social Networks

Telecom OSS (NetCracker)
Document Workflow Framework (Adaptive Object Model)
Search Engine (Key-Value model)

Типичные примеры ИС и предлагаемые решения

Слайд 12

Разработано несколько реализаций ИС на основе EJB 2.x, JPA и JDBC
Введены усовершенствования

Разработано несколько реализаций ИС на основе EJB 2.x, JPA и JDBC Введены
реализаций
Кэширование EJB
Дополнительные настройки JPA
Проведено испытание производительности реализаций автоматическими нагрузочными тестами
Результат - данные для многокритериального анализа в задаче принятия решения
Сделаны выводы о применимости технологий для различных классов ИС
Рассмотрена на уровне идеи абстрактная однотабличная модель данных
Рассмотрены методические аспекты таких моделей
Направление дальнейшего исследования – получение численных результатов испытаний подобных моделей

Заключение