Distributed Processing and ClientServer Distributed systems y Remote
Distributed Processing and Client/Server
Distributed systems y. Remote computers cooperate via a network to appear as a local machine y. Users are given the impression that they are interacting with just one machine y. Spread computation and storage throughout a network of computers y. Applications are able to execute code on local machines and remote machines and to share data, files and other resources among these machines y. Attributes of distributed systems: Performance, Scalability, Connectivity, Security, Reliability, Fault tolerance
Reliability and Fault Tolerance z Fault tolerance y. Implemented by providing replication of resources across the system z Replication y. Offers users increased reliability and availability over single-machine implementations y. Designers must provide mechanisms to ensure consistency among the state information at different machines
Client/Server Computing z Client machines are generally single-user PCs or workstations that provide a highly user-friendly interface to the end user z Each server provides a set of shared user services to the clients z 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 z Involves splitting an application into tasks and putting each task on the platform where it can be handled most efficiently z Processing for the presentation on the user’s machine z Data management and storage on a server z Involves a network
Generic Client/Server Environment
Client/Server Applications z. Platforms and the operating systems of client and server may differ z. 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 z Actual functions performed by the application can be split up between client and server z Optimize platform and network resources z Optimize the ability of users to perform various tasks z Optimize the ability to cooperate with one another using shared resources
Database Applications z. The server is a database server z. Interaction between client and server is in the form of transactions ythe client makes a database request and receives a database response z. 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 z. Host-based processing ynot true client/server computing ytraditional mainframe environment Client Server Presentation Logic Application Logic Database Logic DBMS
Classes of Client/Server Applications z. Server-based processing yserver does all the processing yuser workstation provides a user-friendly interface Client Server Presentation Logic Application Logic Database Logic DBMS
Classes of Client/Server Applications z. Client-based processing yall application processing may be done at the client ydata validation routines and other database logic function are done at the server Client Server Presentation Logic Application Logic Database Logic DBMS
Classes of Client/Server Applications z. Cooperative processing yapplication processing is performed in an optimized fashion ycomplex to set up and maintain Client Server Presentation Logic Application Logic Database Logic DBMS
File Cache Consistency z. File caches hold recently accessed file records z. Caches are consistent when they contain exact copies for remote data z. File-locking prevents simultaneous access to a file ywriting causes the server cached to be updated
Middleware z. Set of tools that provide a uniform means and style of access to system resources across all platforms z. Enable programmers to build applications that look and feel the same z. Enable programmers to use the same method to access data
Middleware z. Use of a standard programming interface and protocols z. There is both a client and server component to middleware z. 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 APIs Middleware (distributed system services) Platform Interfaces Platform: OS Hardware
Distributed Message Passing z. Message passed used to communicate among processes z. Send and receive messages as used in a single system OR z. Remote procedure calls
Basic Message-Passing Primitives Sending Process Receiving Process Message-passing Module Process. ID Message
Network Transport Message-oriented Middleware Application-specific messages Application Message-oriented Middleware Client Transport Network Message-oriented Middleware Server
Remote Procedure Calls z. Allow programs on different machines to interact using simple procedure call/return semantics z. Widely accepted z. Standardized yclient 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 Procedure Calls Local Application or Operating System Local Stub RPC Mechanism Remote Procedure Call Local Stub RPC Mechanism
Client/Server Binding z. Binding specifies the relationship between remote procedure and calling program z. Nonpersistent binding ylogical connection established during remote procedure call z. Persistent binding yconnection is sustained after the procedure returns
Remote Procedure Calls Client Server RPC Stub Program Transport Application-specific Procedure Invocations and Returns 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
CORBA (Common Object Request Broker Architecture) z CORBA y Open standard designed to enable interoperation among programs in heterogeneous as well as homogeneous systems y Supports objects as parameters or return values in remote procedures during interprocess communication z CORBA implementation y The process on the client passes the procedure call along with the required arguments to the client stub y The client stub marshals the parameters and sends the procedure call through its Object Request Broker (ORB), which communicates with the ORB on the server y CORBA provides programmers language independence with the Interface Definition Language (IDL), which allows them to strictly define the procedures that can be called on the object
DCOM (Distributed Component Object Model) z. DCOM y Designed to allow software components residing on remote computers to interact with one another y As in CORBA, objects in DCOM are accessed via interfaces y Unlike CORBA, however, DCOM objects may have multiple interfaces y When a client requests a DCOM object from a server, the client must also request a specific interface of the object
- Slides: 29