
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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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 B Instalacja przykładów (579)
Skorowidz (581)