Webformer:a Rapid Application Development Toolkit for Writing Ajax Web Form Application

Similar documents
An introduction to creating JSF applications in Rational Application Developer Version 8.0

A Model of the Operation of The Model-View- Controller Pattern in a Rails-Based Web Server

HTML Form Widgets. Review: HTML Forms. Review: CGI Programs

GUI and Web Programming

An introduction to creating Web 2.0 applications in Rational Application Developer Version 8.0

Design and Functional Specification

Preface. Motivation for this Book

ICE Trade Vault. Public User & Technology Guide June 6, 2014

THE NEXT GENERATION OF DATA ANALYSIS TOOLS Alexandros Karakos, Pericles Karakos

Web-JISIS Reference Manual

Web Cloud Architecture

Ajax Development with ASP.NET 2.0

Web Application Development

IBM BPM V8.5 Standard Consistent Document Managment

Portals and Hosted Files

Integrating REST with RIA-Bus for Efficient Communication and Modularity in Rich Internet Applications

Design Approaches of Web Application with Efficient Performance in JAVA

Enterprise Application Development In Java with AJAX and ORM

Google Web Toolkit. Introduction to GWT Development. Ilkka Rinne & Sampo Savolainen / Spatineo Oy

Developing Web Browser Recording Tools. Using Server-Side Programming Technology

Client-side Web Engineering From HTML to AJAX

Credits: Some of the slides are based on material adapted from

ASP.NET: THE NEW PARADIGM FOR WEB APPLICATION DEVELOPMENT

Conference Paper. Distributed Performance Systems using HTML5 and Rails. Dr. Jesse Allison 1.

Introducing Apache Pivot. Greg Brown, Todd Volkert 6/10/2010

AJAX. Gregorio López López Juan Francisco López Panea

Performance Testing for Ajax Applications

ASP.NET Using C# (VS2012)

How-To: Submitting PDF forms to SharePoint from custom websites

The presentation explains how to create and access the web services using the user interface. WebServices.ppt. Page 1 of 14

Accessing Data with ADOBE FLEX 4.6

Web Developer Toolkit for IBM Digital Experience

EZcast technical documentation

WIRIS quizzes web services Getting started with PHP and Java

Framework as a master tool in modern web development

THE UNIVERSITY OF HONG KONG IMPACT CASE HISTORY. ebxml Message Gateway Hermes and B2B Connector Provide a Secure and Reliable Platform for E-Business

Generating Test Cases With High Branch Coverage for Web Applications

Mobility Introduction Android. Duration 16 Working days Start Date 1 st Oct 2013

Advantage of Jquery: T his file is downloaded from

AJAX Toolkit Framework

Rich Internet Applications

Example. Represent this as XML

YouTrack MPS case study

IBM Rational Web Developer for WebSphere Software Version 6.0

Japan Communication India Skill Development Center

Introduction to the. Barracuda Embedded Web-Server

10CS73:Web Programming

EMC Documentum Composer

Rich User Interfaces for Web-Based Corporate Applications

Google Web Toolkit. Progetto di Applicazioni Software a.a. 2011/12. Massimo Mecella

Table of contents. HTML5 Data Bindings SEO DMXzone

Web-JISIS 10 March 2016 Reference Manual

Application layer Web 2.0

Jaspersoft APIs. Integrating BI with your Applications. Community and Professional Editions

Adding Panoramas to Google Maps Using Ajax

How To Build A Web App

Microsoft.Realtests v by.ERICA.50q

Creating Web-Based EDI Applications with AJAX Joseph R. McVerry American Coders, Ltd & Ralph Naylor June 28, 2006

Client-Side Web Programming (Part 2) Robert M. Dondero, Ph.D. Princeton University

Rich-Internet Anwendungen auf Basis von ColdFusion und Ajax

Software Design Specification

4.2 Understand Microsoft ASP.NET Web Application Development

IBM Digital Experience. Using Modern Web Development Tools and Technology with IBM Digital Experience

How to make a good Software Requirement Specification(SRS)

Software Requirements Specification For Real Estate Web Site

The Past, Present and Future of XSS Defense Jim Manico. HITB 2011 Amsterdam

Google Web Toolkit (GWT) Architectural Impact on Enterprise Web Application

SUBJECT CODE : 4074 PERIODS/WEEK : 4 PERIODS/ SEMESTER : 72 CREDIT : 4 TIME SCHEDULE UNIT TOPIC PERIODS 1. INTERNET FUNDAMENTALS & HTML Test 1

Implementing Mobile Thin client Architecture For Enterprise Application

How To Write An Ria Application

Designing and Implementing Support for Web Browser-Based UIs by Using Ajax Technology

Whitepaper. Rich Internet Applications. Frameworks Evaluation. Document reference: TSL-SES-WP0001 Januar

Up and Running with LabVIEW Web Services

Sabre Red Apps. Developer Toolkit Overview. October 2014

Web Design and Development ACS Chapter 13. Using Forms 11/30/2015 1

1 Classified Script. User Guide v1.0

Selenium Automation set up with TestNG and Eclipse- A Beginners Guide

Policies and Procedures for creating and maintaining a site

metaengine DataConnect For SharePoint 2007 Configuration Guide

Implementing a Web-based Transportation Data Management System

Electronic Data Solutions. E-Prescription System Software Requirement Specifications. Version 1.0

Web Presentation Layer Architecture

<Insert Picture Here> Michael Hichwa VP Database Development Tools Stuttgart September 18, 2007 Hamburg September 20, 2007

DNNCentric Custom Form Creator. User Manual

AJAX and jmaki for Web 2.0 Development using Java. Inyoung Cho Java Technology Evangelist Sun Microsystems, Inc.

LICENSE4J FLOATING LICENSE SERVER USER GUIDE

Kaldeera Workflow Designer 2010 User's Guide

Introduction to Ingeniux Forms Builder. 90 minute Course CMSFB-V6 P

Designing and Implementing an Online Bookstore Website

Some Issues on Ajax Invocation

Developing XML Solutions with JavaServer Pages Technology

Software Development Interactief Centrum voor gerichte Training en Studie Edisonweg 14c, 1821 BN Alkmaar T:

Transition your MCPD Web Developer Skills to MCPD ASP.NET Developer 3.5 (VB)

Eclipse Web Tools Platform. Naci Dai (Eteration), WTP JST Lead

Budget Event Management Design Document

Novell Identity Manager

HTML5. Turn this page to see Quick Guide of CTTC

Term Paper. P r o f. D r. E d u a r d H e i n d l. H o c h s c h u l e F u r t w a n g e n U n i v e r s i t y. P r e s e n t e d T o :

Learn how to create web enabled (browser) forms in InfoPath 2013 and publish them in SharePoint InfoPath 2013 Web Enabled (Browser) forms

CommonSpot Content Server Version 6.2 Release Notes

Transcription:

Webformer:a Rapid Application Development Toolkit for Writing Ajax Web Form Application David W.L. Cheung Thomas Y.T. Lee Patrick K.C. Yee Center for E-Commerce Infrastructure Development (CECID), Department of Computer Science, University of Hong Kong December 10, 2007

Motivation Web forms are commonly used to capture data on the web. With Asynchronous Javascript and XML (Ajax) programming, interactive web forms can be created. However, Ajax programming is complex in a way that the model-view-controller (MVC) code is not clearly separated. We have developed a rapid application development toolkit called Webformer to simplify web form programming with Ajax. Webformer provides a scripting language called Web Form Application Language (WebFAL) for modeling web forms and generate Javascript/HTML code.

Webformer Architecture We have designed an XML-based scripting language called Web Form Application Language (WebFAL) for modeling web forms. A web form model written in WebFAL is complied by our Webformer Complier (wfc) to generate the Javascript/HTML source to run on the browser. A JavaScript engine called webformer.js is provided as provides a Javascript library to handle the MVC interactions on the browser, e.g. data validation and autocompletion, XML document object model (DOM) management, and Ajax messaging. A Java library called webformer.jar is provided for parsing and composing the messages in these formats to ease the programming the Java Servlet handlers on the server-side.

Web Form Application Development Lifecycle Two-phase life-cycle facilitates segregation of duties between software developers and web designers: Phase 1. The software developer first specifies the model and controller of a web form in WebFAL. Phase 2. The model is then compiled into an HTML template for the web designer to enhance the UI view. XSD+webformer.jar Develop server-side handlers Gather application requirements Specify web form in WebFAL WebFAL script Compile WebFAL script Deploy servlets and HTML file Javascript/ HTML+webformer.js Enhance HTML design

Sample Web Form Application 1. The user enters his username. The entered username is validated on-the-fly against the server database. 2. The user enters the album name while the server suggests the possible names that match what the user types. 3. The user can upload multiple photos. He can click on the [Add Photo] or the [Delete Photo] link to add or delete a upload entry. 4. In each upload entry, the user specifies the photo file name, whether he wants to share the photo, and the number of prints of the photo he wants to order. 5. The user clicks on the Submit button to send the form data to the server.

Web Form Application Language (WebFAL) A WebFAL document has a root element <WebForm/> and consists of five kinds of child elements: <Model/>, <Validation/>, <Selection/>, <Event/>, and <SubmitUrl/>. <WebForm name="photoupload"> <Model>...</Model> <Validation>...</Validation>... <Selection>...</Selection>... <Event>...</Event>... <SubmitUrl>...</SubmitUrl> </WebForm>

<Model/> Element Specifies the data model of the web form as a hierarchical structure of data groups (<Group/>) and data fields (<Field/>). Each <Field/> is associated with a name and a data type. Possible data types include: String, Number, Date, DateTime, Time, File and Boolean. A <Group/> contains a list of <Field/>s or other <Group/>s. The minimum and maximum occurrence for a <Field/> or <Group/> on the web form can be specified. <Model> <Field name="username">string</field> <Field name="album">string</field> <Group name="photo" minoccurs="1" maxoccurs="unbounded"> <Field name="file">file</field> <Field name="share">string</field> <Field name="prints">number</field> </Group> </Model>

<Validation/> Element Specifies a set of validation rules for a <Field/> or a <Group/>. There are two types of validation rules: browser validation rules and server validation rules. Browser validation rules are some static constraints for <Field/>s that can be checked by the browser without contacting the server. Browser validation rules are some static constraints for <Field/>s that can be checked by the browser without contacting the server. Available static validation constraints are <RegExp/>, <Length/>, <MinLength/>, <MaxLength/>, <TotalDigits/>, <FractionDigits/>, <MinInclusive/>, <MaxInclusive/>, <MinExclusive/>, and <MaxExclusive/>. An error message may be specified so that that message is reported on the HTML page when the validation fails.

<Validation/> Element (Continued) A server validation is dynamically performed by the server. The <HandlerUrl/> specifies the URL of the server handler that performs the validation. At runtime, when the server validation event is triggered, an Ajax request containing the data field content is sent to the specified handler. The server validates the content dynamically and responses to the browser with the validation result. <Validation id="valprints"> <FractionDigits errormsg="must be integer">0</fractiondigits> <MinInclusive errormsg="must be greater than 0">0</MinInclusive> <MaxInclusive errormsg="must be less than 10">10</MaxInclusive> </Validation> <Validation id="valuser"> <MinLength errormsg="must be longer than 6 characters">6</minlength> <MaxLength errormsg="must be shorter than 20 characters">20</maxlength> <HandlerUrl>/ajax/userval</HandlerUrl> </Validation>

<Selection/> Element Provides either a static set of coded values for a <Field/> or specifies the URL of a server handler that provides some suggested values. Coded values are a set of permissible values for a data field. A <Code/> can be optionally given a text attribute, which is a description for presenting on the web page. Suggested values are dynamically generated by a server handler through an XMLHttpRequest. <Selection id="selshare"> <Code text="share">public</code> <Code text="don t share"> private </Code> </Selection> <Selection id="selalbum"> <HandlerUrl> /ajax/albumsuggest </HandlerUrl> </Selection> <HandlerUrl/> specifies the URL of the server handler.

<Event/> Element Specifies an event that can take place in a <Field/> in order to trigger some validation or selection operations. Each <Event/> binds a <Field/> to one or more <Validation/>s or <Selection/>s. The reference to a <Field/> is the path of <Group/> and <Field/> names, delimited by a dot, from the root of the <Model/> to that <Field/>, e.g. Photo.Description. <Event> <FieldRef>Username</FieldRef> <ValidationRef>ValUser</ValidationRef> <Trigger>FocusOff</Trigger> </Event> <Event> <FieldRef>Album</FieldRef> <ValidationRef>SelAlbum</ValidationRef> <Trigger>KeyUp</Trigger> </Event> <Trigger/> specifies the event type of the data field that triggers the specified validations/selections.

<SubmitUrl/> Element Specifies the URL of the server handler that processes the data submission. When a user clicks on the submit button in the web form, the form data will be re-validated, packaged in an XML document, and submitted to that URL. <SubmitUrl>ajax/photoupload</SubmitUrl>

Compilation of WebFAL Scripts wfc compiles the WebFAL script into an JavaScript/HTML file and picks the HTML component that best represents a <Field/>. JavaScript code is embedded to handle the validation and selection events for the component. The web designer may modify this HTML file to enhance the view and content of the web page. wfc also generates an XSD file from the WebFAL script that specifies the XML format of the web form data for submission to the server. <Model/> and <Validation/>s are converted into XSD types and elements. The structure of <Group/>s and <Field/>s in <Model/> determines the XML structure while the data type of a <Field/> determines its XSD data type.

Sample Generated Code Fragments <html> <head> <title>photoupload</title> <script language="javascript" src="webformer.js"></script>... <input type="album" id="album_1.1" onkeyup="selfld(this) "/>... <input type="text" id="photo.prints_1.1" onblur="valfld(this)"/>... <a href="javascript:addgrp(photo)" id="photo">[add Photo]</a>... </body> </html>

Conclusion Contributions: Rapid application development framework for web client and server programming: WebFAL web form modeling language and wfc compiler. Facilitation of two-phase web development life-cycle. Future work: Choice of HTML controls for data fields. The current version of webformer does not allow the user to choose an HTML control (e.g. radio button or drop-down list) for a data field (e.g. coded value field). Inter-field data validation. GUI environment for specifying WebFAL.