141 63 44MB
Polish Pages [349] Year 2005
Spis treści (podsumowanie)
Współwinni powstania tej książki K a t h y S ie rra
B e r i B ates
Kathy interesowała się teorią nauczania od czasów, gdy pracowała jako projektantka gier (pisała gry dla takich firm jak Virgin, M GM oraz Amblin). Znaczną część pracy nad przygotowaniem tej książki Kathy wykonała podczas prowadzenia kursu New Media Authoring w ramach programu dodatkowego studiów nad rozrywką na Uniwersytecie Kalifornijskim.. Ostatnio Kathy pracowała w firmie Sun Microsystems jako główny instruktor, ucząc instruktorów języka Java jak należy nauczać najnowszych technologii tego języka. Wraz z Bertem Batesem aktywnie wykorzystywała pomysły zawarte w niniejszej książce podczas nauczania setek instruktorów, programistów, a nawet osób całkowicie nie związanych z programowaniem. Jest także założycielką jednej z największych witryn dla społeczności programistów używających Javy — www.javaranch.com — która w 2003 roku zdobyła nagrodę „Productivity Award” przyznawaną przez magazyn Software Development. M ożna ją spotkać na kursach Java Jam G eek Cruise (www.geekcruises.com).
Ostatnio Kathy przeniosła się do Boulder Colorado w Kalifornii, gdzie musiała nauczyć się nowych słów, takich jak „ice scraper” oraz „fleece”, ale przynajmniej można pojeździć na nartach. Kathy lubi także biegać, jeździć konno i wędrować malowniczymi szlakami. W wolnym czasie, którego Kathy wcale nie ma, Bert stara się ją nauczyć grać w"Go (pod tym względem jest straszna).
Bert od wielu lat zajmuje się tworzeniem i projektowaniem programów, jednak wieloletnia pr aca nad zagadnieniami sztucznej inteligencji sprawiła, że zainteresował się teorią nauczania i nauczaniem z wykorzystaniem nowych technologii Odkąd pamięta, uczył swoich klientów programowania. Ostatnio był członkiem grupy, która opracowała kilka egzaminów certyfikujących firmy Sun, oceniających znajomość języka Java. Pierwszą dekadę swojej programistycznej kariery B ert spędził, podróżując po świecie i pom agając rozgłośniom radiowym, takim jak: Radio New Zeland, W eather Channel czy też A rt & E ntertainm ent Network (A & E), Jednym z jego ulubionych projektów było stworzenie pełnego systemu symulującego kolej na potrzeby U nion Pacific Railroad B ert jest zapalonym graczem w Go i już od bardzo dawna pracuje na program em do gry w Go. M oże Java okaże się językiem na tyle ekspresyjnym, że pozwoli mu skończyć ten projekt. B ert dość dobrze gra na gitarze (notatka
Czy to aby na pewno był przypadek? Jeśli wiesz coś na ten tem at lub masz jakieś komentarze, możesz do niej napisać na adr es kathy@wickedlysmąrt. com.
16
1.
Z apraszam y do E JB : wprowadzenie
25
2.
A rch itek tu ra EJB: omówienie architektury
85
3.
U jaw nianie się: z punktu widzenia klienta
135
4.
Być k o m p o n en tem session bean: cykl istnienia komponentów session bean
197
5.
E ncje są trw ałe: informacje podstawowe 0 komponentach entity bean
283
6.
Być k o m p o n en tem entity bean: synchronizacja komponentu i encji
319
7.
K iedy kom p o n en ty są ze sobą pow iązane: relacje komponentów entity bean
397
8.
O d b ieran ie kom unikatu: komponenty message-driven bean
461
9„
W iek niepodzielności: transakcje E JB
493
10.
G dy coś się przytrafia k o m ponentom : wyjątki w E JB
549
11.
C h ro ń swoje tajem nice: bezpieczeństwo w E JB
593
12.
R adość wdr ażania: środowisko komponentów
623
A
Ostateczny egzamin próbny
661
Skorow idz
707
Spis treści (szczegółowy) I I I
Wprowadzenie
wm jg
Twój mózg jest skoncentrowany na EJB. W tym rozdziale Ty starasz się czegoś dowiedzieć, a Twój mózg robi Ci przysługę i nie przykłada się do zapam iętywania zdobywanej wiedzy Twój mózg myśli sobie: „Lepiej zostawię miejsce w pamięci na bardziej istotne informacje, na przykład: jakich dzikich zwierzgt należy unikać bqdź czy jeżdżenie nago na snowboardzie jest dobrym pomysłem" A zatem, w jaki sposób możesz przekonać swój mózg, że Twoje życie zależy od poznania EJB?
9 9
Kathy: „dość” to zdecydowanie zbyt słabo powiedziane)
Po co została napisana ta książka?
i projektuje robota czytającego nuty i grającego na pianinie, wykorzystując przy tym system Lego M indstorm “
Wiemy, co sobie myśli Twój mózg
15
M etapoznanie
17
Zm uś swój mózg do posłuszeństwa
19
Jego ukochana collie Aiko zdechła w dniu, w którym zostały zakończone prace nad niniejszą książką. Dziękujemy ci Aiko za to, że byłaś z nam i wystarczająco długo, by pomóc nam skończyć tę książkę. Będzie nam ciebie brakować.
Kiedyś Kathy znalazła się na okładce czasopisma (konkretnie Multimedia Producer), lecz później czasopismo to splajtowało.
W prow adzenie
M ożna do niego napisać na adres terrapin@wickedlysmart, com.
14
Czego będziesz potrzebować podczas lektury tej książki
20
Zdajemy egzamin certyfikujący
22
Podziękowania
24
Ujawnianie się
Zapraszamy do EJB
î
Komponenty Enterprise JavaBean sq łatwe. Przynajmniej jeśli porównamy je z tym, co trzeba by napisać, aby własnoręcznie stworzyć skalowalny, transakcyjny, bezpieczny, trwały i współbieżny serwer komponentów korporacyjnych, W tym rozdziale stworzymy, wdrożymy i uruchomimy aplikagę EJB a następnie opiszemy jej szczegóły Nim skończymy, dowiesz się także |akie zalety ma technologia EJB, jakie są jej cechy charakterystyczne i poznasz (pobieżnie) zasady działania kontenerów EJB. Cele O co chodzi w technologii EJB? Żadnych rozwiązań zależnych od dostawcy!
0
iif e
Jak to wszystko działa? Za kulisami... Trzy rodzaje komponentów
t
Komponent Dor adcy Pięć czynności niezbędnych do stworzenia komponentu
HS Ir®
H*
Zadania i obowiązki EJB Poradnik Bar kawowy
Z
$
26 27 29
^37
32
34Q
35
P o rta b le R e m o te O b j e c t „n arro w ( ) (egzotyczne rzutowanie)
145
39
Tworzenie interfejsu bazowego dla komponentu session bean
149
40
Na szczęście mamy uchwyty
ąg3
50
Jakie metody nadają się do umieszczenia w lokalnym interfejsie klienta?
373
Dlaczego jest tak dużo metod rem ove ( )
375
52 83
Wywoływanie zdalnej metody
f
t
« interfejs» SesionBean
« interfejs» EJBObject
kilka metod
kilka metod
*
ł « interfejs» KoszykZKsiazkami to T Y piszesz ten interfejs (interfejs zdalnego komponentu)
Klient wywołuje metodę biznesową za pośrednictwem zdalnego interfejsu biznesowego
brak metod
brak metod
dodajKsiazkeO usunKsiazkel) pokazKsiazkiWKoszykuO zapłaci)
KoszykB ean
to TY piszesz
tę klasę
dodajKsiazkeO usunKsiazkel) pokazKsiazkiWKoszykuO
(klasa komponentu)
zaplacO inne metody
136
Czym jest JNDI?
Cele A co z argumentami i wartościami wynikowymi?
Cele Czego tak napr awdę chce klient
Technologia EJB jest związana z infrastrukturą. Komponenty są elementami konstrukcyjnymi Technologia ta umożliwia tworzenie bardzo dużych aplikaqi. Aplikacji, które pozwalają na niemal wszystko, począwszy od obsługi firmy Victoria's Secrets, a skończywszy na zarządzaniu wszystkimi dokumentami w centrum badawczym CERN Niemniej jednak architektura rozwiązania o takiei elastyczności, mocy i skalowalności nie jest prosta. Wszystko zaczyna się od modelu programowania rozproszonego.
« interfejs» EnterpriseBean
W szy stk ie te kom ponenty s ą identyczne!
31
Architektura EJB
« in te rfe js » Remote
Komponent bezstanowy
Swoich komponentów nie możesz zachować tylko dla siebie. Klienty muszą mieć dostęp do istniejących komponentów. (Nie dotyczy to komponentów message drive bean, które nie dysponuję widokiem klienta ) Nasz Komponent D oradca udostępnia metodę g e tP o r a d a C ) wchodzącą w skład interfejsu komponentu, stanowiącego miejsce, w którym są deklarowane metody biznesowe. Jednak to jeszcze nie wszystko, co klienfy mogą zobaczyć i do czego mają dostęp. Pamiętaj, że interfejs D oradca dziedziczy po interfejsie E lB O b ject, który posiada własne metody Metody, do których klienfy mają dostęp, Metody, które klienfy mogą wywołać. To samo dotyczy interfejsu bazowego
W przypadku bezstanowych kom ponentów session bean utworzonych przez ten sam obiekt bazow y metoda is id e n tic a io zawsze zwraca wartość true, nawet dla różnych kom ponentów
Porównanie interfejsu zdalnego i lokalnego
178
Argumenty metod zdalnych i lokalnych
187
Bar kawowy
393
Być komponentem session bean V
Komponenty session bean są tworzone i usuwane. Jeśli masz szczęście, to jesteś komponentem bezstanowym Szczęście, gdyż istnienie komponentów stanowych jest całkowicie zależne od kaprysów nieczułych klientów Są one tworzone na żądanie klienta, a jedynym sensem ich istnienia i śmierci jest służenie temu klientowi, Ale co fam, życie komponentu bezstanowego jest cudowne'. Baseny, drinki z tymi malutkimi parasolami i żadnej nudy, bo wciąż spotyka się tak wiele różnych klientów
91 Cele
198
103
Metody zwrotne kontenera, dla szczególnych chwil w życiu komponentu
205
105
Tworzenie komponentu
212
Zdalny obiekt nie jest komponentem — to strażnik komponentu
106
Przegląd architektury — komponenty session bean
122
Czynności komponentów jakie można wykonywać w metodach biznesowych
223
Dezaktywacja: szansa na zapewnienie skalowalności dla komponentów stanowych
224
EJB wykorzystuje technologię RMI
Przegląd architektury — komponenty entity bean
123
Przegląd architektury — tworzenie stanowego komponentu session bean
124
Usuwanie komponentu
232
125
Tworzenie komponentu session bean: Twoje zadanie jako D ostawcy Komponentów
254
Przegląd architektury — tworzenie bezstanowego komponentu session bean Przegląd architektury — komponenty message-drive bean
130
S essio n C .o n tex t: to Ty bardziej potrzebujesz kontekstu niż on Ciebie
264
Bar kawowy
268
5
7
Encje są trwałe Komponenty entity bean są trwałe. Komponenty entity bean istnieją. Komponenty entity bean po prostu są Stanowią one obiektową reprezentację informacji pochodzących z trw ałego m agazynu (Wyobraź sobie, że to baza danych, gdyż większość komponentów entity bean reprezentuje informacje pochodzące z relacyjnych baz danych ) Jeśli dysponujesz komponentem entity bean K lie n t, to jeden taki komponent może reprezentować encję Jan Kowalski, ID #342, a inny encję Dorota Miśkiewicz, #90, Trzy komponenty, reprezentujące trzy faktycznie istniejące encje Komponenty entity bean są po prostu realizację czegoś, co już istnieje Cele Czym jest komponent entity bean Komponenty entity bean z punktu widzenia klienta
Cele
285
Relacje
289 292
Zdalny interfejs komponentu dla komponentu entity bean
294
Interfejs zdalnego obiektu bazowego komponentu entity bean
297
Metoda c r e a t e ( ) komponentu session bean a metoda c r e a t e () komponentu entity bean Metoda r e m o v e ! ) komponentu session bean a metoda re m o v e !) komponentu entity bean Usunięcie encji, komponentu, egzemplarza komponentu Bar kawowy
Mnogość: wiele ---
Reżyser getRezyser()
Tworzenie komponentu entity bean CMP
Zam iast:
Tożsamość obiektu: klucz główny
zrobCos(this);
Ł
Metody wyszukiwawcze Metody biznesowe interfejsu bazowego
U iY i:
zrobCos(moj Kontekst .,getEDBObj ect ());
Bar kawowy
Collection getfilmyO i
Z k onkretnym kom p o n en tem
s k o ja rz o n y ty lk o je d e n R e ż y s e r , lecz lecz w ią c e j kom ponentów n
b yć skojarzonych
*
Bar kawowy
312
«interfejs»
EJBContex
Cele getimmeO
Tworzenie komponentu message-driven beam Twoje zadania jako D ostaw cy Komponentów
is&tkrlnRoie(String“sfmm
getUserTransaction
M oje życie je s t smutne., Nie mam domu, nie mam klientów
a swojego kontekstu
| mogę używać WYŁĄCZNIE do obsługi
334
transakcji
386
Przynajmniej
należę do puli..
337
369
402
404 407 417 426 433 4.35 438 440 445 449
Odbieranie komunikatów to świetna zabawa. Może nie jest tak miłe jak odbieranie paczki z lampą Olśniewająca Smurfetka™ po wygranej aukcji na portalu eBay, niemniej jednak i tak jest zabawne i efektywne. Wyobraź sobie ze po przesłaniu zamówienia nie byłbyś w stanie opuścić mieszkania aż do ’ momentu dostarczenia przesyłki Tak właśnie się dzieje w przypadku komponentów session bean i entity bean Jednak dzięki komponentom message-driven bean klient może przesłać komunikat i iść na spacer
s
ge&MocalHome ■
363
398
Odbieranie komunikatu
322
356
Kolekcje nie s z c z e k a j ( )ą! Przypisania relacji
309
327
Klauzula WHERE
Wyrażenia BETWEEN, IN, IS EMPTY oraz LIKE
306
320
Kaskadowe operacje usuwania mogą propagować Klauzule SELECT oraz FROM są obowiązkowe
F i l m m o że b yć
z kom p o n en tem R e ż y s e r m oże
305
Pola CMP oraz CMR
EJB-QL dla komponentu Film Bean O '
302
Liczność
Reżyser
298
Komponenty entity bean są aktorami. Gdy istnieją, przebywają bądź w puli, bądź staję się kimś. Kimś z ukrytego trwałego magazynu (encjami pochodzącymi z bazy danych) Kiedy komponent wciela się w czyjąś postać, musi być cały czas zsynchronizowany z reprezentowaną encją. Wyobraź sobie jaka katastrofa mogłaby się wydarzyć, gdyby komponent udawał, na przykład, Janka Zimocha, a ktoś obniżył jego limit kredytowy w bazie danych i zapomniał o tym fakcie poinformować komponent
Porównanie trwałości zapewnianej przez kontener oraz przez komponent Interfejs E n tity B e a n udostępnia nowe metody zwrotne kontenera
Liczność: • —---jeden
Film
Być komponentem entity bean
Cele Prawdziwą potęgą komponentów entity bean jest synchronizacja
Komponenty entity bean potrzebują relacji. Zam ów ienie potrzebuje K lie n ta E lem entZ am ow iem a potrzebuje Zam ów ienia. Z am ów ienie potrzebuje E lem entuZ am ów ienia. Pomiędzy komponentami entity bean mogą występować reiaqe zarządzane przez kontener i w takim przypadku to kontener dba praktycznie o wszystko. Trzeba stworzyć nowy E lem entZ am ów ienia skojarzony z Zamówieniem. Jeśli poprosimy K lie n ta o przedstawienie jego Zamówień UZyl r m y^ '.OWy ElementZamówi e n i a , Jeszcze lepsze jest jednak to, iż stosując lęzyk EJB-QL, możemy tworzyć przenaszalne zapytania.
284
Bardzo prosty komponent entity bean Klient
Czego klient oczekuje od interfejsu obiektu bazowego komponentu entity bean Z pomocą spieszą metody biznesowe interfejsu obiektu bazowego
Kiedy komponenty są ze sobą powiązane
Kompletny deskryptor komponentu message-driven bean Tematy i kolejki M e ssa g e D riv e d C o n te x t Potwierdzenie komunikatu
«interfejs»
Me&ageDrivenContex U teninterfejsniedodaje Mdnychnowychmetod
Bar kawowy
462 471 472 474 479 482 487
9
11
Wiek niepodzielności Transakcje strzegą Twojego bezpieczeństwa. Dzięki transakcjom możesz spróbować wykonać pewną operację, wiedząc, że jeśli coś się nie powiedzie, będziesz mógł udawać, że w ogóle nic się nie stało. Wszystko wróci do stanu, w jakim aplikacja znajdowała się przed podjęciem próby wykonania operacji. Transakcje w EJB są czymś wspaniałym — można wdrożyć komponent z transakcjami dostosowanymi do jego potrzeb i to bez wprowadzania jakichkolwiek zmian w jego kodzie źródłowym! Oczywiście, jeśli trzeba, to można napisać kod obsługujący transakcje. Cele Test ACID Transakcje w EJB Pewne transakcje nie są propagowane
Zapam iętaj
W jaki sposób utworzyć transakcję? Metoda s e t R o llb a c k O n ly ( ) istnieje w DWÓCH interfejsach?
Komponenty CMT transakcji nie znają a komponenty BMT własnych używają W porządku, sami wiemy, że ten wierszykk nie jest najlepszy Ale może samemu spróbujesz napisać lepszy? Metody wspomagające zapamiętywanie mogą pomóc, ale działają znacznie lepiej, kiedy stosuje się je samemu
Chroń swoje tajemnice Strzeż swoich tajemnic. Bezpieczeństwo wiąże się z uwierzytelnianiem i autoryzacją. W pierwszej kolejności musisz potwierdzić swoją tożsamość, a my potem powiemy Ci co możesz zrobić. W technologii EJB łatwo można zapewnić bezpieczeństwo, gdyż programista musi zadbać jedynie o autoryzację. To Ty decydujesz, kto będzie mieć dostęp do określonych metod komponentu, Jest tylko jeden problem jeśli jesteś D ostaw cą Komponentów lub Twórcą A p l i k a c j i , to prawdopodobnie nie wiesz kim będą jej użytkownicy! ’ Cele
594
496
W jaki sposób określić zasady bezpieczeństwa w EJB
597
498
Zadanie konstruktora aplikacji: sterowanie dostępem
598
499
Definiowanie uprawnień do wykonywania metod
602
494
500 511
Zadania wdrożeniowca: przypisanie konkretnych osób do abstrakcyjnych ról
gpy
Komponent BM T może się okazać bardzo ZŁYM pomysłem, BMT utrudnia wielokrotne użycie komponentu
514
Bezpieczeństwo na poziomie klasy a bezpieczeństwo na poziomie egzemplarza
g^Q
Transakcje zarządzane przez kontener (CMT)
515
Wykorzystanie bezpieczeństwa programistycznego do „uszycia metody skrojonej na miarę” własnych potrzeb
611
Jak działają atrybuty? Oto metody, dla których MUSISZ określić atrybut (dla komponentu CMT) „Nieokreślony kontekst transakcji”
516 522 52,3
Przykład deskryptor a dla komponentu CMT
527
„Szczególne momenty” interfejsu SessionSynchronization
536
Bar kawowy
U
Oczekuj nieoczekiwanego. Niezależnie od Twych starań, w aplikacji może się zdarzyć coś niedobrego, Coś strasznego, tragicznego! Musisz się przed tym zabezpieczyć. Nie możesz dopuścić do tego, by awaria przerwała pracę całei aplikacji i to tylko dlatego, że jeden komponent zgłosił wyjątek, Aphkacta musi d ziałać dalej. Nie możesz zapobiec tragedii, jednak możesz się na mą przygotować. Musisz wiedzieć z jakiej sytuacji da się wyjść, a jaka juz na to me pozwoli, no i kto jest odpowiedzialny za zaistniały stan rzeczy
W przypadku wyjątku systemowego, kontener.... Wyjątek R em o teEx ce p tio n wędruje do zdalnych klientów, a wyj ątek E JB E x c e p tio n d o lokalnych klientów
558
Obowiązki dostawcy komponentu Pięć standardowych wyjątków programowych EJB Typowe wyjątki systemowe Bar kawowy
i
\
SŁÓJ
p ilił
556 557
Bar kawowy
gy j
Ciężko pracowałeś nad stworzeniem tego komponentu. Kodowałeś, kompilowałeś, przetestowałeś. Chyba z miliard razy. Ostatnią rzeczą, jaką chciałbyś robić jest modyfikowanie już przetestowanego kodu tylko dlatego, że zmienił się jakiś szczegół w konfiguracji wdrażania aplikacji. A co zrobić, jeśli nawet nie mamy kodu źródłowego? Technologia EJB pozwala na wielokrotne wykorzystywanie komponentów dzięki zastosowaniu deskryptorów rozmieszczenia, które można dostosować do własnych potrzeb oraz specjalnego środowiska komponentów
550
W przypadku wyjątku programowego, kontener..
615 616
Radość wdrażania
540
Gdy coś się przytrafia komponentom
Cele y W EJB wyjątki dzielimy na dwa rodzaje: systemowe i programowe
Użyj elementu < run -as> , aby udawać, iż ktoś inny wywołał metodę Propagacja kontekstu bezpieczeństwa przy użyciu < ru n -a s >
Cele
624
Szczególne miejsce dla komponentów — javaxoTnplenv
626
Wszystko jest tylko podkontekstem
6.33
Obowiązki dostawcy komponentów i konstruktora aplikacji
641
Obowiązki wdrożeniowca
642
Zapamiętaj kto jest za co odpowiedzialny
643
563::
Jaki interfejs programistyczny zapewnia EJB 2 0
645
565|
Co MUSI się znaleźć w pliku ejb-jar ?
648
572|
Ograniczenia programowe
649
Bar kawowy
651
575j ÓS?!
Boradca.dass DoradcaHome class
^ d c a B e a n class
J
\
ja k korzystać z tej k s i ą ż k i
Bar k a w
o w y
Wprowadzenie
O sta te c z n y P ró b n y Egzam in B a ru K a w o w e g o . To jest to 70 pytań Forma, zagadnienia i poziom trudności jest niemal taki sam jak na prawdziwym egzaminie M y to wiemy
Ostateczny egzamin próbny
Skorow idz
! f S « lj'w ta Pśwentaki wygi „Dlaczego au to rzy
Ja k korzystać z tej książki
Wprowadzenie
Wiemy, co sobie myślisz
Dla kogo jest ta książka? Jeśli m ożesz podpow iedzieć tw ierdząco n a wszystkie poniższe pytania.
„Po co te wszystkie o b razk i?”
Czy znasz Javę? (Przy czym wcale nie musisz być specjalistą.) 0
„Czy w taki sposób m ożna się czegokolwiek nauczyć?”
Czy chcesz poznać, zrozumieć i zapamiętać informacje dotyczące technologii EJB, w celu zdania egzaminu SCBCD i tworzenia komponentów biznesowych?
®
„Czy czuję zapach pizzy?”
Czy wolisz stymulujące rozmowy przy posiłku od suchych i nudnych publikacji technicznych?
Wiemy także, co sobie myśli Twój mózg
to ta książka je st właśnie dla Ciebie.
Twój mózg p rag n ie nowości. Zaw sze szuka, p rzegląda i wyczekuje n a coś niezwykłego. W taki sposób został stw orzony i to po m ag a m u przetrw ać.
Zatem, co Twój m ózg robi z tymi wszystkimi rutynowymi, zwyczajnymi, normalnymi inform acjam i, k tó re do niego docierają? O tóż robi wszystko, co tylko m oże, aby nie przeszkadzały w jego najważniejszym zad an iu — zapamiętywaniu rzeczy, k tó re mają prawdziwe znaczenie. Twój m ózg nie traci czasu i energii n a zapam iętyw anie nudnych inform acji; on e nigdy nie przechodzą przez filtr „to jest w oczywisty sposób całkow icie n iew ażne”.
Jeśli m ożesz odpow iedzieć tw ierdząco n a którekolw iek z poniższych pytań:
Dopiero poznajesz język Java? (N ie m usisz być dośw iadczonym p ro g ram istą, lecz pow inieneś posiadać pew ne dośw iadczenia. Jeśli takim i n ie dysponujesz, to najpierw — już te ra z — sięgnij p o książkę H ea d F irst Java, a d opiero p o te m pow róć do lektury niniejszej książki.)
d 0
W jaki sposób Twój m ózg wie, co jest isto tn e? Załóżm y, że jesteś n a codziennej przechadzce i nagle p rzed Tobą staje tygrys, co się dzieje w ew nątrz Twej głowy? '
jesteś bardzo doświadczonym programistą używającym Javy, szukającym książki informacyjnej dotyczącej EJB?
I właśnie dlatego Twój m ózg wie, ż e ...
To musi być ważne! Nie zapominaj o tym !!
A le wyobraź sobie, że jesteś w dom u albo w bibliotece Jesteś
Twój mózg u w aża,
nie warto zapamiętywać
że tego
w bezpiecznym m iejscu — przytulnym i pozbaw ionym tygrysów. Uczysz się. Przygotowujesz się do egzam inu, A lbo poznajesz jakiś tru d n y p ro b lem techniczny, którego rozw iązanie, w edług szefa, pow inno zająć Ci tydzień, a najwyżej dziesięć dni. ’
Boisz się spróbować czegoś nowego? Wolałbyś raczej ^ poddać się leczeniu kanałowemu zęba niż połączyć paski ze szkocką kratą? Czy naprawdę uważasz, że książki technicznej nie można traktować poważnie, jeśli komponenty będą personifikowane?
Jest tylko jeden drobny problem . Twój m ózg stara się Ci pom óc. P róbuje zapewnie, że le w oczywisty sposób n ieisto tn e inform acje nie zajm ą cennych zasobów w Twojej głowie. Zasobów , k tó re pow inny zostać w ykorzystane n a zapamiętanie naprawdę ważnych rzeczy. Takich jak tygrysy. Takich jak zagrożenie, jakie niesie ze sobą pożar . Takich jak to, że już nigdy w życiu nie powinieneś jeździć n a snow boardzie w k rótkich spodenkach.
t.
Co gorsza, nie m a żadnego sposobu, aby pow iedzieć mózgowi: „H ej m ózgu, N o tatk a z dziatu m arketin gu: „Kto u s u n ą ł info rm ację, ż e ta książka je s t wprost stw orzona dla każdego, kogo na nią s ta ć ? D laczego o g ran iczać d o celo w ą g ru p ę o d b io rcó w ?”
Wspaniale. Pozostało jeszcze jedynie 637 głupich, nudnych i drętwych ^ stron. '
,
Neurony płoną. E m ocje szaleją... Adrenalina napływa falami.
jesteś doświadczonym programistą używającym technologii J2EE i szukasz książki o ultrazaawansowanych technologiach serwerowych, publikacji na temat serwerów, korporacyjnych wzorców projektowych oraz długich i skomplikowanych przykładów zaczerpniętych z realnych aplikacji?
to ta książka raczej nie n ad aje się dla Ciebie,
Id
W dzisiejszych czasach jest m ało p raw dopodobne, abyś stał się przek ąsk ą dla tygrysa. A le Twój m ózg wciąż obserw uje. W końcu, nigdy nic nie w iadom o.
Kto i-aczej nie powinien sięgać po tę księżkę?
1
Twój mózg myśli, że właśnie TO je st istotne
bazo danych
nie!
C1 b au lzo ’ ale niezależnie od tego, jak n u d n a jest ta książka i ja k ’ naczne są aktualnie przeżyw ane em ocje, to jed n ak naprawdę chciałbym zapamiętać wszystkie te in fo rm acje” * 3
M m
Ja k korzystać z tej k s i ą ż k i
Wprowadzenie
Metapoznanie: myślenie o myśleniu Wyobrażamy sobie, ie czytelnik tej książki jest uczniem, Jeśli napraw dę chcesz się czegoś nauczyć, i jeśli chcesz się tego nauczyć szybciej i dokładniej to zwracaj uwagę ja k Ci n a tym zależy. Myśl o tym, jak myślisz., P o z n ^ p o s ó b ! “ s y c z y s z .. W iększosc z nas w czasie d o rastan ia nie uczestniczyła w zajęciach z m etap o zn an ia albo teorii nauczania.. O czekiw ano od nas, że będziem y się « « * , je d n a k n ie u c z o Jr m , M m a m y to “ bić. czytania tekstu M y wiemy, co potrafi pobudzić nasze mozgi do działania
Jednak zakładam y, że jeśli trzym asz w ręk u tę książkę, to chcesz nauczyć się E JB I praw dopodobnie m e chcesz stracić zbyt w iele czasu, A poniew aż m asz zam iar zdaw ać
Oto niektóre z głównych zasad niniejszej książki: m u s i w y w a ta ć f m e to d ą y j na s e r w e r z e
W yobraź to sobie wizualnie. Rysunki są znacznie łatwiejsze do zapamiętania niz same słowa i sorawiaia że uczenie staje się znacznie bardziej efektywne (studia nad przypominaniem sobie
zd a ln a u s łu g a RA1I
o b lic z e n i
i przekazywaniem informacji wykazują, ze użycie rysunków poprawia efektywność o 8 9 % ) Poza tym, rysunki sprawiają, ze informacje stają s ę znacznie bardziej zrozum ałe Wyster
y
umieścić słowa bezpośrednio na lub w okolicach rysunku, do ktorego się odnoszą, a me n następnej stronie, a prawdopodobieństwo, że osoby uczące się będą w stanie rozwiązać prob e
,
którego te słowa dotyczą wzrośnie niemal dwukrotnie
Stosuj konwersacje i personifikacje. Według najnowszych badań, w testach końcowych studena uzyskiwali wyniki o 4 0 % lepsze, jeśli treść była przekazywana w sposób bezpośredni, w pierwszej osobie N
"
' w k o « ) ! ¿zm o w y, a nie w sposób formalny Zamiast wykładania, opowiadaj historyjki.
f Bycie metodą ^ Używaj zwyczajnego języka. Nie traktuj swojej osoby zbyt poważnie Kiedy byłbyś bardz. ( abstrakcyjną to naprawdę ) uważny: podczas stymulującej rozmowy przy obiedzie, czy podczas wykładu. ' nic miłego. V/yobrai Zmuś uczniów do głębszego zastanowienia się. sobie, i e jesteś z-upełnie Innymi słowy, jeśli nie zmusisz neuronów do s—. pusty w środku, aktywnego wysiłku, w Twojej głowie nie zdarzy się nic /
wielkiego Czytelnik musi być zmotywowany,
zaangażowany, zaciekawiony i podekscytowany rozwiązywaniem problemów, wyciąganiem wniosków i zdobywaniem nowej wiedzy A osiągnięcie tego wszystkiego jest możliwe poprzez stawianie wyzwań, wykonywanie ćwiczeń i zadawanie
j
^
M « t ą n a w i ą r b s ię ,
£ ” T lc ) 'zy';! MT ,U z " i ks^ k i b ą « i Jo J I , ne) iązkl Iub z dowolnych p ro b uczenia się czegokolw iek m usisz w ziąć 1 odpow iedzialność za swoj mózg, Myśl o tym, czego się uczysz ’ ą \ Sztuczka polega n a tym, aby p rzek o n ać mózg, że poznaw any m a teria ł iest N am au-n w ■ Kluczowy dla Twojego d obrego sa m o p o c z u c Ł Tal w a ż a y ^ ^ l^ ^ S S e W przeciwnym razie będziesz prow adzić nieu stającą w ojnę naprzeciw Ciebie, z własnym m ózgiem , który ze wszystkich sił będzie się starać aby nowe inform acje nie zostały utrw alone.
A zatem, w jaki sposób zmusić mózg, aby potraktował Javę jak głodnego tygrysa? Można to zrobić w sposób wolny i m ęczący iub szybki i bardziej efektywny. W olny sposób p o leg a n a w ielokrotnym pow tarzaniu Oczywiście wiesz, że jesteś w stanie zap am iętać naw et najnudniejsze zagadnienie, m ozolnie je „w kuw ając” Po odpow iedniej liczbie po w tó rzeń Twój m ózg stwierdzi: „Wydaje się, ze to n ie jest dla niego szczególnie w ażne, lecz w kotko to czyta i pow tarza, w ięc przypuszczam , że jakąś w artość musi to |ed n a k m iec . Szybszy sposób p o leg a n a zro b ien iu czegokolwiek, co zwiększy aktywność mózgu, zwłaszcza jeśli czynność ta wyzwoli kilka różnych
pytań zmuszających do zastanowienia oraz poprzez zmuszanie do działań, które wymagają zaangażowania obu półkul mózgowych i wielu zmysłów.
Zdobądź - przyciągnij na dłużej - uwagę i zainteresowanie czytelnika. Każdy znalazł się kiedyś w sytuacji, gdy bardzo chciał się czegoś nauo ,c, lecz
H absfract
„
zasypiał po przeczytaniu pierwszej strony Mózg zwraca uwagę na
vo d sp aceru /); ’
fr@SC‘{
M e to d a w e *
dnskiem .
Ko ń cz y
śre
tr e ś c i!
rzeczy njeZwykłe, interesujące, dziwne, przykuwające wzrok, nieoczekiwane Jednak poznawanie nowego technicznego zagadnienia wcale nie musi być nudne Jeśli będzie to zagadnienie interesujące, Twój mózg przyswoi je sobie znacznie szybciej
i
■ to z kolei zwiększa aktywność neuronów ¿ w l i a j k ™ ) ? , , 1’“ " ““ 1" J 1“ " : ''? H "i™ 11* " ! , z, s J i S S S S S S S S S
stanse, ko mózg „zna
od nirh
u
a
'i j • ✓• .
uw ażają,
uczestniczysz w wykładzie n a sali n rłn J; e jakiejkolwiek i k ^ o ś c f ? ^
? * ludzieK,ai’ s,ę
b io tą udział w rozm ow ie edvż oczeknip «ip
-W «
'V 7j?Zf. p o stizcg a to tak samo, jak w sytuacji gdy N ie m a p o trzeb y wykazywania * Y
znamy więcej szczegółów technicznych niz Zenek z działu inżynierii.
Jednak rysunki i przedstaw ianie inform acji w form ie rozm ow y to jedynie początek.
inform acji '" fo rm a c ji...
O
tyct
Jak korzystać z tej książki
Wprowadzenie
Oto co zrobiliśmy:
Oto co możesz zrobić,
Konfmr U/ytnij te porady i przyklej na lodówce.
Wprowadziliśmy mnóstwo rysunków, ponieważ Twój mózg zwraca większą uwagę na obrazy niż na tekst. Jeśli chodzi o mózg, to faktycznie jeden obraz jest w art 1024 słowa. W sytuacjach gdy pojawiał się zarówno tekst, jak i rysunek, umieszczaliśmy tekst na rysunku, gdyż mózg działa bardziej efektywnie, gdy tekst jest wewnątrz czegoś, co opisuje niż kiedy jest umieszczony w innym miejscu i stanowi część większego fragm entu tekstu. Stosowaliśmy powtórzenia, wielokrotnie podając tę samą informację na różne sposoby i przy Komponenty wykorzystaniu różnych środków przekazu, oraz odwołując się do różnych zmysłów. Wszystko po to, ,■ aby zwiększyć szanse, że informacja zostanie zakodowana w większej liczbie obszarów Twojego mózgu.
0
Korzystaliśmy z pomysłów i rysunków w nieoczekiwany sposób, ponieważ Twój mózg oczekuje i pragnie nowości; poza tym staraliśmy się zawrzeć w nich chociaż trochę emocji, gdyż mózg jest skonstruowany w taki sposób, iż zwraca uwagę na biochemię związaną z emocjami. Pr awdopodobieństwo zapam iętania czegoś jest większe, jeśli „to coś” spr awia, że coś poczujemy, nawet jeśli to uczucie nie jest niczym więcej niż lekkim rozbawieniem, zaskoczeniem lub
(B ą d ź k o n te n erem
Zamieściliśmy w książce ponad 40 ćwiczeń, ponieważ mózg uczy się i pam ięta więcej, gdy coś robi, niż gdy o czymś czyta, Poza tym, podane ćwiczenia stanowią wyzwania, choć nie są przesadnie trudne, gdyż właśnie takie preferuje większość osób. Zastosowaliśmy wiele stylów nauczania, gdyż Ty możesz preferow ać instrukcje opisujące krok po kr oku sposób postępowania, ktoś inny analizowanie zagadnienia opisanego w ogólny sposób, a jeszcze inne osoby — przejrzenie przykładowego fragm entu kodu. Jednak niezależnie od ulubionego sposobu nauki, każdy skorzysta na tym, że te same informacje będą przedstawiane
kilkakrotnie w różny sposób.
f
:
X B
D odatkowo zamieściliśmy opowiadania i ćwiczenia prezentujące więcej niż jeden punkt widzenia, ponieważ mózg uczy się dokładniej, gdy jest zmuszony do przetwarzania i podaw ania własnej opinii. Postawiliśmy przed Tobą wyzwania, zarówno poprzez włączenie ćwiczeń, jak i stawiając pytania, na które nie zawsze można odpowiedzieć w prosty sposób; a to dlatego, że mózg uczy się i pam ięta gdy musi popracować nad czymś (podobnie — nie możemy zdobyć dobrej formy fizycznej, obserwując ćwiczenia w telewizji). Jednak dołożyliśmy wszelkich starań, aby zapewnić, że gdy pracujesz, robisz dokładnie to, co trzeba. Aby ani jeden dendryt nie musiał przetwarzać trudnego przykładu, ani analizować tekstu zbyt lapidarnego lub napisanego trudnym żargonem.
ar
- i KAWOW7 H
Personiflkowałiśmy tekst. W opowiadaniach, przykładach, rysunkach i wszelkich innych możliwych miejscach tekstu staraliśmy się personifikować tekst, gdyżjesteś osobą, a Twój mózg zwraca większą uwagę na osoby niż na rzeczy.
Zastosowaliśmy m etodę 80120, zakładamy bowiem, że to nie jest książka dla osób, które m ają zamiar pisać doktorat na tem at technologii EJB. Z atem nie zajmujemy się w niej wszelkimi możliwymi zagadnieniami, a jedynie tymi, z którymi faktycznie możesz się zetknąć.
0
r | V
r
>71*
®
Rozmawiaj o zdobywanych informacjach. Na głos. Mówienie aktywuje odm ienne fragmenty mózgu. Jeśli próbujesz coś zrozumieć lub zwiększyć szanse na zapam iętanie informacji na dłużej, powtarzaj je na głos Jeszcze lepiej, gdy będziesz starał się je na głos komuś wytłumaczyć. W ten sposób nauczysz się szybciej, a oprócz tego będziesz mógł odkryć pomysły, o których nie wiedziałeś podczas czytania tekstu książki.
Posłuchaj swojego mózgu.
Czytaj fragmenty oznaczone jako „N ie ma niemądrych pytań” .
Uważaj kiedy Twój mózg staje się przeciążony. Jeśli zauważysz, że zaczynasz czytać pobieżnie i zapominać to, o czym przeczytałeś przed chwilą, to najwyższy czas, żeby sobie zrobić przerwę. Po przekroczeniu pewnego punktu, nie będziesz się uczył szybciej, „wciskając” do głowy więcej informacji. Co gorsza, może to zaszkodzić całemu procesowi przyswajania wiedzy.
Rób sobie przerwy. ^
(a w szczególności przenoszenie informacji do pamięci długotrwałej) m ają miejsce po odłożeniu książki. Twój mózg potrzebuje trochę czasu dla siebie i musi dodatkowo przetworzyć dostarczone informacje Jeśli podczas tego czasu koniecznego na wykonanie dodatkowego „przetwarzania” zmusisz go do innej działalności, to część z przyswojonych informacji może zostać utr acona
Poczuj coś! Twój mózg musi wiedzieć, że to, czego się uczysz ma znaczenie. Z zaangażowaniem śledź zamieszczane w tekście opowiadania. Nadawaj własne tytuły zdjęciom. Zalewanie się łzami ze śmiechu po pr zeczytaniu głupiego dowcipu i tak jest lepsze od br aku jakiejkolwiek reakcji.
Niech lektura tej książki będzie ostatnią rzeczą, jaką robisz przed pójściem spać. A przynajmniej ostatnią rzeczą stanowiąca wyzwanie intelektualne. Pewne elementy procesu uczenia się
Pij wodę. Dużo wody. Twój mózg pracuje najlepiej, gdy dostarcza się mu dużo płynów. Odwodnienie (które może następować nawet zanim poczujesz pragnienie) obniża zdolność percepcji Piwo oraz wszelkie inne „mocniejsze” napoje zostaw sobie na fetowanie zdanego egzaminu.
Wykonuj ćwiczenia. Rób notatki.
Wstań, przeciągnij się, pochodź trochę, zmień fryzurę, przejdź do innego pokoju . Dzięki temu Twój mózg będzie mógł coś poczuć, a nauka nie będzie zbyt związana z konkretnym miejscem. Pamiętaj — nie będziesz zdawać egzaminu u siebie w sypialni.
POCZEKALNI DLA KOMPONENTÓW
u m ysłu
@
Chodzi tu o wszystkie fragmenty umieszczone z boku tekstu. Nie są to fragmenty opcjonalne — stanowią one część podstawowej zawartości książki! Nie pomijaj ich.
iasiyszaHe n
o c
Zwolnij. Im więcej rozumiesz, tym mniej musisz zapamiętać.
Umieszczaliśmy je w tekście, jednak jeśli zrobilibyśmy je za Ciebie, to niczym nie różniłoby się to od sytuacji, w której ktoś za Ciebie wykonywałby ćwiczenia fizyczne. I nie ograniczaj się jedynie do czytania ćwiczeń. Używaj ołówka. M ożna znaleźć wiele dowodów na to, że fizyczna aktywność podczas nauki może poprawić jej wyniki.
KLUCZOWE ZAGADNIENIA
Podaliśmy informacje przeznaczone dla obu półkul Twojego mózgu, gdyż im bardziej mózg będzie zaangażowany, tym większe jest prawdopodobieństwo nauczenia się i zapam iętania podawanych informacji i tym dłużej możesz koncentrować się na nauce. Ponieważ angażowanie tylko jednej półkuli mózgu często oznacza, że druga będzie mogła odpocząć, będziesz mógł uczyć się bardziej produktywnie przez dłuższy okres.
A zatem , zrobiliśm y co w naszej mocy. R eszta zależy od Ciebie. M ożesz zacząć od poniższych po rad . Posłuchaj swojego m ózgu i określ, k tó re spraw dzają się w Twoim przypadku, a k tó re nie dają pozytywnych rezultatów .
Nie ograniczaj się jedynie do czytania. Przerwij na chwilę lekturę i pomyśl. Kiedy znajdziesz w tekście pytanie, nie zaglądaj od razu na stronę odpowiedzi. Wyobraź sobie, że k to ś faktycznie zadaje Ci pytanie. Im bardziej zmusisz swój mózg do myślenia, tym większe będą szanse, że się nauczysz i zapamiętasz dane zagadnienie.
zainteresowaniem
Używaliśmy bezpośrednich zwrotów i przekazywaliśmy treści w formie konwersacji, gdyż mózg zwraca większą uwagę, jeśli uważa, że prowadzisz rozmowę, niż gdy jesteś jedynie biernym słuchaczem prezentacji. Mózg działa w ten sposób, nawet gdy czytasz rozmowę.
aby zmusić swój mózg do posłuszeństwa
0;
W ykonaj Ostateczny Próbny Egzaminu Baru Kawowego dopiero po przeczytaniu całej książki. Jeśli spróbujesz go zrobić zbyt wcześnie, to nie będziesz w stanie precyzyjnie określić, w jakim stopniu jesteś przygotowany do zdawania prawdziwego egzaminu. Poczekaj do m om entu gdy uznasz, że jesteś już niemal całkowicie gotowy i dopiero wtedy spróbuj go wykonać, dając sobie dokładnie 2 godziny czasu. Jeśli zbyt wcześnie spróbujesz odpowiedzieć na pytania egzaminacyjne, to gdy później do nich powrócisz, będziesz pam iętać część udzielonych odpowiedzi.
Jak korzystać z tej książki
Wprowadzenie
Czego potrzebujesz, aby skorzystać z tej książki
Kilka rzeczy, o których musisz wiedzieć
Oczywiście oprócz m ózgu i ołów ka powinieneś mieć także Javę, J2EE i komputer.
To książka do nauki, a nie encyklopedia. Celowo usunęliśmy wszystko, co mogłoby Ci przeszkadzać w nauce, niezależnie od tego nad czym pr acujesz w danym miejscu książki. Podczas pierwszej lektury książki należy zacząć od jej początku, gdyż kolejne rozdziały bazują na tym, co wiedziałeś i czego się dowiedziałeś wcześniej. o **™
N ie p otrzebujesz żadnych dodatkow ych narzędzi, takich ja k zintegrow ane środow iska program istyczne (ang, integrated development environment, ID E ). Z alecam y, abyś do A'
m o m entu zakończenia lektury niniejszej książki nie używał niczego p o za prostym edytorem , Środow iska program istyczne pozw alające n a tw orzenie aplikacji budow anych z kom ponentów m ogą ukryw ać przed p ro g ram istą w iele szczegółów, k tó re są w ażne (i których znajom ość będzie spr aw dzana), dlatego też najlepszym rozw iązaniem będzie sam odzielne tw orzenie całego k o d u kom ponentów . K iedy już zrozum iesz co się dzieje, będziesz m ógł zacząć korzystać z narzędzi, k tó re częściowo autom atyzują proces tw orzenia kom ponentów Z achęcam y jed n ak , byś korzystał z narzędzi, k tó re g en eru ją pliki X M L zaw ierające deskryptory w drażania. M ożna w tym celu w ykorzystać narzędzie deploytool w chodzące w skład im plem entacji w zorcowej (ang. Reference Implementation) J2 E E bąd ź p ro g ram xD oclet.
Używamy prostych diagramów wzorowanych na U N L. Choć jest całkiem prawdopodobne, że już znasz UML, to jednak egzamin nie dotyczy tych zagadnień, a znajomość języka UML nie jest niezbędna do korzystania z tej książki. Dzięki temu nie będziesz musiał przejmować się jednoczesnym poznawaniem technologii EJB i języka UML
Nie opisujemy wszystkich możliwych szczegółów podanych w specyfikacji. Egzamin jest dosyć szczegółowy i my także. Jeśli jednak istnieje jakiś detal specyfikacji, który nie jest tematem pytań egzaminacyjnych, to my także nie będziemy go opisywać, chyba że ma on znaczenie dl; większości osób tworzących komponenty. Zasób wiedzy koniecznej do tworzenia komponentów i zdania egzaminu obejmuje około 95% informacji zawartych w specyfikacji. W książce podaliśmy kilka informacji, które nie należą do zagadnień egzaminacyjnych, jednak są one odpowiednio wyróżnione, tak abyś nie musiał ich zapamiętywać. Można także znaleźć bardzo nieliczne zagadnienia, które nie zostały opisane w niniejszej książce, choć pojawiają się na egzaminie. Stworzyliśmy faktyczny egzamin, dlatego też wiemy na czym powinieneś skoncentr ować swoje wysiłki! Jeśli jest prawdopodobne, że jakaś bardzo szczegółowa informacja będzie tematem jednego z pytań egzaminacyjnych, jednak wysiłek, jaki należy włożyć w jej przyswojenie przewyższa jej prawdziwą wartość, to pominęliśmy tę informację, albo opisaliśmy ją bardzo pobieżnie, albo umieściliśmy ją wyłącznie w egzaminie próbnym.
Pobieranie i konfiguracja J2 E E ----------------- -------------*
Jeśli jeszcze nie posiadasz J2SE SDK w wersji 13 lub nowszej, to będziesz jej potrzebować Choć nie ma gwarancji, że J2EE będzie działać z J2SE w wersji 1 4 lub nowszej, to jednak korzystanie z J2 S E 1 4 nie powinno przysparzać żadnych problemów Niemniej jednak specyfikacja gwarantuje jedynie współpracę z J2 S E 13 (Możesz być o to pytany)
■
Jeśli jeszcze nie posiadasz serwera zgodnego z technologią EJB 2 0, odwiedź witrynę W W W firmy Sun i pobierz J2EE 1.3 W jego skład wchodzą pliki JAR z całym interfejsem programistycznym (API) J2EE
Ćwiczenia są obowiązkowe.
(w tym także klasy, których będziesz potrzebować podczas tworzenia komponentów) oraz serwer
To jest książka do nauki, a nie do czytania dla przyjemności. Ćwiczenia oraz wszelkie dodatkowe polecenia nie są jedynie dodatkami — stanowią one integralną część podstawowej treści książki. Niektóre z nich zostały umieszczone po to, by pomóc w zapamiętaniu informacji; inne, by pomóc w zrozumieniu opisywanego materiału, a jeszcze inne — by pomóc Ci w praktycznym zastosowaniu zdobytej wiedzy. Jeśli poważnie podchodzisz do nauki i zależy Ci na zapamiętaniu informacji oraz zdaniu egzaminu za pierwszym razem, to nie pomijaj niczego.
Reference Implementation (Rl) Nie powinieneś pobierać J2EE w wersji 14! Egzamin bazuje na J2 E E 1 3, gdyż wersja 1 4 pojawiła się zbyt niedawno, by była dostatecznie często stosowana w praktyce Można przypuszczać, że do końca 2004 roku bardzo niewiele systemów korporacyjnych zacznie stosować tę wersję J2EE Kiedy jednak J2 E E 1 4 zyska niezbędną popularność, egzamin zostanie dostosowany do nowszej specyfikacji ■
Powtórzenia są celowe i ważne.
J2EE SDK nie zawiera dokumentacji interfejsu programistycznego (API) A dokumentacja ta będzie Ci niezbędna Możesz ją pobrać z witryny java sun com Dokumentację API można także przeglądać bezpośrednio w internede, bez pobierania jej kopii, jednak rozwiązanie to jest dość uciążliwe
■
Kiedy już pobierzesz niezbędne oprogramowanie i rozpakujesz lub zainstalujesz je (niezbędne operacje będą zależeć od pobranej wersji oprogramowania i używanego systemu operacyjnego), będziesz musiał określić wartości kilku zmiennych środowiskowych; oczywiście przy założeniu, że chcesz korzystać z serwera J2EE Rl, Wszelkie instrukcje można znaleźć w pobranym oprogramowaniu, jednak możesz się spodziewać, że trzeba będzie zmienić wartość zmiennych środowiskowych
path
oraz
c la sspa th
Java 2 Standard Edition 1.3 Java 2 Enterprise Edition 13 (zawierająca EJB 2.0)
oraz dodać kilka
informacji do zmiennych 12EEJHOME oraz ]A V A _ home ■
Jeśli chcesz zdawać egzamin, to będziesz takżepotrzebować specyfikacji Pobierz zatem specyfikację EJB 2 0 (nie EJB 21 — to ważne!) i miej ją zawsze pod ręką Na egzaminie nie pojawią się żadne zagadnienia, które nie byłyby opisywane w specyfikacji Większość odpowiedzi do naszego próbnego egzaminu zawiera odwołania do konkretnych stron specyfikacji, na które możesz zajrzeć, aby dowiedzieć się dlaczego źle odpowiedziałeś.
Notatka: większość kodu prezentowanego w niniejszej książce można znaleźć na serwerze FTP wydawnictwa Helion, pod adresem ftp //ftp helion pl/przyklady/HFEJBzip
Jedną z cech, która wyróżnia serię książek Head First jest to, iż naprawdę bardzo, bardzo, bardzo zależy nam na tym, abyś wszystko zrozumiał i przyswoił. Chcielibyśmy także, abyś zakończył lekturę tej książki, pamiętając informacje, które w niej zamieściliśmy. Autorzy większości książek informacyjnych i encyklopedycznych nie zwracają uwagi na przyswojenie i zapamiętanie informacji przez czytelników, jednak w tej książce znajdziesz wiele pojęć, które pojawiają się kilka razy Badania mózgu wykazują, że przeniesienie informacji do pamięci długotrwałej wymaga zazwyczaj minimum trzech „powtórzeń”.
Przykładowe kody są jak najbardziej zwięzłe. Przeglądanie 200 wierszy kodu w poszukiwaniu dwóch linijek, które należy zrozum ieć m oże być frustrujące.
W większości przykładów zamieszczonych w tej książce dodatkowy kod, który nie jest bezpośrednio związany z omawianymi zagadnieniami, został w jak największym stopniu skrócony; dzięki temu fragmenty, których musisz się nauczyć są przejrzyste i proste. Nie należy zatem oczekiwać, że podawane przykłady będą solidne, ani nawet że będą kompletne. To Twoim zadaniem po zakończeniu lektury będzie ich uzupełnienie i dopracowanie. Przykłady zamieszczone w tej książce zostały opracowane wyłącznie pod kątem nauki i nie zawsze są w pełni funkcjonalne. Więcej bardziej szczegółowych przykładów można znaleźć na naszej witrynie www. wickedlysmart.com.
UMU
Zdawanie e
Wprowadzenie Ile kosztuje egzamin i gdzie można się zarejestrować?
Zdawanie egzaminu SCBCD U Czy w pierwszej kolejności muszę zdać egzamin SC JP?
Egzamin certyfikujący kosztuje 650 PLN. W łaśnie dlatego pow stała niniejsza książka abyś mógł zdać go już za pierwszym razem. W celu dokonania rezerwacji należy skontaktow ać się z firm ą Sun M icrosystems, która przydziela voucher umożliwiający zamówienie egzam inu w centrum egzaminacyjnym Sylvan Prometic.
Tak. E gzam iny Bussiness C o m p o n en t D eveloper, W eb C o m p o n en t D eveloper o raz D eveloper wym agają w cześniejszego zdania egzam inu Sun C eritified Java P rogram m er*
>
Z ilu pytań składa się egzamin?
f
Podczas egzam inu będziesz m usiał odpow iedzieć n a 70 pytań. N ie wszyscy otrzym ują zestaw tych sam ych 70 pytań, istnieje w iele różnych zestawów. N iem niej je d n ak sto p ień trudności o raz zakres zag ad n ień tem atycznych zaw sze są takie sam e. M ożesz oczekiwać, że n a faktycznym egzam inie każd em u z jego celów b ędzie odpow iadać
| » f
je d n o pytanie, a w niektórych przypadkach — kilka pytań.
Ile jest czasu na podanie odpowiedzi? M asz dwie godziny (120 m inut). D la w iększości zdających czas nie je st większym p roblem em , gdyż p ytania nie są skom plikow ane, długie ani zagadkow e. O grom n a w iększość pytań je st b ardzo k ró tk a, daje m ożliw ość wyboru
|
jednej z kilku podanych odpow iedzi i albo się zna tę odpow iedź, albo nie.
jakie są pytania na egzaminie?
;
Są niem al takie sam e ja k pytania n a naszym egzam inie próbnym ; przy czym je st je d n a podstaw ow a różnica — na prawdziwym egzam inie podaw ane są inform acje ile je st popraw nych odpow iedzi, n ato m iast my ich nie podajemy.
N a egzam inie pojaw ia się kilka pytań typu „przeciągnij i u p u ść”, których w książce n ie m ożem y podać. N iem niej je d n ak pytania te są jedynie interaktyw nym sposobem n a łączenie odpow iedzi.
Na ile pytań muszę odpowiedzieć poprawnie? A by zdać egzam in, m usisz popraw nie odpow iedzieć n a 45 pytań (64% ). K iedy odpow iesz n a wszystkie pytania, um ieść w skaźnik myszy n ad przyciskiem kończącym egzam in, aż zbierzesz w sobie odw agę, by go kliknąć. Gdy to zrobisz, w ciągu (około) sześciu n an o sek u n d będziesz w iedzieć czy zdałeś (n a pew no zdałeś).
Dlaczego egzaminy próbne zamieszczone w tej książce nie podają ile odpowiedzi trzeba zaznaczyć? Chcem y, aby nasz egzam in był nieco trudniejszy od praw dziw ego, żeby dać Ci jak najbardziej realistyczne wyobr ażenie tego, co Cię czeka. D użo osób uzyskuje n a egzam inach próbnych lepsze wyniki, gdyż podchodzi do nich więcej niż jed en raz, a m y n ie chcem y, abyś w yrobił sobie błęd n e zd an ie n a te m a t swojego stopnia przygotow ania do egzam inu.
Co otrzymam po zdaniu egzaminu? Z an im wyjdziesz z ce n tru m egzam inacyjnego, nie zapom nij w ziąć podsum ow ania. Z aw ie ra o n o uzyskany wynik w każdym z podstaw ow ych działów tem atycznych oraz inform acje o tym, czy egzam in został zdany, czy też nie. Zachowaj ten dokument! To Twój początkow y dow ód n a to, że uzyskałeś certyfikat. W kilka tygodni p o zdaniu egzam inu otrzym asz niew ielką przesyłkę z ce n tru m edukacyjnego firm y S un (ang. Sun Educational Center) zaw ierającą prawdziwy, w ydrukow any certyfikat, list gratulacyjny o raz cudow ną odzn ak ę z n ap isem Sun C ertified B usiness C o m p o n en t D eveloper . U żyta czcionka je st ta k m ała, iż z pow odzeniem m ożesz utrzymywać, że jesteś certyfikow any w czym kolw iek byś zechciał, a i ta k n ik t nie b ędzie w stan ie zauważyć różnicy, W przesyłce nie znajdziesz je d n ak b u telki z trunkiem , którym zapew ne zechcesz uczcić zdany egzam in.
:
W szelkie inform acje dotyczące rejestracji i miejsc, gdzie są p rzep ro w ad zan e egzam iny m ożna znaleźć n a stronie internetow ej firmy Sun, pod adresem http://plsun.com/service/training/.
Jak wygląda oprogramowanie używane do przeprowadzenia egzaminu? Jest ono wyjątkowo proste — n a ekranie jest wyświetlane pytanie, a Ty jedynie musisz podać odpowiedź. Jeśli nie chcesz odpow iadać n a pytanie, to możesz je pom inąć i wrócić do niego później. Jeśli odpow iedziałeś na pytanie, lecz nie jesteś pewny udzielonej odpowiedzi, to możesz „zaznaczyć” pytanie i wrócić do niego później, jeśli będziesz m ieć wystarczająco dużo czasu, Kiedy skończysz, n a ekranie zostaną wyświetlone wszystkie pytania, n a które nie udzieliłeś odpowiedzi, lub które zostały zaznaczone, dzięki czemu będziesz m ógł do nich powrócić. N a samym początku egzam inu zostanie p rzeprow adzone k ró tk ie w prow adzenie dotyczące sposobów obsługi oprogram ow ania, podczas k tórego będziesz m ógł rozw iązać k ró tk i test pró b n y (który jed n ak n ie będzie związany z technologią E JB ). Czas pośw ięcony n a te n próbny te st n ie b ęd zie uw zględniany jak o czas egzam inu dotyczącego E JB O dm ierzanie czasu egzam inu nie rozpocznie się, dopóki nie zakończysz korzystania z przykładow ego egzam inu i nie będziesz gotowy, by rozpocząć właściwy test.
Gdzie można znaleźć grupę dyskusyjną związaną z tym egzaminem i jak długo trzeba się do niego przygotowywać? Tak się składa, że najlepsza in tern eto w a g ru p a dyskusyjna pośw ięcona te m u egzam inow i jest p ro w ad zo n a przez autorów niniejszej książki. (O rany, a co to szkodzi?) Zajrzyj n a w itrynę www. javaranch.com do jej działu Big Moose Saloon. N ie sposób przegapić grup dyskusyjnych dotyczących certyfikacji. Zaw sze znajdzie się n a nich ktoś, k to udzieli odpow iedzi n a Twoje pytania, m oże naw et będziem y to my. Użytkow nicy w itryny Javaranch są najfajniejszą społecznością w całym in ternecie, a zatem będziesz tam m ile widziany, niezależnie od poziom u znajom ości języka Java. Jeśli musisz d o p iero zdać egzam in SC JP (autoryzow any p ro g ram ista w zakresie platform y Java), to także m ożem y Ci pom óc. Czas konieczny do przygotow ania do egzam inu w znacznej m ierze zależy od posiadanych dośw iadczeń w dziedzinie w ykorzystania technologii E JB . Jeśli d o p iero zaczynasz ją poznaw ać, to przygotow anie m oże zająć Ci od trzech do dziesięciu tygodni, zależnie od tego, ile czasu m ożesz codziennie pośw ięcić n a naukę.
Dlaczego egzamin bazuje na J2EE 1.3, a nie na nowszej wersji J2 EE 1.4? Egzam iny firm y Sun m ają spraw dzać w iedzę osób dysponujących co najm niej półrocznym dośw iadczeniem w korzystaniu z danej technologii. Czy to oznacza, że egzam in SCBC D pow inien zostać zaktualizow any po sześciu m iesiącach od w prow adzenia J2 E E 1.4? N ie. Poniew aż firm y nie zaczną stosow ać tej w ersji J2 E E tego samego dnia, gdy zostanie o n a u d o stęp n io n a E gzam in nie zostanie u aktualniony dopóki odpow iednio dużo firm nie zacznie w praktyce stosować J2 E E 1.4. N ic byś nie osiągnął, przychodząc do p o tencjalnego pracodaw cy i ogłaszając: „H ej, m am certyfikat w dziedzinie tej technologii, k tó ra jest najnow sza i najw spanialsza, w iem co prawda, że niem al n ik t z niej nie korzysta, niem niej je d n a k ”, E gzam iny firm y Sun nie m ają n a celu spraw dzenia jak dużo wiesz, tylko jak dużo p osiadanej w iedzy będziesz w stanie wykorzystać. Są to egzam iny zawodowe, a w iele z zadaw anych pytań jest sform ułow anych w tak i sposób, by spraw dzić czy rozum iesz implikacje znanych Ci sposobów działania technologii EJB. W nomenklaturze przyjętej przez polski oddział firm y Sun egzaminy te noszę nazwy, odpowiednio: autoryzowany developer komponentów biznesowych w zakresie platformy z t t autoryzowany developer komponentów Internetowych w zakresie platformy J2EE, autoryzowany developer w zakresie języka Java oraz autoryzowany programista w zaKresie platformy Java "
Rozdział 1. Wprowadzenie do E Ji
X
Zapraszamy do EJB Pokochasz, technologię EJB! I pomyśl jak bardzo będą Ci z.az.drościć Gosia i Jurek, kiedy Twoja aplikacja serwerowa będzie większa od ich... możesz nawet dostać awans!
m
k m
Wm
HŁ
■ ■ ■
m BSm
■'i*
■ H
Komponenty Enterprise JavaBean sq łatwe. Przynajmniej jeśli porównamy je z tym, co trzeba by napisać, aby własnoręcznie stworzyć skalowalny, transakcyjny, bezpieczny, trwały i współbieżny serwer komponentów korporacyjnych .W tym rozdziale stworzymy, wdrożymy i uruchomimy aplikację EJB, a następnie opiszemy jej szczegóły. Nim skończymy dowiesz się także jakie zalety ma technologia EJB, jakie są jej cechy charakterystyczne i poznasz (pobieżnie) zasady działania kontenerów EJB. Przyjrzymy się architekturze EJB z wysokiego poziomu i poznamy trzy typy komponentów. Im więcej zrozumiesz, czytając ten rozdział, tym mniej później będziesz musiał nauczyć się na pamięć Dlatego też, nie pomijaj go (Jeśli jesteś już ekspertem w dziedzinie EJB, to ewentualnie możesz pobieżnie go przejrzeć.)
Wprowadzenie do EJB
Cele egzam inu
Czego dotyczij technologia E JB ? *
te ?
y
Programowanie bazujące na komponentach .-j
Przegląd kom ponentów Enterprise Javabeans
Oficjalnie: 1 .1 Określ zastosowania, korzyści oraz cechy technologii Enterprise Javabeans, dla wersji 2 0 specyfikacji EJB.
C o to tak naprawdę oznacza: Musisz znać ogólny sposób działania technologii EJB, wiedzieć do czego można ją zastosować oraz jakich możliwości nie zapewnia Musisz rozumieć ogólną architekturę EJB oraz sposób, w jaki ta architektura obsługuje konkretne możliwości EJB Na przykład, musisz wiedzieć, że EJB obsługuje transakcje, mechanizmy zabezpieczeń i działanie współbieżne, jednak nie gwarantuje, że będą dostępne takie mechanizmy jak równoważenie obciążenia, zapewnianie poprawnego działania aplikacji w przypadku awarii serwera oraz łączenie serwerów w klastry Musisz wiedzieć, że EJB udostępnia trzy typy komponentów, session bean, entity bean oraz message-driven bean, a komponenty session bean dzielą się na stanowe oraz bezstanowe
Dzięki technologii Enterprise Javabeans m ożna tworzyć elementy konstrukcyjne — komponenty E JB — które następnie Ty sam lub ktoś inny będzie mógł wykorzystywać przy tworzeniu aplikacji. Na przykład możesz stworzyć bean (bean to inne określenie oznaczające to samo, co komponent) o nazwie K lie n t, reprezentujący dane klienta przechowywane w bazie danych. Komponentu tego będzie można używać w pr ogr amie księgowym, aplikacji obsługującej zakupy dokonywane za pośrednictwem internetu, aplikacji pomocy technicznej, bądź też praktycznie w dowolnym innym programie, w którym będą używane dane klientów. W praktyce, w przypadku niektórych komponentów ich autor oraz konstruktor aplikacji mogą nie pracować dla tej samej firmy lub w ogóle nie znać się wzajemnie. Jako twórca kom ponentów możesz napisać na przykład komponenty: Zam ów ienie, L is ta P l a c , Koszyk, które programiści z innej firmy mogą kupić i używać ich przy tworzeniu swoich własnych aplikacji. Jedną z ogromnych zalet programowania opartego na komponentach jest przeniesienie możliwości wielokrotnego wykorzystywania kodu na zupełnie nowy, wyższy poziom. W tym przypadku, zamiast ponownego wykorzystywania klas Javy, używane są większe elementy konstrukcyjne dysponujące określonymi możliwościami funkcjonalnymi. Często zdarza się, że można zmodyfikować sposób działania kom ponentu bez jakiejkolwiek ingerencji w jego kod źródłowy! W tym rozdziale dowiesz się, że podczas w drażania kom ponentu n a serwerze możesz go deklaratywnie — za pośrednictwem tak zwanych deskryptorów rozmieszczenia (ang, deployment descriptor) zapisywany w Xmlu — skonfigurować i dostosować do swoich potrzeb, określając w jaki sposób dany kom ponent m a działać.
Programowanie bazujące na stosowaniu komponentów pozwala na przeniesienie wielokrotnego stosowania kodu na zupełnie nowy poziomy. W przypadku programowania zorientowanego obiektowo, można wielokrotnie korzystać z tych samych klas, jednak wprzypadku komponentów stosowane są większe elementy konstrukcyjne o ściśle określonych możliwościach funkcjonalnych Co więcej, możnaje dostosowywać do własnych potrzeb bez konieczności wprowadzania zmian w kodzie źródłowymi
Aplikacja A: internetowe zakupy Ferdynand tworzy aplikacją do prowadzenia internetowych zakupów, używając przy tym dwóch komponentów stworzonych w firmie Beanfftacher oraz jednego komponentu własnego autorstwa.
Komponenty
Aplikacja B: wsparcie techniczne klientów Janek tworzy aplikacją zapewniającą wsparcie techniczne dla klientów firmy; wykorzystuje przy tym dwa komponenty kupione od firmy BeanMacher oraz dwa komponenty, które napisat sam
Zalety technologii EJB
Wprowadzenie do EJB
Co tak naprawdę daje mi technologia E JB ? Technologia E JB pozwala skoncentrować się na logice biznesowej działania Twojej firmy, zapewniając jednocześnie, że wszystkie inne usługi (transakcje, obsługa komunikacji sieciowej, mechanizmy zabezpieczeń itp.) będą obsługiwane przez twórców serwera EJB. Wyobraźmy sobie, że pracujesz w firmie Świat Gitar, zajmującej się sprzedażą sprzętu muzycznego za pośrednictwem internetu, Masz ciekawsze rzeczy do roboty niż spędzanie w pracy 90 godzin tygodniowo, a zatem gdzie chciałbyś spędzić swój wolny czas? Czy nie wolałbyś skoncentrować się raczej na sposobie, w jaki Twoja firma prowadzi sprzedaż niż na samodzielnym tworzeniu bezpiecznego, sieciowego i tr ansakcyjnego serwera aplikacji? Dlaczego nie mógłbyś robić tego, na czym znasz ' się najlepiej (czyli zapewniać obsługę "V . a jj logiki biznesowej Twojej firmy) ‘ i pozostawić dźwiganie ciężarów v
;
f ■
(czyli całą infrastrukturę i usługi, jakie zapewnia serwer) komuś innemu? Cały m odel EJB m a właśnie ten cel — by każdy mógł r obić to, co robi najlepiej, czyli aby twórcy serwerów mogli skoncentrować swoje wysiłki na opracowaniu infrastruktury niezbędnej dla działania aplikacji korporacyjnych, a programiści korporacyjni — na stworzeniu odpowiedniej logiki biznesowej.
Technologia E JB pozwala na dostosowanie i skonfigurowanie komponentów w momencie wdrażania i to bez konieczności wprowadzania zmian w ich kodzie źródłowym! Możemy zmienić sposób, w jaki kom ponent korzysta z usług serwera, modyfikując, w trakcie w drażania kom ponentu, dokum ent zapisany w języku XML. N a przykład, m ożna w pełni określić kontrolę dostępu do m etod kom ponentu w dokum encie X M L (czyli w sposób deklaratywny), a nie w kodzie źr ódłowym tego kom ponentu (czyli w sposób programowy). M ożna także określić w jaki sposób metody kom ponentu będą wykonywane w ram ach transakcji i to bez konieczności określania na stałe zakresu i zachowania tych transakcji. I wszystko gra.
Serw ery E JB udostępniają kilka usług, dzięki czemu nie trzeba ich tworzyć samemu:
ir Zarządzanie transakcjami
itr Bezpieczeństwo
Żadnych rozwiązań zależnych od dostawcy!
He Współbieżność
Komponenty E JB są przenaszalne — nie tylko mogą być wykonywane przez różne wirtualne maszyny Javy (JV M ), lecz można ich używać także na różnych serwerach EJB.
jur Obsługa komunikacji sieciowej
Jednym z powodów, dla których wszyscy tak bar dzo kochamy Javę, są możliwości przenoszenia programów na różne platformy, czyli to wszystko, co określane jest jako „napisz raz — uruchamiaj wszędzie” (ang. wri,te-once-run-everywhere, w skrócie W ORA).
★
Jednak technologia EJB podnosi przenaszalność na zupełnie nowy poziom, który można by określić jako „napisz raz — wdrażaj wszędzie” (ang. wriłe-once-deploy-everywhere, w skrócie: W ODA). Ta pierwsza możliwość zapewniała, że pisane programy nie były zależne od żadnego konkretnego systemu operacyjnego; z kolei druga sprawia, że tworząc komponenty, nie jesteśmy na łasce żadnego dostawcy serwerów aplikacji. Oczywiście, jest też możliwość określana skrótowo jako W U D A ale to tylko dygresja.
Zarządzanie zasobami
ykr Trwałość
t*r Obsługa komunikatów
itc Dostosowywanie w czasie wdrażania
Kiedyś, każdy dostawca serwer ów aplikacji udostępniał i stosował własny interfejs programistyczny (API). Trzeba się go było nauczyć, stosować i w końcu można było stworzyć i uruchomić własną aplikację. Ale w pewnym momencie okazywało się, że zresztą sam zgadnij. Tak! Potrzebna jest nowa możliwość. I co się w takiej sytuacji okazywało? Otóż autorzy serwer a stwier dzali — „Tak, planujemy udostępnić tą możliwość w trzecim kw artale przyszłego roku”. I co ter az? Jak dealer narkotyków, tak autorzy serwera aplikacji złapali nas w swoje sidła, a rozpoczynanie wszystkiego od początku jest zbyt czasochłonne, kosztowne i bolesne. Cóż zrobić? Kolejny dostawca, kolejny firmowy interfejs programistyczny, kolejne uzależnienie... Jedną z podstawowych zalet technologii EJB jest możliwość Wykorzystywania komponentów na dowolnych serwerach aplikacji. A zatem, obecnie autorzy serwerów muszą konkurować nie tylko o to, a y sprzedać Ci swój produkt, lecz także by później utrzymać Cię jako swojego klienta. Każdy wie, że możesz spakować swoje komponenty i użvć mnego serwera.
f
Pzięki technologii EJB., zamiast liczyć się nowego API za każdym razem., gdy używam nowego serwera aplikacji), mogę nauczyć się tylko JEPNEGO., a moje komponenty i tak będą działać na wszystkich serwerach EJB. Twórcy serwerów będą musieli błagać 1 MNIE, żebym skorzystał z ich l produktów... y
O
Pytania dotyczące EJB
Wprowadzenie do EJB
Jak to wszystko działa?
n ie m lp it-y d i p y ta ń Na razie me mustsz s Q
S y s te m .o u t.. p rin tln C "Metoda ejbRemoveC) " ) ;
S
I S
”
d. = .go t , m.to*t
}
Interfejs O BIEKTU BAZOWEGO
interfejs obiektu bazowego:
Klient używa interfejsu obiektu bazowego w celu uzyskania referencji do interfejsu komponentu. Interfejs ten stanowi dla klienta punkt początkowy, od którego zaczynają
p u b lic vo id se tS essio n C o n te x tC Se ssio n C o n tex t c tx )
{
System, o u t.. p rin tln C "K o n te k st se sj i ..");
}
Nareszcie! Właściwa metoda biznesowa z naszego interfejsu
. ■■ . .'1 :■: , getPoradaC) •
S y s te m .o u t.p r in tln C "Jesteśm y w metodzie p o b ie ra ją c e j i n t losowa = C in t)
CMath. randomC) * p o rad y. le n g t h ) ;
p o ra d y .“ );
komponentu To ona je s t podstawową przyczyną istnienia ca tego komponentu
to właśnie
się wszystkie próby uzyskania referencji do kom ponentu (albo przynajmniej do uzyskania czegoś, co klient uważa za kom ponent; ale do tego dojdziemy później). Jak na razre, wyobraź sobie obiekt bazowy jako rodzaj fabryki, która tworzy i udostępnia klientom referencje do komponentów.
import j avax. ej b . *;
p u b lic vo id e jb C rea te C )
{
System, o u t. p rin tln C "W metodzie ej b C re a te ., " ) ;
. Metoda e jb C r e a t e C ) je st konieczna. To jedna z zasad technologii E JB , które poznasz w dalszej części książki. Jednak ta metoda nie pochodzi z interfejsu SessionBean.
Ten interfejs musi dziedziczyć po interfejsie ElBHome
import j a v a . r m i. RemoteExeption ■
K
public in t e r f a c e
fabryka referencji do komponentów
Instrukcje importu takie same jak fn. «m u «&•« w » ’ w poprzednim przykładzie.
package h e a d f ir s t ;
ją wywołuje klient.
DoradcaHome.java
—
I..U
¡ „ w J s i e ElBLocalH om e, który przedstawmy w _
iub interfejsie
dalszej części rozdziału
DoradcaHome extends ElBHome {
p u b lic Doradca c r e a t e O
throws C re a te E x c e p tio n , Rem oteException;
^
m ^ h rt-°ŚCi wHnikowej zwracanej przez metodę c r e a t e O
mus'
naszym interfejsem komponentu
?
U
Tum razem potrzebne będą DWA wyjątki - C r e a te E x c e p tio n oraz R em o teEx cep tio n
Wprowadzenie do EJB
Relacje pomiędzy komponentem i interfejsami
Zaraz-j z-araz.... a le jak to j e s t , ż e tworz.ymy klasę kom ponentu prz.ed napisaniem obu tych in t e r fe js ó w ? To racz.ej nie w ygląda n a jle p ie j.
( P ; W takim razie dlaczego klasa komponentu (D o rad ca Bea n ) nie implementuje interfejsu komponentu ( D o r a d c a ) , skoro trzeba w niej zaimplementować te same metody? W Javie klasy mogą implementować więcej niż jeden interfejs, a zatem czy byłby jakiś problem, by zdefiniować klasę w następujący sposób:
A to w cale n ie j e s t najgorsz.e! Klasa
D o ra d c a B e a n
im p lem entuje in t e r fe js u
nie
D o ra d ca ?
Chciałbym to p o ją ć... w kom ponencie M U SIM Y m ieć t e same m etody, co w in t e r f e js ie kom ponentu, a le kom ponent w cale n ie im p lem entuje te g o in t e r fe js u ?
c la s s
D o ra d ca B e a n
D o ra d c a , O
im p le m e n ts
S e s s io n B e a n
i? .* Z punktu widzenia poprawności składni,
o
klasa komponentu może implementować interfejs komponentu Niemniej jednak specyfikacja EJB nie zaleca takiego rozwiązania Pamiętaj, że choć klientowi wydaje się, iż wywołuje metody komponentu
DoradcaBean (obiektu, który w prawdziwym znaczeniu tego słowa implementuje interfejs komponentu), to w rzeczywistości wywołuje
t ;
-l m m m Cóż, to dwa dobie pytania. W świecie normalnych programów pisanych v Javie, programów, które nie m ają nic wspólnego z żadnymi kom ponentam i, takie ozwiązanie nie miałoby większego sensu. Jednak w świecie komponentów ibowiązują inne reguły i stosowane są inne rozwiązania. Moglibyśmy w pierwsze] colejności napisać interfejs; część programistów nawet tak postępuje. Czasami sposób postępowania, czyli to czy najpierw tworzymy klasę kom ponentu, czy tez jego nteifejs, zależy od używanego narzędzia programistycznego.. N iektóre narzędzia oczekują, że najpierw zostanie utworzony kom ponent (czyli faktyczna logika aiznesowa), a potem , na jego podstawie, samodzielnie generują odpowiedni interfejs, [nne narzędzia programistyczne działają n a odwrót, czyli oczekują stworzenia interfejsu, a następnie, n a jego podstawie, tworzą klasę kom ponentu z odpowiednimi metodami, w których wystarczy umieścić odpowiedni kod, Ucząc się zasad stosowania technologii EJB, będziemy najpierw pisać komponenty, koncentrując się na logice biznesowej, a dopiero potem zastanawiać się jak stworzyć interfejsy. W dalszej części książki będziemy postępować odwrotnie.
dokładniej to wyjaśnimy .
getEJBH om eC ), itd )
( P . Ale TEN problem można łatwo rozwiązać: wystarczy, by komponent dziedziczył po klasie implementującej wszystkie metody niezbędne do zaspokojenia wymagań kompilatora, których jednocześnie nie musisz implementować we własnym kodzie. Coś w stylu klasy odbiorcy zdarzeń stosowanej w bibliotece AWT. Dlaczego nie zastosować takiego rozwiązania w tym przypadku i nie umieścić implementacji metod w klasie bazowej naszego komponentu?
u: Jeśli jednak bean nie będzie implementować interfejsu, czyli, innymi słowy, jeśli klasa DoradcaBean nie będzie implementować interfejsu D oradca, to czy nie oznacza to, ie kompilator nie będzie w stanie wykryć sytuacji w której metody klasy i interfejsu nie będą sobie odpowiadać? (7 .
Dokładnie, właśnie tak się dzieje
I owszem, fakt ten sprawia, że większość programistów Javy myśląc o nim, odczuwa lekkie uczucie niepokoju. No bo w końcu, czy interfejsy w Javie nie zostały opracowane właśnie po to, aby kompilator
0.
Tak, mógłbyś tak postąpić i byłoby to
mógł zagwarantować, że wszystkie metody
całkowicie poprawne rozwiązanie. Jednak
interfejsu zostaną poprawnie
wciąż oznaczałoby to, że bean pozwalałby na
zaimplementowane?
metody obiektu określanego jako E J BObj e ct
wywoływanie metod, o których Istnieniu
Hej! Bez paniki! Faktycznie, tworząc kod
w ogóle nie powinien wiedzieć. Metody
komponentów, musimy być uważni, gdyż
serwer w momencie wdrażania komponentu.
obiektu E J BObj e c t
są przeznaczone dla
Klient nigdy nie prowadzi bezpośredniej
klienta i mają zapewnić mu możliwość
interakcji z komponentem Nigdy, przenigdy
wywoływania metod komponentu Jednak
W dalszej części książki przekonasz się, że komponentu, można ominąć zabezpieczenia kompilatora i „przemycić" w kodzie rozwiązania,
sam komponent NIE powinien ich implementować A zatem, rozwiązanie to nie jest najlepsze z obiektowego punktu widzenia.
kompilator nie jest w stanie zagwarantować, że zaimplementujemy w klasie komponentu wszystkie metody biznesowe zdefiniowane w interfejsie komponentu. Jednak w praktyce niemal zawsze będziesz się posługiwać środowiskiem programistycznym przystosowanym do tworzenia komponentów
które doprowadzą do wystąpienia błędów
Jest jeszcze inny powód, który sprawia,
EJB, i to właśnie ono zapewni zgodność metod
podczas działania aplikacji Dlatego też
że implementowanie interfejsu komponentu
klasy i interfejsu komponentu, umieszczając
w klasie komponentu nie jest dobrym
puste metody w klasie bądź też postępując
implementować interfejsu komponentu
rozwiązaniem Otóż, jeśli będzie to interfejs
odwrotnie, czyii odnajdując metody biznesowe
Poza tym, jest jeszcze jedno zagadnienie,
zdalny (a tak jest w przypadku interfejsu
o którym trzeba wspomnieć. Otóż interfejs
E J BObj e c t, gdyż dziedziczy on po
■ zachęcamy, aby w klasie komponentu nie
zdefiniowane w klasie komponentu i umieszczając je w interfejsie. Ostateczną linią obrony jest sam serwer, który sprawdzi
komponentu dziedziczy po innym interfejsie
interfejsie j a v a , rm i „ Remóte),
W naszym przykładzie interfejs Doradca
oznaczałoby to, iż klasa komponentu będzie
dziedziczy po interfejsie E J BObj e c t ,
klasą zdalną (dziedziczącą po interfejsie
interfejsu komponentu oraz jego klasy
Remóte), a do tego nie można dopuścić!
odpowiadają sobie
a E JB O b je c t posiada swoje własne metody. Otóż to — w tym interfejsie są zdefiniowane metody! A to oznacza, że dowolna klasa implementująca interfejs Doradca musi także zaimplementować wszystkie metody interfejsu
W przypadku komponentów, które nie im plem entują interfejsu kom ponentu, można by tworzyć klasę kom ponentu i interfejsy w kolejności odwrotnej do pokazanej w naszym przykładzie, jednak nalegamy, aby tego nie robić. N a następnej strome
(takich jak: g e t H a n d le ( ),
(albo „obiekt EJB"), który jest generowany przez
w przypadkach gdy bean implementuje interfejs
:
które nie byłyby mu do niczego potrzebne
E3BObj ect! A zatem, w naszym komponencie musielibyśmy zaimplementować kilka metod,
(jeszcze przed instalowaniem komponentu lub w momencie instalowania) czy metody
Bean jest chroniony przez serwer i jedynie
Jeśli jednak ten problem wciąż Cię dręczy,
serwer może mieć możliwość odwołania się
to powinieneś wiedzieć, że dysponujemy
do niego To właśnie serwer tworzy obiekt
pewną techniką, która pozwoli go
E J BObj e c t (implementujący interfejs
rozwiązać Przedstawimy ją w dalszej części
Doradca), który jest obiektem zdalnym
książki. Prawdopodobnie jednak nie
i przechwytuje wszystkie wywołania metod
będziesz musiał z niej korzystać.
biznesowych kierowane do komponentu.
Wysil szare komórki nad komponentami
Wprowadzenie do EJB
y s il s z a r e Konwencje nazewnicze stosowane przy tworzeniu komponentów NIE są elementem specyfikacji EJB. Doradca, DoradcaHome, DoradcaBean... Tworząc komponenty EJB, wcale nie musisz używać analogicznych nazw! (Niemniejjednak, stosowanie ich jest naprawdę bardzo, bardzo dobrym pomysłem,) Pamiętaj — nie pozwól, by nazwy klas i interfejsów „zrobiły Cię na szaro" — nic nie stoi na przeszkodzie, by klasa komponentu nosiła nazwę Dorad caHome, a interfejs komponentu — D oradcaBean Na egzaminie zawsze kieruj się deklaracją klasy lub interfejsu, a nie ich nazwami.
K o m ó rk i
1 . Klasa kom ponentu 2 Interfejsy 3. D eskryptor rozmieszczenia 4 . ejb-jar 5. W drożenie
Zobaczyłeś ¡uż, że bean nie implementuje interfejsu komponentu, choć musi mieć takie same metody Wymyśl sposób (ewentualnie kilka sposobów), dzięki któremu nasz komponent Doradca będzie mógł spełnić poniższe wymagania: 1. Interfejs komponentu interfejsie EU B O b ject.
(D orad ca)
musi dziedziczyć po
2. Komponent musi implementować interfejs S e s s io n B e a n . Jednocześnie nie może implementować interfejsu komponentu (D oradca). 3. Chcemy, aby kompilator mógł sprawdzić czy komponent (D orad caBean) posiada te same metody, co interfejs komponentu. (Podpowiedź: wyrażenie „te same metody, co interfejs komponentu" nie oznacza tego samego, co „te same metody, które zostały zadeklarowane w interfejsie komponentu".) (Podpowiedź: rozwiązanie tego problemu wymaga jedynie znajomości Javy, a nie technologii EJB.)
Q
Musisz nadać plikowi właśnie taką nazwę je s t ona konieczna! Plik deskryptora rozmieszczenia musi nosić nazwę ejb-jar.xml. ejb-jar xml
Stworzenie zapisanego w XML-u deskryptora rozmieszczenia, ¡nformujqcego serwer czym jest komponent oraz w jaki sposób należy nim zarzgdzać.
Deskryptor rozmieszczenia (ang. deployment descriptor) opisuje strukturę naszego komponentu, w tym także wzajemne zależności pomiędzy trzema plikami (interfejsem komponentu, interfejsem obiektu bazowego oraz Masą komponentu). Serwer nie będzie analizować tych plików i zastosowanych konwencji nazewniczych, aby określić, który z plików zawiera definicję interfejsu bazowego, a który kod Masy naszego komponentu. Sami musimy poinformować serwer, który plik co zawiera oraz jaMe są ich wzajemne powiązania i właśnie do tego służy deskryptor rozmieszczenia. Jednak deskryptor ten daje znacznie większe możliwości. A dla niektórych komponentów długość kodu tego deskryptora może przekraczać kilka stron! W przypadku naszego przyMadowego kom ponentu, deskryptor rozmieszczenia jest jednak raczej krótki. Pamiętaj, że nie musisz uczyć się na pam ięć składni X M L użytej w deskryptorze. W dalszej części książki (w Miku różnych rozdziałach) przedstawimy te informacje dotyczące deskryptora, które musisz znać.
cd
d :\p ro je k ty \d o ra d c a \src
> cd d : \ p r o je k ty \d o r a d c a
¡E
W celu kompilacji kodu należy przejść do katalogu src.
Klienty należy uruchamiać z poziomu katalogu l^j konkretnego projektu.
Kompilacja klasy komponentu I interfejsów
Wprowadzenie da EJB Aktualnie Twoja struktura katalogu projektów powinna wyglądać w następujący sposób:
Skompiluj klasą komponentu i oba interfejsy Napisaliśmy już dwa interfejsy i Masę komponentu, jednak musimy je skompilować. Następnie stworzymy plik ejb-jar (w którym umieścimy jedynie pliM klasowe).
Uruchom serwer Otwórz nowe okno wiersza poleceń, w którym uruchomimy serwer . Pozostanie ono otwarte, a ponieważ chcemy obserwować wyniki generowane przez kom ponent, nie używaj go do wykonywania żadnych innych operacji. Twoim katalogiem roboczym powinien być katalog doradca..
j > c d d:\projekty\doradca\src
> ja v a c
-d .
.\ c la s s e s
headfirst\*.java
11/
Zobaczysz wyniki podobne do poniższych Jak widać, podczas kompilacji używamy flagi -d, a zatem powyższe polecenie oznacza: „Skompiluj wszystkie pliki z rozszerzeniem Java znajdujące się w katalogu headfirst, a następnie umieść skompilowane pliki klasowe w katalogu classes, który znajdziesz w katalogu nadrzędnym względem bieżącego (czyli src). A prawie zapomniałem, nie zapomnij umieścić plików klasowych w katalogu odpowiadającym PAKIETOW I, do którego klasy te należą. Poszukaj struktury katalogów pakietu umieszczonej w katalogu classes, powinieneś tam znaleźć katalog o nazwie headfirst, to właśnie w NIM powinieneś umieścić pliki klasowe a jeśli tego katalogu N IE będzie, to, proszę, utwórz go. Z góry dziękuję”.
Flaga -verbose (która nie jest niezbędna, lecz bardzo ją lubimy) wyświetla w oknie wiersza poleceń trochę dodatkowych informacji.
> j2.ee -verbose 32EE server listen port; 1Q50 Nami nq service started:1050 Binding DataSource, name = jdbc/EstoreDB,
Pliki klasowe generowane podczas kompilacji będą umieszczane w tym katalogu — ciasses/headfirs t. DoradcaBean java
Doradcajava
DoradcaHome java
trzy
p lik i
iródi°^
(z rozszerzeniem .java) muszą znajdować się w katalogu /hcrt/ifirst
url =
j
Binding DataSource, name = jdbc/DBl, url = j j d b c :cloudscape:rmi:CloudscapeDB;create=tr ue Binding DataSource, name = gdbc/DB2, url = j jdbc:cloudscape:rmi:CloudscapeDB;crea te=true Binding DataSource, name = jdbc/Cloudscape, url = j d b c :cloudscape:rmi:CloudscapeDB;create=t rue Binding DataSource, name = jdbc/InventoryDB,, url = j d b c :cloudscape:rmi:CloudscapeDB;create= true Binding DataSource, name = jdbc/XACloudscape, jdbc/XACloudsc = jdbc/XACloudscape x a e, url ^ Binding DataSource, name = j jdbc/XACloudsc dbc/XACloudscape— xa, dataSource = COM.cloudscape.core.RemoteX, Data5ource&1202d69 Starting JMS s e r v i c e __ Initialization complete — waiting waiting for "for cli client requests Binding; < JHS Destination : ; jms/Queue jms/Queue , javax. jms.Queue > Binding: e JUS Destination : : jms/Topic jms/Topic , ! j a v a x .j m s .Topic > Binding: < JUS Cnx Factory :: QueueConnect QueueConnectionFactory , Queue , Mo properties > Binding: < JUS Cn x Factory ;: Topi cConnect T o picConnectionFactory , Topic , Mo properties > Binding: < JUS Cnx Factory :: jms/QueueCon jms/QueueConnectionFactory , Queue , Mo properties > Binding: < JHS Cnx Factory :■ jms/Topi cCon Jms/TopicConnectionFactory , Topic , Ho properties > starting web service at p o r t : 8000 J 2 EEt SDK/l d e p lo y to o l . S t a r t i n g D e p lo y m e n t t o o l , v e r s i o n 1 . 3 . 1 ( T y p e * d e p l o y t o o l - h e l p ' f o r com m and l i n e
n ie r o p r y c b p y ta ń
Stwórz nowę aplikację
o p tio n s - ;
I t!
±j
pamiętaj, że J2E E R I jest serwerem, a nie jedynie kontenerem E JB . piątego też, zanim umieścimy na nim plik ejb-jar i wdr ożymy aplikację, będziemy musieli wykonać trochę dodatkowej pracy. Ten krok będzie polegał na stworzeniu nowej aplikacji J2EE; na razie możesz wyobrazić sobie aplikację J2E E jako coś, co gromadzi wszystkie komponenty i uzupełnia je pewnymi informacjami przydatnymi dla serwera. Podstawowa różnica pomiędzy aplikacją J2EE a aplikacją EJB polega na tym, iż w aplikacji J2E E oprócz komponentów E JB można umieszczać także komponenty internetowe (ang. web components, takie jak serwlety oraz dokumenty JSP) Wybierz opcje: File/New/Application.
...na ekranie pojawi się coś takiego:
(J? Czy to oznacza, że MUSZĘ mieć serwer J2EE, aby korzystać z serwletów i dokumentów JSP? (7 .
Nie Jednak dzięki wykorzystaniu
serwera J2EE komponenty internetowe oraz komponenty EJB można lepiej zintegrować, co oznacza, że poszczególne komponenty będą nawzajem respektować swoje transakcje i mechanizmy zabezpieczeń. Niemniej jednak, serwlet zawsze może być klientem komponentu EJB, nawet jeśli bean nie działa na tym samym serwerze aplikacji (a nawet, jeśli działa on na
m u
serwerze uruchomionym na zupełnie innym komputerze). Kolejną zaletą
Po wykonaniu polecenia na ekranie pojawi się śliczna winietka, która pozostanie widoczna do m om entu zakończenia urucham iania programu, Jeśli klikniesz ją — winietka zniknie; a zatem nie wpadaj w panikę, jeśli będzie Ci się wydawać, ze mc się
A |iplii.dtion...
Add to Anplir .nimi ► A |i|ilir.ii lw i Clnm l... Ojiun...
r iilu ip iiu i: hllMM... IIHMllIli I* A ll,t|i[ rl...
nie dzieje. Trochę cierpliwości.
W l-ll Ciiliipillil-lll...
Add S h iw i ...
zastosowania serwera J2EE jest łatwość, z jaką można wykorzystywać komponenty obu typów w ramach jednej aplikacji korporacyjnej. Skoro już to wszystko napisaliśmy, z bardzo dużym prawdopodobieństwem można założyć, że jeśli będziesz tworzyć aplikacje EJB, spróbujesz je uruchamiać na serwerze J2EE. Pamiętaj, że obecnie na rynku dostępnych jest naprawdę niewiele niezależnych kontenerów EJB. Kontenery EJB niemal wszystkich dostawców liczących się na rynku działają jako elementy serwerów J2EE.
1 Własnymi ścieżkam i Serwery J2EE muszą przejść naprawdę bardzo dużo testów zgodności, zanim twórcy będą je mogli określić terminem „J2EE-complient", czyli „zgodny z J2EE" Na przykład, serwer J2 EE13 musi zawierać kontener EJB 2,0, a ten kontener musi z kolei implementować specyfikację EJB 2.0
Wprowadzenie do
deploytool:
Co zobaczysz po stworzeniu aplikacji
Określ nazwę i zapisz nowę aplikację
i określeniu jej nazwy
Ten krok jest nieco dziwny. Możesz użyć przycisku Browse, aby wskazać odpowiednie miejsce w drzewie katalogów, jednak najprostszym sposobem określenia nazwy aplikacji jest samodzielne wpisanie pełnej ścieżki dostępu do pliku, który chcesz utworzyć. To, co ter az tworzymy nie jest kom ponentem ; wyobraź to sobie raczej jako plik zawierający wszystkie informacje o tworzonej aplikacji. Zgodnie z przyjętą konwencją zapisujemy aplikację w katalogu projekty /[nazwajrrojektu] — czyli w katalogu konkretnego projektu. W przypadku naszego przykładowego kom ponentu Doradca, aplikację umieścimy w katalogu projekty/doradca„ Jeśli z poziomu tego katalogu uruchomisz serwer (innymi słowy, jeśli w momencie urucham iania serwera katalog ten będzie bieżącym katalogiem roboczym), to domyślnie uzyskasz poprawną
Teraz ponownie wyświetlone jest główne okno program u deploytool. Być może będziesz musiał kliknąć ikony Files or az Application, aby wyświetlić ich opcje podrzędne, niemniej jednak przekonasz się, że program utworzył katalog Applications i umieścił w nim coś o nazwie DoradcaApIk. Kiedy klikniesz ikonę DoradcaApIk, w oknie programu zostaną wyświetlone takie informacje dotyczące aplikacji jak: jej nazwa, położenie oiaz obecna zawartość. W tej chwili nasza aplikacja zawiera wyłącznie katalog M ETA-INF (zawierający kolejne informacje o aplikacji, którymi na szczęście nigdy nie będziemy musieli zaprzątać sobie głowy).
nazwę aplikacji i położenie plików.
Kliknij ikonę DoradcaApIk
Nadaj nowej aplikacji nazwę DoradcaApIk. Jeśli to konieczne, to podaj pełnq ścieżkę dostępu to pliku
E E K ^ > ■ iili> pin
projekty/doradca/DoradcaApIk. Kliknij przycisk OK.
? Ú ; f = 9"® 1
IÜII Tlii* I iill
luuK
Hi'lp
i.""is Hi‘i|>
Files §3 Applications O Doradcaftpj* Servers ¿1 localhcst
I liDvApphrjtiiins.lJiH -j (Ii 'lAplk iiiTH’Ml
.INDI Ndiiius
W dŁi LiMilPXt
S im urilv
Applh -jTliii 11lio Ndini-:
Applu tiMnri UiMilrivN'iini.1:
t onlidiK: Applii .muni ilpNfinif*:
ApplH..ilion i MNil