Client Server Lecture
Transcript of Client Server Lecture
![Page 1: Client Server Lecture](https://reader034.fdocuments.in/reader034/viewer/2022052409/546b307cb4af9fca128b4fb7/html5/thumbnails/1.jpg)
University of British ColumbiaSoftware Practices Lab
CPSC 410: Client/Server Software Architecture
Trevor Young
September 25th, 2003
![Page 2: Client Server Lecture](https://reader034.fdocuments.in/reader034/viewer/2022052409/546b307cb4af9fca128b4fb7/html5/thumbnails/2.jpg)
Objectives
By the end of this lecture, you will be able to:
• Describe the basic features of a Client/Server architecture
• Describe Advantages and Disadvantages of two and three tier client/server software architectures
• Understand the concerns involved in designing a Client/Server Architecture
• Identify the resources available to you when designing a Client/Server Architecture
![Page 3: Client Server Lecture](https://reader034.fdocuments.in/reader034/viewer/2022052409/546b307cb4af9fca128b4fb7/html5/thumbnails/3.jpg)
3
Overview• Summary from previous lecture• Definitions and Context• Evolution of Client Server Architectures• Examples of C/S Implementations• Comparing 2-Tier and 3-Tier
Architectures• Considerations in C/S Applications• Case Study
![Page 4: Client Server Lecture](https://reader034.fdocuments.in/reader034/viewer/2022052409/546b307cb4af9fca128b4fb7/html5/thumbnails/4.jpg)
4
Context• Talked about software architecture in
the abstract last class• As an example of “an architecture”, we’ll
look at client/server software architecture
• Client/Server encompasses many different applications
• Generally accepted as the preferred architecture for application design
![Page 5: Client Server Lecture](https://reader034.fdocuments.in/reader034/viewer/2022052409/546b307cb4af9fca128b4fb7/html5/thumbnails/5.jpg)
5
Definitions• “Client/Server software architecture is a
versatile, message-based and modular infrastructure that is intended to improve usability, flexibility, interoperability, and scalability as compared to centralized, mainframe, time sharing computing”
• Client: A Requestor of Services
• Server: A Provider of Services
– Communication (talk to each other in same language)
– Hardware (Physical separation) is not relevant– Platform (Wintel, Unix…) is not relevant
![Page 6: Client Server Lecture](https://reader034.fdocuments.in/reader034/viewer/2022052409/546b307cb4af9fca128b4fb7/html5/thumbnails/6.jpg)
6
Definitions• Tier = Layer (Abstract Software Layer)
• Thin Client: – Client application that relies on most of the function being available on
the server
• Fat (Rich) Client: – Opposite of Thin Client; Client application is installed on the users
machine and contains most of the business functionality
• Middleware: – Connectivity software that sits between the client and shared resources
on a server. Eg. TP Monitors, MOM, RPC, ORBs• ORB – Object Request Broker (Message Broker)• TP Monitor – Transaction Processing Monitor• MOM – Message Oriented Middleware• RPC – Remote Procedure Call
• RDBMS: Relational Database Management Server
• Lines are blurring between different middleware, databases etc.
![Page 7: Client Server Lecture](https://reader034.fdocuments.in/reader034/viewer/2022052409/546b307cb4af9fca128b4fb7/html5/thumbnails/7.jpg)
7
Context
Motivation:
• To share resources among many users – client interacts with end user– server interacts with shared resource(s)
![Page 8: Client Server Lecture](https://reader034.fdocuments.in/reader034/viewer/2022052409/546b307cb4af9fca128b4fb7/html5/thumbnails/8.jpg)
8
Evolution: Mainframe (~1970’s)• ~ One tier Client/Server• Host computer that users time-shared
through a terminal that passes keystrokes
• “Big Iron” – huge machines, air conditioning, filled entire room, cost millions of dollars… (IBM, Unisys etc.)
• Buzzwords: Green screens, dumb terminals, legacy systems
![Page 9: Client Server Lecture](https://reader034.fdocuments.in/reader034/viewer/2022052409/546b307cb4af9fca128b4fb7/html5/thumbnails/9.jpg)
9
Evolution: Mainframe ctd.• Still in use today (Banks etc.)
• (Very Reliable) Claim: Mainframes still house 90% of the data major businesses rely on for mission-critical applications
• What happened: applied a giant chainsaw to monolithic (mainframe based) applications and separated them into Client and Server components
• “New” definition: mainframe has– Maximum reliable single-thread performance– Maximum I/O connectivity– Maximum I/O bandwidth
![Page 10: Client Server Lecture](https://reader034.fdocuments.in/reader034/viewer/2022052409/546b307cb4af9fca128b4fb7/html5/thumbnails/10.jpg)
10
Evolution: File Sharing Arch
Sharing files across a network
• PC requests file (records) from a file server• Business logic all on client, shared resources on
server• Works when shared usage, update contention, and
data volume are low• Didn’t scale well
![Page 11: Client Server Lecture](https://reader034.fdocuments.in/reader034/viewer/2022052409/546b307cb4af9fca128b4fb7/html5/thumbnails/11.jpg)
11
Evolution: 2-Tier Client/Server
• Databases replaced File Server• Term Client/Server traditionally associated with
desktop PC connected over a network to a SQL-database server
• Server’s database system (typically RDBMS) can answer a user’s query (SQL)
• Lowered network usage because sending queries and responses rather than files
![Page 12: Client Server Lecture](https://reader034.fdocuments.in/reader034/viewer/2022052409/546b307cb4af9fca128b4fb7/html5/thumbnails/12.jpg)
12
Evolution: 2-Tier Client/Server
• Typically a GUI front-end• Application or business logic either resides on the
client or on the database server in the form of stored procedures
• Some examples: PowerBuilder, Visual Basic, Delphi• More complex applications = fatter clients = more
expensive PC’s for each user
![Page 13: Client Server Lecture](https://reader034.fdocuments.in/reader034/viewer/2022052409/546b307cb4af9fca128b4fb7/html5/thumbnails/13.jpg)
13
Evolution: 2-Tier Client/Server• Tier 1: GUI + Business Logic, Tier 2: Database +
Shared Resources
• 2-Tier is simple• Small departmental decision support• Simple Web publishing applications
• C/S limitation – DB vendor lock-in (your GUI code is directly tied to DB server
• 2-Tier doesn‘t scale• E.g., With the Internet, servers can get requests
from any of the worlds millions of connected browsers
• 2-Tier difficult to manage when deployed beyond local environment Especially difficult to deploy and manage fat clients
![Page 14: Client Server Lecture](https://reader034.fdocuments.in/reader034/viewer/2022052409/546b307cb4af9fca128b4fb7/html5/thumbnails/14.jpg)
14
Evolution: 3-Tier Client/Server
• N-Tier• Tier 1: GUI, Tier 2: Business Logic, Tier 3: Data• Client Tier, Web Tier, App Server Tier, EIS (Data) Tier• Adds a middle tier between the client (UI) and the server (DBMS)• Application logic (or processes) becomes separated from the GUIand the database E.g., TP Monitors, Application Servers
![Page 15: Client Server Lecture](https://reader034.fdocuments.in/reader034/viewer/2022052409/546b307cb4af9fca128b4fb7/html5/thumbnails/15.jpg)
15
Evolution: 3-Tier Client/Server• Changes in one tier should not affect changes in the
other (ie. Overhauling the GUI should not affect the business logic in the middle tier)
• language independent ie. Client could be C++, middleware could be Java etc.
• Can pool database connections
• Partition processing over many servers (load balancing)
• Limitation of 3-tier is harder development procedures (deployment etc.)
• 3 Layer view of an organization: User Interface layer, Business Function layer, Data layer (Information Model)
![Page 16: Client Server Lecture](https://reader034.fdocuments.in/reader034/viewer/2022052409/546b307cb4af9fca128b4fb7/html5/thumbnails/16.jpg)
16
Next Evolution?
• Peer to Peer,
• Distributed Systems,
• Grid Computing
• …?
![Page 17: Client Server Lecture](https://reader034.fdocuments.in/reader034/viewer/2022052409/546b307cb4af9fca128b4fb7/html5/thumbnails/17.jpg)
17
Client Server examples• Most popular Client/Server application:
World Wide Web
![Page 18: Client Server Lecture](https://reader034.fdocuments.in/reader034/viewer/2022052409/546b307cb4af9fca128b4fb7/html5/thumbnails/18.jpg)
18
Client Server examples• Class Compass
![Page 19: Client Server Lecture](https://reader034.fdocuments.in/reader034/viewer/2022052409/546b307cb4af9fca128b4fb7/html5/thumbnails/19.jpg)
19
Client Server examples
• E-Mail, Telnet, FTP• H/R, Payroll, Accounting Systems, etc.• Viruses• Web Services
• Almost anything can be client/server
![Page 20: Client Server Lecture](https://reader034.fdocuments.in/reader034/viewer/2022052409/546b307cb4af9fca128b4fb7/html5/thumbnails/20.jpg)
Enterprise Server
COINS/COLT - OS/390
IMSMsg
Queue
OTMA
Database Server
Operating System - Solaris
Relational Database Manager -Oracle PS
Application Database
Enterprise Server
Base 24 - Tandem
MQSeriesServer
Base24
MQSeriesServer
XCF
XCF
IMSConnect
MQ-IMS
Bridge
Application Server
Operating System - Solaris
Application Server - WebLogic
MQSeriesServer
JVM
EJB Server
BankFrameTransaction
Handler
SSB
Common Connector Framework
IMS EABCommands
MQ EABCommandsRMI
TrustedInterface
Component
(Release 1Bonly)
BankFrameBusinessObjects
BMP EntityBeans
BankFrameBusinessServices
SSBs
BankFrameBusinessObjects
CMP EntityBeans
(1)RMI
(2)RMI
Web Server
Operating System -Solaris
Web Server - iPlanet
HTTPServer
ServletProxy
Client
Operating System - MSWin2000
JVM
Java Application
BankFrame UI
Comm.Mgr.
HTTP
Servlet Engine
BankFrameHTTP
ChannelManagerServlet
Acronyms
BMP Bean Managed PersistenceCMP Container Managed PersistenceEAB Enterprise Access BuilderEJB Enterprise JavaBeansHTTP Hypertext Transfer ProtocolIMS TOC IMS TCP/IP OTMA ConnectionJVM Java Virtual MachineOTMA Open Transaction Manager Access (from IMS)RMI Remote Method Invocation (from Java)SSB Stateless Session Bean (EJB)XCF Cross-system Coupling Facility (from MVS)
RMI(DataPacket)
MQConnector
IMS TOCConnector
Client Tier
Web Tier Business Logic Tier - App Server
Data Tier (Legacy EIS)
![Page 21: Client Server Lecture](https://reader034.fdocuments.in/reader034/viewer/2022052409/546b307cb4af9fca128b4fb7/html5/thumbnails/21.jpg)
21Data
IPlanetE420
4 CPU x 4 GB
IPlanetE420
4 CPU x 4 GB
WebLogic/MQ/CCFSF3800
4 CPU x 4 GB
WebLogic/MQ/CCFSF3800
4 CPU x 4 GB
WebLogic/MQ/CCFSF3800
4 CPU x 4 GB
CIBC CEnet
OPS/Sun Cluster Agent
SF48002 CPU x 4 GB
OPS/Sun Cluster Agent
SF48002 CPU x 4 GB
Sun Cluster AdminSun Blade 100
1 CPU x 512 MB
WebLogic/MQ/CCF/
OracleE450
4 CPU x 4 GB(Training machine)
WebLogic/CCFSun Blade 100
1 CPU x 512 MB
Clients
![Page 22: Client Server Lecture](https://reader034.fdocuments.in/reader034/viewer/2022052409/546b307cb4af9fca128b4fb7/html5/thumbnails/22.jpg)
Comparing 2- and 3-Tier
![Page 23: Client Server Lecture](https://reader034.fdocuments.in/reader034/viewer/2022052409/546b307cb4af9fca128b4fb7/html5/thumbnails/23.jpg)
23
Comparing 2- and 3-Tier2-Tier 3-Tier
System Admin.
Complex(more logic on the client to manage)
Less Complex(the application can be centrally managed on the server –application programs are made visible to standard system management tools)
Security Low(data-level security)
High(fine-tuned at the service, method, or object type level)
Encapsulation of data
Low(data representation exported)
High(client invokes services or methods)
Performance
Poor(many SQL statements are sent over the network; selected data must be downloaded for analysis on the client)
Good(only service requests and responses are sent between client and server)
![Page 24: Client Server Lecture](https://reader034.fdocuments.in/reader034/viewer/2022052409/546b307cb4af9fca128b4fb7/html5/thumbnails/24.jpg)
Comparing 2- and 3-Tier2-Tier 3-Tier
Scale Poor(limited management of client communication links)
Excellent(concentrates incoming sessions; can distribute loads across multiple servers)
Applicationreuse
Poor(monolothic application on client)
Excellent(can reuse services and objects)
Legacy application integration
No(limited management of client communication links)
Yes(via gateways encapsulated by services or objects)
Ease of development
High Getting better (tools are emerging that can be used to develop both the client and the server side of the application)
![Page 25: Client Server Lecture](https://reader034.fdocuments.in/reader034/viewer/2022052409/546b307cb4af9fca128b4fb7/html5/thumbnails/25.jpg)
Comparing 2- and 3-Tier2-Tier 3-Tier
Internet support
Poor(Internet bandwidth limitations make it harder to download fat clients)
Excellent(very often, only web-browser is required as client side software)
Hetero database support
No Yes(can use several databases within the same business transaction)
Architecture flexibility
Limited(you have a client and a server)
Excellent(all tiers may reside on different machines, or 2nd and 3rd tier on the same machine, or the middle-tier accross multiple servers)
![Page 26: Client Server Lecture](https://reader034.fdocuments.in/reader034/viewer/2022052409/546b307cb4af9fca128b4fb7/html5/thumbnails/26.jpg)
26
Considerations: Where Should Functionality Go?
• Fat server model places more function on server– E.g., Web
• Fat client model places more function on client– E.g., Database and file server
![Page 27: Client Server Lecture](https://reader034.fdocuments.in/reader034/viewer/2022052409/546b307cb4af9fca128b4fb7/html5/thumbnails/27.jpg)
27
Fat Servers vs. Fat Clients
• Fat client is more traditional– Bulk of application run on client– Clients know how data is organized and stored on
server– Flexibility and opportunity to create front-ends
• Servers usually have more processing power, memory, storage capacity etc.
• Fat server is easier to deploy and manage– Minimize network exchanges– Export procedures rather than raw data
![Page 28: Client Server Lecture](https://reader034.fdocuments.in/reader034/viewer/2022052409/546b307cb4af9fca128b4fb7/html5/thumbnails/28.jpg)
28
Considerations
• Security
• Bandwidth (Network Traffic)
• Synchronization / Replication
• Synchronous / Asynchronous
• Fault Tolerance, Fail Over, Load Balancing
• Connected / Occasionally Connected
• Network reliability
• Transactional Integrity (ie. Bill Pay vs. Web Page request)
![Page 29: Client Server Lecture](https://reader034.fdocuments.in/reader034/viewer/2022052409/546b307cb4af9fca128b4fb7/html5/thumbnails/29.jpg)
29
Considerations
• Developer Experience• Separation of Developer Roles
– Front End Developer, Server Side Developer, Database Developer (DBA)
– Ie. Swing Developer + EJB or Servlet Developer + Oracle DBA (Stored Procedures)
• End user or embedded • Platform (In)dependency• Proprietary Software ‘lock-in’ (Stored Procs
etc.)
![Page 30: Client Server Lecture](https://reader034.fdocuments.in/reader034/viewer/2022052409/546b307cb4af9fca128b4fb7/html5/thumbnails/30.jpg)
30
Case StudyScenario:
• Large Insurance company is developing a new Employee Information Database and they want to allow employees to update their own address and personal information, and search on other employee contact info
• Previous application was mainframe based, hard to maintain. Employees would have to fill out paper forms then submit them to HR who would key in the changes.
• Hired UGrads-R-Us to consult them on the best way to implement this new solution.
![Page 31: Client Server Lecture](https://reader034.fdocuments.in/reader034/viewer/2022052409/546b307cb4af9fca128b4fb7/html5/thumbnails/31.jpg)
31
Case StudySome Requirements Issues:• Not all employees have the same
workstation:– Windows 98, Windows 2000, Mac OS, Linux
• Not all employees are connected to the company Intranet– Some are on LAN, salesmen dial-in on the road,
some work from home (Therefore some will have slow network access)
• The User Interface changes frequently (Mergers and Acquisitions)– Small IT Services team wants minimal
maintenance
![Page 32: Client Server Lecture](https://reader034.fdocuments.in/reader034/viewer/2022052409/546b307cb4af9fca128b4fb7/html5/thumbnails/32.jpg)
32
Case StudyMore Requirements Issues:• Possible change in infrastructure next year
– DB license expires and they are investigating other alternatives
• Must support 5000+ users• Have to login securely (prevent false info)• Needs future support for Transactional
Integrity– Eventually want employees to access RRSP
and Benefits info
![Page 33: Client Server Lecture](https://reader034.fdocuments.in/reader034/viewer/2022052409/546b307cb4af9fca128b4fb7/html5/thumbnails/33.jpg)
33
Case StudyAssumptions:
• Experienced Development Team• Hardware is not an issue• Users must be ‘connected’ to use the
application
![Page 34: Client Server Lecture](https://reader034.fdocuments.in/reader034/viewer/2022052409/546b307cb4af9fca128b4fb7/html5/thumbnails/34.jpg)
34
Case StudyProblems:• Mainframe, 2-Tier, 3-Tier?• Thin client or fat client?• Synchronous or Asynchronous?
• Where should functionality reside?– Validation of input fields– Complicated business logic (ie. check if
employee record already exists)
![Page 35: Client Server Lecture](https://reader034.fdocuments.in/reader034/viewer/2022052409/546b307cb4af9fca128b4fb7/html5/thumbnails/35.jpg)
35
Case Study
• Possible Solution #1:
– Extend the mainframe– ‘Screen Scrape’ the current system and
write a new GUI that connects to it
• Pros: Save money• Cons: Doesn’t scale• Others?
![Page 36: Client Server Lecture](https://reader034.fdocuments.in/reader034/viewer/2022052409/546b307cb4af9fca128b4fb7/html5/thumbnails/36.jpg)
36
Case Study• Possible Solution #2:
– 2-Tier Client/Server– ‘Fat’ Client (ie. VB Windows Application) – Socket connections to reliable Database
server– Stored procedures in DB for complex
business logic
• Pros: Rich user interface, better scalability
• Cons: Difficult distribution/installation, Vendor Lock-In, UI tied to DB
• Others?
![Page 37: Client Server Lecture](https://reader034.fdocuments.in/reader034/viewer/2022052409/546b307cb4af9fca128b4fb7/html5/thumbnails/37.jpg)
37
Case Study
• Possible Solution #3
– 3-Tier Client/Server System (n-tier)– Thin Client (ie. Browser Based, HTTP)– Web Server– RPC Middleware (EJB, CORBA, DCOM)– Connection Pooling to Database
• Pros: Platform independent, scalable, independent tiers
• Cons: Tricky to implement, Expensive
• Others?
![Page 38: Client Server Lecture](https://reader034.fdocuments.in/reader034/viewer/2022052409/546b307cb4af9fca128b4fb7/html5/thumbnails/38.jpg)
38
SummaryBasics:• Client requesting services from a Server that has
access to shared resources• Thin client (little or no footprint) vs. Thick client
(installed code base)
3-Tier vs. 2-Tier:• 3-Tier most popular architecture: scalable, flexible,
clear separation of application areas, network efficient; expensive, difficult to implement
• 2-Tier more traditional: convenient for small user base, easy to implement; not very scalable, db vendor lock-in, not very flexible
![Page 39: Client Server Lecture](https://reader034.fdocuments.in/reader034/viewer/2022052409/546b307cb4af9fca128b4fb7/html5/thumbnails/39.jpg)
39
Summary
Considerations/Concerns:• Asynchronous/Synchronous, Fat/Thin client,
Connected/Occasionally Connected, Platform Independence, Transactional Integrity, (Load Balancing, Failover)
Resources:• Application Servers (RPC, ORB), Message
Oriented Middleware (Queues), TP Monitors…