* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Distributed Processing, Client/Server, and Clusters
Concurrency control wikipedia , lookup
Microsoft Access wikipedia , lookup
Open Database Connectivity wikipedia , lookup
Database model wikipedia , lookup
Microsoft Jet Database Engine wikipedia , lookup
Clusterpoint wikipedia , lookup
Object-relational impedance mismatch wikipedia , lookup
Distributed Processing, Client/Server and Clusters Chapter 16 Client/Server Computing  Client machines: single-user PCs or workstations that provide a highly user-friendly interface to the end user  The server provides a set of shared user services to the clients   LAN or WAN or Internet The server enables many clients to access shared resources (e.g. a large database). The server typically runs on a cloud or a highperformance computer system. server workstation (client) Figure 16.1 Generic Client/Server Environment Client/Server Applications  Client and server platforms/OS may be different  These lower-level differences are irrelevant as long as a client and server share the same communications protocols (ex: TCP/IP) and support the same applications  Actual functions performed by the application can be split up between client and server in a way that optimizes the use of resources  Optimize the ability of users to perform various tasks and to cooperate with one another using shared resources  Heavy emphasis on providing a user-friendly Graphical User Interface (GUI) on the client side (presentation services layer) Generic Client/Server Architecture Database Applications  One of the most common families of client/server applications  The server is a database server responsible for maintaining the database  Interaction between client and server is in the form of transactions  the client makes a database request and receives a database response  A variety of different client applications can use the same database server; all using the same interface/protocol Client/Server Architecture for Database Applications e.g. SQL: Structured Query Language 1,000 possible records Final query 1,000,000 record database One record returned Client/Server Database Usage Example: think of an application in which we need to compute the mean of the ages of a certain population and the search criteria returns 300K records  heavy network traffic To optimize performance: server must be equipped with application logic for performing data analysis (computation of mean). (a) Desirable client/server use Server Client Query 300,000 records returned 1,000,000 record database (b) Misused client/server Figure 16.4 Client/Server Database Usage Client/Server Interaction Yet another example: think of an application in which we need to search for a person named Jo Smith, born before 1980. Client 100,000 possible records Do not return the records Next query If initial query results in 100K possible records, the server may just indicate that without sending the records. 1,000 possible records Final query 1,000,000 record database One record returned Then search can be narrowed down and the # of possible records is reduced drastically. After a few iterations we may receive the desired record. Server Initial query (a) Desirable client/server use Server Client Classes of Client/Server Applications  Host-based (dumb terminal)  not true client/server computing  traditional mainframe environment.  Text-based interface to a mainframe. (e.g. used only for login, issuing shell commands, viewing results, and logout)  Server-based (thin client)  server does all the processing  User(client) workstation provides a graphical user interface (e.g. Business-specific applications: Taking orders and entering them into a database. Producing and printing receipts etc.) Classes of Client/Server Applications Fat client models Takes advantage of desktop power and can serve large number of clients by offloading application processing from servers to the clients.  Cooperative  application processing is performed in an optimized fashion  complex to set up and maintain but  greater user productivity gains and greater network efficiency  Client-based  Most common client/server model  all application processing done at the client  data validation and other database logic functions are done at the server  Some of the database logic functions are housed on the client side (e.g. hotel search on expedia – narrow down search based on star/price/etc) Three-Tier Client/Server Architecture  Application software distributed among three types of machines  User machine   Middle-tier server       thin client Gateway Converts protocols Map from one type of database query to another Merge/integrate results from different data sources Assumes both roles: server & client Backend server  Legacy applications File Cache Consistency   File caches hold recently accessed file records Cache consistency problem:    Caches are consistent when they contain exact copies for remote data Simple solution: File-locking prevents simultaneous access to a file Complicated approach: allow multiple read but one write access; when there is an access for ‘write’, mark the file as non-cacheable for others. Middleware       Lack of standards for client/server models makes it difficult to implement an integrated, multivendor, enterprise-wide client/server configuration Middleware: Set of tools that provide a uniform means and style of access to system resources across different platforms. Goal: to enable an application or user at a client to access a variety of services on servers without being concerned about differences among them Provides standard programming interfaces/protocols that sit between the application above and the communications software+OS below. Capable to hide the complexities and disparities of different network protocols and OS Enable programmers to build applications that look and feel the same with little effort Enable programmers to use the same method to access data Distributed Message Passing  Middleware products typically use one of the two underlying mechanisms for communication. Message-passing or RPC (Remote procedure calls) Message-passing schemes  Reliable  Guarantees delivery if possible - Not necessary to let the sending process know that the message was delivered  Unreliable   Blocking     Send the message out into the communication network without reporting success or failure - Reduces complexity and overhead Send does not return control to the sending process until the message has been transmitted OR does not return control until an acknowledgment is received Receive does not return until a message has been placed in the allocated buffer Nonblocking    Process is not suspended as a result of a Send or a Receive Efficient and flexible Difficult to debug Clusters   Alternative to symmetric multiprocessing (SMP) Group of interconnected, whole computers working together as a unified computing resource   illusion is one machine system can run on its own Clusters Compared to SMP  SMP is easier to manage and configure  SMP takes up less space and draws less power  Clusters are better for incremental and absolute scalability    Clusters are superior in terms of availability   Add new systems in small increments Can have dozens of machines each of which is a multiprocessor Failure of one node does not mean loss of service Clusters have superior price/performance Beowulf and Linux Clusters      Mass market commodity components (No custom components) A dedicated, private network (LAN or WAN or internetworked combination) Easy replication from multiple vendors Scalable I/O A freely available software base Distributed shared storage Linux workstations Ethernet or Interconected Ethernets Issues on Clusters  Failure management    Highly available clusters offers a high probability that all resources will be in service  Fault-tolerant cluster ensures that all resources are always available (use of redundant disks/processors etc.) Load balancing   Highly available vs. fault-tolerant clusters When a new computer is added to the cluster, the load-balancing facility should automatically include this computer in scheduling applications Parallelizing Computation  Parallelizing compiler  Parallelized application
 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
									 
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                            