Download presentation
2
Smart Client Architecture Principles
Brenton Webster Solutions Architect D&PE Architecture Strategy Team Microsoft, Redmond, USA
3
Agenda What is a Smart Client?
4/28/2017 1:56 PM Agenda What is a Smart Client? Thin Client and Smart Client Architecture Smart Client Architectural Issues Summary © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
4
Agenda What is a Smart Client?
4/28/2017 1:56 PM Agenda What is a Smart Client? Thin Client and Smart Client Architecture Smart Client Architectural Issues Summary © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
5
Industry Momentum is Building for a New Client
“Web-based solutions just can’t provide the rich users interface and performance which users like our traders need.” “The problems with browser-based approaches … have become all too well-known” “The current enthusiasm for a browser-based enterprise is shortsighted. As firms trade in their desktop clients for browsers they’ll find: primitive functionality… bandwidth gluttony… terrible usability.” “…It sounds a bit like heresy, but the web-based portal does not really make a very effective interface to functionality that resides in many systems" “As proof of their disillusionment, a staggering one-third of IT decision makers report having plans for migrating some applications back to richer client environments.” “The Client is Back” Jonathan Schwartz, Sun’s president and COO Opening remarks at JavaOne 2004 IBM Puts New Spin On Client Computing (May 2004)
6
Smart Clients The Best Of Both Worlds
4/28/2017 1:56 PM Smart Clients The Best Of Both Worlds Smart Clients Rich Clients Thin Clients Smart Data Management Rich User Experience Network Dependency Tough To Deploy Easy To Update Offline Capable Tough To Update Easy To Deploy Limited User Experience High Developer Productivity Easy To Manage Fragile “DLL Hell” Responsive & Flexible Rich UI Complex to Develop Smart Connection Management © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
7
Smart Client Tenets Utilizes Local Resources Connected – Web Services
4/28/2017 1:56 PM Smart Client Tenets Utilizes Local Resources Connected – Web Services Support On- & Offline Scenarios Intelligent Deployment & Update Device Flexibility © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
8
Microsoft Smart Client Platforms
Windows Forms Office System 2003 Windows Mobile Current Generation Version 1.1 XML Version 1.1 Next Generation Version 2.0 “Whidbey” Version 2.0
9
Smart Client Examples Microsoft Thomson Dell
Alchemy Project “Elixir” Thomson ThomsonONE Dell Dell Integrated Desktop Commonwealth Bank of Australia
10
Alchemy Marketing MS Sales Siebel Clarify CRM 4/28/2017 1:56 PM
© 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
11
Customer Explorer Architecture
Microsoft Outlook Alchemy Web Services Customer Explorer AddIn Siebel Read Siebel Write Other Web Services Elixir Outlook Managed SDK Outlook Object Model Siebel AppServer Other Middleware Siebel OLTP
12
Thomson Financial
13
Dell Dell Integrated Desktop Improved call centre user experience
Improved end customer experience Time per call: reduced 10% Training time: reduced 45% Significantly increased margins per sale Better information available to call center rep Anticipated 9x ROI Case study
14
Commonwealth Bank of Australia
“Which new Bank” initiative Excel in customer service Empower and equip customer-facing staff Simplify processes CommSee: Bank-wide service solution CommSee application Infrastructure for new applications Integrate existing apps Consume backend services built across the bank Tomorrow 12:20-13:50 Southport “Case Study: Commonwealth Bank of Australia”
15
Agenda Thin Client and Smart Client Architecture
4/28/2017 1:56 PM Agenda What is a Smart Client? Thin Client and Smart Client Architecture Smart Client Architectural Issues Summary © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
16
Thin Client Architecture
4/28/2017 1:56 PM Thin Client Architecture Client Web Server ‘Deployment’ Browser Page Data UI Logic UI Page Business Logic © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
17
Smart Client Architecture
4/28/2017 1:56 PM Smart Client Architecture 3 Client Web Server Deployment 4 Smart Client Smart Client Business Logic User Interface 5 Web Service 2 Business Logic 1 © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
18
Agenda Smart Client Architectural Issues What is a Smart Client?
4/28/2017 1:56 PM Agenda What is a Smart Client? Thin Client and Smart Client Architecture Smart Client Architectural Issues Handling Data Going Offline Deployment Security Using Multiple Threads Summary © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
19
Types of Data Read-only Reference Data Transient data
Static reference or lookup data Used for Data validation Formulate service request Versioned, time-stamped Eg: pick lists, country codes, price lists Transient data Editable data Need to keep track of changes Consider concurrency and volatility Eg: customer details, orders etc…
20
Transient data Predicted validity Offline: Yes
Low Volatility Low Concurrency High Volatility High Concurrency Predicted validity P(Valid) = 1.0 P(Valid) = 0.0 My Calendar Your Calendar Inventory Stock Quotes Offline: Yes No body else will ever edit it Typically “single user” or “private” Offline: No Chance of data being valid is low Typically “multi user” or “public”
21
Handling Data Caching Design for concurrency Security Going Offline
For performance and/or offline Long term / Short term Data expiration & constraints Design for concurrency Pessimistic Optimistic Security Only provide data to which the user is authorized Protected sensitive data Use encryption and/or ACL’s Consider multi-user scenarios Going Offline Decide what data and logic is required Synchronizing changes
22
Agenda Smart Client Architectural Issues What is a Smart Client?
4/28/2017 1:56 PM Agenda What is a Smart Client? Thin Client and Smart Client Architecture Smart Client Architectural Issues Handling Data Going Offline Deployment Security Using Multiple Threads Summary © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
23
Connected & Disconnected
4/28/2017 1:56 PM Connected & Disconnected ‘Connectedness’ Always – Network connection essential Mostly – Infrequently disconnected Sometimes – Disconnected for significant amount of time Intermittent – Connectivity nice to have and/or expensive Offline – Explicitly offline © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
24
RDBMS-Based Merge Replication
4/28/2017 1:56 PM Data Centric Approach RDBMS-Based Merge Replication Advantages Data changes direct Infrastructure provided Disadvantages Heavy-weight client-side Infrastructure Tight coupling between client and server © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
25
Message Centric Approach
4/28/2017 1:56 PM Message Centric Approach Message-Based Data Synchronization Advantages Loose coupling between client and server Light-weight client infrastructure Disadvantages Data changes indirect Need to provide conflict resolution code © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
26
Offline Application Block
4/28/2017 1:56 PM Offline Application Block Offline block provides Pluggable & extensible set of components Enables message oriented smart client applications to operate offline Storage & execution of deferred service requests Pluggable online/offline detection component © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
27
Agenda Smart Client Architectural Issues What is a Smart Client?
4/28/2017 1:56 PM Agenda What is a Smart Client? Thin Client and Smart Client Architecture Smart Client Architectural Issues Handling Data Going Offline Deployment Security Using Multiple Threads Summary © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
28
Smart Client Deployment
4/28/2017 1:56 PM Smart Client Deployment Deploy the .NET framework Pre-install Enterprise Deployment Tools – SMS Group policy Require users install it (Windows Update, file share etc..) Install with application Bake into MSI Built into Windows 2003 Server, Longhorn and beyond © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
29
Smart Client Deployment (2)
Application deployment No-Touch Deployment Hybrid: No-Touch Deployment with application update stub XCOPY Run from file share MSI Visual Studio 2005 “Whidbey” – ClickOnce
30
No-Touch Deployment Deployment Server Client Application Download
4/28/2017 1:56 PM No-Touch Deployment 1 Application URL Deployment Server App Client Config 3 Application Download Cache 2 Assembly Config Assembly App Config .NET Framework Assembly © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
31
NTD Limitations Config files not downloaded by default
Restricted default security settings Write to disk Use unmanaged code Deploy things requiring registration Access resources no on originating server Un-reliable offline functionality Lazy downloading IE cache Dependant on IE “Offline” setting No transacted installation
32
NTD + Update stub Deployment Server Client Application Application
4/28/2017 1:56 PM NTD + Update stub 3 Updater Downloader Validator Post-Proc Deployment Server Stub 2 4 Manifest Client 6 App Application Config Assembly Application Folder App Assembly Config 5 Config Assembly .NET Framework 1 Policy Changes © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
33
Requires policy changes
Decisions, Decisions… NTD NTD + stub File share Xcopy MSI Reliable Offline Y Full trust functionality Requires policy changes Non-power user install Depends Low system impact Windows shell integration Unrestricted installation Transacted installation Modify client security policy Y – for elevated perms Y – app stub
34
Recommendations No touch deployment is problematic
Not suitable for most Smart Clients Use NTD Hybrid or Windows Installer Different in initial invoke mechanism Goto URL Goto URL, click “Open” Favor Windows Installer Visual Studio 2005 Click Once Windows Installer
35
Updating Somewhat orthogonal to deployment No-touch deployment
Update web server Automatic Updates Build features into app Updates from a file share Update file share Xcopy updates Copy over files Windows Installer Patch package (*.msp) Update existing MSI Create new MSI
36
Application Updater Block
4/28/2017 1:56 PM Updater Downloader 1 Validator Deployment Server 2 Post-Proc Manifest Client App 4 Application Application Folder Config Assembly 3 Config App Assembly Config .NET Framework Assembly © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
37
Decisions, Decisions… NTD Application Updater File share Xcopy
Windows Installer Non-power user update Y Depends Centralized management Updates d/l when app run Federate update infrastructure Per user/group updates Transacted updates Built in support for version control
38
Recommendations Build update infrastructure into your app
Suits most scenarios You have to build stuff Application Updater Block available Leverage Windows Installer Good for enterprise scenarios
39
Agenda Smart Client Architectural Issues What is a Smart Client?
4/28/2017 1:56 PM Agenda What is a Smart Client? Thin Client and Smart Client Architecture Smart Client Architectural Issues Handling Data Going Offline Deployment Security Using Multiple Threads Summary © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
40
Security Considerations
The service is the trust boundary The client can not be trusted Defense in depth Authentication Authorization Data Validation Protecting sensitive data Auditing and Logging Exception Management Change Management
41
Sensitive Data Avoid caching sensitive data where possible
If you have to cache it, protect it Ensure only authorised users can access EFS DPAPI Store hashed values, not plain text Isolated storage for partially trusted applications Protect private keys Validate all requests at the server
42
Code Access Security Partial Trust is great in theory…
Most Smart Client apps will want to Access servers other than the originating host Access local file system Interact with local applications eg Office Access unmanaged code eg COM objects Most Smart Client apps will require full trust Full trust != free for all Still subject to underlying OS security
43
Agenda Smart Client Architectural Issues What is a Smart Client?
4/28/2017 1:56 PM Agenda What is a Smart Client? Thin Client and Smart Client Architecture Smart Client Architectural Issues Handling Data Going Offline Deployment Security Using Multiple Threads Summary © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
44
Using Multiple Threads
4/28/2017 1:56 PM Using Multiple Threads Use Background Thread For Interacting with services over a network Lengthy local processing - IO bound App startup & initialization Using Threads Thread Object Delegates, Web Service Proxy Thread Pool UI Thread All UI interactions MUST occur on UI thread VS 2005: BackgroundWorker © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
45
Service Agents and Tasks
4/28/2017 1:56 PM Service Agents and Tasks Client Web Server Service Agent Web Service Main Form Task Object Worker Thread Control.Invoke UI Thread © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
46
Agenda Summary What is a Smart Client?
4/28/2017 1:56 PM Agenda What is a Smart Client? Thin Client and Smart Client Architecture Smart Client Architectural Issues Summary Resources Q&A © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
47
Summary Smart Clients Handling Data Utilises local resources
Consumes Web Services Supports on/offline scenarios Intelligent deployment and update Device flexibility Handling Data Minimum data and make sure it’s secure Design for concurrency Cache reference data appropriately Keep track of tentative changes to writable data
48
Summary (2) Going Offline Deployment and update
Decide what functionality you need when offline Synchronization Keep dependencies between service requests to a minimum Be prepared for concurrency errors Deployment and update Today’s NTD has problems MSI + Auto Update great for most scenarios VS 2005: ClickOnce
49
Summary (3) Security Using Multiple Threads
4/28/2017 1:56 PM Summary (3) Security You can not trust the client Authentication Authorisation Protect sensitive data Code Access Security Partial trust great in theory Many applications will require full trust Using Multiple Threads Only UI thread to service UI Hide nasty-ness: Task pattern or BackgroundWorker © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
50
Smart Client Resources
4/28/2017 1:56 PM Smart Client Resources Learn about the .NET Framework Sample code, forums, articles, etc. Check out the Windows Forms Quick Start in the SDK Visual Studio Tools for Office, etc. dotnet.framework.windowsforms office.developer.* MSDN Architecture Center © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
51
patterns & practices Resources
4/28/2017 1:56 PM patterns & practices Resources Smart Client Architecture Guide Application Blocks Offline Application Block Application Updater Block V2 coming soon… Enterprise Library (inc Caching) © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
52
Q&A Please fill in your evals! 4/28/2017 1:56 PM
© 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
53
4/28/2017 1:56 PM © 2005 Microsoft Corporation. All rights reserved.
This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY. © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.