Software-As-Service should not be treated as a technological or architectural topic.
SaaS should be seen as a prism through which usual ways of doing IT should be rethinked.
Take the example of Software development. I have been involved in software development for more than 25 years since my first programs in peek and poke Assembly language! At that period of time optimization of the software was not a recomandation it was mandatory. My first computer only had 1 Ko of RAM!
Then software started to being 'fat'. Why? Because developers and software editors did not care about using a lot of memory or disk space. Their manual had to say that to run this software you would need such hardware characteristics, and the user had to care about it! You did not get the latest computer, so do not blame me if your software runs slowly...
SaaS will eventually reverse this process.
SaaS involves software editors to run their software on virtualization platforms.
SaaS involves software editors to pay for those investments, and the power consumption is eating their margin if not taken seriously!
Until now we have seen a lot of new computer langages being invented, and a lot of web technologies too. I bet that the number of development langages and methodologies will lower and that this will not be a factor of richness diminution. End users will get more stable, more efficient and more adaptative programs if you give them the power of mashing-up the functions they need. To make that happen fficiently you need to simplify the way you develop and maintain a large common factor so that pieces developed by a large number of developer would fit together.
The HTML lego for software could be Web Services and the execution paradigm would be SaaS.
Why would you need to keep on developing web code? An application is better developed, stronger, more efficient, more reliable if developed on the basis of an operating system whatever it is. Webg is great for visualizing and interacting, for letting the end user mash-up and create their 'own' interface.
I bet that with SaaS the software editors will find it more efficient to develop software the way it was before - efficiently - and as 'heavy clients'. Then use the SaaS to virtualize those applications and let them run whenever and however the end users want to use them. Simply splitting up the 'heavy clients' into 'heavy functions' would be the path to follow. Each 'heavy function' being usable as a single piece, being integrable into whatever web interaction technology you would need, being insertable wherever you would need.
SaaS will help developers to reconnect with their users and this will radically transform the way we have seen the computing industry until today.