31 października 2007

Sun Certified Business Component Developer Java EE 5 (SCBCD) zdany!

Zdecydowałem się i udało mi się zdać kolejny certyfikat z serii certyfikatów z korporacyjnej javy 5 - Sun Certified Business Component Developer (SCBCD) for the Java Platform, Enterprise Edition 5 (CX-310-091). Najpierw był Sun Certified Java Programmer (SCJP) 5.0 w grudniu 2006 roku, a teraz przyszła pora na SCBCD5. I cieszyłbym się bardziej, gdyby ten wynik nie był tak fatalny! Wręcz prześlizgnąłem się i w zasadzie to miałem wątpliwości, aby w ogóle napisać o tym. Porażka - jedynie 63% przy poziomie 59% na zdanie egzaminu!


Podszedłem do niego na luzie mając w garści przepustkę (ang. voucher), który upoważniał mnie od podejścia powtórnego, w razie gdyby nie powiodło mi się przy pierwszym. Rozpocząłem o godzinie 10:15 na Zielnej w budynku PASTy - numer lokalizacji: PL41 (aby nie było reklamy). W metrze postanowiłem dokończyć czytanie rozdziału specyfikacji EJB 3.0 o transakcjach Support for Transactions. Wiedziałem, że właśnie transakcje, bezpieczeństwo i wyjątki to moja pięta achillesowa. Niespodziewałem się jednak, że tak słabo wypadnę przy JPA (sekcja Java Persistence API Entities) - 42% oraz przy ziarnach sesyjnych (sekcja EJB 3.0 Session Bean Component Contract & Lifecycle) - 42%. Nie ukrywam, że spodziewałem się lepszego wyniku. Wyszedłem wręcz załamany ;-)

Wyprzedzając pytania napiszę, że uczyłem się głównie ze specyfikacji EJB 3.0, próbowałem się z różnymi pytaniami na grupach i forach dyskusyjnych, przeglądałem dokumentację i przykłady do serwerów aplikacyjnych, głównie Glassfish, Geronimo, ale również ciekawą i pełną dokumentację znalazłem na stronach dokumentacji Apache OpenJPA oraz na stronach Getting Started with EJB 3.0. Podsumowaniem wiedzy była lektura książki Enterprise JavaBeans 3.0 autorstwa Billa Burke oraz Richarda Monsona-Haefela z OReilly (której recenzja czeka na opublikowanie) i przejrzałem pobieżnie EJB 3 in Action wydawnictwa Manning. Ciekawym miejscem wydaje się również forum EJB Certification (SCBCD) na JavaRanch, ale przynaję, że za mało tam zaglądałem.

Jakie były pytania niestety nie mogę napisać, ale należy przygotować się w dużej mierze myśląc o transakcjach oraz bezpieczeństwie każdorazowo, kiedy jakikolwiek temat EJB 3.0 jest poruszany. Są to zagadnienia zazwyczaj traktowane po macoszemu, a przecież to one są głównym powodem zastosowania EJB 3.0 w aplikacjach. Nie można zapominać o konfiguracji ziaren poprzez deskryptory - ejb-jar.xml, persistence.xml, czy orm.xml i wszystkie inne, do których się odwołują.

Jednymi z pytań, nad którym siedziałem i nadal nie jestem odpowiedzi dotyczyły momentu utworzenia kontekstu trwałego. Jeśli kontekst trwały zarządzany jest przez aplikację, to według mnie jego istnienie rozpoczyna się w momencie utworzenia, w przeciwieństwie do kontekstu zarządzanego przez kontener, gdzie jego istnienie rozpoczyna się od momentu rozpoczęcia transakcji. Czy tak jest na pewno będę musiał sprawdzić. Wiele z pytań było wyjątkowo podchwytliwych i niskopoziomowych, i prawdopodobnie nie przyjdzie mi z tej wyrafinowanej wiedzy intensywnie korzystać, ale kto wie, co mnie czeka w przyszłości - może przyda się szybciej niż mi się wydaje. Polecam podejście do egzaminu SCBCD5, bo porządkuje wiedzę z EJB3, a i wiele ciekawostek można dowiedzieć się właśnie podczas jego trwania ;-) Nie pamiętam, co to było, ale w pewnym momencie prawie krzyknąłem widząc kawałek kodu, w którym dosyć interesująco była wykorzystana funkcjonalność EJB3 (podobnie było podczas czytania książki Billa Burke'a Enterprise JavaBeans 3.0, gdzie zaprezentował ciekawe użycie metod przechwytujących - interceptorów do realizacji specjalizowanych adnotacji). Przypomniałem sobie właśnie, że było jeszcze jedno pytanie, które mnie wykończyło - mechanizm wstrzeliwania zależności i równość egzemplarzy wstrzelonych ziaren. Czy równość (wyznaczana metodą equals) zajdzie dla ziaren sesyjnych przekazanych za pomocą DI? Czy jest różnica między referencjami do ziarna stanowego i bezstanowego? To również będę musiał sprawdzić. W ogóle muszę przysiąść nad tymi transakcjami, wyjątkami i bezpieczeństwem. Reszta wierzę, że uzupełni się w międzyczasie.

Życzę wszystkim podchodzącym do SCBCD5 jak najlepszych not, na pewno lepszych niż takie mierne 63%. Szczęśliwie, że to nie ode mnie zależy jaki poziom jest zdający, bo ustawiłbym go zdecydowanie wyżej, powiedzmy na 75% ;-)