So my mad idea.
Ok, before the why's and where fores lets get the explanation of the buzz word bingo out of the way.
Virtualized, crowd sourced, social media cloud just sound like I was just grabbing the hottest memes and clumping them together.
I wasn't of course, if I was it would have be synergistic, virtualized, crowd sourced, social media cloud (wait I like that even more.. err not doing my credibility any help here so I might move on).
People who have worked with me a little better may think I was grabbing concepts I really like and forcing them into a 'simple' paradigm.
I wasn't doing that either if I was it probably would have been a deterministic self learning, neural net clustered, grid, virtualized, crowd sourced, social media cloud (damn I need to focus here).
Like with most things tech focused, I've thought this through and I only have one problem with the concept, I'll discuss that briefly at the end.
So as a distributed application creator I like my systems componentized so lets walk through the buzz words in order of my love of them.
The Cloud
I love the idea of the cloud.
As a software developer who builds applications for an insane amount of people the idea appeals to me.
Like with most things, what I love about it probably isn't common.
When I started programming in the mid 80's it was simple.
You wrote a programme.
You compiled and linked it(spending hours being punished by make), then you ran it.
Simple right?
Painless even.
Anyone who was able to understand how to do it could do it.
And letting others use it; even easier post the binary on a BBS, then latter a public ftp server; post the details on a forum or usenet group and you are good to go.
Dash forward to distributed applications. You write some code, write the unit tests, compile the war (spending hours being punished by maven) and deploy it to JBoss, jetty or whatever.
But now no one can't access it without setting up an environment able to support providing functionality to a hostile internet.
Now knowing how isn't enough, you also need a huge infrastructure.
Ofcourse we all have permanent connections now but the client server model requires static ip addresses. Additionally the computer would need to be up constantly and opening up your natted firewall exposes security risk to your computer.
Onward comes the cloud.
For a small fee you can now expose that programme to the world. Great huh?
No fuss and no risk.
Thus the beauty of the cloud.
Virtualization
I also love virtualisation.
Virtualisation is just a tech term for an emulator. Like playing a snes game on your 'droid. Only for production servers.
The idea is you have a container and in that container is a simulation of the server in question.
The idea can be used to divorce your computer from the hard link between the number of physical real computers you have verus the effective number of computers you have.
This means a super computer can act like 1000s of low range computers.
Or 1000s of low range computers (or maybe just fragments of them) act like a super computer.
Crowd Sourcing
And who doesn't love crowd sourcing. It brought us linux, YouTube, kickstarter and lots of other great things.Crowd sourcing is the idea that a thousand monkeys can write hamlet or atleast fund the next Shakespeare.
We knew for a long time that a lot of people in one place could unleash the worst in people.
Read YouTube comments some time if your not sure what I mean.
But crowd sourcing proves it can also unleash the best.
Social Networking
And how how do you bring a crowd together, get people to find others who even want the same goal, even if they are on the other side of the world?
Be it via forum, feed, mailing list, or website its going to be a social network of one description or another.
Virtualised, crowd sourced, social media cloud
So how it comes together.
Well we have a technology called virtualisation which allows us to build a entity that looks like a complete node of a certain type regardless of what it is underneath.
Concept called that the cloud that in many implementations is a flexible network of interacting nodes.
A movement called crowdsourcing which bring a lot of people together for common goals.
A tool called social networks which allows people who share common goals to find each other.
These things fit together so well I'm shocked no one though about combining them before.
You use a cloud like flexible platform, to power a virtualized node, made up of fragments provided by the crowd brought together for a common goal by social networks.
The problem
Except they did...
And failed..
It's called jxta and it was a great idea.
Some one actually thought of this over 11 years ago.
Thus my comment that this is the greatest idea that never was.
It should of worked and it should have wonderful.
But it wasn't..
At the start I promised I'd explain my one problem, and that is why didn't this work?
It's a great idea which someone has had before, so why isn't JXTA & co a huge open source monster along the lines of google?
Luckily for me the idea of this little project was to do something techically cool yet not enterprise focused then isn't it?
Join with me next time as I start to follow in the footsteps of the ill fated jxta team.
Also I'll be discuss P2P verus client server, discussing rest and options around lose coupling.