* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Chapter 8
Survey
Document related concepts
Transcript
Local Area Networks, 3rd Edition David A. Stamper Part 3: Software Chapter 8 Client/Server Architecture © 2001 by Prentice Hall 8-1 Chapter Preview In this chapter you will study: • What is client/server? • Client/server history • Client/server advantages and disadvantages • Client/server technology • Client/server standards • Client/server database implementations © 2001 by Prentice Hall 8-2 What Is Client/Server? • A client is a software module that relies on a server software module for some of an application’s processing requirements. • The server performs the work necessary to complete the request and returns the result to the client. • Client/server computing is: – a modular approach to application design – an architecture for software deployment and sharing – a hardware-independent approach to application design © 2001 by Prentice Hall 8-3 Client/Server Computing: A Modular Approach • The client/server approach to application design takes advantage of the fact that applications typically perform a variety of functions. Three of the most common functions are presentation, business, and database logic. • If this type of architecture is adopted, changes in one functional area can be isolated from the remainder of the system. © 2001 by Prentice Hall 8-4 Single Process Client/Server Configuration Database Logic Disk drives Business Logic Application © 2001 by Prentice Hall Presentation Logic Terminal 8-5 Client/Server Computing: Software Sharing • Client/server computing can take advantage of the fact that some application logic is common to multiple programs. • Because most applications use databases, the logic these applications use to access and manipulate data is mostly the same. With client/server computing, these applications can share this logic rather than have it embedded within each program. © 2001 by Prentice Hall 8-6 Client/Server Computing: Hardware-Independent Approach • Client/server provides a way of crafting application systems for single computers as well as for networks. Therefore, client/server applications can be spread over a wide variety of hardware configurations. • The primary requirement is an ability for the client and server to communicate. © 2001 by Prentice Hall 8-7 Client/Server on a Network File/Print Server Database (SQL) Server Clients Bus. Logic Pres. Logic Requests and Responses © 2001 by Prentice Hall 8-8 Client/Server an Historical Perspective • In the early days of computing, a programmer often needed to address the issues of hardware interfaces as well as the issues of business logic. This required more skills from the programmer, and development time was extensive because hardware-oriented logic often had to be duplicated in multiple programs. • With the advent of compilers and operating systems, the application programmer’s responsibilities were reduced. Compilers allowed code to be written in high-level languages, like COBOL and C++. • ON-line transaction processing (OLTP) provided another step toward client/server computing. The implementation used in leading OLTP systems was the precursor of modern client/server computing environments. © 2001 by Prentice Hall 8-9 Client/Server Models Server Client Database Logic Business Logic Presentation Logic Database Server Model Server Client Database Logic Business Logic Business Logic Presentation Logic Split Business Logic Model Server Client Database Logic Business Logic Presentation Logic Presentation Client Model © 2001 by Prentice Hall 8-10 Local Procedure Call Example P2 Procedure P2 (input1, output1) P1 Procedure P1 (input1, input2, ouput1) Call P2 (param1, param2) Main Call P1 (param1, param2, param3) Local Procedure Calls Program © 2001 by Prentice Hall 8-11 Remote Procedure Call Example Procedure P2 (input1, output1) P2 Procedure P1 (input1, P1 input2, ouput1) Call P2 (param1, param2) Main Remote Procedure Call Call P1 (param1, param2, Local param3) Program Procedure Call Client Computer Server Computer © 2001 by Prentice Hall 8-12 SQL Server • With SQL server technology, the database processing is done on the server. In file server technology, the database processing is the responsibility of the client. The advantages of the SQL server technology are as follows: – Less data is transmitted over the network. – Database processing that can be optimized for that task is performed on the server. – If database processing demands increase, more powerful SQL servers can be installed to accommodate the increased workload. – Processing is distributed over multiple computers, each of which can be optimized for the tasks it performs. © 2001 by Prentice Hall 8-13 Relationship Between SQL Server and Client Vendor A Business Logic Database Driver Vendor A Database Driver Vendor B Database (SQL) Servers Com. Interface Client Computer Vendor B © 2001 by Prentice Hall 8-14 The Role of the SQL Server • The SQL server’s job is to process the queries it receives from clients. • The SQL server must be multithreaded. • Because the SQL server specializes in carrying out database requests, it can be highly optimized for tasks it performs. To optimize the SQL server operations, an SQL server computer may be configured with some of the following options: – – – – – – – Multiple processors for parallel processing Large amounts of RAM for caching disk images Processor s dedicated for improving the speed of disk access High-speed buses Efficient disk subsystems that allow parallel disk accesses Fault-tolerant disk configurations to reduce the risk of database outages High-speed communications between client and server © 2001 by Prentice Hall 8-15 Combined Client/Server Responsibilities • Clients and servers have disjoint processing responsibilities. There are some processing responsibilities that may be assigned to either the client or the server or split between them. One example of this is the enforcement of business rules. • There are advantages and disadvantages to having the logic for enforcing business rules in the server. When such logic is placed in the server, there is a single point at which the logic is placed. If the business logic changes, the change can be made in the server’s logic, and all clients immediately see the effect of the changes. • However, adding application logic to the server increases its workload and can decrease the server’s ability to provide fast responses to requests. © 2001 by Prentice Hall 8-16 Client/Server Standards • Client/server standards have been formulated to allow open systems and provide a mechanisms for interoperability of clients and servers. The standards being formed include: – how clients and servers communicate with each other – how clients find the server or servers that perform their needed functions • Interfaces between clients and servers have come to be called middleware. Middleware is responsible for making the connection between clients and servers. • Examples of middleware and its standardization efforts are: – distributed computing environment (DCE) specifications – object request broker (ORB) – open database connectivity (ODBC) © 2001 by Prentice Hall 8-17 A Look to the Future • Operating system and application software evolution is placing ever higher demands for disk, memory, and processing. These increasing demands together with a dependence on desktop computing have the following consequences: – Newer, higher capacity computers are needed to replace older, lower capacity computers. – Existing computers need upgrading to accommodate new software. – Installing and supporting distributed applications can be expensive. – Managing centralized systems is easier than managing decentralized systems. • In an effort to trim the costs associated with software evolution, some companies are adopting the use of thin clients and server clusters. © 2001 by Prentice Hall 8-18 A Look to the Future (cont.) • A thin client is a stripped-down microcomputer. The function of the thin client is to provide basic input and output much like the terminals in the earlier centralized host computer architectures. • A cluster servers consists of two or more servers operating in concert with each other. • The benefits of the then client architecture are: – Lower costs because the thin clients are less expensive to buy – Obsolescence is not as likely for thin clients because they do not need to keep pace with expanding software needs – Software distribution and maintenance is simpler when restricted to the servers – Management and control of applications and data is easier in a centralized architecture © 2001 by Prentice Hall 8-19 Thin Client Architecture Server Cluster High-speed Interface Between Servers Database (SQL) Servers File/Print Servers Application Servers Thin Clients Terminal Server © 2001 by Prentice Hall 8-20