Client Server Systems

16
Client-Server Systems Gheethu Maria Joy School of Management Studies CUSAT, Kochi – 22 MBA FT E-mail:[email protected] Abstract: The essence of client-server computing is that two kinds of processes (units of program code) that are specialized for different tasks, running on possibly different hardware, applications software and operating systems co-operate to solve a computing problem. One kind (a client) makes a request of another. The other kind (a server) performs the service requested (if the request is a valid one).A client-server application is a distributed system made up of both client and server software. Client server application provide a better way to share the workload.Therefore, the client–server model of computing is a distributed application structure that partitions tasks or workloads between the providers of a resource or service, called servers, and service requesters, called clients. Key Words: Client, server, distributed system, request, response

description

Enterprise Resource Planning

Transcript of Client Server Systems

Page 1: Client Server Systems

Client-Server Systems

Gheethu Maria Joy

School of Management StudiesCUSAT, Kochi – 22

MBA FTE-mail:[email protected]

Abstract: The essence of client-server computing is that two kinds of processes (units of program code) that are specialized for different tasks, running on possibly different hardware, applications software and operating systems co-operate to solve a computing problem. One kind (a client) makes a request of another. The other kind (a server) performs the service requested (if the request is a valid one).A client-server application is a distributed system made up of both client and server software. Client server application provide a better way to share the workload.Therefore, the client–server model of computing is a distributed application structure that partitions tasks or workloads between the providers of a resource or service, called servers, and service requesters, called clients.

Key Words: Client, server, distributed system, request, response

1.0 INTRODUCTION

1.1 General InformationClient - A client is a single-user workstation that provides presentation services and the appropriate computing, connectivity and the database services and the interfaces relevant to the business need.

Server - A server is one or more multi-user processors with share memory providing computing, connectivity and the database services and the interfaces relevant to the business need.

Page 2: Client Server Systems

Client-server is a software architecture model consisting of two parts, client systems and server systems, both communicating over a computer network or on the same computer.

Often clients and servers communicate over a computer network on separate hardware, but both client and server may reside in the same system. When both the client process and server process are running on the same computer, this is called a single seat setup.

The essence of client-server computing is that two kinds of processes (units of program code) that are specialized for different tasks, running on possibly different hardware, applications software and operating systems co-operate to solve a computing problem. One kind (a client) makes a request of another. The other kind (a server) performs the service requested (if the request is a valid one).

A client-server application is a distributed system made up of both client and server software.Client server application provide a better way to share the workload.Therefore, the client–server model of computing is a distributed application structure that partitions tasks or workloads between the providers of a resource or service, called servers, and service requesters, called clients.

The client process always initiates a connection to the server, while the server process always waits for requests from any client.

The client-server relationship describes the relation between the client and how it makes a service request to the server, and how the server can accept these requests, process them, and return the requested information to the client.

The interaction between client and server is often described using sequence diagrams. Sequence diagrams are standardized in the Unified Modeling Language.

The basic type of client-server architecture employs only two types of hosts: clients and servers. This type of architecture is sometimes referred to as two-tier. The two-tier architecture means that the client acts as one tier and server process acts as the other tier.

The client-server architecture has become one of the basic models of network computing.

Many types of applications have been written using the client-server model.

Page 3: Client Server Systems

A server host runs 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.

Many applications have been constructed to operate in client-server mode. For example, most Internet-based services—news readers, E-mail, the World-Wide-Web—have been designed this way.Examples of computer applications that use the client–server model are Email, network printing, and the World Wide WebFor example, a web browser is a client program at the user computer that may access information at any web server in the world.

Servers are classified by the services they provide. For instance, a web server serves web pages and a file server serves computer files. A shared resource may be any of the server computer's software and electronic components, from programs and data to processors and storage devices. The sharing of resources of a server constitute a service.

Whether a computer is a client, a server, or both, is determined by the nature of the application that requires the service functions. For example, a single computer can run web server and file server software at the same time to serve different data to clients making different kinds of requests.

Client software can also communicate with server software within the same computer.Communication between servers, such as to synchronize data, is sometimes called inter-server or server-to-server communication.

In most cases, the machine on which the server is a powerful machine that resides remotely, while the client machine sits locally on the user’s desktop, but this is sometimes reversed.

Often, but not always, you have a situation where several clients are connected to a single server. However, in the field of databases, a local machine may be connected to several remote databases in client-server mode, with each application running in a separate window. Therefore a more usual situation is multiple clients, multiple servers.

The client/server software architecture is a versatile, message-based and modular infrastructure that is intended to improve usability, flexibility, interoperability, and scalability.

2.0 Clients characteristics

Always initiates requests to servers. Waits for replies. Receives replies. Usually connects to a small number of servers at one time. Usually interacts directly with end-users using any user interface such as graphical user

interface.

Page 4: Client Server Systems

3.0 Server characteristics

Always wait for a request from one of the clients. Serve clients requests then replies with requested data to the clients. A server may communicate with other servers in order to serve a client request. If additional information is required to process a request (or security is implemented), a

server may request additional data (passwords) from a client before processing a request. End users typically do not interact directly with a server, but use a client.

4.0 Advantages

1. In most cases, a 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, so one of advantages of this model is 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.

2. All the data is stored on the servers, which generally have better 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.

3. Since data storage is centralized, updates to that data are much easier to administrators than what would be possible under a P2P architecture. 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.

4. Many advanced client-server technologies are already available which were designed to ensure security, user friendly interfaces, and ease of use.

5. It works with multiple different clients of different specifications.

5.0 Disadvantages

1. Networks traffic blocking is one of the problems related to the client-server model. As the number of simultaneous client requests to a given server increases, the server can become 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.

2. Comparing client-server model to the P2P model, if one server fail, clients’ requests cannot be served but in case of P2P networks, servers are usually distributed among

Page 5: Client Server Systems

many nodes. Even if one or more nodes fail, for example if a node failed to download a file the remaining nodes should still have the data needed to complete the download.

6.0 Examples

Specific types of clients include: web browsers, E-mail clients, and online chat clients.

Specific types of servers include: web servers, FTP servers, database servers, E-mail servers, file servers, print servers. Most web services are also types of servers.

7.0 Client and server communication

Clients and servers exchange messages in a request–response messaging pattern: The client sends a request, and the server returns a response. This exchange of messages is an example of inter-process communication. To communicate, the computers must have a common language, and they must follow rules so that both the client and the server know what to expect. The language and rules of communication are defined in a communications protocol. All client-server protocols operate in the application layer. The application-layer protocol defines the basic patterns of the dialogue.

To formalize the data exchange even further, the server may implement an API (such as a web service).The API is an abstraction layer for such resources as databases and custom software. By restricting communication to a specific content format, it facilitates parsing. By abstracting access, it facilitates cross-platform data exchange.

A server may receive requests from many different clients in a very short period of time. Because the computer can perform a limited number of tasks at any moment, it relies on a scheduling system to prioritize incoming requests from clients in order to accommodate them all in turn. To prevent abuse and maximize uptime, the server's software limits how a client can use the server's resources.

Even so, a server is not immune from abuse. A denial of service attack exploits a server's obligation to process requests by bombarding it with requests incessantly.This inhibits the server's ability to respond to legitimate requests.

8.0 Example

When a bank customer accesses online banking services with a web browser (the client), the client initiates a request to the bank's web server. The customer's login credentials may be stored in a database, and the web server accesses the database server as a client. An application server interprets the returned data by applying the bank's business logic, and provides the output to the web server.

Page 6: Client Server Systems

Finally, the web server returns the result to the client web browser for display.

In each step of this sequence of client–server message exchanges, a computer processes a request and returns data. This is the request-response messaging pattern. When all the requests are met, the sequence is complete and the web browser presents the data to the customer.

This example illustrates a design pattern applicable to the client–server model: separation of concerns.

9.0 Client-host and server-host

Client-host and server-host have subtly different meanings than client and server. A host is any computer connected to a network. Whereas the words server and client may refer either to a computer or to a computer program, server-host and user-host always refer to computers.

The host is a versatile, multifunction computer; clients and servers are just programs that run on a host.

In the client–server model, a server is more likely to be devoted to the task of serving.

The client–server model does not dictate that server-hosts must have more resources than client-hosts. Rather, it enables any general-purpose computer to extend its capabilities by using the shared resources of other hosts. Centralized computing, however, specifically allocates a large amount of resources to a small number of computers. The more computation is offloaded from client-hosts to the central computers, the simpler the client-hosts can be.

10.0 Comparison with peer-to-peer architecture

In addition to the client–server model, distributed computing applications often use the peer-to-peer (P2P) application architecture.

In the client–server model, the server is often designed to be a centralized system that serves many clients. The computing power, memory and storage requirements of a server must be scaled appropriately to the expected work load (i.e., the number of clients connecting simultaneously). Load balancing and failover systems are often employed to scale the server implementation.

In a peer-to-peer network, two or more computers (peers) pool their resources and communicate in a decentralized system. Peers are coequal, or equipotent nodes in a non-hierarchical network. Unlike clients in a client–server or client–queue–client network, peers communicate with each other directly.

Page 7: Client Server Systems

WorkstationsServer

Minicomputers

MainframeTerminals

Network

Each host or application instance can simultaneously act as both a client and a server (unlike centralized servers of the client-server model) and because each has equivalent responsibilities and status.

Peer-to-peer architectures are often abbreviated using the acronym P2P.

Both client-server and P2P architectures are in wide usage today.

Modern Client/Server Architecture

11.0 Characteristics of the Client and the Server

The clients and the servers are the logical entities that work together over a network to accomplish a task.

The distinguishing characteristics of the Client/Server systems are:1. Service: The client/server is primarily a relationship between processes running on

separate machines. The server process is a provider of services. The client is a consumer of services. In essence, client/server provides a clean separation of function based on the idea of service.

Page 8: Client Server Systems

2. Shared Resources: A server can service many clients at the same time and regulate their access to shared resources.

3. Asymmetrical protocols: There is a many-to-one relationship between the clients and the server. Clients always initiate the dialog by requesting a service. Servers are passively awaiting request from the clients. In some cases a client may pass a reference to a callback object when it invokes a service. This lets the server call back the client. So the client becomes a server.

4. Transparency of location: The server is a process that can reside on the same machine as the client or on a different machine across a network. Client/Server software usually masks the location of the server from the clients by the redirecting the service calls when needed. A program can be a client, a server, or both.

5. Mix-and-match: The ideal client/server software is independent of hardware or operating system software platforms. You should be able to mix-and-match client and server platforms.

6. Message-based exchanges: Clients and servers are loosely coupled systems that interact through a message-passing mechanism. The message is the delivery mechanism for the service request and replies.

7. Encapsulation of services: The server is a specialist. A message tells a server is requested; it is then up to the server to determine how to get the job done. Servers can be upgraded without affecting the clients as long as the published message interface is not changed.

8. Scalability: Client/Server systems can be scaled horizontally or vertically. Horizontal scaling means adding or removing client workstations with only a slight performance impact. Vertical scaling means either migrating to a larger and faster server machine or distributing the processing load across multiple servers.

9. Integrity: The server code and server data is centrally managed, which results in cheaper maintenance and the guarding of shared data integrity. At the same time, the clients remain personal and independent.

12.0 ERP System Configurations

12.1 Client-Server Network Topology

Two-tier common server handles both application and database duties used especially in LANs

Page 9: Client Server Systems

Three-tier client links to the application server which then initiates a second connection to the

database server used especially in WANs

Page 10: Client Server Systems
Page 11: Client Server Systems

12.1 Database Configuration

Selection of database tables in the thousands

Setting the switches in the system

Page 12: Client Server Systems

12.2 Bolt-on Software

Third-party vendors provide specialized functionality software

Supply-chain management (scm) links vendors, carriers, third-party logistics companies, and information systems providers

13.0 REFERENCES

"Distributed Application Architecture" (PDF). Sun Microsystem. Retrieved 2009-06-16.

The X Window System is one example.

Benatallah, B.; Casati, F.; Toumani, F. (2004). "Web service conversation modeling: A cornerstone for e-business automation". IEEE Internet Computing 8: 46. doi:10.1109/MIC.2004.1260703.

Dustdar, S.; Schreiner, W. (2005). "A survey on web services composition". International Journal of Web and Grid Services 1: 1. doi:10.1504/IJWGS.2005.007545.

b Rulifson, Jeff (June 1969). DEL. IETF. RFC 5.https://tools.ietf.org/html/rfc5. Retrieved 30 November 2013.

Shapiro, Elmer B. (March 1969). Network Timetable. IETF. RFC 4. https://tools.ietf.org/html/rfc4. Retrieved 30 November 2013.

Sturgis, Howard E.; Mitchell, James George; Israel, Jay E. (1978). Xerox PARC. Missing or empty |title= (help); |chapter= ignored (help)

Harper, Douglas. "server". Online Etymology Dictionary. Retrieved 30 November 2013.

"Separating data from function in a distributed file system". GetInfo. German National Library of Science and Technology. Retrieved 29 November 2013.

Nieh, Jason; Novik, Naomi; Yang, S. Jae (Deccmu.edu/~dga/papers/tolia06-ieee.pdf). "A Comparison of Thin-Client Computing Architectures". Technical Report CUCS-022-00 (PDF) (New York: Network Computing Laboratory, Columbia University).

Page 13: Client Server Systems