
Pozostało mi 5 zaproszeń do Google Wave, więc jeśli ktoś chciałby takie zaproszenie to proszę w komentarzu podać swój adres e-mail. Liczy się kolejność zgłoszeń.
Czyli moje opowiadanie Javie, GWT oraz innych web technologiach...



Celem pracy jest interaktywna prezentacja zbiorów fotograficznych na potrzeby Regionalnego Zarządu Gospodarki Wodnej (RZGW) w Krakowie. W celu prezentacji wykorzystywane są najnowsze technologie tworzenia współczesnych web aplikacji.
Technologie te powinny przyciągnąć oraz zainteresować potencjalnego użytkownika.Zakres prac obejmuje stworzenie serwisu opartego na Google Maps i udostępniającego informację o fotograficznych zbiorach będących w posiadaniu RZGW. Prace obejmują również skatalogowanie istniejącego zbioru oraz budowa bazy danych służącej do przechowywania tegoż zbioru.
Wymagania - web aplikacja uruchamiana w dowolnej przeglądarce internetowej, która do poprawnego działania nie potrzebuje dodatkowych pluginów. Oprogramowanie, które użyte jest do zbudowania, jak również oprogramowanie potrzebne do działania web aplikacji jest darmowe. W przyszłość przewiduje się rozwój serwisu, co należy uwzględnić w fazie projektowania oraz implementacji serwisu.
Jak już wspominano jednym z wymagań stawianych jest budowa web serwisu z wykorzystaniem jedynie darmowych środowisk developerskich. W praktyce oznacza to korzystanie z oprogramowania typu open source, czyli oprogramowania o otwartym kodzie źródłowym.
Platformą, na której web aplikacja jest rozwijania jest Java. Platforma ta rozwijania jest przez szereg firm, jak również przez bardzo liczną społeczność skupiona wokół ruchu open source. Dość powiedzieć, że swój wkład w rozwój Javy mają takie firmy jak: Sun, IBM, Googl’e czy Oracle.
Środowiskiem, w którym tworzona jest aplikacja jest Netbeans – jest to zintegrowane środowisko programistyczne (IDE). Które notabene rozwijane jest jako projekt open source. Serwerem na, którym działać będzie web aplikacja jest Apache Tomcat . Tomcat jest kontenerem aplikacji web`owych, który umożliwia uruchamianie aplikacji w technologiach takich jak Java Server Pages i servlets. Oczywiście Tomcat jest otwarty.
Baza danych, która przechowywać będzie fotografie, jak również wszelkie niezbędne informacje o katalogowanym zbiorze jest MySQL. MySQL jest w tej chwili najpopularniejszą otwartą bazą danych na świecie. Dzięki przejęciu w ostatnim czasie przez Sun producenta MySQL współpraca Javy z MySQL’em, mimo że już teraz jest dobra w przyszłości może być tylko lepsza.<.p>
Debugowanie wdrożeniowej aplikacji przeprowadzone jest przy pomocy Firefox’a – najpopularniejszej open sourco’ wej internetowej przeglądarki. Dodatki do Firefox’a takie jak Web developer czy Firebug, czynią proces odnajdowania błędów znacznie łatwiejszym, co jest niezmiernie ważnym czynnikiem w pracy developera.
W aplikacji wykorzystywane jest Google Map API, interfejs ten umożliwia dodawanie mapy do własnej strony internetowej. Umożliwi to potencjalnemu użytkownikowi aplikacji lokalizację na mapie fotografii, wraz z informacją o przeglądanym zbiorze.

JavaScript Native Interface to jeden z ważniejszych elementów wchodzących w skład GWT. JSNI pozwala na wykonanie kodu JavaScript z poziomu języka Java. W tym miejscu musimy przypomnieć, że wynikiem kompilacji w przypadku GWT jest zawsze JavaScript. Jest to więc bardzo potężne narzędzie, co więcej pozwala ona również na wywołanie metod Javy z poziomu kodu JavaScript. Mamy również możliwość wykorzystania obiektów Javy przez metody JavaScriptu. Wykorzystanie JSNI to daję nam ogromne możliwości, ale musimy pamiętać o kilku problemach z tym związanych. Ponieważ, kod wykorzystywany przy pisaniu jest niskopoziomowy, mogą pojawić się problemy związane z niekompatybilnością przeglądarek. Również, kod wykorzystywany przez JSNI jest trudnej optymalizowany przez kompilator GWT. Wykorzystanie JSNI można porównać do wykorzystywanie kodu assemblera w zwykłym programie.
Metody JSNI deklarowane są jako native, deklaracja ta informuje kompilator, że ma do czynienia z metoda macierzystą. Oprócz deklaracji metody jako native, wymagany jest specjalny blok komentarza obejmujący cały kod napisany w JavaScripcie. Zaczynający się on od – „/*-{” , natomiast kończy się na „}-*/”.
Poniżej przedstawiony jest przykładowe użycie metody JSNI, do wywołania JavaScript’owej metody alert z poziomu języka Java. Musimy zapamiętać, że kiedy w metodzie JSNI żądamy dostępu do obiektu okna lub obiektu dokumentu, dostęp ten musimy poprzedzić odpowiednio $wnd i $doc.
public static native void alert(String msg) /*-{
$wnd.alert(msg);
}-*/;[instance-expr.]@nazwa-klasy::nazwa-metody(parametry-sygnatury)(argumenty)[instance-expr.]@nazwa-klasy::nazwa-pola