Харичкин Александр МФТИ(ГУ) 16 июня 2011
Характеристики информационных систем Объем кода Сложность модели данных Масштабируемость Возможность повторного использования функциональности Конфигурируемость приложения Возможность изменять логику в режиме реального времени Задачи, решаемые при проектировании системы Выбор подхода к хранению данных Разработка объектной модели приложения Описание процессов и бизнес-правил
I. Сравнение технологий доступа и моделей данных по производительности, гибкости и простоте реализации Подходы к хранению данных в БД «Плоские» модели «Метамодели» Адаптивные ОМ ММ типа NetCracker Нестандартные объектные модели Технологии доступа JDBC EJB 2.x (Entity) ORM (JPA etc) II. Исследование «нестандартной» однотабличной модели данных
Технология\ Подход Relational DBMetaModel («NetCracker») MetaModel (Other) JDBC+–+/- EJB 1.x, 2.x–+– JPA++- Дополнительные возможности Кэширование (на стороне Application- сервера) Перенесение части нагрузки на сервер БД Денормализация
Субъективные тесты (1 пользователь) WEB-приложение, сценарий типа «выполнить следующие действия с данными» Формализованные нагрузочные тесты Поиск объектов и отображение страницы параметров Поиск по идентификатору объекта Обход дерева иерархий Переходы между объектами по ссылкам Результаты Время загрузки параметров и открытия страницы Количество обращений в базу при выполнении «стандартных» операций
Enterprise JavaBeans 2.0 Стандартная реализация Усовершенствование в виде кэширования метаданных на стороне Application-сервера Полное кэширование данных на сервере Java Persistence API Реализация без дополнительных настроек Усовершенствование настроек для обеспечения наибольшей производительности
Сложность реализации
В среднем технология JPA обеспечивает несколько меньшую производительность по сравнению с EJB2.0 Однако в большинстве случаев это различие несущественно В некоторых обстоятельствах JPA превосходит EJB по быстродействию Реализация технологии EJB намного более затратна в терминах объема и сложности кода JPA «выигрывает» засчет простоты реализации и множества утилит, упрощающих разработку EJB позволяет вносить усовершенствования на уровне кода программируемых модулей В то время как в JPA все это делается исключительно настройками
Модель с единственной таблицей Любой объект, тип, атрибут, бизнес-правило представлены одной записью в таблице Цель Введение дополнительных уровней абстракции для повышения гибкости приложения и Service Availability «Вложение» моделей друг в друга, исследование совместимости моделей данных Влияние степени нормализации данных на быстродействие и сложность приложения
Plain DB + JDBC Data Warehouse Plain DB + JPA Social Networks Metamodels + JPA Bookstore E-Shop Metamodels + … Telecom OSS (NetCracker) Document Workflow Framework (Adaptive Object Model) Search Engine (Key-Value model)
Разработано несколько реализаций ИС на основе EJB 2.x, JPA и JDBC Введены усовершенствования реализаций Кэширование EJB Дополнительные настройки JPA Проведено испытание производительности реализаций автоматическими нагрузочными тестами Результат - данные для многокритериального анализа в задаче принятия решения Сделаны выводы о применимости технологий для различных классов ИС Рассмотрена на уровне идеи абстрактная однотабличная модель данных Рассмотрены методические аспекты таких моделей Направление дальнейшего исследования – получение численных результатов испытаний подобных моделей
Thank you!