I've had a nightmare of a week - next week is a busy week for me and i think i've actually gone backwards this week (some kind of human rollback it seems). In trying to get my various environments up and running, i've run into numerous issues and problems. Now, part of that is because i'm using beta products - yep, i expect that hassle (although the Virtual Machine image i originally got worked first time... enhancing my argument below). In some other cases i'm using open source software which has, as is always the case, been customized and branched. I've had version conficts, dependency errors, configuration issues and stuff just now working.
My savior through all of this has been VMWare - i don't know what i would have done if i did not have snapshots!
However, it has made me start to think a little deeper about services (well, combined with some stuff i've heard privately and also online from people such as Jeff Barr and Don Box). It has driven into me how you doing software installations are on the way out. For personal users - and for business users. Especially the SME. Furthermore, Open Source projects are out too. Well, let me re-phrase before i get a million comments. Open Source projects that work will be distributed and managed through a small number of expert groups - rather than downloadble and distributed to everyone who wants the product.
Furthermore, IMHO, these Open Source projects will no longer be installable products - they will be API's. So will commercial software. Most software will. It's just toooo much hassle. A week wasted when i knew what i wanted - i really didn't want to know the details... just some services i could ask some questions of and get sensible answers back.
Take queuing (something i need soon, not yet). Amazon offers a simple queue service. Microsoft are looking at an Internet Service Bus. Others are doing similar work. These are accessible via API's and there is NO NEED for me to download and install this stuff. It's just too much hard work... well, when things go wrong it is - and my experience in IT is that if you have 2 complex things to install you're gonna have problems pretty quickly. I want people who create these services and are experts at that - they can scale them if i need and manage all the complexities around backup, failsafe etc...
I could write forever about these services such as authentication, storage, reporting, processing, e-commerce and so on. I want to drop these services as modules, combine them and add MY stuff on top (oh, maybe i should also write about modular UI AJAX/Flash/Silverlight style components that marry these services, such as authentication, registration, reporting etc). Writing and managing them all is just too much work. Importantly however, i don't want these as part of something like Facebook! I want them purely and simply as services. I know where i stand with an API which i know is a product and is supported as a core part of the business - not an addon. These services will need to stretch what we can do RESTfully and so SOAP wil come into its own.