Тема этой статьи может не соответствовать общему руководству Википедии по значимости . ( август 2016 г. ) |
В разработке программного обеспечения 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 — это архитектура приложений с нулевым переводом , которая использует XML для хранения данных в клиентском веб-браузере, на сервере приложений и на сервере базы данных. Поскольку каждый из этих слоев использует XML в качестве одной и той же структурной модели данных, приложениям XRX не нужно переводить структуры данных в объектные и реляционные структуры данных и обратно. Из-за отсутствия необходимости в переводе считается, что XRX имеет чистый и элегантный дизайн. Архитектура веб-приложений XRX позволяет разработчикам сосредоточиться на бизнес-задачах, а не на проблемах перевода. XRX извлекает выгоду из нескольких достижений в области программных технологий:
Одним из основных преимуществ архитектуры XRX является то, что она позволяет избежать необходимости «разбивать» сложные структуры данных на реляционные структуры, а затем восстанавливать данные обратно в структуры при редактировании записи на клиенте.
Еще одним преимуществом архитектуры веб-приложений XRX является то, что она позволяет избежать большинства проблем, связанных с несоответствием объектно-реляционного импеданса .
Еще одним преимуществом является то, что разработчику клиента не нужно изучать JavaScript на клиенте.
Многие традиционные архитектуры веб-приложений, созданные в конце 1990-х годов, основывались на средних уровнях объектов и уровнях персистентности, которые использовали табличные потоки данных и реляционные системы баз данных. Поскольку каждый из этих уровней использовал разные структуры для хранения моделей, системам требовалось гораздо больше сложности для перевода между уровнями.
Ранние примеры использования архитектуры нулевой трансляции в многоуровневых системах можно проследить до появления объектно-ориентированных баз данных в 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 изначально предназначался для обозначения использования XForms на клиенте, REST в качестве интерфейса и XQuery на сервере, другие сторонники симметричного использования XML на клиенте и сервере обобщили этот термин, чтобы охватить любой XML-ориентированный веб-клиент и любой сервер, который может хранить и запрашивать XML-документы. Такое использование XRX обычно называют «поверхностным XRX». Эти обобщения действительно выигрывают от упрощенной архитектуры с нулевым переводом, но многие не выигрывают от интерфейсов REST, XPath для последовательного выбора данных, декларативных систем на клиенте и функциональных языков на сервере (один из ключевых аспектов XRX). Использование всех трех технологий (XForms, REST и XQuery) называют «глубоким XRX».
Хотя архитектура XRX основана на XForms и XQuery, это не исключает использования других технологий, которые изначально манипулируют XML, таких как XSLT , XProc и XSL-FO .