You are on page 1of 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 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 Database Server

Technical Architecture

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
Business Logic Application Server(s)

Technical Architecture

GUI

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 Any Network Server

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

HTTP

Web Server

Application Server

Data base

Cookies

HTML Pages

Applet 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
Dynamic HTML

Web Server

Application Server

Data base

DHTML Pages

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

Web Server

Data base

FaceBook Software

Application resides on client machine Data resides on client machine Data synchronized over HTTP

Data base

Client

Server

FaceBook Implementation: Microsoft Remote Data Services


Internet Explorer
R
O

O D B C MS Access

HTTP
D S COM
ActiveX Docs

IIS 4.0

L E D B

Visual Basic

ActiveX Documents Remote Data Services (RDS) OLE DB Only in Internet Explorer 4.0
Client Server

MS Access

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 Data base

HTML ASP

Plain HTML on client site Active Server Pages: VBScript Application in Visual Basic
Client Server

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> 2

COM Object "ABC"

Public Function GetData(parm As Int) As String Dim Rs As ADODB.RecordSet ... Rs = Conn.Execute("SELECT * FROM....") 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