XRX (архитектура веб-приложений)
![]() | Тема этой статьи Википедии может не соответствовать общему правилу по известности . ( август 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
[ редактировать ]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-схема и пространства имен XML.
- Последовательное использование интерфейсов REST для обмена данными между клиентом и сервером для всех передач данных, включая проверку данных по мере ввода и функции предложения.
- Последовательная интеграция стандартов W3C , включая использование XPath и XML Schema. типов данных
- Большая библиотека стандартных функций, используемых как на клиенте, так и на сервере.
Общие преимущества XRX
[ редактировать ]Одним из основных преимуществ архитектуры XRX является то, что она позволяет избежать необходимости «разделять» сложные структуры данных на реляционные структуры, а затем восстанавливать данные обратно в структуры при редактировании записи на клиенте.
Еще одним преимуществом архитектуры веб-приложений XRX является то, что она позволяет избежать большинства проблем, связанных с объектно-реляционным несоответствием импедансов .
Еще одним преимуществом является то, что разработчику клиента не нужно изучать JavaScript на клиенте.
Сравнение с традиционными объектными/реляционными архитектурами веб-приложений
[ редактировать ]Многие традиционные архитектуры веб-приложений, созданные в конце 1990-х годов, были основаны на промежуточных уровнях объектов и уровнях персистентности, которые использовали потоки табличных данных и реляционных баз данных системы . Поскольку каждый из этих слоев использовал разные структуры для хранения моделей, системам требовалась большая дополнительная сложность для перевода между уровнями.
История XRX
[ редактировать ]Ранние примеры использования архитектуры с нулевой трансляцией в многоуровневых системах можно отнести к появлению объектно-ориентированных баз данных в 1990-х годах. См. историю ООСУБД
Марк Бирбек на встрече с группой пользователей XML Великобритании в сентябре 2006 года предположил, что сочетание XForms, XQuery и REST-интерфейсов между ними имеет много преимуществ. . [4] Его презентация была одной из первых, в которой конкретно предлагалось, что сочетание трех технологий: XForms и XQuery с интерфейсами REST будет иметь удивительно полезные эффекты. Марк назвал этот процесс «скиммингом», но этот термин не казался заразительным.
Эрик Бручез из Orbeon выступил на конференции XML 2007 в Бостоне в декабре 2007 года. [5] В своей презентации «XForms и база данных eXist XML: идеальная пара» Бручез показал, что многие люди обнаруживают синергетические преимущества 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 .
См. также
[ редактировать ]
Ссылки
[ редактировать ]- ^ МакКрири, Дэн (23 мая 2008 г.). «XRX: Просто, элегантно, революционно» . Проверено 14 июля 2011 г.
- ^ «Запрос Консорциума Всемирной паутины» . Проверено 14 июля 2011 г.
- ^ «Формы консорциума Всемирной паутины» . Проверено 14 июля 2011 г.
- ^ Бирбек, Марк (26 сентября 2006 г.). «XForms и XQuery для REST» (PDF) . Проверено 26 октября 2008 г. [ мертвая ссылка ]
- ^ Брюшес, Эрик (4 декабря 2007 г.). «XForms и база данных eXist XML: идеальная пара» . Архивировано из оригинала 22 июня 2008 года . Проверено 26 октября 2008 г.
- ^ МакКрири, Дэн (14 декабря 2007 г.). «Представляем архитектуру XRX: XForms/REST/XQuery» . Проверено 26 октября 2008 г.
Дополнительный ресурс
[ редактировать ]- XRX: Простой, элегантный, прорывной Дэн МакКрири
- Репозиторий Google Code для разработчиков XRX
- Метафорическая сеть и XRX Курта Кейгла
- Запросы XRX с использованием базы данных eXist Джени Теннисон
- Сопоставление URL-адресов XRX с помощью форм Orbeon , Джени Теннисон
- XRX Performing Updates by Jeni Tennison
- Дизайн XRX Locking Grain от Дэна МакКрири
- Викибук XRX Викибук XRX с учебными пособиями по созданию приложения CRUDS с использованием базы данных eXist.
- Agile Stack , Джейсон Монберг
- Блог Джесси Аламы о XQuery и XRX