Schémata pro zajištění OPZ: Obnovovací Bloky ( OBy); N variantní programování ( NVP ); N samokontrolní programování ( NSKP ).

Podobné dokumenty
1. Webové služby. K čemu slouží? 2. RPC Web Service. 3. SOA Web Service. 4. RESTful Web services

Primární klíč (Primary Key - PK) Je právě jedna množina atributů patřící jednomu z kandidátů primárního klíče.

Dynamické programování

Jednofaktorová analýza rozptylu

Programování II. Modularita 2017/18

Specializace Návrhář software na základě analýzy vytváří návrh softwarových aplikací ve formě schémat a diagramů.

Versiondog Co je nového

1 Úvod 1.1 Vlastnosti programového vybavení (SW)

Vlastnosti algoritmu. elementárnost. determinovanost. rezultativnost. konečnost. hromadnost. efektivnost

Profilová část maturitní zkoušky 2013/2014

Algoritmus pro hledání nejkratší cesty orientovaným grafem

Algoritmizace řazení Bubble Sort

Disková pole (RAID) 1

TÉMATICKÝ OKRUH Softwarové inženýrství

Paralelní programování

1 Strukturované programování

PŘÍLOHA C Požadavky na Dokumentaci

PROGRAMY PRO GIS. Formovat/formulovat problém pro aplikaci v počítači. Fungování GIS programů na základní úrovni - "uvažovat" jako počítač

Povolání Vyšší odborné vzdělání; Bakalářský studijní program

Ing. Jiří Fejfar, Ph.D. Geo-informační systémy

Maturitní otázky z předmětu PROGRAMOVÁNÍ

PROCES ZAJIŠTĚNÍ FUNKČNÍ BEZPEČNOSTI STROJE

Základní vztahy v elektrických

Algoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem.

6 Příkazy řízení toku

Algoritmizace Dynamické programování. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010

Kapitola 1: Úvod. Systém pro správu databáze (Database Management Systém DBMS) Účel databázových systémů

Algoritmizace. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010

Profilová část maturitní zkoušky 2017/2018

Chyby software. J. Sochor, J. Ráček 1

jednoduchá heuristika asymetrické okolí stavový prostor, kde nelze zabloudit připustit zhoršují cí tahy Pokročilé heuristiky

11. Tabu prohledávání

Věstník ČNB částka 20/2002 ze dne 19. prosince 2002

Architektury Informačních systémů. Jaroslav Žáček

SMART GRID SYSTEM TECHNOLOGIE PRO ANALYTIKU A SPRÁVU ENERGETICKÝCH SÍTÍ. Představení společnosti Analyzátor sítě

Časová a prostorová složitost algoritmů

AUTOMATIZACE Úvod do programování PLC

Definice 7.2. Nejmenší přirozené číslo k, pro které je graf G k-obarvitelný, se nazývá chromatické číslo (barevnost) grafu G a značí se χ(g).

Negativní informace. Petr Štěpánek. S použitím materiálu M.Gelfonda a V. Lifschitze. Logické programování 15 1

8 Třídy, objekty, metody, předávání argumentů metod

Zajištění kvality programového vybavení - testování

Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám.

Databázové systémy. Ing. Radek Holý

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

Architektury Informačních systémů. Jaroslav Žáček

Objektové programování

Čtvrtek 3. listopadu. Makra v Excelu. Obecná definice makra: Spouštění makra: Druhy maker, způsoby tvorby a jejich ukládání

Zablokování (Deadlock) Mgr. Josef Horálek

Architektura informačních systémů. - dílčí architektury - strategické řízení taktické řízení. operativní řízení a provozu. Globální architektura

Teorie měření a regulace

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

1. Programování proti rozhraní

Vývoj moderních technologií při vyhledávání. Patrik Plachý SEFIRA spol. s.r.o.

Internet a zdroje. (ARP, routing) Mgr. Petr Jakubec. Katedra fyzikální chemie Univerzita Palackého v Olomouci Tř. 17. listopadu

Vlákno (anglicky: thread) v informatice označuje vlákno výpočtu neboli samostatný výpočetní tok, tedy posloupnost po sobě jdoucích operací.

Lekce 9 - Migrace dat

Disková pole (RAID) 1

Algoritmy výpočetní geometrie

Ing. Igor Kopetschke TUL, NTI

Složitost Filip Hlásek

ČVUT FEL X36PAA - Problémy a algoritmy. 4. úloha - Experimentální hodnocení algoritmů pro řešení problému batohu

Výroková a predikátová logika - III

TECHNICKÁ SPECIFIKACE VEŘEJNÉ ZAKÁZKY

Konsolidovaná laboratoř, organizace práce na laboratoři, kontrola kvality, laboratorní informační systém. Miroslav Průcha

Programovani v Maplu Procedura

CW01 - Teorie měření a regulace

Analýza a modelování dat. Helena Palovská

Kapitola 7: Návrh relačních databází. Nástrahy relačního návrhu. Příklad. Rozklad (dekompozice)

Relační DB struktury sloužící k optimalizaci dotazů - indexy, clustery, indexem organizované tabulky

Výroková a predikátová logika - III

3. úloha - problém batohu metodami branch & bound, dynamické programování, heuristika s testem

Metodika sestavení případu hospitalizace 010

Vektorový prostor. d) Ke každému prvku u V n existuje tzv. opačný prvek u, pro který platí, že u + u = o (vektor u nazýváme opačný vektor k vektoru u)

5. STRUKTURA PLC PROGRAMU

Metodika ověřování zařízení pro odbavovací a informační systémy ve veřejné osobní dopravě

Základy počítačových sítí Model počítačové sítě, protokoly

Design systému. Komponentová versus procesní architektura

Základy algoritmizace, návrh algoritmu

2.1 Podmínka typu case Cykly Cyklus s podmínkou na začátku Cyklus s podmínkou na konci... 5

Databázové systémy. Doc.Ing.Miloš Koch,CSc.

Informační systémy 2008/2009. Radim Farana. Obsah. Obsah předmětu. Požadavky kreditového systému. Relační datový model, Architektury databází

Návrhové vzory. Jakub Klemsa, Jan Legerský. 30. října Objektově orientované programování.

Výhody a nevýhody jednotlivých reprezentací jsou shrnuty na konci kapitoly.

Dynamické programování

Lekce 04 Řídící struktury

Národní elektronický nástroj. Import profilu zadavatele do NEN

Téma dizertační práce - Strategie ŠKODA AUTO pro čínský trh

Pohled do nitra mikroprocesoru Josef Horálek

Stanovení nejistot při výpočtu kontaminace zasaženého území

PowerOPTI Řízení účinnosti tepelného cyklu

Rekurzivní algoritmy

Algoritmy I, složitost

Metodika analýzy. Příloha č. 1

Grafy. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 13.

NP-ÚPLNÉ PROBLÉMY. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze

Operační systémy. Jednoduché stránkování. Virtuální paměť. Příklad: jednoduché stránkování. Virtuální paměť se stránkování. Memory Management Unit

Jak testovat software v praxi. aneb šetříme svůj vlastní čas

T- MaR. Ústav technologie, mechanizace a řízení staveb. Teorie měření a regulace. Podmínky názvy. 1.c-pod. ZS 2015/ Ing. Václav Rada, CSc.

Práce v textovém editoru

Transkript:

Odolnost SW proti závadám (OPZ): SW (aplikace), který byl vyvinut, může obsahovat reziduální závady návrhu. Nicméně kvůli dodatečným opatřením tyto závady nebudou vést k selhání aplikace. Zajištění OPZ: Všeobecným způsobem zajištění odolnosti SW proti závadám je použití rozmanitosti návrhu, který je založen na používání extra rozmanitého kódu určeného pro odhalení chyb a obnovení aplikace. Rozmanitost návrhu je takový přistup k vývoji SW, ve kterém dvě a více variant návrhu jsou vyvinuté nezávisle a vyhovují společné specifikaci služby. Varianty mají za cíl poskytovat stejnou službu ale jsou implementované různými způsoby (za předpokladu že varianty neobsahují stejné závady). Adjudicator (rozhodčí algoritmus) stanoví (určí) jeden výsledek předpokládaný za správný na základě výsledků různých variant. Schémata pro zajištění OPZ: Obnovovací Bloky ( OBy); N variantní programování ( NVP ); N samokontrolní programování ( NSKP ).

Obnovovací bloky 2 Množina variant aplikačního kódu (většinou jeho části) je vyvinutá nezávislými programátory. Přijímací test (PT) kontroluje správnost vykonávání (výpočtu) varianty. Toto je zásadně dynamické schéma: varianty mohou být vykonávané výhradně sekvenčně. Tj. jestli výsledek varianty projde přijímacím testem, znamená to, že obnovovací blok je splněný. Jinak se systém odroluje a další varianta (tzv. alternativní varianta) bude zkoušena. NVP NVP je statické schéma : všechny varianty se vykonávají souběžně (paralelně) a jejich výsledky se srovnávají Adjudikatorem. Adjudikator umožňuje najít správnou variantu a maskovat výsledky vadných variant pomocí schématu většinového hlasování. NSKP N samokontrolní SW komponenty jsou vykonané paralelně. Každý komponent sestává z dvojice variant a porovnávače. Jeden komponent je považován za aktivní komponent, a ostatní za zatíženou zálohu.

Obnovovací bloky 3 OB představuje dobře strukturovaný obsah pro operace obnovení po výskytu chyby. Dobře strukturovaný program sestává z identifikovatelných operací. Většina z ních sama může mít další menší operace. Cíl: zabránit tomu, aby reziduální závady návrhu měly vliv (zapůsobily) na systémové prostředí; explicitně uvedení kontrolních operací a také operací, které musí být vykonávany (provedeny) v případě výskytu chyb, a jejich zahrnutí do jediného bloku. Každý OB sestává z: prvořadý blok ( nebo primární alternativní blok ) přijímací test (PT) alternativní (náhradní) blok (počet bloků může být,,2,..)

Prostředí výstup Selhání OB výjimka 4 OB PT Alt. selhal Pr. Blok Alt. Alt. Odrolování výjimka Mechanism obnovení bloku vstup Kontrolní bod Jestliže všechny alternativní bloky neuspěly u testu nebo v průběhu jejich vykonávání vznikly výjimky jako důsledek odhalení interních chyb, vznikne výjimka Selhání OB (failure exception), která bude signalizována v prostředí obnovovacího bloku. Jelikož OBy mohou být vnořené, výjimka Selhání OB signalizovaná z vnitřního bloku vyvolí obnovení v obalujícím obnovovacím bloku.

Vložené OBy 5 Obalující blok ( Primární Blok) PT Obal. Blok Prim. Blok AT Alt. Blok Alt. BlokN OB Alt. pro OB Alt. N pro OB Požadavky OB může být napsán v kterémkoli programovacím jazyce, s použitím libovolného stylu programování nebo metodologie. Jediné požadavky jsou: OBy musí být explicitně definované OBy musí být dynamicky vnořené vstup a výstup bloku musí být explicitně označen

Přijímací test ( PT ) 6 PT je sekce v programu, která bude vyvolána po výstupu z prvořadého bloku (ukončení prvořadého bloku) nebo kteréhokoli alternativního bloku. Výsledkem testu je binární rozhodnutí zda-li OB byl vykonán bez chyb nebo nikoliv. Pro každý OB existuje pouze jeden PT, který bude vyvolán po ukončení prvořadého nebo alternativního bloku. PT se nenachází uvnitř prvořadého nebo alternativního bloku. PT musí být jednoduchý jinak by byla velká pravděpodobnost, že test bude sám obsahovat (mít) závady a nebude schopen správně odhalit chyby prvořadého a alternativního bloku. PT musí být považován za posledníčáru odhalení chyb spíše než za výhradní prostředek pro odhalení chyb. Neúspěch u přijímacího testu (zamítnutí testem) Existují 4 důvody pro zamítnutí výsledků primárního a alternativního bloku:. Chyba uvnitř bloku, která byla odhalena explicitně testem; 2. Selhání ukončí výpočet. Selhání bylo odhalené timeouterem (mechanizmus pro kontrolu překročeníčasového limitu); 3. Chyba byla odhalena uvnitř bloku pomocí jednoho z implicitních mechanizmů odhalení chyb (např. dělení nulou); 4. Chyby byly explicitně nebo implicitně odhaleny v primárním a rovněž i ve všech alternativních blocích, což vedlo k vyčerpání nadbytečnosti na této úrovni.

Neúspěch u přijímacího testu (zamítnutí testem) 7 V případě, že všechny alternativní bloky byly zkoušeny a všechny neuspěly u testu, říkáme, že celý obnovovací blok selhal. V tomto případě obalující blok bude informován o selhání interního bloku a bude vyvolán alternativní blok pro tento blok (t.j. pro blok, který selhal). Jestliže se chyba vyskytne v samotném testu (v průběhu testování), tato situace je považovaná za selhání obnovovacího bloku, nebo za chybu v obalujícím bloku. Primární a alternativní bloky Operace primárního a alternativního bloku nejsou omezené. Návrh alternativního bloku nezáleží na existenci primárního bloku. Tedy, vykonávání alternativního bloku probíhá tak jako by primární blok vůbec nebyl vykonáván (t.j. jako by primární blok byl nahrazen alternativním blokem). Vykonání alternativního bloku musí začít v úplně stejném prostředí, které bylo na začátku primárního bloku. Alternativní blok může vykonávat operace odlišným způsobem, patrně méně efektivně, možná pomocí jednoduchého algoritmu méně náchylného k chybám.

Konverzace 8 Cíl: Vykonávat obnovovací a komunikační operaci koordinovaným způsobem. Schéma Konverzace zajišt uje koordinaci spolupůsobících procesů, abychom se vyhnuli Domino efektu. Konverzace probíhá následně: ) Při vstupu do konverzace každý proces vytváří kontrolní bod; 2) Když chyba bude odhalena v kterémkoli procesu, všechny procesy se vrátí ke svým kontrolním bodům; 3) Po navrácení všechny procesy používají alternativní bloky; 4) Všechny procesy opouští konverzaci společně. Procesy, které jsou v konverzaci, zůstanou stejné po odhalení chyb a návratu na začátek konverzace. Tytéž procesy po návratu budou používat alternativní moduly. Dialog je způsob jak obalit a zahrnout množinu procesů do jedné atomické akce. Diskuse (nebo konference) obsahuje množinu dialogů. Diskuse řídí vykonání dialogů a rozhoduje jaké obnovení musí proběhnout, když dialog selže. Diskuse umožňuje použití různých množin procesů což zajišt uje opravdovou rozmanitost návrhu.

Domino efekt 9 Proces Proces 2 Zamítnutí testem Kontrolní bod Kontrolní bod Kontrolní bod OB Kontrolní bod Kontrolní bod Kontrolní bod Kontrolní bod Kontrolní bod

Schémata zajišt ující odolnost SW proti závadám Distribuované obnovovací bloky Konsensní obnovovací bloky Opakující bloky s rozmanitými daty Samokonfigurující optimální programování Certifikační stopy t/(n-) variantní programování

Distribuované obnovovací bloky Struktura distribuovaného OB: celý OB je úplně replikován v primárním a záložním (backup) HW uzlech. OB zahrnuje dva alternativní bloky a PT. Distribuovaný OB Uzel : Primární Uzel 2: Záložní Alternate Alternate PT Alternate Alternate PT Primární uzel používá první alternativní modul jako prvořadý blok, zatímco Záložní uzel používá druhý alternativní modul jako prvořadý blok.

Konsensní OB 2 KOB potřebuje mít k dispozici N variant algoritmu. Varianty jsou zhodnocené a vyjmenované (stejně jako v OB) podle pořadí vykonávání a spolehlivosti. Adjudikator ( rozhodovací algoritmus ) PT Hodnost Varianta Hodnost 2 Varianta 2 Hodnost N Varianta N KOB porovnává různé dvojice (páry) výsledků. Když pár se stejnými výsledky bude nalezen, tyto výsledky jsou považované za správné a jeden z ních bude výsledkem KOB. Jestliže žádný pár se stejnými výsledky není nalezen, bude výsledek varianty s nejvyšší hodností zkontrolován přijímacím testem. V případě, že výsledek neprojde testem, další varianta bude vybraná (podle hodnosti), a její výsledek bude zkontrolován přijímacím testem. Tato procedura bude pokračovat pokud všechny varianty nebudou vybrané nebo výsledek jedné z variant projde testem.

Opakující bloky s rozmanitými daty 3 Rozmanitost dat je strategie, podle které návrh (algoritmus) se nemění. Algoritmus bude opakován v případě chyb. Při opakování algoritmu budou použitá jiná odlišná data. Opakující block vykonává jediný algoritmus a kontroluje jeho výsledek pomocí přijímacího testu. - Při úspěchu u testu, opakující blok bude ukončen. - Při neúspěchu, algoritmus bude opakován poté, co data budou vyjádřená v jiném formátu. Tato procedura bude pokračovat pokud nebudou překročenéčasové limity nebo výsledek algoritmu projde testem. Samokonfigurující optimální programování SOP uspořádá vykonávání SW variant ve fázích, dynamické konfiguruje aktuálně aktivní množiny variant, což umožňuje vytvořit přijatelný (přípustný) výsledek použitím relativně malých prostředků (t.j. pomocí efektivního použití prostředků, které jsou k dispozici). Certifikační stopy Schéma má za cíl vykonat algoritmus tak, aby algoritmus zanechal za sebou stopy dat (certifikační stopy). Tyto stopy (data) budou použité jiným algoritmem, který řeší stejný problém rychleji. Výsledky obou algoritmů se porovnávají. Při shodě výsledků první algoritmus je považován za správný.

t/(n-) variantní programování 4 t/(n-) diagnostika Hlavní cíl l koncepce: v systému z n modulů izolovat závadné moduly uvnitř množiny s velikosti nanejvýš (n-), když počet závadných modulů je nanejvýš t. Definice. Systém S je t-diagnostikovaný (na základě vytvořeného syndromu) jestli všechny závadné moduly mohou být identifikované, pod podmínkou že počet závadných modulů nepřekračuje t. Definice 2. Systém S je t/(n-)-diagnostikovaný (na základě vytvořeného syndromu) jestli všechny závadné moduly mohou být izolované uvnitř množiny s velikosti nanejvýš (n-) modulů, pod podmínkou že počet závadných modulů nepřekračuje t.

Adjudikatorní mechanismus 5 Požadavky k adjudicatoru: ) Adjudikator a varianty musí být nezávislé, aby se vyloučila možnost společných nebo souvztažných závad; 2) Adjudikator musí být jednoduchý, aby se snížila možnost reziduálních závad. OB (Přijímací test) PT je specifický pro každý systém. Je obtížné zajistit aby PT a varianty byli nezávislé navzájem. NVP (většinové hlasování) Velmi složitý. Zahrnuje velký počet porovnávání výsledků NSKP (porovnávač) Nemůže odhalit souvztažné závady, které se mohou vyskytnout v aktivních samokontrolních komponentech.

t/(n-) variantní programování 6 Využívá několik nových výsledků z oblasti diagnostiky na systémové úrovni pro návrh jednoduchého adjudikatoru. Schéma má několik předností, včetně: ) Potenciální schopnost odolat více souvztažným závadám mezi variantami; 2) Jednoduchý adjudikator, který vyžaduje pouze O(n) porovnávací kroky; 3) Případně může poskytovat správnou službu dokonce i když počet závadných variant překračuje hranice t ; 4) Dovoluje postupné degradace. Obecná t/(n-)-vp architektura je schopna identifikovat (rozpoznat) správný výsledek v podmnožině výsledků n variant (n SW modulů), pod podmínkou, že počet závadných modulů v architektuře nepřekračuje t. Sémantika t/(n-) VP: Všechny n nezávislé navržené SW varianty se vykonávají paralelně. Jen některé z výsledků variant se porovnávají aby se vytvořil syndrom. Na základě syndromu diagnostický program vykonává t/(n-)-diagnostiku (t.j. určí správnou variantu) a vybere výsledek varianty, která je pokládaná za správnou, pomocí přepínání výsledků. Jestliže správná varianta nebude identifikovaná, bude použitá náhradní varianta (pokud existuje), nebo bude signalizovaná výjimka.

Příklad: n=5 a t=2 ( 2/(5-) VP ) 7 Adjudikator Řídí přepínačem výstupů Výstup t/(n-) Diagnostor r2 r23 r34 r2 r23 r34 C C2 C3 rij výsledek porovnání nebo (EC result); R={rij} -syndrom V V2 V3 V4 V5 Vstup

Všechny možné syndromy a výběr výsledků pro 2/(5-)-VP architekturu 8 r2 r23 r34 Výsledky předpokládané za správné r, r2, r3, r4 r, r2, r3 r5 r, r2 r2, r3, r4 r5 r3, r4 r5 Alespoň jeden z výsledků r, r4 a r5 je předpokládaný za správný pro každý syndrom!

9 V r2 V, V2, V3, V4, V5 Varianty V5 V2 C, C2, C3 Porovnávače V4 r34 V3 r23 ri,i+ výsledek porovnání rij = () jestli výsledky variant Vi a Vj jsou totožné (nejsou totožné) v3 v r2 v2 V případě n=3 a t= stačí pouze jeden porovnávač pro t/(n-)-diagnostiku. Porovnávání výsledků může být organizované ve forměřetězů, kde porovnávač Ci ( I n-) porovnává výsledky variant Vi and Vi+

Další možnost: představení struktury porovnání výsledků ve formě grafu H2r,n, kde výsledek varianty Vi ( I n) se porovnává s výsledkem varianty Vj jenom když if i-r j i+r (mod n+, r =,2,3,..). Smyčka je H2,n graf (r = ). 2 Věta: Systém S složený z n modulů (SW variant) je t/(n-) diagnostikovaný jestli n 2t + a struktura porovnávání výsledků obsahuje přinejmenším (alespoň):. Řetěz z t + modulů pro t=; 2. Řetěz z t + 2 modulů pro t=2; 3. Řetěz z 2t + modulů pro 3 t < 5; 4. H2r,n strukturu s r= pro 5 t < 7 (t.j. smyčka); 5. H2r,n strukturu s r (t-)/5 pro 7 t. Pro reálné hodnoty n ( 3 n ), t/(n-) VP architektura používá pouze O(n) porovnávačů a jednoduchý algoritmus s lineární složitostí.

Srovnávací analýza 2. V NVP každý z N SW variant je stejně důležitý jako všechny ostatní. Varianty jsou navržené tak, aby vytvořily podstatně totožné výsledky. V t/(n-)-vp některé varianty mohou poskytovat degradovanou službu což je důležité pro systém pracující v reálném čase (abychom se vyhnuli časovým režijním nákladům). 2. NVP se zakládá na většinovém hlasování. V t/(n-)-vp správný výsledek (s určitou pravděpodobnosti) může být identifikován a poskytován dokonce i když většina variant je závadných. 3. NSKP selže když dvě varianty, které tvoří aktivní samokontrolní komponent, vytvoří totožný ale nesprávný výsledek. Na rozdíl od NSKP, t/(n-)-vp může odolat t (nezávislým nebo souvztažným) závadám. 4. Podobně NVP, t/(n-)-vp je patrně odlišné od OB.