Technical Challenges

The first obvious question is how this should be developed inside a web browser using JavaScript and HTML5. Should an existing JavaScript framework be used? If so, are they compatible with being controlled from XML and working with XML, or do we need to create an entirely new technology stack specialized on XML?

XForms was not a technology we saw could be used for building a new presentation software, calendar, or email software. We needed something more expressive that could replace the role of traditional software development.

This project thereby came to the conclusion; we needed something that was thinking, breathing, and communicating XML even in its sleep. We also needed several engines that could interpret and execute the new XML languages for applications, UI, logic, data bindings, data model, and data types – i.e. something that could make some sense of all the new markup languages we needed to come up with.

We also needed the ability to in the future be able to extend the vocabulary of the user interface XML language with new markup representing UI components, either by XSLT or by JavaScript.

Another property was that it should be extensible by any new XML application and storage format designed by any software application developer using the platform. The platform needed to be able to understand these new XML applications, to act on them, to make sense of them, and to be able to manage the data for them. In a sense making the entire Device Edge Application Platform an XML editor in the form of a fully user-defined application UI for any possible XML application (language).

The custom user-defined software applications developed in XML we imagined to be built on the platform were as advanced as; presentation editor, word processor, calendar, contacts, bookkeeping, document management, database, instant messenger, photo album, music player, and similar.

Three technical challenges stood out; 1) how to make any UI component understand any data model it could be bound to and how the UI component should then be able to know how to extract the right data, 2) how to get the browsers built-in parsing of XML Document Object Model (DOM) and XPath to be able to handle advanced XML documents with multiple namespaces while keeping the client-side cached data models as DOM objects to minimize parsing of XML, 3) how to keep parsed XML DOM objects up to date with what is happening in the cloud and to keep any user interface components up to date to any changes in the XML DOMs it is intelligently bound to.