October 27, 2008

SaaS for enterprises

Lately, I am thinking a lot about Software-as-a-Service (SaaS). I can easily see the benefits of SaaS, which I will not discuss here. But I have concerns too, especially in using SaaS on an enterprise scale. Currently, using SaaS means accessing applications (e.g. a word processor, or a spreadsheet application) through the web. The benefits of that are easy enough to grasp. I have more difficulties grasping this on a bigger scale: using SaaS on enterprise scale. Here are the questions that I have at the moment:

1. How sensible and safe is it to base important, critical parts of your business on SaaS?

Suppose you would use SaaS for something strongly data centric such as ERP. In such a case, the ERP Service provider is responsible not only for providing the required functionality and UI, but also for providing storage of all your data. In other words: would you trust your data to the service provider? Should a government use SaaS in that way for examle? What if the SaaS provider goes bankrupt?

2. Do you always have to accept changes made to the software by the SaaS provider?

With classic software, you can use a certain version of that software as long as your system can support it, even after the vendor of that software has stopped providing support for that version. A property of SaaS that is often named as a benefit is that you always have the latest version. Is that really always a benefit? Businesses using SaaS will base their workflows on the functionality and user interfaces of provided software.

3. Is SaaS mature enough for providing enterprise level QoS? Will it ever be?

This concern is related to my first question. Basing critical parts of your business on SaaS requires certain guarantees about availability, reliability and performance. Can such service level agreements be made individually for every business?

Don't get me wrong, I really digg the concept of SaaS. I am a definitive adopter of SaaS. However, I feel that these are important issues that I would want answers for before I would advise SaaS on an enterprise scale. Maybe I am thinking too far ahead. Tell me what you think.

Write once, REALLY run everywhere

Remember Sun's slogan for Java: write once, run everywhere? Because of the platform independency of Java, a Java application will indeed run on many platforms without any rewrite or recompile. Java is mostly used on the server side of things but it is hardly used on the desktop. I doubt that JavaFX will change that. On the other hand, Java is huge on mobile devices (Symbian). All in all, Sun has done an impressive job at keeping their promise.

Interestingly however, Java is quickly loosing field in this respect from a surprising enemy: Javascript. An open source HTML rendering kit that has become hugely popular in a small period of time deserves the credit for this: Webkit.

Webkit might well be the most installed piece of open source software today. Here are some instances I know from the top of my head: Apple Safari, Apple's iPhone (and the iPod Touch), Adobe AIR, Google's Android, Google's Chrome, Nokia's S60 phones (read section 2.1 of this pdf), Nokia's N810 (web tablet) and KDE. Webkit definitely has good specs: it is small, it is fast and it has a very good and simple API. That last one makes it a very popular choice for developers, resulting in a large and active online community.

As of version 4, KDE has been outfitted with a brand new desktop shell named Plasma. Plasma deploys Webkit (which originally started as KHMTL as part of the Konqueror webbrowser) for allowing web applications (javascript) to run natively on the desktop.

By the way, KDE nowadays runs on just about any major operating system (I heard this on the FLOSS Weekly podcast while I was commuting). Yes, that includes Windows and MacOS. Being the geek that I am, I installed KDE on my Vista Laptop (no sweat at all), and there you go, Konqueror (among other K-stuff) is now on my desktop. I am free!


KDE also uses Trolltech's QT, a multi-platform C++ GUI toolkit. Trolltech has been bought by Nokia in the beginning of this year. Below is a citation from the official press release:

The acquisition of Trolltech will enable Nokia to accelerate its cross-platform software strategy for mobile devices and desktop applications, and develop its Internet services business. With Trolltech, Nokia and third party developers will be able to develop applications that work in the Internet, across Nokia's device portfolio and on PCs. Nokia's software strategy for devices is based on cross-platform development environments, layers of software that run across operating systems, enabling the development of applications across the Nokia device range.

As of version 4.4, the WebKit API has also been included in QT. That is how WebKit must have ended up in so many Nokia devices. Very interesting. Webkit is becoming ever more ubiquitous. Applications that are developed against this platform will quite probably run without problem on any of the Webkit instances listed above. It means that you can now truly write your application once and run it on almost any desktop and a large number of mobile devices too.

Isn't it interesting how an open source product such as WebKit has sneakily made its way to so many platforms and as such created a very ubiquitous platform for web application development? This ubiquity is especially significant in the light of SaaS but that is something to explore in another post.

To me this all proves that Open is the way to go.

October 10, 2008

Talking about Adobe Flex from an Architecture's perpective (soon)

On october 21st, I will give a short talk about Adobe Flex for a group of colleagues. I won't have much time to prepare my slides, and my wife will not be amused if I take my laptop with me on the holiday planned for next week. Besides, I will be having too much fun with my children.

Fortunately, my Adobe contact provided me with some nice slides that I can use in my presentation, and I am good at improvising.

I'll keep you posted.