Sunteți pe pagina 1din 62

Optimizare a instalarii aplicaiilor in reele de calculatoare folosind utilitarul WPKG Capitolul 1.

Analiza instalrii de aplicaii n sisteme de operare Windows 1.1 Programe monolitice

La nceputul anilor 1980 arhitectura programelor era mult mai simpl dect cea actual. Se folosea structura monolitic, executabilul nu utiliza resurse externe i nu se inea cont de aplicaiile existente pe main in momentul instalrii. Calculatoarele au fost integrate ntr-un spectru din ce in ce mai larg de domenii, uurina utilizrii programelor reprezentnd un atu al adoptrii noii tehnologii. Folosirea intuitiv a programelor a devenit realizabil o dat cu apariia sistemului de operare Windows 3.1x. Noutatea introdus la acea dat era Interfaa Grafic cu Utilizatorul (Graphic User Interface), aceasta permitea accesul facil al persoanelor ce nu erau familiare cu mediul Dos la capabilitile calculatorului prin cteva caracteristici noi printre care se numr: folosirea mouse-ului, a opiunii Drag and drop, asocierea extensiilor de fiiere cu anumite aplicaii, astfel la dublul click pe un fiier este deschis aplicaia corespunztoare. Rspndirea programelor ridic, bineneles, att probleme legate de instalarea, buna funcionare i dezinstalarea acestora, ct i probleme legate de stabilitatea sistemului de operare.

1.2 Programe multi-componente


Comparativ cu aplicaiile de tip monolitic, o varianta mai avansata este aceea a programelor formate din mai multe componente. Aceste componente pot fi create de acelai productor, sau de productori diferii. Pentru un randament ridicat al dezvoltrii programelor se prefer folosirea modulelor deja existente in locul crerii acestora de la zero, astfel c se poate spune c eforturile programatorilor se ndreapt mai mult spre adaptarea unor module deja scrise dect spre crearea altora noi.

Un exemplu foarte bun n acest sens este sistemul de operare Windows. Acesta include seturi API (Interfete de programare pentru aplicaii) ce permit unui program s foloseasc faciliti furnizate de alte aplicaii. Funcionalitatea acestor API se bazeaz pe nucleul de fiiere DLL ce aparin Windows-ului. Rolul acestor DLL-uri este acela de a realiza funciile centrale ale sistemului de operare cum ar fi: deschiderea, dimensionarea, mutarea i nchiderea ferestrelor. Practic, orice operatiune realizat in Windows trece prin acest nucleu de DLL-uri. Pe lista programelor folosite de aplicaii tere, pe lng aceste API-uri, se numr multe alte software-uri furnizate att de Microsoft, ct i de alte firme de software. Dintre acestea enumerez: Microsoft Data Access Components (MDAC), Visual Basic Runtime, Microsoft Common Controls, Java Runtime, Adobe Acrobat i Macromedia Flash.

1.2.1 Conexiuni ntre programele multi-componente


Pentru corecta incrcare a biblotecilor este necesar ca dependinele aplicaiilor s fie instalate pe sistem. n cazul n care acestea lipsesc sau sunt instalate versiuni mai vechi dect cele cerute, aplicaia curent va genera erori n timpul rulrii. Figura urmtoare descrie legtura dintre aplicaiile ce trebuie instalate i dependinele acestora.

Pe lng aceste componente redistribuite exist i update-urile sistemului de operare, service-pack-uri, hotfix-uri ce updateaza fiierele DLL din nucleul Windowsului. Este foarte important ca versiunea acestor fiiere s fie cea corect, deoarece in momentul update-ului trebuie rescrise doar fiierele cu versiunea mai mica dect noua versiune.

1.2.2 Tipuri de legturi ntre componente


Instalarea programelor multi-componente nu ridic niciun fel de probleme ct timp librriile necesare pot fi folosite de aplicaie, dar, n majoritatea cazurilor, aceast condiie nu este respectat modulele necesare nu se afl pe main sau, dac se afl, versiunea acestora difer de versiunea cerut. Aflarea componentelor dependin este o sarcin dificil, deoarece executabilul poate apela o funcie furnizat de unul dintre dll-uri fie folosind o legtur static, fie o legtur dinamic. Legtura static (Static Linking) este folosit atunci cnd se dorete ca aplicaia s nu aib dependine. Compilatorul integreaz n executabil codurile tuturor funciilor care vor fi folosite, executabilul rezultat nglobnd toate resursele de care are nevoie pentru a rula. Dezavantajele acestui tip de legtur sunt spaiul mare de pe hard-disk ocupat de mai multe executabile care folosesc un set comun de funcii i upgrade-ul greoi al aplicaiilor, fiind necesar rescrierea codurilor surs. Legtura dinamic (Dynamic Linking) implic realizarea conexiunilor cu bibliotecile necesare n momentul rulrii sau ncrcrii, nu n timpul compilrii ca n cazul legturii statice. Executabilul conine doar minimul de informaii legate de biblotecile necesare. Acesta include o tabel cu adrese de import (Import Address Table- IAT) n care fiecare apel ctre o funcie dintr-un fiier dll este refereniat. Dac dou sau mai multe programe folosesc acelai dll, acesta va fi copiat o singur dat n memoria RAM i apoi adresa din memoria fizic va fi mapat ctre adresele din memoria virtual ale fiecrui proces. In acest mod se folosete mai eficent memoria, update-urile se realizeaza mult mai uor, fiind nevoie doar de nlocuirea unui fiier pentru toate aplicaiile care folosesc respectivul fiier dll.

1.3 Prezentare a modului obiect COM


Component Object Model (COM) este o interfa binar standard pentru componentele software. Este folosit pentru a permite comunicarea i crearea dinamic a obiectelor intr-o gama larga de limbaje de programare. Termenul COM este adesea utilizat ca un termen generic care cuprinde OLE, OLE Automation, ActiveX, COM+ i tehnologia DCOM. Prin tehnologia COM se implementeaz obiecte care pot fi folosite n diferite sisteme independente de limbajul n care au fost create. Esena COM este folosirea unui limbaj neutru. Programatorii COM i construiesc programele folosind componente COM. Diferitele tipuri de componete sunt identificabile prin class ID (CLSID). Funcionalitatea fiecarei componeta COM se realizeaz prin implentarea uneia sau mai multor interfee.Diferitele interfee suportate de catre o component se disting ntre ele prin identificatorul interface ID (IID). Toate componentele COM trebuie s implementeze interfaa standard IUnknown, astfel toate interfeele sunt derivate din interfaa IUnknown. Acest interfa este alactut din 3 metode: AddRef (),Release () i QueryInterface () care impleneteza numrul de referin, controlul de via al interfeei i metoda prin care se transmite IID prin care se obine referine catre diferite interfee pe care componenta le impleneteaz. O clas este un grup de obiecte asemanatoare sau este o reprezentare a unui tip de obiect. In Windows clasele COM, interfeele si tipurile de biblioteci sunt listate sub un indentificator unic (GUID) pentru n clase i registrii sub cheile HKEY_CLASSES_ROOT\CLSID HKEY_CLASSES_ROOT\

Interface pentru interfete. Bibilotecile COM folosesc registrii pentru a localiza corect bibloteca locala pentru fiecare obiect COM sau locatia din retea pentru un servicu la distan.

1.4 Folosirea resurselor comune de ctre mai multe aplicaii


Nucleul de biblioteci se afl n directorul Windows\System32, intenionnd s stocheze aici mare parte a fiierelor sistemului de operare. Pe de alt parte, aplicaiile i instaleaz fiierele share-uite tot n acest director pentru c sistemul de operare le caut n Windows i n System32. Ordinea de cutare este: 1. Directorul de unde se ncarc aplicaia. 2. Directorul Windows\System32. 3. Directorul Windows\System. 4. Directorul Windows. 5. Directorul curent. 6. Directoarele listate n variabila de sistem PATH.

1.4.1 Probleme care apar la instalarea aplicaiilor


Problema care apare, legat de fiierele share-uite, este c diferite aplicaii pot instala versiuni diferite ale aceluiai fiier. De exemplu dac un program necesit fiierul Comcat.dll (modul redistribuit produs de Microsoft ce este necesar pentru folosirea controalelor ActiveX) sistemul de operare l va gsi n directorul Windows\System32 i aplicaia va rula corect. ns acesta este cazul cel mai favorabil; mai exist dou variante cu probabiliti foarte mari de realizare. Prima este aceea ca fiierul s nu existe n niciun director n care este cutat de ctre sistemul de operare va fi generat un mesaj de eroare i aplicaia se va nchide. A doua variant este aceea n care sistemul de operare gsete fiierul Comcat.dll dar cu alt versiune dect cea cerut de program. Aplicaia poate funciona corect dac funciile necesare sunt coninute n fiierul respectiv, iar n caz contrar pot fi generate o serie de mesaje de eroare ce depind de coninutul dll-ului i de funcionalitile programului. Cum se poate ntmpla ca pe main s fie prezente versiuni incompatibile ale fiierului necesar aplicaiei, cu toate c n momentul instalrii versiunea corect era prezent ? Rspunsul este: alt program a fost instalat ntre timp i a suprascris fiierul existent, versiunea nou nefiind compatibil cu cerinele executabilui primei aplicaii instalate.

Instalarea unei versiuni mai vechi sau mai noi a unuia dintre aceste fiierele comune poate duce la nefuncionarea tuturor programelor ce folosesc o anumit versiune a fiierului respectiv.

1.4.2 Mecanisme pentru protecia programelor in folosirea resurselor comune de sistem la procesele de instalare-dezinstalare
Odat cu Windows Millenium, Microsoft lanseaz dou sisteme care au rolul de a ajuta la stabilizarea sistemului: Windows File Protection i Side-by-Side Component Sharing. Windows File Protection (WFP) previne modificarea, nlocuirea sau tergerea fiierelor critice ale Windows-ului. Toate fiierele cu extensiile: sys, dll, exe, ocx, precum i cteva fonturi: micross.ttf, tahoma.ttf, i tahomabd.ttf, ce sunt coninute de cd-ul de instalare sunt verificate periodic. Dac acestea nu corespund cu cele instalate odat cu sistemul de operare, sunt nlocuite cu fiierele originale copiate n directorul Dllcache. Astfel se asigur back-up-ul fiierelor sistemului i se evit rescrierea acestora de ctre alte aplicaii. Acest mecanism nu mpiedic realizarea update-urilor sistemului de operare. Fiierele vechi sunt nlocuite cu cele noi, att n directoarele crora aparin, ct i n directorul Dllcache. Update-urile sunt efectuate prin intermediul uneia dintre metodele urmatoare: Instalarea unui Service Pack Instalarea unui Hotfix Instalarea unui upgrade al sistemului de operare

Side-by-Side Component Sharing const n izolarea fiierelor dll comune necesare executabilului pentru a rula corect. Copii ale fiierelor izolate vor fi instalate n directorul programului mpreun cu un fiier ce va fi denumit NumeEXE.local, unde NumeEXE este numele executabilului ce folosete fiierele dll comune. Fiierul NumeEXE.local va ndruma sistemul de operare la lansarea programului s cute bibliotecile necesare executabilului n directorul aplicaiei.

1.5 Regitrii 1.5.1 Definiie. Rol


Regitrii sunt o baz de date ierarhizat pe care sistemul de operare Windows o folosete pentu setarea configurrilor. Aceleai informaii care acum sunt stocate n regitrii, era coninut de sistemele de operare Windows pe 16 bii n fiiere text. Organizarea acestora ngreuna accesul la informaie, n contextul n care viteza de lucru crescuse foarte mult. Aceste fiiere-win.ini i system.ini- reprezint baza regitrilor de astzi. Regitrii sunt foarte importani deoarece datele pe care le conin sunt folosite continuu att de sistemul de operare, ct i de aplicaii. Un set de funcii API permite programelor s acceseze rapid i eficient aceste resurse.

1.5.2 Organizarea regitrilor


Regitrii sunt organizai n cinci seciuni. Aceste seciuni, numite hives (stupi), sunt asemntoare cu directoarele rdcin de pe hard-disk. Fiecare seciune are propriul loc de stocare i fiier log. Se poate realiza backup-ul unei hive, fr s fie afectate si celelalte seciuni. Spuneam c regitrii sunt o baz de date ierarhizat, aceasta decurgnd din structura acestora. Fiecare seciune conine chei, subchei i valori. Valorile reprezint informaiile, datele ce corespund unei chei. Acest lucru este asemntor cu fiierele ce conin date, informaii. O cheie sau o subcheie poate avea una sau mai multe valori, o valoare presetat i orict de multe subchei. Fiecrei valori i corespund un nume i un tip de dat. Numele este stocat ca ir de caractere Unicod, n timp ce tipul poate fi:

REG_BINARY reprezint valori binare care pot fi editate sau

introduse n format hexazecimal sau binar. REG_DWORD reprezint o valoare numeric pe 32 de bii introdus

n format decimal sau hexazecimal. REG_EXPAND_SZ folosit atunci cand cheia este o varaibil de sistem

care trebuie sa ia valoarea ei extins nainte de a fi folosit.


de registru.

REG_FULL_RESOURCE_DESCRIPTOR conine o list cu toate

resursele hardware pe care un dispozitiv le utilizeaz. REG_LINK folosit pentru o legatur ntre o valoare a registrului i o

data aparind unei aplicaii. REG_MULTI_SZ folosit pentru a reine mai multe iruri de

caracatere intr-o singura cheie de registru. REG_NONE folosit atunci cand nici o dat nu este reinuta n cheia

de bii.

REG_QWORD folosit pentru reprezentarea valorilor numerice pe 64

hardware.

REG_RESOURCE_LIST conine valori folosite de catre dispozitivele

REG_RESOURCE_REQUIREMENTS_LIST conine o list cu


resursele necesare unui driver.


cheii.

REG_SZ folosit pentru valori care conin iruri de caractere. REG_UNKNOWN folosit atunci cand nu se cunoate tipul de dat al

Aplicaiile pot accesa fiecare dintre aceste tipuri, pot stoca date de aceste tipuri i, n plus, pot realiza intrri de date n format propriu. Cele cinci seciuni sunt:

HKEY_CLASSES_ROOT - HKCR HKEY_CURRENT_USER - HKCU HKEY_LOCAL_MACHINE - HKLM HKEY_USERS - HKU HKEY_CURRENT_CONFIG HKCC

HKEY_CLASSES_ROOT

reprezinta

de si

fapt

un

alias

catre

HKEY_CURRENT_USERS\Software\Classes

HKEY_LOCAL_MACHNE

\Software\Classes.Registrii din HKEY_CLASSES_ROOT au legatura cu asocieriile

de fisiere.Aceasta zona este predispusa la conflicte in registry care se pot produce foarte usor. HKEY_CURRENT_USER - Acesta hive contine setarile user-ului curent. Cheile principale din HKCU sunt prezentate in tableul de mai jos:

HKEY_CURRENT_USER\AppEvents

Aceasta cheie contine informatii despre sunetele asociate evenimentelor(erori, warrning-uri...etc) Aceasta cheie face referire la command

HKEY_CURRENT_USER\Console

line. HKEY_CURRENT_USER\SessionInformation\Pro Aceasta cheie enumereaza aplicatiile care gramCount sunt deschise HKEY_CURRENT_USER\Software\Microsoft\Wi Cheia contine informatii despre instalarea ndows\Current Version\Applets curenta si toate subcheile trebuie sterse . HKEY_CURRENT_USER\Software\Microsoft\Win Trebuie exclusa intrucat contine dows\Current Version\SessionInfo informatii despre sistemul de operare. HKEY_CURRENT_USER\Software\Microsoft\Win Aceasta cheie se leaga de starea curenta a dows\Current Version\StreamMRU sitemului pe care reimpachetezi. HKEY_CURRENT_USER\Software\Microsoft\Win dows\Current Version\MountPoints\ Aceasta subcheie face referire la drive mapping-ul masinii curente HKEY_CURRENT_USER\Software\Microsoft\Win Aceasta subcheie afiseaza prima pagina dows\Current Version\StartPage\ cand un utilizator deschide INTERNET EXPLORER HKEY_CURRENT_USER\Software\Microsoft\Win Se poate sterge pentru ca este legata de dows\Current Version\Prefetcher\ sistemul de operare si nu de applicatie. HKEY_CURRENT_USER\Software\Microsoft\Win Aplicabila numai pe Windows XP, dows\Current Version\Shell\BagMRU HKEY_CURRENT_USER\Control Panel\Keyboard\InitialKeyboardIndicators aceasta cheie contine cele mai recente setari folosite ale utilizatorului. Aceasta subcheie cotroleaza tasta NumLock.Daca folosim aceasta cheie, schimba setarile utilizatorului pe computerul destinatie. HKEY_CURRENT_USER\Software\Microsoft\Inte Aceasta subcheie controleaza tool bar-ul rnet Explorer\Toolbar\Shellbrowser din Internet Explorer.

HKEY_CURRENT_USER\Software\Microsoft\Win Aceasta subcheie reprezinta ce mai dows\Current Version\Explorer\RunMRU recenta lista pentru comanda RUN. HKEY_CURRENT_USER\Software\Microsoft\Inte Aceasta subcheie controleaza rnet Explorer\Toolbar\Explorer configurarea tool bar-ului din Internet Explorer. HKEY_CURRENT_USER\Software\Microsoft\Win Exista cateva subchei atasate acestei chei, dows\Currrent Version\Explorer pe care le folosim pentru configurarea Windows Explorer. HKEY_CURRENT_USER\Software\Microsoft\Win Daca aceasta cheie este populata, aplicatia dows\Current Version\Run porneste dupa fiecare reboot. HKEY_CURRENT_USER\Software\Microsoft\Win Daca aceasta cheie este populata, aplicatia dows\Current Version\\RunOnce porneste doar dupa primul reboot.

Aceste ramuri ale regitrilor conin informaii duplicate. De exemplu, tot ce este coninut n HKEY_CURRENT_USER se gsete i n HKEY_USERS, dar aceeai informaie nu se afl n ambele seciuni, ci sunt dou nume pentru aceleai date. Microsoft a avut nevoie s fac astfel nct o parte a regitrilor s par c se afl n dou locuri diferite. Nu au copiat informaia n ambele ramuri, pentru c aceasta ar fi pus probleme de corelare a datelor. Soluia este folosirea de aliasuri pentru unele componente ale regitrilor, astfel aliasul desemneaz informaia din componenta original. Aceste nume, denumiri duble nu pot fi create de utilizatori, ci numai de sistemul de operare. Seciunea HKEY_CURRENT_USER este un alias fie pentru utilizatorul .DEFAULT, fie pentru utilizatorul curent din HKEY_USERS. Aceast ramur conine n afar de .DEFAULT, chei ale cror nume sunt iruri lungi de caractere ce poart numele de Identificatori de securitate (SID - security identifiers), folosii de Windows pentru identificarea utilizatorilor. Cheia corespunztoare utilizatorului curent este urmat de _Classes. HKEY_LOCAL_MACHINE contine mai multe chei principale, care sunt listate in tabelul urmator.Cheile din acest hive conin informaii pentru setariile specifice facute pe masina curenta. Registry Key HKEY_LOCAL_MACHINE\Hardware Descriere Include aceasta cheie doar cand

reimpachetezi aplicatii care contin hardware, cum ar fi soft-ul de inmprimanta sau de scanner.Inainte de a se incepe proiectul de reimpachetat se verifica daca HKEY_LOCAL_MACHINE\SAM exista componente hardware in aplicatie. Cheia SAM (security accounts manager) contine informatie care se ocupa cu end user si cu group accounts si aduce autentificarea utulizatorului catre LSA(local HKEY_LOCAL_MACHINE\Security security authority) Aceasta cheie contine informatii ale utilizatorului si ale grupului pentru domeniu, cum ar fi drepturi si parole.Daca nu exista un domeniu, aceasta cheie stocheaza informatia de end user intr-un workgroup. HKEY_LOCAL_MACHINE\Software\Microsoft\ Daca sub aceasta cheie se afla ceva, atunci Windows\CurrentVersion\Run aplicatia porneste dupa fiecare restart. HKEY_LOCAL_MACHINE\Software\Microsoft\ Daca sub aceasta cheie se afla ceva, Windows\CurrentVersion\RunOnce HKEY_LOCAL_MACHINE\Software aplicatia porneste doar dupa primul restart. Contine setari ale aplicatiei, care sunt fisiere primare pentru instalatie.Vanzatorii de aplicatii populeaza aceasta cheie pentru a include controlul asupra versiunii aplicatiei, informatii despre setari si informatii despre calea catre fisiere. Urmatoarele subchei verifica daca informatia din chei ar trebui populata si in restul instalarii. HKEY_LOCAL_MACHINE\Software\Windows\ Acest fisier contine locatia programului CurrentVersion\AppPath pentru software-ul pe 32 de biti. HKEY_LOCAL_MACHINE\Software\Microsoft\ Aduce informatii despre semnatura digitala Cryptography. de pe masina destinatie. HKEY_LOCAL_MACHINE\Software\Microsoft\ Contine informatii despre event-uri ale Event System Windows NT HKEY_LOCAL_MACHINE\Software\Microsoft\Informatii despre SMS si despre masina

SMS destinatie. HKEY_LOCAL_MACHINE\System\CurrentCon Aceasta cheie contine toate variabilele de trolSet\SessionManager\Environment\ mediu de pe masina despre masina destinatie HKEY_LOCAL_MACHINE\System\CurrentCon Intotdeauna aceste chei se iau din calea trolSet\Control\SessionManager\KnownDLLs inregistrata in cazul in care nu sunt izolate

HKEY_LOCAL_MACHINE\System\CurrentCon Acest fisier contine un backup al fisierului trolSet001\ CurrentControlSet. HKEY_LOCAL_MACHINE\System\CurrentCon Acest fisier contine un backup al fisierului trolSet002\ CurrentControlSet. HKEY_LOCAL_MACHINE\Software\Microsoft\ Acest fisier detine informatii despre Windows\CurrentVersion\Syncmgr configuratia fisierelor offline. HKEY_LOCAL_MAHCINE\Software\Microsoft\ Acest fisier detine date pentru Web-based WBEM\ HKEY_LOCAL_MACHINE\Software\Microsoft\ Acest fisier detine informatii despre Windows\CurrentVersion\GroupPolicy\ configuratia politicilor de grup HKEY_LOCAL_MACHINE\Software\Microsoft\ Acest fisier se refera la setarile de retea Rpc\UuidSequenceNumber Regitrii sunt o resurs share-uit ntre sistemul de operare i aplicaii. Aadar este foarte important ca instalarea programelor s nu distrug funcionarea altor aplicaii prin modificarea intrrilor folosite de acestea. De aceea este necesar o instalare efectuat de un program care s aduc pe main, sau s modifice numai regitrii ce in de aplicaia curent. De asemenea, la dezinstalare, aplicaia trebuie s tearg intrrile introduse i s lase sistemul de operare n starea ntlnit la instalare.

1.6 API - Interfete de programare pentru aplicaii


O interfa de programare a aplicatiilor (API) este o interfa implementata de ctre un program software care i permite s interacioneze cu alte aplicaii software. Aceasta faciliteaz interaciunea dintre diferite programe software similar cu modul n care interfaa cu utilizatorul faciliteaz interaciunea ntre oameni i computere. Un API este implementat de catre aplicaii, biblioteci, precum i sistemul de operare pentru a stabili modul de comunicare si conventiile necesare. Acesta poate include

specificaii pentru rutine, structuri de date, clase obiect, i protocoalele utilizate pentru a comunica ntre consumator i implementator de API. Un API este o notiune abstracta care descrie o interfa pentru interaciunea cu un set de funcii utilizate de componente ale unui sistem software. Un API pot fi: In mod general un set complet de interfete de program pentru aplicatii care este incorporat in biblioteciile unui limbaj de programare (Java API) In mod specific API-urile sunt menite sa abordeze o problema specifica , exemplu API pentru Google Maps Dependente de un limbaj de programare sunt disponibile numai pentru utilizarea cu sintaxa si elemetele specifice limbajului respective de programare Independente de limbajul folosit API-urile sunt scrise in asa fel incat pot fi apelate de catre mai multe limbaje de programare diferite. Aceasta este o caracteristic de dorit pentru un API orientat catre servicu care nu este legat la un proces specific sau de sistem i poate fi prevzut ca apeluri de proceduri la distan sau de servicii web.

1.7 Probleme care apar la dezinstalarea programelor


Pn acum civa ani programele nu erau proiectate s se ocupe de dezinstalare. Acest lucru se realiza de ctre utilizatori i depindea de priceperea acestora dac erau nlturate toate componentele instalate de aplicaie i dac sistemul de operare mpreun cu celelalte aplicaii continuau s funcioneze dup tergerea programului respectiv. n continuare prezint procedura pe care trebuia s o urmeze un utilizator pentru a dezinstala o aplicaie care nu beneficiaz de un program de dezinstalare, nu este listat n Control Panel\Add Or Remove Programs sau, dac este, nu functioneaz dezinstalarea. Procedura const n:

Realizarea unui backup a directorului n care a fost


instalat aplicaia urmat de tergerea acestuia

Realizarea unui backup a registrilor ce in de aplicaie n


HKEY_LOCAL_MACHINE\Software i HKEY_CURRENT_USER\Software, apoi tergerea acestor chei

tergerea din Start Menu a programelor ce nu mai exist Dac aplicaia apare n Control Panel\Add Or Remove Programs, dar nu se dezinstaleaz, se terg cheile programului din HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\ CurrentVersion\Uninstall

Dac aplicaia instaleaz servicii, trebuie terse intrrile din


HKEY_LOCAL_MACHINE\System\CurrentControlSet\ Services Aceast metod poate da de multe ori gre, pentru c se pot terge componente ale aplicaiei ce erau dependine pentru alte programe cauznd nefuncionarea acestora. O alt greeal care se poate face uor este aceea de a nltura o resurs folosit de sistemul de operare mpiedicnd astfel rularea acestuia. Este de asemenea nevoie ca la dezinstalarea aplicaiilor s fie nlturate toate resursele acestora. Pe lng aceste probleme, mai exist un aspect al dezinstalrii programelor foarte important: o aplicaie trebuie s lase maina n starea de funcionare de dinaintea instalrii programului. Aceasta semnific faptul c, dac aplicaia a modificat resurse existente pe sistem la momentul instalrii, la dezinstalare acestea trebuie s se afle n starea iniial. Aceste lucruri sunt foarte greu de realizat fr un program care s se ocupe de dezinstalare. Pentru problemele enumerate pn acum: fiierele share-uite, manipularea regitrilor, probleme ce apar la instalarea i dezinstalarea programelor, Microsoft a lansat technologia Windows Installer ce aduce, pe lng soluiile cerute de aceste probleme, multe alte caracteristici noi n manipularea instalrilor aplicaiilor.

Capitolul 2. Prezentare a tehnologiei Windows Installer 2.1 Definiie

Windows Installer este un serviciu de instalat i configurat aplicaii. Acesta administreaz instalarea i dezinstalarea programelor prin aplicarea unor reguli predefinite n timpul procesului de instalare i dezinstalare. Pe lng aceste reguli ce definesc instalarea i configurarea software-ului, Windows Installer conine capabiliti de a modifica, repara, tergea unor componentele ale aplicaiei, monitorizarea conflictelor ntre fiiere i n cazul unor instalri anulate din cauza unor erori, revenirea sistemului n starea n care se afla nainte de nceperea instalrii.

2.2. Facilitile folosirii Windows Installer-ului

Introducerea unui format standard Noul pachet cu extensia .msi reprezint de pachet standardul acceptat de tehnologia Windows Installer. Operaiunile tranzitorii i rollback- Operaiunile de instalare sunt tranzitorii, up ceea ce semnific capacitatea Windows Installer-ului de a restitui starea sistemului de operare anterioar fiecrei operaiuni. Dac n timpul instalrii intervine o eroare care impiedic realizarea restului procesului, tehnologia Windows Installer anuleaz schimbrile realizate pn n momentul Auto-repararea self-repair) respectiv, restituind astfel starea iniial a sistemului de operare. (self-healing, La rularea aplicaiei este realizat de ctre Windows Installer o verificare a componentelor. Dac una dintre cheile acestora este corupt sau tears, se va relua procesul de instalare pentru corectarea acestor erori. Acest subiect va Instalare la cerere fi detaliat n continuarea lucrrii. Aplicaiile mpachetate folosind tehnologia Windows Installer pot fi folosite oricnd. Instalarea acestora poate avea loc imediat, sau atunci cnd utilizatorul are nevoie de ele. De exemplu corectarea gramatical din Microsoft Office Word poate s nu fie instalat odat cu restul pachetului, ci numai cnd utilizatorul dorete s foloseasc aceast Instalri JIT (Just in Time) funcionalitate. Programul poate fi pus la dispoziia utilizatorilor chiar nefiind instalat. Acetia sunt ntiinai prin de apariia disponibilitatea shortcut-ului aplicaiei

corespunztor. Programul se va instala la rularea shortcut-ului. Aceast opiune difer de Instalarea la cerere prin faptul c afl pn n momentul nicio declanrii a procesului de instalare, pe main nu se instalat component aplicaiei. Pachetele pot folosi fiiere de tip O aplicaie poate fi customizat facil prin

2.3 Tipuri de fiiere cu care lucreaz Windows Installer


Tehnologia Windows Installer folosete urmtoarele tipuri de fiiere:

MSI (Microsoft Installer)- fiier care contine toate

informatiile necesare sistemului Windows Installer pentru a instala sau dezinstala o aplicatie, precum si pentru a rula interfata utilizator a unui pachet. Fisierul MSI reprezinta o baza de date relationala, continand mai multe tabele inter-corelate legate prin datele din cheile primare sau externe ale tabelelor. Aceasta reprezinta o modalitate eficienta de constructie a procesului de instalare si reflecta cadrul general al aplicatiilor instalate (module disponibile, componente, configurari necesare ale registrilor, interfata-utilizator a aplicatiei). Structura fisierelor msi: 1. Tabelele nucleu - Aceste tabele descriu modulele si componentele fundamentale ale aplicatiei. Un modul (feature) reprezinta o parte a functionalitatii complete a aplicatiei, pe care utilizatorul o recunoaste si poate alege sa o instaleze in mod independent, modulele care alcatuiesc un pachet avand o structura ierarhica arborescenta. O componenta este o parte a produsului de instalat. Componentele pot include fisiere, grupuri de fisiere relationate intre ele, obiecte COM, chei de registri, shortcuturi, resurse sau bibloteci ale aplicatiei. In general, componentele se consistuie in entitati invizibile din punctul de vedere al utilizatorului. Serviciul Windows Installer instaleaza sau dezinstaleaza o componenta ca o singura entitate. Fiecare dintre acestea este marcata printr-un ID (GUID) care permite intotdeauna o singura instanta a unei componente sa fie instalata la un moment dat. Din cauza faptului ca continutul componentele de multe ori este share-uit intre aplicatii, se cere respectarea unor reguli stricte. Printre acestea se poate mentiona faptul ca o componenta se instaleaza intr-un singur dosar (folder) sau aceea ca orice fisier, cheie de registru, shortcut sau alta resursa trebuie livrata ca apartinand de o singura componenta. Tabelele Feature si Component descriu modulele si respectiv componentele care alcatuiesc aplicaia care se va instalal. Intrucat relatiile intre aceste

2 tabele sunt unele de tip n la n mai este nevoie de tabela suplimentara FeatureComponents. Tabela Directory listeaza directoarele care sunt necesare pe parcursul instalarii. Una dintre cele mai importante tabele constituente este Property care seteaza valori globale ale intregii aplicatii. Mai putem aminti tabela Condition continand expresiile conditionale relevante la instalarea modulelor sau tabela Upgrade folosita in timpul upgrade-ului intre versiunile aplicatiilor.

Legaturile ntre tabelele nucleu ale fisierului msi 2. Tabelele relevante la fisiere Din acest grup cea mai importanta tabela este File. Aceasta contine in intregime fisierele necesare instalarii, dar nu si pe cele disk (fisiere cab) care sunt definite in tabela Media. Dintre celelalte tabele putem aminti:

tabela RemoveFile contine lista cu fisierele care trebuie sterse la dezinstalarea aplicatiei tabela Font listeaza fisierele de formatare (fonturile) inregistrate tabela DuplicateFile specifica fisierele care vor trebui sa fie duplicate (instalate in mai multe directoare) in timpul instalarii. tabela IniFile contine fisiele de tip .ini si informatiile pe care aplicatia trebuie sa le configureze in acestea. tabela Environment se foloseste pentru setarea variabilelor de sistem sau a modificarilor aduse fisierului autoexec.bat (pentru Windows 95) tabela MsiFileHash folosita pentru stocarea unui cod pe 128 de biti al fisierelor sursa

3. Tabelele relevante la registri Grupul tabelelor referitoare la registri contine: tabelele Extension si Verb contin extensiile instalate de catre aplicatie, precum si actiunile asociate acestora. tabela TypeLib furnizeaza metoda de inregistrare a librariilor de tip (type libraries)

tabela Class permite inregistrarea Class ID-urilor si a altor informatii ale obiectelor COM. tabela Registry contine toate informatiile pe care aplicatia are nevoie sa le scrie in registri. Aceste informatii includ configurari implicite, date ale utilizatorului sau informatiile de inregistrare COM care nu sunt suportate de tabelele specifice.

4 . Tabelele de secventa Acest tip de tabele controleaza sarcinile care sunt indeplinite pe parcursul instalarii sau dezinstalarii aplicatiei, precum si conditionarea acestora.

Aceste sarcini pot fi actiuni standard care sunt tratate de care serviciul Windows Installer sau actiuni customizate de catre dezvoltatorul pachetului (custom actions). Pentru flexibilitate, baza de date asigura suportul pentru definirea propriilor actiuni cu ajutorul tabelei CustomAction. Unele tabele din acest grup controleaza actinile, asigurand acestora o ordine de executie, atat in ceea ce priveste interfata cu utilizatorul cat si la rularea in cadrul instalarii propriu-zise (tabelele InstallUISequence si InstallExecuteSequence) Mecanismul de instalare al pachetului msi In cadrul mecanismului de instalare exista mai multe faze: a) Faza de detectie La inceputul acestei faze, aplicatia sau utilizatorul configureaza instalarea unui modul sau a unei aplicatii. Installerul progreseaza apoi prin actiunile definite in tabelele de secventa, interogheaza baza de date si genereaza scriptul de instalare care ofera o procedura pas cu pas pentru efectuarea practica a instalarii. b) Faza de executie propriu-zisa n timpul fazei de executie, Installerul trece aceste informaii unui proces cu privilegii crescute (msiexec.exe) care ruleaz script-ul definit la pasul precedent. c) Faza de rollback In cazul in care instalarea nu se termina cu success, tehnologia Windows Installer asigura restaurarea starii initiale a sistemului. La procesarea script-ului de instalare, se genereaza automat si un script de rollback si se fac backup-uri succesive tuturor fisierelor sterse in timpul instalarii. Aceste fisiere sunt sterse permanent in cazul in care instalarea este finalizata cu suces.

MST (Transform File)- O transformare este o colecie de

modificri aplicate unei instalari. Prin aplicarea unei transformari asupra unui pachet de instalare de baz, programul de instalare poate aduga sau nlocui datele din baza de date. Programul de instalare poate aplica fisierele transform numai n timpul instalrii.

O transformare poate modifica informaii care se afl n orice tabel existent n baza de date sau poate aduga sau elimina tabele care se afla in cadrul pachetului msi. Fiierele transform sunt utilizate pentru: - Personalizarea pachetelor de instalare de baz pentru anumite grupuri de utilizatori. - Localizarea aplicatiilor in mai multe limbi. Transformrile sunt utile pentru localizarea aplicatiei in mai multe limbi prin aplicarea unui fisier transformare specific unei limbi asupra bazei de date initiale pentru a adapta aplicatia sau interfata utilizator a acesteia la limba respectiva.

MSP (Patch File) - sunt folosite, la fel ca MST-urile pentru

modificarea pachetului initial, dar spre deosebire de acestea, patch-urile sunt utilizate pentru repararea/updatarea aplicaiilor deja instalate.

MSM (MergeModule File) fiierele MergeModule sunt fiiere


.msi simplificate. Acestea nu pot fi instalate independent, deoarece le lipsesc tabele vitale din baza de date dar care sunt prezente intr-un fisier .msi sau pot cuprinde, de asemenea, tabele specifice. Pentru a instala informatiile continute intr-un modul odata cu aplicatia, merge-modulul trebuie unificat cu pachetul .msi principal.

CAB (Cabinet File) - colecie de mai multe fiiere folosite

timpul instalrii compresate i nmagazinate ca un singur fiier. Toate aceste fiiere pot folosi caracteristica semnturii digitale (digitally signed), folosit pentru a furniza informaii despre productorul fiierului respectiv, dnd astfel utilizatorului posibilitatea de a alege dac s instaleze produsul sau nu.

Capitolul 3. Prezentare a procesului de rempachetare al aplicaiilor 3.1 Definiie


Rempachetarea aplicaiilor este procesul de captur a schimbrilor survenite n urma instalrii unui program, n scopul realizrii unei noi instalri personalizate. Noul program de instalare, denumit pachet, va fi proiectat pentru ndeplinirea standardelor impuse de clieni i pentru a corespunde metodei de distribuie folosite. Procesul de rempachetare ajut la economisirea de efort, timp i resurse materiale, permind astfel administratorului de sistem s personalizeze instalrile potrivit cerinelor companiei. De exemplu, administratorul poate rempacheta programele pentru a se instala silent- fr apariia dialogurilor. Astfel se nltur erorile pe care le-ar putea produce o alegere greit a utilizatorului n procesul instalrii aplicaiei, fapt ce ar necesita efort i timp pentru reparare. Motivul principal pentru care se rempacheteaz aplicatile este crearea unei instalri automate i personalizate a acestora. Folosind acest tip de instalri se reduce costul suportului pe care administratorul ar trebui s l acorde utilizatorului n cazul programelor clasice de instalare. Se obine astfel o standardizare a instalrilor ce are ca urmare benefic reducerea variabilitii - utilizatorii nu pot instala aplicaii pentru uzul personal i nu pot instala programele de serviciu n moduri care ar putea duce la nefuncionarea altor software-uri. Prin aceast standardizare administratorul tie ce programe sunt instalate pe fiecare sistem, lucru care este folositor pentru procesul de depanare a problemelor de funcionare.

3.2 Rempachetarea ca o forma organizat de instalare a aceleai aplicaii n medii diferite


Dezvoltatorii i administratorii de sistem care se ocupa cu personalizarea i instalarea aplicaiilor- packager-ii - creaz programe de instalare, dar metodele i motivaiile acestora difer. Packagerii rempacheteaz aplicaii deja existente pentru a le personaliza conform standardelor de instalare n mas, iar programatorii creaz

instalri corespunztoare aplicaiilor respective. Tabelul urmtor evideniaz cerinele crerii programelor de instalare att pentru dezvoltatori, ct i pentru packageri.

- Metoda crerii instalrii: instalare -Metoda conform cu cerinele aplicaiei zero - Instalare pe un singur computer - inta sunt calculatoarele individuale rempachetare

crerii

instalrii:

- Dezvoltatorii creaz instalri de la - Administratorii personalizeaz o instalare deja existent - Instalare pe multe maini - Aplicaiile pot fi distribuite n reea, eliminnd necesitatea deplasrii la fiecare - Integrare minim cu alte programe Preocupare minim posibilitii altor aplicaii coruperii calculator i a instalrii individuale - Integrarea cu alte aplicaii este Buna funcionare a tuturor

asupra esenial programelor instalate este o cerin

funcionrii -

imperativ - Instalarea se poate realiza pe mai - Instalarea are loc pe un numr multe platforme Nu se cunosc restrns de platforme specificaiile Se cunosc configurrile

sistemelor pe care urmeaz s se calculatoarelor int, deci instalarea instaleze programele, deci instalrile trebuie s funcioneze doar pentru sunt proiectate s funcioneze pe o aceste cerine serie de platforme - Instalri flexibile - Instalri inflexibile Utilizatorul nu poate schimba

- Utilizatorul decide unde s instaleze -

aplicaia destinaia instalrii - De obicei aplicaia se distribuie de - Programele se instaleaz din reea pe CD pentru fiecare utilizator - Utilizatorii interacioneaz alege diferite opiuni - Instalri executate de utilizatori utilizatori pentru mai muli utilizatori cu - Nu este dorit intervenia aceasta decurgnd dup caracteristici setate de administratori - Instalri executate de sistem reelelor i pot rula silent pe calculatoarele utilizatorilor n timp ce acetia lucreaz, n timpul nopii, sau cnd acetia execut o aplicaie - Utilizatorii primesc mesaje ce - Utilizatorii nu sunt deranjai de descriu progresul instalrii mesajele legate de stadiul instalrii, acestea fiind ndreptate ctre sistemul de distribuie

instalarea programelor, putnd astfel utilizatorilor n procesul de instalare,

- Iniierea instalrilor este realizat de - Instalrile au loc prin intermediul

3.3 Vendor msi i aplicaii clasice


Odat cu apariia tehnologiei Windows Installer au nceput s fie furnizate pachete folosind att programul de instalare al fiecrui dezvoltator, ct i instalri bazate pe aceast tehnologie. Astfel, programatorii au putut opta pentru aceast nou format de pachet msi. Aplicaiile mpachetate n acest format beneficiaz de toate capabilitile puse la dispoziie de Windows Installer. n ceea ce privete rempachetarea programelor aceste aplicaii sunt Vendor msi, deoarece sunt deja furnizate n format msi. Rempachetarea uni astfel de pachet difer de cea a unei aplicaii care folosete un setup normal, prin aceea c nu se mai poate folosi metoda capturii pentru personalizarea instalrii, ci se va crea un fisier mst care s ajusteze pachetul dup cerinele date.

3.4 Etapele rempachetrii aplicaiilor


Pentru realizarea acestui proces este necesar parcurgerea unor etape prerempachetare: a. Stabilirea unei persoane de contact reprezentnd clientul b. Stabilirea instrumentului cu care se va realiza pachetul, stabilirea sistemului de operare pe care se va face instalarea c. Realizarea unei convenii privind numele ce vor fi folosite (cel al programului, al productorului i al pachetului final), versiunea aplicaiei d. Stabilirea tipului de cab folosit: intern sau extern e. Dependinele hardware f. Dependinele software g. Formularea unor cerine clare cu privire la paii ce trebuie urmai n instalarea aplicaiei. Este recomandat furnizarea a ct mai multor amnunte pentru detalierea instalrii h. Stabilirea modului n care va fi distribuit pachetul final

Odat parcurse aceste etape, poate fi nceput procesul propriu-zis de rempachetare. Acesta presupune: i. ii. iii. iv. v. vi. vii. Realizarea imaginii curate (clean machine) Realizarea imaginii de baz Analizarea aplicaiei Rempachetarea programului Prelucrarea pachetului Testarea aplicaiei rezultate Livrarea pachetului utilizatorilor

i. Realizarea imaginii curate - prin clean machine se nelege un calculator pe care este instalat doar sistemul de operare. Aceasta va reprezenta punctul de pornire al procesului de rempachetare. Dac n mediul n care se va distribui pachetul final sunt instalate mai multe versiuni ale aceluiai sistem de operare, la crearea imaginii curate se va folosi cea mai veche dintre acestea. De exemplu, dac unele calculatoare folosesc Windows XP SP1 i altele Windows XP SP2, clean image-ul va fi realizat folosind Windows XP SP1. Scopul rempachetrii este acela de a crea o instalare la fel de eficient ca aceea a aplicaiei originale. Dat fiind faptul c programele au dependine ce in de sistemul de operare, folosind versiunea mai veche a acestuia aplicaia va fi forat s instaleze toate fiierele necesare funcionrii corecte. Se asigur astfel c indiferent pe ce platform va rula, pachetul final va furniza aceleai caracteristici ca aplicaia original. Clean machine-ul este pregtit de funcionare, dar nu trebuie neglijat un aspect: aceast imagine va fi folosit de multe ori, iar pentru a economisi timp se recomand salvarea imaginii sistemului de operare. ii. Realizarea imaginii de baz - presupune instalarea unui numr minim de programe care se gsesc pe mainile utilizatorilor. Aceast imagine este folosit pentru a reproduce starea sistemelor pe care se va instala pachetul i este folosit pentru testarea acestuia. Lista acestor programe care vor fi instalate peste imaginea curat variaz n funcie de cerinele clienilor. Printre acestea se pot numra: Suita de programe Microsoft Office

Adobe Acrobat Programe anti-virus Din nou se recomand salvarea imaginii sistemului de operare, deoarece aceasta va fi necesar pentru realizarea testrilor repetate. iii. Analizarea aplicaiei - are drept scop familiarizarea packeger-ului cu modul de instalare a aplicaiei. Se verific, n primul rnd, dac setrile ce trebuie fcute n timpul instalrii coincid cu cele descrise n etapele de pre-rempachetare i dac programul funcioneaz. Apoi se urmresc ce fiiere, regitrii se instaleaz, dac apar shortcut-uri pe desktop i se ine cont de serviciile sau odbc-urile instalate. Un alt aspect important este acela al testrii aplicaiei ct mai amnunite pentru observarea anumitor particulariti ale acesteia. Parcurgerea minuioas a acestei etape este foarte folositoare mai trziu, n timpul procesului de rempachetare, pentru a verifica dac pachetul rezultat se comport la fel ca aplicaia original. iv. Rempachetarea programului. Aceast etap reprezint nucleul

ntregului proces de rempachetare. Din punct de vedere al programului de instalare se deosebesc dou tipuri de aplicaii- vendor msi-uri i setup-uri clasice. Doar acestea din urm se vor rempacheta, deoarece aplicatiile in format msi respecta in mare parte standardizare impusa de tehnologia Windows Installer, iar pentru personalizarea vendorului msi se folosesc fisirele transform mst. Pentru aceast etap este nevoie de folosirea unui tool care s surprind schimbrile ce decurg n urma instalrii aplicaiei originale. Tool-urile disponibile pentru captur - Installshield AdminStudio, Wise Package Studio, etc. Procesul de captur va crea un pachet ce va conine schimbrile pe care instalarea aplicaiei le-a produs, schimbri ce reprezint diferena dintre strile sistemului de operare nainte i dup instalarea aplicaiei. Succesiunea pailor este urmtoarea: a. Se folosete imaginea curat creat anterior. b. Se ncepe procesul de captur - acesta presupune realizarea unei scanri pentru a capta starea iniial a sistemului.

c. Se instaleaz aplicaia conform cerinelor stabilite n procesul de pre-rempachetare (completarea dialogurilor, restartarea mainii, setarea unor opiuni la rularea aplicaiei .a.m.d). d. Dup ce s-au realizat toate setrile i aplicaia funcioneaz corespunztor, se pornete cea de-a doua scanare ce va conine starea final a sistemului. n timpul capturii este interzis rularea oricrei alte aplicaii, deoarece orice operaie realizat de sistemul de operare va fi considerat ca aparinnd programului de mpachetat i inclus n msi. n acest moment pachetul este generat i se poate salva, fiind disponibil modificrilor ulterioare. v. Prelucrarea pachetului Deseori la captur sunt incluse fiiere i regitrii ce nu aparin aplicaiei dar au fost modificai de procese ale sistemului de operare n intervalul dintre cele dou scanri. Pe lng excluderea resurselor ce nu aparin aplicaiei, aceast etap se ocup, deasemenea, cu setarea denumirilor conform indicaiilor specificate de ctre client (numele aplicaiei din meniul Add/Remove Programs, titlul msi-ului .a.m.d) i cu ultimele modificri aduse programului (structura directoarelor este corect, shortcuturile sunt plasate i denumite conform regulilor i icon-urile corespund cu cele ale aplicatiei originale). O list a ctorva fiiere i directoare ce trebuie deseori eliminate din pachet este urmtoarea:

Director/Fiier
Windows\Security Windows\Debug Windows\Temp Windows\Tasks Documents and

Descriere
Acest fiier conine informaii despre securitatea NTFS specifice mainii. Acest director conine loguri de debug. Acest director conine informaii temporare pentru utilizator. Acest director conine setriile task scheduler. Settings\[name]\Application Acest director conine certificate scrise pe utilizatorul curent in regitrii sistemului de

Data\Microsoft\SystemCertificates

Document

and

fiecare dat cnd acesta se logheaz. Settings\[Username]\Local Conine informaii de Internet ale istoriei end

Settings\Temporary Internet Files\ user-ului. Document and Settings\[Username]\Local Acest director contine istoria navigrii pe Settings\History\ Document and internet a utilizatorului. Settings\[Username]\Local Acesta este un folder temp al user-ului.

Settings\Temp\ Document and Settings\[Username]\My Recent Conine cele mai recente documente ale userDocuments\ Windows\Recycler Windows\CSC Windows\System32\WBEM ului. Conine informaii care aparin recycle bin. Reprezint locul unde se stocheaz foldere offline ale user-ului. Conine informatii specifice mainii pentru

WBEM(Web Based Enterprise Management) Document and Settings\All Users\Application Acest director conine informaii despre Data\Microsoft\Crypto semntura digital de pe maina destinaie. Document and Settings\All Users\DRM Conine informaii criptate. Windows\system32\appmgmt\[sid]\appmgmt.ini Acest director conine informaii despre Wise Share Point\ Document and configurarea sistemului de operare. Creat de Wise , acest director conine informaii despre user. Settings\[Username]\Local Acest director conine informaii temporare din Internet Explorer. Conine informaii SMS. Este folosit ca aplicaia s porneasc mai rapid. Acest director conine software cookies care sunt scrise Program Files\Wise Package Studio automat cnd utilizatorul acceseaza website-uri. Acest director conine informaii ale aplicaiei Wise

Settings\Temporary Internet Files\Content.IE5\ Windows\MS\SMS Windows\PreFetch Document and Settings\[Username]\Cookies

Un aspect deloc de neglijat este izolarea coflictelor. Pentru stabilirea fiierelor share-uite cu mai multe aplicaii se pot folosi dou alternative: fie se instaleaz aplicaia pe o imagine care cuprinde toate programele instalate pn n momentul de fa pe mainile clienilor i se identific eventualele probleme de funcionare a celorlalte aplicaii cauzate de modificarea unui fiier share-uit, fie se folosete un tool de monitorizare a conflictelor. Prima variant necesit o imagine updatat a calculatoarelor int - ceea ce este dificil de obinut - i presupune consumarea unui interval mare de timp pentru realizare. Aadar, se folosete cea de-a doua metod. Tool-urile disponibile (ConflictManager- Wise Package Studio, Conflict Solver- AdminStudio) import ntr-o

baz de date resursele instalate de fiecare aplicaie, putnd astfel s detecteze eventuale conflicte. Fiierele care se afl n directoare share-uite i ar intra n conflict cu versiuni diferite instalate deja pe main, se izoleaz folosind tabelul IsolatedComponent. Acest tabel cuprinde dou coloane: Component_Shared i Component_Application. n coloana Component_Shared se trec componentele care conin fiierele share-uite i n coloana Component_Application se trec componentele care includ executabilele care folosesc aceste fiiere. Astfel n timpul instalrii, copii ale fiierelor share-uite vor fi instalate n directorul care conine executabilele, i vor fi folosite de acestea n timpul rulrii. Tot n aceast etap se creeaz, n funcie de cerinele clienilor, o instalare Quiet (instalarea are loc fr intervenia utilizatorului - nu apar dialoguri, utilizatorul este avertizat de procesul care se desfoar prin afiarea progresului instalrii), sau Silent (instalarea are loc fr ntiinarea utilizatorului) vi. Testarea aplicaiei rezultate Este o etap foarte important n procesul de creare a unui pachet care se instaleaz i funcioneaz corect. Testarea complet a aplicaiei necesit dou abordri: testare pentru asigurarea calitii (quality assurance) realizat de echipa de packagerii i testarea de conformitate cu cerinele utilizatorilor (user-acceptance). Scopul testrii user-acceptance este acela de a confirma c pachetul corespunde ateptrilor clienilor - funcionarea acestuia este identic cu a aplicaiei originale. Testarea aigurarii calitaii este foarte important ca procesele de rempachetare i testare a aplicaiilor s fie realizate de echipe diferite. Acest proces se deruleaz pe imaginea de baz care simuleaz sistemele pe care lucreaz utilizatorii i vizeaz: Instalarea pachetului conform cu cerinele clientului Funcionarea corespunztoare a aplicaiei Respectarea standardelor stabilite n procesul de prerempachetare Funcionarea corect a ODBC-urilor create n timpul instalrii Rularea corect a serviciilor instalate de aplicaie

Testarea user-acceptance se realizeaz de ctre clieni pe sisteme configurate conform standardelor companiei i are ca scop o ultim verificare a pachetului inainte de lansarea acestuia n producie. vii. Livrarea pachetului utilizatorilor Odat cu trecerea testelor prezentate la punctul anterior, aplicaia este distribuit utilizatorilor.

3.5 Instrumente folosite la impachetarea aplicatiilor


Orca Dup cum am artat pe parcursul lucrrii, fiierele msi sunt baze de date. Orca, inclus n Windows Installer SDK, este un tool foarte util pentru a manipula nregistrrile din acestea. Simplitatea cu care se lucreaz recomand folosirea acestui tool pentru o serie de operaiuni nu foarte complicate: tergerea fiierelor, denumirea directoarelor, setarea de proprieti .a.m.d. Este dificil realizarea custom actionurilor, foarte mult folosite n timpul creearii pachetului. n continuare am inclus un printscreen al acestui utilitar ce surprinde structura msi-ului. n partea stng se gsesc tabelele ce sunt legate ntre ele prin intermediul cheilor primare i secundare, iar n partea dreapt sunt enumerate elementele tabelului respectiv. Astfel, File cuprinde toate fiierele existente n pachet cu caracteristicile acestora - numele intern folosit de Windows Installer pentru identificare - i numele extern cu care vor fi instalate, componenta pe care se afl, mrimea, versiunea .a.m.d.

Installshield AdminStudio Pentru rempachetarea aplicaiilor se folosete Repackager-ul. In continuare voi exemplifica procesul de captura.

Dup alegerea opiunii Snapshot se realizeaz scanarea iniial a hard diskului.

Pasul urmtor este rularea aplicaiei i scanarea final a sistemului:

n acest moment nu este creat direct msi-ul, ci un pachet cu extensia irp, care nu include fiierele i celelalte resurse, ci doar le refereniaz. Este recomandat ca excluderea resurselor care nu aparin aplicaiei, dar care au fost prinse la captur, s se realizeze n aceast etap. Pentru crearea msi-ului se folosete opiunea Build. nainte de conversie se pot alege diferite opiuni n ceea ce privete caracteristicile pachetului: Fiierele ce aparin unor module redistribuite (merge modules) s fie incluse n pachet- aceasta presupune tergerea fiierelor din captur i adugarea merge module-urilor. Componentele instalate n System32 sunt setate ca permanente Atributele componentelor instalate n Common Files indic faptul c acestea sunt share-uite Regitrii sunt mapai n tabelele corespunztoare

Odat cu generarea msi-ului, se creaz un fiier intermediar cu extensia ism. Acesta poate fi folosit pentru setarea tipului de cab folosit. Se alege opiunea Release Wizard din meniul Build. Astfel se poate alege tipul de cab pentru msi-ul ce urmeaz a fi creat:

Compress all files implic includerea fiierelor ntr-un cab intern msi-ului. Leave files uncompressed and separate from the installation package corespunde generrii unui cab extern care include fiierele. Custom creeaz cab extern i ofer posibilitatea de a alege generarea unui cab fie pentru fiecare feature, fie pentru fiecare component. Pentru editarea att a fiierelor ism ct i a celor de tip msi, Installshield-ul pune la dispoziie meniuri cu interfee grafice prietenoase ce cuprind opiuni i unelte eficiente n dezvoltarea pachetelor.

n partea stng sunt listate resursele ce intr n alctuirea pachetului, iar n partea dreapta este prezentat coninutul acestora.

n acest exemplu este detaliat seciunea Custom Action ce cuprinde secvenele ne-standard executate la instalarea pachetului. Pe lng acest mod de a vedea seciunile pachetului, mai este oferit i versiunea tabelar similar celei folosite de Orca Tools.

Mst- urile se creeaz cu utilitarul InstallShield Tuner:

Dup lansarea lansarea tool-ului se alege opiunea Create a new transform, se alege msi-ul care trebuie personalizat i se bifeaz opiunea Response Transforms ca n figura precedent. Apoi se va simula instalarea prin derularea dialogurilor i configurrile setate n acest timp vor fi salvate n mst. Conflictele fiierelor share-uite se detecteaz cu ajutorul uneltei ConflictSolver. Acest tool este o baz de date n care se import toate aplicaiile care se pot afla deja pe mainile int n momentul instalrii pachetului. ConflictSolver-ul semnaleaz fiierele care sunt instalate de mai multe programe n vederea realizrii procesului de izolare.

Wise Pacakge Studio Realizarea capturii se realizeaz cu ajutorul opiunii Setup Capture:

La nceputul capturii se poate opta pentru realizarea clean build-ului n timpul instalrii aplicaiei. Astfel se vor salva ntr-un director selectat fiierele pe care programul le instaleaz i un fiier wsi. Acesta este generat dup procesul de captur i reprezint o etap intermediar pn la crearea msi-ului. Wsi-ul nu conine numai referine la fiierele aplicaiei, acestea urmnd s fie incluse n cab-uri (interne sau externe n funcie de cerinele clienilor) la generarea msi-ului. Wise Pacakge Studio folosete n timpul capturii liste de excluziune a fiierelor i a regitrilor modificai de obicei de sistemul de operare i prini, prin urmare n captur.

Fiier
Desilu.isu desktop.ini Ffastlog.txt Fntcache.dat Install.log Lmscript.pif NTUSER.DAT Ntuser.dat.LOG Ntuser.ini Ntuser.pol pagefile.sys SchedLgU.txt Setupapi.log SMSCFG.ini St6unst.log Uninst.exe Unwise.exe Files with a .BAK extension C:\OS\IsUninst.exe C:\OS\Tasks\SA.DAT

Observatii
Toate directoarele, exclude subdirectoarele da Toate directoarele, exclude subdirectoarele da Toate directoarele, exclude subdirectoarele da Toate directoarele, exclude subdirectoarele da Toate directoarele, exclude subdirectoarele da Toate directoarele, exclude subdirectoarele da Toate directoarele, exclude subdirectoarele da Toate directoarele, exclude subdirectoarele da Toate directoarele, exclude subdirectoarele da Toate directoarele, exclude subdirectoarele da Toate directoarele, exclude subdirectoarele da Toate directoarele, exclude subdirectoarele da Toate directoarele, exclude subdirectoarele da Toate directoarele, exclude subdirectoarele da Toate directoarele, exclude subdirectoarele da Toate directoarele, exclude subdirectoarele da Toate directoarele, exclude subdirectoarele da Toate directoarele, exclude subdirectoarele da [WindowsFolder], exclude subdirectoarele nu [WindowsFolder], exclude subdirectoarele nu

Files with a .0 number extension Toate directoarele, exclude subdirectoarele da

C:\OS\security\Database\secedit [WindowsFolder], exclude subdirectoarele nu .sdb C:\Data\Profiles\<current user>\Local Settings\Application Data\Microsoft\Windows\UsrCl ass.dat C:\Data\Profiles\<current user>\Local Settings\Application Data\Microsoft\Windows\UsrCl ass.dat.LOG C:\Data\Profiles\<current user>\Application Data\Microsoft\Internet Explorer\brndlog.txt C:\Data\Profiles\<current user>\Application Data\Microsoft\Internet Explorer\brndlog.bak C:\Data\Profiles\<current user>\Application Data\Microsoft\Internet Explorer\Desktop.htt C:\Data\Profiles\<current user>\Cookies\index.dat C:\OS\wiaservc.log C:\OS\system32\wpa.dbl C:\Data\Profiles\<current user>\Local Settings\Application Data\IconCache.db C:\Data\Profiles\<current user>\My Documents\My Pictures\Thumbs.db C:\Data\Profiles\LocalService\C [WindowsFolder], exclude subdirectoarele nu [SystemFolder], exclude subdirectoarele nu

Procesul de captur presupune realizarea a dou scanri a sistemului, nainte i dup instalarea aplicaia. Se capteaz astfel schimbrile aduse de programul instalat care sunt salvate, dup cum am artat mai devreme ntr-un fiier wsi. n acest moment se tie ce instaleaz aplicaia, dar cum se realizeaz acest lucru rmne n sarcina packager-ilor s descopere. Pentru generarea msi-ului se folosete opiunea Compile. Prelucrarea pachetului se realizeaz cu ajutorul tool-ului Windows Installer Editor. Acesta cuprinde trei seciuni. Installation Expert- logica crerii pachetului este prezentat sub forma unei interfee grafice intuitive ce cuprinde, dup cum ilustreaz figura, n partea stng meniurile folosite n procesul de rempachetare, iar n partea dreapt detalierea acestora.

Msi Script- conine toate secvenele personalizate (custom actions) executate n timpul instalrii aplicaiei.

Setup Editor- logica de instalare a pachetelor prezentat n Installation Expert sub aspectul meniurilor este aici coninut n tabele ce formeaz baza de date relaional care st la baza msi-ului. Este important de subliniat c ambele seciuni, att Msi Script, ct i Installation Expert sunt cuprinse n Setup Editor. Astfel, oricrei modificri realizate n cele dou seciuni i corespunde o ajustare a coninutului n Setup Editor, i orice modificare n aceast seciune implic setarea unor valori ntruna sau n ambele seciuni enumerate mai sus.

Validarea pachetelor se realizeaz cu ajutorul uneltei Package Validation. Astfel se ruleaz Internal Consistency Evaluators (ICE) pentru detectarea erorilor sau avertizrilor (Warnings) din cadrul bazei de date.

ICE-urile sunt funcii cuprinse n script-uri, n DLL-uri sau n EXE-uri. n tabelul urmtor sunt detaliate cele mai importante Internal Consistency Evaluators:

ICE
ICE03 ICE04

Descriere
Valideaz datele i cheile primare Valideaz numerele de secven ale fiierelor comparndu-le cu numerele ultimei secvene (LastSequence numbers) din tabelul Media Valideaz faptul c ProductName-ul din tabelul Property nu are mai mult de 63 de caractere Valideaz tabelele advertise: Class, TypeLib, Extension, PublishComponents i Shortcut Valideaz faptul c instalarea componentelor care conin aceleai fiiere nu se realizeaz mai mult dect o dat n acelai director Verific intrri din tabelul Registry care ar trebui incluse n alte tabele Valideaz faptul c icon-urile din tabelul Icon sunt incluse i n tabelele Class, ProgId sau Shortcut Valideaz cmpul Summary Information din baza de date Verific shortcut-urile advertise s aparin componentelor cu chei regitrii ale user-ului curent- HKEY_CURRENT_USER Verific s nu existe directoare hardcode-ate cu adrese locale Valideaz faptul ca o singur component s nu aib att date per-machine, ct i date per-user. Verific numrul de rnduri din tabelul Media, acesta nu trebuie s depeasc 80 Verific tabelul Upgrade Verific faptul c directoarele noi din profilul user-ului sunt listate i n tabelul RemoveFile Valideaz faptul c toate tipurile Custom Actionurilor necesare instalrii sunt valide Verific faptul c tabelul Media conine o intrare DiskId egal cu 1 Verific secvenele Custom Action-urilor. Acestea ar trebui s fie situate ntre InstallInitialize i InstallFinalize Valideaz coloana IniFile DirProperty din tabelul

ICE16 ICE19 ICE30

ICE33 ICE36

ICE39 ICE43

ICE48 ICE57 ICE58 ICE61 ICE64 ICE68 ICE71 ICE77

ICE88 ICE99

Verific numele proprietilor; acestea nu trebuie s fie aceleai cu numele rezervate de Windows Installer

Capitolul 4. Prezentarea WPKG utilitar de instalare automata in retea


Wpkg este un produs software de instalare, upgrade i terge a aplicatiilor pentru Windows. Este folositor pentru a instala aplicatiile de la un server central (Active Directory sau Samba) pentru statile de lucru din retea. Utlitarul este alcatuit din doua parti: parte de server i parte de client. In continuare voi prezenta configurarile necesare pentru parte de server cu Active Directory i pai necesari pentru configurarea parti de cilent pe sistemul de operare Windows Xp.

4.1 Configurarea partii de server a WPKG


Parte server a utilitarului este alcatuita din urmatoarele fisiere: Wpkg.js fiierul este inima intregului utilitar, el fiind cel care coordoneaza tot procesul de conectare ale clientilor, de instalare si de stergere a aplicatilor pe masinile client. Config.xml este fisierul in care diferite setari ale wpkg.js pot fi configurate. Hosts.xml este fisierul unde se definesc mainile i profilele asociate pe care urmeza sa se instaleze aplicatiile dorite. Profiles.xml este fisierul unde se definesc pachetele care vor fi instalate pe mainile client Packages.xml este fisierul unde se definete modul in care se instaleaza, upgradeaza sau se dezinstaleaza pachetele de pe mainile client. Pentru a functiona toate fiierele prezentate mai sus trebuie sa exista in acelai director i in plus mai sunt necesare cateva configuratii ale Active Directory: Se dechide Active Directory User and Computers (Start->Administrative Tools -> Active Directory User and Computers) Se selecteaza grupul de computere (OU) si se alege Properties iar apoi Group Policy

Se selecteaza butonul New i se completeza numele politcii de grup dupa care se selecteaza Edit. Se selecteaza apoi Computer Configuration -> Administrative Templates -> System -> Scripts i se seteaza valori pentru Run startup scripts asynchronously i Maximum wait time for Group Policy

scripts

Run startup scripts asynchronously este necesar sa fie activata in acestmod utilizatorul se poate conecta astfel exista riscul ca acesta sa creada ca statia s-a blocat neputandu-se loga i poate reseta sistemul ducand la o functionalitate defectuaoasa a utilitarului de instalare. Maximum wait time for Group Policy scripts prin acesta politica se determina timpul maxim de asteptare pentru a se aplica script-urile politici de grup pe sistem, daca timpul este depasit atunci sistemul opreste rularea scriptului i inregistreaza o eroare in event log. Pentru instlarea aplicatilor cu Wpkg este recomandata un timp de minim 30 de minute. Se selecteaza apoi Computer Configuration -> Windows Settings -> Startup i se seleteaza un script care v-a porni WPKG la pornirea

sistemului

Ultimul pas este crearea fisierului .bat care contine urmatoare linie de comanda: cscript \\server\ calea catre directorul wpkg\WPKG\wpkg.js /synchronize /quiet /nonotify

Pentru a functiona utilitarul WPKG este necesar ca directorul unde se gasesc fisierele de configurare sa fie un director shared.

4.2 Configurarea partii de client a WPKG

Pe maina client se instaleaza aplicatia client a utiliarului acesta venind cu interfata grafica fiind astfel usor de configurat i in acelasi timp si rapid. Instalerul Wpkg va crea pe masina client un serviciu. Acesta va rula la initializarea sistemului si va citi fisierele xml de configurare din folderul de pe server unde acestea se gasesc. Servicul va rula cu permisiuni de user de System.

Wpkg file path reprezinta locatia unde se gaseste fisierul care prin care se va realiza instalarea aplicatiilor pe masinile client. Wpkg parameters reprezinta parametrii cu care se executa scriptul Wpkg path user este utilizatorul care cu care clientul Wpkg se va conecta la fisierle de pe server. Este recomandabil sa se creeze un utilizator special cu permisiuni minime doar pe directorul unde se afla wpkg.js i pe directorul unde se afla pachetele msi care trebuiesc instalate pe masinile client.

Wpkg path password reprezinta parola de autentificare a utilizatorului definit in campul Wpkg path user Wpkg execution context reprezinta contul de utilizator local care este folosit de WPKG.

Wpkg variables. Aici se definesc varabilele pentru stabilirea locului unde se gasesc pachetele msi care trebuiesc instalate pe masinile client. In Additional action putem selecta programe sau scripturi care sa se execute inainte sau dupa executarea lui wpkg.js.

4.3 Fiierele de configurare


Hosts.xml este fisierul unde se definesc mainile i profilele asociate pe care urmeza sa se instaleze aplicatiile dorite. Structura fiierului este urmatoarea: <wpkg> <host name="gazda1" profile-id="profil1" /> <host name="gazda2" profile-id="profil2" /> </wpkg> unde gazda1 i gazda2 sunt numele calculatoarelor din retea la care li se asociaza un profil de instalare. De asemenea se poate asocia unui singur gazda mai multe profile. <wpkg> <host name="gazda1" profile-id="profil1" >

<profile id="altprofil1"/> <profile id="altprofil2"/> </host> </wpkg> Profiles.xml este fisierul unde se definesc pachetele care vor fi instalate pe mainile client Structura fiierului este urmatoarea: <profiles> <profile id="general"> <package package-id="acrobat" /> <package package-id="firefox" /> </profile> <profile id="suplimentar"> <depends profile-id="general " /> <package package-id="thunderbird" /> </profile> </profiles> Daca o statie este definita in host.xml i are asociat profilul general atunci pe statia respectiva se vor instala cele doua aplicatii definete de identificatorul packageid. Daca insa statie este definta in host.xml si are asociat profilul suplimentar atunci pe statia respectiva se vor instala trei pachete:acrobat, firefox si thunderbird deoarce profilul suplimentar are integrat si profilul general. In acest mod se pot creea foarte usor grupuri de pachete care se pot instala pe toate statiile din retea i se creeaza si profile impartite dupa necesitatile definite de administrator (impartirea pe departamente, impartinrea pe camere, etc)

Packages.xml este fisierul unde se definete modul in care se instaleaza, upgradeaza sau se dezinstaleaza pachetele de pe mainile client. Structura fiierului este urmatoarea: <packages> <package

id="wpkg1" name="Pachet 1" revision="1" reboot="false" priority="0"> <check type="registry" condition="exists" path="HKLM\Software\wpkg\ cheie " /> <check type="file" condition="exists" path="%PROGRAMFILES%\wpkg\ wpkg.bat" /> <check type="uninstall" condition="exists" path="WPKG" /> <install cmd='msiexec /i (cale catre fisierul msi)'> <exit code="0" /> </install> <remove cmd='msiexec /x (cale catre fisierul msi)' /> <upgrade cmd='msiexec /i (cale catre fisierul msi)' /> </package> </packages>

Fiecare pachet are urmatoarele atribute: Id indicatorul care corespunde cu valoarea package-id din fisierul profiles.xml Name numele aplicatiei care se va instala Revision reprezinta versiunea pachetului de instalat, se incrementeaza atunci cand apare o noua versiune a pachetului Reboot indica faptul daca sistemul se va restartarea sau nu dupa instalarea respectivului pachet. o Valoarea True va duce la restartarea sistemului dupa instalarea pachetului

o Valoarea Postponed va duce la restartarea sistemului dupa ce toate pachetele au fost procesate o Orice alta valoarea nu va restarta sistemul, alt pachet insa poate face acest lucru. Priority determina ordinea de instalare a pachetelor, cu cat numarul este mai mare cu atat pachetul se va instala mai devreme decat celelalte.

4.4 Modul de funcionare al WPKG


Utilitatarul Wpkg este construit pe relatia client server.La intializarea sistemului client chiar inainte de executarea etapei de log in a utilizatorului uman, partea client a aplicatiei interogheaza partea de pe server si anume wpkg.js. Primul pas care este facut este verificarea numelui masini daca corespunde cu numele aflate in fisierul hosts.xml.Daca numele masinii client exista in acest fisier se trece la pasul urmator daca nu se inchide conexiunea catre server. In pasul urmator se verfica fisierul profiles.xml pentru a se identifica pachetele care corepund profilelor asociate masini client. In pasul urmator se trece la verficarea fiserului pacakges.xml pentru a verfica ce aplicatii trebuiesc instalate sau la care este necesare upgrade sau care aplicatii trebuiesc sterse de pe masina client. Daca se gaseste de instalat o aplicatie atunci executa conditia de instlare si se porneste pe masina client servicul windows installer logat cu cont de system. Dupa terminarea instalarii controlul este preluat din nou de catre wpkg.js care va face verificarile ulterioare instalarii pachetului si daca nu mai este nimic de instalat va inchide conexiunea client-server.

Capitolul 5. Rempachetarea unei aplicaii i instalarea ei automat ntr-o reea


n continuare voi exemplificarea aspectelor teoretice enunate n aceast lucrare legate de personalizarea unui program n scopul obinerii unei instalri automate ce corespunde cerinelor impuse de ctre client. Etapa pre-rempachetare: a. Stabilirea tool-ului cu care se va realiza pachetul - Install Shield b. Stabilirea sistemului de operare pe care se va face instalarea - Windows XP c. Realizarea unei convenii privind numele ce vor fi folosite -Numele msi-ului, mst-ului i cel al cab-ului vor fi de forma: NumeProducator_Nume_Aplicaie_Versiune_Aplicaie_Limba_Versiune.pachet.exte nsie Exemplu: Oracle-BI-10.1.3.4.1-EN-R1.msi d. Stabilirea tipului de cab folosit - Pentru Vendor-msi nu se operez modificri - n cazul setup-urilor clasice cab-ul va fi extern e. Dependinele hardware: - Nu are e. Dependinele software: - Sun-JavaDB versiunea10.4.2.1 - Sun SDK versiunea 1.6.0.140 - Microsoft-VisualC++Redist versiunea 8.0 In urmatoarea etapa se instaleaza aplicatia pe imaginea de baza pentru a se monitoriza modul de instalarea: daca setup-ul instaleaza si alte aplicatii necesarea bunei functionari a aplicatiiei Oracle Business Inteligence, daca aplicatiile sunt vendor msi sau setup-uri clasice. Pentru acesta se foloseste tool-ul PrcView cu care se monitorizeaza toate programele lansate pe sistem din momentul poriniri acestui tool. Se lanseaza executabilul setup.exe:

Se selecteza Next unde se introduc directoarele de instlare al aplicatiei: C:\OracleBI\OracleBI C:\OracleBI\OracleBIData si se selecteza optiunea Basic.

Se alege apoi Oracle Business Intelligence Disconnected Client

Se introduce locatia de instalare al Java Development Kit (JDK):

Iar la urmatoarele dialoguri pentru instalarea aplicatiei se selecteza next pana la ultimul dialog unde se selecteza optiunea de a nu restarata sistemul dupa apasarea butonului Finish. In urma monitorizari cu PrcView se constata ca premergator instalarii Oracle Business Inteligence se instaleaza de asemnea si Sun-JavaDB versiunea10.4.2.1 si Microsoft-VisualC++Redist versiunea 8.0 (aceste doua aplicatii fiind vendor msi). Se constata ca Oracle Business Inteligence este instalata cu ajutorul unui setup clasic deci pentru a o putea reimpacheta trebuie instalata pe o masina curata iar modificarile survenite in sistemul de operare se vor capta cu ajutorul utilitarului Install Shield, acesta fiind etapa de reimpachetare al programului. In urma acestei etapa avem generat un fisier .irp in care sunt prinse toate modificarile sistemului. Din acest fisier se vor exclude fisierele si registri care nu tin de aplicatie, fisierele de dezinstalare generate de setup-ul aplicatiei. De aceste fisiere de dezinstalare nu mai avem nevoie deoarece dezinstalrea aplicatie se va face prin intermediul Windows Installer.

Se genereaza apoi fisierul .ism prin selectarea tab-ului Build. Etapa urmatoare este prelucarea pachetului. Prin steregerea la pasul anterior a fisierelor si directoarelor de care nu avem nevoie in acesta etapa nu mai este nevoie sa intervenim in modificarea tabelei File si Directory, acestea fiind populate corecte cu informatiile necesare. Se trece apoi la analiza registrilor. Se constata ca aplicatia instaleaza doua servicii si pentru buna functionarea a aplicatiiei acestia trebuiesc introdusi in tabelele Service Install si Service Control

Se verifica modificarile aduse variabilor de sistem. Se observa ca aplicatia modifica variabila de sistem PATH si creearea de alte trei variabile de sistem proprii aplicatiei. Se constata ca in afara de caile catre directoarele aplicatiei nostre sunt incluse si cai proprietare sistemului pe care a fost facuta captura. Acesta se sterg din pachetul nostru. Pentru valorile varabilei PATH definte de aplicatia nostra se verifica ca acestea sa se seteze la instalare, sa se adauge la inceputul sau la sfarsitul varabilei PATH fara a sterge restul de valori si la dezinstalarea aplicatiei sa se stearga.

Pasul urmator este validarea pachetului ism si corectarea cu Internal Consistency Evaluators (ICE) pentru detectarea erorilor sau avertizrilor din cadrul bazei de date. Dupa corectarea erorilor din pachet ultimul pas este construirea pachetului msi si testarea acestuia. La testarea aplicatiei pe cont cu drepturi limitate (cont user) la lansarea shortcutului aplicatie acesta nu se lanseaza.

Pentru ca aplicatia sa poate fi lansata de pe cont de user acesta are nevoie si de permisiuni de executie si de scriere pentru directoarele aplicatie. Acest lucru se realizeaza prin introducera scriptului rights.vbs. Acest script este introdus in pachetul msi prin custom action _rights. Acum utilizatori care apartin grupului User pot folosi aplicatia si pot opri sau porni serviciile create de Oracle Business Intelligence Disconnected Client.

La dezinstalarea aplicatiei pentru a sterge toate urmele lasate pe sistem de instalarea aplicatiei se executa urmatoarele custom action: _deleteinstalldir, _deleteservice, _killprocesssadis, _killprocesssawjava, _stoporacle. stoporacle prin acest script opreste serviciul Oracle BI Server. Killprocesssadis si killprocesssawjava opresc procesele sadis.exe si sawjavahostsvc.exe pentru a perminte dezinstalarea sau repararea daca este cazul a aplicatiei. Deleteservice se opreste si se sterge serviciul sawjavahostsvc Deleteinstalldir prin acest script se sterg si ultimile fisiere si foldere ale aplicatiei la dezinstalarea. Prin folosirea acestor scripturi ne asiguram de faptul ca aplicatia se dezinstaleaza corect, fara erori inlaturand astfel toate resursele instalate.

S-ar putea să vă placă și