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 Automation プロキシが呼び出されます。

  3. アプリケーションが COM+ コンポーネントの場合、TI Automation プロキシでは次の操作が実行されます。

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

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

      アプリケーションが .NET Framework アセンブリの場合、TI Automation プロキシでは次の操作が実行されます。

    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 Automation プロキシでは、DPC サーバーにサーバー起動要求が送信され、受信を発行します。 その後、TI TCP トランスポートでは、サーバー起動の応答を待機します。

  7. DPC サーバーでは、サーバーの起動要求が処理され、サーバー起動の応答を送信して、受信を発行します。 その後、DPC サーバーでは、属性の交換要求を待機します。

  8. TI ランタイムでは、サーバー起動の応答が処理され、属性の要求を送信して、受信を発行します。 その後、TI ランタイムでは、属性交換の応答を待機します。

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

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

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

  12. TI Automation プロキシでは、応答データが受信され、処理されます。 TI Automation プロキシでは次の操作が実行されます。

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

    2. メッセージ バッファーの読み取り

      アプリケーションが COM+ コンポーネントの場合、TI Automation プロキシでは次の操作が実行されます。

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

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

      アプリケーションが .NET アセンブリの場合、TI Automation プロキシでは次の操作が実行されます。

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

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

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

    注意

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

    注意

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

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

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

参照

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