ビジネス・コンポーネントおよびワイヤ・プロトコルについて

Business Components for Javaフレームワークによって、層と層の間の通信に関する処理がすべて行われます。EJBまたはCORBAアーキテクチャに過度にプロジェクト・リソースを使用するかわりに、ローカルまたはWebモジュールにデプロイする場合と同様にアプリケーションを作成でき、フレームワークによって透過的にリモート・デプロイメントを処理できます。

層と層の間の通信について詳細まで知る必要はありませんが、リモート・デプロイメントの理解に役立つように、フレームワークでのリモート・デプロイメントの処理方法を次に簡単に説明します。

リモート・モードでのフレームワーク・メソッドのコール

ビジネス・コンポーネントをリモートにデプロイする場合、oracle.jbo.serverクラス(ApplicationModuleImplおよびViewObjectImplなど)はビジネス・ロジック層にのみ存在します。クライアントは、oracle.jbo.client.remoteのサブパッケージ内のクライアント側のクラスを使用して、ビジネス・コンポーネントのメソッドにアクセスします。たとえば、アプリケーション・モジュールのセッションBeanとしてビジネス・コンポーネントをデプロイする場合は、クライアントはoracle.jbo.client.remote.ejbパッケージを使用します。

クライアントが、リモートにデプロイされたビジネス・コンポーネントのインタフェースのメソッドをコールすると、クライアント・パッケージの実装クラスによってそのメソッドが実行されます。このオブジェクトは、ワイヤ・プロトコルを介して、ビジネス・ロジック層上のoracle.jbo.server.remoteのサブパッケージ(たとえばoracle.jbo.server.remote.ejb)内のクラスにコールを渡します。次に、このクラスは、oracle.jbo.serverの実装クラスにコールを渡します。

Figure that shows a client calling a method on an interface to remotely deployed business   components, as described in the preceding paragraph.

このような内部処理について考慮する必要はありません。クライアント・アプリケーションは、通常のJavaコールを使用してoracle.jbo.ApplicationModuleをコールします。

エクスポートされたメソッドのリモート・モードでのコール

リモートにデプロイしたフレームワーク実装クラスがクライアント層で利用できないのと同様に、リモートにデプロイしたカスタム実装クラスも利用できません。クライアントがカスタム・メソッドにアクセスできるようにするには、メソッドをエクスポートして層に依存しないインタフェースを作成する必要があります。次に、アプリケーション・モジュールをリモート対応にすると、JDeveloperによって、インタフェースを実装するクライアント側のクラスが別に作成されます。

クライアントが、リモートにデプロイされたビジネス・コンポーネントのインタフェースのカスタム・メソッドをコールすると、そのメソッドは、クライアント・パッケージの実装クラスに自動的に渡されます。このクラスは、ワイヤ・プロトコルを介して、ビジネス・ロジック層上の実装クラスにコールを渡します。

Figure that shows a client calling a custom method on an interface to remotely deployed business   components, as described in the preceding paragraph.

クライアントではワイヤ・プロトコルについて考慮する必要はありません。クライアントでは、通常のJavaコールを使用してmypackage.common.MyAppModuleをコールするだけです。