Copyright © by Shayne R Flint Simplified Web Application Development Shayne R Flint Department of Computer Science Australian National University
Copyright © by Shayne R Flint Outline Background Existing approaches to Web development Requirements, Constraints and Design Implementation Testing Availability Future Work
Copyright © by Shayne R Flint Background Capability Dynamics research Decision Control Process Capability Dynamics Models Tool Support
Copyright © by Shayne R Flint Capability Dynamics Model manipulation Process Monitoring Agent based simulations Groupware Decision Control Process Capability Dynamics Models Tool Support (Web Applications) Internet /Intranet
Copyright © by Shayne R Flint Existing Approaches to Web Development Various Combinations of HTTP HTML, DHTML, XHTML, XML etc. Client Side scripts (JavaScript etc.) Server Side scripts (PHP etc.) JSP, ASP XUL.NET, SOAP
Copyright © by Shayne R Flint Existing Approaches to Web Development Does this make sense for web application development? Complexity, life cycle cost
Copyright © by Shayne R Flint Armidale is mainly about Abstraction So is Bullant ( Droplets ( armidale goes further Architecture is abstracted away From developer AND user
Copyright © by Shayne R Flint Requirements, Constraints and Design
Copyright © by Shayne R Flint Open Source Design Constraint Armidale shall be an open source project Design Technologies that would allow armidale to be made open source were used BSD License Hosted on SourceForge.net (
Copyright © by Shayne R Flint Simplified Application Development Requirements Simple programming model Qualitative measurement required! Single programming language Stand-alone and Thin-Client/Server architecture support
Copyright © by Shayne R Flint Simplified Application Development Design No HTML, Scripts, browsers etc. Applications are written in Java as if they were stand-alone programs. No concern for where applications run No concern for internet/networking issues Complexity is abstracted away from developer
Copyright © by Shayne R Flint Abstraction – developer view Armidale Application Std. Non-GUI APIs Database Data structures Maths Etc. Armidale GUI API Factories Local Client/Server Other… Implementations Execution Control Platform Distribution Appearance etc. API Implementations
Copyright © by Shayne R Flint Rich Graphical User Interfaces Requirements: Rich set of GUI elements (buttons, icons, lists, tables, tree views etc.) Same look and feel as normal desktop applications Same look and feel when running stand-alone or on server Design Similar set of widgets to that provided by Java Swing Platform implementations use real Swing widgets Metal, Motif, Windows, MacOS X look and feel
Copyright © by Shayne R Flint Rich Graphical User Interfaces
Copyright © by Shayne R Flint Rich Graphical User Interfaces
Copyright © by Shayne R Flint Starting Applications Requirements Application shall be started like any other desktop application An application launcher shall be provided Design Applications that run stand-alone or on remote servers can be started in the following ways The armidale launcher Command Line Desktop Icon ‘Start’ menu
Copyright © by Shayne R Flint Starting Applications
Copyright © by Shayne R Flint Platform Independence Design Constraint Armidale applications and the Armidale server shall run on the following platforms: Linux (intel) Solaris(Sparc) MacOS X (powerPC) Windows 2000 (intel) Design Use Java!!
Copyright © by Shayne R Flint Extensibility Requirement Developers shall be able to add new widgets Design The code for armidale widgets is generated from an XML widget specification Hand coding is only required for low level platform specific bits (eg. Using Jbutton to implement and Armidale PushButton)
Copyright © by Shayne R Flint Extensibility Hand coding
Copyright © by Shayne R Flint Launcher Platforms Design Constraint Provision to run the Armidale Launcher on PDAs and Mobile Phones Design The widget code generator can generate code for different of platforms Only Swing platform implemented at present Code for other platforms can be generated now, but needs the hand coding for the low level platform specific bits.
Copyright © by Shayne R Flint Network Bandwidth Performance Requirement Armidale shall minimise bandwidth usage To ensure optimal performance when using PDAs and Mobile Phones. Design Open Binary Message Protocol No HTML, XML, etc. Image Handling Large Data Structures
Copyright © by Shayne R Flint Implementation Uneventful using solid tools SuSE Linux Sun Microsystems JDK 1.3 and 1.4 Standard Edition Apache Ant - Java build tool Jedit – Java Editor, partial IDE No problems due to tools or OS.
Copyright © by Shayne R Flint Functional Testing Three test programs Basic infrastructure testing GUI Widget testing Image performance Tested on various platforms and Java versions SuSE and Redhat LinuxJDK 1.3, 1.4 Solaris 8JDK 1.3 MacOS X JDK 1.3 Windows 2000JDK 1.3, 1.4
Copyright © by Shayne R Flint Functional Testing
Copyright © by Shayne R Flint Functional Testing
Copyright © by Shayne R Flint Measuring its Value/Effectiveness Does it really simplify things? No experimentation (yet?), but Abstraction Internet Hardware, OS etc. Deployment Single programming language Extensibility Widget code generation
Copyright © by Shayne R Flint Future Work Short Term Promotion – feedback, improvements, maturity Encryption of transport (SSL) More Widgets API documentation Longer Term New Platform support (eg. Espial on Phones)
Copyright © by Shayne R Flint More Information, Availability BSD Open Source License Free to use for pretty much anything Copyright Documentation (web pages) arm://armidale.anu.edu.au Armidale Server with the demo programs
Copyright © by Shayne R Flint “ First they ignore you, Then they laugh at you, Then they fight you, Then you win ” -- Mahatma Gandhi
Copyright © by Shayne R Flint Some Design Details
Copyright © by Shayne R Flint Stand-Alone operation
Copyright © by Shayne R Flint Client-Server Operation