are your clients overweight? fito - october 16, 1998 gregor hohpe software architectures for the...

31
Are Your Clients Overweight? FITO - October 16, 1998 Gregor Hohpe Software Architectures for the Internet Age

Upload: melissa-baker

Post on 22-Dec-2015

213 views

Category:

Documents


0 download

TRANSCRIPT

Are Your Clients Overweight?

FITO - October 16, 1998

Gregor Hohpe

Software Architectures for the Internet Age

OverviewWhat is Software Architecture?Evolution of System ArchitecturesArchitectural DecisionsCase Studies / DemoSkillsSummary

What is Software Architecture?

Technical Architecture

Technical Architecture

Software Architecture

Software Architecture

ApplicationArchitecture

ApplicationArchitecture

•Hardware•Vendors•Sizing•Networks

•Functional Modules•Common Services•Frameworks•Object Design•GUI Design

• Distribution of system components across platforms and physical machines

• Middleware / connectivity software• Languages and tools

Evolution of Software Architectures

2-Tier Client-Server Architecture

Physical ArchitecturePhysical Architecture

GUI

DatabaseServer

WindowsClient

PowerBuilderVisual BasicVisual C++

AccessParadox

OracleSybaseInformix

MS SQLServer

Technical ArchitectureTechnical Architecture

EthernetToken Ring

TCP/IP

2-Tier Client-Server Pros / ConsInternal ApplicationsSmall to Medium User BaseControlled Hi-Bandwidth Network EnvironmentHomogenous Hardware (hopefully)

Heavy load on databaseLimited option for scalingCostly software distributionPoor separation of software components“Fat Client”

3-Tier Client-Server Architecture

Physical ArchitecturePhysical Architecture

GUI

Technical ArchitectureTechnical Architecture

BusinessLogic

Database Server(s)

Application Server(s)

3-Tier Client-Server Pros / ConsMedium to Large User BaseControlled Hi-Bandwidth Network EnvironmentBetter separation of presentation and business

logicMore options for scaling

Costly software distributionPoor cross-platform support“Fat Client”

The Internet Age!

Millions of Users

All sorts of machines

Slow and unreliable connections

Security?

Physical ArchitecturePhysical Architecture

Move Applications to the Server!

Web Server

Application

ServerDatabase

HTMLPages

HTMLPages

Web Browser

HTTP

Technical ArchitectureTechnical Architecture

Any ComputerAny Network

Server

Thin Client Architecture No software distribution requiredCross-platform compatibility through

standard protocols (HTTP, HTML)

Connect to server for every little action(e.g. input validation)

No immediate feedback on actionsLimited user interface design optionsHTTP is connectionless protocolBack to dumb terminals?

Move Some Stuff Back to the Client

Web Server

Application

ServerDatabase

HTMLPages

HTMLPages

HTTP

Web Browser

JavaApplet

AppletRepos.

AppletRepos.

Java / VB Script

Cookies

No-So-Thin Client Architecture Automatic software distributionNicer GUIs, immediate response Java Virtual Machine on all platforms

Browser BrowserPerformance?Download whole applet over modem?

Dynamic HTML!

Web Server

Application

ServerDatabase

DHTMLPages

DHTMLPages

HTTP

Web Browser

DynamicHTML

The Saga Continues... XML: Data DescriptionPush Technologies / Channels...

Architectural Decisions

Large user base Uncontrolled

environment Simple applications (Semi-)Static GUIs Network connection

required

Medium user base More controlled

environment More complex

applications Active GUIs Runs without connection

Thin Client Fat Client

Case Studies:FaceBook

Training Navigator

Case Study:The FaceBook

Internal applicationDatabase of all San Francisco practitionersHas to be updated automatically: new hires,

schedule dataHas to be available off-line (travel)Connect to server through HTTP & TCP/IP, no

drive mappingExisting stand-alone Visual Basic application,

uses tabs and other advanced controls

FaceBook Architecture:Fat Client

Web Server

Database

HTTP

Web Browser

FaceBook Software

Database ServerClient

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

FaceBook Implementation:Microsoft Remote Data Services

IIS 4.0

O

LED

B

MSAccess

HTTP

Internet Explorer

Visual Basic

R

D

S

MSAccess

O

D

B

C

ServerClient

ActiveX Docs

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

COM

Case Study:The Training Navigator

Internal application -- HR Self-ServiceAllows practitioners to browse for and

schedule their own training classesCentral database with course offeringsPeriodically usedCourse selections fed to training

coordinators‘Shopping cart’ model -- choose and

confirm

Training Navigator Architecture:Thin Client

Web Server

Database

HTTP

Web Browser

ServerClient

• Application resides on server machine• Updates directly to central database

HTMLPages

HTMLPages

TrainNav Software

Training Navigator Implementation:Active Server Pages

IIS 4.0HTTP

Any Web Browser

HTMLASP

HTMLASP

Visual Basic

COM Server

Database

A

D

O

ServerClient

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

Active Server Pages:Technology Overview

M y A S P P age

<%obj = C reateO bjec t("A B C ")data = ob j.G etD ata(parm )% ><body>M y A S P P age...<% =data % >....< /body>

P ublic Function G etD ata(parm A s In t) A s S tringD im R s A s A D O D B .R ecordS et...R s = C onn.E xecute("S E LE C T * FR O M ....")

G etD ata = "< tab le> ...< /tab le>"

C O M O bject "A B C "

<body>M y A S P P age...< tab le> ...< /tab le>....< /body>

2

4

5

6

1

3

In te rne tIn fo rm ationS erver

S erver F ile S ystem

Active Server Pages:Architectural Considerations

Easy, can leverage Visual Basic skillsBuilt-in data accessProduces 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 SetsChoice of tools does not necessarily limit

your architectural optionsBiggest challenge: staying up to date

Ride the Muni / BART, read magazines!Microsoft Interactive Developer Internet WorldSoftware Development

SummarySoftware architecture is an interesting and

often times overlooked areaArchitectural choices are critical to project

successDiverse skill set is requiredInterface with clients and technologistsBecome a software architect!

Questions / Discussion