Semantiken der Fehlertoleranz und Schichtenarchitektur
Eingeordnet in Informatik
Geschrieben am in
mit einer Größe von 2,78 KB
1. Semantik: "Es könnte sein"
Beispiele hierfür sind UDP oder CORBA-Methoden, die Ergebnisse zurückgeben. Es ist nicht sicher, ob ein Objekt ausgeführt wurde oder nicht. Dies gilt nicht für jede Maßnahme der Fehlertoleranz. Unterlassungsfehler können auftreten, wenn der Aufruf oder die Antwort verloren geht. Wenn der Server das Objekt nicht enthält, hätte die Fernbedienung keinen solchen Anspruch. Wenn ein Timeout gesetzt wird, könnte die Antwort nach dessen Ablauf (asynchron) eintreffen. Diese Semantik ist nützlich in Anwendungen, bei denen zwei gescheiterte Aufrufe toleriert werden.
2. Semantik: "Mindestens einmal"
Beispiele hierfür sind Beratungen oder SUN RPC. Die Ergebnisse bestätigen, dass das Verfahren mindestens einmal ausgeführt wurde, oder es tritt eine Ausnahme auf, nach der keine Ergebnisse vorliegen. Dies kann Broadcast-Nachrichten betreffen, die nicht ankamen. Je nachdem, ob der Fehler beim Senden an den Server oder beim Server selbst auftrat, können willkürliche Ausfälle entstehen (z. B. wird der Methodenaufruf zweimal ausgeführt). Diese Semantik ist gültig, wenn die Methode idempotent ist.
3. Semantik: "Höchstens einmal"
Beispiele hierfür sind TCP, Java RMI und CORBA. Hier wird garantiert, dass die Methode genau einmal ausgeführt wurde oder eine Ausnahme signalisiert, dass sie noch nicht ausgeführt wurde. Dies erfordert Maßnahmen zur Fehlertoleranz, um bei Unterlassungsfehlern keine fehlerhaften Wiederholungen zu erzeugen. Da die Methode nur einmal oder gar nicht läuft, können keine willkürlichen Entscheidungen getroffen werden.
Schichtenarchitektur
- Presentation Layer: Modul, Session Manager, Dialogue Manager, Anpassung und Validierung von Input, Channel-Adapter, Präsentationsvorlagen, Content Management.
- Business Layer: Operations Implementation, Business Services.
- Integration Layer: Data Access Manager, Access Services Manager Business, Manager für spezifische Anpassungen.
Synchrone Kommunikation und Multicast
Die synchrone Kommunikation erzeugt zusätzliche Garantien in Bezug auf die Reihenfolge der Auslieferung von Nachrichten bei der Verteilung von Multicast-Nachrichten:
- Integrität: Ein Prozess liefert jede Nachricht nur einmal. Wenn ein Prozess eine Meldung liefert, wurde sie von einem Mitglied seiner Sicht gesendet.
- Abkommen: Korrekte Prozesse liefern die gleichen Meldungen in jeder Sicht.
- Gültigkeit (Cliquen): Korrekte Prozesse liefern immer die Nachrichten, die sie selbst senden.
- Fehlerhafte Lieferung: Nachrichten, die sofort ausgeliefert werden, ohne Vorankündigung.