Uniwersalny instalator

Narzędzie InstallShield pozwala zbudować program instalacyjny, działający na wielu platformach.

Narzędzie InstallShield pozwala zbudować program instalacyjny, działający na wielu platformach.

Najnowszy produkt InstallShield Multi-Platform (ISMP) jest następcą pakietu Java Edition. Był on rozwijany we współpracy z firmami: IBM i Sun. Pozwala stworzyć instalatora aplikacji, który może być uruchamiany na wielu platformach bez wprowadzania zmian. I chociaż przeznaczony jest do instalowania rozwiązań stworzonych w Javie, nic nie stoi na przeszkodzie, by instalować za jego pomocą dowolne programy.

Dla wielu różnych systemów

ISMP ma ciekawą architekturę. Jest w całości napisany w Javie (także motor instalacyjny korzysta z tej technologii). Ponieważ proces instalacji zależy w dużym stopniu od platformy (chociażby dlatego że nie zawsze jest dostępna maszyna wirtualna Javy), ISMP wykorzystuje tzw. Platform Pack. Są to specjalne biblioteki realizujące określone zadania instala- cyjne na danej platformie. InstallShield przygotował wspólny interfejs, który przekazał producentom systemów operacyjnych, by utworzyli produkt odpowiadający danej specyfikacji. Firma samodzielnie opracowała wersję Platform Pack dla najpopularniejszych odmian Linuxa. Instalator napisany w Javie, tworzony przy użyciu ISMP, korzysta z usług Platform Pack, gdy jest instalowany na określonej platformie. Zestaw ten łączy elementy napisane w Javie i mechanizmy właściwe dla danej platformy.

Platform Pack jest specyfikacją określającą pewne minimalne wymagania wobec instalatora. Z tego powodu nie należy oczekiwać, że pakiety instalacyjne tworzone przy użyciu ISMP będą miały wyrafinowany interfejs. Nie ma on nawet prostego edytora do tworzenia własnych okien dialogowych!

Do usług wchodzących w skład Platform Pack należy np. kopiowanie plików, tworzenie ikony na pulpicie w danym środowisku graficznym. Zawiera on także ujednolicone API do zmiany środowiska konfiguracyjnego różnych systemów.

Pakiet jest dostępny w trzech wersjach. Najtańsza Express Edition pozwala na tworzenie programów instalacyjnych w Javie przy użyciu gotowych kompo-nentów. Professional pozwala wzbogacić instalację we własne rozwiązania. Aby rozszerzyć funkcjonalność ISMP, programista musi zaimplementować odpowiedni interfejs w JavaBeans. Można też dodawać własne kreatory do IDE ISMP. Wersja Enterprise pozwala na obsłu- gę OS/400 i umożliwia zdalną instalację aplikacji. Jest wyposażona w mechanizmy wspierające aplikacje zarządzające, m.in. dla IBM Tivoli.

Coś za coś - uniwersalność kosztem funkcjonalności

Schemat organizacji pakietu instalacyjnego przypomina rozwiązania stosowane w Windows Installer. Programista definiuje komponenty i zbiór składników, które następnie związuje z określonymi komponentami. Instalacja danego składnika może być uzależniona od wielu warunków (ISMP ma ujednolicony sposób określania wyrażeń logicznych, a większość właściwości jest wspólnych dla każdej platformy). Następnie określa się ciąg "akcji" podejmowanych podczas instalowania i deinstalowania produktu. Wśród nich można znaleźć zarówno wiele okien dialogowych, np. pobranie informacji o użytkowniku i haśle, jak i operacji analizujących różne zależności pomiędzy instalowanymi elementami.

Należy podkreślić, że InstallShield proponuje własny, ujednolicony standard odinstalowywania produktów, niezależny od platformy i narzędzia do rozwiązywania konfliktów. Jednak te pakiety nie najlepiej współpracują z mechanizmem rejestracji odwołań w Windows czy zależności w RPM-ach.

W gotowych JavaBeans realizujących standardowe "akcje" nie ma narzędzi np. do rejestrowania źródeł ODBC dostępu do danych czy modułów, które pozwalałyby określić parametry komputera, na którym jest instalowany produkt (można wykryć tylko informacje o platformie i systemie operacyjnym). Pakiet nie radzi sobie najlepiej z "cofaniem" przerwanej instalacji, natomiast dobrze odinstalowuje aplikacje, o ile wszystkie biblioteki były instalowane przy użyciu ISMP.

Pakiety instalacyjne utworzone z wykorzystaniem ISMP mogą działać w dwóch trybach: jako aplikacje w środowisku graficznym, a także jako programy pracują- ce z poziomu konsoli. Odpowiednie okna pakietu instalacyjnego mają tekstowe odpowiedniki.

Ciekawym pomysłem jest wykorzystanie XML do zapisu definicji projektu. Dokumentacja InstallShield zawiera wiele uwag pozwalających konstruować własne arkusze XSL, przekształcające instalację. W ten sposób bez trudu można stworzyć pakiet instalujący nowo tworzony komponent JavaBeans, a potem, przy użyciu kilkunastolinijkowego XSL, dostosować go do innego produktu. Jednak nie ma narzędzi, które ułatwiałyby tworzenie takiego przekształcenia.

InstallShield jest napisany w Javie, co sprawia, że na komputerze klasy PII 266 ze 128 MB RAM produkt nie działa zbyt sprawnie. Również gotowe instalacje pracują zauważalnie wolniej niż analogiczne rozwiązania wykorzystujące bezpośrednio mechanizmy systemu operacyjnego.

ISMP nie jest rozwiązaniem, które można polecać firmom produkującym oprogramowanie. Jest produktem kosztownym - wersja Professional to wydatek rzędu 2400 USD. To dużo, jak na narzędzie, do którego część elementów trzeba dopisać, włączając w to nawet proste okna dialogowe. Warto jednak zauważyć, że raczej rzadko tworzy się aplikacje, które mają być instalowane zarówno na mainframe, jak i komputerze osobistym.

ISMP może być jednak z powodzeniem stosowane jako narzędzie do instalowania rozwiązań własnych. Dzięki temu, że producent zapewnia (w obrębie programów instalacyjnych tworzonych przy użyciu ISMP) narzędzia do rozwiązywania konfliktów wielu wersji komponentów i zawiera jednolity mechanizm usuwania programów, rozwiązanie to może ułatwić pracę programistom i administratorom.


TOP 200