The irony in this whole thing is that all of the major companies are doing P2P internally. For example, Google uses hundreds of thousand of commodity computers not that much more powerful than your day-to-day laptop to crawl the web. They do redundancy and expect failures, just like P2P designers do. The only difference is that they have more control over the infrastructure meaning that they assure all nodes have connectivity among each other (which is a hard thing to guarantee in a real P2P system) and they also make sure nodes are online all the time (which makes things easier because churn is one of the biggest pain in the ass to deal with in P2P). Anyways, a lot of the ideas that Google or Facebook uses to make their services reliable, and resilient are lessons learned from P2P research. Once again, the sad thing is that P2P research seems to be dying, everyone is excited about social networking, and cloud computing that noone is spending time trying to figure out ways to design good algorithms that will allow people to communicate and create services for each other without depending on third party servers. So everyday we complain about privacy but if we do not learn to use our own resources for our own services, and depend on companies to give us resources, they will have no choices but to sell our information to make money. Nothing in this world is free, Google or Facebook would not be able to survive without making money and the only way they make money is by giving our information to advertisers. I'm not blaming the companies, it's just business on their end. But if we are not willing to consider truly P2P services, then we want the great user experiences that Google and Facebook provides, then we have no choice but to accept the fact that we are giving up our privacy to do so. There is no free lunch as they say. Anyways, P2P rules and P2P is everywhere, and if you really want to know how real systems work at scale, learn about P2P. As always, booooooooooommmmmm.
Showing posts with label social cloud. Show all posts
Showing posts with label social cloud. Show all posts
Tuesday, June 28, 2011
The promise of P2P
I was falling asleep at my cubicle (as I do everyday after lunch, I try so hard to stay awake but I can't help it) and I started thinking about the cloud and P2P (as I do everyday because I am a nerd that way) and I was thinking how great it is that I get to work on designing P2P system. I'm currently working on this distributed microblogging project using python and it's so exciting to think about the dream that (if implemented properly, which is way harder than you think) millions of people can be using this service run totally on their own machines. As we become more reliant on the cloud for all of our needs (and I am guilty of it as well, I store everything that I have on Google's servers, but I try to make sure I do not become dependent on any proprietary protocols), we are forgetting about the power of gnutella, (one of the most resilient cloud services out there, I mean really, major forces have been trying to shut it down for years and it's still millions of users strong till this day), or services like freenet (which works pretty well by the way, used to publish wikileaks documents), we forget that if can connect millions of our machines together we can create services as powerful as Google, for example, a P2P search engine, where nodes crawl the web and index, and when you do a search, you are actually sending the queries to other nodes in a P2P system and getting the results from them.
Sunday, February 13, 2011
Social Cloud
If you spend as much time reading tech articles and attending research presentations as I do, you will quickly realize that the two hottest buzz words (in the software side) are social and cloud. Why do you ask? Well, because of the obvious answer, money. Facebook has become a powerhouse evaluated (or speculated, isn't speculation great) to be worth $50 billion. That is amazing. So now, every service on the web is using the word social (for example, github uses the term, social coding, but really coding on github really does not seem social to me, people hate doing code reviews and merges, github even has a blame feature, which is not that friendly at all (this is an anecdote to my anecdote, I just realize that I do a lot of anecdotes in my posts and i put them in parentheses, I guess I like to go off on tangents, maybe I'm ADD)). So now, there's a bunch of academic research looking at social networks, social networking sites, and so on, trying to understand the connections that people make and what is driving this mass of exodus of social activity on the web. Bottom line, if you can understand how to create a social service, you will get a lot of users, and you will make a lot of money. The making money part is not always that easy though because Twitter is still trying to figure out how to make money and that's making some people nervous, especially because Facebook has a similar built-in service and it's trying to compete directly with Twitter.
The next big buzz word is cloud of course. You see it in IBM commercials all the time, even Microsoft is starting to use it in its commercials as well (I should provide links to these commercials but that would be too much of a burden and that would take away from my willingness to make future blog posts). Ok back to clouds, people always have trouble defining clouds, but in my mind it's simple, it is the same old Software as a Service model that companies like IBM have been pushing to customers for years. The only difference is that these days the Internet is faster, then the response time is better, hence the world is shrinking. Once again, there's a lot of money to be make in clouds because Amazon "seems" to be making money (nothing extra ordinary) from clouds. The other thing that helped is virtualization, in the end, it's still software as a service, but the software now allows you to customize your own operating system, and administrators love that (everyone gets excited about root access, oh yeah). So once again, there's a ton of academic research looking at cloud computing.
Here is the point. I study P2P and I used P2P, and P2P is one of the best examples of social and cloud but without the money (and sadly it does not get funded as much). So if I run a service, and I allow my friends to have access to that service, and they run a service and they allow me access to their service, and you create this huge graph of millions of people sharing services with each other, either with random strangers (gnutella), or with trusted friends (Freenet Darknet) then we have what I call a social cloud. I read this paper the other day called "Social Cloud". It basically combined Facebook and Amazon EC2, you run a service on EC2 instance and use facebook to give friends credentials to access service, and use some accounting (or credit) system to keep track of transactions. Cool idea, but why do I have to use EC2 and Facebook, why can't I use use my home PC (which will give me better performance on some things but worst in others) and host my service through that, and discover my friends by email, chat, or by phone. In the second model, noone makes money and if noone makes money then you can't create jobs. But wouldn't it be nice if you had a distributed facebook, a distributed google, and a distributed twitter, and a distributed youtube (P2PTV is working hard on that one). Distributed services have this nice property of empowering the people, isn't that what democracy is all about, power to the people, so fund P2P projects, the only true way of powering the people. So this goes out to the true social clouds of the world (check out Freenet).
Subscribe to:
Posts (Atom)