Saturday 29 September 2012

Differences between mainframe and client-server


Firstly, what are mainframes?  Mainframes, one of the first types of computers used in business, are used by medium- to large-sized companies required to process large amounts of data; mainframes can process millions of instructions per second. Given the variety of mainframes available, they are most easily identified by their operating systems, like Linux, Unix or any of several IBM systems. Mainframes provide businesses with a reliable performance history, maximum I/O connectivity and maximum I/O bandwidth.

Client/servers, on the other hand, provide an opportunity for businesses to network multiple computers. Their name implies a relationship between two programs, in which one, the client, requests a service from another that fulfills that request, the server. Client/servers are popular in smaller companies with a lot of departmental overlap.

So, what are the differences between them?

While mainframes are more popular and generally more reliable, client/servers are smaller, significantly less expensive and allow users to work "off-line," only needing to connect with the client-server when they need to share information. With mainframes, everyone must be logged on simultaneously, which can slow the processing speed.
Info extracted from

Tuesday 25 September 2012

Advantages vs Disadvantages


Advantages:

In most cases, client-server architecture enables the roles and responsibilities of a computing system to be distributed among several independent computers that are known to each other only through a network. This creates an additional advantage to this architecture: greater ease of maintenance. For example, it is possible to replace, repair, upgrade, or even relocate a server while its clients remain both unaware and unaffected by that change. This independence from change is also referred to as encapsulation.

All the data is stored on the servers, which generally have far greater security controls than most clients. Servers can better control access and resources, to guarantee that only those clients with the appropriate permissions may access and change data.



Since data storage is centralized, updates to those data are far easier to administer than would be possible under a P2P paradigm. Under a P2P architecture, data updates may need to be distributed and applied to each “peer” in the network, which is both time-consuming and error-prone, as there can be thousands or even millions of peers.

Many mature client-server technologies are already available which were designed to ensure security, ‘friendliness’ of the user interface, and ease of use.

It functions with multiple different clients of different capabilities.



Disadvantages:


Traffic congestion on the network has been an issue since the inception of the client-server paradigm. As the number of simultaneous client requests to a given server increases, the server can become severely overloaded. Contrast that to a P2P network, where its bandwidth actually increases as more nodes are added, since the P2P network’s overall bandwidth can be roughly computed as the sum of the bandwidths of every node in that network.

The client-server paradigm lacks the robustness of a good P2P network. Under client-server, should a critical server fail, clients’ requests cannot be fulfilled. In P2P networks, resources are usually distributed among many nodes. Even if one or more nodes depart and abandon a downloading file, for example, the remaining nodes should still have the data needed to complete the download.

Friday 21 September 2012

Challenges faced by Client-server



Generally a server may be challenged beyond its capabilities. Then a single server may cause a bottleneck or constraints problem. However, servers may be cloned and networked for capacity and performance. Limitations include network load, network address volume, and transaction recovery time.

Client/server architecture compete with cloud computing. Factors affecting a design decision could be:

As soon as the total number of simultaneous client requests made to a server increases, the server can become overloaded. Contrast that to a P2P network, where its aggregated bandwidth actually increases as nodes are added, since the P2P network's overall bandwidth can be roughly computed as the sum of the bandwidths of every node in that network. However, this simple model ends with the bandwidth of the network: Then congestion comes on the network and not with the peers.

Any single entity paradigm lacks the robustness of a redundant configuration. Under client–server, should a critical server fail, clients’ requests cannot be fulfilled by this failed entity, but may be taken by another parallel server which has access to the same data as the failed entity. In P2P networks, resources are usually distributed among many nodes which generate as many locations to fail. If dynamic re-routing is established, even if one or more nodes depart and abandon a downloading file, for example, the remaining nodes should still have the data needed to complete the download.

Mainframe networks use dumb terminals. All processing is completed on few central computers. This is a method of running a network with different limitations compared to fully fashioned clients.

Tuesday 18 September 2012

Comparison to peer-to-peer architecture


A client/server network involves multiple clients connecting to a single, central server. The file server on a client/server network must have robust hardware configurations to handle large volumes of client service requests. Hence servers usually are high speed computers with large hard disk capacity. 

By contrast, peer-to-peer networks involve two or more computers pooling individual resources such as disk drives, CD-ROMs and printers. These shared resources are available to every computer in the network, while each of them communicates in a session. Each computer acts as both the client and the server which means all the computers on the network are equals, that is where the term peer-to-peer comes from. The advantage of peer-to-peer networking is the easier control concept not requiring any additional coordination entity and not delaying transfers by routing via server entities. However, the collision of session may be larger than with routing via server nodes.

In the peer to peer network, software applications can be installed on the single computer and shared by every computer in the network. They are also cheaper to set up because most desktop operating systems have the software required for the network installed by default. On the other hand, the client/server model works with any size or physical layout of LAN and doesn't tend to slow down with a heavy use.

Peer-to-peer networks are typically less secure than a client/server networks because security is handled by the individual computers, not controlled and supervised on the network as a whole. The resources of the computers in the network can become congested as they have to support not only the workstation user, but also the requests from network users. It may be difficult to provide systemwide services when the client operating system typically used in this type of network is incapable of hosting the service.

Client/server networks with their additional capacities have a higher initial setup cost for networking than peer to peer networks. The long-term aspect of administering a client/server network with applications largely server-hosted surely saves administering effort compared to administering the application settings per each client. In addition the concentration of functions in performant servers allows for lower grade performance qualification of the clients.

It is possible to set up a server on a modern desktop computer, but it is recommended to consider investment in enterprise-wide server facilities with standardised choice of hardware and software and with a systematic and remotely operable administering strategy. It is easier to configure and manage the server hardware and software compared to the distributed administering requirements with a flock of computers.

Wednesday 12 September 2012

Client-server Interaction

The client/server characteristic describes the relationship of cooperating programs in an application. The server component provides a function or service to one or many clients, which initiate requests for such services. A notable example of this is the way OpenGL treats the video card of a computer as a server, with the actual application making rendering requests to it. This model is further solidified with the OpenGL Shading Language, with the user writing small programs that live in video memory, and are requested from the main program through the graphics driver.
Functions such as email exchange, web access and database access are built on the client/server model. Users accessing banking services from their computer use a web browser client to send a request to a web server at a bank. That web server runs a program which may in turn, forward the request to its own database client program, which sends a request to the bank's database server (which runs on another computer) to retrieve the account information. The balance and transaction records are returned to the bank database client, which in turn serves it back to the user's web browser client, displaying the results to the user. The client–server model has become one of the central ideas of network computing. Many business applications being written today use the client–server model, as do the Internet's main application protocols, such as HTTP, SMTP, Telnet, and DNS.

The interaction between client and server is often described using sequence diagrams. The Unified Modeling Language has support for sequence diagrams.

Specific types of clients include web browsers, email clients, and online chat clients.

Specific types of servers include web servers, ftp servers, application servers, database servers, name servers, mail servers, file servers, print servers, and terminal servers. Most web services are also types of servers.

Saturday 8 September 2012

The Concept of Client-Server

The client/server model is a computing model that acts as a distributed application which partitions tasks or workloads between the providers of a resource or service, called servers, and service requesters, called clients. Often clients and servers communicate over a computer network on separate hardware, but both client and server may reside in the same system. A server machine is a host that is running one or more server programs which share their resources with clients. A client does not share any of its resources, but requests a server's content or service function. Clients therefore initiate communication sessions with servers which await incoming requests.


Characteristics of a client:
  • Request sender is known as client 
  • Initiates requests 
  • Waits for and receives replies. 
  • Usually connects to a small number of servers at one time 
  • Typically interacts directly with end-users using a graphical user interface

Characteristics of a server:
  • Receiver of request which is send by client is known as server 
  • Passive (slave) 
  • Waits for requests from clients 
  • Upon receipt of requests, processes them and then serves replies 
  • Usually accepts connections from a large number of clients 
  • Typically does not interact directly with end-users