Presentation is loading. Please wait.

Presentation is loading. Please wait.

ARC312 Smart Client Architecture Chris J.T. Auld Managing Director- Kognition Microsoft Regional Director & MVP

Similar presentations


Presentation on theme: "ARC312 Smart Client Architecture Chris J.T. Auld Managing Director- Kognition Microsoft Regional Director & MVP"— Presentation transcript:

1

2 ARC312 Smart Client Architecture Chris J.T. Auld Managing Director- Kognition Microsoft Regional Director & MVP chris@kognition.co.nz

3 Agenda Why smart clients? What is a smart client? How do you decide between browser-based and smart client UI? Changes in n-tier architecture for smart clients Drill down on client tier architecture Data transport Data containers (datasets vs. business objects)

4 A Spiraling Evolution of Architectures Centralized Mainframe Decentralized Client-Server Centralized Web Server Distributed Smart Client Advent of networked PC – Intelligent interfaces improve productivity “Dumb” terminals allow minimal support for user activities Intelligent interfaces have no cost-effective Internet reach. “Dumb” browsers have cheap deployment but limited support for user activities. Intelligent interfaces develop cost effective deployment and data transport.

5 Browsers Limitations HTML not designed as application interface technology Minimal GUI elements Limited control over user interaction (keystrokes, drag and drop) Limited client-side data validation Costly to produce effective UI Immature security model (“Would you like to install this component from Gator Corp?”)

6 What Is a Smart Client? No agreement on general definition Emphasizes intelligence in the UI Takes full advantage of the client machine Typically means a true Windows interface Client UI has some level of detachment from the rest of the application This may mean flexible ways to get and store data Often means offline capabilities

7 Key Decision Points Do you control the user’s operating environment? Are offline capabilities required? Will a better UI translate to productivity gains and resultant savings? Is it important for your application to access local resources on user machines? Do you need (or would you benefit from) alternative UI – handwriting or speech recognition? What security capabilities do you need? Lesser factors Distribution of processing overhead Efficient utilization of bandwidth Peer-to-peer capabilities

8 Bottleneck:.NET Framework Required Limiting factor: the.NET Framework must be on all client machines First candidates for distributed smart clients: Corporate applications (control over desktop) Commercial or extranet applications where a minimum platform can be required.NET Framework becoming ubiquitous # of Framework installations growing rapidly Future O/S versions Service Packs Other.NET applications

9 Where are Smart Clients Most Important? Corporate apps for distributed operations Healthcare, transportation, supply chain Etc. Distributed data entry systems Commercial packages of all kinds, especially vertical market packages Applications that require offline capabilities

10 Technologies Required Standard HTTP connection from each client machine to a web server A forms engine and execution environment running on the client machine A way to easily and cheaply deploy the application to the client machine One or more ways to transport data to and from a central server A security model that limits the ability to do damage to the client machine A means to secure access to the system and the data Windows Forms Broadband Copy and Run / ClickOnce / etc. Web Services / Remoting Code Access Security Authentication / Authorization

11 Class Three Tier Architecture for Client/Server and Web Must be refined for distributed smart clients Increased processing power on the client Ability for client to store state information Data transport options must be handled – both for now and the future Presentation Tier User interface Middle Tier Components, Rules Data Tier Relational Database

12 Many n-Tier Principles Still Apply Data tier is mostly unchanged Stored procs may need to support new paging designs, more robust batch updating, etc. Middle tier still isolates all database interaction Controls connection to RDB with its own credentials Parts exposed to web outside firewall, rest of middle tier inside Entry points to business tier can include technologies such as message queue

13 Data tier (database) Data access layer Business rules, etc. Channel Adapter (data façade) Common components and controls UI – Forms and controls A Tiered Architecture for Distributed Smart Clients Client machine Application server Database server Port 2 e.g. Web Services Port 1 e.g. Remoting Local storage for caching Web server

14 Client Layer Drill-Down UI – Forms and controls Channel Adapter (data facade) CustomerOrderProductVendorEtc. Standard interface for Get / Update / etc. Common components and controls Data validation Security Base forms Etc. Form A Form B Form C Form D Form E Etc. Local store for caching Data transport channels

15 Building the Client Tier Componentize as much logic as possible Minimize repeated code patterns in routine forms with frameworks or toolkits Data validation Data management Security Use high level controller as app-entry point Isolates security checking, menu building, etc. If possible, get data validation rules from database

16 Key Technologies Extender Providers in Windows Forms Dynamic loading of.NET assemblies Need location of assembly, and name of type to get instance Allows apps to have dynamic construction and single entry point

17 An Example of Extender Providers for “Dirty Checking” Drag and drop checking to see if data has changed Demonstration Note that this is an implementation of the Observer pattern

18 Application “Portals” Complex applications need an “application shell” or “portal” to coordinate sub-systems Flexible plug-in pieces for menuing, authorization/authentication Data driven list of user options, with screens loaded on demand Process uses dynamic loading of assemblies

19 Typical Code to Load a Dynamic Form Dim sLocation As String = {set assembly location} Dim sType As String = {set class name of form} Dim formAsm As [Assembly] = _ [Assembly].LoadFrom(sLocation) Dim ClassType As Type = formAsm.GetType(sType) Dim Classobj As Object Classobj = Activator.CreateInstance(ClassType) Dim FormToShow As Form = CType(Classobj, Form) FormToShow.MdiParent = Me FormToShow.Show()

20 A Composite Application Shell

21 Data Transport UI Business Logic Data Storage and Management Data Access Presentation ?

22 Transport vs. Host Transport RPC, Queues, etc. Host IIS, Enterprise Services, etc. Separate but dependant issues

23 Competing Technologies RPC DCOM, RMI, Remoting, Web services Async Messaging MSMQ, MQ Series, JMS, Async RPC Services (SO) Web services, Indigo, other transports

24 Today’s Options Web Svc Ent Svcs Remote Data-centric Object-oriented XML/SOAP Binary Pass thru firewall IDE support Code controlled Peer to peer Events/callbacks Stateful objects

25 n-Tier Application 2 UI Business Logic Service Façade (Data Access) Presentation External Service Application 1 UI Business Logic Data Access Data Storage and Management Presentation

26 DataPortal UI Business Logic Data Access DataPortal Façade DataPortal Data Access

27 DataPortal Client facade Abstracts the server/transport/host Acts as a channel adapter Server portal Abstracts server (transactions, etc.) Acts as a broker or message router

28 Channel Adapter / Ports Drill Down Channel Adapter (data façade) CustomerOrderProductVendorEtc. On the client Data access layer Business rules, etc. Data validation requiring connected access Aggregation / disaggregation of data Web Services Remoting listener In the middle tier MSMQEtc. Ports Channels

29 Data-Centric (Fat UI) UI Business Logic Data Access Logic E.g. Traditional VB3/4/5/6 Client Server No way to put logic in dataset Need to use a function library or; Put logic in UI How Do We Push Data Around? Objects Datasets/DTOs (per Martin Fowler)

30 Data-Centric (“thin” UI) UI Business Logic Data Access Logic Put logic on separate machine so you can’t cheat. You will cheat. You still need to get data to the UI

31 Distributed Data-Centric UI Business Logic Data Access Logic Same flaw as original model- just now have network connection.

32 Distributed Objects UI Business Logic Data Access Logic Objects really just pumping data in and out at both ends.

33 Client-side Objects UI Business Logic Data Access Logic Not bad approach. Populate local intelligent objects on client from DTOs

34 Mobile Objects/Agents Fully mobile objects serialized and de-serialized. Can be useful but has higher overhead at development time

35 Demonstration A multi-transport DataPortal

36 Resources More Information: chris@kognition.co.nz www.syringe.net.nz

37 Your Feedback is Important! Please Fill Out Your Eval

38 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.


Download ppt "ARC312 Smart Client Architecture Chris J.T. Auld Managing Director- Kognition Microsoft Regional Director & MVP"

Similar presentations


Ads by Google