[Recently created (10/1996). Click here to go to the next FAQ in the "chain" of recent changes]
順番に実行されねばならない一連のタスクを実行するアプリケーションは非同期通信の利点は得られません。短時間のリモートオペレーションしかおこなわないアプリケーションは、ほとんど非同期通信を必要としません。非同期通信を使うと、アプリケーションはタスクの終了を待たずに次のタスクを実行することができます。どんな順番で実行されてもよい幾つかのタスクを持つアプリケーションはしばしば分散非同期通信の利点を得ることができます。長時間の遠隔オペレーションを呼ぶアプリケーションにとってはこのことはもっと重要です。非同期通信の利点を得るためには、アプリケーションはリクエストを発行した後、レスポンスが帰ってくる前に幾つかのタスクの実行ができなければなりません。そのタスクは、次のユーザ入力を促す処理かもしれないし、情報を表示する処理かもしれないし、次のリモートオペレーション呼出しかもしれません。典型的な非同期通信の候補としては、幾つかの長時間データベース検索や複雑な計算を必要とするアプリケーションです。
Back to the top of section [18]
[Recently created (10/1996). Click here to go to the next FAQ in the "chain" of recent changes]
最も低いレベルでCORBAは2つのモードの通信をサポートします:
最も低いレベルで、CORBAの遅延同期通信はある程度の非同期通信を可能にします。レスポンスのポーリングは非同期通信の単なる一つの形態です。他のもっと複雑な非同期通信はCORBAの最も低レベルの上にアーキテクチャを開発することによってのみ達成されます。
Back to the top of section [18]
[Recently created (10/1996). Click here to go to the next FAQ in the "chain" of recent changes]
複数の並行タスクの実行を行いたいアプリケーションは、複数の非同期や遅延同期リクエストの代わりにマルチスレッドが使用できます。プロセスをまたがったオペレーションの分散が並行処理を可能にするのと同様に、異なるスレッドでタスクを実行するのも並行処理を可能にします。分散はネットワークをまたがった並行処理をサポートし、スレッド処理はある一つのマシン内の並行処理をサポートします。並行分散リクエストの実行が必要なアプリケーションは、異なるスレッドでリクエストを発行することもできますし、非同期リクエストを発行することもできます。スレッドを使用すると、開発過程において複雑な同期問題が追加されます。
Back to the top of section [18]
[Recently created (10/1996). Click here to go to the next FAQ in the "chain" of recent changes]
CORBAは遅延同期リクエスト/レスポンスをサポートしていますが、コールバックを引き起こすレスポンスを持つ分散リクエストは直接にはサポートしていません。アプリケーションは、コールバックを引き起こすレスポンスによって、分散オブジェクト上のオペレーションを実行し、コールバックをそのレスポンスと関係づけ、他の処理を続けることができます。サーバがレスポンスを返した時、関係づけられたコールバックは元々のリクエストの呼び元で自動的に実行されます。
Back to the top of section [18]