Petr Vondruška, VÚGTK v.v.i. Databáze překážek Petr Vondruška, VÚGTK v.v.i.
Webová aplikace Webová aplikace je vytvořena na moderních technologiích – ASP.NET a C#, .NET framework 2.0, XML. Jsou podporovány a doporučovány prohlížeče IE od verze 7.0 a FireFox od 3.6 - (možné jsou i Chrome či Opera, zatím však nebyly testovány). Aplikace byla vytvářena s výhledem na vícejazyčné prostředí – v budoucnu lze bez větších problémů doplnit i další jazykové mutace (budou přepínány pomocí ikon-vlaječek v patičce). Vzhled aplikace byl optimalizován i pro zobrazení v rozlišení 1024 x 768.
Databáze Data o leteckých překážkách jsou ukládána v MySQL databázi (je možná i případná portace na jiný RDBMS). Při návrhu struktury DB byl kladen důraz na bezpečnost uložených dat- integritu, řízení přístupu a historizaci. Každá důležitá změna je v DB logovaná (vždy je dohledatelné co, kdo, kde a kdy změnil) V databázi lze zobrazovat časové řezy nad daty. Lze nastavit zákaz úplného mazání dat v DB – je možné data pouze „zneplatňovat“. Databáze je popsána metadaty Databáze obsahuje české i anglické ekvivalenty místopisných názvů
Přístup do DB překážek Data uložená v databázi jsou přístupná přes webové rozhraní. Z tohoto důvodu byl kladen důraz na bezpečnost autorizace a authentifikace. Do aplikace je umožněn přístup pouze autorizovaným uživatelům přes přihlašovací webovou stránku. Byly implementovány tyto bezpečnostní prvky: Heslo uživatele je šifrované pomocí algoritmu SHA1 a jako takové je uložené i v DB (reálné heslo není nikde uložené) Komunikovat s aplikací je možné pomocí zabezpečeného kanálu SSL (min, důrazně doporučeno u přihlašovací stránky, je ale doporučováno takto zabezpečit celou aplikaci). Po přihlášení k aplikaci může uživatel komunikovat se serverem pouze pomocí autorizační cookie, která je šifrovaná a má časově omezenou platnost. Po uplynutí nastavené doby je uživatel automaticky odhlášen. Při vypršení session je uživatel rovněž automaticky odhlášen. Aplikace zabezpečena proti SQL injection.
Číselníky v DB Pro vnitřní konzistenci a přehlednost dat jsou často opakující se data uložena v číselnících. Všechny číselníky jsou již předvyplněny hodnotami, je však možné tyto číselníky administrovat z webového rozhrání.
Metadata DB Databáze obsahuje soubor metadat, které ji popisují. Jsou pro přehlednost zobrazována na úvodní stránce. Metadata jsou dynamicky aktualizována.
Letecké překážky ve webové aplikaci Seznam překážek je přístupný z uživatelsky příjemného formuláře. Seznam překážek lze: Filtrovat dle libovolných kritérií (např. dle příslušnosti k prostoru, k letišti,…) Řadit dle libovolné vlastnosti Vyhledávat dle libovolné vlastnosti Stránkovat U každé překážky jsou v jejich seznamu ikonou vyjádřeny akce, které na ní uživatel může v závislosti na jeho přístupových právech aplikovat Zobrazit úplné informace o překážce Editovat překážku Zobrazit historii překážky „Zneplatnit“ překážku - pouze s administrátorským oprávněním.
Filtrování a vyhledávaní VP Letecké překážky lze v aplikaci jednoduše filtrovat resp. vyhledávat. V současné době lze databázi filtrovat dle těchto kritérií: Identifikátor překážky Místní název CZ Nomenklatura ZM 50 Název prostoru CZ Název letiště CZ Název druhu překážky CZ Vertikální přesnost_ σv Horizontální přesnost_ σp Datum zaměření Datum revize Datum aktualizace Vlastník objektu Provozovatel objektu Pro filtrování lze v závislosti na tytu položky použít následující operátory: Rovná se … Menší než … Rovná se nebo menší než … Větší než … Rovná se nebo větší než … Obsahuje … Začíná na … Končí na…
Informace o překážce Kdykoliv lze zobrazit informace o vybrané překážce. Informace lze tisknout z webového prohlížeče a to buď všechny nebo jen tematické okruhy: Informace o samotné překážce (atributy) Geodetické údaje o překážce Informace o uložených fotografiích překážky Metadata překážky Vybrané fotografie překážky lze zobrazovat přímo v prohlížeči nebo stahovat:
Ukázka informace o překážce - vše
Editace překážky a ochrana dat Překážku může editovat pouze uživatel s příslušným oprávněním. Každá změna překážky je podrobně logována. Loguje se: Kdo ji provedl Proč byla překážka editována (tzv. štítek změny) Kým byla změna provedena Kdy byla provedena Každá změna překážky je historizována: Historizují se informace o překážce Historizují se souřadnice překážky Historizují se metadata překážky Z důvodů vysokých nároků na diskový prostor se nehistorizují fotografie překážky Každá změna překážky je dohledatelná a je i dohledatelný stav překážky před příslušnou změnou, stejně tak kdo a kdy ji provedl!!
Editace překážky – uživatelská část Editace překážky je potenciálně nebezpečná operace, proto byl kladen důraz na kontroly jejího provádění. Než je změna akceptována a realizována jsou provedeny tyto kroky: Aplikační kontroly Povinné položky - na formuláři označené červenou hvězdičkou. Důležité hodnoty lze vybrat pouze z nabídky číselníku. Další validátory – správnost typu, formátu, rozsahu vstupních hodnot, … Logické kontroly Jedinečnost pořadového čísla definičního bodu v Geodetických údajích Uzavření areálového objektu a správné pořadí jeho definičních bodů,….. Databázové kontroly Unikátní klíče příslušných hodnot Vnitřní integrita – constrainty a cizí klíče Celá změna překážky je obalena jednou transakcí a ta je provedena pouze v případě, že všechny kontroly byly úspěšné. Pokud některá z nich byla nevyhovující , je transakce odrolována a data jsou vrácena do původního stavu.
Vložení nové překážky Překážku lze do DBP vložit dvěma způsoby: Manuálně prostřednictvím formuláře webové aplikace. V dávce jako importu sady překážek uložených v souboru dat ve výměnném formátu VF 1.0 (XML).
Import leteckých překážek od poskytovatelů Každý poskytovatel, od kterého budou importována data do DBP, má vygenerováný a přidělený jednoznačný identifikátor. Každá překážka obsahuje informaci od kterého poskytovatele pochází. Tato opatření umožňují zpětně dohledat, která překážka pochází od kterého poskytovatele dat.
Historie překážky Každá změna v databázi se historizuje a loguje. Tuto historii překážky lze kdykoliv zobrazit a procházet. Dokonce je možné zobrazovat i kompletní informace o překážce v její historii!
Výměnný formát Pro vstup a výstup dat do a z DBP je k dispozici výměnný formát VF 1.0. Výměnný formát VF 1.0 je postaven na technologii XML, což sebou přináší tyto výhody: XML je přijatý mezinárodní standard pro výměnu dat Existuje velké množství volně dostupných aplikací pro práci s daty ve formátu XML XML je poměrně velmi jednoduchý a je základem i standardního formátu pro výměnu leteckých informací AIXM 5.1 V případě potřeby je možná jednoduchá rozšiřitelnost struktury výměnného formátu VF 1.0 Umožňuje ukládání i binárních dat (možnost ukládání fotografií – v případě požadavku na jejich ukládání v DBP)
Zálohování dat Plně platí zásada: Zálohování není nikdy dost! Proto je striktně doporučováno: Zálohovat pomocí standardních nástrojů MySQL Navíc zálohovat pomocí aplikační vrstvy, pro kterou byly vytvořeny nástroje: Export zálohy databáze Import zálohy databáze
Uložení digitálních fotografií v systému Každá překážka může zdokumentována libovolným počtem fotografií. V principu existují dvě možnosti ukládání digitálních fotografie: Přímo v DBP Na nějakém file serveru mimo DBP. Výhody uložení v DBP: Vše je na jednom místě Fotografie lze historizovat Fotografie lze jednoduše přenášet pomocí výměnného formátu Nevýhody uložení v DBP (vlastně je jediná): Enormní nároky na paměťové místo v DBP. Při jednoduchém propočtu: 10 000 překážek x 2 fotografie pro jednu překážku x 1MB na fotografii (cca 4MP v JPEG)= cca 20 GB jen fotografie. To by přineslo extrémní nároky na zálohování DBP a v případě přenášení dig. fotografií s daty ve VF 1.0 (XML) i na velikost vyměňovaných souborů Z výše uvedených důvodů bylo zvoleno externí úložiště pro digitální fotografie překážek, které je lépe škálovatelné.
Časové řezy Aplikace umožňuje zobrazovat stav databáze leteckých překážek, jaký byl v libovolném okamžiku od jejího založení. V příslušném formuláři se zadá pouze požadované datum a čas a aplikace vygeneruje sestavu překážek platných v tento okamžik. Pro každou takovou jednotlivou překážku lze zobrazovat informace, historii,…
Kontroly Aplikace obsahuje balík kontrol, které prověřují správnost dat z hlediska všech důležitých aspektů Seznam kontrol (celkem 20): Kontrola duplicit bodových objektů Kontrola označení Kontrola poloměru bodových objektů Kontrola subjektů Kontrola příslušnosti k letišti Kontrola správnosti kódů Kontrola souřadnic Kontrola nadmořské výšky Kontrola relativní výšky Kontrola areálů Kontrola vertikální přesnosti Kontrola vertikálního stupně věrohodnosti Kontrola vertikálního rozlišení Kontrola horizontální přesnosti Kontrola horizontálního stupně věrohodnosti Kontrola horizontálního rozlišení Kontrola integrity Kontrola aktuálnosti - datum uložení Kontrola aktuálnosti - datum revize Kontrola časové posloupnosti Seznam kontrol lze jednoduše rozšiřovat ,protože jsou definovány pomocí XML souboru
Hodnocení kvality DBP podle kvantitativních ukazatelů Výpočet je prováděn pro všechny platné překážky v DBP. Hodnoceny jsou datové položky překážek podle prvků kvality stanovených v souladu s ČSN ISO 19114. Přípustná mez jakosti AQL je zadávána do výpočtu jako parametr (konfigurovatelný), dílčím výsledkem je Booleovská proměnná reprezentující závěr vyhovuje/nevyhovuje. Výsledné hodnocení kvality celé DBP podle kvantitativních ukazatelů je vypočteno jako logický součet výsledků dílčích hodnocení podle jednotlivých prvků kvality. Výsledná hodnota Databáze vyhovuje/Databáze nevyhovuje je automaticky zapsána do metadat DBP a stává se její nedílnou součástí. Hodnocení kvality DBP je historizováno.
Historie kontrol Pro přehlednost a dohledatelnost aplikace archivuje všechny provedené kontroly. Každá kontrola navíc obsahuje podrobný log spolu se seznamem chybných objektů. Z tohoto seznamu lze jednoduše přistoupit k chybnému objektu a případnou chybu opravit.
Provedené změny ve verzi 3.0.0 oproti verzi 2.5.0 Změny a vylepšení: Doplněny kontroly na SQL injection v celé aplikaci (zvýšena bezpečnost aplikace). Přepracován import VF a zálohy tak, aby se seznam sloupců jednotlivých tabulek generoval z DBP (snížena možná chybovost na straně aplikace) Doplněn tooltip na ikonu pro „zneplatnění“ u uživatelů Vylepšeno stránkování záznamů Vylepšen filtr v seznamech překážek, od této verze se kontroluje validnost zadaných znaků pro jednotlivé sloupce Vylepšen filtr v časových řezech, od této verze se kontroluje validnost zadaných znaků pro jednotlivé sloupce Vylepšen vzhled chybového dialogu, aby již nedoházelo k jeho přetečení chybovým hlášením Doplněna kontrola vypršení platnosti session a automatické přesměrování na přihlašovací stránku Vylepšeny formuláře, nyní při postbacku nedochází ke změně pozice na stránce (kam uživatel doscrooluje tam zůstane i po provedené změně) Zlepšena bezpečnost aplikace proti úmyslné neautorizované změně údajů Vylepšeny tooltipy, do všech datumových položek byla doplněna informace o požadovaném formátu Vylepšeno řízení přístupu, od této verze není možné bez přiděleného práva editace provádět: Administrování metadat Import VF Import zálohy DBP Do formulářů Export DBP, Export VF, Import DBP, Import VF byly doplněny tooltipy Vylepšen vzhled aplikace - přepracován vzhled ikon K hyperlinku Přidat záznam byla doplněna tematická ikona Opravy: Opraveno aplikování filtru, pokud byla zobrazena jiná než 1. stránka Opravena chyba s přidáváním VP po importu VF - nebylo možné přidat žádnou VP Opravena chyba, kdy bylo možné smazat záznam i uživatelem s právy pouze pro čtení Opraveno mazání záznamu, kdy po smazání záznamu došlo ke ztrátě informace o zobrazení aktuální stránky v seznamu Opraven import zálohy DBP, který neumožňoval import libovolné zálohy.
Petr Vondruška, VÚGTK v.v.i. Děkuji za pozornost Petr Vondruška, VÚGTK v.v.i.