次の方法で共有


IBM i 分散プログラム呼び出し

IBM i リモート・コマンドおよび分散プログラム呼び出し (DPC) プログラミング・モデルを使用すると、ほとんどの IBM i アプリケーションは、要求/応答方式 (クライアント側からのみ開始) で TI と対話し、最小限の変更を加えることができます。 DPC は、IBM i 上のプログラム間の統合をサポートする文書化されたプロトコルであり、TCP/IP ネットワーク・プロトコルを使用して PC ベースのアプリケーションから簡単にアクセスできます。

このインターフェイスは、ホストによって開始される処理 (HIP) をサポートしていません。IBM i 統合は、クライアント開始呼び出し専用です。

次の図は、クライアント、デフォルトの DPC サーバー、および IBM i トランザクション・プログラムの間で発生するワークフローをまとめたものです。 かっこ内の数値は、イベントが発生するおおよその順序を示します。 この図の後に、イベントの詳細な説明を示します。

IBM i モデル・フローを示す画像。
IBM i モデル・フロー

IBM i DPC プログラミング・モデルの概要ワークフロー図

IBM i DPC プログラミング モデルは次のように動作します。

  1. アプリケーションは、コンポーネント サービスまたは .NET Framework で構成された TI コンポーネント内のメソッドを呼び出します。

  2. TI ランタイムは、TI オートメーション プロキシを呼び出します。

  3. アプリケーションが COM+ コンポーネントの場合、TI オートメーション プロキシは次のようになります。

    1. TI デザイナーによって以前に作成されたタイプ ライブラリを読み取ります。

    2. 自動化データ・タイプを IBM i RPG データ・タイプにマップします。

      アプリケーションが .NET Framework アセンブリの場合、TI オートメーション プロキシは次のようになります。

    3. TI デザイナーによって以前に作成されたアセンブリとメタデータを読み取ります。

    4. .NET Framework データ型を IBM i RPG データ型にマップします。

      その後、TI Automation プロキシは次の操作を行います。

    5. 変換ルーチンを呼び出して、アプリケーション・データを IBM i RPG タイプに変換します。

    6. RPG PLIST を表すパラメーター化メッセージ・バッファーをビルドします。

    7. メッセージを IBM i DPC トランスポート・コンポーネントに渡します。

  4. TI TCP トランスポートは、IBM i コンピューターのインターネット・プロトコル (IP) アドレスとサーバーのポート・アドレスを使用して、DPC サーバー・システムに接続要求を送信します。 その後、TI TCP トランスポートは応答を待機します。

  5. IBM i 上の DPC サーバーはセッション要求を受け入れ、受信を発行します。 その後、DPC サーバーはサーバーの開始要求を待機します。

  6. TI オートメーション プロキシは、DPC サーバーに開始サーバー要求を送信し、受信を発行します。 その後、TI TCP トランスポートはサーバーの開始応答を待機します。

  7. DPC サーバーは、サーバーの開始要求を処理し、サーバーの開始応答を送信してから、受信を発行します。 その後、DPC サーバーは交換属性要求を待機します。

  8. TI ランタイムは、サーバーの開始応答を処理し、属性要求を送信し、受信を発行します。 TI ランタイムは、exchange 属性の応答を待機します。

  9. DPC サーバーは、交換属性要求を処理し、交換属性の応答を送信してから、受信を発行します。 その後、DPC はリモート プログラム呼び出し要求を待機します。

  10. TI ランタイムは、交換属性の応答を処理し、リモート・プログラム呼び出し要求の直後にリモート・プログラム呼び出し応答と変換されたデータを送信します。

  11. DPC サーバーは要求を処理し、リモート・プログラム呼び出し応答の後にリモート・プログラム呼び出しパラメーターとデータを送信します。

  12. TI オートメーション プロキシは応答データを受信し、応答を処理します。 TI オートメーション プロキシ:

    1. TCP トランスポート コンポーネントからメッセージを受信します。

    2. メッセージ バッファーを読み取ります。

      アプリケーションが COM+ コンポーネントの場合、TI オートメーション プロキシは次のようになります。

    3. IBM i データ・タイプを自動化データにマップします。

    4. 変換ルーチンを呼び出して、IBM i RPG タイプをアプリケーション・データに変換します。

      アプリケーションが .NET アセンブリの場合、TI オートメーション プロキシは次のようになります。

    5. IBM i データ型を .NET Framework データ型にマップします。

    6. 変換ルーチンを呼び出して、IBM i RPG タイプをアプリケーション・データに変換します。

  13. TI ランタイムは、変換されたデータを、メソッドを呼び出した COM または .NET Framework アプリケーションに送り返します。

    メッセージの最大サイズは、フィールド ヘッダーとデータを含めて 32,767 バイトです。

    RMTPGMCALL は、IN または OUT として、または任意の組み合わせで IN/OUT として最大 35 個のパラメーターを渡すことができます。

    Host Integration Server には、IMS Connect プログラミング モデルを実装する方法を示すサンプル コードが含まれています。 サンプル コードは、 \installation ディレクトリ\SDK\Samples\AppInt にあります。 Microsoft Visual Studio を起動し、使用するチュートリアルを開き、 Readme の指示に従います。

    IBM ie のメインフレームおよび書き込みサーバー・アプリケーションの構成については、ILE RPG/400 プログラマー・ガイド・バージョン 4 (IBM ドキュメント #SC09-2507-02) および ILE RPG/400 リファレンス・バージョン 3 (IBM ドキュメント #SC09-2077-01) を参照してください。

こちらもご覧ください

トランザクション インテグレーター コンポーネント
RPG から Automation へのデータ型の変換
自動化から RPG へのデータ・タイプの変換
IBM i セキュリティー
COMTIContext インターフェイス
TI ランタイム
適切なプログラミング モデルの選択
プログラミング モデル