|
Deklarace záměru - modernizace projektu hydronet.cz Hydronet je projekt volného šíření aktuálních meteorologických informací široké veřejnosti. Je třeba navrhnout a zrealizovat komplexní řešení přenosu, zapracování, archivace a prezentace naměřených dat. Účelem je od základu přepracovat stávající projekt, který je řešen naprosto nesystémově a přestože již poskytuje cenná data ze tří automatizovaných meteorologických stanic, trpí mnoha zásadními nedostatky jako např. z dlouhodobého hlediska neudržitelný způsob ukládání dat, neošetřené výpadky spojení mezi centrálním serverem a jednotlivými stanicemi, zobrazování dat pouze ve formě fixně generovaných grafů atd. Odborný článek Úvod Cílem projektu je tedy vytvořit takový systém, který bude efektivním způsobem shromažďovat a dlouhodobě uchovávat informace získané z měřících stanic. Hlavním účelem celého systému je monitorování stavu vodních toků a snížit tak škody napáchané případnými povodněmi. Další podstatnou vlastností projektovaného systému musí být schopnost archivovaná data přehledným způsobem prezentovat uživatelům - textovou i grafickou formou. Databázový server - software Tento stroj bude jednou z nejdůležitějších částí systému - kromě databáze na něm poběží i programy slouží ke generování výstupů, zálohovací utility atd. Proto od něj očekáváme stabilitu, výkonnost a spolehlivost. Z těchto důvodu bude použitým operačním systémem Linux. Výběr databázového software nebude tak jednoznačný. Z praktických důvodu by to měl být databázový systém podporující jazyk SQL - vzhledem k již vybranému operačnímu systému připadá v úvahu např. MySQL, Oracle, PostgreSQL atd. Databázový server - hardware Do budoucna lze očekávat, že systém bude sbírat data z několika desítek měřících stanic a bude jej využívat velké množství uživatelů. Proto není od věci uvažovat o víceprocesorovém systému. Ze stejného předpokladu vycházím i při volbě formy uložení dat. S přibývajícím počtem měřících stanic bude samozřejmě přibývat i nárok na kapacitu datového úložiště. Dále požadujeme určitou bezpečnost, proto si určitě nevystačíme s jedním diskem, ale bude použito diskové pole minimálně RAID1 (mirroring) nebo raději RAID5 o minimálně třech až čtyřech discích, které nám kromě menší kapacitní ztráty poskytne i vyšší čtecí rychlost. Operační paměť nám vzhledem k její snadné upgradovatelnosti pro začátek postačí 1GB. Ukládání do databáze Měřící software generuje každou sekundu 10 hodnot (int). Například tlak, teplota, výška hladiny, srážky, osvit a vlhkost Ty je potřeba dostávat v co nejkratším čase do centrální databáze a současně je potřeba ošetřit možnou ztrátu informací v důsledku výpadku připojení do databáze. Proto se musí data ukládat nejprve na lokální disk měřící stanice, potom generovat SQL skript, a teprve v momentě, kdy uložení do centrální databáze korektně proběhne, je z disku smazat (popř. přesunout do lokální zálohy). Ke spojení databázového klienta se serverem lze využít ssh tunel - kvůli zvýšení bezpečnosti a komprimaci toku dat. Výstup z databáze Uživatelé budou přistupovat k naměřeným údajům pomocí webového rozhraní. Webserver může být provozován podle dodatečných potřeb buď přímo na stroji databázového serveru nebo muže být hardwarově oddělen a k datům přistupovat vzdáleně. K implementaci webového serveru pude použit Apache řady 2, k tvorbě dynamických výstupu (textových i grafických) a spojení s databází jazyk PHP. Pro generování grafů lze použít PHP modul VHGraph(http://www.vhconsultants.com) nebo JpGraph(http://www.aditus.nu/jpgraph), eventuelně lze použít standardní kreslící utility PHP. Dále bude systém zasílat souhrnné informace na e-mail registrovaným uživatelům (těm co budou mít zájem). Zálohování Primární ochranu dat proti havárii pevného disku nám poskytne RAID automaticky. Po doplnění diskového pole alespoň jedním sparediskem (záložní disk) mohou postupně havarovat 2 disky bez ztráty dat. Dále bude DB server vést update-log (průběžný dump) a ten se bude pravidelně ukládat na zatím blíže nespecifikované zálohovací médium (nejjednodušeji pálit na CD) nebo na zálohovací server. V případě oddělení webserveru od databáze může mít webserver i funkci zálohy. Komunikace Pro uživatele systému bude výhodné, budou-li mít možnost si mezi sebou vyměňovat vlastní postřehy a názory o stavu řek, počasí apod. K tomuto účelu bude sloužit webové diskuzní fórum. Diagram kontextu Model jednání Datový slovník Notace
Obecná deklarace male_pis = a|b|..|z Osoba
ID_osoby = retezec Stanice
ID_stanice = cislo Cidlo
ID_cidla = cislo Snímky
ID_kamery = cislo Data
ID_veliciny = cislo Objednavka
zajimavosti = cislo *oznaceni, o jake zajimavosti ma zajem* WWW výstup
*-graficky vystup* Architektura systému Serverová část bude sloužit ke shromažďování naměřených dat, jejich archivaci a vytváření výstupu pro uživatele. Lze ji logicky rozdělit na webserver a databázi, ale realizována bude fyzicky na jednom PC. Kvůli bezpečnosti bude síťový provoz serverů kontrolovat firewall(iptables), který povolí jen připojení na databázi a webserver. Opět se nejedná o samostatný stroj - všechny tři servery budou implementovány na jednom HW. Fyzicky bude server umístěn na páteřní síti jednoho z českých ISP tak, aby bylo dosaženo co nejlepšího poměru cena/konektivita. Ochranu proti výpadku elektrického proudu zajistí provider připojení na vlastní UPS. Záloha dat bude řešena kopírováním dat na druhý (zálohovací) server, který bude umístěn na jiném místě a lince než hlavní server. I tento stroj bude opatřen UPS a firewallem. Administrace obou serverů bude zajištěna placeným administrátorem nebo firmou. Měřící stanice budou číst data přímo z měřidel a ukládat je do databáze. K filtrování internetového provozu budou opět použity iptables a každá stanice bude vybavena vlastní UPS. V současné době se 3 tyto stanice nacházejí v lokalitách Pernštejn, Železný Brod a na Jizerce. V budoucnosti budou další stanice umísťovány na takových lokalitách, které dávají možnost nějakého smysluplného měření pro sledování povodňových situací - zejména u vodních toku, vodních přehrad, na soutocích řek apod. Administraci všech stanic bude obstarávat stejná osoba jako server (v případě velkého počtu stanic bude adminů víc). Návrh SW a HW Návrh je řešen pro připojení tří měřících stanic a jednoho serveru. Při návrhu se počítá s postupným rozšiřováním jednotlivých měřících středisek. Do ceny nejsou zahrnuty měřící sondy a pracovní stanice, neboť jsou řešeny individuelně podle měřící stanice a jejich konfigurace je mimo rozsah tohoto projektu. Společnost realizující tento projekt není plátcem DPH, proto veškeré uvedené ceny jsou kalkulovány včetně DPH. Ceny jsou platné ke dni 24.3.2004. Hardware Konfigurace serveru
Konfigurace zálohovacího serveru Je použit počítač firmy Libra LEO Persica. AMD XP 2000+ MHz Celkové náklady: 15.690,- Kč Doporučená konfigurace pracovní stanice Pracovní stanice není zahrnuta v rozpočtu, neboť je součástí měřící stanice.
Čipset: VIA KM400+ VT8235
Připojení k síti internet Na fyzickém umístnění serveru nezáleží, bude tedy umístěn v lokalitě s nejnižšími náklady na připojení do sítě internet. Připojení serveru Server hosting s agregačním poměrem 1:500 u www.pes.cz : 948,- / měsíc
Připojení stanice Připojení slouží pro přenos naměřených dat včetně snímků z webové kamery. Pro návrh výchozího řešení je použita služba ADSL vzhledem ke své dostupnosti. Bude-li v lokalitě měřící stanice dostupné výhodnější připojení, bude toto připojení využito. IOL Broadband 512/128, 6 GB objemu přenesených dat v ceně služby.
V případě výpadku připojení, se budou data ukládat na disk a po obnovení spojení se vše zpětně přenese. Není tedy záložní připojení potřeba. Správa domény Roční registrační poplatek u www.pipni.cz: 781,- Kč Software
Cena vývoje našeho SW Jedná se o heterogenní software psaný jednak zčásti v jazyce C, zčásti v jazyce PHP a malá čast JavaScriptu. Celkový rozsah je odhadnut asi na 12000 řádků zdrojového kódu. Rozpočet dle Boehmova cenového modelu COCOMO (Constructive Cost Model) Rozsah = 12 Náročnost projektu je pak N = k . Rn = 49 člověko-měsíců Čas C = 2,5 . Nm = 10 měsíců Počet lidí P = N / C = 5 lidí Přesnější výpočet metodou COCOMO pomocí nástroje na stránce: http://sunset.usc.edu/research/COCOMOII/cocomo81_pgm/cocomo81.html Výsledky Effort = 54.19 Person Months You submitted the following name / value pairs:
Počet pracovníků vychází stejně, tedy P = Effort / Schedule = 5 peoples Závěr Výpočet oběma způsoby vychází přibližně stejný. Budeme tedy vycházet z přesnější metody spočítané pomocí výše uvedeného nástroje. Zaměstnáme 5 lidí na plný úvazek po dobu 12 měsíců. Počítáme-li výplatu programátora 25.000,- Kč za měsíc, pak cena za software je 1 500 000,- Kč. Cena vývoje podle MS Projektu Náklady na provoz systému Hardware
Software
Náklady na 1 rok provozu
Seznam úloh Harmonogram
Celková cena vyjadřuje pouze plat zaměstnanců, není zde zohledněn nákup SW, HW ani údržba systému.
Prezentace |