Categories
Technology

P2P Services

The Don Box discussion about HTTP was a good read with valid points.

From a P2P, not a web services perspective, we need to guarantee certain capabilities in P2P services that we take for granted in more traditional client/server environments. This includes the following:

 

  • Transaction reliability — the old two-phase commit of database technology appears again, but this time in a more challenging guise.
  • Transaction auditing — a variation of the two-phase commit, except that auditing is, in some ways, more fo the business aspect of the technology.
  • Transaction security — we need to ensure that no one can snoop at the transaction contents, or otherwise violate the transaction playing field.
  • Transaction trust — not the same thing as security. Transaction trust means that we have to ensure that the P2P service we’re accessing is the correct one, the valid one, and that the service met some business trust criteria (outside of the technology realm with the latter).
  • Service or Peer discovery — still probably one of the more complicated issues about P2P. How do we find services? How do we find P2P circles? How do market our services?
  • Peer rediscovery — this is where the iron hits the cloud in all P2P applications I know of. You start a communication with another peer, but that peer goes offline. How do you take up the conversation again without the use of some centralized resource? Same could also be applied to services.
  • Bi-directional communication — This is Don’s reference to HTTP’s asymmetric nature. Peers share communication; otherwise you’re only talking about the traditional web services model.

The file transfer nature of Napster or Freenet, and the IM nature of Jabber don’t necessarily consume all of these aspects of P2P applications, so haven’t necessarily pushed the P2P bubble to the max. However, when we start talking about P2P services — a variation of web services one could say — then we know we’re going to be stretching both our technology capabilities, and our trust of the same.

Fun!

Categories
Technology

Next Generation P2P?

John Robb at Userland has defined a set of constraints for what he considers to be next generation of P2P. I appreciate that he’s put Userland architecture interests online — it generates conversation. However, I am concerned about the interpretation of “P2P”, for what is, essentially a lightweight server system.

Requirement one: The ability for individual users to create subnets where authorization is required before use is enabled.

It’s interesing that people talk about sub-nets and authorization. For true P2P security, the same rules of trust and security must be established with all peers, sub-net participants or not. Rather than create new authentication and security for each individual sub-net, the same security mechanisms and trust definitions must apply to all P2P nodes. Otherwise, any one P2P node that’s on a wire that has physical access to the secure sub-net is a point of vulnerability. And I guarantee that there will be one node that’s connected to the Internet, making all nodes insecure.

However, applying security measures across all possible P2P nodes is going to be a burden on a system — security takes bandwidth. And that’s not the biggest issue — security within P2P nodes implies control. Most forms of authentication and authorization are based on these functions being provided by a central server.

As we’ve seen recently with Morpheus, central points of entry make a P2P system vulnerable.

If this issue is straight user signon and authorization to access of services, then you’re not talking about P2P — you’re talking about a more traditional server/client application. A true P2P system must have a way for each peer to establish a secure connection and determine identity and accessibility without reliance on any specific server.

Yeah. “Gack” is right.

Requirement two: The ability to publish structured content such as a complete web site or web app to a multi-million person network without flooding the publisher’s PC.

I know where this one is going, and I’m sorry, but this is based on a flawed vision: pushing content out to an individual client rather than having the client connect to a centralized source. In addition, this isn’t really a requirement for P2P, but a specific application’s functional need. It’s important to keep the two separate as we discuss the requirement in more detail.

At it’s simplest, published content is nothing more than files, and any P2P file system will work, including Freenet and Gnutella. But in reality, with published content we’re talking about structure as well as files. In addition, the published content also implies an ability to access and re-access the same publication source again and again in order to get fresh content.

Traditional P2P file transfer systems are based on the concept that you’re after a specific resource, a single item — you don’t care where you get it. For published content, the source is a key factor in the peer connection.

As for the issues of scalability, again, traditional P2P networks don’t have an answer that will work in for this requirement because of that single port of content. This would be equivalent to a Gnutella network and only one node on that network has Michael Jackson’s Thriller. As relieved as we are about this, this does put some serious limitations on a P2P-based resource system.

However, once we get beyond the stretch to the P2P paradigm this requirement necessitates, the same concepts of store and forward of Freenet could work for this requirement, except that you’re not talking about intermediate nodes storing an MP3 file — you’re talking about the possibility of massive amounts of information being dumped on each individual intermediate node.

The only way for this to work would be to stripe the material and distribute the content on several nodes, basically creating a multi-dimensional store and forward. Ugh. Now, what was the problem with the web?

Requirement three: The ability to connect subscribed users in a given subnet to each other via Web Services in order to enable a new class of applications that share information (but don’t utilize centralized resources).

The whole principle behind P2P is connecting peers to each other. However, maintaining a true connection in order to successfully conduct a transaction, that’s the key. I once wrote the following functionality for a P2P transaction:

Transaction reliability — the old two-phase commit of database technology appears again, but this time in a more challenging guise.

Transaction auditing — a variation of the two-phase commit, except that auditing is, in some ways, more fo the business aspect of the technology.

Transaction security — we need to ensure that no one can snoop at the transaction contents, or otherwise violate the transaction playing field.

Transaction trust — not the same thing as security. Transaction trust means that we have to ensure that the P2P service we’re accessing is the correct one, the valid one, and that the service met some business trust criteria (outside of the technology realm with the latter).

Service or Peer discovery — still probably one of the more complicated issues about P2P. How do we find services? How do we find P2P circles? How do market our services?

Peer rediscovery — this is where the iron hits the cloud in all P2P applications I know of. You start a communication with another peer, but that peer goes offline. How do you take up the conversation again without the use of some centralized resource? Same could also be applied to services.

Bi-directional communication — This is a reference to HTTP’s asymmetric nature. Peers share communication; otherwise you’re only talking about the traditional web services model.

Interesting challenge. As far as I know, at no one has met it yet…at least nothing that can handle complex data with a single point of origin.

Outside of the listed requirements, John discusses that the next generation P2P systems needs some form of development environment. He states, “Notice, that in this system, the P2P transport is important but generic — it is just a pipe.” He also says “… this system it doesn’t have to be completely decentralized to avoid legal action.”

Last time I looked, decentralization was the basis of P2P. And can we all forget the damn copyright issues for once and focus on what P2P was meant to be: total enablement of each node within the Internet?

John, you have specified requirements of which some, but not all, can be met by P2P-based functionality. Let me emphasize that “some but not all” response again.

You’re really not packaging requirements for the next generation of P2P systems; what you’re packaging is the requirements for “Next Generation Radio”. It’s important not to confuse this with what’s necessary for P2P systems.

I am Superwoman. What makes me Superwoman? Because I meet all the requirements for being Superwoman. And what are the requirements for being Superwoman?

Being me.

It just doesn’t work that way.

Categories
Technology

Brave New World

What is going to be the future of connectivity? What is the Brave New World of the Internet going to be?

Is it going to be a system of services linked together through one centralized (but benevolent) agency? Need a service? Want to sell a service? Check into the Agency, the Agency will take care of you. Oh, by the way, you need to add this to your machine. And you need to give us this information.

And you need to understand that we know what’s best for you…and you have no choice, anyway, do you?

Or is it going to be a brave new world of content publishing and subscription?

You sitting at home passively on your machine hooked up as a dying man is hooked up to a heart machine, each beat a pulse from the great wire, delivering you all the information fit to print, at least fit enough to survive the filters.

You sit and add your own beat, with perhaps an accompaniment of a pat on the head, job well done. Why seek? Why search?

Now, just put that finger on that mouse and click those checkboxes and yes, we’ll take care of you because we know what’s best for you…and you have no choice, anyway, do you?

Put your mouth to the nipple and prepare to be fed.

A brave new world.

Connecting to the void you send tendrils out seeking others of like mind, or not, occasionally bumping into something new or unexpected in your search.

Two paths open for every path that closes, and the only locked door you find is standing alone with no walls around it. You laugh into the void as you walk past the door, continuing on your journey of discovery.

Categories
Technology Writing

Calling all Unix gurus

Rule number one if you’re taking a break from your weblog: turn off email notification for your comments. I kept responding to the comments rather than working.

Speaking of working, the main reason I was taking the break was to finish my writing on two books for O’Reilly: the Essential Weblogging book and UNIX Power Tools, 3rd edition. I finished the Weblogging book, but am still working on the last chapters of the UNIX book.

I really liked the public review for the Weblogging book. The suggestions were terrific, and the result was very positive. In addition, I also have a group of people from the RDF Interest group who review my RDF book chapters as I finish them. In fact, the best part of the RDF book is the feedback I get from my reviewers.

Well, I want to continue this public process with the UNIX Power Tools book. I’m currently writing chapters covering new book topics and I want to make sure that I’m covering the best tips and tricks. Based on this, I’m asking you my weblog reader, to give me hand.

If you work with Linux (all flavors), Darwin, Solaris, HP UX, FreeBSD, etc. – any version of UNIX – and you have a tip or trick based on the following subjects, could you please send me an email with your suggestion:

 

SSH, encryption, firewalls, PGP, installing and building software, creating software packages for installation, user and file security, Kerberos, security concepts and tools, preventing security problems, finding security problems

 

An example of a tip or trick would be describing how to enable root in Darwin or how to set directory permissions to prevent listing of the contents in the directory while allowing reads of individual files – handy little tidbits of information that make working with UNIX easier, more interesting, more fun.

If you’re the first with a tip, I’ll make sure you get credit for it in the book. I need to get these chapters finished next week, so I’m hoping to get tips and tricks this weekend.

Regardless of whether you’re a Unix guru or not, would you do me a kindness, and a huge favor, and help me out by posting a link to this request and pass the word on? Help a fellow weblogger?

Categories
Web

Congrats, Sam Ruby

I consider Apache to be an excellent example of what the computer industry can accomplish when it pulls together to create a truly open product. When I heard that Sam Ruby was just elected to the Apache Board of Directors, I had to post a note about the event.

Congratulations, Sam! The Board will be richer for your presence. Of course, you can now kiss all your free time good-bye…