I read with some interest a short announcement that Symantec was acquiring AppStream.

Using application streaming enables end users to perform functions by accessing parts of a software program over the network as needed, without having the program fully installed on the client computer.

OH RLY? In the past I've sat through many a briefing on "application streaming" products. The description offered of application streaming is exactly the same story I've been sold during those briefings. But when you read that description it suddenly appears that what's being sold is almost a form of SOA (Service Oriented Architecture), or perhaps a competitor to SOA. After all, SOA is all about distributing discrete business functions (services) and allowing applications to access them over the network without installing the fully application (a.k.a. program) on the client computer.

Hmmm...In fact this technology sounds a lot like the description of a composite application. The controlling part of the application may or may not be downloaded (it depends on what language/platform the application is built upon) but the core of its functionality continues to reside in services that are access over the network.

Application streaming, of course, is similar, but not similar in that ultimately what it's attempting to do is minimize the executable code that must be retreived over the network and loaded into memory. This allegedly makes life easier for everyone because it minimizes the software on the user's desktop that must be managed and improves performance of the application because it isn't all being loaded/downloaded at one time.

SO while application streaming may not be the exact technological equivalent of SOA, there are enough similarities to make one wonder whether these are competing technologies. Given the fast-paced development by Google to provide similar functionality with also similar benefits to application streaming through SaaS (Software as a Service) based products, one can obviously see that both models attempt to solve the same problem in a very similar manner, thus putting them at odds with one another. You definitely won't (or shouldn't, ever, and I mean this very seriously) see an application streaming solution for a composite application because it's completely unnecessary.

Streaming is not necessary with composite applications because the applications are already "modularized" and functionality is already decomposed into logical business functions. There's no need for additional software to break up an application to provide better performance and take up less space, because SOA inherently provides these benefits already.

In a knock-down drag out fight between SOA and Application Streaming, I'm going to bet on SOA to win.

Imbibing: Coffee