Client/Server Architectures

Slides:



Advertisements
Similar presentations
Distributed Systems Architectures
Advertisements

Distributed Processing, Client/Server and Clusters
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.
Netscape Application Server Application Server for Business-Critical Applications Presented By : Khalid Ahmed DS Fall 98.
SWE 316: Software Design and Architecture
Distributed Systems Architectures
Technical Architectures
Distributed Systems Architectures
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
Introduction to Web Application Architectures Web Application Architectures 18 th March 2005 Bogdan L. Vrusias
Active X Microsoft’s Answer to Dynamic Content Reference: Using Active X by Brian Farrar QUE
Distributed Information Systems - The Client server model
Ch 12 Distributed Systems Architectures
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
.NET Mobile Application Development Introduction to Mobile and Distributed Applications.
Architectural Design, Distributed Systems Architectures
Distributed Systems: Client/Server Computing
Client/Server Architecture
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 1.
System Architecture & Hardware Configurations Dr. D. Bilal IS 592 Spring 2005.
INTRODUCTION TO WEB DATABASE PROGRAMMING
Copyright © cs-tutorial.com. Introduction to Web Development In 1990 and 1991,Tim Berners-Lee created the World Wide Web at the European Laboratory for.
Distributed Software Engineering To explain the advantages and disadvantages of different distributed systems architectures To discuss client-server and.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
Distributed Systems Architectures ©Ian Sommerville 2006.
Architectural Design, Distributed Systems Architectures
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
1 소프트웨어공학 강좌 Chap 9. Distributed Systems Architectures - Architectural design for software that executes on more than one processor -
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11Slide 1 Chapter 11 Distributed Systems Architectures.
Distributed Systems Architectures
Chapter 17 - Deploying Java Applications on the Web1 Chapter 17 Deploying Java Applications on the Web.
Csi315csi315 Client/Server Models. Client/Server Environment LAN or WAN Server Data Berson, Fig 1.4, p.8 clients network.
Introduction  Client/Server technology is seen by many as the solution to the difficulty of linking together the various departments of corporation.
Unit – I CLIENT / SERVER ARCHITECTURE. Unit Structure  Evolution of Client/Server Architecture  Client/Server Model  Characteristics of Client/Server.
Web Pages with Features. Features on Web Pages Interactive Pages –Shows current date, get server’s IP, interactive quizzes Processing Forms –Serach a.
1 Welcome to CSC 301 Web Programming Charles Frank.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Advanced Computer Networks Topic 2: Characterization of Distributed Systems.
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 14 Database Connectivity and Web Technologies.
CSC 480 Software Engineering Lecture 18 Nov 6, 2002.
Web Pages with Features. Features on Web Pages Interactive Pages –Shows current date, get server’s IP, interactive quizzes Processing Forms –Serach a.
ICS362 – Distributed Systems Dr. Ken Cosh Week 2.
Module: Software Engineering of Web Applications Chapter 2: Technologies 1.
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.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
CSC 480 Software Engineering Lecture 17 Nov 4, 2002.
©Ian Sommerville 2000, Tom Dietterich 2001 Slide 1 Distributed Systems Architectures l Architectural design for software that executes on more than one.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
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.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
Software Engineering 1.  Distributed systems issues   Client–server computing  Architectural patterns for distributed systems  Software as a service.
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.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
1 Chapter 1 INTRODUCTION TO WEB. 2 Objectives In this chapter, you will: Become familiar with the architecture of the World Wide Web Learn about communication.
Distributed Systems Architectures
Software architecture
N-Tier Architecture.
MVC and other n-tier Architectures
CSC 480 Software Engineering
#01 Client/Server Computing
Distributed Systems Architectures
#01 Client/Server Computing
Presentation transcript:

Client/Server Architectures Pictures from, Software Engineering 8, Sommerville

System types Personal systems that are not distributed and that are designed to run on a personal computer or workstation. Embedded systems that run on a single processor or on an integrated group of processors. Distributed systems where the system software runs on a loosely integrated group of cooperating processors linked by a network.

Distributed system characteristics Resource sharing Sharing of hardware and software resources. Openness Use of equipment and software from different vendors. Concurrency Concurrent processing to enhance performance. Scalability Increased throughput by adding new resources. Fault tolerance The ability to continue in operation after a fault has occurred.

Distributed system disadvantages Complexity Typically, distributed systems are more complex than centralised systems. Security More susceptible to external attack. Manageability More effort required for system management. Unpredictability Unpredictable responses depending on the system organisation and network load.

Layered application architecture 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.

Application layers

Thin and fat clients Thin-client model Fat-client model 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 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 T hin-client model F at-client Client Server Data management Application processing Presentation

Thin client model Used when legacy systems are migrated to client server architectures. The legacy system acts as a server in its own right with a graphical interface implemented on a client. Used in data-intensive applications Web browsing A major disadvantage is that it places a heavy processing load on both the server and the network.

Thin clients Text terminals X windows Traditional Web Browser Client presents text to users, reads input from keyboard X windows Protocol to exchange desktop window information Provides for the use of desktop applications that execute on a server Server required to actual create graphical appearance and transmit to client Very slow for wide-area networking Traditional Web Browser Built on text terminal idea Adds photographic images Adds hyperlinks URLs point from one page to another Does not provide complete applications like XWindows Much faster than Xwindows Allows Web to work on global scale

Xwindows versus Web Browser 1. Server receives user input 2. Server performs application processing 3. Server puts computes changes required to GUI 4. Server sends client GUI changes Traditional Web Browser 2. Server loads text and image resources for client 3. Server provides a set of instructions for putting resources together (HTML) 4. Server sends client resources + instructions

Fat client model More processing is delegated to the client as the application processing is locally executed. Most suitable for new C/S systems where the capabilities of the client system are known in advance. More complex than a thin client model especially for management. New versions of the application have to be installed on all clients.

Fat client examples Online Multiplayer Games Multimedia Players Eclipse IDE Microsoft Outlook

Hybrid Browser Models Server-Side Scripting JavaScript Java Applets

Hybrid Browser Models Server-Side Scripting Instead of loading resources based on client request, Server loads resources based on application processing Low latency at start-up time Problem: High latency between user events

Hybrid Browser Models JavaScript Client performs minor application processing but only related to beautifying the user interface Example: Drop down menus, drag and drop, etc... Low latency at startup-time Low latency between user events Problem: Limited to GUI

Hybrid Browser Models Java Applets Client downloads complete application on-demand Application runs inside the browser Strong security, can’t execute machine instructions directly Low latency between user events Problem: High latency at start-up time

A client-server ATM system

Three-tier architectures In a three-tier architecture, each of the application architecture layers may execute on a separate processor. Allows for better performance than a thin-client approach and is simpler to manage than a fat-client approach. More opportunities for caching Move slower components further away from clients to be accessed only when necessary Middle-tier can further be split Gives rise to multi-tier architecture Client – Web Server – Application Server – Data Management Web server provides application routing to different applications hosted on different machines

A 3-tier C/S architecture

New C/S Approaches Thin Clients AJAX Fat Clients Rich Clients

AJAX Asynchronous JavaScript and XML Event-based architecture Asynchronous, concurrent, communication with server For web browsers Which use Javascript Client/Server communicate through XML messages Why? Client loads large Javascript file at startup which contains most user interface instructions Further communication with server doesn’t need UI information so HTML is redundant

AJAX Application processing is still on the server But ... Client can process several events without loading new pages Originally every interaction with server required a fresh web page to load

AJAX

Rich Clients Fat Clients with an automatic update feature Application is partitioned into core application and other features through plugins Requires careful application decomposition If changes are require to core, user must download whole new version Takes advantage of dynamic linked libraries Modern compilers can linked together separately compiled class at application startup Classes do not need to be compiled together

Use of C/S architectures