ヘッダーをスキップ
Java Platform, Standard Edition Javaリモート・メソッド呼び出しAPIガイド
リリース10
E94982-01
 

 

Java Platform Standard Edition

Javaリモート・メソッド呼び出しAPIガイド

リリース10

E94982-01(原本部品番号:E92446-01)

2018年3月

概要

Java Remote Method Invocation (Java RMI)を使用すると、Javaで分散アプリケーションを作成できます。

RMIでは、おそらく異なるホスト上にある、別のJava仮想マシン(JVM)上で実行しているリモートJavaオブジェクトのメソッドを呼び出すことができます。RMIは、オブジェクトの直列化を使用してパラメータを整列化および非整列化します。また、型を切り捨てないため、真のオブジェクト指向の多相性をサポートします。

RMIのセキュリティの推奨事項

RMIアプリケーションのセキュリティを向上させるには、次の推奨事項に従ってください。

  • シリアライズ・フィルタリングを参照し、示されたベスト・プラクティスに従ってアプリケーションを保護します。
  • Secure Coding Guidelines for Java SEに従います。

  • クライアントまたはサーバーでRMIを使用するときには、セキュリティ・マネージャを実行することを確認します。セキュリティ・マネージャを参照してください。

  • 妥当なセキュリティ・ポリシーを設定します。たとえば、RMIで通信するホスト間のみにSocketPermissionを付与して、listen、accept、connectおよびresolve動作を許可します。セキュリティ・ポリシーでAllPermissionは付与しません。Java Development Kitでのアクセス権およびデフォルトのPolicyの実装とポリシー・ファイルの構文を参照してください。

  • ローカル・ホストのJVM間の通信にのみRMIが使用されている場合は、通信をローカルに制限します。このためには、適切なソケット・アクセス権をセキュリティ・ポリシー・ファイルに指定します。または、RMIのAPIを直接使用してローカル・ホストのみに接続を制限できます。RMISocketFactoryクラスを参照してください。

  • java.rmi.server.useCodebaseOnlyプロパティの値がTrueであることを確認します。デフォルトでは、java.rmi.server.useCodebaseOnlyプロパティはTrueに設定されています。このプロパティをFalseに設定すると、リモート・コードのローディングが有効になり、システムに対するセキュリティ・リスクのレベルが高まります。

  • Secure Sockets Layer (SSL)/Transport Layer Security (TLS)経由でRMIを実行し、サーバーとクライアントの両方の認証をリクエストします。これは、カスタム・ソケット・ファクトリを使用すれば可能です。アプリケーションで、リモート・オブジェクトをエクスポートし、必要なタイプのソケット(SSLソケットなど)を作成するカスタム・ソケット・ファクトリを使用できます。この手法を使用すると、アプリケーションはデフォルトのソケット通信のかわりに、SSLソケット通信を使用できます。次を参照してください。

ドキュメントのアクセシビリティについて

Oracleのアクセシビリティについての詳細情報は、Oracle Accessibility ProgramのWebサイト(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc)を参照してください。

Oracle Supportへのアクセス

サポートをご購入のOracleのお客様は、My Oracle Supportにアクセスして電子サポートを受けることができます。詳細情報は(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info) か、聴覚に障害のあるお客様は (http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs)を参照してください。


Java Platform, Standard Edition Javaリモート・メソッド呼び出しAPIガイド, リリース10

E94982-01

Copyright © 1993, 2018, Oracle and/or its affiliates.All rights reserved.

Java Remote Method Invocation (RMI)は、Javaプログラミング言語で記述されたプログラム間のリモート通信を実現します。

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクル社までご連絡ください。

このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs. No other rights are granted to the U.S. Government.

このソフトウェアまたはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアまたはハードウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用する際、このソフトウェアまたはハードウェアを安全に使用するために、適切な安全装置、バックアップ、冗長性(redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、オラクル社およびその関連会社は一切の責任を負いかねます。

OracleおよびJavaはOracle Corporationおよびその関連企業の登録商標です。その他の名称は、それぞれの所有者の商標または登録商標です。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXは、The Open Groupの登録商標です。

このソフトウェアまたはハードウェア、そしてドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。適用されるお客様とOracle Corporationとの間の契約に別段の定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。適用されるお客様とOracle Corporationとの間の契約に定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても一切の責任を負いかねます。