Вы находитесь на странице: 1из 31

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 Software Application


Architecture Architecture Architecture

•Hardware •Functional Modules


•Vendors •Common Services
•Sizing •Frameworks
•Networks •Object Design
•GUI Design
Evolution of Software Architectures
2-Tier Client-Server Architecture
Physical Architecture Technical Architecture
Windows Database
Client Server
GUI


PowerBuilder
Visual Basic Oracle
Visual C++ Sybase
Ethernet
Access Informix
Token Ring
Paradox MS SQLServer
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 Technical Architecture

Business
GUI
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 Millions of Users


connections

Security? All sorts of machines


Move Applications to the Server!
Physical Architecture
HTTP
Web Web Application
Data
Browser Server Server 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 HTTP
Web Application
Applet Data
Server Server base
Java / VB
Script

HTML Applet
Cookies Pages Repos.
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
Web Application
Dynamic Data
HTML Server Server base

DHTML
Pages
The Saga Continues...
XML: Data Description
Push Technologies / Channels
...
Architectural Decisions
Thin Client Fat Client
 Large user base  Medium user base
 Uncontrolled environment  More controlled environment
 Simple applications  More complex applications
 (Semi-)Static GUIs  Active GUIs
 Network connection  Runs without connection
required
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
Web
Data
Server base

•Application resides on client machine


FaceBook •Data resides on client machine
Software
•Data synchronized over HTTP

Data
base Client Server
FaceBook Implementation:
Microsoft Remote Data Services
Internet Explorer
O O
R HTTP L
D
D IIS 4.0 E
B MS
S D Access
B C

COM
ActiveX Docs

•ActiveX Documents
Visual •Remote Data Services (RDS)
Basic
•OLE DB
•Only in Internet Explorer 4.0

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 TrainNav Data
Server Software base

HTML
Pages

• Application resides on server machine


• Updates directly to central database

Client Server
Training Navigator Implementation:
Active Server Pages
Any Web Browser
Visual
HTTP A
Basic
IIS 4.0 D Data
COM O base
Server

HTML
ASP

• Plain HTML on client site


• Active Server Pages: VBScript
• Application in Visual Basic
Client Server
Active Server Pages:
Technology Overview
Internet
<body> Information
My ASP Page
My ASP Page ... Server
<table>...</table>
6 ....
</body>

5
3
COM Object "ABC"
<% 2 Public Function GetData(parm As Int) As String
obj = CreateObject("ABC") Dim Rs As ADODB.RecordSet
data = obj.GetData(parm) ...
%> Rs = Conn.Execute("SELECT * FROM....")
<body>
My ASP Page 4 GetData = "<table> ...</table>"
...
<% =data %>
....
</body>

1
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 server-
based 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

Вам также может понравиться