are your clients overweight? fito - october 16, 1998 gregor hohpe software architectures for the...
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
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”
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
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 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 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!