同期サーバの概要
同期サーバは、LN 上でイベントメッセージ発行を担当します。イベントメッセージの発行は、ビジネスオブジェクトに対する同期オブジェクトを作成することにより行われます。同期オブジェクトは、構成要素と属性の選択、およびフィルタ (任意) により拡張されるビジネスオブジェクトの選択です。同期オブジェクトにより、実行時に指定ビジネスオブジェクトの同期をとることができます。
同期サーバの関数
LN が別のアプリケーションと同期をとる場合、LN 側のデータソースは実際にはテーブルフィールド一式となります。ただし、LN テーブルには直接アクセスできません。LN テーブルにアクセスするには、ビジネスオブジェクトを使用します。テーブル内のフィールドを読み取るには、ビジネスオブジェクトのメソッドを呼び出します。このメソッドは、ビジネスオブジェクトの属性を処理します。ビジネスオブジェクトの属性はテーブルフィールドにマッピングされますが、フォーマットや計算が含まれる場合もあります。
同期サーバは、次の処理を行います。
イベントの検出
ビジネスオブジェクトの基礎を構成するバックエンド構成要素に対する変更が検出されます。変更はテーブルの特定の列に適用され、その列がクライアントが変更通知を要求するビジネスオブジェクトの属性にマッピングされていると、同期サーバは変更が発生したことを検出します。LN では、監査機能を介して変更が検出されます。
イベントのフィルタ
「create」、「change」、または 「delete」 イベントは、リスト (List) および表示 (Show) で使用するような属性値を基準としてフィルタ処理されます。「create」 および 「delete」 イベントは、渡されるかスキップされます。ただし、「change」 イベントの場合は、イベントが渡されても変更される場合もあります。属性の元の値 (変更前) がフィルタに一致しても、現在の値 (変更後) が一致しない場合、イベントは 「change」 イベントではなく 「delete」 イベントとして渡されます。同様に、属性の元の値 (変更前) がフィルタに一致しなくても、現在の値 (変更後) が一致する場合、イベントは 「create」 イベントとして渡されます。
イベントの総計
データベースレベルの変更イベント (テーブル列) はビジネスオブジェクトの変更イベント (構成要素属性) に変換されます。デフォルトでは、属性の変更が総計され、構成要素内の関連データがすべて書き出されます。したがって、属性が 1 つ変更された場合でも、それにより同じ構成要素内のその他の属性の内容も書き出されます。総計プロセスでは、変更された構成要素の属性が追加されるだけではなく、その属性の親構成要素も追加されます。このデフォルトの動作を変更するには、関連する構成要素全体のすべてのデータではなく、特定の属性だけを書き出すことを構成時に指定するか、他の未変更の子構成要素のデータも含めるかを指定します。たとえば、販売オーダラインテーブルで数量を変更した場合、(未変更の) ヘッダと変更済みのオーダラインで構成される販売オーダオブジェクトを含む XML 文書に変換されます。
イベント発行
変更イベントを記述した XML 文書は、適切な方法でイベントを処理する役目の外部の構成要素に対して書き出されます。この構成要素は、データをさらにブローカ製品に入力する、またはファイルシステム上のファイルに保存する、または単にメッセージキューに転送するなどの処理を行います。宛先はいわゆる bus component 経由で指定されます。この宛先は、実際にイベントメッセージを受信するリスニングパーティを示しています。
発行メソッドと同期サーバとの関係
技術的には、変更発行 (PublishChanges) 要求は同期サーバで同期オブジェクトに変換されます。つまり、同期オブジェクトは通常マニュアルで設定する必要がありません。ただし、同期サーバのユーザインターフェイスを使用して、同期オブジェクトの設定を調整することができます。
すでに存在する同期オブジェクトに変更発行 (PublishChanges) 要求を受信すると、既存の設定 (選択およびフィルタ) は更新されます。
変更非発行 (UnpublishChanges) 要求を受信すると、対応する同期オブジェクトは削除されます。