次の方法で共有


SWIFTNet クライアントおよびサーバー

SWIFT では、クライアントとサーバーという用語を使用して送受信について説明します。 SWIFT クライアントは、SWIFTNet Link (SNL) を呼び出して SWIFTNet 経由の通信を開始するプロセスです。 BizTalk Serverでは、これは送信アダプターと呼ばれます。 SWIFT サーバーは、SWIFTNet 経由でトラフィックが着信したときに SNL によって呼び出されるプログラムです。 BizTalk Serverでは、これは受信アダプターと呼ばれます。

SWIFT クライアントとサーバーをビジネス クライアントとサーバーと混同しないでください。 たとえば、クライアント (organization) は、サーバー (organization) によって提供されるサービスに依存します。 サーバー (organization) がクライアント (organization) との通信を開始する場合は、SNL クライアント アプリケーションを使用する必要があります。また、クライアント (organization) には、受信トラフィックを受信するための SNL サーバー アプリケーションが必要です。 これについては、次の図で説明します。

クライアントとサーバー間の SWIFTNet リレーションシップ

SNL では、クライアント アプリケーションとサーバー アプリケーションの両方がコマンド プロンプトから開始された実行可能ファイルであると想定しています。 両方とも、実際の SNL インスタンス プロセスと通信する SNL API DLL にリンクします。

SNL クライアント アプリケーション

SNL クライアント アプリケーションは、以下で説明する SwCall API に依存します。 技術的には、一般的なクライアント アプリケーションは次のように記述できます。

Main:  
  Initialize SNL API  
  Repeat  
    Call SwCall API  
  Until shutdown  

SNL はプロセス ID でクライアント コンテキストを参照するため、SNL クライアント アプリケーションは専用プロセスで実行する必要があります。 SNL は、Tuxedo リソースを使用する呼び出しを SwCall に同期します。 その結果、SwCall を効果的に実行できるのは、一度に 1 つのクライアント スレッドだけです。

クライアントは同期通信モードをサポートしています。 つまり、SWCall の戻り値は、応答がサーバーから返されたときに発生します。 次の SwCall は、この戻り値の後にのみ実行できます。

SNL サーバー アプリケーション

SNL サーバー アプリケーションは、クライアント アプリケーションよりも少し複雑です。 サーバー アプリケーションは、SNL DLL へのブロッキング呼び出しを実行する前にコールバック関数を登録します。 技術的には、一般的なサーバー アプリケーションは次のように記述できます。

Main:  
  Initialize SNL API  
  Call SwRegisterSwCallback, registering the Callback function  
  Call SwServer, block and receive callbacks  
  
Callback(Request):  
  Process Request  
  Return Response  

サーバー アプリケーションは、コールバック関数内で SwCall API を呼び出すことができます。 場合によっては、必要な結果または応答を生成できるように SwCall を呼び出す必要があります。 ただし、サーバー アプリケーションはネットワーク経由で通信を開始することはできません。 サーバー アプリケーションをクライアント アプリケーションにすることはできません。

次の図では、 Initialize というラベルの付いた呼び出しは、複数の呼び出しを必要とする SNL API 初期化プロセスの抽象化です。 SwCallback() というラベルの付いた呼び出しが複数回繰り返され、SwCall() というラベルが付いた呼び出しは省略可能です。

SNL Server 機能

サーバーと SNL API DLL 間のすべての呼び出しは、標準の C 呼び出し規則同期関数呼び出しです。

参照

FileAct および InterAct アダプターのアーキテクチャを理解する
SWIFT 送信アダプターのアーキテクチャ
SWIFT 受信アダプターのアーキテクチャ