Entwicklung von Fehler toleranter Software
(EN google-translate)
(PL google-translate)
Die nachfolgenden Ausführungen fassen einige zentrale Kapitel aus dem Buch "Patterns for Fault Tolerant Software" zusammen. Die dort beschriebenen Konzepte sollen auf das Problem der Regelung der Spiegelposition aus den vorangehenden Kapiteln angewendet werden.
Autor | Titel | erschienen |
---|---|---|
Hanmer, R.S. | Patterns for Fault Tolerant Software | John Wiley & Sons, Chichester, 2007. |
Tabelle 0-1: Literatur zu "Fehlertoleranter Softwareentwurf"
|
|
Begrifflichkeit
|
Im folgenden sind die relevanten Begriffe im engeren thematischen Rahmen der "Fault tolerant Software" noch einmal zusammengefaßt:
Englisches Wort | Deutsche Übersetzung | Bedeutung |
---|---|---|
fault | Fehler | Programmierfehler / logischer Umsetzungsfehler |
error | Störung | Defekte und Störungen, die im Betrieb auftreten |
failure | Ausfall | Ausfall oder Versagen eines Systems |
Tabelle 0-2: Begriffsübersicht.
Fehlertolerante Systeme und Echtzeitsysteme
Dieses Thema hat einen engen Bezug zu der Echtzeitthematik., Bei den hier hauptsächlich behandelten mobilen Systemen mit eingebetteten Rechnern gibt es eine Vielzahl an möglichen Versagensursachen, die mit dem Zeitverhalten und einer Bewegung in unbekanntem Terrain zu tun haben:
|
Rezepte für die Erstellung Fehler toleranter Software (Pattern for Fault tolerant Software)
Diese Liste ließe sich beliebig verlängern, analysieren und kategorisieren. Aus einer solchen Arbeit heraus, sind Rezepte / Muster / Pattern entstanden, wie Software gestaltet werden sollte, um ein Fehler tolerantes (Fault tolerant) System zu erhalten.
Ein sehr elementares Konzept ist beispielsweise KIS für "Keep It Simple" - mach es einfach. Da jede Codezeile wieder eine Quelle für Programmierfehler sein kann, wird bei Fehler kritischen Systemen angestrebt, den Codeumfang auf das Wesentliche zu beschränken und gerade nicht zu versuchen Schnittstellen für alle möglichen Eventualitäte anzubieten.
11 Architectural Patterns / Software-Architektur zu 11 Mustern zur Umsetzung Fehler toleranter Software
Überlegen Sie sich, welche Probleme bei der Regelung des Spiegels auftreten und wie diese durch Umsetzung der nachfolgenden Pattern eventuell behoben werden könnten:
Nr. | Pattern (engl.) | Muster (deu.) | Zweck |
---|---|---|---|
1 | Units Of Mitigation | Elemente zur Abschwächung / Besänftigung | Realisierte Strategien, um beispielsweise mit Überlastung umzugehen. Redundanz, Rollback, Recovery Blocks... |
2 | Correcting Audits | Korrigierende Betriebsprüfung | Überprüfung, ob Daten oder Strukturen korrumpiert sind und nötigenfalls deren Wiederherstellung. |
3 | Redundancy | Redundanz | Verfügbarkeit mehrerer Komponenten, die die gleichen Aufgaben übernehmen können. |
4 | Recovery Blocks | Regenerierungs-Blöcke | Zeitliches Hinternanderschalten von Blöcken, die die gleiche Aufgabe auf unterschiedliche Weise versuchen zu lösen. Versagt ein vorangehender Block, wird sein Nachfolger mit der gleichen Aufgabe betraut, versagt dieser, kommt dessen Nachfolger an die Reihe. |
5 | Minimize Human Intervention | Minimierung menschlicher Einmischung | Viele Fehler werden noch schlimmer, wenn durch Menschen in unsachgemäßer Weise interveniert wird. |
6 | Maximize Human Participation | Maximierung menschlicher Anteilnahme | Das System sollte Methoden bereithalten, die es Experten erlauben, an der Beseitigung von Fehlern mitzuwirken. |
7 | Maintenance Interface | Wartungsschnittstelle | Das System sollte eine Wartungsschnittstelle bereitstellen. |
8 | Someone in Charge | Aufsichtsführung | Zu jedem Modul und dessen Aktionen sollte es ein beaufsichtigendes Element geben. |
9 | Escalation | Eskalation | Wenn die üblichen Korrekturmethoden versagen, sollte ein Konzept für eine nächst höhere Eskalationsstufe greifen und danach eine weitere usw. |
10 | Fault Observer | Fehler Beobachter | Das System sollte Fehler automatisch korrigieren, jedoch sollte dies ggf. auch kenntlich gemacht werden. Mitgeschriebene Fehler sollten an passende Observer weitergeleitet werden. |
11 | Software Update | Software Aktualisierung | Entwerfe Dein System so, dass Software Updates vorgesehen sind. Se sollten im produktiven Betrieb möglich sein. |
Tabelle 0-3: Software-Architektur-Muster für Fehler tolerante Software.
Weitere englische Begriffe
englisch | deutsch |
---|---|
Reliability | Ausfallsicherheit |
Mitigation | Abschwächung/Besänftigung |
Recovery | Erholung/Rettung |
Tradeoff | Austauschbeziehung |
Mindset | Denkweise |
Coverage | Absicherung |
availability | Betriebsbereitschaft |
Tabelle 0-4: Weitere englische Begriffe.