The Mozilla VM?

| No Comments

Mozilla could be developed into an application virtual machine[1] for delivering lightweight easily scripted applications over the Internet. Last week's release of the Mozilla browser got me thinking about the possibilities. Recently I've been exploring Flash's ability in such a role because it is more then a vector graphics and multimedia tool and its the most mature and widely deployed engine that could fit the job. It is worth considering how to leverage the Mozilla communities work to support such a platform.

David Boswell in his article "Mozilla as an Application Virtual Machine" over 2 years ago raised the notion of Mozilla potential. At the time Boswell focused on Mozilla's strong cross-platform code base as the means for such a function. To some degree he is correct. XUL allows developers knowledgeable in XML and Javascript to modify and enhance the Mozilla browsers function. However the development of non-browser applications is limited to knowledgeable C++ programmers willing to learn the internals of the Mozilla project's work first. While the project's work is yielding these types of applications, it either excludes or burden most others from participating and benefiting to a larger extent. This is fine for some, but is unacceptable overall.

The Web browser has and will continue to serve us well. Mozilla is the best browser yet. My experience using it full-time since release candidate 1 has been nothing short of superb.

As the Internet continues to evolve into an "Internet operating system" of programmable interfaces, ubiquitous access and distributed computing resources, the document-centric browser is an awkward solution to a growing number of emerging needs. The browser is not dying by any means -- it just needs a mate to compliment it.

This compliment would support an open cross-platform means of easily developing, deploying and running applications. Ideally it would make use of the same standards and technology utilized by web browsers. These web applications would be easily "streamed" over the Internet and executed locally rather then on a server. As a former Visual Basic guru from back in the early 90's, I envision this Internet application virtual machine to do for Internet applications what the Visual Basic runtime engine did for Windows application development. I initially referred to this as an "application-centric browser" because this platform shares many of the same properties and core technologies and fuses them with an application framework engine.

Here is a cursory look at what core elements that are already available through the Mozilla project that could be utilized in developing such a platform:

  • The ability to script logic with Javascript.
  • Graphical display using HTML and CSS.
  • Data handling through its support of XML, XSLT and DOM.
  • User interface design through XUL.
  • Basic Web services support via SOAP and XML-RPC. (Perhaps more is needed though.)
  • Vector graphics support using SVG. (Native support is coming.)
  • A component API for creating plug-ins when necessary.
  • Packaging capabilities using JAR (however this function is currently limited to the browser skins and would require some adaption)
  • Network installation capabilities using XPI archives.

This is a strong base for developing an Internet application virtual machine, but more is still needed:

  • Better forms support. Existing HTML forms support comes up short requiring XForms support.
  • A lightweight web application server for supporting peering, messaging and the dynamic generation of local displays. (Userland's Radio is a prime example. KnowNow's technology is also worth noting here.) Some of the functionality already exists to a degree, but could probably use additional refinement and functionality.
  • An application manager to handle environment functions such as streaming, upgrades, uninstallation, managing tasks and security.
  • A security sandbox to prevent buggy or malicious applications from doing damage to the local system. Mixing easily downloaded applications and given them access (however limited it may be) while risky, is necessary in order to be useful.

In some respects the open sourced SashXB for Linux and its closed source Sash for Windows is quite close in many respects. (Incidentally some of Mozilla's code is used in SashXB.) SashXB is not nearly as cross platform and lacks some of the above feature list such as a built in web application server. I won't be able to go into a full comparison here.

Mozilla has most of what it takes to be the foundation to an Internet application virtual machine, but some additional work and assembly is required. The extensive open code base and its adherence to standards makes it an ideal candidate to create an application-centric compliment to its browser. In order to move forward the need for such a platform must receive wider recognition in the Mozilla community and a focused concerted effort initiated.

--

[1] In recent writings I've referred to this concept as an "application-centric browser" for lack of a better term, but given Mozilla is a Web browser I'm refraining from using the term to avoid being too confusing. I still am in search of the "perfect" term for what I am thinking.

Leave a comment

About this Entry

This page contains a single entry by Timothy Appnel published on June 13, 2002 9:45 PM.

Comparing SWF (Flash) and SVG is missing the point. was the previous entry in this blog.

Megnut on Blogging. is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.

Pages

Powered by Movable Type 4.2rc2-en