分散型リアルタイムシステムの要点は何ですか?
分散リアルタイムシステムは、問題のドメインまたはソリューションのドメイン(あるいはその両方)によって課せられる2つの難しいプロパティのセットを構成します。
分散
分散システムは、通信メカニズムを介して、多数の独立したコンピューティングエンティティをローカルプロパティにリンクします。結果として、アルゴリズムおよびその他の設計コンポーネントは、同期性と障害モデルを考慮に入れる必要があります。分散コンピューティングの懸念に関する有用な要約(完全に客観的ではない)は、ドイツの分散コンピューティングの8つの落とし穴に含まれています。(この便利な説明を参照してください。)これらはすべて、(リアルタイムの)分散設計で検討するのに役立ちます。それぞれが、重要な設計と実装の懸念事項の出発点です。
- ネットワークは信頼できます
- レイテンシーはゼロです
- 帯域幅は無限大です
- ネットワークは安全です
- トポロジーは変わりません
- 管理者が1人います
- 輸送費はゼロです
- ネットワークは均質です
リアルタイム
リアルタイムシステムとは、運用完了の適時性がシステムの機能要件と正確性の尺度の一部であるシステムです。(これを明確にするために、ここでSOの質問を開きました。)実際には、ほとんどすべてのシステムが「ソフト」リアルタイムと見なされる可能性があります。通常、運用の適時性に対する暗黙の要件/期待があります。時間の制約が満たされていない場合に正しくないシステムのために、リアルタイムの用語を予約します。これは、ソフトまたはハードで修飾される場合があります。上記の誤謬に要約されている懸念の多くは適時性と交差していることに注意してください。(リアルタイムタグウィキも参照してください)
RT(およびDRT)システムは、「決定論的」(または従来はハードリアルタイム)という極端な要件の連続体に存在することに注意してください。ただし、多くのシステムには非常に重要な時間制約がありますが、それでも決定論的ではありません。特にDRTシステムのコンテキストでは、アクティビティの緊急性の概念をアクティビティの優先度から分離することも役立ちます。遅延と障害が現実的で重要な要因である大規模なシステムでは、適時性やその他の設計要件に影響を与えるコンピューティングおよび通信リソースの明示的な管理がより重要になり、これら2つの次元の分離が重要になります。
リアルタイムで分散して作成
- 明示的な適時性の要件—要件とは何か、アクティビティにどのようにマッピングされるか、真のノード間適時性の要件、設計と実装で時間の制約を明示的に表す方法、障害を検出、報告、および回復する方法?
- 時間の同期—クロックの同期を実現するための要件とメカニズムは何ですか?クロック同期に関するWiki ; 多くのアプリケーションはNTPのみを必要とします。より厳しい要件では、特別なハードウェア(IRIG-Bなど)またはアプローチが必要になる場合があります。
- 同期要件—同期の前提条件とシステム同期の要件は何ですか?これはクロック同期に接続されていますが、同一ではありません。DougJensenの正式なモデルに関するいくつかの考え; 非同期システムと同期に関するウィキペディア; 部分的なイベントの順序に関するSOの質問;
- デザインパターン—可動部品とは何ですか?また、それらは輸送全体でどのように関係していますか?(特に、これらの関係は適時性にどのように影響しますか?)
- ミドルウェア—システムの分散された側面をどのようにエンコードしますか?例としては、リアルタイムCORBA(OISの優れたページがあります)やDDSなどがあります。
- 時間の制約—システムで時間の制約をどのように文書化し、測定し、実施しますか?
- 部分的な障害—リアルタイムシステムには通常、信頼性の要件があります。分散システムのユニークな側面の1つは、真のクラッシュ/通信障害または障害として処理する必要のある適時性エラーのいずれかが原因で、「部分的」障害と呼ばれるクラス全体の障害が発生する可能性があることです。 フェイルオーバーアプローチに関するSOの質問;
- RTOS —どのリアルタイムオペレーティングシステムが採用されますか?
いくつかの参考文献
DRTシステムのかなり伝統的なプレゼンテーションについては、Kopetzの本をご覧ください。よりダイナミックな見方をするには、ジェンセンの作品と彼のウェブサイトをお勧めします。Javaの領域では、優れた「信頼性の高い分散プログラミング入門」を読むことをお勧めします。適時性の問題の全領域に対処するわけではありませんが、特に明確な方法で部分的な障害に対処します。
最近、(信頼性の低い)障害検出器の概念が有用な同期構造として浮上し、DRTシステムの有用な理論的推論と実用的な定式化/設計/構築技術を可能にしました。このトピックに関する独創的な論文は、Aguilera、Le Lann、およびTouegによる、リアルタイムのフォールトトレラントシステムに対する高速障害検出器の影響についてです。この論文は重いそりですが、知的投資のすべてのオンスに報います。