たき火
ルールベースのシステムは、ランタイム検証(RV)/プログラム監視にとって自然なようです。仕様表記の観点からは、ルールベースのシステムは、ランタイム検証コミュニティが通常書き込む種類のプロパティを表現するのに非常に適しているように見えます。ルールシステムで記述された仕様には運用上のフレーバーがあり、視点によってはデメリットまたはデメリットと見なすことができます。操作上のフレーバーにより、仕様は宣言型時相論理や正規表現よりも長くなります。ただし、書くのは自然なことです。コアアイデアがマスターされると、プログラミングのようにルールを書くのは簡単です。より宣言的な仕様は、正しく理解するのが難しい場合があります。この観察結果は、時相論理式や正規表現としてよりも、ステートマシンとして重要なプロパティを定式化する方が簡単である可能性があるという観察結果に似ています。
JPLのローバーと宇宙船は、運用時にテレメトリストリームを生成します。テレメトリストリームは、基本的に、永続メモリのログとして地上に保存される一連のイベントです。ミッションオペレーションでは、これらのログが正しいことを自動チェックする必要があります。 LogFireは、これらのログをチェックするために使用できます。たとえば、LogFireを使用すると、運用エンジニアはローバーが正しい手順を実行することを自動的に確認できます。
LogFireはログファイルを読み込み、正式な仕様と照合します。仕様は、ルールベースの言語で作成できます。ルールベースの仕様言語は、Scalaプログラミング言語のAPIとして実装されています。これにより、ルールと従来のプログラミングを組み合わせることができるため、非常に強力な仕様言語になります。
ScalaでのAPIとしてのルールベース言語の定義は、そのような(内部)DSLの定義に対するScalaのサポートにより、DSL(ドメイン固有言語)のように見えます。よく知られているRETEアルゴリズムに基づくルールエンジンは、さらに、ルールエンジンが通常機能する長期的な事実とは対照的に、瞬間的なイベントの概念で拡張されています。最後に、インデックス作成方法により、データを運ぶイベントを処理するようにエンジンが最適化されました。
LogFireを使用すると、仕様パターンを簡単にエンコードしてルールを生成できます。仕様パターンを時相論理とタイムラインのフラグメントとして定義するのは比較的簡単です。そのインスタンスはルールに変換されます。興味深いニュアンスは、これらのテンプレートがデータパラメータ化されたイベントを許可することです。結果として得られた実装を、他の6つのランタイム検証およびルールベースのシステムと比較する実験が行われました。
NASAは、このソフトウェアのライセンスを自由に取得し、オープンソースプロジェクトで一般的に使用できるようにすることを目指しています。 NASAのライセンスコンシェルジュに連絡してください。このメールアドレスはスパムボットから保護されています。表示するにはJavaScriptを有効にする必要があります。または、ライセンスに関する話し合いを開始するには、202-358-7432までお電話ください。
センサー