Monday, February 27, 2006

AoyW Means 100% SVG? Online, No. Offline, Yes!

Given our release last week of the SVG Terminal, some folks may have taken the impression that we're proposing all-SVG and a host-terminal model for the next-generation web. That's not the case!

Web 2.5 is about applying web look-and-feel to everyday computing, and fully mobilizing your everyday tools by deploying them as web-like services on mobile devices: laptops, Wi-Fi handhelds, and flash drives. These web 2.5 services drive local screens, using presentation standards like SVG and HTML.

I will confess a bias against HTML... tables & divs & gifs just never impressed me as a composition toolkit. I grant you that for accomodating the limitations of diverse display environments, this approach has merit. But to implement serious authoring tools and effective visualizations, web software needs what the PC has had for years, a flexible 2D rendering API. That is the role of SVG.

Because of the close proximity of these mobile-borne services and local screens, it makes sense to pass user input directly to the service. Otherwise you pile a ton of custom javascript code for each app onto the screen system to provide near-real-time interactivity for XML content.

In the web 2.5 model, with PC-quality apps running out of your pocket, an SVG terminal is the most potent and simple mechanism for presentation and interaction.

Tuesday, February 21, 2006

[AoyW] The SVG Terminal for Firefox Debuts!

Our SVG Terminal (released today) is a javascript module for Firefox 1.5 and a simple protocol that enables apps to deliver rich views on network screens and fine-grained interactivity with users. It directs all user input from the browser to the app, which sends updates as SVG fragments to the browser.

It's designed for apps running on a mobile device which need to present a sophisticated UI on nearby screens via wi-fi, and apps which need to drive multiple network screens with graphical scenes in near-real-time.

The SVG Terminal fits under the AJAX (asynchronous javascript and XML) umbrella, but differs from most AJAX code in a few ways: The UI is described entirely in SVG, instead of HTML. Almost no input processing is done by the browser. The browser maintains a connection to the server, rather than performing discrete XML-HTTP transactions.

The SVG Terminal package includes a simple demonstration app, and source licensed under the GPL. The demo app has only been tested on Windows to date, but should compile on Linux & MacOS X with minor changes. The javascript code requires Firefox 1.5. Future releases will provide text wrapping and highlighting, and soon airWRX will show off the real power of the SVG Terminal.

Wednesday, February 08, 2006

[AoyW] The SVG Terminal - UI on the Server, the Server on You

One of the cliches most excersized by web proponents is "The browser is good enough!" In other words, users don't really need web views to be as flexible as those on a PC. If you visited the Superbowl play-by-play site last Sunday, and enjoyed its mixture of AJAX & Flash, you might tend to agree. How easily we forget that interactive media is not a productivity tool or modeling system; it doesn't have to gain much control of the screen to succeed.

SVG is one large step for the web world towards the fine-grained view control that PC developers wield on behalf of users rushing for less leisurely goal lines. However, SVG is not a reason to reinvent the fat-client model with Javascript widget frameworks, wherein the server is reduced to a storage device firing raw data to clients for presentation and manipulation. (Java attempted this a few years back.) For many applications, SVG is a means to intercept that trend and run the other way: push everything but rendering onto the server.

This is the concept of the SVG Terminal. The server maintains the view model as an SVG document object, and updates clients as it changes. The clients relay all user actions directly to the server for processing. This mechanism may not perform flawlessly on WAN connections, but on the LAN or to wireless peers, it's very smooth. For the web server coming to your pocket, it's ideal.

This architecture is very similar to the message-driven approach of windowing systems like MacOS and MS Windows. One tremendous difference is that multiple screens can share the same view, which may include variations for each screen and support efforts by each user to affect the view. At last, web experiences will go head-to-head with PC user experiences, and begin to beat them, especially for always-on-you wikis, living and working on mobile devices.

We're now prototyping an SVGTerm, based on the SVG Scene library we released last summer. It should be released within a week or two. It employs the Firefox browser, which began rendering SVG with the release of v1.5.