Hitachi

TPBroker Version 5 トランザクショナル分散オブジェクト基盤 TPBroker ユーザーズガイド


1.3.1 ORB機能

TPBrokerのORB機能では,オブジェクトの管理,オブジェクト間の通信などネットワーク上のオブジェクトの相互作用を管理します。TPBrokerでは,ORB機能としてCORBA 2.5に従って実装された製品であるVisiBrokerを使用しています。そのため,VisiBrokerで実現できる分散オブジェクトの管理,および分散オブジェクトの通信ができます。CORBAの仕様を実装していますが,他社CORBA製品との接続の際は,十分な接続検証が必要です。ここでは,TPBrokerが提供するORB機能の詳細について説明します。

VisiBrokerの主な機能については,マニュアル「Borland(R) Enterprise Server VisiBroker(R) デベロッパーズガイド」を参照してください。

〈この項の構成〉

(1) スマートエージェントによる分散オブジェクトの管理

VisiBrokerのスマートエージェント機能(OSAgent)では,サーバ上で複数のエージェントを稼働してオブジェクトを管理できます。エージェントに障害が発生した場合,そのエージェントが管理していたオブジェクトは自動的にほかのオブジェクトに再登録されるため,オペレーションは中断しません。

また,エージェントがネットワーク上のオブジェクトを動的に管理するため,クライアントごとにオブジェクトの実装を意識する必要はありません。オブジェクトの事前定義も不要です。

(2) スマートバインディングによる分散オブジェクト間の通信

VisiBrokerのスマートバインディング機能では,クライアントからサーバ上のオブジェクトにアクセスすると,そのオブジェクトがクライアントと同一プロセスにあるか,同一ノードの別プロセスにあるか,またはリモートノードにあるかを判断し,自動的に最適な通信機能を選択します。このため,通信時のオーバヘッドが削減でき,高速な処理を実現できます。

例えば,クライアントとサーバ上のオブジェクトが同一のプロセスで実行される場合は,ORBを介さないで実行します。また,同一ノードの別プロセスにある場合は,クライアントとサーバ間の情報の受け渡しに共有メモリを利用します。

(3) マルチスレッドによる処理

VisiBrokerのマルチスレッド機能では,一つのプロセスで複数のオブジェクトからの要求を同時に処理できます。そのため,サーバのリソースを有効に利用でき,システムの性能とスケーラビリティを向上できます。

(4) IIOPによる相互接続

VisiBrokerでは,通信プロトコルとしてCORBAで規定されたIIOPをサポートしていますが,TPBrokerとVisiBrokerとの接続,およびCORBAに準拠している他社ORB製品との接続の際は,十分な接続検証が必要です。VisiBrokerを使った相互接続によって,インターネット,イントラネット,およびエクストラネットを前提とした新しいシステムを構築できます。

(5) CORBAの仕様

(a) オブジェクトモデル

CORBAのオブジェクトはIDLで定義されます。IDLによってその継承関係,クラスが提供するメソッドのパラメタ,リターン値とメソッド内で発生する例外を定義できます。

クライアントは,CORBAオブジェクトの代理オブジェクトであるオブジェクトリファレンスにリクエストを発行し,CORBAオブジェクトをアクセスできます。オブジェクトリファレンスの形式はORBによって異なりますが,TPBrokerではC++およびJavaオブジェクトのポインタとして定義されています。

(b) オブジェクトインプリメンテーション

クライアントからのリクエストを処理するサーバをオブジェクトインプリメンテーションと呼びます。オブジェクトインプリメンテーションは,IDLで定義されたCORBAオブジェクトの実体であり,TPBrokerではC++およびJavaオブジェクトを含むプロセスとして定義されています。

(c) オブジェクトリクエストブローカ(ORB)

ORBはクライアント/サーバ間の通信,およびオブジェクトインプリメンテーションの起動を提供します。オブジェクトのライフサイクルのサービスは,上位サービスとして規定され,ORBには含まれません。