Project Update

The core XULU Framework is no longer being developed due to Mozilla's own component called XULRunner. XULRunner is a cross platform executable environment that provides much of the Mozilla toolkit as a standalone development environment, eventually even Firefox and Thunderbird will use as well. We decided to use this as the basis for Liaison.

More information on XULRunner can be found here. XULU Studio™ our remaining XULU component is still being pursued as a cross platform IDE.

Anyone looking for a fast cross platform development environment we believe should forget about Java and Microsoft's .NET and look at the rich Mozilla Toolkit. Almost anything you'll ever need to accomplish can be achieved with Javascript, XML and CSS, and it is a pleasure to use! Liaison is an example of what can be done with it. The learning curve with any new API can be steep in places but it is well worth it.

XULU™ - Cross Platform XML Framework

What is XULU? In a nutshell it is a cross-platform application framework based on the Mozilla codebase. Whilst the various Mozilla technologies provide the ability to produce cross platform applications, there is no common framework in which Mozilla applications may integrate together, and provide common services and data aggregation points between them. XULU's goal is just that, a reusable cross-platform client application framework that sits on top of the core Mozilla components.

Background & Summary

The background to XULU stems actually from some work the lead developer was doing in late 1998, for a client who happened to be deploying Microsoft Terminal Services. He noted that the so called "thin clients" being deployed were brand new pentium class machines and hardly "thin". Yet many dozens of quad-processor servers were being deployed at enormous expense to provide the terminal functionality. Yet the "thin" client were merely sending and receiving screen updates over the network, all the processing power available on the clients was being wasted. Even mouse clicks and menu selection were actually being driven by the servers - not a very efficient mechanism.

This lead him directly to a concept he called 'xAe' - XML Application Environments. The simple premise was the true client/server architecture would be preserved, but the application interface would be entirely separate from the core application itself. The "thin" cross platform clients would render and run a lightweight XML based interface, which offloads to the core application servers as needed. By using this mechanism the application front end can be cross platform and server agnostic, whilst providing the ability to dynamically stream the application interface to the client as required, and significantly reduce the load on the application servers.

Any administrator that has attempted to deploy Windows client policies, knows only to well the pain these can cause, and then the policy is limited by what Microsoft - or indeed a 3rd party has chosen to expose. Once the application interface is XML, the actual interface can be built and styled on the fly by CSS. By using Directory Services, separate application interfaces can be merged and deployed based on CSS policies in Novell's eDirectory. By using the hierarchy inherent in Directory Services, CSS "Styling Policies" can be dynamically applied to applications following the same structure.

This of course is now all very standard in Mozilla using XUL, but at the time we suggested pre-compiled XML-SVG libraries streamed on demand to the client. The initial suggestion to Novell in 1999 was to use it to replace the Java interface on NetWare, and move NetWare to a cross-platform XML Application Generator via NDS. Again for historical interest, the original document (in MS Word) is here. To view the original SVG xAe concept demo here, you will require an SVG enabled browser. Internet Explorer (shame on you) you will need the Adobe SVG Viewer Plug-in here. An overview of the xAe framework is here.

Again unfortunately, Novell chose to stay with Java, and 'xAe' as a concept died until the Mozilla XUL components became robust enough, and Firefox (AKA Phoenix) came into being as a suitable lightweight cross-platform base. What is now interesting is that this is exactly how Macromedia is now positioning their Shockwave Flash application, as a thin client application environment.

XULU Studio™

The final component of the XULU core, will be XULU Studio™. XULU Studio is effectively Visual Basic for cross platform applications. In the same way that a Visual Basic developer can 'drag and drop' combo boxes, buttons etc onto their forms, and then edit their code directly, XULU Studio will provide a rich XUL developer IDE specifically for XULU, but also any XUL based application.