[Glue!] Automatic data update & condition monitoring


エージェントによっては、ある名前の値が期待する一定の値になったかどうか、 あるいは幾つかの名前の値の間に一定の関係が成立したかどうかだけを問題にする場合もある。 ある条件が成立した時にメッセージを送らせたい場合には、 任意の名前に対して計算すべき演算式を IfTriggered 属性に、 どの名前の値が変更された時にその演算式を計算し直せば良いか を指定する名前のリストを TriggeredBy 属性の値として指定し、 さらにその名前に対して自分への変更通知要求を登録する。

このようにすると、 TriggeredBy 属性の値に列挙されたすべての名前の Triggers 属性に、 IfTriggered 属性を設定した名前が追加されて、 順方向の依存リストが生成される。

この状態で、 TriggeredBy 属性の値のうちのどれかの値が変化すると この名前に対してトリガがかかり、 演算式の値が計算されてその結果が名前の値とされる。 ここでもし新しい値が古い値と異なっているなら、 変更通知を要求するエージェントが探され変更通知が送られるので、 当初のエージェントは与えた条件が成立した時にその通知を受け取ることができる。

 [M.T. HomePage]  [written & copyrighted by Masayuki Takata]