240 likes | 641 Views
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
E N D
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.
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
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
Client Server Client 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 Internet Application Client HTML Server Client JAVA
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 Application Client Server
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
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
Middle ware Client Server 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 Single Machine Middle ware Client Server Middle ware Client Server Server Client Middle ware C/S C/S C/S C/S
Servers and Client Building Blocks Client Server Middleware Web Browser GUI DSM OS Web server Groupware DMBS Etc. Service-Specific; DSM NOS (securit, peer-to-peer, directory, distributed files); Transport stack (TCP/IP) NOS=Network operating system
PC Server Asymmetric Multi- processing Superserver symmetric Multi- processing Superserver Multiservers Server Scalability
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.)
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
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
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
Linux Introduction • Source code is freely available • Developers can make changes • Available from a number of organizations (called disro) • Red Hat • Mandrake • SuSe
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
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/
Summary • Got it?
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.
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