Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00738 010214 10704470 na godz. na dobę w sumie
Enterprise JavaBeans - książka
Enterprise JavaBeans - książka
Autor: , , Liczba stron: 608
Wydawca: Helion Język publikacji: polski
ISBN: 83-7361-073-1 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> programowanie >> j2ee - programowanie
Porównaj ceny (książka, ebook, audiobook).
Technologia EJB stanowi podstawę platformy Java 2 Enterprise Edition. Umożliwia ona tworzenie komponentów programistycznych działających po stronie serwera, które mogą być instalowane i uruchamiane na serwerach aplikacyjnych różnych producentów, zgodnych ze standardem EJB. Technologia EJB umożliwia zakup gotowych komponentów od konkretnego sprzedawcy, połączenie z komponentami od innego sprzedawcy i uruchomienie ich na serwerze aplikacji dostarczonym przez jeszcze kogoś innego. EJB doczekało się już drugiej wersji specyfikacji. EJB 2.0 wprowadza wiele zmian, w tym nowy rodzaj komponentów: sterowane komunikatami.

Książka 'Enterprise JavaBeans' opisuje EJB 2.0 prezentując zarówno podstawowe zagadnienia związane z komponentami EJB, jak i tematy najbardziej zaawansowane. Pokazuje w ten sposób zalety i wady budowania aplikacji opartych na tej technologii. Dzięki tej książce nauczysz się tak pasjonujących zagadnień, jak strategie projektowe EJB, relacje EJB oraz rozmaite spojrzenia na kwestię trwałości danych przetwarzanych przez komponenty. Do zrozumienia tej książki wymagana jest wyłącznie znajomość Javy.

Książka przedstawia:

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

IDZ DO IDZ DO PRZYK£ADOWY ROZDZIA£ PRZYK£ADOWY ROZDZIA£ SPIS TREĎCI SPIS TREĎCI Enterprise JavaBeans KATALOG KSI¥¯EK KATALOG KSI¥¯EK KATALOG ONLINE KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK TWÓJ KOSZYK DODAJ DO KOSZYKA DODAJ DO KOSZYKA CENNIK I INFORMACJE CENNIK I INFORMACJE ZAMÓW INFORMACJE ZAMÓW INFORMACJE O NOWOĎCIACH O NOWOĎCIACH ZAMÓW CENNIK ZAMÓW CENNIK CZYTELNIA CZYTELNIA FRAGMENTY KSI¥¯EK ONLINE FRAGMENTY KSI¥¯EK ONLINE Autorzy: Ed Roman, Scott W. Ambler, Tyler Jewell T³umaczenie: Pawe³ Gonera, Miko³aj Szczepaniak ISBN: 83-7361-073-1 Tytu³ orygina³u: Mastering Enterprise JavaBeans, 2nd Edition Format: B5, stron: 609 Technologia EJB stanowi podstawê platformy Java 2 Enterprise Edition. Umo¿liwia ona tworzenie komponentów programistycznych dzia³aj¹cych po stronie serwera, które mog¹ byæ instalowane i uruchamiane na serwerach aplikacyjnych ró¿nych producentów, zgodnych ze standardem EJB. Technologia EJB umo¿liwia zakup gotowych komponentów od konkretnego sprzedawcy, po³¹czenie z komponentami od innego sprzedawcy i uruchomienie ich na serwerze aplikacji dostarczonym przez jeszcze kogoġ innego. EJB doczeka³o siê ju¿ drugiej wersji specyfikacji. EJB 2.0 wprowadza wiele zmian, w tym nowy rodzaj komponentów: sterowane komunikatami. Ksi¹¿ka „Enterprise JavaBeans” opisuje EJB 2.0 prezentuj¹c zarówno podstawowe zagadnienia zwi¹zane z komponentami EJB, jak i tematy najbardziej zaawansowane. Pokazuje w ten sposób zalety i wady budowania aplikacji opartych na tej technologii. Dziêki tej ksi¹¿ce nauczysz siê tak pasjonuj¹cych zagadnieñ, jak strategie projektowe EJB, relacje EJB oraz rozmaite spojrzenia na kwestiê trwa³oġci danych przetwarzanych przez komponenty. Do zrozumienia tej ksi¹¿ki wymagana jest wy³¹cznie znajomoġæ Javy. Ksi¹¿ka przedstawia: • Podstawy tworzenia komponentów EJB • Komponenty sesyjne, encyjne i sterowane komunikatami • Zarz¹dzanie trwa³oġci¹, komponenty encyjne typu CMP • Java Message Service (JMS) • Relacje miêdzy komponentami encyjnymi • Najlepsze wzorce tworzenia sta³ych komponentów • Zarz¹dzanie projektami wykorzystuj¹cymi EJB • Ró¿ne serwery EJB i kryteria wyboru serwera • Budowê aplikacji z wykorzystaniem EJB, serwletów i JSP Wydawnictwo Helion ul. Chopina 6 44-100 Gliwice tel. (32)230-98-63 e-mail: helion@helion.pl Spis treści O Autorze ......................................................................................... 15 Przedmowa ....................................................................................... 17 Wstęp .............................................................................................. 21 Część I Wprowadzenie ...................................................r.............. 27 Rozdział 1. Wstęp do EJB ................................................................................... 29 Przyczyny powstania EJB...................................................w.....................................29 Dziel i zwyciężaj ...................................................w.................................................32 Architektura komponentowa ...................................................w.................................36 Wprowadzenie Enterprise JavaBeans...................................................w.....................37 Dlaczego Java? ...................................................w..............................................38 EJB jako rozwiązanie biznesowe ...................................................w.....................39 „Ekosystem” EJB ...................................................w................................................41 Dostawca komponentu ...................................................w...................................41 Programista aplikacji ...................................................w......................................42 Wdrożeniowiec EJB...................................................w.......................................42 Administrator systemu...................................................w....................................43 Dostawca kontenera i serwera ...................................................w.........................43 Sprzedawcy narzędzi...................................................w......................................44 Podsumowanie ról...................................................w..........................................44 Platforma Java 2, Enterprise Edition (J2EE) ...................................................w...........46 Technologie J2EE...................................................w..........................................47 Podsumowanie ...................................................w...................................................w.51 Rozdział 2. Podstawy EJB................................................................................... 53 Komponenty EJB ...................................................w................................................53 Rodzaje komponentów ...................................................w...................................54 Obiekty rozproszone. Podstawa technologii EJB...................................................w.....55 Obiekty rozproszone i oprogramowanie pośredniczące...............................................57 Jawne oprogramowanie pośredniczące ...................................................w.............57 Niejawne oprogramowanie pośredniczące ...................................................w........59 Z czego składa się komponent EJB? ...................................................w......................60 Klasa komponentu EJB ...................................................w..................................60 Obiekt EJB...................................................w...................................................w.62 Obiekt domowy ...................................................w.............................................67 6 Enterprise JavaBeans Interfejsy lokalne ...................................................w...........................................69 Deskryptor rozmieszczenia ...................................................w.............................71 Pliki wymagane przez producentów serwerów...................................................w..73 Plik ejb-jar ...................................................w...................................................w.73 Podsumowanie dotyczące wprowadzonych pojęć.................................................74 Podsumowanie ...................................................w...................................................w.76 Rozdział 3. Twój pierwszy komponent ................................................................. 77 Jak opracować komponent EJB? ...................................................w...........................77 Interfejs zdalny...................................................w...................................................w.78 Interfejs lokalny...................................................w...................................................w79 Interfejs domowy...................................................w.................................................80 Lokalny interfejs domowy ...................................................w....................................81 Klasa komponentu ...................................................w...............................................83 Deskryptor rozmieszczenia ...................................................w...................................86 Pliki wymagane przez producentów serwerów ...................................................w.......87 Plik ejb-jar ...................................................w...................................................w.......87 Wdrażanie komponentu...................................................w........................................88 Opcjonalny plik jar dla klienta EJB ...................................................w.......................89 Jak wywoływać komponenty?...................................................w...............................90 Znajdowanie obiektu domowego ...................................................w.....................90 Uruchamianie systemu ...................................................w.........................................94 Wyjście po stronie serwera ...................................................w.............................94 Wyjście po stronie klienta ...................................................w...............................95 Implementacja interfejsów komponentu ...................................................w.................95 Rozwiązanie ...................................................w..................................................96 Podsumowanie ...................................................w...................................................w.96 Część II Triada komponentów ...................................................r.... 97 Rozdział 4. Wprowadzenie do komponentów sesyjnych ....................................... 99 Czas życia komponentu sesyjnego...................................................w.........................99 Podtypy komponentów sesyjnych ...................................................w.......................100 Stanowe komponenty sesyjne ...................................................w.......................100 Bezstanowe komponenty sesyjne ...................................................w..................101 Specjalne właściwości stanowych komponentów sesyjnych......................................102 Realizowanie efektu gromadzenia komponentów stanowych...............................102 Zasady zarządzania stanem konwersacji...................................................w.........104 Zwrotne metody aktywacji i pasywacji...................................................w...........105 Podsumowanie implementacji metod ...................................................w.............107 Prosty bezstanowy komponent sesyjny ...................................................w..........109 Diagramy cyklu życia komponentów sesyjnych.................................................116 Podsumowanie ...................................................w..................................................119 Rozdział 5. Wprowadzenie do komponentów encyjnych..................................... 121 Pojęcia związane z trwałością ...................................................w.............................122 Serializacja obiektów Javy...................................................w............................122 Odwzorowanie obiektowo-relacyjne ...................................................w..............122 Obiektowe bazy danych...................................................w................................124 Czym jest komponent encyjny?...................................................w...........................125 Pliki składające się na komponent encyjny...................................................w.....127 Własności komponentów encyjnych...................................................w....................128 Komponenty encyjne — odporność na awarie ...................................................w128 Komponent encyjny — perspektywa bazy danych .............................................129 Wiele egzemplarzy komponentu encyjnego może reprezentować te same dane.....130 Spis treści 7 Egzemplarze komponentów encyjnych mogą być gromadzone............................131 Istnieją dwa sposoby utrwalania komponentów encyjnych..................................134 Tworzenie i usuwanie komponentów encyjnych ................................................135 Wyszukiwanie komponentów encyjnych...................................................w........136 Modyfikacja danych komponentu encyjnego bez EJB ........................................137 Kontekst encji ...................................................w...................................................w138 Metody getEJBLocalObject() oraz getEJBObject().............................................139 Metoda getPrimaryKey() ...................................................w..............................139 Podsumowanie ...................................................w..................................................140 Rozdział 6. Pisanie komponentów encyjnych bezpośrednio zarządzających trwałością.......................................... 141 Podstawy kodowania komponentów encyjnych ...................................................w....141 Znajdowanie istniejących komponentów encyjnych — metody ejbFind().............143 Przykład komponentu encyjnego bezpośrednio zarządzającego trwałością — konto bankowe ...................................148 Plik Konto.java...................................................w............................................149 Plik KontoLokalny.java ...................................................w................................150 Plik KontoDomowy.java ...................................................w..............................151 Plik KontoLokalnyDomowy.java...................................................w...................153 Plik KontoKG.java...................................................w.......................................154 Plik KontoKomponent.java...................................................w...........................155 Plik KontoException.java ...................................................w.............................166 Plik Klient.java...................................................w............................................166 Deskryptor rozmieszczenia ...................................................w...........................168 Deskryptor rozmieszczenia charakterystyczny dla kontenera EJB........................170 Przygotowanie bazy danych...................................................w..........................170 Uruchamianie programu klienta ...................................................w..........................171 Wyjście po stronie serwera ...................................................w...........................171 Wyjście po stronie klienta ...................................................w.............................172 Podsumowanie — cykl życia komponentów encyjnych typu BMP............................173 Podsumowanie ...................................................w..................................................175 Rozdział 7. Pisanie komponentów encyjnych o trwałości zarządzanej przez kontener ........................................... 177 Cechy komponentów encyjnych CMP ...................................................w.................177 Komponenty encyjne CMP jako podklasy...................................................w......177 Komponenty Encyjne CMP nie zawierają zadeklarowanych pól ..........................178 Definiowanie metod zwracających (ustawiających) wartości pól w podklasie komponentu ...................................................w............................180 Komponenty encyjne CMP — działanie według abstrakcyjnego schematu trwałości ...................................182 Własny język zapytań komponentów encyjnych CMP........................................ 183 Komponenty encyjne CMP zawierające metody ejbSelect()................................185 Wskazówki dotyczące programowania komponentów encyjnych o trwałości zarządzanej przez kontener...................................................w..............186 Przykład komponentu encyjnego o trwałości zarządzanej przez kontener Linia produktów........................................190 Plik Produkt.java ...................................................w.........................................191 Plik ProduktLokalny.java ...................................................w.............................191 Plik ProduktDomowy.java...................................................w............................192 Plik ProduktLokalnyDomowy.java ...................................................w................194 Plik ProduktKG.java ...................................................w....................................195 Plik ProduktKomponent.java ...................................................w........................196 8 Enterprise JavaBeans Deskryptor rozmieszczenia ...................................................w...........................200 Deskryptor rozmieszczenia specyficzny dla kontenera........................................203 Plik Klient.java...................................................w............................................203 Uruchamianie programu klienta ...................................................w..........................206 Cykl życia komponentów encyjnych typu CMP...................................................w.... 206 Podsumowanie ...................................................w..................................................207 Rozdział 8. Komponenty sterowane komunikatami — wprowadzenie ................. 209 Powody stosowania komponentów sterowanych komunikatami ................................210 Java Message Service (JMS)...................................................w...............................211 Domeny przesyłania komunikatów ...................................................w................212 Interfejs programowy JMS..................................................w.............................214 Połączenie usług JMS z technologią EJB ...................................................w.............217 Komponent sterowany komunikatami ...................................................w............219 Programowanie komponentów sterowanych komunikatami ......................................222 Semantyka ...................................................w..................................................222 Prosty przykład...................................................w............................................224 Zagadnienia zaawansowane ...................................................w................................230 Problemy związane z komponentami sterowanymi komunikatami .............................233 Uporządkowanie komunikatów ...................................................w.....................233 Brak wywołań metody ejbRemove()...................................................w..............234 Trujące komunikaty ...................................................w.....................................234 Jak zwracać wyniki do producentów komunikatów?...........................................237 Przyszłość — asynchroniczne wywoływanie metod ...........................................241 Podsumowanie ...................................................w..................................................242 Rozdział 9. Dodawanie funkcjonalności do komponentów ................................. 243 Wywoływanie komponentów z poziomu innych komponentów.................................243 Domyślne wyszukiwanie JNDI...................................................w......................244 Odwołania EJB...................................................w............................................245 Źródła zasobów ...................................................w.................................................247 Własności środowiska ...................................................w........................................249 Zagadnienia związane z bezpieczeństwem EJB ...................................................w....251 Krok pierwszy — uwierzytelnienie ...................................................w................251 Krok drugi — autoryzacja...................................................w.............................261 Propagacja bezpieczeństwa ...................................................w...........................269 Mechanizm uchwytów ...................................................w.......................................271 Uchwyty domowe...................................................w........................................272 Podsumowanie ...................................................w..................................................272 Część III Zaawansowane elementy technologii Enterprise JavaBeans .................................. 273 Rozdział 10. Transakcje ..................................................................................... 275 Przyczyny stosowania transakcji ...................................................w.........................275 Operacje atomowe ...................................................w.......................................276 Awaria sieci lub komputera...................................................w...........................277 Dane współdzielone przez wielu użytkowników ................................................278 Korzyści płynące ze stosowania transakcji ...................................................w...........279 Własności ACID ...................................................w..........................................279 Modele transakcyjne ...................................................w..........................................282 Transakcje płaskie...................................................w........................................282 Transakcje zagnieżdżone ...................................................w..............................284 Inne modele transakcyjne ...................................................w.............................285 Spis treści 9 Włączanie transakcji do technologii Enterprise JavaBeans........................................285 Oddzielenie systemu transakcyjnego...................................................w..............286 Transakcje deklaratywne, programowane i inicjowane przez klienta ....................286 Wybór stylu transakcji...................................................w..................................289 Transakcje zarządzane przez kontener ...................................................w.................291 Wartości atrybutów transakcji EJB ...................................................w................292 Transakcje programowane w technologii EJB...................................................w.......298 Usługa transakcji obiektów CORBA ...................................................w..............298 Usługa transakcji Javy (JTS)...................................................w.........................299 Interfejs transakcji Javy (JTA)...................................................w.......................299 Porównanie transakcji deklaratywnych i programowanych na odpowiednim przykładzie...................................................w.......................301 Transakcje w kodzie klienta ...................................................w................................303 Izolacja transakcji ...................................................w..............................................305 Potrzeba kontroli współbieżności...................................................w...................305 Izolacja w technologii EJB...................................................w............................306 Problem brudnego odczytu ...................................................w...........................308 Problem niepowtarzalnego odczytu...................................................w................309 Problem widma...................................................w............................................310 Izolacja transakcji — podsumowanie ...................................................w.............311 Izolacja w środowisku EJB ...................................................w...........................312 Pesymistyczna i optymistyczna kontrola współbieżności ....................................312 Transakcje rozproszone...................................................w......................................313 Trwałość i dwufazowy protokół zatwierdzania...................................................w314 Protokół komunikacji transakcyjnej oraz kontekst transakcji ...............................316 Projektowanie konwersacji transakcyjnych w technologii EJB ..................................317 Podsumowanie ...................................................w..................................................320 Rozdział 11. Powiązania komponentów typu BMP i CMP .................................... 321 Różnice pomiędzy CMP i BMP ...................................................w..........................322 Liczność ...................................................w...................................................w........322 Związki 1:1 ...................................................w.................................................324 Związki 1:N...................................................w.................................................327 Związki M:N ...................................................w...............................................331 Kierunkowość ...................................................w...................................................w338 Implementowanie kierunkowości w komponentach typu BMP............................338 Implementowanie kierunkowości w komponentach typu CMP............................339 Kierunkowość może nie odwzorowywać schematu bazy danych.........................341 Dwukierunkowe czy jednokierunkowe? ...................................................w.........342 Leniwe ładowanie ...................................................w..............................................342 Agregacja, składanie oraz usuwanie kaskadowe...................................................w....343 Relacje i język EJB-QL...................................................w......................................345 Związki rekursywne...................................................w...........................................346 Związki cykliczne ...................................................w..............................................347 Integralność powiązań...................................................w........................................348 Relacje, integracja związków oraz kod klienta ...................................................w349 Podsumowanie ...................................................w..................................................351 Rozdział 12. Najlepsze nawyki utrwalania danych............................................... 353 Kiedy korzystać z komponentów encyjnych? ...................................................w.......354 Kontrola...................................................w...................................................w...354 Analogie przekazywania parametrów...................................................w.............354 Dane proceduralne i obiektowe...................................................w......................355 Buforowanie...................................................w................................................355 10 Enterprise JavaBeans Wymuszenie niezależności schematu bazy danych.............................................356 Łatwość użycia ...................................................w............................................356 Migracja...................................................w...................................................w...357 Błyskawiczne wytwarzanie aplikacji...................................................w..............357 Wybór pomiędzy CMP a BMP ...................................................w...........................358 Redukcja ilości kodu i błyskawiczne wytwarzanie aplikacji ................................358 Wydajność ...................................................w..................................................358 Błędy...................................................w...................................................w.......359 Kontrola...................................................w...................................................w...359 Niezależność serwera aplikacji i bazy danych...................................................w.360 Relacje...................................................w...................................................w.....360 Zrozumienie zasadności poniesionych kosztów..................................................361 Wybór odpowiedniej ziarnistości dla komponentów encyjnych.................................361 Wskazówki dotyczące utrwalania danych...................................................w.............362 Uważaj na niezgodność impedancji obiektowo-relacyjnej...................................363 Sztywne i miękkie kodowanie instrukcji języka SQL .........................................363 Kiedy stosować procedury składowane?...................................................w.........364 Normalizacja i denormalizacja ...................................................w......................366 Wykorzystuj model obiektowy EJB do projektowania modelu danych.................368 Postępuj zgodnie z dobrym schematem projektowania danych ............................368 Używaj kluczy zastępczych ...................................................w..........................369 Zrozumienie przebiegu aktualizacji bazy danych ...............................................370 Wersjonowanie komponentów EJB ...................................................w...............370 Wykorzystywanie istniejących projektów bazy danych.......................................372 Obsługa dużych zbiorów wynikowych ...................................................w...........381 Podsumowanie ...................................................w..................................................382 Rozdział 13. Najlepsze praktyki EJB oraz optymalizacja wydajności...................... 383 Korzystanie ze stanowości i bezstanowości ...................................................w.......... 383 Kiedy korzystać z komunikatów, a kiedy z RMI-IIOP? ............................................385 W jaki sposób zagwarantować czas odpowiedzi na etapie planowania obciążenia?......389 Jak w EJB realizować wzorzec singleton? ...................................................w............390 Opakowywanie komponentów encyjnych komponentami sesyjnymi..........................390 Optymalizacja wydajności komponentów encyjnych................................................392 Wybór pomiędzy interfejsami lokalnymi a zdalnymi ................................................394 Jak uruchamiać EJB? ...................................................w.........................................394 Partycjonowanie zasobów ...................................................w..................................396 Łączenie komponentów...................................................w......................................397 Tworzenie komponentów wielokrotnego użytku...................................................w...398 Użycie XML-a w systemach EJB...................................................w........................399 Integracja istniejących systemów z EJB ...................................................w...............400 Podsumowanie ...................................................w..................................................402 Rozdział 14. Klastry ........................................................................................... 403 Omówienie systemów dużej skali ...................................................w........................403 Co to jest system dużej skali? ...................................................w........................404 Podstawowa terminologia ...................................................w.............................405 Partycjonowanie klastra...................................................w................................406 Tworzenie klastrów EJB...................................................w.....................................410 Jak można klasteryzować EJB? ...................................................w.....................410 Koncepcja powtarzalności...................................................w.............................411 Klasteryzacja bezstanowych komponentów sesyjnych........................................413 Klasteryzacja komponentów sesyjnych ze stanem..............................................415 Klasteryzacja komponentów encyjnych...................................................w..........416 Klasteryzacja komponentów sterowanych komunikatami....................................420 Spis treści 11 Inne zagadnienia klasteryzacji EJB...................................................w......................421 Pierwszy kontakt ...................................................w.........................................421 Kod obsługi początkowego dostępu...................................................w...............421 Podsumowanie ...................................................w..................................................422 Rozdział 15. Właściwe rozpoczęcie projektu EJB ................................................ 423 Sporządzenie listy wymagań...................................................w...............................423 Czy technologia J2EE jest właściwa?...................................................w...................424 Czy technologia EJB jest właściwa? ...................................................w....................424 Zatrudnianie pracowników realizujących projekt ...................................................w..428 Projektowanie kompletnego modelu obiektowego...................................................w.429 Implementacja jednego pionowego segmentu ...................................................w.......430 Wybór serwera aplikacji ...................................................w.....................................432 Podział zespołu...................................................w..................................................433 Inwestycja w narzędzia ...................................................w......................................435 Inwestycja w standardowy proces generacji aplikacji ...............................................435 Kolejne kroki...................................................w...................................................w..436 Podsumowanie ...................................................w..................................................436 Rozdział 16. Wybór serwera EJB ......................................................................... 437 Zgodność z J2EE 1.3 ...................................................w.........................................438 Wymienny JRE ...................................................w.................................................438 Narzędzia konwersji...................................................w...........................................438 Skomplikowane odwzorowania ...................................................w...........................438 Obsługa sterowników JDBC innych producentów...................................................w.439 Opóźnione ładowanie ...................................................w.........................................439 Opóźniony zapis do bazy danych ...................................................w........................439 Wymienne moduły utrwalania...................................................w.............................439 Buforowanie danych w pamięci...................................................w...........................440 Zintegrowana obsługa wielowarstwowości...................................................w...........440 Skalowalność ...................................................w...................................................w.440 Wysoka dostępność ...................................................w...........................................441 Bezpieczeństwo ...................................................w.................................................441 Integracja z IDE ...................................................w................................................442 Integracja z edytorem UML...................................................w................................442 Inteligentne wyrównywanie obciążenia...................................................w................443 Bezstanowa praca pomimo awarii...................................................w........................443 Klasteryzacja...................................................w...................................................w..443 Java Management Extension (JMX) ...................................................w....................444 Pomoc dla administratora ...................................................w...................................444 Instalacja w czasie pracy serwera ...................................................w........................444 Pula instancji ...................................................w...................................................w..444 Automatyczna generacja EJB...................................................w..............................445 Bezpieczne wyłączanie...................................................w.......................................445 Instalacja w czasie pracy ...................................................w....................................445 Transakcje rozproszone...................................................w......................................445 Doskonała architektura komunikatów ...................................................w..................446 Dostarczane komponenty EJB ...................................................w............................446 Architektura J2EE Connector Architecture (JCA) ...................................................w.446 Usługi WWW...................................................w...................................................w.447 Organizacja pracy...................................................w..............................................447 Open Source ...................................................w...................................................w..448 Usługi specjalizowane ...................................................w........................................448 Kryteria nietechniczne...................................................w........................................449 Podsumowanie ...................................................w..................................................449 12 Enterprise JavaBeans Rozdział 17. Integracja EJB-J2EE. Tworzenie kompletnej aplikacji ....................... 451 Problem biznesowy...................................................w............................................451 Wersja zapoznawcza gotowej witryny ...................................................w.................452 Określanie wymagań technicznych...................................................w......................454 Model obiektowy warstwy logiki biznesowej..................................................w...455 Model obiektowy warstwy prezentacji ...................................................w...........461 Przykładowy kod...................................................w...............................................467 Podsumowanie ...................................................w..................................................472 Dodatki ...................................................r...................................... 473 Dodatek A Samouczek RMI-IIOP oraz JNDI........................................................ 475 Java RMI-IIOP...................................................w..................................................476 Zdalne wywoływanie metod...................................................w..........................476 Zdalne interfejsy ...................................................w..........................................478 Implementacja obiektów zdalnych...................................................w.................479 Pieńki i szkielety...................................................w..........................................481 Serializacja obiektów i przekazywanie parametrów..................................................482 Przekazywanie parametrów przez wartość...................................................w......482 Serializacja obiektów...................................................w....................................483 Co powinno być oznaczone jako transient?...................................................w.....485 Serializacja obiektów i RMI-IIOP ...................................................w.................485 Java Naming and Directory Interface (JNDI)...................................................w........487 Usługi nazw i usługi katalogowe ...................................................w...................488 Problemy z usługami nazw i katalogami...................................................w.........490 Wprowadzenie do JNDI ...................................................w...............................490 Zalety JNDI...................................................w.................................................490 Architektura JNDI...................................................w........................................491 Koncepcje JNDI ...................................................w..........................................492 Programowanie z wykorzystaniem JNDI...................................................w........495 Integracja RMI-IIOP oraz JNDI...................................................w..........................496 Dołączanie serwera RMI-IIOP i JNDI...................................................w............498 Wyszukiwanie serwera RMI-IIOP za pomocą JNDI...........................................499 Podsumowanie ...................................................w..................................................499 Dodatek B Współpraca z CORBA ...................................................................... 501 Co to jest CORBA ...................................................w.............................................501 CORBA jako podstawa dla EJB ...................................................w....................502 Dlaczego powinniśmy przywiązywać wagę do standardu CORBA?...........................502 Wady CORBA...................................................w.............................................503 Sposób działania CORBA...................................................w...................................503 Object Request Broker ...................................................w.................................503 Język definicji interfejsu OMG ...................................................w...........................504 Tłumaczenie OMG IDL na konkretne języki ...................................................w..506 Statyczne wywołania CORBA...................................................w.......................506 Bogactwo usług CORBA...................................................w....................................508 Wymagania dla RMI-IIOP...................................................w..................................508 Wymagania dotyczące współpracy RMI-CORBA ..............................................509 Łączenie RMI i CORBA...................................................w...............................509 Realizacja współpracy RMI i CORBA — przegląd ..................................................514 Implementacja klienta RMI-IIOP z obiektami CORBA.......................................514 Implementacja klienta CORBA z obiektami RMI-IIOP ...................................... 515 Ładowanie początkowe przy wykorzystaniu RMI-IIOP i CORBA .......................515 Współdziałanie CORBA i EJB...................................................w............................516 Przykładowy kod ...................................................w.........................................516 Podsumowanie ...................................................w..................................................518 Spis treści 13 Dodatek C Deskryptory instalacji ..................................................................... 519 Jak czytać DTD? ...................................................w...............................................519 Nagłówek i element główny...................................................w................................520 Definiowanie komponentów sesyjnych...................................................w................521 session ...................................................w...................................................w.521 Definiowanie komponentów encyjnych ...................................................w...............522 entity ...................................................w...................................................w...523 cmp-field ..................................................w..................................................525 query ...................................................w...................................................w...525 query-method ...................................................w..........................................525 method-params ...................................................w........................................525 Definiowanie komponentów sterowanych zdarzeniami.............................................526 message-driven ...................................................w........................................526 message-driven-destination ...................................................w.......................527 Definiowanie właściwości środowiska ...................................................w.................528 env-entry ..................................................w..................................................528 Definiowanie referencji EJB ...................................................w...............................528 ejb-ref ...................................................w...................................................w..529 ejb-local-ref ...................................................w.............................................530 Definiowanie zabezpieczeń...................................................w.................................530 security-role-ref ...................................................w.......................................531 security-identity ...................................................w.......................................531 run-as ...................................................w...................................................w..531 Zarządzanie zasobami ...................................................w........................................531 resource-ref ...................................................w.............................................532 resource-env-ref ..................................................w........................................532 Definiowanie relacji ...................................................w...........................................533 relationships ...................................................w............................................534 ejb-relation ...................................................w..............................................534 ejb-relationship-role ...................................................w.................................534 relationship-role-source ...................................................w............................535 cmr-field ...................................................w.................................................535 Definiowanie deskryptora danych składowych ...................................................w.....535 assembly-descriptor ..................................................w...................................536 security-role ...................................................w............................................537 method-permission ...................................................w...................................537 container-transaction ...................................................w................................537 exclude-list ...................................................w..............................................538 method ..................................................w...................................................w..538 method-params ...................................................w........................................538 Dodatek D Język zapytań EJB (EJB-QL) ............................................................. 539 Przegląd...................................................w...................................................w.........539 Prosty przykład...................................................w............................................540 Potęga relacji ...................................................w...............................................541 Składnia EJB-QL...................................................w...............................................542 Klauzula FROM ...................................................w..........................................542 Klauzula WHERE...................................................w........................................544 Klauzula SELECT ...................................................w.......................................547 Tablice prawdy...................................................w............................................550 Uwagi końcowe...................................................w.................................................551 Podsumowanie ...................................................w..................................................552 14 Enterprise JavaBeans Dodatek E Krótki przewodnik po EJB................................................................ 553 Diagramy komponentów sesyjnych ...................................................w.....................553 Diagramy bezstanowych komponentów sesyjnych.............................................554 Diagramy komponentów sesyjnych ze stanem...................................................w555 Diagramy komponentów encyjnych...................................................w.....................557 Diagramy komponentów sterowanych zdarzeniami ..................................................561 Przewodnik po EJB API...................................................w.....................................562 EJBContext ...................................................w.................................................562 EJBHome...................................................w...................................................w.563 EJBLocalHome...................................................w............................................563 EJBLocalObject...................................................w...........................................564 EJBMetaData ...................................................w..............................................564 EJBObject...................................................w...................................................w565 EnterpriseBean ...................................................w............................................565 EntityBean ...................................................w..................................................566 EntityContext ...................................................w..............................................571 Handle ...................................................w...................................................w.....571 HomeHandle ...................................................w...............................................571 MessageDrivenBean...................................................w.....................................572 MessageDrivenContext..................................................w..................................573 SessionBean ...................................................w................................................573 SessionContext ...................................................w............................................573 SessionSynchronization...................................................w................................575 Przewodnik po wyjątkach...................................................w...................................575 Przewodnik po transakcjach ...................................................w...............................577 Skorowidz....................................................................................... 581 Rozdział 1. Wstęp do EJB Enterprise JavaBeans (EJB) jest komponentową architekturą aplikacji działających po stronie serwera, która znacznie upraszcza proces budowy, przeznaczonych dla przed- siębiorstw, rozproszonych aplikacji komponentowych w Javie. Za pomocą kompo- nentów EJB możesz pisać skalowalne, niezawodne i bezpieczne aplikacje bez potrzeby tworzenia własnych skomplikowanych szkieletów systemów rozproszonych. Tech- nologia EJB daje możliwość błyskawicznego opracowywania aplikacji działających po stronie serwera; możesz szybko i łatwo konstruować w Javie komponenty dla serwera w oparciu o napisaną wcześniej infrastrukturę rozproszoną dostarczoną z zewnątrz. EJB zostały zaprojektowane, by wspierać przenośność i możliwość ponownego wykorzysta- nia aplikacji dla sprzedawców oprogramowania pośredniczącego dla przedsiębiorstw. Jeśli pierwszy raz masz do czynienia z techniką komputerową przeznaczoną dla roz- wiązań biznesowych, poniższe pojęcia powinny Ci pomóc zrozumieć istotę problemu. Technologia EJB jest tematem skomplikowanym i wymaga obszernych objaśnień. W tym rozdziale zaprezentujemy EJB, udzielając odpowiedzi na poniższe pytania:  Jakich struktur potrzebujesz do zbudowania dobrego rozproszonego i obiektowego rozwiązania?  Czym są komponenty EJB i co daje ich użycie?  Jakie są najważniejsze elementy swoistego „ekosystemu EJB”? Wyjaśnijmy sobie te zagadnienia, wykorzystując metodę burzy mózgów. Przyczyny powstania EJB Rysunek 1.1 przedstawia schemat typowej aplikacji biznesowej. Taka aplikacja mo- głaby działać w dowolnym przedsiębiorstwie i rozwiązywać dowolne problemy biz- nesowe. Oto kilka przykładów:  system handlu papierami wartościowymi,  aplikacja bankowa, 30 Część I ♦ Wprowadzenie  centrum obsługi klienta,  system obsługi zaopatrzenia,  aplikacja analizy ryzyka ubezpieczeniowego. Zwróć uwagę na fakt, że przedstawiona aplikacja jest systemem rozproszonym. Roz- biliśmy to, co normalnie byłoby dużym, jednolitym tworem, i oddzieliliśmy od siebie poszczególne obszary aplikacji tak, by powstałe warstwy były od siebie niezależne. Spójrz na rysunek i zadaj sobie następujące pytanie: „Jeśli jednolitą aplikację rozbi- jemy na system rozproszony z wieloma klientami łączącymi się z wieloma serwerami i bazami danych za pośrednictwem sieci, co powinno być naszym głównym zmartwie- niem w odniesieniu do nowego systemu (patrz rysunek 1.1)?”. Rysunek 1.1. Standardowa architektura klient-serwer Zastanów się przez chwilę nad możliwie dużą liczbą zagadnień. Następnie przewróć stronę i porównaj swoją listę z naszą. Tylko nie oszukuj! W przeszłości większość przedsiębiorstw budowało swoje własne oprogramowanie. Przykładowo, firma oferująca usługi finansowe mogła budować oprogramowanie po- średniczące, które wspomagało system handlu akcjami. Obecnie przedsiębiorstwa, które same konstruują usługi pośredniczące, ponoszą spore ryzyko. Wykorzystywane obecnie oprogramowanie jest bardzo skomplikowane w bu- dowie i konserwacji, wymaga wiedzy eksperckiej i jest całkowicie niezrozumiałe dla pracowników większości firm. Po co więc tworzyć coś, co można kupić? Pomysł serwera aplikacji pojawił się, by umożliwić Ci kupowanie oprogramowania realizującego usługi pośredniczące, zamiast jego samodzielnego budowania. Serwery aplikacji udostępniają najbardziej popularne usługi, jak zarządzanie zasobami, obsługa sieci i wiele innych. Serwery takie pozwalają Ci skupić się na samej aplikacji bez po- trzeby martwienia się o całe oprogramowanie pośredniczące potrzebne do stworzenia dobrego rozwiązania dla serwera. Piszesz więc kod dostosowany do potrzeb Twojego przedsiębiorstwa i umieszczasz go w odpowiednim środowisku wykonawczym ser- wera aplikacji. I w ten sposób, zgodnie z zasadą dziel i zwyciężaj, rozwiązujesz swój problem biznesowy. Rozdział 1. ♦ Wstęp do EJB 31 Ważne problemy związane z budową dużych systemów biznesowych Powinieneś mieć już przygotowaną skromną listę problemów, które musiałbyś mieć na uwa- dze podczas budowy dużego systemu biznesowego. Oto krótka lista poważnych problemów, z którymi musimy się zmierzyć. Nie przejmuj się, jeśli nie wszystkie na razie rozumiesz, wkrótce je poznasz:  Zdalne wywoływanie metod. Potrzebujemy reguł opisujących proces łączenia klienta z serwerem przez sieć komputerową. Problem dotyczy wysyłania żądań wywołań metod, przesyłania parametrów i wiele innych.  Zrównoważenie obciążeń. Klienty muszą być kierowane do serwera o najmniejszym obciążeniu. Jeśli przydzielony serwer jest przeładowany, natychmiast powinno nastąpić przekierowanie do innego serwera.  Przezroczystość błędów. Czy w przypadku awarii serwera lub sieci można przekierować klienta do innego serwera bez przerywania usługi? Jeśli tak, to jak szybko można to zrobić? W ciągu kilku sekund, minut? Jakie rozwiązanie można zaakceptować w przypadku Twojego problemu biznesowego?  Integracja warstw. Kod musi być tak napisany, by utrwalać dane biznesowe w bazach danych oraz by mógł współpracować z aktualnie działającym systemem.  Transakcje. Co stanie się, jeśli klienty będą jednocześnie próbowały dostać się tego samego rekordu w bazie danych? Co stanie się, jeśli baza danych ulegnie awarii? Rozwiązaniem tych problemów jest system transakcji.  Grupowanie. Co stanie się, jeśli serwer stanowy ulegnie awarii? Czy jego stan był zachowany na wszystkich pozostałych serwerach tak, by klient mógł kontynuować swoje działania na innym serwerze?  Dynamiczne przegrupowania. Jak dokonać aktualizacji systemu w czasie jego działania? Czy musisz wyłączyć usługę czy może działać cały czas?  Bezpieczne wyłączenie. Jeśli musisz przerwać działanie serwera, czy możesz to zrobić gładko, bez potrzeby przerywania usług aktualnie połączonych klientów?  Zapisywanie w dzienniku i kontrolowanie. Jeśli coś nie działa poprawnie, czy mamy zapis wszystkich operacji, który umożliwia określenie przyczyny błędu? Dziennik mógłby nam pomóc wykryć i usunąć błąd tak, by więcej się nie powtórzył.  Zarządzanie systemami. W przypadku katastrofalnego błędu, kto jest odpowiedzialny za monitorowanie naszego systemu? Chcielibyśmy dysponować oprogramowaniem monitorującym, które, w przypadku awarii, poinstruuje administratora systemu o kierunkach możliwych działań.  Wątki. Obecnie działające systemy charakteryzują się dużą liczbą użytkowników łączących się z pojedynczym serwerem. Taki serwer musi być w stanie obsłużyć wiele żądań od klientów jednocześnie. Musi więc być zaprogramowany jako aplikacja wielowątkowa.  Oprogramowanie oparte na przesyłaniu komunikatów. Pewne rodzaje żądań wymagają komunikacji opartej na komunikatach, która bardzo luźno wiąże klienta z serwerem. Potrzebujemy więc całej infrastruktury przeznaczonej do obsługi mechanizmów wymiany wiadomości.  Cykl życia obiektu. Obiekty istniejący wewnątrz aplikacji serwera powinny być tworzone i usuwane w zależności od, odpowiednio, zwiększającego lub zmniejszającego się obciążenia serwera. 32 Część I ♦ Wprowadzenie  Zarządzanie zasobami. Jeśli dany klient aktualnie nie korzysta z usług serwera, cenne zasoby serwera można zwrócić do puli dostępnych zasobów tak, by można z nich było skorzystać, jeśli do serwera podłączy się inny klient. Do takich zasobów zaliczamy gniazda (np. połączenia do bazy danych) oraz obiekty istniejące wewnątrz serwera.  Bezpieczeństwo. Serwery i bazy danych muszą być zabezpieczone przed włamaniami. Uprawnieni użytkownicy powinni mieć dostęp jedynie do określonych operacji, które są niezbędne w ich pracy.  Pamięć podręczna. Załóżmy, że mamy pewne dane w bazie danych, do których mają dostęp wszystkie klienty, jak np. wspólny katalog produktów. Po co serwer miałby wielokrotnie wyciągać te same dane z bazy danych. Można przecież przechowywać je w pamięci serwera i ograniczyć w ten sposób kosztowne operacje sieciowe i zapytania do bazy danych.  I wiele, wiele innych zagadnień. Każde z powyższych zagadnień wymaga osobnego obsłużenia i wykonania poważnych obliczeń po stronie aplikacji serwera. Obsługa wspomnianych problemów jest niezbędna w przypadku wszystkich rozwiązań biznesowych. Wymaga sporej wiedzy i stosowania dobrych struktur. Połączone usługi rozwiązujące wypunktowane powyżej kwestie nazywamy oprogramowaniem pośredniczącym. Dziel i zwyciężaj Omówiliśmy właśnie sposób tworzenia swojego oprogramowania pośredniczącego na bazie serwera aplikacji, co umożliwia nam skupienie się na samym problemie bizne- sowym. Mamy jednak jeszcze lepszą wiadomość: istnieje możliwość zakupu i wyko- rzystania częściowych rozwiązań tego problemu. Aby osiągnąć swój cel, musisz zbudować aplikację, składając dostępne komponenty. Komponent jest kodem implementującym dobrze zdefiniowane interfejsy. Jest łatwym do zarządzania, odrębnym fragmentem logiki aplikacji. Komponenty same w sobie nie są aplikacjami — nie mogą działać samodzielnie. Mogą być raczej wykorzystane jak elementy układanki, która rozwiązuje szerszy problem. Idea zastosowania komponentów programowych jest pomysłem dającym wielkie moż- liwości. Firma może kupić dobrze zdefiniowany moduł rozwiązujący dany problem i połączyć go z innymi komponentami rozwiązującymi większe problemy. Przykła- dowo, rozważ komponent programowy obliczający ceny towarów. Nazwijmy go kompo- nentem cenowym. Przekazujesz temu komponentowi dane o zbiorze produktów i otrzy- mujesz od niego łączną wartość zamówienia. Problem określania ceny może być całkiem skomplikowany. Przykładowo, załóżmy, że zamawiamy części komputerowe, jak pamięć czy dysk twardy. Komponent ceno- wy zwraca poprawną cenę w oparciu o zasady wyceny, które mogą zawierać:  Cenę podstawową pojedynczej kości pamięci lub dysku twardego.  Rabat ilościowy przyznawany klientowi przy zakupie powyżej 10 modułów pamięci. Rozdział 1. ♦ Wstęp do EJB 33  Rabat zestawowy przyznawany klientowi za zakup zarówno pamięci, jak i dysku twardego.  Rabat stałego klienta, który przyznaje się ważnym klientom.  Rabat miejscowy zależny od miejsca zamieszkania klienta.  Dodatkowe koszty, jak koszt przesyłki czy podatek. Powyższe zasady wyceny nie dotyczą oczywiście jedynie części komputerowych. W in- nych dziedzinach, takich jak sprzedaż urządzeń dla opieki zdrowotnej czy biletów lot- niczych, wymagana jest podobna do opisanej powyżej funkcjonalność. Byłoby oczywi- ście wielkim marnotrawstwem środków, gdyby wszystkie przedsiębiorstwa potrzebujące skomplikowanego mechanizmu wyceny, musiały pisać własne wyszukane rozwiązania tego problemu. Sensowny staje się więc handel gotowymi, uogólnionymi wersjami kom- ponentów obliczających wartości zamówień, które mogą być wielokrotnie wykorzysty- wane przez różne przedsiębiorstwa. Przykładowo: 1. Poczta Polska może wykorzystać komponent naliczania cen do wyznaczania kosztów wysyłania pa
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Enterprise JavaBeans
Autor:
, ,

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: