ActiveX kontra applety Java

Zalety i wady różnych metod tworzenia aktywnych stron WWW.

Zalety i wady różnych metod tworzenia aktywnych stron WWW.

Internet w swej formie Web stał się od pewnego czasu idealnym środowiskiem do publikowania i dostępu do informacji, zarówno wewnątrz firm, jak i na całym świecie. Na razie jednak większość stron w Internecie ma charakter statyczny, najlepsze dopiero przed nami: wielu programistów tworzy dynamiczne strony WWW z aktywną zawartością. Jednak mają oni dylemat: czy do tworzenia aktywnych elementów strony wybrać ActiveX Microsoftu, czy korzystać z miniaplikacji (appletów) tworzonych w języku Java? Jeden i drugi zapewnia możliwość tworzenia aktywnych stron WWW, oba mają swoje zalety i wady. Co wybrać?

Elementy aplikacji i Web

Budowanie dowolnej aplikacji z wielokrotnie używalnych elementów jest atrakcyjną ideą. Pomysł sprowadza się do "montażu" elementów składowych w pewnego rodzaju kontenerze; jako elementów składowych aplikacji używa się specjalnie napisanych elementów składowych lub co jest barziej korzystne, stosuje się elementy gotowe, dostępne bezpłatnie w sieci.

Cel to szybsze i tańsze opracowanie bardziej niezawodnej aplikacji. Pomysł jest zbliżony do istniejącej w świadomości informatyków idei programowania obiektowego, ale ma trochę więcej zalet niż czysta technologia obiektowa.

Najpopularniejszym rodzajem kontenera są aplikacje (i runtime) Visual Basicu (prawdopodobnie na świecie aż 400 tys. programistów korzysta z tego języka). Elementy aplikacji (biblioteki DLL) są ściągane z dysku lokalnego lub sieciowego w miarę potrzeby i dołączane do aplikacji. Oczywiście mogą istnieć inne rodzaje kontenerów i inne źródła elementów.

Równie dobrze rolę kontenera spełniać może przeglądarka Netscape Navigator lub Microsoft Internet Explorer; w tym przypadku najpopularniejszym źródłem elementów będzie zapewne sieć WWW.

Możliwość korzystania z aktywnych aplikacji oznacza, że oprócz standardowych elementów strony WWW, takich jak tekst i grafika, możemy także ściągać elementy wykonywalne - programy oraz dane potrzebne im do działania. Możemy sobie łatwo wyobrazić, że z sieci WWW - oprócz zawartości informacyjnej - Otrzymamy narzędzie pozwalające na manipulowanie tą informacją; narzędzie to będzie działać wewnątrz kontenera, jakim jest przeglądarka WWW.

Najprostsza metoda budowania dynamicznych stron WWW polega na włączeniu do nich skryptu w języku JavaScript lub Visual BasicScript. Jednak oba te narzędzia zapewniają stosunkowo ubogie możliwości manipulowania stroną; szybko okazuje się, że potrzebne jest narzędzie potężniejsze. Obecnie istnieją i konkurują ze sobą dwie technologie tworzenia dynamicznych stron WWW - miniaplikacje (applety) pisane w języku Java i elementy kontrolne ActiveX (dawniej zwane OCX).

Applety Java

Termin Java jest obecnie używany tak często, że czasem nie wiadomo, jakie jest jego znaczenie. Po pierwsze, jest to język programowania oparty na C/C++, ale znacznie prostszy i bezpieczniejszy dla środowiska, w którym działają jego aplikacje. Po drugie, jest to zestaw funkcji programistycznych API, zapewniających dostęp do elementów środowiska graficznego i usług systemowych.

Języka Java jest na tyle potężny, że można w nim pisać samodzielne aplikacje. Brak wskaźników i automatyczne zwalnianie zajmowanej dynamicznie pamięci sprawiają, że jest to narzędzie bezpieczniejsze i łatwiejsze w użyciu dla początkującego programisty. Największe zainteresowanie budzą możliwości opracowania appletów Java, wykonywanych przez tzw. maszynę wirtualną Java, wbudowaną w popularne przeglądarki Web.

Miniaplikacja lub applet Java jest to element programowy, działający wyłącznie w ramach konkretnego kontenera. Kontenerem typowym dla appletów jest przeglądarka Netscape Navigator. Applet ładowany jest do przeglądarki w postaci kodu częściowo przetłumaczonego na postać pośrednią, wspólną dla wszystkich platform sprzętowych i systemowych, tzw. kod bajtowy (byte code).

Przeglądarka zawiera interpreter kodu bajtowego Java (tzw. maszynę wirtualną Java), może więc wykonywać instrukcje zawarte w tym kodzie. Robi to stosunkowo wolno, gdyż każdy bajt w kodzie wywołuje odpowiedni podprogram w języku maszynowym.

Kontenery mogą korzystać z możliwości przyśpieszania wykonywania kodu bajtowego przez tzw. just-in-time (JIT) Java kompilator, który w trakcie pracy przetwarza kod bajtowy appletu na kod maszynowy. Jeśli więc część kodu appletu jest wykonywana wielokrotnie, to już w drugim "obrocie" pracuje z szybkością maszynową. Kompilatorów JIT Java wraz ze swymi narzędziami do opracowania aplikacji Web dostarczają np. Borland i Symantec.

Elementy kontrolne ActiveX

Podobnie jak applety Java, elementy kontrolne ActiveX (do niedawna pod nazwą OCX) są samodzielnymi elementami programowymi, które mogą być wykonywane w ramach kontenera. Typowymi kontenerami ActiveX jest większość programów biurowych Microsoft (Word, Excel, PowerPoint); nie mają one jednak możliwości ładowania elementów ActiveX z sieci. Taką możliwość ma przeglądarka Microsoft Internet Explorer.

W przeciwieństwie do appletów Java, elementy ActiveX są ładowane w postaci skompilowanego kodu wykonywalnego na platformie Intel, w 32-bitowym środowisku Windows NT i Windows 95.

Elementy ActiveX - w swej pierwotnej formie OCX - istnieją na rynku już dawno, od chwili pojawienia się Windows NT.

Handlowo dostępne są setki elementów OCX, niekoniecznie związanych z opracowaniem i rozpowszechnianiem stron WWW. Microsoft opracował zasady korzystania z elementów ActiveX, zapewniające ochronę praw ich producentów: nie da się użyć elementu ActiveX, dostarczonego w ramach aplikacji do opracowania własnych aplikacji, konieczne jest zakupienie licencji na wersję developerską tego elementu.

Kontenery

Elementy aplikacyjne nie mogą istnieć samodzielnie - do ich wykonania potrzebny jest dany rodzaj kontenera. W przypadku aplikacji dla Internetu/intranetu najpopularniejszymi platformami są Netscape Navigator i Microsoft Internet Explorer.

Jako narzędzie wieloplatformowe, Netscape Navigator nie ma wbudowanej możliwości ładowania i wykonywania elementów ActiveX. Jednakże dla platformy Intel/Windows firma NCompass opracowała rozszerzenie tej przeglądarki, zapewniające jej możliwość wykonywania elementów ActiveX.

Microsoft Internet Explorer 3.0 dla Windows 95 ma wbudowane możliwości wykonywania obu rodzajów elementów. Microsoft zapowiada dostarczenie swej przeglądarki w środowisku unixowym, rozszerzonym o możliwość wykonywania elementów ActiveX, lecz nie nastąpi to szybko, gdyż wymaga implementacji wszystkich funkcji z zestawu API Win32 w tym środowisku.

Niezależność od platformy

Zasadniczą zaletą appletów Java jest ich niezależność od platformy - mogą one działać na każdej platformie, na której dostępna jest przeglądarka Netscape Navigator (a obecnie, oprócz Windows, jest ona dostępna na każdej wersji maszyn unixowych oraz na niektórych typach terminali znakowych w środowisku mainframe'a).

Niezależność do platformy wynika z interpretacji kodu bajtowego appletów Java. Oznacza to, że wykonywane są one znacznie wolniej niż gdyby działały w formie skompilowanej. Sytuację tę na ich korzyść zmieniają pojawiające się coraz powszechniej kompilatory JIT.

Z punktu widzenia programisty, najważniejszą zaletą appletów Java z kodem interpretowanym jest fakt, że raz opracowany kod działa na wszystkich platformach sprzętowych i systemowych, a także na zapowiadanych w najbliższej przyszłości komputerach sieciowych NC.

Bezpieczeństwo

Applety Java i elementy ActiveX wykonywane za pomocą przeglądarki WWW są ładowane do niej z sieci. Jeśli ładujemy je z lokalnego serwera sieciowego, to mamy przekonanie, że ich wykonanie nie zagrozi naszemu systemowi, plikom ani danym. Dba o to bowiem administrator sieci, testujący ją regularnie na obecność wirusów oraz nie dopuszczający do wykonywania nie sprawdzonych aplikacji.

Jeżeli jednak elementy te ładujemy na nasz komputer z sieci WWW, to nie jesteśmy pewni, czy nie wprowadzimy do naszego komputera nowego rodzaju wirusa, nie zniszczymy danych lub systemu. Jak temu zapobiegać?

Najprostsza metoda polega na korzystaniu jedynie ze sprawdzonych, wiarygodnych źródeł - na ogół serwerów naszej lokalnej sieci. Ogranicza nas to jednak do wewnętrznego intranetu. Druga metoda polega na wykonywaniu załadowanych elementów w dobrze strzeżonym środowisku (termin sandboxing wziął się z praktyki strażaków), nie dopuszczającym ich do wykonywania jakichkolwiek czynności, mających wpływ na system, w którym działają. Ograniczenie to znacznie zmniejsza możliwości funkcjonalne elementu - nie może on np. zapisać niczego do pliku w systemie. Ostatnia metoda polega na stworzeniu wiarygodnych źródeł elementów w Internecie i wymaga podpisywania każdego elementu za pomocą nie dającej się podrobić "sygnatury" elektronicznej, wykluczającej zmianę kodu elementu w trakcie przesyłania lub na samym serwerze. Podpis stanowi gwarancję, że element jest produktem wiarygodnego dostawcy.

Applety Java doskonale nadają się do wykonywania w środowisku strzeżonym -przed wykonaniem można zbadać, czy nie spowodują szkody w środowisku, i dopiero wtedy dopuścić je do wykonania. Nie ma takich możliwości w przypadku elementów ActiveX, dlatego Microsoft kładzie nacisk na promocję standaryzacji technologii sygnatury elektronicznej. Wiąże się to jednak z koniecznością rozpowszechnienia jej w systemie operacyjnym. Podobne pracy prowadzą także inne firmy, gdyż zapewne częściej będziemy stykać się z możliwością załadowania do naszego komputera NC lub PC całych programów i wolelibyśmy mieć je zweryfikowane przed wykonaniem.

Dokonujemy wyboru

Elementy ActiveX i applety Java na pewno będą koegzystować w Internecie i wewnętrznym intranecie w przyszłości, którą można przewidzieć. Z punktu widzenia użytkownika Windows nie ma to znaczenia, gdyż przeglądarki dostępne w tym środowisku wykonują obydwa typy elementów.

Ważne jest to jednak dla twórców oprogramowania. Jeżeli zależy nam na wykonywaniu naszej aplikacji lub jej elementów w środowisku niejednorodnym w Internecie - trzeba korzystać z appletów Java. Jeżeli jednak aplikacja ma działać w wewnętrznej sieci firmy, to decydujące znaczenie ma wyposażenie użytkowników w komputery.

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

TOP 200