ThinClients by liaoxiuli

VIEWS: 10 PAGES: 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           Software            Application
Architecture        Architecture         Architecture

•Hardware                               •Functional Modules
•Vendors                                •Common Services
•Sizing                                 •Frameworks
•Networks                               •Object Design
                                        •GUI Design
Evolution of Software Architectures
      2-Tier Client-Server Architecture
   Physical Architecture               Technical Architecture
        Windows     Database
           Client   Server
GUI

                               …
PowerBuilder
Visual Basic               Oracle
 Visual C++                Sybase
                                                 Ethernet
   Access                 Informix
                                                Token Ring
  Paradox               MS SQLServer
                                                  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   Technical Architecture


          Business
GUI
           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           Millions of Users
   connections




    Security?               All sorts of machines
   Move Applications to the Server!
               Physical Architecture
                 HTTP
      Web                Web           Application
                                                          Data
     Browser            Server           Server           base



                         HTML
                         Pages




               Technical 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       HTTP
                        Web           Application
  Applet                                            Data
                       Server           Server      base
 Java / VB
   Script

                     HTML    Applet
  Cookies            Pages   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
                      Web     Application
  Dynamic                                   Data
   HTML              Server     Server      base



                     DHTML
                     Pages
    The Saga Continues...
XML: Data Description
Push Technologies / Channels
...
      Architectural Decisions
   Thin Client                  Fat Client
 Large user base             Medium user base
 Uncontrolled environment    More controlled environment
 Simple applications         More complex applications
 (Semi-)Static GUIs          Active GUIs
 Network connection          Runs without connection
  required
  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
                                                       Data
                                Server                 base




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


    Data
    base      Client   Server
    FaceBook Implementation:
    Microsoft Remote Data Services
Internet Explorer                                   O    O
                    R
                                 HTTP               L    D
                    D                     IIS 4.0   E           MS
                                                    D    B     Access
                    S
                                                    B
                                                         C
                    COM
    ActiveX Docs


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

      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      TrainNav           Data
                             Server    Software           base



                             HTML
                             Pages


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


          Client    Server
   Training Navigator Implementation:
   Active Server Pages
Any Web Browser
                                          Visual    A
                     HTTP
                                          Basic
                               IIS 4.0              D   Data
                                         COM            base
                                         Server     O


                               HTML
                               ASP


                      • Plain HTML on client site
                      • Active Server Pages: VBScript
                      • Application in Visual Basic
            Client    Server
Active Server Pages:
Technology Overview
                                               Internet
                   <body>                      Information
                   My ASP Page
 My ASP Page       ...                         Server
                   <table>...</table>
               6   ....
                   </body>




                                   5
                                                                3
                                                                      COM Object "ABC"
                   <%                            2        Public Function GetData(parm As Int) As String
                   obj = CreateObject("ABC")              Dim Rs As ADODB.RecordSet
                   data = obj.GetData(parm)               ...
                   %>                                     Rs = Conn.Execute("SELECT * FROM....")
                   <body>
                   My ASP Page                   4        GetData = "<table> ...</table>"
                   ...
                   <% =data %>
                   ....
                   </body>




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

								
To top