Distributed Processing, Client/Server, and Clusters Source: Prentice-Hall Web Site Client/Server Computing Client machines are generally single-user PCs or workstations that provide a highly user-friendly interface to the end user Each server provides a set of shared user services to the clients The server enables many clients to share access to the same database and enables the use of a high-performance computer system to manage the database Client/Server Computing Involves splitting an application into tasks and putting each task on the platform where it can be handled most efficiently Processing for the presentation on the user’s machine Data management and storage on a server Involves a network Generic Client/Server Environment Client/Server Applications Platforms and the operating systems of client and server may differ These lower-level differences are irrelevant as long as a client and server share the same communications protocols and support the same applications Client/Server Applications Actual functions performed by the application can be split up between client and server Optimize platform and network resources Optimize the ability of users to perform various tasks Optimize the ability to cooperate with one another using shared resources Database Applications The server is a database server Interaction between client and server is in the form of transactions the client makes a database request and receives a database response Server is responsible for maintaining the database Client/Server Architecture for Database Applications Client Workstation Presentation Services Application Logic Server Request Database Logic Communications Software Client Operating System Hardware Platform Database Logic Response Protocol Interaction Communications Software Database Management System Server Operating System Hardware Platform Classes of Client/Server Applications Host-based processing not true client/server computing traditional mainframe environment Client Server Presentation Logic Application Logic Database Logic DBMS Classes of Client/Server Applications Server-based processing server does all the processing user workstation provides a user-friendly interface Client Server Presentation Logic Application Logic Database Logic DBMS Classes of Client/Server Applications Client-based processing all application processing may be done at the client data validation routines and other database logic function are done at the server Client Server Presentation Logic Application Logic Database Logic Database Logic DBMS Classes of Client/Server Applications Cooperative processing application processing is performed in an optimized fashion complex to set up and maintain Client Server Presentation Logic Application Logic Application Logic Database Logic DBMS File Cache Consistency File caches hold recently accessed file records Caches are consistent when they contain exact copies for remote data File-locking prevents simultaneous access to a file writing causes the server cached to be updated Middleware Set of tools that provide a uniform means and style of access to system resources across all platforms Enable programmers to build applications that look and feel the same Enable programmers to use the same method to access data Middleware Use of a standard programming interface and protocols There is both a client and server component to middleware Provides uniform access to different systems The Role of Middleware in Client/Server Architecture Client Workstation Presentation Services Application Logic Middleware Communications Software Client Operating System Hardware Platform Server Middleware Interaction Protocol Interaction Middleware Communications Software Application Services Server Operating System Hardware Platform Logical View of Middleware Application Application APIs Middleware (distributed system services) Platform Interfaces Platform: OS Hardware Platform: OS Hardware Distributed Message Passing Message passed used to communicate among processes Send and receive messages as used in a single system OR Remote procedure calls Basic Message-Passing Primitives Sending Process Receiving Process Message-passing Module Message-passing Module ProcessID Message Network Transport Message-oriented Middleware Application Application-specific messages Application Message-oriented Middleware Client Transport Network Message-oriented Middleware Server Remote Procedure Calls Allow programs on different machines to interact using simple procedure call/return semantics Widely accepted Standardized client and server modules can be moved among computers and operating systems easily Remote Procedure Call Mechanism Client Application Local Response Remote Server Application Local Response Local Response Local Procedure Calls Local Application or Operating System Local Stub Local Procedure Call Local Stub Remote Procedure Call RPC Mechanism Remote Procedure Call RPC Mechanism Client/Server Binding Binding specifies the relationship between remote procedure and calling program Nonpersistent binding logical connection established during remote procedure call Persistent binding connection is sustained after the procedure returns Remote Procedure Calls Client Server RPC Stub Program Transport Application-specific Procedure Invocations and Returns Network Network Application Transport Application RPC Stub Program Object Request Broker Client Network Transport RPC Stub Program Network Object Request Broker Application Transport Object Requests and Responses Network Object Requests and Responses Transport Server Object Server 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 Separate server each computer is a separate server no shared disks need management or scheduling software data must be constantly copied among systems so each is current Clusters Standby Server with No Shared Disk P P P P High-Speed Message Link M I/O I/O I/O I/O M Clusters Shared nothing reduces communication overhead servers connected to common disks disks partitioned into volumes each volume owned by a computer if computer fails another computer gets ownership of the volume Clusters Shared Disk High-Speed Message Link P M P I/O I/O I/O I/O I/O RAID P P I/O M Clusters Shared disk multiple computers share the same disks at the same time each computer has access to all of the volumes on all of the disks Win2000 Cluster Server Formerly called Wolfpack Shared-nothing cluster Concepts Cluster Service – Software that manages cluster-specific activity Resource – Item to be managed Physical: Disk drives, Network cards Logical: Volumes, TCP/IP addresses, Applications, Databases Online – A resource is online at a node when it is providing service on that node Group – A collection of resources managed as a unit Helps manage resources, load balancing Usually a set of resources needed for a specific application Win2000 Cluster Server Components Node Manager – Maintain membership: Uses heartbeat messages to track system Database Manager – Maintain cluster configuration database (resources, groups, ownership): Uses fault-tolerant transaction software Resource Manager – Make decisions concerning resources, startup, failover Event Processor – Connect components Beowulf From NASA High Performance Computing and Communications Project, based on commodity hardware Implemented as an add-on to Linux, and each node runs a copy of Linux, with kernel extensions for global namespaces Examples of Beowulf system software: Beowulf Distributed Process Space – Allow process ID space to span machines, provide single system image, start processes on other nodes Beowulf Ethernet Channel Bonding – Combine multiple low-cost links into a single logical network Pvmsync – Provide synchronization and shared data objects in a cluster EnFuzion – Set of tools for parametric computing