Skip to main content

アクティブなオブジェクトとは何ですか?

computerコンピュータープログラミングとエンジニアリングでは、アクティブオブジェクトは、マルチスレッドまたは並行システムで常に一部のサービスが常に利用できるようにするために使用できるデザインパターンの一種です。アクティブなオブジェクトは、外部オブジェクトを実行することを強制せずに外部オブジェクトから入力を受信および処理できるようにメカニズムを実装するオブジェクトです。また、このメカニズムにより、同時に実行される可能性のある多くのオブジェクトが、同時プロセスが停止してアクセスを待つ必要がある長いブロッキング時間の可能性なしにアクティブオブジェクトを使用することができます。これは、プロキシと呼ばれる公開されたインターフェイスにアクティブオブジェクトをラップし、オブジェクト内にタイプのキューシステムを実装するため、メッセージが後で処理するために保存されることによって実現されることによって実現されます。これにより、オブジェクトがアクティブオブジェクトにメッセージを送信し、アクティブオブジェクトがメッセージを処理し、結果の呼び出しオブジェクトに通知するまで処理を継続するデザインパターンが作成され、それに応じて状態を更新できます。、通常のオブジェクトはパッシブオブジェクトと呼ばれる場合があります。単純なプログラムの例では、パッシブオブジェクトがチャットサーバーリレーとして機能している可能性があります。チャットサーバーリレーでは、リモートオブジェクトがパッシブオブジェクトに連絡して、サーバー上の他のすべての人にメッセージを送信します。パッシブサーバーオブジェクトがリモートオブジェクトからチャットメッセージを受信するときはいつでも、リクエストをすぐに処理し、すぐに出力を送信する必要があります。その間、リモートオブジェクトはプロセスが完了するまで独自の実行を停止します。プログラム内で異なるスレッドを作成すると、実行ブロックの問題を解決できますが、同期の問題を開始します。また、別のスレッドで実行されているプロキシとして知られるある種のインターフェイスに包まれます。リモートオブジェクトがサーバーオブジェクトにチャットメッセージを送信するようにする場合、プロキシオブジェクトに連絡し、必要なすべての情報に渡され、待機する代わりに通常の実行状態に戻ります。リモートオブジェクトからの情報は、アクティブなオブジェクトが処理するためにキューに渡されるというメッセージに情報を提供します。この時点で、プロキシインターフェイスとリモートオブジェクトの両方が自由に実行を続け、ブロックされていません。一方、アクティブオブジェクトは、キューを空にしたままにして、各入ってくるメッセージを処理するように機能します。呼び出しオブジェクトがアクティブオブジェクトによっていくつかの情報を返す必要がある場合、コールバック構造を使用して、リモートオブジェクトに状態の変更を通知できます。