Client-Server Architectures

Download Report

Transcript Client-Server Architectures

Are Your Clients Overweight?
Software Architectures for
the Internet Age
FITO - October 16, 1998
Gregor Hohpe
Overview
What is Software Architecture?
Evolution of System Architectures
Architectural Decisions
Case Studies / Demo
Skills
Summary
What is Software Architecture?
• Distribution of system components across
platforms and physical machines
• Middleware / connectivity software
• Languages and tools
Technical
Architecture
•Hardware
•Vendors
•Sizing
•Networks
Software
Architecture
Application
Architecture
•Functional Modules
•Common Services
•Frameworks
•Object Design
•GUI Design
Evolution of Software Architectures
2-Tier Client-Server Architecture
Physical Architecture
Windows
Client
Technical Architecture
Database
Server
GUI
…
PowerBuilder
Visual Basic
Visual C++
Access
Paradox
Oracle
Sybase
Informix
MS SQLServer
Ethernet
Token Ring
TCP/IP
2-Tier Client-Server Pros / Cons
Internal Applications
Small to Medium User Base
Controlled Hi-Bandwidth Network Environment
Homogenous Hardware (hopefully)
 Heavy load on database
 Limited option for scaling
 Costly software distribution
 Poor separation of software components
 “Fat Client”
3-Tier Client-Server Architecture
Physical Architecture
GUI
Technical Architecture
Business
Logic
Application Server(s)
Database Server(s)
3-Tier Client-Server Pros / Cons
Medium to Large User Base
Controlled Hi-Bandwidth Network Environment
Better separation of presentation and business
logic
More options for scaling
 Costly software distribution
 Poor cross-platform support
 “Fat Client”
The Internet Age!
Slow and unreliable
connections
Millions of Users
Security?
All sorts of machines
Move Applications to the Server!
Physical Architecture
HTTP
Web
Browser
Web
Server
Application
Server
Data
base
HTML
Pages
Technical Architecture
Any Computer
Server
Any Network
Thin Client Architecture
 No software distribution required
 Cross-platform compatibility through standard
protocols (HTTP, HTML)
 Connect to server for every little action
(e.g. input validation)
 No immediate feedback on actions
 Limited user interface design options
 HTTP is connectionless protocol
 Back to dumb terminals?
Move Some Stuff Back to the
Client
Web Browser
Java
Applet
Java / VB
Script
Cookies
HTTP
Web
Server
HTML
Pages
Applet
Repos.
Application
Server
Data
base
No-So-Thin Client Architecture
 Automatic software distribution
 Nicer GUIs, immediate response
 Java Virtual Machine on all platforms
 Browser  Browser
 Performance?
 Download whole applet over modem?
Dynamic HTML!
Web Browser
HTTP
Dynamic
HTML
Web
Server
DHTML
Pages
Application
Server
Data
base
The Saga Continues...
XML: Data Description
Push Technologies / Channels
...
Architectural Decisions
Thin Client
 Large user base
 Uncontrolled environment
 Simple applications
 (Semi-)Static GUIs
 Network connection
required
Fat Client
 Medium user base
 More controlled environment
 More complex applications
 Active GUIs
 Runs without connection
Case Studies:
FaceBook
Training Navigator
Case Study:
The FaceBook
Internal application
Database of all San Francisco practitioners
Has to be updated automatically: new hires,
schedule data
Has to be available off-line (travel)
Connect to server through HTTP & TCP/IP, no
drive mapping
Existing stand-alone Visual Basic application,
uses tabs and other advanced controls
FaceBook Architecture:
Fat Client
Web Browser
HTTP
Data
base
•Application resides on client machine
•Data resides on client machine
•Data synchronized over HTTP
FaceBook
Software
Data
base
Web
Server
Client
Server
FaceBook Implementation:
Microsoft Remote Data Services
Internet Explorer
HTTP
R
D
S
IIS 4.0
O
L
E
D
B
O
D
B
C
MS
Access
COM
ActiveX Docs
•ActiveX Documents
•Remote Data Services (RDS)
•OLE DB
•Only in Internet Explorer 4.0
Visual
Basic
MS
Access
Client
Server
Case Study:
The Training Navigator
Internal application -- HR Self-Service
Allows practitioners to browse for and schedule
their own training classes
Central database with course offerings
Periodically used
Course selections fed to training coordinators
‘Shopping cart’ model -- choose and confirm
Training Navigator Architecture:
Thin Client
Web Browser
HTTP
Web
Server
TrainNav
Software
Data
base
HTML
Pages
• Application resides on server machine
• Updates directly to central database
Client
Server
Training Navigator Implementation:
Active Server Pages
Any Web Browser
HTTP
IIS 4.0
Visual
Basic
COM
Server
A
D
O
HTML
ASP
• Plain HTML on client site
• Active Server Pages: VBScript
• Application in Visual Basic
Client
Server
Data
base
Active Server Pages:
Technology Overview
My ASP Page
6
<body>
My ASP Page
...
<table>...</table>
....
</body>
Internet
Information
Server
5
3
<%
obj = CreateObject("ABC")
data = obj.GetData(parm)
%>
<body>
My ASP Page
...
<% =data %>
....
</body>
1
COM Object "ABC"
2
Public Function GetData(parm As Int) As String
Dim Rs As ADODB.RecordSet
...
Rs = Conn.Execute("SELECT * FROM....")
4
GetData = "<table> ...</table>"
Server File System
Active Server Pages:
Architectural Considerations
 Easy, can leverage Visual Basic skills
 Built-in data access
 Produces plain HTML
 Microsoft only - but not a problem for serverbased applications
 Scripting language - limited type checking and
debugging
 A lot of HTML foot work
Implement business login in COM server
Skill Sets
Skill Sets
Choice of tools does not necessarily limit your
architectural options
Biggest challenge: staying up to date
Ride the Muni / BART, read magazines!
 Microsoft Interactive Developer
 Internet World
 Software Development
Summary
Software architecture is an interesting and often
times overlooked area
Architectural choices are critical to project
success
Diverse skill set is required
Interface with clients and technologists
Become a software architect!
Questions / Discussion