プロセス・フロー

拡張モジュールは多数のサービスおよびコールバック関数を呼び出して、その処理を実行します。呼び出される実際の関数は、モジュールが実行するために必要とする処理によって異なります。

一般的なモジュール実行のシーケンス・ダイアグラムを次の図に示します。

図 1. 一般的なプロセス・フロー
一般的なプロセス・フロー

ピアとノードの相互作用のブロックを以下の図に示します。

図 2. 一般的なピアとノードの相互作用のブロック
一般的なピアとノードの相互作用のブロック

一般的な実行ブロックを以下の図に示します。

図 3. 一般的な実行ブロック
一般的な実行ブロック

:

  • モジュールは、サーバー開始時に IBM® SPSS® Modeler サーバー・プロセスにロード、またはそのサービスが最初に要求されるときはオンデマンドで後にロードされる場合があります。
  • モジュールがロードされると、ホストは サービス関数 clemext_initialise を一度起動します。
  • モジュールが起動および初期化されると、ホストはサービス関数 clemext_getModuleInformation を使用してモジュールをクエリーする場合があります。
  • モジュールがロードされた後、そのサービスはモジュールが提供するピア・オブジェクトによって起動されます。モジュール内で、ピア・オブジェクトは、ホストのノード・オブジェクトの対としてサービス関数 clemext_create_peer によって作成され、ホスト・アプリケーションによる指示に従ってタスクの実行を管理します。同じタイプの複数ピア・オブジェクトが存在し、それを一度のプロセスで同時に実行することが可能です。
  • ピア・オブジェクトが作成されると、サービス関数 clemext_peer_configure で設定できます。
  • この時点で、clemext_node_getDataModelclemext_node_getParameters など、クライアントから情報を得るためにコールバック関数を実行することがあります。
  • IBM SPSS Modelerclemext_peer_getDataModel サービス関数を用いて、ピア・インスタンスから出力データ・モデルを取得します。
  • ピア・インスタンスの実行は clemext_peer_beginExecution サービス関数で開始します。
  • clemext_peer_nextRecord サービス関数は、ピアの結果セットにおいてフォーカスを次のレコードに移動します(あるいは関数が初めて呼び出される場合は、最初のレコードに移動)。この後に現在のレコード内で特定フィールドの値を返す clemext_peer_getRecordValue サービス関数が続きます。
  • 反復コールバック関数 clemext_iterator_nextRecord および clemext_iterator_getRecordValueCLEF モジュールで呼び出し、入力レコードで並べて特定のフィールド値を返すことができます。
  • ピア・インスタンスの実行は clemext_peer_endExecution サービス関数で終了します。
  • ピア・インスタンスは clemext_destroy_peer を呼び出すと削除されます。
  • モジュールがアンロードされる前に、ホストはサービス関数 clemext_cleanup を起動します。
  • モジュールはサーバー・プロセスがシャットダウンするとき、またはそれより早くサービスがもう必要なくなったときにアンロードされる場合があります。