A peer-to-peer application architecture is one in which each node, or logical entity, in the global application (consisting of all of the interoperating peer nodes) may act as either client or server, whether in turn (serial roles) or simultaneously (parallel roles) may be termed a peer-to-peer application architecture, and such applications are often known as peer-to-peer, or P2P "apps".
Many peer-to-peer applications use unequal peers, for example, to provide index or lookup services to the leaf nodes. Typically the leaf nodes will each be an personal computer, but may be anything from a workstation to a mainframe to a supercomputer.
Examples of peer-to-peer applications at the time of this writing include:
- Gnutella
- Napster
- OpenNap
- Kazaa
- Morpheus
- eDonkey
- Freenet
- MojoNation
- Chord
- Dexter
- Swarmcast
- Alpine
- Scribe
- JXTA
- Groove
- Squid
- Akamai
- Evernet
An earlier generation of peer-to-peer systems were called "metacomputing" or were classed as "middleware". These include:
![[HomePage]](http://upload.wikimedia.org/wikipedia/meta/3/32/Wiki_orig_logo.png)