SWE 316: Software Design and Architecture

Slides:



Advertisements
Similar presentations
ICS 434 Advanced Database Systems
Advertisements

Database Architectures and the Web
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 9 Distributed Systems Architectures Slide 1 1 Chapter 9 Distributed Systems Architectures.
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
Figures – Chapter 18. Figure 18.1 Procedural interaction between a diner and a waiter.
Technical Architectures
Distributed Systems Architectures
ISYS 546 Client/Server Database Application Development.
Web Servers How do our requests for resources on the Internet get handled? Can they be located anywhere? Global?
© Copyright 1997, The University of New Mexico L-1 Computing Architecture Standards and Products.
Ch 12 Distributed Systems Architectures
12 Chapter 12 Client/Server Systems Hachim Haddouti.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
The Architecture of Transaction Processing Systems
.NET Mobile Application Development Introduction to Mobile and Distributed Applications.
Architectural Design, Distributed Systems Architectures
Distributed Systems: Client/Server Computing
Client/Server Architecture
Tiered architectures 1 to N tiers. 2 An architectural history of computing 1 tier architecture – monolithic Information Systems – Presentation / frontend,
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 1.
Lecture The Client/Server Database Environment
The Client/Server Database Environment
Client – Server Architecture A Basic Introduction Kathleen R. Murray, Ph.D. May 2002.
Introduction to Databases Transparencies 1. ©Pearson Education 2009 Objectives Common uses of database systems. Meaning of the term database. Meaning.
Client/Server Architectures
System Architecture & Hardware Configurations Dr. D. Bilal IS 592 Spring 2005.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
Database Architectures and the Web Session 5
Introduction to distributed systems Dr. S. Indran 23 January 2004.
Architectural Design, Distributed Systems Architectures
Lecture On Database Analysis and Design By- Jesmin Akhter Lecturer, IIT, Jahangirnagar University.
1 소프트웨어공학 강좌 Chap 9. Distributed Systems Architectures - Architectural design for software that executes on more than one processor -
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11Slide 1 Chapter 11 Distributed Systems Architectures.
Distributed Systems Architectures
Advanced Web Forms with Databases Programming Right from the Start with Visual Basic.NET 1/e 13.
Csi315csi315 Client/Server Models. Client/Server Environment LAN or WAN Server Data Berson, Fig 1.4, p.8 clients network.
Unit – I CLIENT / SERVER ARCHITECTURE. Unit Structure  Evolution of Client/Server Architecture  Client/Server Model  Characteristics of Client/Server.
Client – Server Architecture. Client Server Architecture A network architecture in which each computer or process on the network is either a client or.
The Client/Server Database Environment Ployphan Sornsuwit KPRU Ref.
Personal Computer - Stand- Alone Database  Database (or files) reside on a PC - on the hard disk.  Applications run on the same PC and directly access.
CSC 480 Software Engineering Lecture 18 Nov 6, 2002.
Application Development
Client/Server Computing
Distributed System Architectures Yonsei University 2 nd Semester, 2014 Woo-Cheol Kim.
CSC 480 Software Engineering High Level Design. Topics Architectural Design Overview of Distributed Architectures User Interface Design Guidelines.
Data Communications and Networks Chapter 9 – Distributed Systems ICT-BVF8.1- Data Communications and Network Trainer: Dr. Abbes Sebihi.
Chapter 9  Definition of terms  List advantages of client/server architecture  Explain three application components:
CSC 480 Software Engineering Lecture 17 Nov 4, 2002.
Client – Server Architecture A Basic Introduction 1.
©Ian Sommerville 2000, Tom Dietterich 2001 Slide 1 Distributed Systems Architectures l Architectural design for software that executes on more than one.
System Architecture & Hardware Configurations Dr. D. Bilal IS 582 Spring 2008.
CLIENT SERVER COMPUTING. We have 2 types of n/w architectures – client server and peer to peer. In P2P, each system has equal capabilities and responsibilities.
E-commerce Architecture Ayşe Başar Bener. Client Server Architecture E-commerce is based on client/ server architecture –Client processes requesting service.
Dr D. Greer, Queens University Belfast ) Software Engineering Chapter 7 Software Architectural Design Learning Outcomes Understand.
Distributed Systems Architectures Chapter 12. Objectives  To explain the advantages and disadvantages of different distributed systems architectures.
Distributed Systems Architectures. Topics covered l Client-server architectures l Distributed object architectures l Inter-organisational computing.
N-Tier Architecture.
The Client/Server Database Environment
Principles of Network Applications
The Client/Server Database Environment
The Client/Server Database Environment
CSC 480 Software Engineering
System Architecture & Hardware Configurations
#01 Client/Server Computing
Introduction to Databases Transparencies
Lecture 1: Multi-tier Architecture Overview
Computing Architecture
#01 Client/Server Computing
Presentation transcript:

SWE 316: Software Design and Architecture Handout Lecture # 10 Client-Server Architecture Two and Three Tier Architectures To understand client-server architecture 2-tier 3-tier To differentiate between thin and fat clients

Client-Server architecture Two Tier Architecture Three Tier Architecture Thin and Fat Clients 2/18 Client-Server architecture The application is modeled as a set of services that are provided by servers and a set of clients that use these services. Clients know of servers but servers need not know of clients. Clients and servers are logical processes. Examples: email exchange, web access, database access

Client-Server architecture: Examples Two Tier Architecture Three Tier Architecture Thin and Fat Clients 3/18 Client-Server architecture: Examples Clients: web browsers, email clients, and online chat clients. Servers: web servers, ftp servers, application servers, database servers, name servers, mail servers, file servers, print servers, and terminal servers. Most web services are also types of servers.

Application layers Presentation layer Application processing layer Client-Server Architecture Two Tier Architecture Three Tier Architecture Thin and Fat Clients 4/18 Application layers Presentation layer Concerned with presenting the results of a computation to system users and with collecting user inputs. Application processing layer Concerned with providing application specific functionality e.g., in a banking system, banking functions such as open account, close account, etc. Data management layer Concerned with managing the system databases.

Client-server architectures: Types Two Tier Architecture Three Tier Architecture Thin and Fat Clients 5/18 Client-server architectures: Types There are basically two types of client-server architectures Two tier architectures Three tier architectures

Client-Server Architecture Two Tier Architecture Three Tier Architecture Thin and Fat Clients 6/18 Two tier architecture Application components are distributed between the server and client software In addition to part of the application software, the server also stores the data, and all data accesses are through the server. The presentation (to the user) is handled strictly by the client software. The clients assume the bulk of the responsibility for the application logic. Image from: http://en.kioskea.net/contents/cs/cs3tier.php3

Two tier architecture (cont…) Client-Server Architecture Two Tier Architecture Three Tier Architecture Thin and Fat Clients 7/18 Two tier architecture (cont…) The server assumes the bulk of the responsibility for data integrity checks, query capabilities, data extraction and most of the data intensive tasks, including sending the appropriate data to the appropriate clients. SQL is used on the clients to request appropriate subsets of data from the server. Data returned from the server to the clients is manipulated by the client software for reporting.

Example: HTTP Requests Client-Server Architecture Two Tier Architecture Three Tier Architecture Thin and Fat Clients 8/18 Example: HTTP Requests User HTTP Request Response to HTTP Request Processing of HTML code takes place on the client side and the web page request is processed on the server side

Two tier architecture (Cont.) Client-Server Architecture Two Tier Architecture Three Tier Architecture Thin and Fat Clients 9/18 Two tier architecture (Cont.) Advantages Fast application development time Available tools are robust and provide fast prototyping. Disadvantages Not suitable for heterogeneous environments with rapidly changing business rules. Because the bulk of the application logic is on the client, there is the problem of client software version control and new version redistribution.

Three tier architecture (cont...) Client-Server Architecture Two Tier Architecture Three Tier Architecture Thin and Fat Clients 10/18 Three tier architecture (cont...) 3-tier architectures attempt to overcome some of the limitations of the 2-tier architecture by separating presentation, processing, and data into 3 separate and distinct entities. Allows for better performance than a thin-client approach and is simpler to manage than a fat-client approach. The software in the client handles the presentation (to the user) using similar tools as in the 2-tier architecture. Image from: http://en.kioskea.net/contents/cs/cs3tier.php3

Three tier architecture (cont...) Client-Server Architecture Two Tier Architecture Three Tier Architecture Thin and Fat Clients 11/18 Three tier architecture (cont...) When data or processing are required by the presentation client, a call is made to the middle-tier functionality server. This tier performs calculations, does reports, and makes any needed client calls to other servers (e.g.. a data base server). Middle tier servers may be multithreaded and can be accessed by multiple clients. The calling mechanism from client to server and from server to server is by means of Remote Procedure Calls (RPC’s).

Three tier architecture advantages Client-Server Architecture Two Tier Architecture Three Tier Architecture Thin and Fat Clients 12/18 Three tier architecture advantages RPC calls from the presentation client to the middle tier provide greater generality (i.e. flexibility) than the SQL calls usually used in the 2-tier architecture. The 3-tier clients do not have to understand SQL. This allows the organization, names, or even the overall structure of back end data to changes without requiring changes in the PC-based presentation clients. This allows clients to access even non-relational databases and greatly simplifies introduction of new database technologies.

Three tier architecture advantages (cont...) Client-Server Architecture Two Tier Architecture Three Tier Architecture Thin and Fat Clients 13/18 Three tier architecture advantages (cont...) Having separate functionality servers allows for the parallel development of individual tiers by application specialists. Can use reusable program modules for different applications, thus reducing development and migration costs.

Three tier architecture disadvantages Client-Server Architecture Two Tier Architecture Three Tier Architecture Thin and Fat Clients 14/18 Three tier architecture disadvantages Creates an increased need for network traffic management, server load balancing, and fault tolerance. Current tools are relatively immature and are more complex. Maintenance tools are currently inadequate for maintaining server libraries. This is a potential obstacle for simplifying maintenance and promoting code reuse throughout the organization.

Thin and fat clients Thin-client model (also called Slim-Client) Client-Server Architecture Two Tier Architecture Three Tier Architecture Thin and Fat Clients 15/18 Thin and fat clients Thin-client model (also called Slim-Client) In a thin-client model, all of the application processing and data management is carried out on the server. The client is simply responsible for running the presentation software. Fat-client model (Thick-Client) In this model, the server is only responsible for data management. The software on the client implements the application logic and the interactions with the system user.

Thin and fat clients 16/18 Thin and Fat Clients Client-Server Architecture Two Tier Architecture Three Tier Architecture Thin and Fat Clients 16/18 Thin and fat clients

Use of Client-Server architectures Two Tier Architecture Three Tier Architecture Thin and Fat Clients 17/18 Use of Client-Server architectures Architecture Applications Two-tier C/S architecture with thin clients Legacy system applications where separating application processing and data management is impractical. Computationally-intensive applications such as compilers with little or no data management. Data-intensive applications (browsing and querying) with little or no application processing. Two-tier C/S architecture with fat clients Applications where application processing is provided by off-the-shelf software (e.g. Microsoft Excel) on the client. Applications where computationally-intensive processing of data (e.g. data visualisation) is required. Applications with relatively stable end-user functionality used in an environment with well-established system management. Three-tier or multi-tier C/S architecture Large scale applications with hundreds or thousands of clients Applications where both the data and the application are volatile. Applications where data from multiple sources are integrated.

Summary Tow basic client-server architecture 2-tier 3-tier Two Tier Architecture Three Tier Architecture Thin and Fat Clients 18/18 Summary Tow basic client-server architecture 2-tier Thick clients: run some or all of the application logic. Thin client: all of the application processing and data management is carried out on the server 3-tier Allows for better performance than a thin-client approach and is simpler to manage than a fat-client approach.