okladka

Kompendium wiedzy o profesjonalnym serwerze aplikacji

  • Proces instalacji i konfiguracji
  • Tworzenie i udostępnianie aplikacji
  • Administrowanie serwerem i zabezpieczanie go

Technologia J2EE święci triumfy. Programiści na całym świecie stosują ją do tworzenia rozbudowanych aplikacji korporacyjnych i e-commerce. Jednym z integralnych elementów systemu zbudowanego w tej technologii jest odpowiedni serwer aplikacji. Na rynku dostępnych jest kilka platform komercyjnych i zyskujący na popularności produkt open-source -- JBoss. JBoss to w pełni profesjonalny serwer aplikacji J2EE, który dzięki bezpłatnemu dostępowi znacznie redukuje koszty wdrożenia systemów informatycznych. Oczywiście to nie jedyna zaleta JBossa -- trudno pominąć jego stabilność i bezpieczeństwo, wsparcie ze strony tysięcy użytkowników z całego świata i modułową budowę, która pozwala na szybkie dodawanie kolejnych usług.

"JBoss 4.0. Podręcznik administratora" to wyczerpujące źródło informacji o najnowszej edycji JBossa. Autorami są twórcy JBossa, co gwarantuje wysoki poziom merytoryczny. Znajdziesz tu omówienie wszystkich zastosowań serwera oraz poznasz sposoby tworzenia i wdrażania aplikacji J2EE wykorzystujących komponenty EJB, serwlety, JMS i usługi sieciowe. Przeczytasz również o bezpieczeństwie serwera i aplikacji oraz obsłudze baz danych i transakcji. Książka zawiera szczegółowy opis jądra JBossa, technologii Hibernate oraz programowania aspektowego.

  • Instalacja serwera
  • Domyślna struktura katalogów
  • Pliki konfiguracyjne JBossa
  • Zastosowanie mechanizmów JNDI
  • Obsługa transakcji
  • EJB i serwlety
  • Stosowanie usługi JMS
  • Zabezpieczanie serwera JBoss
  • Korzystanie z usługi Tomcat
  • Mapowanie tabel baz danych na obiekty za pomocą Hibernate
  • Programowanie aspektowe

Poznaj architekturę serwera JBoss i skonfiguruj go tak,
aby pracował z maksymalną wydajnością.


O autorach (11)
Wprowadzenie (13)
Rozdział 1. Instalacja i kompilacja serwera JBoss (23)
  • Pobranie plików binarnych (24)
    • Warunki instalacji (24)
  • Instalacja serwera przy użyciu pakietu zawierającego wersję binarną (24)
    • Struktura katalogów serwera JBoss (25)
    • Domyślny zestaw konfiguracyjny serwera (25)
    • confjboss-minimal.xml (27)
    • confjboss-service.xml (27)
    • confjboss.web (27)
    • confjndi.properties (27)
    • conflog4j.xml (28)
    • conflogin-config.xml (28)
    • confserver.policy (28)
    • confstandardjaws.xml (28)
    • confstandardjboss.xml (28)
    • confstandardjbosscmp-jdbc.xml (28)
    • confxmdesc*-mbean.xml (28)
    • deploysh-deployer.xml (28)
    • deploycache-invalidation-service.xml (29)
    • deployclient-deployer-service.xml (29)
    • deployear-deployer.xml (29)
    • deployejb-deployer.xml (29)
    • deployhsqldb-ds.xml (29)
    • deployhttp-invoker.sar (29)
    • deployjboss-aop.deployer (29)
    • deployjboss-hibernate.deployer (30)
    • deployjboss-local-jdbc.rar (30)
    • deployjboss-ws4ee.sar (30)
    • deployjboss-xa-jdbc.rar (30)
    • deployjbossjca-service.sar (30)
    • deployjbossweb-tomcat50.sar (30)
    • deployjmshsqldb-jdbc2-service.xml (30)
    • deployjmsjbossmq-destinations-service.xml (31)
    • deployjmsjbossmq-httpil.sar (31)
    • deployjmsjbossmq-service.xml (31)
    • deployjmsjms-ds.xml (31)
    • deployjmsjms-ra.rar (31)
    • deployjmsjvm-il-service.xml (31)
    • deployjmsuil2-service.xml (31)
    • deployjmx-console.war (32)
    • deployjmx-invoker-service.sar (32)
    • deploymail-ra.rar (32)
    • deploymail-service.xml (32)
    • deploymanagementconsole-mgr.sar oraz web-console.war (32)
    • deploymonitoring-service.xml (32)
    • deployproperties-service.xml (33)
    • deployscheduler-service.xml oraz schedule-manager-service.xml (33)
    • deploysqlexception-service.xml (33)
    • deployuuid-key-generator.sar (33)
  • Sprawdzenie poprawności instalacji (33)
  • Ładowanie z serwera sieciowego (35)
  • Samodzielna kompilacja serwera JBoss na podstawie kodów źródłowych (37)
    • Dostęp do repozytorium CVS znajdującego się w serwisie SourceForge (37)
    • Repozytorium CVS (38)
    • Anonimowy dostęp do CVS (38)
    • Klient CVS (39)
    • Tworzenie dystrybucji serwera na podstawie kodu źródłowego (39)
    • Kompilacja serwera na podstawie pobranego z repozytorium CVS kodu źródłowego (39)
    • Drzewo katalogów zawierających kod źródłowy serwera (40)
    • Korzystanie z predefiniowanego zestawu testów JBoss (40)
Rozdział 2. Jądro serwera JBoss (45)
  • JMX (45)
    • Wprowadzenie do JMX (46)
  • Serwer JBoss jako implementacja architektury JMX (52)
    • Architektura ładowania klas serwera JBoss (52)
    • Ładowanie klas i typy języka Java (52)
    • Komponenty XMBean serwera JBoss (74)
  • Połączenie z serwerem JMX (81)
    • Podglądanie serwera - konsola JMX (81)
    • Połączenie z JMX za pomocą RMI (85)
    • Dostęp do JMX z wiersza poleceń (88)
    • Łączenie z JMX za pomocą innych protokołów (93)
  • JMX jako mikrojądro (93)
    • Proces uruchamiania serwera (94)
    • Usługi MBean serwera JBoss (95)
    • Tworzenie usług MBean (107)
    • Zależności i kolejność wdrażania (121)
  • Architektura usług wdrażających serwera JBoss (131)
    • Obiekty wdrażające a classloadery (134)
  • Udostępnianie zdarzeń komponentów MBean przez protokół SNMP (135)
    • Usługa zamiany zdarzenia na pułapkę (137)
  • Zdalny dostęp do usług, wydzielone usługi wywołujące (137)
    • Przykład użycia wydzielonej usługi wywołującej - usługa adaptora wywołań komponentu MBeanServer (140)
    • JRMPInvoker - transport przy użyciu protokołu RMI/JRMP (147)
    • PooledInvoker - transport przy użyciu RMI/gniazdo (148)
    • IIOPInvoker - transport przy użyciu RMI/IIOP (148)
    • JRMPProxyFactory - tworzenie dynamicznych pośredników JRMP (149)
    • HttpInvoker - RMI/HTTP Transport (149)
    • HA JRMPInvoker - klastrowy transport RMI/JRMP (150)
    • HA HttpInvoker - klastrowy transport RMI/HTTP (150)
    • HttpProxyFactory - tworzenie dynamicznych pośredników HTTP (151)
    • Czynności pozwalające udostępnić dowolny interfejs RMI przez protokół HTTP (152)
Rozdział 3. Obsługa nazw (155)
  • Ogólna charakterystyka JNDI (155)
    • JNDI API (156)
    • J2EE i JNDI - środowisko komponentu aplikacji (158)
  • Architektura JBossNS (170)
    • Fabryki tworzące obiekt kontekstu początkowego - InitialContext (173)
    • Dostęp do JNDI przy użyciu HTTP (178)
    • Dostęp do JNDI przy użyciu HTTPS (181)
    • Bezpieczny dostęp do JNDI przy użyciu HTTP (183)
    • Bezpieczny dostęp do JNDI za pomocą niezabezpieczonego kontekstu tylko do odczytu (185)
    • Dodatkowe komponenty związane z usługą nazw (187)
Rozdział 4. Transakcje (193)
  • Transakcje i JTA - wprowadzenie (193)
    • Blokowanie pesymistyczne i optymistyczne (194)
    • Składniki transakcji rozproszonej (195)
    • Dwufazowy protokół XA (196)
    • Wyjątki heurystyczne (196)
    • Tożsamość i gałęzie transakcji (197)
  • Obsługa transakcji w serwerze JBoss (197)
    • Podłączenie menedżera transakcji do serwera JBoss (198)
    • Domyślny menedżer transakcji (199)
    • Obsługa interfejsu UserTransaction (200)
Rozdział 5. Komponenty EJB w JBoss (201)
  • Komponenty EJB widziane z perspektywy klienta (201)
    • Ustalenie konfiguracji pełnomocnika EJB (205)
  • Komponenty EJB widziane z perspektywy serwera (210)
    • Wydzielona usługa wywołująca - doręczyciel żądań (210)
    • Transport przy użyciu RMI/JRMP w środowisku klastrowym - JRMPInvokerHA (214)
    • Transport przy użyciu RMI/HTTP w środowisku klastrowym - HTTPInvokerHA (214)
  • Kontener EJB (216)
    • Komponent MBean EJBDeployer (216)
    • Struktura kontenera bazująca na modułach (231)
  • Blokowanie komponentów encyjnych i wykrywanie zakleszczeń (243)
    • Dlaczego blokowanie jest potrzebne (244)
    • Cykl życia komponentu encyjnego (244)
    • Domyślna strategia blokowania (245)
    • Dodatkowe obiekty przechwytujące i reguły blokowania (245)
    • Zakleszczenie (246)
    • Zaawansowana konfiguracja i optymalizacja (249)
    • Uruchamianie komponentów w środowisku klastrowym (251)
    • Rozwiązywanie problemów (251)
Rozdział 6. Usługa komunikatów JMS w JBoss (253)
  • Przykłady użycia JMS (253)
    • Przykład komunikacji typu punkt-punkt (254)
    • Przykład komunikacji typu wydawca-abonent (256)
    • Przykład komunikacji wydawca-abonent z obsługą trwałego tematu (261)
    • Przykład komunikacji punkt-punkt połączonej z użyciem komponentu sterowanego komunikatami (MDB) (264)
  • Ogólna charakterystyka JBossMQ (271)
    • Usługi warstwy wywoływań (271)
    • Usługa SecurityManager (272)
    • Usługa DestinationManager (272)
    • Usługa MessageCache (272)
    • Usługa StateManager (273)
    • Usługa PersistenceManager (273)
    • Miejsce docelowe komunikatów (273)
  • Konfiguracja komponentów MBean wchodzących w skład JBossMQ (274)
    • Komponent org.jboss.mq.il.jvm.JVMServerILService (275)
    • Komponent org.jboss.mq.il.uil2.UILServerILService (275)
    • Komponent org.jboss.mq.il.http.HTTPServerILService (278)
    • Komponent org.jboss.mq.server.jmx.Invoker (279)
    • Komponent org.jboss.mq.serwer.jmx.InterceptorLoader (280)
    • Komponent org.jboss.mq.sm.jdbc.JDBCStateManager (280)
    • Komponent org.jboss.mq.security.SecurityManager (280)
    • Komponent org.jboss.mq.server.jmx.DestinationManager (281)
    • Komponent org.jboss.mq.server.MessageCache (283)
    • Komponent org.jboss.mq.pm.jdbc2.PersistenceManager (284)
    • Komponenty MBean reprezentujące miejsca docelowe (286)
  • Określanie dostawcy JMS dla kontenera MDB (290)
    • Komponent org.jboss.jms.jndi.JMSProviderLoader (291)
    • Komponent org.jboss.jms.asf.ServerSessionPoolLoader (293)
    • Integracja z innymi dostawcami JMS (293)
Rozdział 7. JCA w JBoss (295)
  • Ogólna charakterystyka JCA (295)
  • Architektura JBossCX (297)
    • Komponent BaseConnectionManager2 (299)
    • Komponent RARDeployment (300)
    • Komponent JBossManagedConnectionPool (301)
    • Komponent CachedConnectionManager (302)
    • Przykładowy szkielet adaptera zasobów JCA (303)
  • Konfiguracja źródeł danych JDBC (310)
  • Konfiguracja ogólnych adapterów JCA (319)
Rozdział 8. Bezpieczeństwo (323)
  • Deklaratywny model obsługi bezpieczeństwa J2EE (323)
    • Referencje - element security-role-ref (324)
    • Tożsamość - element security-identity (325)
    • Role - element security-role (326)
    • Uprawnienia wywoływania metod (328)
    • Uprawnienia dotyczące aplikacji sieciowych (331)
    • Obsługa bezpieczeństwa deklaratywnego w serwerze JBoss (333)
  • Wprowadzenie do JAAS (334)
    • Czym jest JAAS? (334)
  • Model bezpieczeństwa serwera JBoss (339)
    • Obsługa bezpieczeństwa deklaratywnego w serwerze JBoss, odsłona druga (341)
  • Architektura JBossSX (346)
    • W jaki sposób JaasSecurityManager korzysta z JAAS (348)
    • Komponent JaasSecurityManagerService (351)
    • Komponent JaasSecurityDomain (353)
    • Komponent ładujący plik XML z konfiguracją logowania (355)
    • Komponent zarządzający konfiguracją logowania (357)
    • Używanie i tworzenie modułów logowania JBossSX (358)
    • Usługa DynamicLoginConfig (382)
  • Protokół Secure Remote Password (SRP) (383)
    • Udostępnianie informacji o hasłach (388)
    • Szczegóły działania algorytmu SRP (390)
  • Uruchamianie serwera JBoss z użyciem menedżera bezpieczeństwa Java 2 (396)
  • Zastosowanie protokołu SSL przy użyciu JSSE (399)
  • Konfiguracja serwera JBoss działającego za firewallem (403)
  • Zabezpieczanie serwera JBoss (404)
    • Usługa jmx-console.war (405)
    • Usługa web-console.war (405)
    • Usługa http-invoker.sar (405)
    • Usługa jmx-invoker-adaptor-server.sar (405)
Rozdział 9. Aplikacje sieciowe (407)
  • Usługa Tomcat (407)
  • Plik konfiguracyjny serwera Tomcat - server.xml (409)
    • Element Connector (409)
  • Element Engine (412)
  • Element Host (412)
    • Element DefaultContext (413)
    • Element Logger (413)
    • Element Valve (413)
  • Korzystanie z protokołu SSL w zestawie JBoss/Tomcat (414)
  • Ustalenie kontekstu głównego aplikacji sieciowej (417)
  • Konfiguracja hostów wirtualnych (418)
  • Dostarczanie treści statycznej (419)
  • Połączenie serwerów Apache i Tomcat (419)
  • Praca w środowisku klastrowym (420)
  • Integracja z innymi kontenerami serwletów (421)
    • Klasa AbstractWebContainer (422)
Rozdział 10. Inne usługi MBean (431)
  • Zarządzanie właściwościami systemowymi (431)
  • Zarządzanie edytorem właściwości (432)
  • Wiązanie usług (433)
  • Planowanie zadań (437)
    • Komponent org.jboss.varia.scheduler.Scheduler (438)
  • Usługa Log4j (441)
  • Dynamiczne ładowanie klas RMI (441)
Rozdział 11. Mechanizm CMP (443)
  • Przykładowy program (443)
    • Włączanie rejestracji informacji testowych (445)
    • Uruchamianie przykładów (445)
  • Struktura jbosscmp-jdbc (447)
  • Komponenty encyjne (449)
    • Odwzorowania encji (451)
  • Pola CMP (456)
    • Deklaracja pól CMP (456)
    • Odwzorowania kolumn pól CMP (457)
    • Pola tylko do odczytu (460)
    • Nadzór dostępu do encji (460)
    • Zależne klasy wartości (462)
  • Relacje zarządzane przez kontener (466)
    • Abstrakcyjne metody dostępu do pól cmr-field (467)
    • Deklaracja relacji (467)
    • Odwzorowanie relacji (469)
  • Deklarowanie zapytań (476)
    • Deklarowanie metod wyszukujących i wybierających (477)
    • Deklarowanie zapytań EJB-QL (477)
    • Przesłanianie odwzorowania EJB-QL na SQL (478)
    • JBossQL (480)
    • DynamicQL (481)
    • DeclaredSQL (482)
    • Zapytania EJB-QL 2.1 oraz SQL92 (487)
    • Niestandardowe metody wyszukujące BMP (488)
  • Ładowanie zoptymalizowane (488)
    • Scenariusz ładowania (489)
    • Grupy ładowania (490)
    • Odczyt z wyprzedzeniem (491)
  • Proces ładowania (499)
    • Opcje zatwierdzania (499)
    • Proces ładownia aktywnego (500)
    • Proces odczytu z opóźnieniem (501)
    • Zbiory wyników odczytu z opóźnieniem (505)
  • Transakcje (505)
  • Blokowanie optymistyczne (508)
  • Polecenia encyjne oraz generacja klucza głównego (512)
    • Istniejące polecenia encji (513)
  • Domyślne ustawienia globalne serwera JBoss (515)
    • Elementy ustawień globalnych (517)
  • Adaptacja źródła danych (519)
    • Odwzorowania typów (519)
    • Odwzorowania funkcji (523)
    • Odwzorowania typów (523)
    • Odwzorowania typów użytkownika (524)
Rozdział 12. Usługi sieciowe (527)
  • Punkty końcowe usług JAX-RPC (527)
  • Punkty końcowe komponentów Enterprise JavaBean (533)
  • Klienty usług sieciowych - klient JAX-RPC (536)
  • Referencje usług (538)
Rozdział 13. Hibernate (543)
  • MBean Hibernate (543)
  • Archiwa Hibernate (545)
  • Stosowanie obiektów Hibernate (547)
  • Stosowanie pliku HAR wewnątrz pliku EAR (548)
  • Mechanizm wdrażania plików HAR (549)
Rozdział 14. Obsługa programowania aspektowego (AOP) (551)
  • AOP w JBossie - usługi w stylu EJB dla zwyczajnych obiektów Javy (551)
  • Dlaczego AOP? (551)
  • Podstawowe pojęcia związane z AOP (553)
    • Punkty łączeń i wywołania (553)
    • Rady i aspekty (553)
    • Linie podziału (554)
    • Wstawienia oraz mieszanie (557)
  • Przygotowywanie aplikacji AOP na serwerze JBoss (558)
    • Kompilacja do postaci kodów bajtowych (558)
    • Kompilacja adnotacji (558)
    • Przygotowywanie AOP (559)
  • Mechanizm wdrażania aplikacji AOP na serwerze JBoss (560)
    • Instalacja najnowszej wersji usługi jboss-aop.deployer (561)
    • Konfiguracja usługi AOP (561)
    • Biblioteka gotowych aspektów (562)
  • Pakowanie i wdrażanie aplikacji AOP na serwerze JBoss (563)
    • Stosowanie gotowych aspektów (565)
    • Tworzenie własnych aspektów (567)
    • Pakowanie i wdrażanie niestandardowych aspektów (568)
Dodatek A Publiczna licencja GNU (573)
Dodatek B Instalacja przykładów (579)
Skorowidz (581)