Você está na página 1de 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
Technical
Architecture
Architecture
Hardware
Vendors
Sizing
Networks

Software
Software
Architecture
Architecture

Application
Application
Architecture
Architecture
Functional Modules
Common Services
Frameworks
Object Design
GUI Design

Evolution of Software Architectures

2-Tier Client-Server Architecture


Physical
PhysicalArchitecture
Architecture
Windows
Client

Technical
TechnicalArchitecture
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
PhysicalArchitecture
Architecture
GUI

Technical
TechnicalArchitecture
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
PhysicalArchitecture
Architecture
Web
Browser

HTTP

Web
Server

Application
Server

Data
base

HTML
HTML
Pages
Pages

Technical
TechnicalArchitecture
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
HTML
Pages
Pages

Applet
Applet
Repos.
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
DHTML
Pages
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

IIS 4.0

D
S
COM

L
E
D

MS
Access

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
HTML
Pages
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
HTML
ASP
ASP

Plain HTML on client site


Active Server Pages: VBScript
Application in Visual Basic
Client

Server

Data
base

Active Server Pages:


Technology Overview
M y ASP Page
6

<body>
M y ASP Page
...
< t a b le > . .. < / ta b le >
....
< /b o d y >

In te rn e t
I n f o r m a t io n
S e rv e r

5
3
<%
o b j = C r e a te O b je c t ( " A B C " )
d a ta = o b j.G e tD a t a ( p a r m )
% >
<body>
M y ASP Page
...
< % = d a ta % >
....
< /b o d y >

C O M O b je c t " A B C "

P u b lic F u n c t io n G e t D a t a ( p a r m A s I n t ) A s S t r in g
D im R s A s A D O D B .R e c o r d S e t
...
R s = C o n n .E x e c u te ("S E L E C T * F R O M ....")

G e t D a ta = " < t a b le > ... < / t a b le > "

S e r v e r F ile S y s t e m

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

Você também pode gostar