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:
- Presentation client/server made
the most of the power of client stations to improve
GUIs.
- Data client/server pooled data
into one central point so as to guarantee its
integrity.
- Process client/server lightened
the burden on servers by deporting certain processes to the
client machine.
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:
- XML standardizes the format to
describe the transported data
- SOAP standardizes the way in
which the Web service is called
- WSDL standardizes the
introspection mechanisms of Web services, enabling the Web
service client to dynamically learn the structure of a Web
service to be invoked (input/output parameters)
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.
Printer Friendly Version