E nter.net  


Z archiwum ActiveX
Cezary G│owi±ski


O becnie ju┐ trudno sobie wyobraziµ system czy aplikacje, kt≤re nie maj▒ wbudowanych mechanizm≤w wsp≤│pracy. Jednym ze sposob≤w - przez wielu znawc≤w uznawany za bardzo udany - przeniesienia takich mechanizm≤w do sieci WWW jest ActiveX. Pod t▒ nazw▒ kryje siΩ technologia bazuj▒ca na dawnej architekturze OLE Automation.
Jej podstaw▒ jest standard COM (Component Object Model) okre╢laj▒cy spos≤b komunikacji pomiΩdzy r≤┐nymi modu│ami program≤w.
Schemat dzia│ania Active X
Jest to formalnie zdefiniowany zbi≤r podstawowych funkcji oraz zmiennych s│u┐▒cych do wymiany danych pomiΩdzy obiektami na poziomie aplikacji. Formalnie ActiveX jest trzeci▒ wersj▒ komponent≤w OLE rozszerzaj▒c▒ jej mo┐liwo╢ci g│≤wnie w stronΩ integracji ze ╢rodowiskiem sieci WWW i przegl▒darkami stron. ActiveX ma zastosowanie zar≤wno po stronie klienta, jak i serwera.
Komponenty ActiveX, og≤lnie m≤wi▒c, to integralne fragmenty kodu skompilowane na odpowiedni format, kt≤ry umo┐liwia ich wykonywanie np. przez przegl▒darkΩ internetow▒. Skompilowane pliki wynikowe maj▒ w≤wczas rozszerzenie *.OCX. Komponenty ActiveX korzystaj▒ z dobrodziejstwa technologii COM. DziΩki niej maj▒ mo┐liwo╢µ wsp≤│pracy z innymi komponentami i us│ugami systemowymi. Jednak przez to ich budowa nie jest dowolna, gdy┐ musi odpowiadaµ wspomnianej specyfikacji. Wykorzystanie technologii COM powoduje, ┐e komponenty ActiveX maj▒ szerokie zastosowanie zar≤wno w systemie, aplikacjach, jak i sieci. Zastosowania sieciowe u│atwia protok≤│ DCOM (Distributed Component Object Model). DziΩki niemu mo┐liwe jest zdalne wykonywanie procedur w ╢rodowisku rozproszonym, takim jak sieci komputerowe. ActiveX jest dobrze zintegrowane ze ╢rodowiskiem Internetu. W jΩzyku HTML wprowadzono znacznik <OBJECT> pozwalaj▒cy m.in. osadzaµ w kodzie odwo│ania do komponent≤w ActiveX. DziΩki temu istnieje mo┐liwo╢µ umieszczenia na stronach WWW r≤┐nych kontrolek realizuj▒cych interaktywne elementy reaguj▒ce na zdarzenia.

Jak korzystaµ z ActiveX?


Generalnie komponenty ActiveX s▒ automatycznie ╢ci▒gane i uruchamiane. Jest to zatem proces "przezroczysty" dla u┐ytkownika, kt≤ry nawet nie wie o ich istnieniu. Zajmuj▒ one okre╢lony obszar strony przejmuj▒c nad nim kontrolΩ. Od komponentu zale┐y, jak bΩdzie wy╢wietlana jego zawarto╢µ, jak bΩd▒ obs│ugiwane zdarzenia zachodz▒ce w jego obszarze, jak bΩdzie realizowany dostΩp do danych i inne zaprogramowane funkcje. Komponenty ActiveX mo┐na obecnie tworzyµ za pomoc▒ wielu popularnych kompilator≤w najwa┐niejszych jΩzyk≤w programowania. Komponenty ActiveX s▒ alternatyw▒ dla aplet≤w Javy. Daj▒ podobne mo┐liwo╢ci fun-kcjonalne, a w niekt≤rych przypadkach je prze-wy┐szaj▒. Podstawow▒ r≤┐nic▒ jest to, ┐e aplet jest to "program" wykonywany przez maszynΩ wirtualn▒ Javy, kt≤ra jest pomostem z systemem operacyjnym. ActiveX nie ma takiego ograniczenia i mo┐e praktycznie korzystaµ z tych samych funkcji, co programy wykonywalne.

W│asne komponenty


Aby pos│u┐yµ siΩ komponentem ActiveX mo┐na skorzystaµ z gotowego lub samemu napisaµ i skompilowaµ do kodu po╢redniego. Og≤lna zasada tworzenia komponent≤w ActiveX jest nastΩpuj▒ca: tworzymy interfejs naszego obiektu (oczywi╢cie je╢li jest potrzebny). NastΩpnie programujemy obs│ugΩ zdarze± i kompilujemy ca│o╢µ do kodu po╢redniego w formacie *.OCX. Gdy komponent jest gotowy mo┐emy wykorzystaµ go osadzaj▒c na naszej stronie internetowej. Format OCX ma tΩ zaletΩ ┐e mo┐e byµ interpretowany (wykonany) przez przegl▒darkΩ WWW. Poniewa┐ gotowe komponenty s▒ zapisywane w formie pliku, to mo┐na je r≤wnie┐ udostΩpniaµ innym u┐ytkownikom Internetu. W tej chwili w sieci mo┐na znale╝µ ju┐ du┐o gotowych komponent≤w (patrz ramka "ActiveX w sieci"). CzΩ╢ciowo s▒ one ju┐ instalowane z systemem Windows oraz z przegl▒dark▒ Internet Explorer. Umieszczenie komponentu ActiveX w pliku HTML odbywa siΩ za po╢rednictwem znacznika <OBJECT>, kt≤rego podstawowymi parametrami s▒ nazwa i numer pod jakim komponent zosta│ zapisany w rejestrze.

U┐ywanie ActiveX nie musi poci▒gaµ za sob▒ zawsze "╢ci▒gania" komponentu do przegl▒darki. CzΩ╢µ funkcji mo┐e zostaµ zrealizowana bezpo╢rednio na serwerze WWW (mowa o Internet Information Serverze 3.0). Koncepcja ta polega na wykonaniu skrypt≤w, obiekt≤w, komponent≤w umieszczonych w kodzie HTML okre╢lonej strony jeszcze przed wys│aniem jej do przegl▒darki. Wykonanie ma miejsce w│a╢nie na serwerze. Mechanizm ten nazwano Active Server Pages. Za jego po╢rednictwem mo┐na korzystaµ z ActiveX Scripts oraz ActiveX Server Components. Podej╢cie to w znacznym stopniu poprawia funkcjonalno╢µ wielu stron.

ActiveX w sieci



www.microsoft.com/activex/
www.activex.com/
www.gamelan.com/
www.active-x.com/
www.activex.portbank.com
www.techweb.com/activexpress

Przyk│adowy obiekt ActiveX


<HTML>
<BODY> 
<CENTER>Prosta kontrolna ActiveX</CENTER> 
<BR> 
<CENTER> 
<OBJECT ID="CommandPrzycisk" WIDTH=96 HEIGHT=32 
CLASSID="CLSID:D7053240-CE69-11CD-A777-00DD01143C57"> 
<PARAM NAME="Caption" VALUE="Przycisk"> 
<PARAM NAME="Size" VALUE="2540;846"> 
<PARAM NAME="FontCharSet" VALUE="0"> 
<PARAM NAME="FontPitchAndFamily" VALUE="2"> 
<PARAM NAME="ParagraphAlign" VALUE="3"> 
</OBJECT> 
</CENTER> 
</BODY> 
</HTML> 

Niebezpiecze±stwa ActiveX


Poniewa┐ Internet jest sieci▒ publiczn▒, wszystko co siΩ w niej pojawia mo┐e byµ spenetrowane przez dowolnego u┐ytkownika. St▒d te┐ du┐y nacisk po│o┐ony jest na bezpiecze±stwo. Komponenty ActiveX s▒ przecie┐ przesy│ane przez sieµ i uruchamiane na komputerze u┐ytkownika pod kontrol▒ przegl▒darki. Jednak teoretycznie jest mo┐liwe, by kto╢ do│▒czy│ lub podmieni│ taki komponent, ┐eby ten powodowa│ zniszczenia na komputerze u┐ytkownika. Co jest teoretycznie mo┐liwe, okaza│o siΩ praktycznie do zrealizowania. Pocz▒tkowa wersja ActiveX zawiera│a wiele dziur, kt≤re udawa│o siΩ wykorzystaµ w celach destrukcyjnych. Dopiero kolejne wersje wyeliminowa│y niedor≤bki. Aby zapewniµ bezpiecze±stwo komponenty ActiveX s▒ m.in. wyposa┐one w podpis identyfikuj▒cy autora. DziΩki temu przed wykonaniem kodu mo┐liwe jest sprawdzenie ╝r≤d│a jego pochodzenia.

Pakiety do tworzenia ActiveX


Microsoft - Visual Basic 5.0
Microsoft - Visual C++ 5.0
Microsoft - Visual J++
Borland - Delphi 3.0

(c) Copyright LUPUS