WIELKA UNIFIKACJA - JAVA NA WWW

Zaawansowani użytkownicy, zainteresowani zintegrowanymi z Siecią rozwiązaniami informatycznymi, potrzebują oprogramowania działającego na komputerze internauty. Ponieważ wybór platform sprzętowych i programowych jest ogromny, zaspokojenie tych oczekiwań nie było łatwe. Najprostszym rozwiązaniem tego problemu okazała się Java - ponadplatformowy język programowania o nieograniczonych możliwościach. To właśnie za pomocą Javy można bezboleśnie tworzyć multimedialne i w pełni interaktywne serwisy internetowe.

Zaawansowani użytkownicy, zainteresowani zintegrowanymi z Siecią rozwiązaniami informatycznymi, potrzebują oprogramowania działającego na komputerze internauty. Ponieważ wybór platform sprzętowych i programowych jest ogromny, zaspokojenie tych oczekiwań nie było łatwe. Najprostszym rozwiązaniem tego problemu okazała się Java - ponadplatformowy język programowania o nieograniczonych możliwościach. To właśnie za pomocą Javy można bezboleśnie tworzyć multimedialne i w pełni interaktywne serwisy internetowe.

TROCHĘ HISTORII

Java była projektowana jako język programowania "inteligentnych" urządzeń gospodarstwa domowego. Myślano wówczas o pełnym nowoczesnej techniki, zintegrowanym domu przyszłości, w którym wszystkie sprzęty elektroniczne tworzyłyby sieć, gdzie np. pralka komunikowałaby się ze zmywarką, a lodówka z systemem alarmowym. Zanim doszło do realizacji futurystycznych zamierzeń, nastąpił wielki internetowy boom. James Gosling (projektant Javy) doszedł do wniosku, iż jego język doskonale pasuje do nowej, sieciowej, informatycznej rzeczywistości.

Tym, co odróżnia Javę od dotychczasowych języków programowania, jest dokładne określenie standardu - nie tylko samej specyfikacji języka na poziomie kodu źródłowego, ale też (a może nawet przede wszystkim) postaci wykonywalnej. Programy napisane w Javie są całkowicie niezależne od konkretnego typu komputera, na którym będą uruchamiane (nie mówiąc już o użytym kompilatorze). Przenośność na poziomie kodu binarnego oznacza w praktyce np. możliwość uruchomienia tej samej gry sieciowej na wieloprocesorowej stacji obliczeniowej, działającej pod Solarisem i na domowym PC z systemem Windows.

Nie zapomniano także o bezpieczeństwie: aplety (rodzaj programów w Javie przeznaczony do zagnieżdżania na stronach WWW) w żaden sposób nie mogą odczytać, zmienić lub zniszczyć danych przechowywanych na komputerze odbiorcy. Pozwalają one bowiem na komunikację tylko z użytkownikiem i macierzystym serwerem, nie mogą natomiast zmieniać właściwości systemowych, porozumiewać się z lokalnym sprzętem ani wywoływać lokalnych programów. Taki niewielki program nie zdobędzie też naszego adresu e-mailowego lub numeru IP komputera.

Internetowa społeczność radośnie przywitała nowy język - w niedługim czasie, spontanicznie stał się on obowiązującym standardem. Powstało dużo stron, list dyskusyjnych i grup usenetowych poświęconych wyłącznie Javie. Wielu informatyków także zaczęło pisać programy w tym uniwersalnym języku. Obecnie Java jest również częścią programu nauczania w większości uczelni wyższych.

NIECO PRAKTYKI

Do uruchamiania kodu binarnego Javy potrzebne jest odpowiednie oprogramowanie - tzw. maszyna wirtualna Javy (JavaVM - Java Virtual Machine). Tworzy ona standardowy (zgodny ze specyfikacją JavaVM), wirtualny komputer z własnym zestawem instrukcji podstawowych. Obecnie maszyny wirtualne Javy dostępne są na praktycznie wszystkie (używane przy łączeniu z Internetem) platformy sprzętowo-systemowe.

Ciekawe rozwiązanie proponuje firma Sun (dokładnie jej "oddział" JavaSoft). Jej koncepcją jest tzw. komputer sieciowy, wyposażony w sprzętową realizację maszyny wirtualnej (JavaChip), działający pod kontrolą systemu operacyjnego napisanego w Javie (JavaOS) i korzystający z rozproszonego oprogramowania pobieranego bezpośrednio z Sieci.

Sun bezpłatnie udostępnia na swym serwerze wiele apletów przeznaczonych do zdalnego wywoływania z innych stron WWW - jest to wstęp do projektu rozproszonego oprogramowania.

Microsoft z początku zdecydowanie ignorował ideę komputera sieciowego (i Javy). Po pewnym czasie Bill Gates zmienił zdanie, twierdząc, że Java doskonale integruje się z Windows i ActiveX. Obecnie nowe wersje Windows i Internet Explorera mają wbudowaną maszynę wirtualną Javy.

NASZA RZECZYWISTOŚĆ

Projektując stronę WWW za pomocą "czystego" HTML-a, nie zawsze można uzyskać żądany efekt: właściwe sformatowanie strony, elementy ruchome (zmieniające się), nie wspominając o interakcji z użytkownikiem - wszystkie te problemy po prostu nie dały się bezboleśnie rozwiązać.

Java pozwala uzyskać w oknie przeglądarki (poprzez Sieć) praktycznie wszystko, co można stworzyć za pomocą zwykłego stacjonarnego oprogramowania. Całkowita niezależność od używanej platformy sprzętowo-programowej otwiera nowy etap w dziedzinie programowania sieciowego.

Spotykane obecnie na stronach WWW aplety, choć popularne, w większości przypadków nie wykorzystują wszystkich możliwości oferowanych przez Javę. W wielu internetowych witrynach stosowane są te same aplety - różnice w wyglądzie (np. treść napisów, kolor podkładu) uzyskiwane są poprzez przekazywanie do apletów odpowiednich parametrów sterujących.

Interakcja z użytkownikiem jest często pomijana lub istnieje w stopniu szczątkowym - to, co widzi użytkownik w oknie przeglądarki, z reguły w niewielkim stopniu reaguje na jego działania.

Najczęściej spotykamy proste animacje napisów - płynne przesuwanie się (pojedynczej linii lub bloku tekstu), skalowanie bądź przypadkowe przemieszczanie. Innym częstym rodzajem apletów są tzw. hoover bitmaps/buttons - obrazki lub przyciski, które zmieniają wygląd, gdy użytkownik skieruje na nie kursor.

CO JEST MOŻLIWE?

Najbardziej oczywistym zastosowaniem Javy na WWW wydaje się uatrakcyjnianie witryn w zakresie grafiki i dźwięku (a może i interfejsu?).

W tej dziedzinie aplety mają trzy zalety (w stosunku do "czystego" HTML-a) -możliwość dokładnego ustalenia położenia graficznych elementów składowych, swobodne przemieszczanie i modyfikacja wyglądu elementów składowych oraz dowolne reagowanie na działania użytkownika. Dzięki temu stworzenie "żywych" (ruchomych, zmieniających się) serwisów nie jest problemem. Płynne zmiany wyglądu ekranu (wysuwanie się kolejnych menu bądź grafik, chowanie innych), rozbudowana reakcja na zachowanie użytkownika (np. płynne skalowanie lub zmiana kolorów aktywnych elementów) - wszystko jest możliwe. Programista jest w stanie np. przygotować stronę, na której wszystkie elementy nieustannie przemieszczają się po ekranie, a gdy użytkownik chcę wybrać którąś z opcji, wszystkie wracają na właściwe miejsce.

I CO JESZCZE?

Javę można też wykorzystać przy wizualizacji danych, ich współzależności oraz struktur, w jakie zostały powiązane.

Aplety z powodzeniem mogą zastępować dotychczasowe plug-iny (dodatki internetowe) do wyświetlania plików zapisanych w różnych formatach. Możliwa jest dynamiczna aktualizacja i interpretacja danych, np. aplet może na bieżąco przedstawiać zmiany kursu walut, prognozę pogody czy tor i położenie satelitów na niebie.

Atrakcyjna jest też możliwość graficznej wizualizacji struktury informacji. Strukturę taką można przedstawić bardziej intuicyjnie niż dotychczas, np. jako drzewo katalogowe zawieszone w trójwymiarowej przestrzeni - wybrany przez użytkownika poziom katalogowy znajdowałby się najbliżej użytkownika, pozostałe poziomy w głębi, wszystkie mogą być połączone liniami symbolizującymi zachodzące między nimi zależności. Taki sposób wizualizacji nie pozwala zgubić się w gąszczu danych oraz ułatwia odnalezienie potrzebnych informacji.

Należy zaznaczyć, iż wszystkie wizualizacyjne wspaniałości nie muszą wymagać dużego nakładu pracy webmastera. Aplety mogą dynamicznie (na bieżąco) generować graficzne zobrazowanie danych i ich struktur np. na podstawie rzeczywistej struktury katalogowej systemu plików serwera. Webmaster nie musi pamiętać o aktualizowaniu strony - aplet wyświetli to, co potrzeba.

INNE ZASTOSOWANIA

Innym zastosowaniem Javy (już niekoniecznie jako aplety) jest oprogramowanie "klienckie", komunikujące się z serwerem, realizujące usługi różnego typu, zbliżone do irc, mud bądź gier sieciowych.

Ponieważ w Javę wbudowano mechanizmy sieciowe, tworzenie tego typu oprogramowania nie jest więc trudne. Bezproblemowa obsługa wielu platform, z jakich korzystają użytkownicy, zachęciła małe firmy i hobbistów do tworzenia różnych systemów klient-serwer. W taki sposób powstała nowa, graficzna generacja mudów.

W Javie można też pisać czysto stacjonarne oprogramowanie użytkowe: edytory tekstów, programy graficzne, arkusze kalkulacyjne, a nawet kompilatory (kanadyjska firma Corel wyprodukowała już pakiet biurowy, napisany całkowicie w Javie).

JAK TO SIĘ ROBI

Najłatwiejszym sposobem na posłużenie się Javą w stronach WWW jest wykorzystanie gotowych apletów. W Sieci jest wiele miejsc, skąd można je bezpłatnie pobrać (właściwie nie trzeba ich nawet ściągać, można bowiem bezpośrednio ze strony odwoływać się do apletów umieszczonych w Internecie). Obecnie wiele edytorów HTML (nawet najprostsze) wyposażono w zestaw gotowych apletów, a praktycznie wszystkie umożliwiają wstawianie ich w tworzone strony.

Określenie wyglądu i sposobu zachowania uzyskuje się poprzez przekazanie treści napisów do wyświetlenia, ich kolorów, szybkości przesuwania itp. jako parametrów dla apletu. To najprostszy sposób - korzystanie z gotowych rozwiązań ma jednak pewne wady: nie zawsze można znaleźć aplet, który będzie robił dokładnie to, co zamierzamy uzyskać.

Rozwiązaniem prostym "w obsłudze", a przynoszącym interesujące efekty, jest technologia protoscript. Stanowi ona "przedłużenie" idei gotowych apletów. Protoscript wykorzystuje specjalny skrypt opisującego wygląd apletu, jego zmiany w czasie i reakcje na działania użytkownika. Skrypt ten przekazywany jest jako parametr do specjalnego apletu - napisanego w Javie interpretera protoscriptu, który wyświetla na ekranie to, co skrypt opisuje. Istnieje też dedykowany edytor/generator protoscriptu, pozwalający na dokładne rozplanowanie oraz zaprojektowanie wyglądu i działania docelowego apletu.

Za pomocą protoscriptu (nawet bez użycia HTML-a) można przygotować skomplikowane, "żywe" i interaktywne serwisy WWW. Rozbudowana obsługa interakcyjności pozwala nawet na pisanie prostych gier! Zaletą protoscriptu jest to, iż interpreter (18 KB) ładuje się tylko raz, potem ładowany jest już tylko skrypt (zazwyczaj o niewielkich rozmiarach).

Oczywiście, największe możliwości daje bezpośrednie pisanie programów w Javie. W tym celu niezbędne jest jednak posiadanie dedykowanego kompilatora. Obecnie jest już w czym wybierać - od darmowego, "commandlinowego" SDK firmy Sun (kompilator dostępny z tzw. linii poleceń systemu), poprzez Microsoft Visual J++ (zintegrowane dla potrzeb programisty: edytor, kompilator, debbuger), po Symantec Cafe (całkowicie wizualne projektowanie interfejsu użytkownika).

POZOSTAŁE ALTERNATYWY

Funkcjonalność zbliżoną częściowo do możliwości Javy oferują też konkurencyjne systemy: Macromedia Shockwave i Microsoft ActiveX.

Niestety, do odtwarzania plików w formacie Shockwave niezbędny jest odpowiedni plug-in. Same pliki można tworzyć za pomocą programu Macromedia Director (jest to produkt raczej dedykowany do robienia interaktywnych prezentacji) oraz Macromedia Flash (nadaje się do robienia prostych filmów, ale obsługa interaktywności jest znacznie ograniczona). Ogólnie shockwave może być używany do prostych multimedialnych zastosowań.

Kontrolki ActiveX generuje wiele kompilatorów i dedykowanych edytorów. Korzystając z nich można zrobić teoretycznie wszystko to, co za pomocą Javy (nawet znacznie więcej). Przy pewnych zastosowaniach tworzenie kontrolek nie zawsze będzie tak proste i spójne, jak pisanie programów w Javie.

PODSUMOWANIE

Obecnie Java na WWW wykorzystywana jest nadal w niewielkim stopniu. Wkrótce powinien dokonać się rozwój technik prezentacji złożonych struktur danych - w tym zakresie język ten jest doskonałym rozwiązaniem.

Śmiało można stwierdzić, że w Javie leży przyszłość informatyki. Nie wiadomo tylko, na jaką skalę - na pewno wraz ze wzrostem wydajności komputerów, coraz więcej oprogramowania będzie powstawało w tym języku. Należy jednak pamiętać, iż w pewnym momencie jego bujny rozwój może nie spodobać się tandemowi Microsoft-Intel.

Linki dla zainteresowanych:

Gotowe aplety:

http://www.gamelan.com

http://javaboutique.internet.com/text.html

http://davecentral.com/javaaimg.html

http://hktrade.com/clients/kwan/java/

http://java.sun.com

Protoscipt:

http://www.darta.art.pl/psui


Zobacz również