Docstoc

dokumentace

Document Sample
dokumentace Powered By Docstoc
					Evidence
firmware/software
verzí
Jako modul do CMS Drupal

Zákazník: HW Group

Bc. Petr Řezníček
14.12.2008
OBSAH
Představení ...........................................................................................................................................................................3
Zadání .....................................................................................................................................................................................3
Analýza problému ..............................................................................................................................................................5
    1. Samostatný program ...............................................................................................................................................5
    2. Plug-in do existujícího systému ..........................................................................................................................6
Stanovení postupu práce ................................................................................................................................................6
    Časový harmonogram .................................................................................................................................................6
    Složení projektového týmu .......................................................................................................................................6
    Matice zodpovědnosti .................................................................................................................................................7
Realizace ................................................................................................................................................................................7
    Výběr verze Drupalu ....................................................................................................................................................7
    Popis modulu ..................................................................................................................................................................7
         Ukázka zdrojových kódů .......................................................................................................................................8
    Přehled použitých tabulek v databázi...................................................................................................................8
         Products_product .....................................................................................................................................................9
         Products_release .......................................................................................................................................................9
         Products_roles_subscribtions..............................................................................................................................9
         Products_subscribers..............................................................................................................................................9
Výsledek .................................................................................................................................................................................9
Další podpora.................................................................................................................................................................... 17
Závěr ..................................................................................................................................................................................... 17




                                                                                                                                                                                           2
PŘEDSTAVENÍ
Jedná se o online nástroj pro evidenci určitých zařízení a programů (dále produktů), ke kterým
je možné přikládat jejich aktuální verze – ke stažení uživatelem. Jednotlivé produkty mohou být
veřejně přístupné, či soukromé – jen pro určité skupiny uživatelů. Stejně tak je tomu i
s jednotlivými verzemi.

K jednotlivým produktům je možné se přihlásit pro odběr novinek (o nových verzích) e-mailem.
Přihlásit se mohou jednotliví uživatelé, i celé skupiny. Z produktů a jejich verzí je dále tvořen
jakýsi katalog, pro větší přehled.



ZADÁNÍ
De Facto se jedná o systém pro evidenci verzi firmware a software. Z pohledu uživatele se jedná
o dva systémy - Evidence firmware a Evidence software, ale z Vašeho pohledu je to +- totéž.

Tedy je zapotřebí evidovat:

      Jednotlivá zařízení (název zařízení, jeho ID z našich objednacích čísel, e-mail správce
       projektu, homepage a CZ + EN popis, veřejné nebo ne)
      Jednotlivé software (název software, jeho ID z našich objednacích čísel, e-mail správce
       projektu, homepage a CZ + EN popis, veřejný nebo ne)
      Registrované uživatele SW (Jméno, Firma, Email, OS, Prog. Jazyky, Software, interní
       uživatel)
      Registrované uživatele FW (Jméno, Firma, Email, Zařízení, interní uživatel)
      Jednotlivé verze FW
      Jednotlivé verze SW

V zásadě - vyrábíme nějaká zařízení a do nich patří firmware (totéž platí pro SW). Pokud
uvolníme nový firmware, někdo sedne, zaloguje se do administrace této evidence (jednoduchá
HTTP autentizace) a v nějakém formuláři vyplní:

      O jaké jde zařízení (software)
      Jaká je verze Firmware (software)
      Datum přidáni (předvyplňuje se aktuální)
      Seznam změn
      Podmínky (pouze pro HW verze xxxx)
      Zdali je FW (SW) veřejný nebo ne.
      Cesta + Název obecného souboru FW nebo SW
      Cesta + Název konfiguračního souboru FW nebo SW

Vzhledem k tomu, že se člověk může uklepnout, je třeba mít kromě možnosti přidáni také
možnost zpětně editace, případně mazání pro případ zařazení ke špatnému produktu /SW.

Když človíček přidá a zkontroluje verzi, má možnost nechat odeslat informační e-maily
registrovaným uživatelům pro daný produkt (software). Pokud není verze nebo zařízení
"veřejná" rozesílá se mail jen Interním uživatelům. Je-li veřejná, posle se všem, kdo mají
registraci pro daný produkt (tedy i interním).


                                                                                                  3
Mail by měl vypadat nějak takto:

Dear Vit Olmr,
You can download latest version 3.0.25 of HW VSP3 on:
http://www.hw-group.com/download/sw/version/HW_VSP_Setup_3.0.25.zip

 ChangeLog:
Single a Multi verze:
- uprava installeru tak, aby umoznoval upgrade HW VSP bez toho, aby se musela predesla verze
odinstalovat
- umoznuje i upgrade eltimackeho driveru

For more information about HW VSP3, please visit:
http://www.hw-group.com/products/hw_vsp/index_en.html

Best regards,
Your HW VSP3 programming team

Adresy pro download (upload) jsou natvrdo http://www.hw-
group.com/download/sw/version/ a http://www.hw-group.com/download/fw/version/.
Ostatní parametry se mění podle toho o jaký jde produkt, verzi apod. Nahrávaný soubor se uloží
do příslušného adresáře s tím, že se na konec názvu souboru přidá za podtržítko číslo verze
(místo teček pomlčky). Současně se kopie nahrávaného souboru natvrdo přejmenuje a uloží do
umístění „Cesta + Název obecného souboru FW nebo SW“. Bacha, tady se budou soubory
prepisovat.

O každém uploadu se vygeneruje XML soubor dle parametru „Cesta + Název konfiguračního
souboru FW nebo SW“ který vypadá následovně:

<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../fw_upl.xsl"?>
<Properties>
<Version>1.9.11</Version>
<UploadFile>http://www.hw-
group.com/download/sw/version/HW_VSP_Setup_3.0.25.zip</UploadFile>
<DownloadFile>Cesta + Název obecného souboru FW nebo SW</DownloadFile>
</Properties>

Parametr <UploadFile> je cesta http://www.hw-group.com/download/sw/version/ nebo
http://www.hw-group.com/download/fw/version/ doplněná o soubor s číslem verze,
</DownloadFile> je „Cesta + Název obecného souboru FW nebo SW“.

Pak ještě existuje registrační formulář pro přihlašování uživatelů FW a SW a interně jejich
editaci. Vlastně tři:

      Interní přidáni uživatele
      Veřejné přidání uživatele
      Interní editace uživatele

Interní a Veřejné přidání uživatele se liší pouze tím, že při interním přidání:

                                                                                               4
       lze nastavit, že uživatel je interní
       lze nastavit, že se mu pošle uvítací e-mail
       lze vybrat pro jaký SW/FW je registrován

Veřejné přihlášení:

       nemá možnost interního uživatele
       pro jaký SW/FW se nastavuje natvrdo v kódu pomocí <input type="hidden"
       uvítací e-mail se posílá vždy v nějaké takovéto podobě:

Dear Vit Olmr,
You can download latest version 3.0.2 of Hercules on :
http://www.hw-group.com/download/sw/version/Hercules.exe

For more information aboutHercules, please visit:
http://www.hw-group.com/software/sdk/index_en.html

Best regards,
Your Hercules programming team

Předměty mailu jsou vždy „XXXX DOWNLOAD“ v případě firmware „XXXX firmware
DOWNLOAD“

Jo a ze všeho by mělo být možné vygenerovat něco takovéhoto:
http://www.hwg.cz/bin/evidence_fw/firmware.php

Stávající provedeni na http://www.hwg.cz/bin/evidence_sw a
http://www.hwg.cz/bin/evidence_fw

Stávající verze postupně rostla a evidence FW je těžce zaostala - de facto se udržovala jen
evidence SW, ale třeba i tam už se nedomyslel link na homepage, zabezpečení nebylo žádné a
podobně. Do jisté míry překopatelná by byla evidence SW, ale jsou tam již ostrá data, takže bych
to raději udělal z čisté vody. Resp., přijde mi, že je právě čas to udělat poradně :)

Je otázka, zdali by mělo smysl vázat uživatele SW/FW na uživatele v Drupalu.



ANALÝZA PROBLÉMU
V zásadě se nabízejí dvě možnosti realizace aplikace.

1. SAMOSTATNÝ PROGRAM
Napsání samostatné webové aplikace, která bude obsluhovat jednotlivé stránky, přihlášení a
registrace uživatelů, odesílání e-mailů, upload souborů atd.

Klady
       Možnost napsat evidenci bez jakéhokoliv omezení.

Zápory
   o    Nutnost napsat veškeré základní funkce od nuly.
   o    Časově dosti náročné.

                                                                                               5
    o   Horší propojení s existujícími systémy.

2. PLUG-IN DO EXISTUJÍCÍHO SYSTÉMU
Modul do redakčního systému Drupal, který je na webech HW Group hojně využíván.

Klady
       Jednoduší a méně časově náročnější než samostatní aplikace.
       Provázanost s ostatními weby.
       Zkušenosti s provozováním CMS Drupal.

Zápory
    o   Omezení systému Drupal.



STANOVENÍ POSTUPU PRÁCE
Celá práce programátora by se dala rozdělit do 3 fází a to:

    -   Navržení databáze pro ukládání dat.
    -   Tvorba samostatných modulu.
    -   Kontrola zákazníkem a následná oprava/vylepšení funkcí.

ČASOVÝ HARMONOGRAM
Původní návrh časové náročnosti.




V konečné fázi bylo testování o něco delší.

SLOŽENÍ PROJEKTOVÉHO TÝMU
Lidé, kteří se na projektu nějak podíleli.

    •   Petr Řezníček
           – hlavní programátor

                                                                                  6
   •   Petra Draboňová
           – úvodní komunikace se zákazníkem
           – finální předávání výsledku
   •   Vít Olmr
           – testování aplikace na straně zákazníka


MATICE ZODPOVĚDNOSTI
Popisuje, o jaké operace se stará jaký uživatel – tedy za co nese zodpovědnost.




REALIZACE
Po zvážení možných variant bylo přistoupeno k vytvoření jako modulu do open-source
redakčního systému Drupal.
Program je s Drupalem řádně provázán. Tzn., že např. skupiny uživatelů jsou zde skupiny
v Drupalu, jednotlivé produkty jsou zvláštní typ uzlu (node) atd.

VÝBĚR VERZE DRUPALU
Jedním z dalších problémů vývoje byla volba správné verze systému Drupal. Aktuální nejnovější
verze je číslo 6.x, ovšem stále podporována a používána je i verze 5.x a to hlavně kvůli většímu
množství rozšiřujících modulů. Nejnovější verze nabízí především větší komfort v ovládání.

Při výběru musely být tyto věci brány v potaz. Jelikož však na webech HW běží verze 5 a také na
novém webu hwg.cz bude tato verze běžet, byla volba jasná – asi sice starší osvědčená verze 5.

Počítáno je i s budoucím upgradem na nejnovější verzi, kdy bude nutné v evidenčí aplikaci
provést několik aktualizací.

POPIS MODULU


                                                                                               7
Jednotlivé produkty jsou realizovány modulem products, který vytváří nový typ obsahu –
product. Kromě titulku a těla článku obsahuje všechny potřebné položky ze zadání. Pro jejich
ukládání jsou použity další tabulky, které jsou popsány v samostatné kapitole. Stejně tak je řešen
i modul products_release, který se stará o jednotlivé verze. Jedná se tedy vlastně o 2
samostatné moduly na sobě závislé.

Při vytváření nových verzí k produktům je zajištěno odeslání informace e-mailem všech
přihlášených uživatelů a skupin. Stará se o to několik funkcí, které generují seznam e-mail adres,
na které je odeslán e-mail ve specifickém tvaru – ten lze v administračním rozhraní upravit. Jsou
v něm použity „zástupné proměnné“, které jsou pak v e-mailu nahrazeny konkrétními
hodnotami.

Využity jsou samozřejmě potřebné API Drupalu (tzv. hooky) pro vytvoření typu obsahu,
systémových cest, administrace atd.

UKÁZKA ZDROJOVÝCH KÓDŮ
Přikládám několik ukázek ze zdrojového kódu modulů.

Přidání nového druhu obsahu produkt do Drupalu:

/**
* Implementation of hook_node_info().
* Vytvořím nový druh obsahu pro uchovávání produktů
*/
function products_node_info() {
    return array(
       'products_product' => array(
         'name' => t('Product'),
         'module' => 'products',
         'description' => t('For evidention of Devices and Software.'),
         'locked' => TRUE
       )
    );
}

PŘEHLED POUŽITÝCH TABULEK V DATABÁZI
Moduly využívají následující tabulky.

      products_product
       Dodatečné informace k jednotlivým produktům.
      products_release
       Informace k jednotlivým verzím souborů u produktů.
      products_roles_subscribtions
       Ukládá sledování jednotlivým rolím u konkrétních produktů.
      products_subscribers
       Ukládá sledování jednotlivým uživatelům k produktům.

Tabulky jsou samozřejmě propojeny se stávajícími, které využívá Drupal. Products_product se
tedy váže na tabulky node a node_revisions, ve kterých jsou ukládány uzly v Drupalu.



                                                                                                 8
Následuje podrobný popis sloupců tabulek. Hvězdička za názvem sloupce značí primární klíč.

PRODUCTS_PRODUCT
      nid * – ID uzlu.
      vid * – ID revize uzlu.
      iid – Interní ID produktu.
      maintainer_mail – E-mail na správce produktu.
      maintainer_www – Webové stránky správce produktu.
      cz_description – Český popis produktu.
      en_description – Anglický popis produktu.
      product_type – O jaký produk se jedná (device / software)
      private_flag – Je produkt soukromý (1 / 0)?
      filepath – Cesta k nejnovější verzi fw/sw.
      configpath – Cesta ke konfiguračnímu souboru.

PRODUCTS_RELEASE
      nid * – ID uzlu.
      prid – ID uzlu produktu (rodiče).
      version – Verze firmware / software.
      conditions – Podmínky.
      private_flag – Je verze produkutu soukromá (1 / 0)?
      versionfile – Název nahraného souboru.

PRODUCTS_ROLES_SUBSCRIBTIONS
      id * – ID aktuálního odebírání (automaticky se navyšuje).
      rid – ID přihlášení role.
      nid – ID uzlu (produktu) který je sledován.
      private_flag – Mají se sledovat jen veřejné verze, nebo všechny (1 / 0)?

PRODUCTS_SUBSCRIBERS
      id * – ID aktuálního odebírání (automaticky se navyšuje)
      nid – ID uzlu (produktu) který je sledován.
      email – E-mail uživatele, který produkt sleduje.
      jmeno – Jméno uživatela.
      firma – Firma ve které pracuje.
      OS – Operační systém, který používá.
      progr_jaz – Programovací jazyk, který ovládá.
      internal – Mají se sledovat jen veřejné verze, nebo všechny (1 / 0)?



VÝSLEDEK
Konečný modul splnil všechny položky zadání. V některých bodech došlo ke špatnému
pochopení zadání, které byly však obratem opraveny.




                                                                                             9
Nová zařízení či software se vkládají prostřednictvím klasického formuláře v Drupalu pro
přidání nového obsahu. Zde se zvolí „product“ a následně již vyplňují všechny potřebné
informace.




Jednotlivé položky při vkládání nového produktu.




                                                                                           10
Na dalším obrázku jsou vidět speciální políčka pro vyplnění cesty aktuální verze produktu a také
konfiguračního souboru.




                                                                                             11
Jednotlivé verze k produktům se vkládají obdobně. Při vytváření nového obsahu se zvolí
„Product release“ a opět se vyplní potřebné hodnoty, jak ukazuje následující obrázek.




                                                                                         12
Stánka produktu s vloženými verzemi potom vypadá takto.




                                                          13
Jen uživatelé se speciálním administrátorským oprávněním mohou vidět horní odkazy
(Zobrazení, Upravit). Pod záložkou „Releases“ jsou vypsány všechny verze firmwarů k produktu.

Pod odkazem „Additional priváte data“ se skrývá tabulka s dalšími informacemi, které vidí opět
jen administrátor.

V administraci je dále možné přidávat nová sledování – ať již jednotlivé uživatele, tak skupiny.
Dále také nastavit cesty k ukládaným souborům a šablony odesílaných e-mailů.




                                                                                                   14
V tomto formuláři se nastavuje šablona, která je odeslána uživateli, který se právě přihlásil
k odebírání informačních e-mailů od verzích.

Následující natavení je pak pro cesty k souborům a šabloně pro e-maily, které jsou posílány při
přidání nové verze.




                                                                                                15
Poslední obrázek ukazuje správu přihlášených rolí k odebírání. Uživatelé se spravují obdobně.




                                                                                                16
DALŠÍ PODPORA
Je samozřejmě možné, že se v aplikaci v budoucnu mohou objevit nějaké chyby. Ty budou
samozřejmě řešeny. Stačí kontaktovat hlavního vývojáře (e-mailem, instant message) a ten se
v co nejbližším termínu bude snažit chyby bezplatně řešit.

Další vylepšení evidenčního modulu je samozřejmě možné také dojednat s Petrou Draboňovou,
která sestaví nabídku s časovou a finanční náročností.



ZÁVĚR
Pro firmu HW Group se pracuje skvěle. S Vítkem Olmrem je radost komunikovat. Ví, co od
aplikace požaduje a umí to dobře vysvětlit – programátor ví přesně, co se od něj očekává, a práci
to tak v mnohém usnadňuje.

Ač by se toto mělo brát za samozřejmost, v praxi to tak zdaleka není. Plno zákazníků prostě
neumí svá přání správně formulovat a vysvětlit, což způsobuje četné komplikace.

Těším se na další spoluprací.




                                                                                               17

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:1
posted:1/2/2012
language:
pages:17