Logiczna budowa pakietu instalacyjnego

Rozpatrując budowę pakietu-msi z logicznego punktu widzenia, mówimy o wewnętrznych zasobach i ustawieniach, które są wymagane do instalacji. Na poniższym rysunku została zaprezentowana logiczna budowa pakietu-msi i jego podział na poszczególne elementy takie jak: funkcje programu tzw. "ficzery" ("Features"), komponenty ("Components") oraz zasoby ("Resources"). 

 Logiczna budowa pakietu-msi

Rys. 5. Logiczna budowa pakietu-msi

Produkt

Pakiet instalacyjny może występować w postaci produktu instalującego pojedynczą aplikację, jak np. "Adobe Reader" lub grupę aplikacji jak np. "Microsoft Office". Każdy produkt składa się z jednego lub wielu "ficzerów" ("Features"), które mogą być ujęte w jedną całość (np. "Adobe Creative Suite" w skład którego wchodzi kilka aplikaci). Produkty są identyfikowane poprzez nazwę – "ProductName" oraz kod – "ProductCode", zapisane w tabeli "Property" pakietu-msi. Tak jak już wcześniej wspomniano, w skład produktu może wchodzić wiele "ficzerów", a co za tym idzie również komponentów i zasobów w postaci plików, wpisów rejestru itp. Jak widać na powyższym schemacie pojedyncze komponenty mogą mieć również wspólne "ficzery" i tym samym również wspólne zasoby ("Resources"). Podczas instalacji pakietu-msi sprawdzany jest stan poszczególnych "ficzerów" i w zależności od tego instalowana jest część lub całość produktu. W trakcie instalacji sprawdzane jest również czy dany komponent znajduje się już w systemie. Jeżeli tak jest, to do rejestru wpowadzana jest tylko informacja o jego przynależności do danego produktu. W przeciwnym wypadku taki wpis wraz z opisem komponentu tworzony jest od nowa. W trakcie deinstalacji produktu, informacje zawarte w opisie komponentu i dotyczące produktu są automatycznie usuwane. Także informacje dotyczące danego komponentu (pod warunkiem, że nie posiada współdzielonych zasobów z innymi produktem) są automaycznie usuwane z rejestru.

Funkcje programu (Features)

Nazywane też "ficzerami", są najmniejszymi z punktu widzenia użytkownika elemantami instalacji. Każdy z "ficzerów" składa się z określonej liczby komponenentów, które są do niego ściśle przypisane. Poszczególne komponenty mogą również należeć do kilku różnych "ficzerów".

"Ficzery" w Microsoft Office 2003

Rys. 6. "Ficzery" w Microsoft Office 2003

Po uruchomieniu instalacji użytkownik ma do wyboru przykładowe elementy programu, które mogą być zainstalowane w systemie. Każdy z tych elementów odpowiada jednemu "ficzerowi", a te z kolei grupie komponenów z nim powiązanych. Każdy z "ficzerów" może posiadać również "pod-ficzery" (co zostało pokazane na przykładzie pakietu Microsoft Office 2003). W przypadku zaznaczenia nadrzędnego"ficzera" wszystkie "pod-ficzery" należące do niego są również instalowane wraz z nim (chyba, że zostaną ręcznie wyłączone przez użytkownika). Należy tu dodać, że wszystkie operacje wykonywane przez serwis Windows Installera podczas instalacji pakietu są wykonywane na poziomie warstwy komponentów a nie jak ma to miejsce w przypadku standardowych instalatorów, na poziomie warstwy zasobów (pliki, wpisy rejestru, itd). 

Komponenty (Components)

Komponenty są najmniejszymi z punktu widzenia instalatora elementami, zawierającymi podstawowe informacje o instalacji. Są niewidoczne dla użytkownika. W skład przykładowego komponentu mogą wchodzić takie zasoby jak: pliki, wpisy rejestru, skróty, serwisy, źródła ODBC, itp tworzące pojedynczą logiczną strukturę, która może być w całości instalowana lub deinstalowana. Każdy z komponentów jest identyfikowany poprzez tzw. "ComponentId", który jest zapisany w postaci GUID. Oprócz "ComponentId" każdy z komponentów posiada tzw. element kluczowy (w większości przypadków plik) identyfikowany przez tzw. "KeyPath".  Elementami kluczowymi mogą być również  klucze rejestru lub źródła – ODBC. Ścieżka dostępu komponentu jest wskazywana przez ścieżkę dostepu do elementu kluczowego. W przypadku stwierdzenia przez serwis Windows Installera braku elementu kluczowego danego komponentu, uruchamiana jest procedura reperacyjna pakietu i brakujący zasób (np.plik) jest ponownie nadinstalowywany. Komponenty mające ten sam "ComponentId" oraz te same zasoby, nazywane są "modułami dołączanymi" ("Merge Modules") i mogą być użyte w wielu pakietach stanowiąć integralną część instalacji. W przeciwieństwie do standardowych instalacji opartych na skryptach serwis Windows Installera nie wykonuje operacji na zasobach lecz bezpośrednio na komponentach. Co to oznacza ? – to, że dwa przykładowe składniki komponentu w postaci pliku i wpisu rejestru są zawsze razem instalowane lub odinstalowywane. Komponent zostaje permannentnie usunięty z systemu, wtedy gdy nie jest używany przez żaden z produktów. Informacje dotyczące komponentów umieszczone są w tabeli "Components" bazy danych palietu-msi.  

Zasoby (Resources) 

Do zasobów zaliczyć możemy wszystkie obiekty, które są dodawane podczas procesu instalacji do systemu, są to m.in. pliki, wpisy rejestru, skróty, źródła-ODBC, serwisy, itp. Jednym z ważniejszych obiektów należących do zasobów są tzw. "punkty aktywacyjne" ("entry points"), wykorzystywane przy instalacjach typu "na żądanie" lub przy samonaprawie pakietu. "Punkty aktywacyjne" mogą być połączone z rozszerzeniami plików, skrótami lub CLSID obiektów COM. Instalacja typu "na żądanie" może być wywoływana przez użytkownika, który klikając przykładowo na skrót, uruchamia "entry point" dociągający resztę zasobów, które były przewidziane do tego typu instalacji. Każdy "entry point" jest zawsze połaczony z jednym "ficzerem", którego zasoby są dociągane po jego aktywacji. 

Be Sociable, Share!
  • avatar
    You may use these HTML tags: <a> <abbr> <acronym> <b> <blockquote> <cite> <code> <del> <em> <i> <q> <s> <strike> <strong>

  • Comment Feed for this Post
Go to Top