Computers + Services..? Don't you mean Software + Services?
Before I discuss Computers + Services it is first important to understand part of the inspiration and software equivalent of my idea.
Disclaimer: The focus of this posting is on the average User Desktop, not professional server environments. Some of this is already becoming available for servers, but as far as I know not yet being leveraged for the average users home machine.
Software + Services
Software + Services is not a new paradigm and is best summarized by Microsoft:
The future is a combination of local software and Internet services interacting with one another. Software makes services better and services make software better. And by bringing together the best of both worlds, we maximize choice, flexibility and capabilities for our customers. We describe this evolutionary path in our industry as Software + Services.
This vision can be realized in many variations, but at the end aims for a common result: To use the power of desktop Software while taking advantage of services to extend beyond local capabilities.
To me this is the most logical evolution of the current technology driven by many factors, including:
- The Internet is now a fairly reliable 24/7 communication medium
- Web Services and other remote API's provide easy access to remote services for developers
- For better or worse people and organizations have started to trust remote services more then they used to, especially those provided by well known companies such as Amazon, Google, Microsoft, Etc (the Banks of our generation)
- Server Farm technology has evolved significantly to power distributed computing
Enter ... Computers + Services
Wither people like it or not Cloud Computing has arrived driven in part by S+S concepts, but its only the beginning. My belief is that in the near future Computers + Services will be yet another natural extension of our computing into the cloud.
This is not another attempt to build a better mainframe, instead the desktop and its raw power will not fade. To join the cloud i envision hardware consuming remote hardware services and extending beyond its out-of-the-box capabilities. Lets look at my definition for Computers + Services:
Computers + Services (C+S) is a combination of local hardware and hardware exposed to the local machine through a remote API, typically across the Internet. The remote hardware has to provide services that would otherwise be made available by local hardware and not replace but instead enhance the local versions.
In an optimal setup local Hardware would be "C+S aware" and able to self coordinate with the remote hardware to complete assigned tasks. This would allow for transparency to the application lawyer whenever possible.
In certain cases C+S can be made available to the application layer for implementing specific scenarios but should not be a prerequisite for using C+S by most software.
This concept directly leverages all the technology and trust that makes Software + Services a possibility and I believe the core technologies needed are either here already or up-and-coming in the very near future.
Lets look at C+S in more detail, including an example of how it can be implemented.
CPU Offloading through C+S
Example
To best illustrate this concept lets look at an example:
Lets assume that John Doe purchased a computer to do video editing of his home movies after the Holidays. The machine has a dual core AMD processor, lots of ram and disk space, plus of course video editing software.
John records 30 hours of movies and transfers all of them in their raw format onto his computer and begins editing. Soon he realizes that doing any manipulation or encoding of the videos into different formats is taking a very long time, time he does not want to waste. Lucky for John it is the future, John signs up to a website that offers CPU Offloading and leases 10 additional CPU cores for the next 15 days. The website automatically connects to windows and with his permission adds the needed configuration settings to enable 10 virtual cores on his machine.
John restarts his video editing and its blazing fast compared before. His machine is now hardwired over the Internet into a powerful local data-center where 10 cores are now dedicated to him. As his hardware requires additional parallel processing which it already supported with the 2 local cores, it is able to hook into these remote cores and pass instructions as if his machine was physically upgraded.
John finishes editing the videos and at the end of the 15 days his core lease expires, which is exactly what he wants. During his normal routine of playing COD 4 or surfing the Internet his local resources are more then enough. In-fact his computer is smart enough not to use the additional virtual cores for processing that is required at a very real-time speed like gaming, so it was no help anyway.

Core Principles
The core principles that make C+S work in my example are:
- The ability to extend local resources
- Transparent to the software layer
- Available to the software layer through concepts like Managed Code Libraries in .NET to allow software to take even more advantage of these services or avoid them if latency is an issue
- Paying only for what you use, allowing the lease to be a reasonable amount of time and money
- Leaving the desktop as the interface, participant, contributor and coordinator for any remote activities
Challenges
Today's technology would pose many barriers to implementing this concept including hardware architecture, Internet latency/connectivity, and many other factors. Luckily these are not limitations but instead challenges that can be overcome with enough dedication and funding. As with all innovation once someone finds a business case to pursue it, it will happen.
And now to the good news...
C+S: Its already here
Amazon S3 + JungleDisk
In the area of storage C+S is already being realized by Amazon through its S3 program and plug-in's like JungleDisk. This combination of Service (S3) and Software (JungleDisk) creates a virtual hard drive on a machine that acts and looks like a normal drive yet lives in the cloud. You pay Amazon only for the space that you use (at a very low rate) and are therefore free from investing into various hardware like:
- Additional local disk drives for extra storage space
- Backup solutions for file recovery
- Redundant RAID arrays for stability
Overall this is the exact software-transparent model that had made me exciting about this idea in the first place. I was somewhat shocked to realize it already existed (without my fancy C+S terminology) while writing this posting. I am so excited about the technology that not only am I an advocate of the concept but now a user as I have subscribed to S3 and use JungleDisk to help backup my data.
Amazon in general seems to be embracing this concept as its other services also want to distribute physical resources into the cloud. I definitely encourage people to review their web service offerings if you have not done so already.
Nothing in Life is Free (unless it has ads in it)
The one major downside to this model is that it will most likely cost you money for things you will lease as opposed to own.
While many services on the Internet are free in my vision the deep integration required would not allow for easy ad-integration to make the free model work. (Though not impossible, people are very creative!)
If this concept does come to reality in various incarnations the benefits will most likely be worth the leasing cost regardless of the way that cost is presented. If Amazon is any indicator it seems that a model of micro-cost based on usage is already a viable business model.
Conclusion
Thanks for reading!
In closing I want to stress that as with most "new" ideas, there is not a lot new about what I am proposing. My intentions are to simply communicate one way of looking at the concept of cloud computing (formed from my limited perspective on this complex topic).
The only new concept I can try to claim is the verbiage "Computers + Services" as a buzz-term that as far as I know, no one has used before.
Your Feedback
Please accept this commentary for what it is and I look forward to your feedback.