XRX (архитектура веб-приложений)

В разработке программного обеспечения XRX — это архитектура веб-приложений, основанная на XForms , REST и XQuery . Приложения XRX хранят данные как на веб-клиенте , так и на веб-сервере в формате XML и не требуют преобразования между форматами данных. XRX считается [1] простой и элегантной архитектурой приложений из-за минимального количества преобразований, необходимых для передачи данных между клиентскими и серверными системами. Архитектура XRX также тесно связана со стандартами W3C ( CSS , XHTML 2.0 , XPath , XML Schema ) [2] [3], чтобы гарантировать надежность приложений XRX в будущем. Поскольку приложения XRX используют современные декларативные языки на клиенте и функциональные языки на сервере, они предназначены для расширения возможностей неразработчиков, которые не знакомы с традиционными императивными языками, такими как JavaScript , Java или .Net.

Обзор XRX

XRX — это архитектура приложений с нулевым переводом , которая использует XML для хранения данных в клиентском веб-браузере, на сервере приложений и на сервере базы данных. Поскольку каждый из этих слоев использует XML в качестве одной и той же структурной модели данных, приложениям XRX не нужно переводить структуры данных в объектные и реляционные структуры данных и обратно. Из-за отсутствия необходимости в переводе считается, что XRX имеет чистый и элегантный дизайн. Архитектура веб-приложений XRX позволяет разработчикам сосредоточиться на бизнес-задачах, а не на проблемах перевода. XRX извлекает выгоду из нескольких достижений в области программных технологий:

Архитектурные особенности клиента

  • Архитектура модель -представление-контроллер (MVC), которая отделяет данные от их представления и бизнес-логики.
  • Один элемент (xf:submission) для всех серверных представлений. Это заменяет большую часть кода JavaScript, необходимого в большинстве приложений AJAX.
  • Расширенная модель событий ( XML Events ), соответствующая стандартам W3C , которая освобождает приложения от необходимости заниматься обработкой событий, специфичных для поставщика и браузера.
  • Граф зависимостей , который используется для хранения структуры зависимостей контроллеров клиента. Это освобождает разработчика от необходимости вручную обновлять модель или представления при изменении данных в приложении. Это позволяет создавать на клиенте приложения, подобные электронным таблицам, с минимальными усилиями.
  • Декларативный стиль программирования , позволяющий создавать большинство клиентских приложений XForms с использованием небольшого набора из примерно 20 элементов. Это позволяет создавать насыщенные клиентские приложения без знания JavaScript или других процедурных языков сценариев.
  • Простая в расширении система для создания новых элементов управления пользовательского интерфейса с использованием языка EXtensible Bindings Language . Это позволяет разработчикам добавлять новые элементы управления в любое время, не опасаясь несовместимости со стандартами W3C .

Особенности архитектуры сервера

  • Многие собственные базы данных XML имеют встроенные интерфейсы REST, что делает каждый XQuery по сути веб-службой RESTful.
  • Функциональная модель программирования , способствующая созданию систем без побочных эффектов , которые легче отлаживать и запускать на нескольких процессорах.
  • Легко расширяемая система с использованием функций и модулей XQuery.

Клиент и сервер

  • Как клиентские, так и серверные компоненты XRX поддерживают широкий спектр стандартов, связанных с XML, таких как XPath , XML Schema и XML Namespaces .
  • Последовательное использование интерфейсов REST для обмена данными между клиентом и сервером для всех передач данных, включая проверку данных по мере ввода и функции подсказок.
  • Последовательная интеграция стандартов W3C , включая использование типов данных XPath и XML Schema .
  • Большая библиотека стандартных функций, используемых как на клиенте, так и на сервере.

Общие преимущества XRX

Одним из основных преимуществ архитектуры XRX является то, что она позволяет избежать необходимости «разбивать» сложные структуры данных на реляционные структуры, а затем восстанавливать данные обратно в структуры при редактировании записи на клиенте.

Еще одним преимуществом архитектуры веб-приложений XRX является то, что она позволяет избежать большинства проблем, связанных с несоответствием объектно-реляционного импеданса .

Еще одним преимуществом является то, что разработчику клиента не нужно изучать JavaScript на клиенте.

Сравнение с традиционными объектно-реляционными архитектурами веб-приложений

Многие традиционные архитектуры веб-приложений, созданные в конце 1990-х годов, основывались на средних уровнях объектов и уровнях персистентности, которые использовали табличные потоки данных и реляционные системы баз данных. Поскольку каждый из этих уровней использовал разные структуры для хранения моделей, системам требовалось гораздо больше сложности для перевода между уровнями.

История XRX

Ранние примеры использования архитектуры нулевой трансляции в многоуровневых системах можно проследить до появления объектно-ориентированных баз данных в 1990-х годах. См. Историю ООСУБД

Марк Бирбек предположил, что сочетание XForms, XQuery с интерфейсами REST между ними имеет много преимуществ на встрече с UK XML User Group в сентябре 2006 года. [4] Его презентация была одной из первых, где конкретно предполагалось, что сочетание трех технологий: XForms и XQuery с интерфейсами REST будет иметь удивительно полезные эффекты. Марк назвал этот процесс «Скиммингом», но этот термин, похоже, не был заразным.

Эрик Брюше из Orbeon выступил на конференции XML 2007 в Бостоне в декабре 2007 года. [5] В своей презентации «XForms и база данных XML eXist: идеальное сочетание» Брюше показал, что многие люди открывают для себя синергетические преимущества XForms на клиенте и XQuery на сервере.

Название XRX было предложено в блоге Дэна МакКрири 14 декабря 2007 года. [6] Именно в этой статье Дэн предположил необходимость создания заразительного мема для идей, лежащих в основе архитектуры XRX.

Обобщения XRX

Хотя XRX изначально предназначался для обозначения использования XForms на клиенте, REST в качестве интерфейса и XQuery на сервере, другие сторонники симметричного использования XML на клиенте и сервере обобщили этот термин, чтобы охватить любой XML-ориентированный веб-клиент и любой сервер, который может хранить и запрашивать XML-документы. Такое использование XRX обычно называют «поверхностным XRX». Эти обобщения действительно выигрывают от упрощенной архитектуры с нулевым переводом, но многие не выигрывают от интерфейсов REST, XPath для последовательного выбора данных, декларативных систем на клиенте и функциональных языков на сервере (один из ключевых аспектов XRX). Использование всех трех технологий (XForms, REST и XQuery) называют «глубоким XRX».

Хотя архитектура XRX основана на XForms и XQuery, это не исключает использования других технологий, которые изначально манипулируют XML, таких как XSLT , XProc и XSL-FO .

Смотрите также

Ссылки

  1. ^ МакКрири, Дэн (2008-05-23). ​​"XRX: Simple, Elegant, Disruptive" . Получено 2011-07-14 .
  2. ^ "Запрос Worldwide Web Consortium" . Получено 2011-07-14 .
  3. ^ "Формы консорциума Всемирной паутины" . Получено 2011-07-14 .
  4. ^ Бирбек, Марк (2006-09-26). "XForms и XQuery в сравнении с REST" (PDF) . Получено 2008-10-26 . [ мертвая ссылка ‍ ]
  5. ^ Bruchez, Erik (2007-12-04). "XForms и база данных XML eXist: идеальная пара". Архивировано из оригинала 22 июня 2008 года . Получено 2008-10-26 .
  6. ^ МакКрири, Дэн (14.12.2007). "Введение в архитектуру XRX: XForms/REST/XQuery" . Получено 26.10.2008 .

Дополнительный ресурс

  • XRX: Простой, элегантный, разрушительный Дэн МакКрири
  • Репозиторий Google Code для разработчиков XRX
  • Метафорическая паутина и XRX Курта Кейгла
  • Запросы XRX с использованием базы данных eXist Джени Теннисон
  • XRX Сопоставление URL-адресов с формами Orbeon от Джени Теннисон
  • Обновления XRX Performing от Джени Теннисон
  • XRX Locking Grain Design Дэна МакКрири
  • XRX Wikibook XRX Wikibook с руководствами по созданию приложений CRUDS с использованием базы данных eXist
  • Agile Stack Джейсона Монберга
  • Блог Джесси Аламы о XQuery и XRX
Получено с "https://en.wikipedia.org/w/index.php?title=XRX_(архитектура_веб_приложения)&oldid=1263940331"