Position paper on Web Applications Submitted by Torsten Scheck, S.O.T. GmbH, Germany May 28, 2004 Abstract As web and application developers from the general community we summarize our experiences in creating web applications using official standards and corresponding tools. We demonstrate the problems we encountered and point out missing functionality. To accelerate the development, we suggest that the W3C creates a working group which manages publicly examined prototypes of common applications using draft W3C standards. Goal After years of trouble with proprietary tools we decided to commit to W3C standards and to use a much more flexible development and runtime system based on server-based scripting and web browsers. Requirements Our customers need very reliable, fast and efficient data entry applications. The main data entry tasks should only require the numeric keyboard or similar special purpose keyboards. The applications must be able to accept and process all input no matter how fast it is typed. After the completion of each input field, additional information must be retrieved and displayed for supplement and control. For efficient software deployment, test, and maintenance as much functionality as possible must be requested from application servers. Example: in contrast to a fat web application which know about data validity and the gui, our thin solution should retrieve additional gui elements and event logic from the server. No static application logic must reside in the web client's memory. Research and prototyping In summer 2003 we started creating prototypes of existing S.O.T. applications using XHTML, Javascript, DOM, XML, PHP, Mozilla Browser, and Apache. Exclusively for this workshop one simple prototype can be found online until July 2004 at: http://www.sot.de/~torsten/prototype/ [Mozilla required!] Features: * data exchange via XML without web page reload * table object for display and editing of database rows * user friendly input field navigation (Enter, Arrow & F-Keys) * new keypress handler adjusted to input field type (multiline, radio buttons, ...) or to individual field * basic input field validation (int, decimal, date, datetime) * modal lookup window * date and time completion Good The fact that we invested so much time in this new technology shows that we were very pleased with most of the available functionality: * Efficient gui building with server-scripts generating XHTML * data exchange with XMLHttpRequest(),DOMParser(),XMLSerializer() * PHP scripts processing XML requests from the browser and sending XML results back (e.g. data from database) * extensible DOM model (adding an attribute "datatype" to an input field works perfectly both from the XHTML and from the JS side) * Mozilla DOM inspector and JS Debugger Bad The prototyping phase took us 3 man months. It seemed that nobody has ever tried something like this. Reference documentation and examples were very hard to find. When we went into implementation details we discovered some needed functions which are not (yet) defined by W3C standards. In these cases we went along with a Mozilla-specific solution (text selection; key events) soothed by the fact that Mozilla is platform independent. In the case that even Mozilla didn't provide the function, we built our own solution (Tab-Enter-conversion; input field framework) resulting in a big JavaScript base library. Putting additional gui elements, which were created by a server-side script, into the current DOM tree was problematic, as some functions to handle XHTML documents were either missing in Mozilla or labor-intensive to use. It was very wasteful to display, move, highlight, select, scroll a representation of database rows. Opening additional browser windows for modal search dialogs took too much time. The user was confused when he had to wait for a window to be displayed. Functions to efficiently handle multiple browser windows are needed. Slow window changes or unclear focus change behavior caused some key presses to end up at the wrong input element or window or to disappear. Due to these limits of the current web standards and of the available tools, we decided that the time is not ripe for us to make this move. Bottom line The linchpin of a new technology's penetration is the small companies' ability to adopt it. We are sure that the W3C can create the desperately needed web application standards on the foundation of the current standards. Early created public prototypes of standard web applications using the new technology will attract the development community and allow timely feedback. To accomplish this a new W3C working group could coordinate and document the work flow between developer community, standards creation group, browser developers, and prototype developers. About SOT SOT GmbH delivers flexible and comprehensive enterprise solutions for trading companies. Specialized in electronic trading systems for perishable goods, SOT acts as a full service solution provider, including software development, systems integration and consultancy services. The company is located in the charming half-timbered town Mosbach in South Germany. Founded in 1986, SOT soon became the market leader in its niche. The core products are individual auction and ERP systems, which are developed utilizing open source technology where possible. This allows the creation of durable, flexible and powerful business critical applications. SOT's customers include Germany's major agricultural cooperative societies.