- Ubiquitous Computing
- Web Services
- The Semantic Web
- Spaces Computing
- Peer-to-Peer Computing
- Collaborative Computing
- Dependable Systems
- Security
- Languages
- Pervasive Computing
- Cluster Concepts
- Distributed Agents
- Distributed Algorithms
- Distributed Databases
- Distributed Filesystems
- Distributed Media
- Distributed Storage
- Grid Computing
- Massively Parallel Systems
- Middleware
- Mobile and Wireless Computing
- Network Protocols
- Operating Systems
- Real-Time and Embedded Systems
- Commentary
- Endnotes
Peer-to-Peer Computing
All the assumptions and institutions that brought us here are being fundamentally challenged by the work we do in computer science. The network metaphor is laden with both promise and foreboding, depending on the context of deployment and the justification of purpose. The very idea of intellectual property and its inherent value (as codified by existing laws and protections) is disrupted in an era in which all information of all kinds can easily be duplicated at near zero costs and transmitted at light speed to any number of receivers.
Napster served as an early warning system insofar as the institutional cognitive dissonance endemic in NDC can harbor.[12] Even as it pioneered the vast potential that can be gleaned in Internet-wide peer-to-peer (p2p) deployment, it gave p2p a bad name. By utilizing simple, "organic" networking concepts, Napster illustrated both the potential and the unease p2p engenders.
The concepts behind p2p are relatively simple and amazingly effective. One way to understand how p2p works is to view it from the perspective of the node that may need to engage a p2p network.
To begin, the uninitiated node must have some knowledge of at least one peer. The joining of a node to a network has traditionally been a function of hands-on system administration; even with advances like Dynamic Host Configuration Protocol (DHCP), an administrator must be involved at some juncture at least to ensure that any new node has a view of a DHCP server.[13] In most p2p implementations, the address of another peer is required information.
If a node can locate and communicate with a peer node, it is possible that the peer node may have further addresses, as well as descriptions of services that might be available from other nodes. So the newly initiated peer can then discover the existence of other peer nodes and realize the ability to communicate with them simply by knowing of the first peer node. The ability to discover other peers is exponentially derived from knowing the location of the first peer node, and a cascading series of discoveries is thus enabled.
This method of "learning" does not depend on access to a central respository of knowledge about the network. As the World Wide Web grows in scope and degree of information distribution, it may very well be that the more organic approaches to NDC software architecture, like p2p, will be the only ones that can adequately navigate the complex relationships that are emerging.