February 2008


After struggling for a long while with the limitations of the scripting APIs that browsers expose for SVG and HTML, I have decided to try something different and to explore the potential of the ubiquitous Flash player. I wasn’t particularly keen on the official Flash development tools and have opted instead for Nicolas Cannesse’s haxe web development language. This is comes with a fast compiler and support for Flash 6 to 9. It also targets neko, a fast virtual machine that works well with the Apache web server.

My aim is to explore the role of XML for declarative end-to-end models of user interfaces to business processes. I wish to build upon XForms by adding markup for layout and a rich set of UI controls that are aligned to WAI-ARIA. So far haxe has been really easy to work with and very much better than working with the traditional browsers. I started by focusing on a small library of UI controls and am now working on the XForms support. In parallel, I have been working on implementing support for SVG, building upon Helen Triolo’s work on using SVG path data in Flash, with inspiration from Daniel Turing’s Xinf .

Putting it all together, this turns the Flash player into an XML-based browser for business applications. This follows in the footsteps of DENG a modular XML browser with support for subsets of XHTML, SVG, XForms , XFrames and CSS3. DENG is only 76Kb in size, but is rather slow as it predates the release of Action Script 3 and the performance improvements in the Flash 9 Player.

On the server side, I plan to experiment with a fusion of State Chart XML (SCXML) and business rules languages for executable models of document-based business processes that run on application servers. Here I will probably need to switch to Java on account of the wide availablity of open source Java components (e.g. Commons SCXML and a large number of rules engines), however, there is talk of extending the haxe compiler to target the Java VM. I also plan to explore the use of diagrams for easier authoring of high level models. To support this I am looking forward to working on browser based authoring tools that run within the Flash Player and operate on XML.

There is huge potential for mobile web applications that can access device capabilities from client-side scripts. There has been a lot of work on J2ME APIs for Java based applications, but we lack standards for exposing local device capabilities to applications running in web browsers. The time has surely come for W3C to bring interested parties together to work on fixing this as a matter of priority. (more…)