COMP5426 Parallel and Distributed Computing. Distributed Systems: Client/Server and Clusters



Similar documents
Chapter 16 Distributed Processing, Client/Server, and Clusters

Client/Server Computing Distributed Processing, Client/Server, and Clusters

Client/Server and Distributed Computing

3-Tier Architecture. 3-Tier Architecture. Prepared By. Channu Kambalyal. Page 1 of 19

CHAPTER 2 MODELLING FOR DISTRIBUTED NETWORK SYSTEMS: THE CLIENT- SERVER MODEL

How To Understand The Concept Of A Distributed System

The EMSX Platform. A Modular, Scalable, Efficient, Adaptable Platform to Manage Multi-technology Networks. A White Paper.

Integrated Application and Data Protection. NEC ExpressCluster White Paper

Virtual machine interface. Operating system. Physical machine interface

ICS 434 Advanced Database Systems

Protocols and Architecture. Protocol Architecture.

Client/server is a network architecture that divides functions into client and server

Base One's Rich Client Architecture

Chapter 3. Database Environment - Objectives. Multi-user DBMS Architectures. Teleprocessing. File-Server

Principles and characteristics of distributed systems and environments

Enterprise Application Designs In Relation to ERP and SOA

Chapter 2: Remote Procedure Call (RPC)

Network Attached Storage. Jinfeng Yang Oct/19/2015

SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems

Star System Deitel & Associates, Inc. All rights reserved.

Middleware Lou Somers

Distributed Systems LEEC (2005/06 2º Sem.)

OVERVIEW. CEP Cluster Server is Ideal For: First-time users who want to make applications highly available

Centralized Systems. A Centralized Computer System. Chapter 18: Database System Architectures

What is Middleware? Software that functions as a conversion or translation layer. It is also a consolidator and integrator.

What Is the Java TM 2 Platform, Enterprise Edition?

Outline. Definitions. The Evolution of Distributed Systems. Distributed Systems: The Overall Architecture. Chapter 5

Computer Network. Interconnected collection of autonomous computers that are able to exchange information

Literature Review Service Frameworks and Architectural Design Patterns in Web Development

Chapter 6. CORBA-based Architecture. 6.1 Introduction to CORBA 6.2 CORBA-IDL 6.3 Designing CORBA Systems 6.4 Implementing CORBA Applications

Service Oriented Architecture

Operating system Dr. Shroouq J.

Desktop Virtualization Technologies and Implementation

Distributed Systems. REK s adaptation of Prof. Claypool s adaptation of Tanenbaum s Distributed Systems Chapter 1

A standards-based approach to application integration

Concepts of Database Management Seventh Edition. Chapter 9 Database Management Approaches

Module 17. Client-Server Software Development. Version 2 CSE IIT, Kharagpur

Introduction to Cloud Computing. Lecture 02 History of Enterprise Computing Kaya Oğuz

Module 12: Microsoft Windows 2000 Clustering. Contents Overview 1 Clustering Business Scenarios 2 Testing Tools 4 Lab Scenario 6 Review 8

Review from last time. CS 537 Lecture 3 OS Structure. OS structure. What you should learn from this lecture

LSKA 2010 Survey Report Job Scheduler

It is the thinnest layer in the OSI model. At the time the model was formulated, it was not clear that a session layer was needed.

High Availability Essentials

EMC DOCUMENTUM xplore 1.1 DISASTER RECOVERY USING EMC NETWORKER

Huawei OceanStor Backup Software Technical White Paper for NetBackup

Relational Databases in the Cloud

IT Architecture Review. ISACA Conference Fall 2003

Tier Architectures. Kathleen Durant CS 3200

Network and Services (NETW-903)


COMPONENTS in a database environment

CHAPTER 1: OPERATING SYSTEM FUNDAMENTALS

Software-Defined Networks Powered by VellOS

1 Organization of Operating Systems

Sentinet for BizTalk Server SENTINET

Mobile Cloud Computing T Open Source IaaS

IT Components of Interest to Accountants. Importance of IT and Computer Networks to Accountants

Building Reliable, Scalable AR System Solutions. High-Availability. White Paper

Chapter Outline. Chapter 2 Distributed Information Systems Architecture. Middleware for Heterogeneous and Distributed Information Systems

CONDIS. IT Service Management and CMDB

Advanced Server Virtualization: Vmware and Microsoft Platforms in the Virtual Data Center

Chapter 6 Essentials of Design and the Design Activities

Highly Available Mobile Services Infrastructure Using Oracle Berkeley DB

Introduction to CORBA. 1. Introduction 2. Distributed Systems: Notions 3. Middleware 4. CORBA Architecture

Distributed Objects and Components

Introduction to Network Management

Architecture of Transaction Processing Systems

1 What Are Web Services?

Chapter 18: Database System Architectures. Centralized Systems

Chapter 2 TOPOLOGY SELECTION. SYS-ED/ Computer Education Techniques, Inc.

Information Systems Development Process (Software Development Life Cycle)

Deployment Topologies

DISTRIBUTED AND PARALLELL DATABASE

Easy configuration of NETCONF devices

Combining Service-Oriented Architecture and Event-Driven Architecture using an Enterprise Service Bus

2.1 What are distributed systems? What are systems? Different kind of systems How to distribute systems? 2.2 Communication concepts

CSE 3461 / 5461: Computer Networking & Internet Technologies

Lecture 1. Lecture Overview. Intro to Networking. Intro to Networking. Motivation behind Networking. Computer / Data Networks

Virtualizing Exchange

Distributed System: Definition

Achieving Mainframe-Class Performance on Intel Servers Using InfiniBand Building Blocks. An Oracle White Paper April 2003

Chapter 15 Windows Operating Systems

How To Make A Distributed System Transparent

Network operating systems typically are used to run computers that act as servers. They provide the capabilities required for network operation.

Cisco Application Networking for Citrix Presentation Server

Information Systems Analysis and Design CSC John Mylopoulos. Software Architectures Information Systems Analysis and Design CSC340

Motivation Definitions EAI Architectures Elements Integration Technologies. Part I. EAI: Foundations, Concepts, and Architectures

What can DDS do for You? Learn how dynamic publish-subscribe messaging can improve the flexibility and scalability of your applications.

Distributed Systems Architectures

IBM Tivoli Storage Manager Version Introduction to Data Protection Solutions IBM

The Scalable Enterprise: By Jimmy D. Pike, Scalable Enterprise Architect, Office of the CTO; and Drew EngstRom, E x e c u t i v e S u m m a r y

1 What Are Web Services?

DISTRIBUTED SYSTEMS AND CLOUD COMPUTING. A Comparative Study

Distributed Systems and Recent Innovations: Challenges and Benefits

SFWR 4C03: Computer Networks & Computer Security Jan 3-7, Lecturer: Kartik Krishnan Lecture 1-3

Integration Platforms Problems and Possibilities *

HexaCorp. White Paper. SOA with.net. Ser vice O rient ed Ar c hit ecture

FROM RELATIONAL TO OBJECT DATABASE MANAGEMENT SYSTEMS

Transcription:

COMP5426 Parallel and Distributed Computing Distributed Systems: Client/Server and Clusters

Client/Server Computing Client Client machines are generally single-user workstations providing a user-friendly interface to the end user client-based stations generally present the type of graphical interface that is most comfortable to users, including the use of windows and a mouse Microsoft Windows and Macintosh OS provide examples of such interfaces client-based applications are tailored for ease of use and include such familiar tools as the spreadsheet

Client/Server Computing Server Each server provides a set of shared services to the clients most common type of server currently is the database server, usually controlling a relational database enables many clients to share access to the same database enables the use of a high-performance computer system to manage the database

Client/Server Computing Network The third essential ingredient of the client/server environment is the network

Client/Server Terminology

Client/Server Characteristics A client/server configuration differs from other types of distributed processing: there is a heavy reliance on bringing user-friendly applications to the user on his or her own system there is an emphasis on centralizing corporate databases and many network management and utility functions there is a commitment, both by user organizations and vendors, to open and modular systems networking is fundamental to the operation

Generic Client/Server Architecture

Client/Server Applications The key feature of a client/server architecture is the allocation of application-level tasks between clients and servers Hardware 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 It is the communications software that enables client and server to interoperate principal example is TCP/IP Actual functions performed by the application can be split up between client and server in a way that optimizes the use of resources The design of the user interface on the client machine is critical there is heavy emphasis on providing a graphical user interface (GUI) that is easy to use, easy to learn, yet powerful and flexible

Architecture for Database Applications

Client/Server Database Usage

Client/Server Database Usage

Classes of Client/Server Applications Host-based processing Server-based processing Four general classes are: Cooperative processing Client-based processing

Host-Based Processing Not true client/server computing Traditional mainframe environment in which all or virtually all of the processing is done on a central host Often the user interface is via a dumb terminal The user s station is generally limited to the role of a terminal emulator

Server-Based Processing Server does all the processing Client provides a graphical user interface Rationale behind configuration is that the user workstation is best suited to providing a user-friendly interface and that databases and applications can easily be maintained on central systems User gains the advantage of a better interface

Client-Based Processing All application processing is done at the client Data validation routines and other database logic functions are done at the server Some of the more sophisticated database logic functions are housed on the client side This architecture is perhaps the most common client/server approach in current use It enables the user to employ applications tailored to local needs

Cooperative Processing Application processing is performed in an optimized fashion Complex to set up and maintain Offers greater productivity and efficiency

Disadvantages of Two- Tier Architecture Inadequate performance for medium to high volume environments Changes to application logic not automatically enforced by a server changes require new client side software to be distributed and installed Complex application rules difficult to implement in client Not portable to other database server platforms

Three-Tier Client/Server Architecture

Middleware Middleware simplifies 3-tier application development and administration by providing an extra application server layer to manage links/communication between separate components. Middleware Characteristics: Simplifies partitioning of application processing among clients and servers Manages distributed transactions among multiple databases Communicates with heterogeneous database products within a single application.

Logical View of Middleware

Distributed Message Passing

Basic Message-Passing Primitives Figure 16.13 Basic Message-Passing Primitives

Reliability versus Unreliability Reliable message-passing guarantees delivery if possible not necessary to let the sending process know that the message was delivered (but useful) If delivery fails, the sending process is notified of the failure At the other extreme, the message-passing facility may simply send the message out into the communications network but will report neither success nor failure this alternative greatly reduces the complexity and processing and communications overhead of the message-passing facility For those applications that require confirmation that a message has been delivered, the applications themselves may use request and reply messages to satisfy the requirement

Blocking versus Nonblocking Nonblocking process is not suspended as a result of issuing a Send or Receive efficient, flexible use of the message passing facility by processes difficult to test and debug programs that use these primitives irreproducible, timing-dependent sequences can create subtle and difficult problems Blocking the alternative is to use blocking, or synchronous, primitives Send does not return control to the sending process until the message has been transmitted or until the message has been sent and an acknowledgment received Receive does not return control until a message has been placed in the allocated buffer

Remote Procedure Calls Allow programs on different machines to interact using simple procedure call/return semantics Used for access to remote services Widely accepted and common method for encapsulating communication in a distributed system Standardized the communication code for an application can be generated automatically client and server modules can be moved among computers and operating systems with little modification and recoding

Remote Procedure Call Architecture

Remote Procedure Call Mechanism Figure 16.14 Remote Procedure Call Mechanism

Parameter Passing/ Parameter Representation Passing a parameter by value is easy with RPC Passing by reference is more difficult a unique system wide pointer is necessary the overhead for this capability may not be worth the effort The representation/format of the parameter and message may be difficult if the programming languages differ between client and server

Client/Server Binding Nonpersistent Binding Persistent Binding A binding is formed when two applications have made a logical connection and are prepared to exchange commands and data Nonpersistent binding means that a logical connection is established between the two processes at the time of the remote procedure call and that as soon as the values are returned, the connection is dismantled The overhead involved in establishing connections makes nonpersistent binding inappropriate for remote procedures that are called frequently by the same caller A connection that is set up for a remote procedure call is sustained after the procedure return The connection can then be used for future remote procedure calls If a specified period of time passes with no activity on the connection, then the connection is terminated For applications that make many repeated calls to remote procedures, persistent binding maintains the logical connection and allows a sequence of calls and returns to use the same connection

Synchronous versus Asynchronous Synchronous RPC behaves much like a subroutine call behavior is predictable however, it fails to exploit fully the parallelism inherent in distributed applications this limits the kind of interaction the distributed application can have, resulting in lower performance Asynchronous RPC does not block the caller replies can be received as and when they are needed allow client execution to proceed locally in parallel with server invocation

Service-Oriented Architecture (SOA) A form of client/server architecture used in enterprise systems Organizes business functions into a modular structure rather than as monolithic applications for each department as a result, common functions can be used by different departments internally and by external business partners as well Consists of a set of services and a set of client applications that use these services Standardized interfaces are used to enable service modules to communicate with one another and to enable client applications to communicate with service modules most popular interface is XML (Extensible Markup Language) over HTTP (Hypertext Transfer Protocol), known as Web services

SOA Model

Example Use of SOA

Example Use of SOA

Clusters Group of interconnected, whole computers working together as a unified computing resource that can create the illusion of being one machine Whole computer means a system that can run on its own, apart from the cluster Each computer in a cluster is referred to as a node

Benefits of Clusters Absolute scalability Incremental scalability High availability Superior price/performance it is possible to create large clusters that far surpass the power of even the largest standalone machines configured in such a way that it is possible to add new systems to the cluster in small increments failure of one node is not critical to system by using commodity building blocks, it is possible to put together a cluster at a much lower cost than a single large machine

Cluster Configurations Figure 16.15

Table 16.2 Clustering Methods: Benefits and Limitations

Operating System Design Issues Failure Management offers a high probability that all resources will be in service any lost query, if retried, will be serviced by a different computer in the cluster Highly available clusters the cluster operating system makes no guarantee about the state of partially executed transactions Two approaches can be taken to deal with failures: if a failure occurs, the queries in progress are lost achieved by the use of redundant shared disks and mechanisms for backing out uncommitted transactions and committing completed transactions Faulttolerant clusters ensures that all resources are always available

Operating System Design Issues Failure Management The function of switching an application and data resources over from a failed system to an alternative system in the cluster is referred to as fallover The restoration of applications and data resources to the original system once it has been fixed is referred to as fallback Fallback can be automated but this is desirable only if the problem is truly fixed and unlikely to recur Automatic failback can cause subsequently failed resources to bounce back and forth between computers, resulting in performance and recovery problems

Load Balancing A cluster requires an effective capability for balancing the load among available computers This includes the requirement that the cluster be incrementally scalable When a new computer is added to the cluster, the load-balancing facility should automatically include this computer in scheduling applications Middleware must recognize that services can appear on different members of the cluster and may migrate from one member to another

Summary With client/server computing, applications are distributed to users on single-user workstations and personal computers Client/server architecture is a blend of decentralized and centralized computing Client system provides a GUI that enables a user to exploit a variety of applications with minimal training Servers support shared utilities, such as database management systems Key mechanism required in any distributed system is interprocess communication A message-passing facility generalizes the use of messages within a single system RPC is a technique by which two programs on different machines interact using procedure call/return syntax and semantics A cluster is a group of interconnected, whole computers working together as a unified computing resource that can create the illusion of being one machine Whole computer means a system that can run on its own, apart from the cluster

References William Stallings, Operating Systems: Internals and Design Principles, Seventh Edition, 2012