architektura-systemow-zarzadzania-przedsiebiorstwem.-wzorce-projektowe helion.pdf

(23784 KB) Pobierz
720661292 UNPDF
IDZ DO
PRZYK£ADOW Y ROZDZIA£
SPIS TRECI
Architektura systemów
zarz¹dzania przedsiêbiorstwem.
Wzorce projektowe
Autor: Martin Fowler
T³umaczenie: Pawe³ Koronkiewicz (wstêp, rozdz. 1 – 12),
Piotr Rajca (rozdz. 13 – 18, dod. A)
ISBN: 83-7361-715-9
Format: B5, stron: 496
KATALOG KSI¥¯EK
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
TWÓJ KOSZYK
DODAJ DO KOSZYKA
Wykorzystaj wzorce projektowe w pracy nad oprogramowaniem
• Zaprojektuj aplikacje o architekturze trójwarstwowej
• Dobierz odpowiedni¹ technologiê
• Stwórz modu³y aplikacji
Systemy informatyczne s³u¿¹ce do zarz¹dzania przedsiêbiorstwem to zwykle ogromne
aplikacje. Operuj¹ na milionach rekordów, przesy³aj¹ gigabajty danych i s¹ obs³ugiwane
przez dziesi¹tki u¿ytkowników. Sprawne dzia³anie takiej aplikacji jest niezwykle istotne
dla funkcjonowania przedsiêbiorstwa, dlatego musi ona byæ stabilna, a przed
wdro¿eniem -- gruntownie przetestowana. Przy tworzeniu aplikacji tego typu
wykorzystuje siê opracowane ju¿ rozwi¹zania, zwane wzorcami projektowymi.
Wzorce projektowe to modele poszczególnych komponentów aplikacji — nale¿y
jedynie zaimplementowaæ je w wybranym jêzyku programowania.
Ksi¹¿ka „Architektura systemów zarz¹dzania przedsiêbiorstwem. Wzorce projektowe”
to przegl¹d wzorców wykorzystywanych przy projektowaniu aplikacji korporacyjnych.
Opisuje zasady podzia³u aplikacji na warstwy i zasady wspó³pracy pomiêdzy warstwami;
przedstawia tak¿e modele komponentów wchodz¹cych w sk³ad ka¿dej z nich.
• Warstwy w aplikacjach biznesowych
• Wzorce logiki aplikacji
• Wzorce architektury ród³a danych
• Wzorce mapowania obiektowo-relacyjnego
• Wzorce prezentacji
• Wzorce dystrybucji
• Wzorce stanu sesji
• Wzorce podstawowe
Korzystaj¹c z zawartych w ksi¹¿ce wzorców,
stworzysz stabilne i wydajne aplikacje korporacyjne.
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWOCIACH
ZAMÓW CENNIK
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
720661292.005.png 720661292.006.png 720661292.007.png 720661292.008.png
Spis treci
Przedmowa.............................................................................................................13
Wstp .....................................................................................................................19
Architektura .....................................................................................................................................................19
Aplikacje korporacyjne....................................................................................................................................20
Rodzaje aplikacji dla przedsibiorstw..............................................................................................................22
Wydajno .......................................................................................................................................................23
Wzorce.............................................................................................................................................................25
Struktura opisu wzorców ...........................................................................................................................27
Ograniczenia wzorców projektowych........................................................................................................28
Cz I Wprowadzenie
29
1 Warstwy aplikacji ..................................................................................................31
Podział warstwowy w aplikacjach dla przedsibiorstw....................................................................................32
Trzy główne warstwy.......................................................................................................................................33
Układ warstw ...................................................................................................................................................35
2.
Porzdkowanie logiki dziedziny............................................................................37
Wybór wzorca..................................................................................................................................................40
Warstwa usług..................................................................................................................................................42
3 Mapowanie do relacyjnych baz danych.................................................................43
Wzorce architektury.........................................................................................................................................43
Problem zachowa/...........................................................................................................................................47
Odczyt danych .................................................................................................................................................48
720661292.001.png
6
SPIS TRECI
Wzorce mapowania struktury...........................................................................................................................49
Mapowanie relacji .....................................................................................................................................49
Dziedziczenie.............................................................................................................................................52
Proces budowy mapowania..............................................................................................................................54
Podwójne mapowanie................................................................................................................................55
Metadane..........................................................................................................................................................55
Poł2czenie z baz2 danych.................................................................................................................................56
Inne problemy mapowania...............................................................................................................................58
Warto przeczyta .............................................................................................................................................58
4.
Prezentacja w sieci WWW ....................................................................................59
Wzorce widoku................................................................................................................................................62
Wzorce kontrolera danych wejciowych..........................................................................................................64
Warto przeczyta .............................................................................................................................................64
5.
Przetwarzanie współbie%ne....................................................................................65
Problemy przetwarzania współbie5nego..........................................................................................................66
Konteksty przetwarzania..................................................................................................................................67
Izolacja i niezmienno ....................................................................................................................................68
Optymistyczne i pesymistyczne sterowanie współbie5noci2..........................................................................68
Zapobieganie niespójnym odczytom..........................................................................................................69
Zakleszczenia.............................................................................................................................................70
Transakcje........................................................................................................................................................71
ACID .........................................................................................................................................................72
Zasoby transakcyjne ..................................................................................................................................72
Zwikszanie 5ywotnoci przez ograniczanie izolacji.................................................................................73
Transakcje biznesowe i systemowe ...........................................................................................................74
Wzorce sterowania współbie5noci2 w trybie offline ......................................................................................76
Serwery aplikacji .............................................................................................................................................77
Warto przeczyta .............................................................................................................................................78
6.
Stan sesji ................................................................................................................79
Zalety sesji bezstanowej...................................................................................................................................79
Stan sesji ..........................................................................................................................................................80
Metody przechowywania danych stanu sesji .............................................................................................81
7 Obiekty rozproszone..............................................................................................85
Zwodnicze obiekty rozproszone ......................................................................................................................85
Interfejsy lokalne i interfejsy zdalne ................................................................................................................86
Kiedy stosowa architektur rozproszon2........................................................................................................87
Granice dystrybucji..........................................................................................................................................88
Interfejsy dystrybucji .......................................................................................................................................89
720661292.002.png
SPIS TRECI
7
8.
Podsumowanie.......................................................................................................91
Warstwa dziedziny, czyli pocz2tek ..................................................................................................................92
Warstwa <ródła danych, czyli krok drugi.........................................................................................................93
=ródło danych dla schematu Transaction Script (110) ..............................................................................93
=ródło danych dla schematu Table Module (125) .....................................................................................93
=ródło danych dla schematu Domain Model (116)....................................................................................94
Warstwa prezentacji.........................................................................................................................................94
Wzorce a technologia.......................................................................................................................................95
Java i J2EE.................................................................................................................................................95
.NET ..........................................................................................................................................................96
Procedury przechowywane ........................................................................................................................97
Usługi WWW ............................................................................................................................................97
Inne systemy warstw aplikacji .........................................................................................................................98
Cz II Wzorce
101
9 Wzorce logiki dziedziny ......................................................................................103
Transaction Script (Skrypt transakcji)............................................................................................................103
Na czym polega .......................................................................................................................................103
Kiedy u5ywamy.......................................................................................................................................105
Problem obliczania przychodu.................................................................................................................105
Domain Model (Model dziedziny).................................................................................................................109
Na czym polega .......................................................................................................................................109
Kiedy u5ywamy.......................................................................................................................................111
Warto przeczyta .....................................................................................................................................112
Przykład: uznanie przychodu (Java) ........................................................................................................112
Table Module (Moduł tabeli).........................................................................................................................117
Na czym polega .......................................................................................................................................118
Kiedy u5ywamy.......................................................................................................................................120
Przykład: uznanie przychodu (C#)...........................................................................................................120
Service Layer (Warstwa usług)......................................................................................................................124
Na czym polega .......................................................................................................................................125
Kiedy u5ywamy.......................................................................................................................................127
Warto przeczyta .....................................................................................................................................127
Przykład: uznanie przychodu (Java) ........................................................................................................127
10.
Wzorce architektury ,ródła danych .....................................................................133
Table Data Gateway (Brama danych tabeli) ..................................................................................................133
Na czym polega........................................................................................................................................133
Kiedy u5ywamy.......................................................................................................................................134
Warto przeczyta .....................................................................................................................................135
Przykład: brama tabeli osób (C#) ............................................................................................................135
Przykład: brama oparta na zbiorach danych ADO.NET (C#)..................................................................137
720661292.003.png
8
SPIS TRECI
Row Data Gateway (Brama danych wiersza).................................................................................................140
Na czym polega .......................................................................................................................................140
Kiedy u5ywamy.......................................................................................................................................142
Przykład: brama rekordu osoby (Java).....................................................................................................142
Przykład: uchwyt danych dla obiektu dziedziny (Java) ...........................................................................146
Active Record (Rekord aktywny) ..................................................................................................................147
Na czym polega .......................................................................................................................................147
Kiedy u5ywamy.......................................................................................................................................148
Przykład: prosta tabela osób (Java)..........................................................................................................148
Data Mapper (Odwzorowanie danych) ..........................................................................................................152
Na czym polega .......................................................................................................................................152
Kiedy u5ywamy.......................................................................................................................................156
Przykład: proste odwzorowanie obiektowo-relacyjne (Java)...................................................................157
Przykład: wył2czanie metod wyszukuj2cych (Java) ................................................................................162
Przykład: tworzenie obiektu pustego (Java).............................................................................................165
11.
Wzorce zachowa- dla mapowania obiektowo-relacyjnego.................................169
Unit of Work (Jednostka pracy).....................................................................................................................169
Na czym polega .......................................................................................................................................170
Kiedy u5ywamy.......................................................................................................................................173
Przykład: rejestracja przez obiekt (Java)..................................................................................................174
Identity Map (Mapa to5samoci)....................................................................................................................178
Na czym polega .......................................................................................................................................178
Kiedy u5ywamy.......................................................................................................................................180
Przykład: metody mapy to5samoci (Java)..............................................................................................181
Lazy Load (Opó<nione ładowanie)................................................................................................................182
Na czym polega .......................................................................................................................................182
Kiedy u5ywamy.......................................................................................................................................184
Przykład: opó<niona inicjalizacja (Java)..................................................................................................185
Przykład: wirtualny porednik (Java).......................................................................................................185
Przykład: uchwyt wartoci (Java) ............................................................................................................187
Przykład: widmo (C#)..............................................................................................................................188
12.
Wzorce struktury dla mapowania obiektowo-relacyjnego ..................................197
Identity Field (Pole to5samoci).....................................................................................................................197
Na czym polega .......................................................................................................................................197
Kiedy u5ywamy.......................................................................................................................................201
Warto przeczyta .....................................................................................................................................201
Przykład: liczba całkowita jako klucz (C#)..............................................................................................201
Przykład: tabela kluczy (Java) .................................................................................................................203
Przykład: klucz zło5ony (Java) ................................................................................................................205
Foreign Key Mapping (Odwzorowanie do klucza obcego)............................................................................216
Na czym polega .......................................................................................................................................216
Kiedy u5ywamy.......................................................................................................................................218
Przykład: odwołanie jednowartociowe (Java)........................................................................................219
Przykład: wyszukiwanie w wielu tabelach (Java)....................................................................................222
Przykład: kolekcja odwoła/ (C#).............................................................................................................223
720661292.004.png
Zgłoś jeśli naruszono regulamin