SWIFTNet クライアントおよびサーバー
SWIFT では、クライアントとサーバーという用語を使用して送受信について説明します。 SWIFT クライアントは、SWIFTNet Link (SNL) を呼び出して SWIFTNet 経由の通信を開始するプロセスです。 BizTalk Serverでは、これは送信アダプターと呼ばれます。 SWIFT サーバーは、SWIFTNet 経由でトラフィックが着信したときに SNL によって呼び出されるプログラムです。 BizTalk Serverでは、これは受信アダプターと呼ばれます。
SWIFT クライアントとサーバーをビジネス クライアントとサーバーと混同しないでください。 たとえば、クライアント (organization) は、サーバー (organization) によって提供されるサービスに依存します。 サーバー (organization) がクライアント (organization) との通信を開始する場合は、SNL クライアント アプリケーションを使用する必要があります。また、クライアント (organization) には、受信トラフィックを受信するための SNL サーバー アプリケーションが必要です。 これについては、次の図で説明します。
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 API DLL 間のすべての呼び出しは、標準の C 呼び出し規則同期関数呼び出しです。
参照
FileAct および InterAct アダプターのアーキテクチャを理解する
SWIFT 送信アダプターのアーキテクチャ
SWIFT 受信アダプターのアーキテクチャ