Architektura systemów zarządzania przedsiębiorstwem. Wzorce projektowe - Helion
Tytuł oryginału: Patterns of Enterprise Application Architecture
Tłumaczenie: Paweł Koronkiewicz (wstęp, rozdz. 1 - 12), Piotr Rajca (rozdz. 13 - 18, dod. A)
ISBN: 83-7361-715-9
stron: 496, Format: B5, okładka: miękka
Data wydania: 2005-01-05
Księgarnia: Helion
Cena książki: 99,00 zł
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.
Osoby które kupowały "Architektura systemów zarządzania przedsiębiorstwem. Wzorce projektowe", wybierały także:
- Ruby on Rails. Ćwiczenia 18,75 zł, (3,00 zł -84%)
- Zen Steve'a Jobsa 29,67 zł, (8,90 zł -70%)
- ASP.NET MVC. Kompletny przewodnik dla programistów interaktywnych aplikacji internetowych w Visual Studio 86,77 zł, (26,90 zł -69%)
- TDD. Sztuka tworzenia dobrego kodu 48,54 zł, (19,90 zł -59%)
- GitHub. Przyjazny przewodnik 32,90 zł, (16,45 zł -50%)
Spis treści
Architektura systemów zarządzania przedsiębiorstwem. Wzorce projektowe -- spis treści
Przedmowa (13)
Wstęp (19)
- Architektura (19)
- Aplikacje korporacyjne (20)
- Rodzaje aplikacji dla przedsiębiorstw (22)
- Wydajność (23)
- Wzorce (25)
- Struktura opisu wzorców (27)
- Ograniczenia wzorców projektowych (28)
Część I Wprowadzenie (29)
Rozdział 1. Warstwy aplikacji (31)
- Podział warstwowy w aplikacjach dla przedsiębiorstw (32)
- Trzy główne warstwy (33)
- Układ warstw (35)
Rozdział 2. Porządkowanie logiki dziedziny (37)
- Wybór wzorca (40)
- Warstwa usług (42)
Rozdział 3. Mapowanie do relacyjnych baz danych (43)
- Wzorce architektury (43)
- Problem zachowań (47)
- Odczyt danych (48)
- Wzorce mapowania struktury (49)
- Mapowanie relacji (49)
- Dziedziczenie (52)
- Proces budowy mapowania (54)
- Podwójne mapowanie (55)
- Metadane (55)
- Połączenie z bazą danych (56)
- Inne problemy mapowania (58)
- Warto przeczytać (58)
Rozdział 4. Prezentacja w sieci WWW (59)
- Wzorce widoku (62)
- Wzorce kontrolera danych wejściowych (64)
- Warto przeczytać (64)
Rozdział 5. Przetwarzanie współbieżne (65)
- Problemy przetwarzania współbieżnego (66)
- Konteksty przetwarzania (67)
- Izolacja i niezmienność (68)
- Optymistyczne i pesymistyczne sterowanie współbieżnością (68)
- Zapobieganie niespójnym odczytom (69)
- Zakleszczenia (70)
- Transakcje (71)
- ACID (72)
- Zasoby transakcyjne (72)
- Zwiększanie żywotności przez ograniczanie izolacji (73)
- Transakcje biznesowe i systemowe (74)
- Wzorce sterowania współbieżnością w trybie offline (76)
- Serwery aplikacji (77)
- Warto przeczytać (78)
Rozdział 6. Stan sesji (79)
- Zalety sesji bezstanowej (79)
- Stan sesji (80)
- Metody przechowywania danych stanu sesji (81)
Rozdział 7. Obiekty rozproszone (85)
- Zwodnicze obiekty rozproszone (85)
- Interfejsy lokalne i interfejsy zdalne (86)
- Kiedy stosować architekturę rozproszoną (87)
- Granice dystrybucji (88)
- Interfejsy dystrybucji (89)
Rozdział 8. Podsumowanie (91)
- Warstwa dziedziny, czyli poczÄ…tek (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)
Rozdział 9. Wzorce logiki dziedziny (103)
- Transaction Script (Skrypt transakcji) (103)
- Na czym polega (103)
- Kiedy używamy (105)
- Problem obliczania przychodu (105)
- Domain Model (Model dziedziny) (109)
- Na czym polega (109)
- Kiedy używamy (111)
- Warto przeczytać (112)
- Przykład: uznanie przychodu (Java) (112)
- Table Module (Moduł tabeli) (117)
- Na czym polega (118)
- Kiedy używamy (120)
- Przykład: uznanie przychodu (C#) (120)
- Service Layer (Warstwa usług) (124)
- Na czym polega (125)
- Kiedy używamy (127)
- Warto przeczytać (127)
- Przykład: uznanie przychodu (Java) (127)
Rozdział 10. Wzorce architektury źródła danych (133)
- Table Data Gateway (Brama danych tabeli) (133)
- Na czym polega (133)
- Kiedy używamy (134)
- Warto przeczytać (135)
- Przykład: brama tabeli osób (C#) (135)
- Przykład: brama oparta na zbiorach danych ADO.NET (C#) (137)
- Row Data Gateway (Brama danych wiersza) (140)
- Na czym polega (140)
- Kiedy używamy (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 używamy (148)
- Przykład: prosta tabela osób (Java) (148)
- Data Mapper (Odwzorowanie danych) (152)
- Na czym polega (152)
- Kiedy używamy (156)
- Przykład: proste odwzorowanie obiektowo-relacyjne (Java) (157)
- Przykład: wyłączanie metod wyszukujących (Java) (162)
- Przykład: tworzenie obiektu pustego (Java) (165)
Rozdział 11. Wzorce zachowań dla mapowania obiektowo-relacyjnego (169)
- Unit of Work (Jednostka pracy) (169)
- Na czym polega (170)
- Kiedy używamy (173)
- Przykład: rejestracja przez obiekt (Java) (174)
- Identity Map (Mapa tożsamości) (178)
- Na czym polega (178)
- Kiedy używamy (180)
- Przykład: metody mapy tożsamości (Java) (181)
- Lazy Load (Opóźnione ładowanie) (182)
- Na czym polega (182)
- Kiedy używamy (184)
- Przykład: opóźniona inicjalizacja (Java) (185)
- Przykład: wirtualny pośrednik (Java) (185)
- Przykład: uchwyt wartości (Java) (187)
- Przykład: widmo (C#) (188)
Rozdział 12. Wzorce struktury dla mapowania obiektowo-relacyjnego (197)
- Identity Field (Pole tożsamości) (197)
- Na czym polega (197)
- Kiedy używamy (201)
- Warto przeczytać (201)
- Przykład: liczba całkowita jako klucz (C#) (201)
- Przykład: tabela kluczy (Java) (203)
- Przykład: klucz złożony (Java) (205)
- Foreign Key Mapping (Odwzorowanie do klucza obcego) (216)
- Na czym polega (216)
- Kiedy używamy (218)
- Przykład: odwołanie jednowartościowe (Java) (219)
- Przykład: wyszukiwanie w wielu tabelach (Java) (222)
- Przykład: kolekcja odwołań (C#) (223)
- Association Table Mapping (Odwzorowanie do tabeli asocjacji) (226)
- Na czym polega (226)
- Kiedy używamy (227)
- Przykład: pracownicy i umiejętności (C#) (227)
- Przykład: odwzorowanie z kodem SQL (Java) (230)
- Przykład: jedno zapytanie do obsługi wielu pracowników (Java) (234)
- Dependent Mapping (Odwzorowanie składowych) (239)
- Na czym polega (239)
- Kiedy używamy (240)
- Przykład: albumy i ścieżki (Java) (241)
- Embedded Value (Wartość osadzona) (244)
- Na czym polega (244)
- Kiedy używamy (244)
- Warto przeczytać (245)
- Przykład: prosty obiekt wartości (Java) (245)
- Serialized LOB (Duży obiekt serializowany) (247)
- Na czym polega (247)
- Kiedy używamy (248)
- Przykład: serializowanie hierarchii działów firmy do postaci XML (Java) (249)
- Single Table Inheritance (Odwzorowanie dziedziczenia do pojedynczej tabeli) (252)
- Na czym polega (252)
- Kiedy używamy (253)
- Przykład: tabela zawodników (C#) (253)
- Class Table Inheritance (Odwzorowanie dziedziczenia do tabel klas) (259)
- Na czym polega (259)
- Kiedy używamy (260)
- Warto przeczytać (260)
- Przykład: zawodnicy (C#) (260)
- Concrete Table Inheritance (Odwzorowanie dziedziczenia do tabel konkretnych) (266)
- Na czym polega (266)
- Kiedy używamy (268)
- Przykład: zawodnicy (C#) (268)
- Inheritance Mappers (Klasy odwzorowania dziedziczenia) (274)
- Na czym polega (275)
- Kiedy używamy (276)
Rozdział 13. Wzorce odwzorowań obiektów i relacyjnych metadanych (277)
- Metadata Mapping (Odwzorowanie metadanych) (277)
- Na czym polega (277)
- Kiedy używamy (279)
- Przykład: użycie metadanych i odzwierciedlania (Java) (280)
- Query Object (Obiekt zapytania) (287)
- Na czym polega (287)
- Kiedy używamy (288)
- Warto przeczytać (289)
- Przykład: prosty wzorzec Obiekt zapytania (Java) (289)
- Repository (Magazyn) (293)
- Na czym polega (294)
- Kiedy używamy (295)
- Warto przeczytać (296)
- Przykład: odnajdywanie osób utrzymywanych przez podaną osobę (Java) (296)
- Przykład: zamiana strategii wzorca Repository (Java) (297)
Rozdział 14. Wzorce prezentacji internetowych (299)
- Model View Controller (Model kontrolera widoku) (299)
- Na czym polega (299)
- Kiedy używamy (301)
- Page Controller (Kontroler strony) (302)
- Na czym polega (302)
- Kiedy używamy (303)
- Przykład: prosta prezentacja z serwletem pełniącym funkcję kontrolera oraz stroną JSP pełniącą rolę widoku (Java) (304)
- Przykład: zastosowanie strony JSP do obsługi żądania (Java) (306)
- Przykład: mechanizm obsługi stron wykorzystujący kod schowany (C#) (309)
- Front Controller (Kontroler fasady) (313)
- Na czym polega (313)
- Kiedy używamy (315)
- Warto przeczytać (315)
- Przykład: prosta prezentacja (Java) (315)
- Template View (Szablon widoku) (318)
- Na czym polega (318)
- Kiedy używamy (322)
- Przykład: wykorzystanie JSP jako widoku wraz z osobnym kontrolerem (Java) (322)
- Przykład: strona ASP.NET (C#) (325)
- Transform View (Widok przekształcający) (328)
- Na czym polega (328)
- Kiedy używamy (329)
- Przykład: proste przekształcenie (Java) (330)
- Two Step View (Widok dwuetapowy) (332)
- Na czym polega (332)
- Kiedy używamy (333)
- Przykład: dwuetapowe przekształcenie XSLT (XSLT) (338)
- Przykład: JSP i znaczniki niestandardowe (Java) (340)
- Application Controller (Kontroler aplikacji) (345)
- Na czym polega (345)
- Kiedy używamy (347)
- Warto przeczytać (347)
- Przykład: kontroler aplikacji obsługujący model stanu (Java) (347)
Rozdział 15. Wzorce dystrybucji (353)
- Remote Facade (Zdalna fasada) (353)
- Na czym polega (354)
- Kiedy używamy (357)
- Przykład: zastosowanie komponentu session bean i zdalnej fasady (Java) (357)
- Przykład: usługa WWW (C#) (360)
- Data Transfer Object (Obiekt transferu danych) (366)
- Na czym polega (366)
- Kiedy używamy (370)
- Warto przeczytać (371)
- Przykład: przekazywanie informacji o albumach (Java) (371)
- Przykład: serializacja danych do postaci XML (Java) (375)
Rozdział 16. Wzorce współbieżności autonomicznej (379)
- Optimistic Offline Lock (Optymistyczna blokada autonomiczna) (379)
- Na czym polega (380)
- Kiedy używamy (383)
- Przykład: warstwa dziedziny i wzorzec Data Mappers (165) (Java) (384)
- Pessimistic Offline Lock (Pesymistyczna blokada autonomiczna) (389)
- Na czym polega (390)
- Kiedy używamy (393)
- Przykład: prosty menedżer blokad (Java) (394)
- Coarse-Grained Lock (Blokada gruboziarnista) (400)
- Na czym polega (400)
- Kiedy używamy (402)
- Przykład: wspólna blokada Optimistic Offline Lock (416) (Java) (403)
- Przykład: wspólna blokada Pessimistic Offline Lock (426) (Java) (408)
- Przykład: blokowanie korzenia przy użyciu blokady Pessimistic Offline Lock (416) (Java) (409)
- Implicit Lock (Blokada domyślna) (410)
- Na czym polega (411)
- Kiedy używamy (412)
- Przykład: niejawna blokada Pessimistic Offline Lock (426) (Java) (412)
Rozdział 17. Wzorce stanu sesji (415)
- Client Session State (Stan sesji klienta) (415)
- Na czym polega (415)
- Kiedy używamy (416)
- Server Session State (Stan sesji serwera) (418)
- Na czym polega (418)
- Kiedy używamy (420)
- Database Session State (Stan sesji bazy danych) (421)
- Na czym polega (421)
- Kiedy używamy (423)
Rozdział 18. Wzorce podstawowe (425)
- Gateway (Brama) (425)
- Na czym polega (426)
- Kiedy używamy (426)
- Przykład: brama pośrednicząca w korzystaniu z usługi rozsyłania komunikatów (Java) (427)
- Mapper (Odwzorowanie) (432)
- Na czym polega (432)
- Kiedy używamy (433)
- Layer Supertype (Typ bazowy warstwy) (434)
- Na czym polega (434)
- Kiedy używamy (434)
- Przykład: obiekt domeny (Java) (434)
- Separated Interface (Interfejs oddzielony) (435)
- Na czym polega (435)
- Kiedy używamy (437)
- Registry (Rejestr) (438)
- Na czym polega (438)
- Kiedy używamy (440)
- Przykład: rejestr bazujący na wzorcu Singleton (Java) (440)
- Przykład: rejestr nadający się do zastosowania w środowiskach wielowątkowych (Java) (442)
- Value Object (Obiekt wartości) (444)
- Na czym polega (444)
- Kiedy używamy (445)
- Money (PieniÄ…dze) (446)
- Na czym polega (446)
- Kiedy używamy (448)
- Przykład: klasa Money (Java) (449)
- Special Case (Przypadek szczególny) (453)
- Na czym polega (453)
- Kiedy używamy (454)
- Warto przeczytać (454)
- Przykład: prosta implementacja pustego obiektu (C#) (454)
- Plugin (456)
- Na czym polega (456)
- Kiedy używamy (457)
- Przykład: generator identyfikatorów (Java) (457)
- Service Stub (Usługa zastępcza) (461)
- Na czym polega (461)
- Kiedy używamy (462)
- Przykład: usługa podatkowa (Java) (462)
- Record set (Zbiór rekordów) (465)
- Na czym polega (465)
- Kiedy używamy (467)
Dodatki (469)
Bibliografia (471)
Skorowidz (477)