作業域サービスの概要
作業域サービスは、情報を引数として明示的に受け渡すか、 リモート・メソッドに暗黙的に受け渡します。
分散コンピューティングの基礎の 1 つに、1 つのプロセスから他のプロセスへの情報の受け渡しの機能があります。 これは通常、リモート・メソッドに対する引数の形式で行われます。 アプリケーション・レベルのソフトウェアがミドルウェア・サービス上に書き込まれる場合、 多くのサービスは、アプリケーションのリモート呼び出しでパスされる情報のほかにもさらに多くの情報を必要とします。 このようなサービスは、リモート要求で渡される引数に加え、機密情報の暗黙的な伝搬を使用する場合が多くあります。こうした機能を使用する代表的なユーザーとして、セキュリティー・サービスとトランザクション・サービスの 2 つがあります。 セキュリティー認証またはトランザクション・コンテキ ストは、ユーザーあるいはアプリケーション開発者が知ることなく、また介入することもなく渡されます。 こうした情報が暗黙的に伝搬されるということは、 アプリケーション開発者がメソッド起動時に情報を手動で渡す必要がないということになります。 これにより、開発時のエラーは起こりにくくなり、情報を要求するサービスもアプリケーション開発者 にその情報を公開しなくてすみます。 セキュリティー・クレデンシャルなどの情報の機密を保持できます。
作業域サービスもアプリケーション開発者に同様の機能を提供します。アプリケーションは作業域を作成して、作業域に情報を挿入し、 リモート呼び出しを実行します。 作業域は各リモート・メソッド呼び出しと一緒に伝搬されるので、すべてのメソッドの定義中に、必要とされる引数を含めておく必要がなくなります。 サーバー・サイドのメソッドは、必要に応じて作業域の情報を使用することも、無視することもできます。 サーバーのメソッドがクライアントから作業域を受け取り、続いて他のリモート・メソッドを 呼び出す場合、その作業域はリモート要求と一緒に、透過的に伝搬されます。 作業域を作成したアプリケーションは作業域が用済みになると、その作業域を終了します。
- 広汎性: 情報がアプリケーション内の大部分のメソッドで使用されるか。
- サイズ: 情報が使用されない場合でも、その情報を送信するのは適切か。
情報に十分な広汎性があり、その情報を非常に簡単かつ効率的にどこでも使用可能にすることができる場合、 アプリケーション・プログラマーは 作業域サービスを使用して、コードのプログラミングと保守を単純化できます。 引数を、毎回、引数リストに入れる必要はありません。 値を作業域に入れ、その作業域を自動的に伝搬させる方がより簡単です。 これは、単に値をパスするだけで、値の変更は行わないメソッドに対して特に当てはまります。 伝搬された情報を使用しないメソッドは、その情報を単に無視します。
作業域はどのような種類の情報も保持でき、 またデータを任意の数の独立した小部分に分けて保持することができ、 そのそれぞれをプロパティーとして保管できます。
管理コンソールの作業域サービスを使用して、UserWorkArea 区画を構成します。UserWorkArea 区画は、項目『UserWorkArea 区画へのアクセス』に記載されているように、JNDI ネーミングの「java:comp/websphere/UserWorkArea」という名前で使用可能な区画です。 UserWorkArea 区画は、使用不可に設定されていない場合に、自動的に作成されるデフォルトの作業域区画であり、JNDI ネーミングを介してすべてのユーザーが使用可能です。 管理コンソールの「作業域サービス」パネルで UserWorkArea 区画に設定された構成オプションは、作業域区画サービスまたはその中で定義された区画に影響することはなく、またその逆も同様です。 例えば、「作業域サービス」パネルで使用可能オプションまたは使用不可オプションを選択しても、作業域区画サービスまたはその中の区画には影響しません。