Skip to main content

Peer-to-peer VS Client/Server Architecture

Peer-to-Peer Network
In peer-to-peer networks, the connected computers have no centralized authority. From an authority viewpoint, all of these computers are equal. In other words they are peers. If a user of one computer wants access to a resource on another computer, the security check for access rights is the responsibility of the computer holding the resource.        
Each computer in a peer-to-peer network can be both a client that requests resources and a server that provides resources. This is a great arrangement, provided the following conditions are met:
·         Each user is responsible for local backup.
·         Security considerations are minimal.
·         A limited number of computers are involved.

When you allow workstation computers to become servers and share things, it is called Peer-to-peer network.
Example:
Suppose there is a small business office, in this office, the secretary uses the best computer, and has the most drive space, she also has a fast laser printer connected to her computer. The accountant has a mediocre computer that has a color ink jet printer. The owner has a good computer with a zip drive to take work home. All of these computers are networked together, with no central server.
The secretary uses the zip drive through the network to backup important documents, and also uses the ink jet printer on the accountant's computer to print out fliers. The accountant uses the laser printer on the secretary's computer to print out checks, accesses some important documents on the secretary's computer, and backs up the accounting data on the zip drive on the owner’s computer. The owner uses both printers on the other computers, and accesses important documents on the secretary's computer. All of the computers share Internet access through the secretary's computer.
All of this gets done with no passwords or user names since all the shared devices use no access control, or other type of security measure. Also in order for the accountant's computer and the owner's computer to be able to read the companies important documents, the secretary's computer must be turned on first.
Networks that run Windows 95/98 as their network operating system and networks using Windows NT, 2000, or XP in a workgroup are considered peer-to-peer networks. FIGURE shows an example of a peer-to-peer network. Peer-to-peer networks present some challenges. For example, backing up company data becomes too difficult. Also, it can be difficult to remember where you stored a file. Finally, because security is not centralized, users and passwords must be maintained separately on each machine. Passwords may be different for the same users on different machines (or the different resources on Windows 9x machines).





FIGURE Peer-to-peer system

Peer-to-peer communication really hit the big time around 2000 with a service called Napster, which at its peak had over 50 million music fans swapping music, in what was probably the biggest copyright infringement in all of recorded history. The idea was fairly simple. Members registered the music they had on their hard disks in a central database to see who had it and went directly there to get it. By not actually keeping any music on its machines, Napster argued that it was not infringing anyone’s copyright. The courts did not agree and shut it down.
However, the next generation of the peer-to-peer systems removed the central database by having each user maintain its own database locally, as well as providing a list of other nearby people who are members of the system. A new user can then go to any existing member to see what he has and get a list of members to inspect for more music and more names. This lookup process can be repeated indefinitely to build up a large local database of what is out there. It is an activity that would get tedious for people but it is one at which computers excel.

Advantages
·         It is inexpensive to set up the network.
·         It uses the built-in networking capabilities of Windows XP Professional (or Vista Business), so no special software is needed. So the only cost will be the networking hardware (cards, wiring, hubs or switches), and the labor to configure the workstations for this type of network sharing.
·         It allows for file and printer sharing, and can be adequate choice for a very small office.

Limitations
·         Peer-to-peer networks are dependent upon the computer knowledge of each employee, as certain rules must be followed in order to minimize network interruptions. If a user shuts down his machine in the middle of the day, other users on the network lose access to the files in that machine’s shared folder.
·         Network and data security are weak.
·         Files are not centralized, so getting a backup of all crucial files is more difficult.
·         Ongoing tasks like anti-virus scanning and Windows updates are localized on each machine. Updating virus definitions and patches has to be done manually at each machine, which is time consuming.


Client/Server Network
In contrast to a peer-to-peer network, a client/server network uses a network operating systemdesigned to manage the entire network from a centralized point, which is the server. Clients makerequests of the server, and the server responds with the information or access to a resource.

The Client-Server network model usually consists of one or more server computers that provide services and information to a number of workstation computers. These services can consist of many different roles, including: file services, web services, email services, domain name lookup services, document version system services, Internet sharing services, etc. A great example of the Client-Server network model is actually the World Wide Internet. On the Internet clients, or computer with web browsers, access web sites that are hosted on servers.
This model differs from the Peer-to-peer network model in that the servers usually do not usually act as a workstation, and the workstations usually do not act as servers, and if they do act as a server, they should be configured to allow the central servers to provide access restrictions on the shares they provide the network.

Example:

The network is setup with a main file server, that stores all the users email. Every night the main file server is backed up to a secondary file server that is located in an adjacent building. The network also has a network firewall computer that serves an Internet connection to the network, and forwards all email to the file server. The file server has different shares for each department so only people in that department has access to the files, and also has a company wide share that everyone in the company has access to the files. Each user also has a home directory on the main file server for personal documents that no one else can access. The network also has two large laser printers and a commercial color laser printer, all the printers are connected to the main file server through a jet direct interface.
The client computers all map a drive letter (L:) to the company wide share, and also map a drive letter (M:) to the department share, and the clients can print to whichever printer they need to. The drive mappings occur during a login script that is ran when the client computer logs in to the network. Each department has at least one zip drive on its computers which is shared for backups and convenience. Each employee has a separate email account, and all email messages reside on the main file server, so if any of the workstation computers goes down, the emails are still intact.
Advantages
  • The server stores all of the shared files for each user.
  • The server runs the file backups which can be scheduled in the middle of the night, minimizing network interruptions.
  • The server manages user security, and ensures that all users who access the network are authorized to do so.
  • The server manages printer sharing and acts as a central repository for the printer drivers and settings.
  • The server manages other common tasks such as internet access, email routing, Windows updating and anti-virus definition management.
  • The server can also share software applications out to multiple users.
  • The server can also provide for an "Intranet", an internal website which holds shared company information such as news announcements, HR policies, training documents, and more.
Disadvantages
·         As the number of simultaneous client requests to a given server increases, the server can become overloaded.
·         It lacks the robustness of a good P2P network. If server fails then any request sent by the client will be rejected.
·         The cost of setting up a network is high because to take backup of data every day we require another server.

They also allow the simultaneous sharing of resources from lesser devices that run what are considered workstation operating system, which are capable of fewer inbound connections but are running the server service nonetheless.
Computer networks may be hugely important to people who are geographically challenged, giving them the same access to services as people living in the middle of the city. Telelearning may radically affect education; universities may go national or international. Telemedicine is only now starting to catch on (e.g., remote patient monitoring) but may become much more important. But the killer application may be something mundane, like using webcam in your refrigerator to see if you have to buy milk on the way home from work.

Comments

Popular posts from this blog

Characteristics of a Good Programming Language

Till now there are many high level languages which are very popular, and there are others, which could not become so popular in-spite of being very powerful. There might be many reasons for the success of a language, but one obvious reason is the characteristics of the language. Several characteristics believed to be important with respect to making a programming language good are briefly discussed below. Simplicity A good programming language must be simple and easy to learn and use. For example, BASIC is liked by many programmers only because of its simplicity. Thus, a good programming language should provide a programmer with a clear, simple and unified set of concepts which can be easily grasped. It is also easy to develop and implement a compiler or an interpreter for a programming language that is simple. However, the power needed for the language should not be sacrificed for simplicity. The overall simplicity of a programming language strongly affects the readability of the pr...

Angular 4 and Firebase Authentication: Email/Password

In our  previous  article we saw how to create authentication module using Google identity provider. Now we will see how to implement Email and Password authentication using Firebase. We will use Bootstrap form to create intuitive user interface for sign-up and login using Email and Password. Step 1: Create signUp component. ng generate component signUp Step 2: Create custom form in sign-up.component.html file. The result of above code: Step 3: Add two functions for creating the user and login using Email and Password in src/app/providers/AFAuth.ts file. Step 4: Call createUserWithEmailAndPassword function in service from sign-up.component.ts. Step 5: Update routing configuration in app.module.ts  to include signUp component. Step 6: Update Login form to have Bootstrap form. The result of the above code. Step 7: Enable Email/Password component in Firebas...

Angular 4 and Firebase Authentication: Setup

If you have come to this article, it means you are keen to learn new technology and that too Firebase. I love Firebase because it provides all basic but important features of any web application. Take for example, authentication, which is cumbersome and risky if not implemented with utmost care. And when we have the integration of Angular and Firebase, it becomes a lot easier for a developer to build such crucial modules in less time with minimal efforts. In this article we will create a simple Angular application using Firebase. I am going ahead with the understanding that you know the benefits of Firebase and have little knowledge about it. There are plenty of posts out on the web if you are behind. Step 1: Install Angular CLI (if not installed). npm install -g angular-cli Step 2: Create new Angular 4 project. By default now angular CLI will create Angular 4 project so you need not fret. ng new firebase-authentication Step 3: Check whether the ne...