I just read an article in ITworld titled “P2P bill could regulate browsers, cloud computing” by Grant Gross that got my brain churning a bit. Is Peer-to-Peer really considered “Cloud Computing?” And, if it is, how would it be classified? Cloud Application? No. Cloud Platform? Nope. Cloud Infrastructure? Uh…No.
After reading the P2P Bill, what concerns me is the extremely broad and loose definition of a “peer-to-peer sharing program”. H.R. 1319 (otherwise known as the “Informed P2P User Act”) does not seem to clearly define this term. (You can view the full text of the Bill here.) The definition of a “peer-to-peer file sharing program” is defined within the Bill as proposed as:
(2) the term ‘peer-to-peer file sharing program’ means computer software that allows the computer on which such software is installed–
(A) to designate files available for transmission to another computer;
(B) to transmit files directly to another computer; and
(C) to request the transmission of files from another computer.
In a response delivered to Representative Bono Mack, the sponsor of H.R. 1319, the CCIA (Computer & Communication Industry Association), the NetCoalition, TechAmerica and the Internet Commerce Coalition stated:
“As currently drafted, however, H.R. 1319 would broadly apply to many different applications and Web sites that appear to be beyond the intended scope of the bill.
For example, in Section 4, the definition of “peer-to-peer file sharing program” could be interpreted to apply to email providers, Internet access services, instant messaging applications, social networking sites, cloud computing services, space shifting technologies (e.g., Sling Box), and Web browsers.”
I agree with the concern expressed by the various Internet Coalitions as defined in their letter. You can view their full letter here. The definition is too broad and could potentially lump a variety of services that aren’t even related to Peer-to-Peer in the same category, Cloud Computing potentially being one. I do agree that there should be some warnings regarding privacy, especially when it comes to users sharing data. I also think that the Consumer should have a clear definition of their own privacy from the standpoint of ISP’s looking at their network traffic, throttling bandwidth for P2P, even if using it legitimately (and yes, there are plenty of “legal” ways to use P2P).
So, while I agree that the definition of “peer-to-peer” is a bit vague and broad, I believe that those of us in the Cloud Computing industry should not have to worry that much. But, in case any Legislators or Media are reading this, here is why I stated: Peer-to-Peer is NOT “Cloud Computing”
Let’s briefly think about the qualities that make up Cloud Computing in general.
P2P is NOT a Cloud Application
Cloud Applications (SaaS) typically reside within a company’s organization as it is a product. It is a method to provide functionality usually found within an installed application but via the web, without the need to update or maintain the software (from the end-user side). Interestingly, Wikipedia does lump “Peer-to-Peer/Volunteer Computing” under the Cloud Application section. I warrant that this is incorrect. For Peer-to-Peer to work, an end-user must install an application that hooks into a distributed network, specifically a networking protocol. It is NOT a web-based application. It is not much different than a web-browser using the HTTP protocol to retrieve HTML, just that with P2P, you can aggregate sources.
P2P is NOT a Cloud Platform
Cloud Platforms typically deliver web application frameworks from a controlled environment. These frameworks (like Ruby, Java, .NET or Python) are maintained by a Cloud provider. Since P2P simply utilizes a networking protocol and not a web application framework, I do not consider it to be a Cloud Platform.
P2P is NOT Cloud Infrastructure
With P2P, you don’t get a server, load balancer, firewall or storage, for example. You use you own computer with software to access the distributed network, configure how you want to download and share and store locally on your own machine. There is nothing within Peer-to-peer that remotely resembles Cloud Infrastructure.
What is Peer-to-Peer Anyway?
The graphic above represents two networking environments: Client/Server and Peer-to-Peer. Most of us are familiar with Client/Server. You need only think about your web browser accessing a HTML page on a server somewhere to know what that is about. When you go to Google or Gmail, you are hitting a particular server. If you think about Cloud Computing, it’s no different than a traditional hosting environment, your “Central Server” exists in the Cloud (in a datacenter) as one or many server instances.
With Peer-to-Peer, there is no “Central Server.” Peers, or distributed clients, simply connect to each other through a specific networking protocol. This is how BitTorrent, a common filesharing service, works, and this is the concern that is under new legislation. Because there is no centralized server, it is difficult to track, regulate or control what information, files or data is being passed, thus compounding the difficulty of enforcing privacy and/or copyright usage and violations. Being de-centralized means that P2P is more scalable, organic and much more difficult to track.
Note: You can actually use peer-to-peer in conjunction with the Cloud. For example, if you host a file on Amazon’s S3 service, it can be “shared” via P2P (see this Amazon documentation). But obviously, they are not the same.
To further simplify, with the Client/Server scenario, if you want to download a file, you attach to a central server that hosts the file and download from there. With P2P, the file is distributed and de-centralized. In fact, the file is chopped up into different segments and you download segments from different clients or peers.
What about Content Delivery Networks?
If anything, Peer-to-Peer can be considered a type of hybrid CDN (Content Delivery Network). Will CDN’s fall under this broad definition? I feel they are much closer to P2P than Cloud Computing is. So, perhaps Akamai, CacheFly or even Amazon (CloudFront) should be a bit more concerned with this bill than others.
Too Loose of a Definition
However, the definition as it stands, could be broadly applied to the software controlling various Clouds. One of the advantages of the Cloud is the ability to dynamically scale one’s software, web applications and even infrastructure. Since that process frequently involves the “transmission of files” back and forth between servers or nodes, does this fall under the loose and vague definition of P2P outlined in this Bill? It seems to me that it does potentially and should be refined considerably. Also consider the various Cloud Integrators or Extenders like RightScale, SkyTap, Appistry and others whose business it is to move applications, files, frameworks and other data objects back and forth within clouds and to different cloud providers.
I’m not a lawmaker, nor a Lobbyist (aside from the fact that I market and discuss Cloud Computing and our own Cloud product, GoGrid), but I’m concerned that when lawmakers don’t fully understand a concept, especially when it comes to technology, that assumptions and mis-definitions are made a bit too easily. I do hope that whatever committee is tasked with debating the Bill as it stands will do some research and investigation and as a results of their due diligence, will have a much more elegant and refined definition of what truly is a “Peer-to-Peer” application and environment.
What are your views on Cloud Computing, Peer-to-Peer and “H.R. 1319: Informed P2P User Act“? I asked a few of my peers on Twitter, you might be interested by the comments. I’m sure these are just the tip of the iceberg!
Latest posts by Michael Sheehan (see all)
- Get Your Game On in the Cloud - June 11, 2013
- How Software Defined Networking Delivers Next-Generation Success - June 5, 2013
- James Gosling to Speak on Innovation at GoGrid Cloud Meetup on 5/22 - May 16, 2013