Applet czy aplikacja?

Nikt nie może zaprzeczyć, że język programowania Java zdobywa (na razie raczej nieuzasadnioną) opinię panaceum na wszystkie bolączki współczesnego oprogramowania.

Nikt nie może zaprzeczyć, że język programowania Java zdobywa (na razie raczej nieuzasadnioną) opinię panaceum na wszystkie bolączki współczesnego oprogramowania.

W opinii niektórych entuzjastów w niedalekiej przyszłości Java zastąpi inne języki i narzędzia do programowania aplikacji w Internecie i intranecie.

Zainteresowanie tym językiem widać na wielu stronach Web, zachwycających (a czasem denerwujących) wyrafinowaną grafiką, animacjami i innymi efektami wizualnymi. Wszystkie powstają za pomocą appletów Javy. Nasuwa się pytanie, czy applety Javy to jedyny sposób wykorzystania tego języka programowania? Oczywista odpowiedź brzmi NIE. Istnieją dwa sposoby wykorzystywania skompilowanych modułów języka Java: jako applety i jako samodzielne aplikacje.

Applety Javy

Nazwa applet Javy (applet czyli mała aplikacja lub miniaplikacja) miała sugerować jego możliwości. Początkowo miały służyć do dostarczania ograniczonych możliwości funkcjonalnych stronom Web - funkcję tę nadal dobrze spełniają. Jednakże rozwój języka i umiejętności jego wykorzystania przez programistów doprowadził do udanych prób dostarczania rozwiązań stron Web, opartych na gotowych komponentach, opracowanych na miejscu i wielokrotnie używanych lub kupowanych na rynku oferującym coraz więcej różnorodnych produktów typu applet.

Applet wykorzystuje właściwości wbudowane w popularne przeglądarki Web. Dzięki temu programista może zawrzeć w kodzie o małej objętości wiele funkcji. Najczęściej znajdują zastosowanie w prezentacji grafiki, rysunków i zdjęć. Aby włączyć plik GIF lub JPG do appletu, nie potrzeba pisać żadnego kodu odtwarzającego plik na ekranie: jest on wbudowany w przeglądarkę.

Popularność pewnych formatów plików powoduje, że dość szybko pojawiają się rozszerzenia właściwości przeglądarek interpretujących nowy format. W efekcie programista nie musi pisać kodu do interpretacji nowych formatów.

Applet nie żyje samodzielnie: istnieje tylko w ramach stron HTML interpretowanych przez maszynę wirtualną Java, wbudowaną we wszystkie istniejące przeglądarki Web. Użytkownik ma niewielki wpływ na wykorzystanie appleta, gdy już pojawił się w jego przeglądarce.

Istnieje wiele lokalizacji Web zachęcających do ładowania ich appletów Java i wykorzystujących komputer do prowadzenia własnych obliczeń. Aby się o tym przekonać, wystarczy przeszukać Web podając np. jako hasło "supercomputer". Nie jest to sytuacja, która zachwyci wielu użytkowników WWW; nim więc załadujemy nowy, pozornie interesujący applet, dobrze jest wiedzieć, czy nie oddajemy naszej maszyny w cudze ręce. Oczywiście, zawsze wystarczy wyłączyć przeglądarkę, aby pozbyć się intruza, ale niewielu tak postępuje. Aby zaś przekonać się, czy na naszym komputerze nie działa obcy applet, należy uwidocznić na ekranie konsolę Javy.

Maszyny wirtualne w przeglądarkach mają wbudowane ograniczenia dopuszczające jedynie pewne operacje wykonywane przez applety. Zarządza tym menedżer bezpieczeństwa przeglądarki, zapewniający bezpieczeństwo komputera przed ich działaniami. Nakłada on na applety cztery główne ograniczenia:

* Applet nie ma dostępu do lokalnego ani zdalnego systemu plików komputera, na którym działa.

* Applet (a właściwie jego klasa obiektów) nie może wywoływać żadnych lokalnych funkcji systemowych ani wykonywać lokalnych poleceń. Nie dotyczy to jednak klas obiektów ładowanych z lokalnego dysku komputera.

* Applet nie może być serwerem połączenia do innego komputera - może jedynie być połączony z serwerem, z którego został załadowany.

* Applet może komunikować się tylko z appletami znajdującymi się na tej samej stronie HTML. W nowych wersjach przeglądarek Microsoft i Netscape zaostrzono to ograniczenie: applet może komunikować się tylko z innym appletem z tego samego katalogu serwera Web i mającym ten sam poziom wsparcia w języku JavaScript.

Uruchomienie appleta w przeglądarce to wywołanie odpowiedniej metody z jego biblioteki klas oraz umożliwienie mu użycia właściwości i funkcji lokalnego systemu Windows. Większość właściwości graficznych appleta pochodzi bowiem z lokalnego systemu, co pozwala na uzyskiwanie dobrych właściwości w zakresie odtwarzania grafiki, dźwięku, pokazywania animacji itd.

Co się dzieje z uruchomionym appletem, gdy przejdziemy na inną stronę HTML? Zostaje zatrzymany; ale nie znika z naszego komputera na dobre. Większość przeglądarek przechowuje w lokalnym cache kilka ostatnich stron. Jeżeli więc powrócimy do strony, to applet nie musi być powtórnie ładowany i z chwilą pojawienia się na stronie, jest uruchamiany automatycznie.

Aplikacja Javy

Aplikacja Javy to taka sama aplikacja jak dowolna w komputerze, z jednym wyjątkiem: została napisana w języku Java. Może być więc uruchomiona z linii poleceń lub z menu systemu przez podwójne kliknięcie na jej ikonę itd. Istnieją dwa rodzaje takich aplikacji: z maszyną wirtualną Java lub bez niej. W pierwszym przypadku aplikacja wymaga środowiska runütime (podobnie jak jest potrzebne środowisko uruchomieniowe do wielu aplikacji napisanych w Visual Basic) w postaci maszyny wirtualnej Java. Na komputerze musi więc istnieć taka maszyna. Jest ona na ogół uruchamiana automatycznie przez aplikację. Użytkownik nie musi wiedzieć, że aplikacja działa w ramach swego środowiska uruchomieniowego - lokalnej maszyny wirtualnej Java. Istnieją także aplikacje napisane w Javie, nie wymagające maszyny wirtualnej, gdyż zostały one skompilowane do kodu maszynowego lokalnego komputera, podobnie jak aplikacje w C++.

Do aplikacji w Javie nie mają zastosowania żadne ze wspomnianych wyżej ograniczeń. Aplikacja może korzystać z lokalnego systemu plików, wywoływać inne programy lub moduły programowe i biblioteki DLL, napisane w dowolnym innym języku itp.

Funkcjonalność aplikacji w Javie może być więc znacznie większa niż appleta Javy. Ma to wady: aplikacja w Javie nie ma automatycznego dostępu do właściwości lokalnego systemu graficznego; musi go zapewnić programista, dołączając odpowiednie wywołania lokalnych API, np. Windows.

Applet czy aplikacja Javy?

Podstawowa różnica między appletem a aplikacją w Javie polega na ich przenośności: applet można uruchomić na dowolnym komputerze mającym zainstalowaną przeglądarkę lub maszynę wirtualną Java. Aplikacja jest natomiast przypisana do konkretnego typu komputera. Nawet jeśli korzysta z lokalnej maszyny wirtualnej w Windows, to ma już wbudowane wywołania funkcji systemowych i graficznych Windows i nie będzie działać na systemie z XWindows (i odwrotnie).

Nowe możliwości oferowane przez rozszerzenia właściwości języka Java, proponowane przez Suna w ramach technologii Java Enterprise, takie jak zdalne wywołanie metod (Remote Method Invocation - RMI) lub dostęp do baz danych za pośrednictwem specyfikacji JDBC (Java DataBase Connectivity), na pewno zachęcą programistów do pisania kompletnych rozproszonych aplikacji w języku Java.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200