Home
Knowledge Base
Credits
Site Map
 


Network Application Architectures


When building a new network application, you first must decide on the application's architecture keeping in mind that an application's architecture is different from network architecture. Network architecture's fixed and provides a specific set of services to applications. Application architecture is designed by the application developer and dictates how the application is organized over various end systems. An application developer will draw on one of the three predominant architectures used in modern network applications: the client-server architecture, the P2P architecture, and a hybrid of the client-server and P2P architectures.







Client-Server Architecture
is an always on host called the server, which services requests from many other hosts, called clients. Client hosts can be sometimes on or always on. With the client-server architecture, clients do not directly communicate with each other. Client-server architecture's server has a fixed, well known address called an IP address. These characteristics allow a client the ability to always contact the server by sending a packet to the server's address. In a client-server application, a single server host
is incapable of keeping up with all the requests from its clients. Therefore, clusters of hosts, referred to as server farm are sometimes used
to create a powerful virtual server in client-server
architecture.

  P2P architecture is an always on server at the center of the application. Pairs of hosts, called peers communicate directly with each other. Do not pass through a special server therefore, is called peer-to-peer. P2P file sharing is intrinsically scalable; each additional peer not only demand but also increases service capacity. Because of the highly distribute and decentralized nature of P2P applications, they can be difficult to manage. Many applications are organized as hybrids of the client-server and P2P architectures. Files are exchanged directly among peers without passing through dedicated, always on servers. But is also a client-server in the sense that a peer queries a central server to determine which currently-up peers have a desired file.