Before diving into software coding, you should develop a broad architectural plan for your application. Keep in mind that the architecture of the application is significantly different from the network architecture. From an application developer's perspective, the network architecture is fixed and provides a specific set of services for the application. Application architecture, on the other hand, is designed by application developers and indicates the structure of the application on various end systems. When choosing an application architecture, application developers may take advantage of one of two main architectural paradigms used in modern web applications: client-server architecture or peer-to-peer [P2P] architecture.
In the client-server architecture, there is an always-on host, called a server, that serves requests from many other hosts, called clients. Client hosts can be turned on or always on. A typical example is a web application, an always-on web server that provides service requests for browsers running on client hosts. When the web server receives a request for an object from a client host, it responds by sending the requested object to the client host. Note that with the client-server architecture, clients do not communicate directly with each other; for example, in a web application, two browsers do not communicate directly. Another feature of the client-server architecture is that the server has a fixed, well-known address called an IP address [which we will discuss shortly]. Because the server has a fixed, well-known address, and because the server is always open, the client can always contact the server by sending the packet to the server's address. Some well-known applications with a client-server architecture include Web, F1' R Telnet and email.
Often in a client-server application, a single server host cannot keep up with all of its client's requests. For example, if only one server handles all of its requests, popular social networking sites can quickly become overwhelmed. Therefore, host clusters [sometimes called server farms] are typically used to create powerful virtual servers in a client-server architecture. Application services based on client-server architecture are typically infrastructure intensive because they require service providers to purchase, install, and maintain farms. In addition, service providers must pay for regular interconnection and bandwidth costs in order to send and receive data to and from the Internet. Search engines [such as Google], Internet commerce [such as Amazon and e-Bay], web-based v-mail [for example, Yahoo Mail], social networks [such as MySpace and Facebook], and popular services such as video sharing [for example, YouTube] The infrastructure is dense and costly to provide.
In the P2P architecture, there is little [or no] dependency on the always-on infrastructure server. Instead, the application utilizes direct communication between pairs of hosts that are intermittently connected, called peers. Peers are not owned by service providers, but are controlled by users and desks, and most of the companions remain in homes, universities, and offices. This architecture is called a peer because the peer communicates without going through a dedicated server. Many of today's most popular and most trafficked applications are based on the P2P architecture. These applications include file distribution [eg, BitTorrent], file search/sharing [eg, eMule and LimeWire], Internet telephony [eg, Skype], and IPTV [eg, PPLive].
Orignal From: Network application architecture
No comments:
Post a Comment