1 Decyzje projektowe w .NET FrameworkSeminarium magisterskie 10.I.2005 Piotr Tamowicz
2 Wstęp Cel prezentacji Zakres omówionych tematówAplikacja klasy Enterprise Przedstawione sytuacje decyzyjne Rodzaj aplikacji klienckiej Fizyczny Podział systemu Udostępnienie środkowej warstwy (logiki biznesowej) Reprezentacja danych Podsumowanie
3 Aplikacja klasy EnterpriseCzym jest? Jakimi cechami się charakteryzuje? Dostępność Wydajność Bezpieczeństwo Skalowalność Możliwość pracy w różnych warunkach sprzętowych
4 Rodzaj aplikacji klienckiej Aplikacja Windows czy aplikacja InternetowaWeb Forms Windows Forms Wrażenia Użytkownika Trudność tworzenia dynamicznej zawartości DHTML. Dynamiczne, łatwość interakcji, szerokie możliwości. Rozmieszczenie Relatywnie łatwe. Jedynie na serwerze Bardziej uciążliwe. Konieczność instalacji na każdej stacji roboczej. Aktualizacja Shadow copying Nieprzezroczysta dla użytkownika. Bezpieczeństwo Podobne mechanizmy autentykacji i autoryzacji Technologie Mobilne MS Mobile Internet Toolkit .NET Compact Framework
5 Fizyczny podział systemuWpływ decyzji Rozmieszczenie Bezpieczeństwo Skalowalność Wydajność Możliwe rozwiązania Aplikacja monolityczna Aplikacja rozproszona Wpływ na warstwy logiczne
6 Fizyczny podział systemu Perspektywa rozmieszczeniaWarstwa prezentacji Pojedyncza maszyna Warstwa logiki Warstwa Danych WS Façade WS Façade Biz Services D A L WIN Service SP or ES Façade ASP .NET UI Łatwe w zarządzaniu Wydajność nie jest obniżona przez komunikację w sieci Rozwiązanie dostępne przez firmy dzierżawiące serwery Skalowalność Bezpieczeństwo
7 Fizyczny podział systemu Perspektywa rozmieszczeniaWarstwa prezentacji Serwer WWW rówineż jako Serwer Aplikacji Warstwa logiki Serwer SQL Warstwa Danych WS Façade WS Façade Biz Services D A L WIN Service SP or ES Façade ASP .NET UI Łatwe w zarządzaniu Wydajność nieznacznie obniżona przez odwołania do BD Więcej możliwości skalowania Rozwiązanie bardziej bezpieczne Skalowalność Bezpieczeństwo Koszty
8 Fizyczny podział systemu Perspektywa rozmieszczeniaWarstwa prezentacji Serwer WWW Serwer Aplikacji Warstwa logiki Warstwa Danych Serwer SQL WS Façade WS Façade Biz Services D A L WIN Service SP or ES Façade ASP .NET UI Skalowalność Bezpieczeństwo Serwer Aplikacji może być serwerem dla wielu klientów Wydajność Komplikacje przy autentykacji Koszty, koszty, koszty…
9 Fizyczny podział systemu Perspektywa bezpieczeństwaZależność od rozmieszczenia Przykładowe ograniczenia DMZ Dzierżawa Serwera Wybór mechanizmu zabezpieczeń Perspektywiczne podejście
10 Autentykacja i AutoryzacjaDane przesyłane w nagłówku SOAP Na podstawie roli przypisanej użytkownikowi zwracany jest connection string. Użytkownik wprowadza UserID i Password Warstwa Prezentacji Warstwa Logiki Warstwa Danych WS Façade WS Façade Biz Services D A L SP Dane przesyłane w nagłówku SOAP ES Façade Custom HTTP Handler rozpakowuje dane użytkownika i wywołuje metodę z fasady która tworzy obiekt principal. ASP .NET UI
11 Fizyczny podział systemu Perspektywa wydajnościWykonywanie indywidualnych testów Uwzględnienie potencjalnego zapotrzebowania Okresowe powtarzanie testów wydajności
12 Udostępnienie warstwy logiki biznesowej Dostępne scenariuszeWeb Services Façade Enterprise Services Façade Obsługiwane przez proces IIS, komunikacja poprzez Remoting Uruchamiane w procesie klienta COM+ Server application Windows Service
13 Udostępnienie warstwy logiki biznesowej Web Services Façade+ Rozmieszczenie + Możliwość ponownego użycia Warstwa prezentacji Warstwa Logiki Warstwa Danych WS Façade (asmx) WS Façade Biz Services D A L SP ASP .NET UI (aspx) Wydajność X-proces przy każdym żądaniu
14 Udostępnienie warstwy logiki biznesowej Enterprise Services Façade+ Łatwe wykorzystanie MS Remoting + Wydajność Warstwa Prezentacji Warstwa Logiki Warstwa Danych WS Façade (asmx) ES Façade hosted in IIS Biz Services D A L SP ASP .NET UI (aspx) Konieczność rejestracji X-Process przy każdym żądaniu
15 Façade. Library app. Loaded on client processUdostępnienie warstwy logiki biznesowej Enterprise Services Façade + wydajność Warstwa Prezentacji Warstwa Logiki Warstwa Danych WS Façade (asmx) ES Façade. Library app. Loaded on client process Biz Services D A L SP ASP .NET UI (aspx) - Autoryzacja i autentykacja dokonywana w warstwie prezentacji
16 Udostępnienie warstwy logiki biznesowej Enterprise Services Façade+ możliwości COM+ Warstwa Prezentacji Warstwa Logiki Warstwa Danych WS Façade (asmx) ES Façade hosted in DLLHost (server app) Biz Services D A L SP ASP .NET UI (aspx) Konieczność rejestracji X-Proces przy każdym żądaniu
17 Reprezentacja Danych Forma przesyłania między warstwamiDostępne Możliwości Datasets Typed Datasets XML Kolekcje Kryteria wyboru Wymagania funkcjonalne Wydajność Łatwość utrzymania Możliwości niezależnej modyfikacji
18 Reprezentacja Danych DatasetsZa Praca w środowisku odłączonym Wydajne Abstrakcja Databinding Czytelność kodu Przeciw Późna Kontrola typów Diffgrams Zależność od schematu bazy danych
19 Reprezentacja Danych Typed DatasetsZa Praca w środowisku odłączonym XSD Databinding Wczesna kontrola typów Czytelność kodu Przeciw Diffgrams Wolniejsze niż Datasets Niedostępne w Compact Framework Zależność od schematu bazy danych
20 Reprezentacja Danych XMLZa Standard Elastyczna struktura Przeciw Brak semantyki Konieczność manualnej edycji
21 Reprezentacja Danych KolekcjeZa OO Przeciw Złożoność kodu Wydajność
22 Podsumowanie, bibliografiaMSDN Library P&P: Application Architecture for .NET Building Secure ASP .NET Solutions release.asp?ReleaseID=44047