CLIENT SERVER COMPUTING Client server computing is the logical extension of modular programming, where there is a separation of a large piece of software into its constituent parts (modules) creates the possibility for easier development and better maintainability. Calling the module becomes the CLIENT and the called module becomes the SERVER. The component of client-server computing is connectivity, the key element of connectivity is the Network operating system (NOS), also called as Middleware. Client is a process that sends a message to a server process requesting that the server perform a task. Client programs usually manage the user interface portion of the application, validate data entered by the user, dispatch requests to server programs. The client process contains the solution-specific logic and provides the interface between the user and the rest of the application. A key component of a client is the GUI. Server process fulfills the client request by performing that task requested. Server programs receives the requests from client programs, execute database retrieval and updates, manage data integrity and dispatch responses to client requests. The server could be the host OS or network file server. The server process acts as a software engine that manages shared resources such as databases, printers, communication links. Server is of different forms : 1. File server : The client passes requests for files or file records over a network to the file server. This form of data service requires large bandwidth. Traditional LAN computing allows users to share resources, such as data files and peripheral devices. 2. Database Server Client pass SQL requests as messages to the server and the results of the query are returned over the network. Both the code that processes the SQL request and the data reside on the server, allowing it to use its own processing power to find the requested data. 3. Transaction Server : Client invoke remote procedures that reside on servers, which also contain an SQL database engine. The server has procedural statements to execute a group of SQL statements. OLTP (On Line Transaction Processing) tend to be critical applications that always require a 1-3 second response time and tight control over the security and the integrity of the database. 4.Application Server: Used to serve user needs. Downloading capabilities, e-mail process, allow users to share data, while security and management services, also based on the server, ensure data integrity and security. Architecture: Application Server Client Client Client TWO TIER ARCHITECTURE. DBMS SERVER APPLICATION SERVER Client Client Client THREE TIER ARCHITECTURE In a two tier architecture, a client talks directly to a server. This type of architecture is used in small environments with less than 50 users. A two tier environment then scale up by simply adding more users to the server. This approach usually will result in an ineffective system. In three tier architecture, it introduces a server between the server and the client. The application server provides 1. Translation services – Mainframe to a client server environment. 2. Metering services – Acting as a transaction monitor to limit the number of simultaneous requests to a given server. 3. Intelligent agent services – Mapping a request to a number of different servers, Collating the results, and returning a single response to the client. Basic Characteristics: Ravi kalakota describes the basic characteristics of client server architectures as follows: 1. A combination of a client or front-end portion that interacts with the user and a server or back-end portion that interacts with the shared resources. 2. The front-end task and back-end task have fundamentally different requirements for computing resources. 3. The environment is typically heterogeneous and multivendor. The hardware platform and OS of client and server are not usually the same. Client and Server processes communicate through a well-defined set of standard application program interface (API). 4. Scalability. Horizontal scaling – Adding or removing client workstations with only slight performance impact. Vertical scaling – Migrating to a larger and faster server machine or multiservers. Components: 1.User interface: Client server interacts with users, screens, windows, window management ,keyboard and mouse handling. 2.Business processing : The application uses the user interface data to perform business tasks. 3.Database processing : The application code manipulates data with in the application. Data manipulation is done using a data manipulation language such as SQL. The development and implementation of client server computing is more complex, more difficult, more expensive. Utilizing an OO methodology we can manage the complexity of client server applications.