340 likes | 481 Views
Načrtovanje (arhitektura) rešitev za pametne odjemalce. Dušan Zupančič, KOMPAS Xnet 18.05.2005. Agenda. Kaj so pametni odjemalci. Spletne storitve in podpora Offline/Online. Prilagajanje napravi. Precej prostora na disku. Širok doseg. Kompleksna namestitev. Odvisnost od omrežja.
E N D
Načrtovanje (arhitektura) rešitev za pametne odjemalce Dušan Zupančič, KOMPAS Xnet 18.05.2005
Agenda • Kaj so pametni odjemalci
Spletne storitve in podpora Offline/Online Prilagajanje napravi Precej prostorana disku Širokdoseg Kompleksnanamestitev Odvisnost od omrežja Bogata uporabniškaizkušnja Visokaproduktivnostrazvijalca Okrnjena uporabniška izkušnja Enostavnoupravljanjesprememb DLL pekel Razvoj bogategauporabniškegavmesnika jezelo kompleksen Enostavnonameščanje Dobraodzivnost Bogati, lahki in pametni
Pametni odjemalciKljučni atributi • Izkoriščanje lokalne procesorske moči • Komunikacija preko XML spletnihstoritev • Podpora scenarijem s priključitvijo v omrežje in brez • Prilagajanje gostiteljski napravi • Centralizirano nameščanje in posodabljanje
“Namestitev” Spletna stran Uporabniškivmesnik Podatki LogikaUV Arhitektura lahkega odjemalca Spletni strežnik Odjemalec Brskalnik Spletnastran Poslovna logika
3 4 Pametni odjemalec 5 Uporabniški vmesnik Spletnastoritev 2 Poslovnalogika 1 Arhitektura pametnega odjemalca Spletni strežnik Odejmalec Namestitev Pametniodjemalec Poslovnalogika
Microsoft in pametni odjemalciPlatforme Office System 2003 Windows Mobile Windows Forms Trenutnageneracija XML Version 1.1 Version 1.1 Naslednjageneracija Version 2.0 Version 2.0
Ključne odločitve pri načrtovanju pametnih odjemalcev • Delo s podatki • Delo v odklopljenem načinu • Nameščanje in samodejno posodabljanje • Varnost
Vrste podatkov • Referenčni podatki (samo beremo) • Statične referenece ali podatki za preiskovanje • Uporabljamo jih za • Preverjanje vnesenih podatkov • Oblikovanje servisnih zahtevkov • Verzionirani, časovno podpisani • Npr.: poštne številke, kode držav, ceniki • Prehodni podatki (Transient data) • Podatke urejamo • Potreba po sledenju spremembam • Razmislek o skladnosti (concurency)in minljivosti podatkov • Npr.: Naročila, detajli naročil, stranke, itd.
Brez povezave: Da Zelo majhna verjetnost da bo nekdo drug spremenil podatke Tipično za podatke vezane na enega uporabnika Brez povezave: Ne Verjetnost, da bodo podatki veljavni brez povezave je zelo nizka Večuporabniški oz. javni podatki Mojkoledar Vaškoledar Inventar Borznedelnice Prehodni podatki Visoka minljivost Več težav s skladnostjo Nizka minljivost Malo problemov s skladnostjo Napovedana veljavnost N(Veljavnost) = 1.0 N(Veljavnost) = 0.0
Upravljanje podatkov • Medpomnjenje (Caching) • Performančni razlogi in podpora delu brez povezave • Dolgoročno / kratkoročno • Zapadlost podatkovin upoštevanje omejitev (constraints) • Načrtovanje za skladnost (Concurency) • Pesismostično • Optimistično • Varnost • Zagotovljen samo dostop do podatkov za katere je uporabnik avtoriziran • Zaščita občutljivih podatkov • Uporaba šifriranja in/ali ACL • Razmislek o večuporabniških scenarijih • Delo brez povezave • Odločitev o tem kateri podatki in logika so potrebni • Sinhronizacija sprememb
Caching Application Block • Omogoča oziroma olajša izvedbo • Performance – podatki se hranijo čim bližje uporabniku podatkov. Tako se izognemo ponavljajočemu ustvarjanju, procesiranju in transportu podatkov • Razširljivost – s hrambo podatkov v medpomnilniku varčujemo s sredstvi in izboljšamo razširljivost sistema • Razpoložljivost – z lokalno shrambo podatkov lahko aplikacija preživi kratkotrajne izpade sistema, npr.: izpad strežnika, problemi z omrežjem, … • Caching Application Block omogoča razvijalcem vključitev likalne shrambe v aplikacijo
Priklopljeno / odklopljeno • Vedno – Povezava z omrežjem je nujna • Večinoma – redko delovanje brez povezave • Včasih – delovanje brez povezave daljši čas • Redko – povezava je možna vendar je draga • Odklopljeno – eksplicitno delovanje samo v odklopljenem načinu ‘Priklopljenost’
Podatkovno orientiran pristop • Prednosti • Data changes direct • Infrastructure provided • Slabosti • Heavy-weight client-side Infrastructure • Tight coupling between client and server RDBMS-baziranareplikacija zzdruževanjem
Sporočilno orientiran pristop • Prednosti • Šibka povezanost med odjemalcem in strežnikom • Lahka infrastruktura na odjemalcu • Slabosti • Sprememba podatkov je posredna • Precej kode potrebne za razreševanje konfliktov Sporočilno orientiranasinhronizacija podatkov
Smart Client Offline Application Block • Offline block ponuja • Razširljiv nabor komponent • Omogoča delovanje sporočilno orientiranih aplikacij brez povezave • Shranjevanje in izvajanje odloženih storitvenih zahtevkov • Zaznavanje prisotnosti komponent na omrežju
Nameščanje pametnih odjemalcev • Nameščanje ogrodja .NET • Prednamestitev • Orodja za nameščanje v večjih podjetjih – SMS • Group policy • Zahtevamo od uporabnikov, da si ga namestijo sami (Windows Update, na lokalnem omrežju, …) • Nameščanje z aplikacijo • Ogrodje zapečemo v MSI (v namestitvenem projektu že imamo možnost vključevanja “dotnetfxredist_x86.msm”) • Ogrodje .NET že vgrajeno vStrežnik Windows 2003, Longhorn … in naslednje različice
Nameščanje pametnih odjemalcev • Nameščanje rešitve • Namestitev No-Touch • Hibridno: No-Touch s kodo za osveževanje rešitve • XCOPY • Poganjanje z omrežnega diska • MSI • Visual Studio 2005 (.NET 2.0) – ClickOnce
Namestitev No-Touch URL rešitve 1 Namestitvenistrežnik Aplikacija Odjemalec Config 3 Aplikacija Download Cache 2 Assembly Config Assembly Aplikacija Config Ogrodje .NET Assembly
Omejitve NTD • Konfiguracijske datoteke se ne naložijo samodejno • Omejene privzete varnostne pravice • Pisanje na disk • Uporaba “unmanaged” kode • Nameščanje komponent, ki zahteva registracijo • Dostop do virov, ki niso na istem strežniku • Access resources no on originating server • Nezanesljivo delovanje brez povezave • Leno doljemanje (Lazy downloading) • IE cache • Odvisnost od IE nastavitve “Offline” • Ni transakcijskih namestitev (problem v primeru prekinitve povezave med namestitvijo)
Posodabljanje • Vsakokratno ponovno nameščanje ni praktično • Nameščanje No-touch • Samo spremenimo vsebino na web strežniku • Samodejne posodobitve • Možnost vgradimo v aplikacijo • Posodobitve z omrežnega diska • Posodobimo vsebino na omrežnem disku • Posodabljanje Xcopy • Kopiranje novih preko starejših datotek • Windows Installer • Patch paket (*.msp) • Posodobitev obstoječega MSI • Ustvarjanje novega MSI
Updater Application Block Updater Downloader 1 Validator Namestitvenistrežnik 2 Post-Proc Manifest Aplikacija Odjemalec 4 Aplikacija Application Folder Config Assembly 3 Config Aplikacija Assembly Config .NET Framework Assembly
Priporočila za posodobitve • VS 2003 / .NET 1.1 • Vgradite infrastrukturo za posodobitve • Odlično za večino rešitev • Na voljo je Application Updater Block v2 • V2 omogoča enostavnejšo nadgradnjo na ClickOnce • Windows Installer • Primerno za obsežna okolja (enterprise) • VS 2005 / .NET 2.0 • ClickOnce • Windows Installer
Razmislek o varnosti • Storitev je meja zaupanja • Odjemalcu ni mogoče zaupati • Obramba v globino • Avtentikacija • Avtorizacija • Preverjanje podatkov • Zaščita občutljivih podatkov • Beleženje • Upravljanje izjem • Upravljanje sprememb
Security Application Block Application Security Context Authentication Module(s) Principal Credentials (username, password) Roles Identity • IPrincipal • Identity • IsInRole() • Windows • Forms • Passport • GenericPrincipal • Identity • IsInRole() • WindowsPrincipal • Identity • IsInRole() • Custom Principal • Identity • IsInRole() • custom methods
UI Components UI Composition & Process E Business Entities Local Business Logic E E Service Agents E E E Aplikacijski bloki Management Communication & State Mgmt Security CAB UIP Profile Service Location Caching Authentication & SSO Configuration Asynchronous Comm. Code Security Logging Reconciliation Authorization Offline Exception Handling Notifications Secure Comm. Install & Updates Offline Auditing Updater Services
Bloki rešitev • http://www.microsoft.com/resources/practices/code.mspx • CAB – Caching Application Block • UIP - User Interface Process Application Block • Offline - Smart Client Offline Application Block • Updater - Updater Application Block–v 2.0 • E – Enterprise Library
Povzetek • Pametni odjemalci združujejo najboljše s svetov bogatih in lahkih odjemalcev • Pri načrtovanju se je potrebno zavedati obsega rešitve in omejitev, ki jih določa okolje v katerem bodo delovale • Kot pomoč pri načrtovanju in izvedbi so na voljo načrtovalski vzorci in aplikacijski bloki
VPRAŠALNIKI VPRAŠALNIKI VPRAŠALNIKI VPRAŠALNIKI VPRAŠALNIKI IZPOLNITE VPRAŠALNIK Z MALO SREČE DO BOGATIH NAGRAD