Использование Oracle Berkeley DB Java Edition как менеджера хранения объектов для Google Web Toolkit - Эволюция GWT и устойчивое решение Berkeley DB Java Edition DPL

ОГЛАВЛЕНИЕ

Эволюция GWT и устойчивое решение Berkeley DB Java Edition DPL

Любое решение для хранения объектов имеет свои плюсы и минусы. Это относится и к Berkeley DB Java Edition.

Преимущества:

  • Минимальные конфигурирование и установка. Нет XML -файлов, которые нужно сопровождать. Все аспекты хранения объектов задаются Java -аннотациями в DPL в классах сущностей приложения. Не надо конфигурировать даже EntityStore ; это просто локальная директория доступная с сервера приложений с Java EE, на котором исполняется этот код.
  • Простота. Подход к проектированию на основе MVC легко понимается. Представление (view) и поведение (controller) ведутся в GWT, а модель (Model) - как данные хранятся на диске - в Oracle Berkeley DB Java Edition, управляемые простым набором классов сервисов.
  • Быстрый доступ к данным. Oracle Berkeley DB Java Edition не тратит время, транслируя графы объектов в/из SQL и не посылает данные по сети удаленному серверу; это сокращает объем обработки при хранении объектов на две трети. Избыточные буферы данных отсутствуют, только один буфер на сервере приложений с Java EE,. А в EJB - буферов два, один у реляционной СУБД и один управляется EJB / JPA на сервере приложений. управляемый Berkeley DB Java Edition
  • Быстрая, масштабируемая, с одновременным доступом множества одновременных пользователей. Berkeley DB Java Edition - это транзакционная СУБД и может одновременно управлять тысячами нитей доступа к данным. Она справляется с терабайтами данных на дисках, при этом кэшируются наиболее часто используемые пользователями данных в подмножестве доступной оперативной памяти JVM.
  • Эффективное хранение транзакций. Если по какой-то причине сервер приложений сбоит, Berkeley DB Java Edition восстановит базу данных в целостном и готовом к использованию состоянии при рестарте.
  • Легкость администрирования. Для всех аспектов администрирования баз данных есть простые вызовы API, а не сложные скрипты или инструменты с компдной строкой. Это приложение (СУБД) сразу же разработано с возможностью само администрирования и не требует чрезмерного внимания в производственных средах.
  • Легкость интеграции с любым сервером приложений с Java EE. Berkeley DB Java Edition поддерживает три основных стандарта Java EE: JCA (Java Connector Architecture), JTA (Java Transactions API) и JMX (Java Management Extensions).
  • Легкость установки. Установка Berkeley DB Java Edition - это двухшаговый процесс : (1) включает Berkeley DB Java Edition JAR (Java Archive) файл в WAR (Web Archive) файле и (2) определение и создание директории в локальной файловой системе для файлов базы данных.
  • Открытый код. Berkeley DB Java Edition разработана согласно Sleepycat License, которая является одной из одобренных лицензий открытого кода. Если условия Sleepycat License вам не подходят, можно купить коммерческую лицензию в Oracle.
  • Очень эффективные форумы поддержки. Было обнаружено, что разработчики Berkeley DB Java Edition посещают форумы Oracle Technology Network (OTN) для ответов на вопросы и предоставляют помощь, а также настройки и советы по архитектуре.

Недостатки:

  • Слабое управление изменениями моделей. Хотя Berkeley DB Java Edition предоставляет методы для миграции баз данных при изменениях моделей объектов, этот процесс не идеален при разработке. Единожды установленная поддержка миграции и мутации классов великолепна. Просто вспомните, что при разработке хорошей практикой является полное перемещение директории базы данных Berkeley DB Java Edition, и для каждого тестового прогона процесс создания этой базы данных начинайте с самого начала. Иначе можно наткнуться на ошибки во время выполнения. В целом, это неплохая практика во время разработки и этот процесс легок. (Однако, это не отличается от других подходов типа ORM и EJB.)
  • Ограниченные возможности получения отчетов. Получение отчетов - почти всегда необходимость в реальных приложениях. В настоящее время для Berkeley DB Java Edition есть только одно решение такого рода: JasperReports (от компании JasperSoft) обладает адаптером к Berkeley DB Java Edition (доступный на JasperForge). Было бы неплохо увидеть рядом с ним средства Oracle по получению отчетов, да, и другие тоже.
  • Отсутствие интеграции с СУБД Oracle и другими реляционными СУБД. Как показано выше, Berkeley DB Java Edition может быть эффективной СУБД для ваших Web -приложений с применением GWT. Но в одной или нескольких реляционных базах данных вашего предприятия неизбежно хранятся какие-то данные. В настоящее время нет простого поддерживаемого способа для интеграции этих баз. Чтобы сделать это, нужно написать JDBC - или JMS -код или код другого метода перемещения данных между базой данных Berkeley DB Java Edition и другими базами данных. Мы надеемся, что эта проблема будет решена в будущей версии или независимым разработчиком.
  • Неполная поддержка стандартов. Berkeley DB Java Edition поддерживает несколько стандартов для Java EE (JTA,, JCA), но ни один из них не связан с хранением объектов. Отметим, что EJB и JPA не поддерживаются. Причины этого очевидны. Berkeley DB Java Edition и интерфейс DPL - это альтернатива подходу ORM,, которые широко не распространены. Berkeley DB Java Edition поддерживает (или скорее расширяет) псевдостандарт из Java Collections package (java. util. collections). Berkeley DB Java Edition позволяет стандартным классам коллекций быть транзакционными и хранимыми на диске, а не только быть полезными в оперативной пямяти. Это значительная и интересная функциональность, и она используется в DPL, но технически это не Java -стандарт (Java Specification Request или JSR). Также нестандартный, но очень полезный, - это интерфейс BIND API в Berkeley DB Java Edition. Этот API предоставляет способ кодировать/раскодировать типы Java в последовательности байтов. Кроме того, хотя и не стандарт, BIND API может быть очень удобным для использования в Berkeley DB Java Edition, а также с другими приложениями. В целом мы с симпатией относимся к команде Berkeley DB Java Edition team. У них немного возможностей. Ведь есть очень сильный уклон в сторону ORM, как единственного решения для хранения Java -объектов, и так мало стандартов, которые они реализовывают. Это большая проблема и для Java -сообщества, так и для пользователей Berkeley DB Java Edition.. JMX поддерживаемому всеми Java -стандартами для хранения, за исключением Java Data Objects Возможно, DPL в какой-то момент станет JSR

Выводы

Основное преимущество комбинирования GWT и Berkeley DB Java Edition - это простота. Оба продукта разработаны для легкого использования и ликвидации привычных и часто воспринимаемых как неизбежность перегрузок на всех стадиях разработки приложений.

Web -приложения могут быть сложными по многим причинам. Разработчики должны выбирать из десятков различных комбинаций подходов проектирования и инструментов при создании своих Web -приложений. Но благодаря таким компаниям, как Google и Oracle, разработчики способны снизить сложность разработки Web -приложений до контролируемого уровня. Во многих случаях совместное применение EJB и ORM имеет смысл ради аспекта хранения (или Model) Web -приложения, но в нашем особенном случае мы не требовали внешнего, через SQL доступа к нашим данным. Слой ORM и реляционная база данных нам не были нужны. Рассмотренный способ управления хранением данных, такой же эффективный и быстрый как реляционная СУБД, оказался более подходящим в других отношениях.

Berkeley DB Java Edition - это устойчивое решение (persistence layer) в части уровня хранения объектов. Оно ликвидирует барьер ORM и решает ряд проблем:

  • ORM-отображение
  • Поддержка реляционной СУБД
  • Перегрузка SQL
  • Совместимость ORM с функциями (access intent, pessimistic locking, among others)
  • Необходимость поддержки концептуальной и физической модели

Такие продукты, как: GWT, JavaServer Faces, Echo 2 и другие, недавно пополнили парадигму программирования для Web 2.0. Они возвращают быструю разработку приложений, имевшую место до наступления Web -эры. Эти продукты позволяют создавать профессиональные и масштабируемые Web -приложения. Хотя все эти продукты предлагают разную функциональность, общее, что есть у них, -возможность абстрагироваться от сложности синтаксиса на стороне клиента. Они обеспечивают эту возможность благодаря генерации и поддержке приложений на стороне клиента в среде браузера.

Как реально сочетаются GWT и Berkeley DB Java Edition на практике? Как в случае с любой новой и обещающей идеей, люди сомневаются и ждут, чтобы им показали, как это работает на большем проекте. Berkeley DB Java Edition может быть новым явлением для хранения данных Web -приложений, эта СУБД за последние пять лет обрела зрелость и и справляется с хранением терабайт данных в задачах, которые вы можете даже не представлять себе. Web -разработчики должны подумать об изменении своего менталитета, о замене ORM на решение типа Berkeley DB Java Edition. Если Oracle Berkeley DB Java Edition работает на нас, то она сможет работать и на вас также.

Эрик Одет (Eric Audet), M. Sc., TechSolCom, - 16 лет опыта работы в IT, главным образом, в качестве архитектора ПО и данных. В настоящее время он работает архитектором ПО для разработки транзакционных SOA -, беспроводных (Wireless), Java EE и Java ME. и Web -приложений с применением технологий WSDL

Грегори Бурд (Gregory Burd) - продукт-менеджер по СУБД корпорации Oracle - Berkeley DB, Berkeley DB Java Edition и Berkeley DB XML. Он работает в этой области с 2003 года и продолжает работать над продуктами Berkeley DB в рамках подразделения корпорации Oracle - Embeddable Databases Group. У Грэга большой опыт в проектировании ПО, управлении проектами, консультировании в области ПО масштаба предприятия, использования и продаж разного ПО. Он принимал участие в ряде проектов класса open source and free software projects.