SlideShare a Scribd company logo
1 of 20
Download to read offline
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

Viewers also liked

28 BIEMH Bienal Española de Máquina-Herramienta Del 2 al 7 de Junio de 2014. ...
28 BIEMH Bienal Española de Máquina-Herramienta Del 2 al 7 de Junio de 2014. ...28 BIEMH Bienal Española de Máquina-Herramienta Del 2 al 7 de Junio de 2014. ...
28 BIEMH Bienal Española de Máquina-Herramienta Del 2 al 7 de Junio de 2014. ...AFM
 
Chinese Aerospace Catalogue
Chinese Aerospace CatalogueChinese Aerospace Catalogue
Chinese Aerospace CatalogueAFM
 
Presentation [superscript] sup
Presentation [superscript] sup Presentation [superscript] sup
Presentation [superscript] sup vaod
 
Wind Energy Catalogue
Wind Energy CatalogueWind Energy Catalogue
Wind Energy CatalogueAFM
 
Filomena dias a empresa de inserção viveiros floricultura dianova
Filomena dias a empresa de inserção viveiros floricultura   dianovaFilomena dias a empresa de inserção viveiros floricultura   dianova
Filomena dias a empresa de inserção viveiros floricultura dianovaOportunidade2020
 
Local Storage for Web Applications
Local Storage for Web ApplicationsLocal Storage for Web Applications
Local Storage for Web ApplicationsMarkku Laine
 

Viewers also liked (6)

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

Similar to XFormsDB Framework for Building Web Apps

Extending XForms with Server-Side Functionality
Extending XForms with Server-Side FunctionalityExtending XForms with Server-Side Functionality
Extending XForms with Server-Side FunctionalityMarkku Laine
 
Small Data in the large with Oppidum
Small Data in the large with OppidumSmall Data in the large with Oppidum
Small Data in the large with Oppidumstsire
 
XForms for Metadata creation
XForms for Metadata creationXForms for Metadata creation
XForms for Metadata creationeby
 
XForms for Metadata Creation
XForms for Metadata CreationXForms for Metadata Creation
XForms for Metadata Creationmw_park
 
XRX Presentation to Minnesota OTUG
XRX Presentation to Minnesota OTUGXRX Presentation to Minnesota OTUG
XRX Presentation to Minnesota OTUGOptum
 
Flex and .NET Integration
Flex and .NET IntegrationFlex and .NET Integration
Flex and .NET Integrationicaraion
 
XUL - Mozilla Application Framework
XUL - Mozilla Application FrameworkXUL - Mozilla Application Framework
XUL - Mozilla Application FrameworkUldis Bojars
 
Business Strategies for Content Management - Part 3: Publishing Web Content U...
Business Strategies for Content Management - Part 3: Publishing Web Content U...Business Strategies for Content Management - Part 3: Publishing Web Content U...
Business Strategies for Content Management - Part 3: Publishing Web Content U...TJ O'Connor
 
Introduction to Adobe Flex - Zaloni
Introduction to Adobe Flex - ZaloniIntroduction to Adobe Flex - Zaloni
Introduction to Adobe Flex - ZaloniJoseph Khan
 
Net framework
Net frameworkNet framework
Net frameworksumit1503
 
Web Service Presentation
Web Service PresentationWeb Service Presentation
Web Service Presentationguest0df6b0
 
Adobe flex an overview
Adobe flex  an overviewAdobe flex  an overview
Adobe flex an overviewSubin Sugunan
 
From Provider to Portal - a chain of interoperability
From Provider to Portal - a chain of interoperabilityFrom Provider to Portal - a chain of interoperability
From Provider to Portal - a chain of interoperabilityAndy Powell
 
Building a Scalable XML-based Dynamic Delivery Architecture: Standards and Be...
Building a Scalable XML-based Dynamic Delivery Architecture: Standards and Be...Building a Scalable XML-based Dynamic Delivery Architecture: Standards and Be...
Building a Scalable XML-based Dynamic Delivery Architecture: Standards and Be...Jerry SILVER
 

Similar to XFormsDB Framework for Building Web Apps (20)

Extending XForms with Server-Side Functionality
Extending XForms with Server-Side FunctionalityExtending XForms with Server-Side Functionality
Extending XForms with Server-Side Functionality
 
Small Data in the large with Oppidum
Small Data in the large with OppidumSmall Data in the large with Oppidum
Small Data in the large with Oppidum
 
XForms for Metadata creation
XForms for Metadata creationXForms for Metadata creation
XForms for Metadata creation
 
XForms for Metadata Creation
XForms for Metadata CreationXForms for Metadata Creation
XForms for Metadata Creation
 
XRX Presentation to Minnesota OTUG
XRX Presentation to Minnesota OTUGXRX Presentation to Minnesota OTUG
XRX Presentation to Minnesota OTUG
 
Xml applications
Xml applicationsXml applications
Xml applications
 
Flex and .NET Integration
Flex and .NET IntegrationFlex and .NET Integration
Flex and .NET Integration
 
XUL - Mozilla Application Framework
XUL - Mozilla Application FrameworkXUL - Mozilla Application Framework
XUL - Mozilla Application Framework
 
Linked Open Data & XIMDEX CMS (OKIOconf 2014)
Linked Open Data & XIMDEX CMS (OKIOconf 2014)Linked Open Data & XIMDEX CMS (OKIOconf 2014)
Linked Open Data & XIMDEX CMS (OKIOconf 2014)
 
Business Strategies for Content Management - Part 3: Publishing Web Content U...
Business Strategies for Content Management - Part 3: Publishing Web Content U...Business Strategies for Content Management - Part 3: Publishing Web Content U...
Business Strategies for Content Management - Part 3: Publishing Web Content U...
 
Introduction to Adobe Flex - Zaloni
Introduction to Adobe Flex - ZaloniIntroduction to Adobe Flex - Zaloni
Introduction to Adobe Flex - Zaloni
 
Net framework
Net frameworkNet framework
Net framework
 
Web Service Presentation
Web Service PresentationWeb Service Presentation
Web Service Presentation
 
Adobe flex an overview
Adobe flex  an overviewAdobe flex  an overview
Adobe flex an overview
 
Adobe Flex Framework
Adobe Flex FrameworkAdobe Flex Framework
Adobe Flex Framework
 
From Provider to Portal - a chain of interoperability
From Provider to Portal - a chain of interoperabilityFrom Provider to Portal - a chain of interoperability
From Provider to Portal - a chain of interoperability
 
Building a Scalable XML-based Dynamic Delivery Architecture: Standards and Be...
Building a Scalable XML-based Dynamic Delivery Architecture: Standards and Be...Building a Scalable XML-based Dynamic Delivery Architecture: Standards and Be...
Building a Scalable XML-based Dynamic Delivery Architecture: Standards and Be...
 
Ximdex & Linked Open Data (Homer Project event)
Ximdex & Linked Open Data (Homer Project event)Ximdex & Linked Open Data (Homer Project event)
Ximdex & Linked Open Data (Homer Project event)
 
Introduction Of .NET
Introduction Of .NETIntroduction Of .NET
Introduction Of .NET
 
Web Programming introduction
Web Programming introductionWeb Programming introduction
Web Programming introduction
 

Recently uploaded

TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 

Recently uploaded (20)

TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 

XFormsDB Framework for Building Web Apps

  • 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