XRX is a
zero translation application architecture that uses XML to store data in the client web browser, on the application server and in the database server. It is because each of these layers uses XML as the same structural data model that XRX applications do not have to translate data structures to and from both object and relational data structures. Because of the lack of need for translation, XRX is considered to have a clean and elegant design. The XRX web application architecture allows developers to focus on the business problem and not the translation problem. XRX benefits from several advances in software technology:
Client Architectural Features • A
model–view–controller (MVC) architecture that separates the data from its presentation and business logic. • A single element (xf:submission) for all server submissions. This replaces much of the JavaScript code required in most AJAX applications. • An advanced event model (
XML Events) consistent with
W3C standards that frees applications from having to deal with vendor-specific and browser-specific event handling. • A
Dependency graph that is used to store the dependency structure of the client controllers. This frees the developer from having to manually update either the model or the views when data changes in an application. This allows spreadsheet-like applications to be created on the client with very little effort. • A
declarative programming style that allows most client XForms applications to be created using a small set of approximately 20 elements. This allows rich client applications to be created without knowledge of JavaScript or other procedural scripting languages. • An easy-to-extend system for creating new user interface controls using the
EXtensible Bindings Language. This allows developers to add new controls at any time without fear of incompatibilities with
W3C standards.
Server Architecture Features • Many native XML databases have built-in REST interfaces making each XQuery inherently a RESTful web service. • A
functional programming model that promotes
side-effect free systems that are easier to debug and easier to run on multiple processors. • An easy-to-extend system using XQuery function and modules.
Both Client and Server • Both XRX client and server components support a wide range of XML related standards such as
XPath,
XML Schema and
XML Namespaces. • Consistent use of REST interfaces to exchange data between the client and server for all transfers of data including as-you-type data checking and suggest functions. • Consistent integration of
W3C standards including use of XPath and
XML Schema data types. • A large library of standard of functions used on both the client and server. == Overall Benefits of XRX ==