Intranet Journal
The online resource for intranet professionals
Nicolas Farges, Head of R&Dm techmetrix (nfarges@techmetrix.net)
and
Habib Guergachi, CT, Groupe SGLI
R&D
Consultant (hguergachi@sqli.com)
The recent success enjoyed by software based on the peer-to-peer architecture model has sparked off debate as to whether such a model is viable for enterprise applications. Peer to peer means "equal to equal," and it generalizes the notion of client and server - a peer can just as easily be a server as a consumer of resources. In our article we analyze this new trend that has become something of a hot topic.
What is peer to peer?
Peer to peer is, first and foremost, an architecture model for information systems. Its main aim is to optimize resource sharing on the network. To achieve this, the peer-to-peer model stops making the distinction between computers that publish resources on the network and those that consume them. So it's goodbye to client/server… and hello to peers.
The concept of peer to peer opens the way for some pretty extreme possibilities, since the resources that can be shared between peers can be very diverse:
Data sharing: Imagine the richness
of a universal file system (video, documents, music…) that
could be shared by all the peers connected to the network.
CPU resource sharing: The overall power of a
calculator that could pool together the power of all connected
peers would be massive.
Service sharing: Each peer can offer services
to other peers, such as a simulation calculation service, say.
The peer-to-peer model also provides a way to guarantee the ubiquity of resources supplied by the network. A peer does not need to worry about the location of the peer providing a service; it simply requests a resource on the network and a peer that possesses that service then provides it. The broader the network of peers, the greater the probability of obtaining even a rare resource.
What is more, the notion of peer to peer is not restricted to computers: it can apply to devices of all different sizes. These range from the super-calculator which publishes calculation resources to the simple mobile phone that publishes a remote control service which could work on computer devices in the home, for instance.
And it gets better: The potential of a network increases quadratically in proportion to the number of peers connected. Peer to peer on the scale of the Internet would mean access to virtually all the resources of connected devices, providing almost infinite diversity. And this means that resources would become ubiquitous.
Traditional client/server, or the Internet client/server model that we are familiar with, does not manage to make the most of the network's potential as peer-to-peer is supposed to do; the resources published on the network come from servers, which are equipped with the necessary infrastructure services. So we could say that the peer merges the notions of client and server.
The infrastructure required for peer to peer
The idea of peer to peer is an attractive one. Let's take a look now at the infrastructure services required for a peer-to-peer architecture to function:
Resource publishing: To share a resource, a
peer must publish it and enable it to be consulted by other
peers; the description of the resource must be precise and
standardized enough for the other peers to be able to find the
resources in question, via a search request.
Resource location: Before consuming a resource, the
peer must locate it on the network. This can be difficult due
to the ubiquity of resources and the unpredictability of their
connectivity. A directory mechanism that is updated in real
time is therefore essential.
Resource consumption: Once the resource has
been located, it must be invoked. This requires
standardization so as to access resources, however diverse
they may be (CPU, data or service residing on any type of
machine) since a peer is not necessarily familiar with the
workings of the resource that it is invoking. In concrete
terms, for a computer to connect to an unknown device, a
driver must be loaded dynamically, and for a calculation
service, the exchange protocol must be loaded dynamically.
Resource usage services: invocation of a
resource may require certain services such as security
management (authentication, non-repudiation, confidentiality),
transactional unity, availability (by failure recovery), or
performance (by balancing loads across different peers).
These infrastructure services must operate on a network in which the connectivity of each peer is unpredictable. It is clear that these infrastructure services will need to be standardized in order to minimize problems of deployment for peers.
Peer to Peer as a generic architecture for Enterprise applications
To identify the opportunities that the peer-to-peer architecture model offers today's enterprises, let us take a quick look back at the history of client/server, which can be seen as a primitive form of peer to peer.
The keystone of client/server was its ability to share parts of an application over a network (presentation, processes and data) so as to benefit fully from machines' resources. Different types of client/server succeeded one another:
The deployment problems caused by the different types of client/server were complex and costly, and were exacerbated when security, transaction, synchronization, location and other sorts of services had to be taken into account as well.
A generic peer-to-peer infrastructure that can share any kind of resources needs to be based on standards and should retain compatibility with existing systems (OS, networks, middleware…). It has become clear over time that developing such standards and using them in the real world is an idealistic dream that could only ever be possible in a laboratory.
The type of client/server that has triumphed is the Web client, which simply posts HTML pages using a rustic request/response protocol. The Web client is a straight consumer of resources, that tolerates network outages and whose bandwidth usage is predictable. The infrastructure services not provided by HTTP have simply been deported to servers which can host them in an environment with predictable constraints.
What's the future for peer to peer?
Peer to peer is definitely here, it has a future and it does not encroach on traditional heavy or light client models. Although the idea of a generic peer-to-peer architecture might seem to be a theoretician's ideal that cannot be applied in the real world, it can in fact be entirely feasible for some types of applications. Success stories like Napster or GNUTella are proof of the viability of the peer-to-peer model for certain configurations. There are a number of reasons for the success of such tools:
No need to take existing resources into
account: These tools have been built from scratch, without
the complex task of keeping them compatible with or extending
existing systems.
Technological expertise: Developers of this
sort of tool who are completely at home with the
infrastructure (peer software, communication and location
protocols…) can develop and optimize it without being slowed
down by standards.
Clear objectives: This type of application is
characterized by its precise objective. This makes it possible
to clearly identify the infrastructure services that need to
be set up both now and in the future; it then makes it even
easier to implement infrastructure services.
Advantage for users: This is the most
important factor of all. If the peer to peer application is
providing users with a real service, and if it reaches a
critical number of users, then success will become a virtuous
circle.
Another type of peer-to-peer model which is currently enjoying a real boom is the concept of Web services. A Web service is a process, published by an enterprise, that may be connected to the firm's existing IT system. The notion of clients and servers disappears, since a consumer of a Web service may also be the publisher of a Web service. What makes Web services special is the fact that they are based on a triptych of standards that makes interoperability between diverse systems a possibility:
The notion of Web services responds to a true need, in that it enables enterprises to exchange services whose processes can be automated. It relies on real standards (HTTP and XML), is totally compatible with existing systems, and offers a pragmatic approach with simple infrastructure services (invocation), which will become more complete as time passes (location with UDDI).
The success of Web services is proof that peer to peer should be tackled pragmatically and should be used to address precise needs; the model should not be considered a generic structure, because of the complexity that this will entail.
To sum up, our view is that the peer-to-peer architecture model is not one that will revolutionize enterprise applications. It is simply a model which has been brought into the spotlight thanks to tools such as Napster or GNUtella, which some have seen as providing an opportunity for developing a revolutionary architecture model.
The approach to adopt for peer-to-peer architectures should be utterly pragmatic; a good example of this is the Web services standard that will enable enterprise applications to be extended by letting them communicate using the P2P model.
TechMetrix Research is a technically focused analyst firm focused on e-business application development needs. Based in Boston, Mass., the firm publishes comparison reports and product reviews designed to aid enterprises with decision making and to keep pace with the fast-moving e-business market.
TechMetrix is a U.S.-based subsidiary of SQLI, a European company that offers on-site development services to international organizations. SQLI specializes in e-business project development.