Are Your Clients Overweight? Software Architectures For The Internet Age
Are Your Clients Overweight? Software Architectures For The Internet Age
Are Your Clients Overweight? Software Architectures For The Internet Age
Overview
What is Software Architecture? Evolution of System Architectures Architectural Decisions Case Studies / Demo Skills Summary
Software Architecture
Application Architecture Functional Modules Common Services Frameworks Object Design GUI Design
Technical Architecture
GUI
PowerBuilder Visual Basic Visual C++ Access Paradox Oracle Sybase Informix MS SQLServer Ethernet Token Ring TCP/IP
Technical Architecture
GUI
Database Server(s)
Security?
Web Browser
Web Server
Application Server
Data base
HTML Pages
Technical Architecture
Any Computer Any Network Server
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?
HTTP
Web Server
Application Server
Data base
Cookies
HTML Pages
Applet Repos.
Dynamic HTML!
Web Browser
HTTP
Dynamic HTML
Web Server
Application Server
Data base
DHTML Pages
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
Web Server
Data base
FaceBook Software
Application resides on client machine Data resides on client machine Data synchronized over HTTP
Data base
Client
Server
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
Web Server
TrainNav Software
Data base
HTML Pages
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
5 3 <% obj = CreateObject("ABC") data = obj.GetData(parm) %> <body> My ASP Page ... <% =data %> .... </body> 2
Public Function GetData(parm As Int) As String Dim Rs As ADODB.RecordSet ... Rs = Conn.Execute("SELECT * FROM....") GetData = "<table> ...</table>"
Skill Sets
Skill Sets
Choice of tools does not necessarily limit your architectural options Biggest challenge: staying up to date
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