an introduction to client/server architecture dr. farid farahmand

21
An Introduction to Client/Server Architecture Dr. Farid Farahmand

Upload: deven-dockery

Post on 31-Mar-2015

269 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: An Introduction to Client/Server Architecture Dr. Farid Farahmand

An Introduction to Client/Server Architecture

Dr. Farid Farahmand

Page 2: An Introduction to Client/Server Architecture Dr. Farid Farahmand

A Brief History: Open Platform

The good old days Octopus-like mainframes Only a few venders to choose from Farms of disks where required Applications were specific for each machine

Open platform New client/server architecture Open system allowed mix-and-match

Different application technologies could be purchased from different venders

Examples: server platform, client platform, network protocols, middleware software, etc.

Page 3: An Introduction to Client/Server Architecture Dr. Farid Farahmand

What is Client/Server (C/S) Computing It started as PCs became more powerful

PCs were no longer dumb terminals Provided an open and flexible environment C/S is considered as a form of distributed

software

Page 4: An Introduction to Client/Server Architecture Dr. Farid Farahmand

Distinct characteristics of C/S Client-server is a computing architecture which separates a client from a

server It is almost always implemented over a computer network The most basic type of client-server architecture employs only two

types of nodes: clients and servers. This type of architecture is sometimes referred to as two-tier. It allows devices to share files and resources.

Server provides the service Client is considered as the customer requesting the service The server service can be shared among a number of clients Clients must request or initiate the service The location of the server in the network is transparent to clients Transaction between C/S is message-passing based C/S architecture is scalable

horizontally (more clients can added) Vertically (more servers can be added)

The server is centrally maintained where as clients are independent of each other

Page 5: An Introduction to Client/Server Architecture Dr. Farid Farahmand

Systems with C/S Architecture File servers

File sharing and file processing Data base servers

Passing file results Example: Query in DBMS server Typically one single request/reply

Transaction servers Transaction server includes DBMS and transaction monitoring Server has remote procedures run online by the client

web servers Super-fat servers and thin clients Uses HTTP protocol Java was first to introduce interactive C/S forms

Client

Client

Server

Server

Internet

Client JAVA

ClientHTML

Application

Page 6: An Introduction to Client/Server Architecture Dr. Farid Farahmand

Client/Server Models Where to push the application to Fat clients

The bulk of the application is running on the client The client knows how the data is organized and where it is Different clients access the same applications different ways

Fat servers The server more complicated The clients are less complex More of the code runs on the server The network interaction is minimized

ServerClient

Application

Page 7: An Introduction to Client/Server Architecture Dr. Farid Farahmand

Middleware Software It is the (/) between client and server which glues them together

Allowing the client request for a service and the server providing it

Middleware can also be between server/server Two broad classes

General LAN servers, TCP/IP, Communication stacks, Queuing services,

etc. Application specific

Used to accomplish a specific task Groupware specific: SMTP Internet specific: HTTP Database specific: SQL

Page 8: An Introduction to Client/Server Architecture Dr. Farid Farahmand

Two-Tier vs. Three-Tier Architecture

Same basic idea as fat-client versus fat-server Depends on how the application is divided between the server

and the client Two-tier servers

Examples: file servers and database server In this case the process (application logic) is buried within

the client or server (or both) Three-tier servers

Examples: Web and distributed objects In this case the process is run on the middle-tier –

separated from the user and data interface They can integrate the data from multiple sources More robust and more scalable

Page 9: An Introduction to Client/Server Architecture Dr. Farid Farahmand

Client/Server Building Blocks

Purpose How to divide the application

between the client and server What are different

functionalities of client and server

Basic client server model Fits various applications

Small office Small business Enterprise Global

Client

Server

Server

Client ServerMiddleware

Single Machine

Client Server

Middleware

Client Middleware

C/SMiddleware

C/S

C/S

C/S

Page 10: An Introduction to Client/Server Architecture Dr. Farid Farahmand

Servers and Client Building Blocks

Web Browser GUI DSM OS

Service-Specific; DSM NOS (securit, peer-to-peer, directory, distributed files);

Transport stack (TCP/IP)

Web serverGroupware

DMBSEtc.

ClientMiddleware

Server

NOS=Network operating system

Page 11: An Introduction to Client/Server Architecture Dr. Farid Farahmand

Server Scalability

PC Server

Asymmetric Multi-processing Superserver

symmetric Multi-processing Superserver

Multiservers

Page 12: An Introduction to Client/Server Architecture Dr. Farid Farahmand

Server Scalability Superserver

A very powerful server Single-server or multiserver Each server can have a single processor or multiprocessor Multiprocessing can be Asymmetric or Symmetric

Multiprocessing Asymmetric: each processor is dedicated to a specific task Fully symmetric (SMP): applications are divided into threads and threads are sent to available

processors Examples: 32-bit NT, Unix, NetWare Requires 3 basic functionalities:

Global scheduling I/O sharing structure OS access sharing

Multiservers Pool of servers, providing more processing power (also called a cluster) They divide the task between different servers

Server lite As opposed to full blown servers Provides a background process on the client machine that can accept unsolicited networks

request (refreshing database, synchronizing time, etc.)

Page 13: An Introduction to Client/Server Architecture Dr. Farid Farahmand

OS Wars General trends

More powerful PCs (fat PCs, Network PCs, Multimedia PCs) Operating system applications

Embedded devices (cell phones) Clients Super clients Servers SMP servers Clusters

OS players DOS and Windows 3.x/95 JAVA OS OS/2 Wrap NT/XP/2000/2003/VISTA NetWare (Novell’s, poor application server, fast file server) Unix Linux Specialized parallel OS for clusters

Page 14: An Introduction to Client/Server Architecture Dr. Farid Farahmand

Client/Server Networking Model

Networking in Linux follows the client/server model Server provides the resource (web server) Client talks to the server (browser, e-mail program)

Server has a corresponding program that communicates with the client (runs in the background) In Windows the server program called service In Linux the server program called daemon in Linux

Page 15: An Introduction to Client/Server Architecture Dr. Farid Farahmand

UNIX/Linux

UNIX was introduced in 1969 Linux is from the early 1990s

Based on MINIX Three basic components

Kernel – central portion of OS File system – provides input and output

mechanisms Shell – provides user interface

Page 16: An Introduction to Client/Server Architecture Dr. Farid Farahmand

Linux Introduction

Source code is freely available Developers can make changes

Available from a number of organizations (called disro) Red Hat Mandrake SuSe

Page 17: An Introduction to Client/Server Architecture Dr. Farid Farahmand

Linux Resource

List of Linux compatible hardware: http://www.linuxquestions.org/hcl/

List of hardware issues and forums for Linux http://www.linuxcompatible.org/

Third-party utilities allowing Windows to read the drives of a Linux installation on the same machine http://pro.mount-everything.com/ http://www.symantec.com/home_homeoffice/products/

overview.jsp?pcid=sp&pvid=pm80

Page 18: An Introduction to Client/Server Architecture Dr. Farid Farahmand

Fedora Linux Two ways to obtain

Installation CD Download and burn your own CD – Read to see how to burn a DVD

http://fedoraproject.org/wiki/Distribution/Download Obtain a copy

http://download.fedora.redhat.com/pub/fedora/linux/core/6/i386/iso/ http://download.fedora.redhat.com/pub/fedora/linux/core/4/i386/iso/

Fedora core 6, i386 Intel x86 processor compatible, first CD – ISO image FC-6-i386-disc1.iso

When you have dowloaded the ISO images, you need to burn them on CD/DVD Popular Windows CD burning tools: http://iso.snoekonline.com/iso.htm You can also use CD BurnerXP Pro http://www.cdburnerxp.se/

Page 19: An Introduction to Client/Server Architecture Dr. Farid Farahmand

Summary

Got it?

Page 20: An Introduction to Client/Server Architecture Dr. Farid Farahmand

Homework 1 – LinuxMonday

Visit Fedora Core Web cite. What is the latest version of Fedora?

Burn a copy of Fedora Core 4 on CDs or DVD. You must have this in order to install Linux on your machine – You are not allowed to do the lab without your own CD.

Search for Linux Commands and obtain a one or two-page long list of some of Linux commands used with Fedora Core 4 version

In your own words, list 5-10 differences between Fedora Core 4 and Fedora Core 7 version. You must tabulate your answer.

Do a little research and briefly explain the sequence involved in installing Windows and Linux. What will you do if Windows is already installed?

NOTE: Submit a hardcopy only.

Page 21: An Introduction to Client/Server Architecture Dr. Farid Farahmand

references

http://www.nakov.com/inetjava/lectures/part-1-sockets/InetJava-1.1-Networking-Basics.html

http://www.cisco.com/univercd/cc/td/doc/cisintwk/idg4/nd2011.htm on ISDN Learn about 2-Tier and 3-Tier systems:

http://www.sei.cmu.edu/str/descriptions/clientserver_body.html