
What Is Peer-to-Peer (P2P) Computing?
Don't let the name fool you. Peer-To-Peer does not imply small networks - it simply means using the power of each workstation to distribute information to other workstations accross the network.
P2P computing is a term that has gained a lot of popularity in recent times. Today, organizations and businesses increasingly depend on collaboration between individuals and groups to perform essential tasks. P2P applications share data accross the network in real time providing a highly robust application experience with exceptional performance. Introduced in the Windows Communication Foundation (WCF), part of the .NET 3.0 Framework, Peer-To-Peer computing promises to be a technology that will bring application performance and responsiveness to a new level.
Essentially, P2P computing is a set of networked computers that rely on the computing power and bandwidth of the individual computers on the network, as opposed to the traditional approach of relying on a smaller number of more powerful server computers on the network. A computer that is connected to a P2P network can be categorized as a node or peer. The nodes in a P2P network are usually connected on an ad hoc basis. This is where the real power in a P2P network lies, because the peers are responsible for uploading and downloading data among themselves without the need for a server.
This is a powerful concept. Think about a simple application that manages a company's contacts. Many people are simultaneously running this application on their desktop. When someone creates, updates, or deletes a contact record, the information is tranmitted across the network all "peers" in the application group. Each peer receiving the information processes it accordingly. What this provides is real time sycronization of application data which will then reflect current information without have to make a trip to a server and refresh ALL the data. Instead of haing to refresh an entire recordset of data, application can instantly include updatesand avoid expensive trips to the server. The result is awsome performance, increased p[roductivity, and a better user experiance.
Two types of P2P network exist: a pure network and a hybrid network. A pure P2P network has no concept of a client or a server; it has only nodes, which act in the capacity of both a server and a client, as needed. A hybrid P2P network, on the other hand, has a central server that keeps track of the various peers on the network. This server responds to requests from the peers for information only and does not store any data. The peers are responsible for hosting the information.
Most P2P solutions rely on some nonpeer elements in the solution, such as Domain-Name System (DNS, used to translate computer host names to IP addresses). Some P2P solutions also have the notion of a superpeer, in which other peers are connected to this superpeer in a star-like fashion. Over time, these superpeers could also be used as local servers. Windows Communication Foundation (WCF) is Microsoft's platform for SOA (Service Oriented Architecture). It is a rich technology foundation designed for building distributed service-oriented applications for the enterprise and the web that are secure, reliable, transactional and scalable.
WCF Releases and Platform Support
.NET 3.0 was released to manufacturing in November 2006 and officially launched with Windows Vista in January 2007 – introducing WCF along with Windows Workflow Foundation (WF) and Windows Presentation Foundation (WPF). This marked the release of Microsoft's first class web services platform simplifying the design, implementation and deployment of services with essential plumbing for scalability, performance, security, reliable message delivery, transactions, multithreading, asynchronous messaging and more.
With .NET 3.5 – launched with Visual Studio 2008 in November 2007 – additional WCF features were introduced including:
- Built-in support for web programming models such as Plain Old XML (POX), Representational State Transfer (REST), JavaScript Object Notation (JSON) and syndication feeds such as Really Simple Syndication (RSS) and ATOM.
- Support for the latest web service standards
- Better integration with ASP.NET AJAX clients
- Support for some partial trust environments. For example, hosting environments that run ASP.NET with reduced trust can host WCF services, and clients running with reduced trust – such as JavaScript within a browser or ClickOnce applications – can use WCF proxies.
- Support durable, long running services
- Seamless integration between WCF and WF allowing for services to be written as workflows and workflows to invoke services
- Productivity tools directly integrated with Visual Studio 2008
WCF applications can be deployed to the following platforms: Windows XP (SP2 or higher), Windows Vista, Windows Server 2003, and Windows Server 2008.