Building a Scalable XML-based Dynamic Delivery Architecture: Standards and Best Practices


Published on

Jerry Silver's presentation from the Web Content Chicago 2009 conference. This session is targeted at Web development professionals who are looking for a better way to architect their sites, leveraging the latest standards to lower risk, reduce development and maintenance costs, and bring their sites to production faster. For further information and to download the slides, please visit

Published in: Technology
1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • Building a Scalable XML-based Dynamic Delivery Architecture: Standards and Best Practices

    1. 1. Building a Scalable XML-based Dynamic Delivery Architecture: Standards and Best Practices Web Content Chicago 2009 Jerry Silver Lead Product Marketing Manager EMC Documentum
    2. 2. Traditional Content Delivery Challenges <ul><li>Generic content pushed to all end users—lacks personal relevance </li></ul><ul><li>Difficult for users to find information—affects productivity and customer satisfaction </li></ul><ul><li>May drive customers away or limit up-sell/cross-sell </li></ul><ul><li>Content can grow stale, which can lead to compliance and liability concerns </li></ul>File System
    3. 3. Dynamic Content Delivery Challenges <ul><li>Content often modeled as XML but stored on file system or extracted from RDBMS </li></ul><ul><li>Model mismatch adds cost and complexity </li></ul><ul><li>Difficult to scale: </li></ul><ul><ul><li>Relational database and file systems are inefficient at serving high volumes of XML content </li></ul></ul><ul><li>Difficult to build: </li></ul><ul><ul><li>Proprietary programming models </li></ul></ul><ul><ul><li>Complex procedural logic </li></ul></ul><ul><li>Difficult to integrate: </li></ul><ul><ul><li>Challenging to import and aggregate content from multiple sources </li></ul></ul><ul><li>Difficult to use: </li></ul><ul><ul><li>Static forms and Web user interfaces are difficult to interact with </li></ul></ul><ul><ul><li>Limited choices for users (see “difficult to build”) </li></ul></ul>File System/ RDBMS
    4. 4. Large High Tech Manufacturer <ul><li>Challenges </li></ul><ul><ul><li>Web publishing silos </li></ul></ul><ul><ul><li>Home grown delivery system hard to support, hard to publish, slow performance </li></ul></ul><ul><ul><li>Information hard to find/navigate </li></ul></ul><ul><li>Solution </li></ul><ul><ul><li>Standards-based dynamic delivery application: XQuery, XProc, XSL, SOA </li></ul></ul><ul><ul><li>Provides context sensitive delivery of information tailored to the needs of their various constituents (partners, customers) </li></ul></ul><ul><li>Results </li></ul><ul><ul><li>Reduce number of pages by 80% </li></ul></ul><ul><ul><ul><li>Direct saving in operating costs </li></ul></ul></ul><ul><ul><ul><li>More consistency and quality in the information </li></ul></ul></ul><ul><ul><ul><li>Better customer experience </li></ul></ul></ul><ul><ul><ul><li>Better information governance </li></ul></ul></ul><ul><ul><li>Better performance and scalability </li></ul></ul><ul><ul><li>Faster development, easier maintenance </li></ul></ul>CASE STUDY
    5. 5. XML Standards Based Dynamic Delivery <ul><li>Scalable: </li></ul><ul><ul><li>Native XML architecture ensures high performance </li></ul></ul><ul><li>Dynamic: </li></ul><ul><ul><li>Enables real time generation and delivery of dynamic content to thousands of end users across multiple channels </li></ul></ul><ul><li>Easy to build: </li></ul><ul><ul><li>Declarative tools, based on XML standards, simplify application development </li></ul></ul><ul><li>Easy to integrate: </li></ul><ul><ul><li>Aggregate content from multiple sources </li></ul></ul><ul><li>Easy to use: </li></ul><ul><ul><li>Interactive search forms and flexible queries promote usability </li></ul></ul>
    6. 6. Dynamic Content Assembly Components < Service Task> < Task Description > Engine Replacement < / Task Description > < Task> To remove the faulty engine from the vehicle first remove fixing bolts from main assembly and disconnect blue cable...and lift the engine out of the casing. < / Task > < Warning > Ensure that all electrical power is turned off before starting< / Warning > < / Service Task > XML Repository Dynamic Delivery Application Response
    7. 7. Key Technologies and Standards <ul><li>Native XML Databases </li></ul><ul><li>XQuery: for searching collections of XML content and composing new content </li></ul><ul><li>XQuery: for complex database updates </li></ul><ul><li>XSL-T: for transforming content (e.g. html output) </li></ul><ul><li>XSL-FO: for document oriented PDF rendering </li></ul><ul><li>XForms: for client side user interfaces </li></ul><ul><li>XProc: primary server processing language </li></ul><ul><li>S1000D Process Data Module </li></ul>
    8. 8. What Is A Native XML Database? <ul><li>XML documents as fundamental unit of storage </li></ul><ul><li>Based on XML logical model </li></ul><ul><ul><li>Elements, attributes, PCDATA, and document order </li></ul></ul><ul><ul><li>Typical models: XPath, Infoset, DOM </li></ul></ul><ul><li>Use XQuery/XPath as the query language </li></ul><ul><li>Typically provide a path-like collection model e.g. folders, libraries </li></ul>
    9. 9. Why an XML Database? Maintains document fidelity Loses document fidelity Easy to change schema Difficult to change schema Minimizes redundancy, decreases storage costs Redundant data increases storage costs Suitable for any content – structured or unstructured Unsuitable for unstructured content Excellent performance on hierarchical data Poor performance for hierarchical data Load and immediately query any XML content Extensive up-front design effort XML Database RDBMS
    10. 10. XQuery <ul><li>Designed to query collections of XML data </li></ul><ul><ul><li>Works on files </li></ul></ul><ul><ul><li>Works best with an XML database </li></ul></ul><ul><li>Combines XPath with SQL-Like Operators (FLWOR) </li></ul><ul><li>World Wide Web Consortium (W3C) Recommendation </li></ul><ul><li>Full-Text and Update extensions </li></ul>F or <a variable declaration> L et <the variable = a value> W here <filtering conditions> O rder by R eturn <results>
    11. 11. Dynamic Data Models Catalog <ul><li>Content is loaded in XML database </li></ul><ul><ul><li>No need to configure a database schema </li></ul></ul><ul><ul><li>Schemas are automatically loaded as well </li></ul></ul><ul><li>New content refers to a changed schema </li></ul><ul><ul><li>Changed content is loaded just like any other document </li></ul></ul><ul><li>XQueries are unchanged and execute over mixed content models </li></ul>
    12. 12. XQuery Example Constructor XPath expression
    13. 13. XProc <ul><li>XProc: XML Pipeline Language </li></ul><ul><ul><li> </li></ul></ul><ul><li>Language for describing operations to be performed on XML documents </li></ul><ul><ul><li>XProc itself is an XML dialect </li></ul></ul><ul><li>Benefits </li></ul><ul><ul><li>Declarative </li></ul></ul><ul><ul><li>Streamlines development of XML-enabled applications </li></ul></ul><ul><ul><li>Flexibility </li></ul></ul>Step 4 Deliver to user via PDF, HTML, Mobile Step 3 Create Table of Contents and indexes Step 2 Filter out results Step 1 Issue search via XQuery
    14. 14. XProc pipeline <ul><li>Steps (can) have </li></ul><ul><ul><li>Input ports </li></ul></ul><ul><ul><li>Output ports </li></ul></ul><ul><ul><li>Options </li></ul></ul><ul><ul><li>Parameter input ports </li></ul></ul><ul><li>Atomic vs. compound steps </li></ul><ul><li>Standard atomic step library </li></ul><ul><ul><li>xslt, xquery, http-request, xinclude, … </li></ul></ul><ul><li>Custom steps </li></ul><ul><ul><li>Custom compound steps </li></ul></ul><ul><ul><li>Step libraries </li></ul></ul>XQuery Source XML document Result XML document XSLT source stylesheet source source stylesheet XSLT stylesheet
    15. 15. Demonstration: Visual Programming with XProc Watch for free download of XProc Designer mid-July 2009 on
    16. 16. XForms <ul><li>General purpose language for building user interfaces for interacting with XML data </li></ul><ul><ul><li>Not just “forms” </li></ul></ul><ul><li>Model-View-Controller Architecture </li></ul><ul><ul><li>Separate logic from data and presentation </li></ul></ul><ul><ul><li>Enables dynamic forms that adapt to users’ personalized needs and format </li></ul></ul><ul><ul><li>Minimizes coding/maintenance effort </li></ul></ul>User Interface XHTML SVG WML Proprietary Instance Data XForms Model
    17. 17. XForms Example
    18. 18. Dynamic Form Generation Application Server (XProc) User Profile XML Instance Personalized Form XQuery XQuery Update
    19. 19. Process Data Module <ul><li>A specification for interactive processing structures </li></ul><ul><ul><li>Non-Linear Procedures </li></ul></ul><ul><ul><li>Surveys </li></ul></ul><ul><ul><li>Conditional processing </li></ul></ul><ul><ul><li>Collecting information </li></ul></ul><ul><ul><li>User interaction </li></ul></ul><ul><ul><li>Maintaining State information </li></ul></ul><ul><ul><li> Input : XML instance </li></ul></ul><ul><ul><li> Output : Application </li></ul></ul><ul><li>Part of the S1000D Specification, but applicable to other document types </li></ul>
    20. 20. S1000D Process Data Module Data Modules Repository Process Data Module dm-if dm-node (refdm) dm-node (dialog) dm-node-alt dm-node (step1) dm-node (step1) dm-node (step1) DM DM DM DM DM DM
    21. 21. Process Data Module Execution Data Modules Repository Process Data Module dm-if dm-node (refdm) dm-node (dialog) dm-node-alt dm-node (step1) dm-node (step1) dm-node (step1) DM DM DM DM DM DM Logic Engine / User Interface OK Cancel Tire pressure (PSI) 45 Bicycle checkout
    22. 22. Example Application Data Module Step Data Module Step Data Module Step Step Content <ul><li>Lubricate the bicycle </li></ul><ul><li>Make sure the chain is clean and dry </li></ul><ul><li>Apply the lubricant to each roller of the chain </li></ul>Previous Next Previous Next <ul><li>Do a check of the tire pressure with the Tire pressure gauge . </li></ul><ul><li>Compare the value you read with the </li></ul>OK Cancel Tire pressure (PSI) 45 Bicycle checkout Audio player OK Cancel
    23. 23. Standards – Current Status <ul><li>XQuery </li></ul><ul><ul><li>W3C Recommendation: January 2007 </li></ul></ul><ul><ul><li>XQuery Update: W3C Candidate Recommendation </li></ul></ul><ul><ul><li>XQuery and XPath Full Text: W3C Candidate Recommendation </li></ul></ul><ul><li>XProc </li></ul><ul><ul><li>W3C Candidate Recommendation </li></ul></ul><ul><li>XForms </li></ul><ul><ul><li>Version 1.0: W3C Recommendation October 2003 </li></ul></ul><ul><ul><li>Version 1.1: W3C Candidate Recommendation </li></ul></ul><ul><li>XSLT </li></ul><ul><ul><li>Version 2.0: W3C Recommendation January 2007 </li></ul></ul><ul><li>XSL-FO </li></ul><ul><ul><li>Version 1.1: W3C Recommendation December 2006 </li></ul></ul><ul><li>S1000D </li></ul><ul><ul><li>Issue 4.x: March 2009 </li></ul></ul>
    24. 24. A Travel Example XML Database Hotel x Hotel y Trail A Attraction 1 Review A Attraction 2 Attraction 3 Review B Review C International travel guides XQuery: “ Select all content for my trip” Select country, region, hotel standard, and cultural interests Trail A Attraction 1 Review A Attraction 3 Effectivity: Short description Target delivery device is a PDA, so filter short-form description Trail A Attraction 1 Review A Attraction 3 Transform Format content to fit constraints of PDA screen Trail A Attraction 1 Review A Attraction 3 Trail A Attraction 1 Review A Attraction 3
    25. 25. User Supplied Information: Example XML fragment <rating> <page>index.html</page> <rate>3</rate> </rating> Rate this page Response Average Rating 2.56 Response Service Only for registered users Response Filter Store Calculate average Post-processor
    26. 26. British Medical Journal <ul><li>Challenges </li></ul><ul><ul><li>Reduce costs of generating, managing and updating publications </li></ul></ul><ul><ul><li>Provide more relevant content to customers </li></ul></ul><ul><li>Solution </li></ul><ul><ul><li>XML content management </li></ul></ul><ul><ul><li>Content fragments reused across publications </li></ul></ul><ul><ul><li>Content served dynamically to users based upon profiles and preferences </li></ul></ul><ul><li>Results </li></ul><ul><ul><li>Reduced time to generate new content </li></ul></ul><ul><ul><li>50% reduction in time taken to generate publications </li></ul></ul><ul><ul><li>Doctors have more relevant content to aid medical decisions </li></ul></ul><ul><ul><li>New revenues for publisher </li></ul></ul>CASE STUDY
    27. 27. Eliminate the Model Mismatch <ul><li>XML-based infrastructure to process XML content </li></ul><ul><li>Minimize cost, complexity, and effort: XML in, XML out </li></ul><ul><li>Improves interoperability and minimizes learning curve </li></ul><ul><li>Reduces dependency on proprietary tools </li></ul>Visit for more information on these and other XML standards