October 08, 2004

Coming soon: Laszlo (presentation server optional)

When we started developing Laszlo platform in 2001, we targeted the Flash 5 player as our first client runtime environment. It was ubiquitous and compatible, and it provided the raw materials for a real application framework. That meant we needed a server to compensate for missing or weak features in the client, such as:

  • XML parsing in the Flash 5 player is too slow for real-world applications
  • The Flash 5 player cannot fetch standard media files such as JPEGs, GIFs, and MP3s at runtime
  • The Flash 5 player does not have native video support
  • The Flash 5 player can only make requests from the domain that served the original SWF

...and more.

So we packaged the Laszlo platform as a "presentation server," designed to compensate for missing features in the client, as well as a way of delivering a set of other capabilities (media transcoding, caching, Java interfaces, server push and of course LZX compilation). All of this was required to provide the programming model and features we were looking for while still achieving near-ubiquity via the Flash 5 player baseline requirement.

Of course it didn't hurt that at that time, IT departments perceived server infrastructure as valuable relative to compilers and client runtime environments. These "tools" were (and are) seen as low value, and not strategic. Server software, on the other hand, was considered to be strategic and valuable -- worthy of executive attention. Per-server CPU pricing was standard, and it was a model that IT buyers and venture capitalists alike were comfortable with. So we went with it -- we became a "presentation server" company.

Once you decide you're making a server rather than a compiler to deliver rich applications, there are all kinds of features you can contemplate that could not be delivered via (say) an LZX->SWF standalone compiler. Real-time data push, transcoding, and server-based data connectors and filters are examples of this. But in fact the core value of an RIA platform for most applications lies in the programming model (markup language, client app framework). Were it not for (1) the deficiencies of the Flash 5 Player, and (2) the low perceived value of compilers and runtime libraries, it would have been possible to package most of Laszlo's functionality without the need for a runtime server.

As for client deficiencies, Flash 6 addressed most of these problems. Until recently it wasn't truly ubiquitous, but it is now bundled with Windows (just now, as of Win XP SP 2) and its penetration is comparable to Flash 5 when we started.

That leaves the business model issue, which is trickier. How can you build a substantial business selling developer tools? The conventional wisdom is that you can't. In the end building a substantial business on commercial platform software requires high-priced ("enterprise") server software, licensed per server CPU rather than per-developer.

It appears that Macromedia was thinking the same thoughts when they decided how to package Flex. That's why you can't compile MXML into SWFs using a developer tool like Flash MX or Dreamweaver. You have to license the Flex server to get the benefits of MXML. See here for discussion on this subject.

With Laszlo's new business model built on top of an open-source platform, we are now in a position to make the presentation server an optional component of a Laszlo deployment. Sometime over the next few months, we'll release a build that allows you to compile LZX files on a developer's machine, and post the resulting SWF to a Web server. The SWF in the browser will communicate with XML and media sources directly, with no intervening presentation (proxy) server. For many Laszlo applications, this will mean no need to install Java on the server, no need to deal with new servlets or test presentation server scalability.

If you've developed using Laszlo, you've seen that the server is invoked during the edit-compile-debug cycle. That means that the server is here to stay -- as a developer tool. But it won't need to be installed on a deployment server unless you require certain specific runtime features. That's a big deal if you have complex/high-scale infrastructure to manage, if you don't want to run Java application servers, or if you have a simple site and are not in a position to install server software.

We're expecting that serverless deployment, coupled with open source, will go a long way toward making it easier to deploy rich Internet applications, particularly at high scale. And it's yet another reason to select Laszlo as a platform, compared to the presentation-server-required competition.

Posted by temkin at October 8, 2004 03:28 PM
Comments