Client Server Paradigm

Slides:



Advertisements
Similar presentations
Database Architectures and the Web
Advertisements

Definition of a Distributed System (1) A distributed system is: A collection of independent computers that appears to its users as a single coherent system.
8.
Technical Architectures
Reference: Message Passing Fundamentals.
Networking Theory (Part 1). Introduction Overview of the basic concepts of networking Also discusses essential topics of networking theory.
Fall 2007cs4251 Distributed Computing Umar Kalim Dept. of Communication Systems Engineering 31/10/2007.
Protocols and the TCP/IP Suite
Computer Network Architecture and Programming
Chapter 10 Introduction to Wide Area Networks Data Communications and Computer Networks: A Business User’s Approach.
Systems Architecture, Fourth Edition1 Internet and Distributed Application Services Chapter 13.
CSE 490dp Resource Control Robert Grimm. Problems How to access resources? –Basic usage tracking How to measure resource consumption? –Accounting How.
Distributed Systems: Client/Server Computing
Client/Server Architecture
Distributed Computing, Liu1 The Client-Server Model – part 1 M. L. Liu.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Version 4.0 Communicating over the Network Network Fundamentals – Chapter 2.
CSIT 320 (Blum)1 Client-Server Interaction Based on Appendix 1 in Computer Networks and Internets, Comer.
Client/Server Architectures
Client/Server Technology Two-Tier Architecture Three-Tier Architecture Josh Antonelli Jenn Lang Joe Schisselbauer Chad Williams.
Protocols and the TCP/IP Suite Chapter 4. Multilayer communication. A series of layers, each built upon the one below it. The purpose of each layer is.
The Design of System Architecture
Database Architectures and the Web
The Design Discipline.
Copyright © 2012 Certification Partners, LLC -- All Rights Reserved Network Technology Associate v2.0.
Chapter – Background 5.2 Client Server Paradigm Issues 5.3 Software Engineering for a Network Service 5.4 Connection-Oriented and Connectionless.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
70-291: MCSE Guide to Managing a Microsoft Windows Server 2003 Network Chapter 3: TCP/IP Architecture.
Presentation on Osi & TCP/IP MODEL
Lecture 2 TCP/IP Protocol Suite Reference: TCP/IP Protocol Suite, 4 th Edition (chapter 2) 1.
What is a Protocol A set of definitions and rules defining the method by which data is transferred between two or more entities or systems. The key elements.
Database Architectures and the Web Session 5
Application Layer CHAPTER 2. Announcements and Outline  Administrative Items  Questions? Recap 1.Introduction to Networks 1.Network Type 2.N etwork.
Remote Access Chapter 4. Learning Objectives Understand implications of IEEE 802.1x and how it is used Understand VPN technology and its uses for securing.
The Client-Server Model – part II
Service Primitives Six service primitives that provide a simple connection-oriented service 4/23/2017
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Unit – I CLIENT / SERVER ARCHITECTURE. Unit Structure  Evolution of Client/Server Architecture  Client/Server Model  Characteristics of Client/Server.
Spring 2006Computer Networks1 Chapter 2 Network Models.
Software Architectural Styles Andrew Midwinter, Mark Mullen, Kevin Wong, Matt Jones 1.
Database Architectures Database System Architectures Considerations – Data storage: Where do the data and DBMS reside? – Processing: Where.
OS2- Sem ; R. Jalili Introduction Chapter 1.
Kyung Hee University 1/41 Introduction Chapter 1.
DISTRIBUTED COMPUTING Introduction Dr. Yingwu Zhu.
9 Systems Analysis and Design in a Changing World, Fourth Edition.
Distributed Computing A Programmer’s Perspective.
Position of application layer. Application layer duties.
Hwajung Lee.  Interprocess Communication (IPC) is at the heart of distributed computing.  Processes and Threads  Process is the execution of a program.
1 Client-Server Interaction. 2 Functionality Transport layer and layers below –Basic communication –Reliability Application layer –Abstractions Files.
Definition of a Distributed System (1) A distributed system is: A collection of independent computers that appears to its users as a single coherent system.
CHAPTER 4 PROTOCOLS AND THE TCP/IP SUITE Acknowledgement: The Slides Were Provided By Cory Beard, William Stallings For Their Textbook “Wireless Communication.
The Client-Server Model And the Socket API. Client-Server (1) The datagram service does not require cooperation between the peer applications but such.
Client/Server Computing
Data Communications and Networks Chapter 9 – Distributed Systems ICT-BVF8.1- Data Communications and Network Trainer: Dr. Abbes Sebihi.
E81 CSE 532S: Advanced Multi-Paradigm Software Development Venkita Subramonian, Christopher Gill, Ying Huang, Marc Sentany Department of Computer Science.
Primitive Concepts of Distributed Systems Chapter 1.
1 K. Salah Application Layer Module K. Salah Network layer duties.
Process-to-Process Delivery:
Computer Networking A Top-Down Approach Featuring the Internet Introduction Jaypee Institute of Information Technology.
Distributed Systems Architectures Chapter 12. Objectives  To explain the advantages and disadvantages of different distributed systems architectures.
Principles of Network Applications
Software Design and Architecture
CHAPTER 3 Architectures for Distributed Systems
#01 Client/Server Computing
Client-Server Interaction
Protocols and the TCP/IP Suite
Data and Computer Communications by William Stallings Eighth Edition
The Client-Server Paradigm
Protocols and the TCP/IP Suite
Computer Networking A Top-Down Approach Featuring the Internet
#01 Client/Server Computing
Presentation transcript:

Client Server Paradigm Objectives: Taxonomy of distributed systems service models point of view Client-server architecture Thin versus thick clients Two and three tier architectures Tradeoffs between these different architectures Software Architectures for Clients and Servers

Distributed Systems: Service-models Taxonomy Centralized model Client-server model Cluster-based model Grid-based model Peer-to-peer model

Distributed Systems: Service-models Taxonomy Centralized model This the classic mainframe time-sharing system The computer may contain more than one CPU Terminals have serial connections Drawbacks Single-point of failure Not scalable Resource contention Are there any advantages?

Distributed Systems: Service-models Taxonomy Client-server model A networked model consisting of three components Server Client Service The labels client and server are within the context of a particular service Advantages? Disadvantages? The labels client and server are within the context of a particular service

Distributed Systems: Service-models Taxonomy Cluster-based model Tightly-coupled Closely linked via LAN networking Grid-based model Focuses on the ability to support computation across administrative domains Peer-to-peer model Example: Gnutella, Kazaa Peers are intermittently connected and change IP addresses

Distributed Systems: comparison paradigm node ownership node management controlling policies discovery mechanisms peer-to-peer computing local none centralized or distributed Cluster computing global (single ownership) global global job scheduling Grid computing global management under local policies single controlling policy Where does a client server computing fit?

Client Server Architecture It is way of designing an application in which clients contact well-known servers to access resources What fraction of the task do clients process before giving the work to the server? Thin clients Clients are information appliances Servers are resource-rich Must have a resource-rich connectivity Thick clients Clients perform the bulk of data processing operations Servers perform rudimentary tasks Trade-offs between thin and thick clients?

Two-tier Client Server Architecture Traditional client-server architecture A good solution for small-scale group sizes This architecture has limitations Does not scale Restricts flexibility Moving or repartitioning program functionalities

Multi-tier Client Server Architectures Example: three-tier architecture The three-tier design has many advantages over traditional two-tier Added modularity Function isolation Scalability

Client-server system architecture vs Client-server system architecture vs. Client-server distributed computing In the client-server system architecture, the terms clients and servers refer to computers In the client-server distributed computing paradigm, the terms refer to processes

Client-server, an overloaded term

Client-server system The interprocess communications and event synchronization Typically, the interaction of the client and server processes follows a request-response pattern.

Software Architectures for Clients and Servers The Software architecture of client-server application consists of Presentation layer Application layer Service layer Any client-server software must have the three-layer functionalities Is this a good approach? Why?

Software Architectures for Clients and Servers: Example We will look at a Daytime client-server software Daytime service [RFC867]: Client: Hello, <client address> here. May I have a timestamp please. Server: Here it is: (time stamp follows)

Software Architectures for Clients and Servers: Separating the layers Allows each module to be developed by appropriate people People have different skills Allows modifications to be made in isolation

Client-Server Paradigm Issues A service session Same service might be requested by multiple clients Client sessions need to be kept separated and isolated The service protocol How the service is to be located The sequence of the IPC Data syntax and semantics IPC and event synchronization

Testing a Network Service Since network software is notoriously difficult to test Use the three-layered software architecture and modularize each layer on both the client and the server Use an incremental or stepwise approach in developing each module Develop the client first Test the client independent of the server Test the client-server suite on one machine before running the programs on separate machine

Client-Server Paradigm: Server Types Connection-oriented server Connectionless-oriented servers Iterative servers Concurrent servers Stateful servers Stateless serves

Client-Server Paradigm: Server Types Connection-oriented server Connectionless-oriented servers Iterative servers Concurrent servers Stateful servers Stateless serves We will look at the tradeoffs of these different server types

Connection-oriented communication A separate connection is maintained for each session Once the connection is established, data can be sent until the session is over The connection needs to be explicitly torn down Imagine that we have n processes What happens if a connection is established between a sender and every other process? What happens if all the n processes is a sender? Connection-oriented servers rely on connection-oriented communication

Connection-oriented: Daytime Server Example … theServer = new ServerSocket(thePort); p = new PrintWriter(System.out); try { p.println("Echo Server now in business on port " + thePort ); p.flush(); theConnection = theServer.accept(); // read a line from the client theInputStream = new BufferedReader (new InputStreamReader (theConnection.getInputStream())); p = new PrintWriter(theConnection.getOutputStream()); while (!done){ theLine = theInputStream.readLine(); if (theLine == null) done = true; else{ p.println(theLine); } theConnection.close(); Connection acceptance Protocol processing

Connectionless-oriented communications Involves no connection Packets are explicitly addressed by the sender The connection needs to be explicitly torn down Connectionless communications are simpler to provide Packets can be delivered out of order Connectionless-oriented servers rely on connectionless-oriented communication

Iterative Servers An iterative server in unable to overlap client sessions Is a connection-oriented server an iterative server? If yes, why? Suppose that n clients have requested connection at a given time, and each session is expected to last t time units. What will happen to request n+1? What is the solution???

Concurrent Servers A concurrent server in capable of conducting multiple client sessions at once A concurrent server can be provided by using Threads or Asynchronous IPC operations

Stateful servers A stateful server maintain stateful information on each active client Stateful information can reduce the data exchanged, and thereby the response time

Stateful vs. Stateless server Stateless server is straightforward to code, but the state information maintained by the server can reduce the data exchanged Are there any problems with stateful servers?

Stateful vs. stateless server In actual implementation, a server may be Stateless Stateful A hybrid, wherein the state data is distributed on both the server-side and the client-side Which type of server is chosen is a design issue

Global state information Information maintained by a server for all the clients throughout the lifetime of a service The global state information needs to be synchronized for mutual exclusion

Session state information Information maintained specific to a client session Two schemes to maintain session information Session information maintained by the client The server processes each request in the same manner The complexity of the server’s application logic is reduced Such a server is called stateless Session information maintained by the server Server keeps track of the session progress of the client Server is more complex to design and implement Failure provisions

Summary You have been introduced to the client-server paradigm in distributed computing. Topics covered include The difference between the client-server system architecture and the client-server distributed computing paradigm Definition of the paradigm and why it is widely adopted in network services and network applications The issues of service sessions, protocols, service location, interprocess communications, data representation, and event synchronization in the context of the client-server paradigm

Summary: Con. The three-tier software architecture of network applications: Presentation logic, application logic, and service logic Connectionless server versus connection-oriented server Iterative server versus concurrent server and the effect on a client session Stateful server versus stateless server In the case of a stateful server: global state information versus session state information

Summary: Con. You are required to read the following: The paper entitled “A taxonomy of distributed computing” Chapter 5 of the Distributed Computing book Chapter 2 of the Distributed Computing book