1 Введение Информационные системы Альтернативы задачи доступа к данным Стандарт JPA и коммерческие ORM имплементации Определение ORM Проблемы полного преобразования.

Презентация:



Advertisements
Похожие презентации
ENTERPRISE JAVABEANS 3.0 STATEFUL & STATLESS SESSION BEANS.
Advertisements

Харичкин Александр МФТИ(ГУ) 16 июня Характеристики информационных систем Объем кода Сложность модели данных Масштабируемость Возможность повторного.
Object Relational Mapping (ORM) Объектно-реляционное отображение.
Object Relational Mapping (ORM) Объектно-реляционное отображение
Jalapeño – эффективная разработка приложений для Java Морозов Максим InterSystems Symposium 2007, Москва 4-5 сентября.
Evgeniy Krivosheev Last update: March, 2012 Spring Framework Module 10 – JMS, EJB.
Архитектура сервиса С3 Автор: Малыгин М.В. Руководитель: Тимченко Б.Д.
D7: проектирование и реализация нового модуля «Диск» Алексей Кирсанов Ведущий программист «1С-Битрикс»
Где хранить данные в web- приложении page –JSP страница request – HTTP запрос session – сессия пользователя application – веб-приложение Static Java class.
Oracle SQL Developer Data Modeler 3.0 Опыт практического использования при построении хранилищ данных Носенко Виктор Начальник отдела хранилищ.
Тема 2. Концептуальное проектирование. Лекция 1. Уровни моделей и этапы проектирования.
Платформа разработки бизнес-приложений Особенности платформы Принципиально новая запатентованная декларативная модель построения бизнес-приложений Высокая.
Организация хранилища единой коллекции цифровых образовательных ресурсов с использованием технологии «ЭЛАД» В.Ю. Лукин.
Grails От идеи к прототипу Алексей Тишин HackDay Санкт-Петербург 6-7 сентября.
Опыт реализации отказоустойчивого сервера приложений и хранилища данных на базе СУБД ЛИНТЕР Михаил Ермаков, Дмитрий Мухоедов, РЕЛЭКС.
Решение прикладных задач: Хранение неограниченного объема информации за любой период времени Возможность анализа любых хранящихся данных за определенный.
БЭСТ Дизайнер проектов Введение Концепции Основные понятия.
Быстрая разработка кадастровых приложений муниципального уровня с использованием системы «ИнМета» Вячеслав Томилин ООО НВЦ «Интеграционные технологии»
Транксрипт:

1

Введение Информационные системы Альтернативы задачи доступа к данным Стандарт JPA и коммерческие ORM имплементации Определение ORM Проблемы полного преобразования при ORM История спецификации JPA Цели разработчиков спецификации JPA 2

Информационные системы Термин enterprise используется в разных контекстах, но неизменно связан с информацией Хранение и получение информации – многомиллионный бизнес Реляционные БД – стандарт де- факто Данные обычно переживают приложение 3

Поддержка в Java Платформа Java всегда имела средства работы с БД (JDBC) JDBC это стандарт, найти нужный драйвер не проблема Однако перемещение данных из БД в Java приложение сложнее, чем должно быть

Альтернативы JDBC Enterprise Java Beans (2.x) JDO ORM tools (open-source и коммерческие) 5

JDBC Плюсы: Абстрагирование от БД Простой API Доступ к SQL Минусы Хотя JDBC API портируемый, сам SQL нет Жесткое связываение SQL и Java приложения Очень громоздкие ручные преобразования табличных данных в Java объекты 6

EJB 2.x Плюсы: Попытка абстрагировать работу с SQL в коде приложения Минусы: Сложность!!! Interface-based подход Конфигурации, спецефические для поставщика БД 7

JDO Стандарт от Sun Расширяет (enhance) байт код, делает его совместимым с любым поставщиком БД Не был поддержан основными игроками в производстве ПО Sun отказался от стандарта JDO Sun сделал стандарт JPA частью EJB 3.0 8

ORM Tools Программисты искали подход: Нет завязки на конкретные интерфейсы Сосредоточиться на бизнес- логике, а не на преобразовании данных Open-source Hibernate Commercial Oracle Top-Link 9

Зачем другой стандарт? Стандарт нечто значительно большее, чем продукт Много поставщиков продукта, удовлетворяющего стандарту Сделать Hibernate стандартом плохо для самого Hibernate Безопасность (подмена vendor) Другие плюсы: обучение шаблоны использования стандарт индустрии 10

Что такое ORM? Класс и таблица похожи. Должно быть просто преобразовать одни данные в другие автоматически ORM – строгий набор правил описания преобразования объектной модели в реляционную. Некий механизм использует эти описания и производит автоматическое преобразование моделей 11

Чего мы хотим от ORM? Оперируем объектами, а не таблицами Удобство Ненавязчивость технологии Использовать существующую схему данных Относительная дешевизна Локальность 12

ORM Impedance Mismatch Неоднозначность представления класса Неоднозначность отношения Неоднозначность отношения наследования 13

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

Неоднозначность отношения 15

Неоднозначность отношения наследования 16

История JPA ORM технология стара. Коммерческие продукты были еще до Java TopLink был еще в SmallTalk EJB 3.0 Session & Message Driven beans были незначительно изменены (аннотации+POJO) Entity beans specification была начата заново Hibernate и TopLink эксперты были приглашены для создания спецификации Java Persistence API это третий, отдельный документ в составе документации Java EE Platform 17

Цели разработчиков спецификации JPA (1 из 2) POJO Persistence Существующее приложение может быть адаптировано к использованию JPA без замены единой строки кода Ненавязчивость (Non-intrusiveness) Доменный слой не должен ничего знать про persistence technology Запросы над объектами Использовние объектной модели для выборок данных. Любой сложности Возможность использования SQL в критичных местах приложения 18

Цели разработчиков спецификации JPA (2 из 2) Мобильные сущности Возможность передавать сущности из одной JVM в другую Выполнять reattach Простая конфигурация Активное использование значений по умолчанию Аннотации в коде легко определяются и читаются. Компилятор делает проверки Простота тестирования Проблемы тестирования типичного J2EE приложения JPA может быть протестирован в J2SE среде 19

Введение. Обзор. Информационные системы Альтернативы задачи доступа к данным Стандарт JPA и коммерческие ORM имплементации Определение ORM Проблемы полного преобразования при ORM История спецификации JPA Цели разработчиков спецификации JPA 20