SlideShare a Scribd company logo
XFormsDB
An XForms-Based Framework for Simplifying
Web Application Development


Markku Laine <markku.laine@gmail.com>

Master’s Thesis Presentation
March 9, 2010
Presentation Outline



  Part I        
 
Introduction
  Part II            Background
  Part III           The XFormsDB Markup Language
  Part IV            The XFormsDB Framework
  Part V             Sample Web Application: XFormsDB Blog
  Part VI            Conclusions




Page 2   Aalto University, School of Science and Technology, Department of Media Technology
Part I
                                                      Introduction




Page 3   Aalto University, School of Science and Technology, Department of Media Technology
Introduction



  Developing even simple multi-user Web applications is a complex
   task
  The author has to master many programming languages and
   paradigms
 -  Client side:          (X)HTML+CSS+JavaScript
 -  Server side:          PHP/J2EE/Ruby on Rails
 -  Database:             SQL/Object-Relational Mapping (ORM)

  The bulk of Web content authors are non-programmers




Page 4   Aalto University, School of Science and Technology, Department of Media Technology
The Main Research Question




 Is it possible to extend the XForms markup language in such a way
 that users can build useful, highly interactive multi-user Web
 applications quickly and easily using purely declarative languages?




Page 5   Aalto University, School of Science and Technology, Department of Media Technology
Part II
                                                      Background




Page 6   Aalto University, School of Science and Technology, Department of Media Technology
XForms



  An XML-based forms technology
   and the successor to HTML forms
 -  A high-level declarative language for
    defining rich Web user interfaces
 -  Client-side technology
 -  Turing complete

  W3C Recommendation since 2003
  Architecture
 -  Based on Model-View-Controller (MVC)
 -  Instance Data (XML)
 -  XForms Model
 -  XForms User Interface
 -  XForms Submit Protocol

Page 7   Aalto University, School of Science and Technology, Department of Media Technology
Example: An XHTML+XForms Document


<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:xforms="http://
   www.w3.org/2002/xforms">
  <head>
    <title>Mailing List</title>
     <xforms:model>
       <xforms:instance id="form-instance">
         <form xmlns=""><email /></form>
       </xforms:instance>
       <xforms:bind nodeset="instance( 'form-instance' )/email" type="xforms:email" required="true()" />
       <xforms:submission id="form-submission" ref="instance( 'form-instance' )" resource="/form-handler"
                           method="post" replace="none">
          <xforms:load resource="thankyou.xhtml" ev:event="xforms-submit-done" />
          <xforms:load resource="error.xhtml" ev:event="xforms-submit-error" />
      </xforms:submission>
    </xforms:model>
  </head>
  <body>
    <h1>Mailing List</h1>
    <p>
      <xforms:input ref="instance( 'form-instance' )/email"><xforms:label>Email:</xforms:label></xforms:input>
      <xforms:submit submission="form-submission"><xforms:label>Subscribe</xforms:label></xforms:submit>
    </p>
  </body>
</html>


 Page 8     Aalto University, School of Science and Technology, Department of Media Technology
Part III
                                The XFormsDB Markup Language




Page 9   Aalto University, School of Science and Technology, Department of Media Technology
Overview



  An extension to the XForms markup language
 -  A pure superset of XForms 1.1

  Naturally extends XForms with common server-side and database
   related functionalities
 -  Can be thought of as "XForms Server Pages"
 -  Functionalities include, among others: querying and updating (with or without data
    synchronization) data stored in data sources, error handling, state maintenance as well
    as authentication and access control
 -  Easily extensible, i.e., new server-side functionalities can be easily added to the
    language




Page 10   Aalto University, School of Science and Technology, Department of Media Technology
Example: An XHTML+XFormsDB Document


<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:xforms="http://
   www.w3.org/2002/xforms" xmlns:xformsdb="http://www.tml.tkk.fi/2007/xformsdb">
  <head>
    <title>Mailing List</title>
    <xforms:model>
      <xforms:instance id="form-instance">
         <form xmlns=""><email /></form>
      </xforms:instance>
      <xforms:bind nodeset="instance( 'form-instance' )/email" type="xforms:email" required="true()" />
       <xforms:bind nodeset="instance( 'form-request-instance' )/xformsdb:var[ @name = 'email' ]"
                   calculate="instance( 'form-instance' )/email" />
      <xformsdb:instance id="form-request-instance">
        <xformsdb:query datasrc="mailing-list-data-source" doc="mailing_list.xml">
            <xformsdb:expression resource="xq/form_handler.xq" />
            <xformsdb:var name="email" />
        </xformsdb:query>
      </xformsdb:instance>
      <xformsdb:submission id="form-submission" requestinstance="form-request-instance"
        expressiontype="all" replace="none">
        <xforms:load resource="thankyou.xhtml" ev:event="xforms-submit-done" />
        <xforms:load resource="error.xhtml" ev:event="xformsdb-request-error" />
      </xformsdb:submission>
    </xforms:model>
  </head>
  ...

 Page 11    Aalto University, School of Science and Technology, Department of Media Technology
Part IV
                                        The XFormsDB Framework




Page 12   Aalto University, School of Science and Technology, Department of Media Technology
Overview



  Implements the XFormsDB markup language
  A Java-based, generic server-side component
 -  Provides the integration services to heterogeneous data sources as well as common
    server-side functionalities

  Bundled with
 -  An XForms processor (Orbeon Forms)
 -  A native XML database (eXist-db)

  An extremely powerful XForms/REST/XQuery (XRX) framework
 -  Allows for the rapid development of entire Web applications using a single document and
    under a single programming paradigm




Page 13   Aalto University, School of Science and Technology, Department of Media Technology
High-Level Architecture




Page 14   Aalto University, School of Science and Technology, Department of Media Technology
Part V
                        Sample Web Application: XFormsDB Blog




Page 15   Aalto University, School of Science and Technology, Department of Media Technology
XFormsDB Blog



  An online journal Web tool for
   publishing personal contents
  Three (3) separate Web pages
   and six to ten (6-10) main
   views
  ~3000 lines of code
 -  9% related to XFormsDB & XQuery

  Normal response times
  LIVE demo




Page 16   Aalto University, School of Science and Technology, Department of Media Technology
Part VI
                                                      Conclusions




Page 17   Aalto University, School of Science and Technology, Department of Media Technology
Results



  The XFormsDB markup language
 -  Naturally extends the XForms markup language to include common server-side and
    database related functionalities
 -  New server-side functionalities can be easily added to the language
 -  For users who are already familiar with XForms, the language is relatively easy to learn

  The XFormsDB framework
 -  Supports most common browsers and heterogeneous data sources
 -  Includes built-in support for synchronized updates
 -  Allows for the rapid development of entire Web applications using a single document
    and under a single programming model




Page 18   Aalto University, School of Science and Technology, Department of Media Technology
Future Work



  Refine the syntax of the XFormsDB markup language
  Implement support for a subset of XML Binding Language (XBL) 2.0
   on the server side
 -  Allows the use of highly reusable components

  Implement a Web-based visual tool for developing XFormsDB Web
   applications
 -  Makes the technology accessible to non-technical users

  Add built-in support for OpenID authentication
 -  Users could use an existing account to sign in to XFormsDB Web applications

  Improve current transaction support
 -  Grouping of synchronized updates



Page 19   Aalto University, School of Science and Technology, Department of Media Technology
Thank You!




                           Questions? Comments?

                                        <markku.laine@gmail.com>




Page 20   Aalto University, School of Science and Technology, Department of Media Technology

More Related Content

PDF
XIDE: Expanding End-User Web Development
PDF
Wttc2013 econ impact svg
PDF
Connecting XForms to Databases: An Extension to the XForms Markup Language
PDF
Monitoring the Spreading of Infectious Diseases in Finland
PDF
Editable Documents on the Web
PPTX
NPG praktiki
PDF
Talleres Altube
 
PDF
Catálogo de Prestigio AFM 2013
 
XIDE: Expanding End-User Web Development
Wttc2013 econ impact svg
Connecting XForms to Databases: An Extension to the XForms Markup Language
Monitoring the Spreading of Infectious Diseases in Finland
Editable Documents on the Web
NPG praktiki
Talleres Altube
 
Catálogo de Prestigio AFM 2013
 

Viewers also liked (6)

PDF
28 BIEMH Bienal Española de Máquina-Herramienta Del 2 al 7 de Junio de 2014. ...
 
PDF
Chinese Aerospace Catalogue
 
PPTX
Presentation [superscript] sup
PDF
Wind Energy Catalogue
 
PDF
Filomena dias a empresa de inserção viveiros floricultura dianova
PDF
Local Storage for Web Applications
28 BIEMH Bienal Española de Máquina-Herramienta Del 2 al 7 de Junio de 2014. ...
 
Chinese Aerospace Catalogue
 
Presentation [superscript] sup
Wind Energy Catalogue
 
Filomena dias a empresa de inserção viveiros floricultura dianova
Local Storage for Web Applications
Ad

Similar to XFormsDB: An XForms-Based Framework for Simplifying Web Application Development (20)

PDF
Extending XForms with Server-Side Functionality
PPTX
Editing XML data with XForms
DOCX
XForms Essentials
PPT
XForms for Metadata Creation
PPTX
Web-Engineering-Lec-14 (1 ).pptx
PPTX
Web-Engineering-Lec-14 (1) .pptx
PDF
XForms and eXist: A Perfect Couple
PPT
XRX Presentation to Minnesota OTUG
PPT
XForms for Metadata creation
 
PPTX
Ajax presentation
PPT
XForms
 
PPT
Chapter09
ODP
XForms workshop slides
PPT
Applications of XML Pipelines
PPT
VFP & Ajax
PDF
XML and XML Applications - Lecture 04 - Web Information Systems (WE-DINF-11912)
PPT
Building a Scalable XML-based Dynamic Delivery Architecture: Standards and Be...
PDF
Ad107 - Enhance Your Existing Applications with XPages
DOC
PPTX
Class 21
Extending XForms with Server-Side Functionality
Editing XML data with XForms
XForms Essentials
XForms for Metadata Creation
Web-Engineering-Lec-14 (1 ).pptx
Web-Engineering-Lec-14 (1) .pptx
XForms and eXist: A Perfect Couple
XRX Presentation to Minnesota OTUG
XForms for Metadata creation
 
Ajax presentation
XForms
 
Chapter09
XForms workshop slides
Applications of XML Pipelines
VFP & Ajax
XML and XML Applications - Lecture 04 - Web Information Systems (WE-DINF-11912)
Building a Scalable XML-based Dynamic Delivery Architecture: Standards and Be...
Ad107 - Enhance Your Existing Applications with XPages
Class 21
Ad

Recently uploaded (20)

PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Approach and Philosophy of On baking technology
PPTX
Big Data Technologies - Introduction.pptx
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Assigned Numbers - 2025 - Bluetooth® Document
Network Security Unit 5.pdf for BCA BBA.
MYSQL Presentation for SQL database connectivity
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Spectral efficient network and resource selection model in 5G networks
The Rise and Fall of 3GPP – Time for a Sabbatical?
20250228 LYD VKU AI Blended-Learning.pptx
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Dropbox Q2 2025 Financial Results & Investor Presentation
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Unlocking AI with Model Context Protocol (MCP)
Advanced methodologies resolving dimensionality complications for autism neur...
Building Integrated photovoltaic BIPV_UPV.pdf
Mobile App Security Testing_ A Comprehensive Guide.pdf
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Diabetes mellitus diagnosis method based random forest with bat algorithm
Approach and Philosophy of On baking technology
Big Data Technologies - Introduction.pptx
Reach Out and Touch Someone: Haptics and Empathic Computing
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf

XFormsDB: An XForms-Based Framework for Simplifying Web Application Development

  • 1. XFormsDB An XForms-Based Framework for Simplifying Web Application Development Markku Laine <markku.laine@gmail.com> Master’s Thesis Presentation March 9, 2010
  • 2. Presentation Outline   Part I Introduction   Part II Background   Part III The XFormsDB Markup Language   Part IV The XFormsDB Framework   Part V Sample Web Application: XFormsDB Blog   Part VI Conclusions Page 2 Aalto University, School of Science and Technology, Department of Media Technology
  • 3. Part I Introduction Page 3 Aalto University, School of Science and Technology, Department of Media Technology
  • 4. Introduction   Developing even simple multi-user Web applications is a complex task   The author has to master many programming languages and paradigms -  Client side: (X)HTML+CSS+JavaScript -  Server side: PHP/J2EE/Ruby on Rails -  Database: SQL/Object-Relational Mapping (ORM)   The bulk of Web content authors are non-programmers Page 4 Aalto University, School of Science and Technology, Department of Media Technology
  • 5. The Main Research Question Is it possible to extend the XForms markup language in such a way that users can build useful, highly interactive multi-user Web applications quickly and easily using purely declarative languages? Page 5 Aalto University, School of Science and Technology, Department of Media Technology
  • 6. Part II Background Page 6 Aalto University, School of Science and Technology, Department of Media Technology
  • 7. XForms   An XML-based forms technology and the successor to HTML forms -  A high-level declarative language for defining rich Web user interfaces -  Client-side technology -  Turing complete   W3C Recommendation since 2003   Architecture -  Based on Model-View-Controller (MVC) -  Instance Data (XML) -  XForms Model -  XForms User Interface -  XForms Submit Protocol Page 7 Aalto University, School of Science and Technology, Department of Media Technology
  • 8. Example: An XHTML+XForms Document <?xml version="1.0" encoding="UTF-8"?> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:xforms="http:// www.w3.org/2002/xforms"> <head> <title>Mailing List</title> <xforms:model> <xforms:instance id="form-instance"> <form xmlns=""><email /></form> </xforms:instance> <xforms:bind nodeset="instance( 'form-instance' )/email" type="xforms:email" required="true()" /> <xforms:submission id="form-submission" ref="instance( 'form-instance' )" resource="/form-handler" method="post" replace="none"> <xforms:load resource="thankyou.xhtml" ev:event="xforms-submit-done" /> <xforms:load resource="error.xhtml" ev:event="xforms-submit-error" /> </xforms:submission> </xforms:model> </head> <body> <h1>Mailing List</h1> <p> <xforms:input ref="instance( 'form-instance' )/email"><xforms:label>Email:</xforms:label></xforms:input> <xforms:submit submission="form-submission"><xforms:label>Subscribe</xforms:label></xforms:submit> </p> </body> </html> Page 8 Aalto University, School of Science and Technology, Department of Media Technology
  • 9. Part III The XFormsDB Markup Language Page 9 Aalto University, School of Science and Technology, Department of Media Technology
  • 10. Overview   An extension to the XForms markup language -  A pure superset of XForms 1.1   Naturally extends XForms with common server-side and database related functionalities -  Can be thought of as "XForms Server Pages" -  Functionalities include, among others: querying and updating (with or without data synchronization) data stored in data sources, error handling, state maintenance as well as authentication and access control -  Easily extensible, i.e., new server-side functionalities can be easily added to the language Page 10 Aalto University, School of Science and Technology, Department of Media Technology
  • 11. Example: An XHTML+XFormsDB Document <?xml version="1.0" encoding="UTF-8"?> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:xforms="http:// www.w3.org/2002/xforms" xmlns:xformsdb="http://www.tml.tkk.fi/2007/xformsdb"> <head> <title>Mailing List</title> <xforms:model> <xforms:instance id="form-instance"> <form xmlns=""><email /></form> </xforms:instance> <xforms:bind nodeset="instance( 'form-instance' )/email" type="xforms:email" required="true()" /> <xforms:bind nodeset="instance( 'form-request-instance' )/xformsdb:var[ @name = 'email' ]" calculate="instance( 'form-instance' )/email" /> <xformsdb:instance id="form-request-instance"> <xformsdb:query datasrc="mailing-list-data-source" doc="mailing_list.xml"> <xformsdb:expression resource="xq/form_handler.xq" /> <xformsdb:var name="email" /> </xformsdb:query> </xformsdb:instance> <xformsdb:submission id="form-submission" requestinstance="form-request-instance" expressiontype="all" replace="none"> <xforms:load resource="thankyou.xhtml" ev:event="xforms-submit-done" /> <xforms:load resource="error.xhtml" ev:event="xformsdb-request-error" /> </xformsdb:submission> </xforms:model> </head> ... Page 11 Aalto University, School of Science and Technology, Department of Media Technology
  • 12. Part IV The XFormsDB Framework Page 12 Aalto University, School of Science and Technology, Department of Media Technology
  • 13. Overview   Implements the XFormsDB markup language   A Java-based, generic server-side component -  Provides the integration services to heterogeneous data sources as well as common server-side functionalities   Bundled with -  An XForms processor (Orbeon Forms) -  A native XML database (eXist-db)   An extremely powerful XForms/REST/XQuery (XRX) framework -  Allows for the rapid development of entire Web applications using a single document and under a single programming paradigm Page 13 Aalto University, School of Science and Technology, Department of Media Technology
  • 14. High-Level Architecture Page 14 Aalto University, School of Science and Technology, Department of Media Technology
  • 15. Part V Sample Web Application: XFormsDB Blog Page 15 Aalto University, School of Science and Technology, Department of Media Technology
  • 16. XFormsDB Blog   An online journal Web tool for publishing personal contents   Three (3) separate Web pages and six to ten (6-10) main views   ~3000 lines of code -  9% related to XFormsDB & XQuery   Normal response times   LIVE demo Page 16 Aalto University, School of Science and Technology, Department of Media Technology
  • 17. Part VI Conclusions Page 17 Aalto University, School of Science and Technology, Department of Media Technology
  • 18. Results   The XFormsDB markup language -  Naturally extends the XForms markup language to include common server-side and database related functionalities -  New server-side functionalities can be easily added to the language -  For users who are already familiar with XForms, the language is relatively easy to learn   The XFormsDB framework -  Supports most common browsers and heterogeneous data sources -  Includes built-in support for synchronized updates -  Allows for the rapid development of entire Web applications using a single document and under a single programming model Page 18 Aalto University, School of Science and Technology, Department of Media Technology
  • 19. Future Work   Refine the syntax of the XFormsDB markup language   Implement support for a subset of XML Binding Language (XBL) 2.0 on the server side -  Allows the use of highly reusable components   Implement a Web-based visual tool for developing XFormsDB Web applications -  Makes the technology accessible to non-technical users   Add built-in support for OpenID authentication -  Users could use an existing account to sign in to XFormsDB Web applications   Improve current transaction support -  Grouping of synchronized updates Page 19 Aalto University, School of Science and Technology, Department of Media Technology
  • 20. Thank You! Questions? Comments? <markku.laine@gmail.com> Page 20 Aalto University, School of Science and Technology, Department of Media Technology