オブジェクトサービス
更新日:
用語解説
CORBAのオブジェクトサービス(CORBAservices)は、分散オブジェクトアプリケーションで繰り返し必要となる名前解決、イベント通知、トランザクション、永続化等の共通機能を、標準化されたIDLインタフェースを持つオブジェクトとして提供する仕様群です。業務固有のアプリケーションオブジェクトから基盤機能を分離し、再利用と相互運用を支えます。
■ 試験で押さえるポイント
Naming Serviceは階層的な名前とオブジェクト参照を対応付け、クライアントが既知の名前から対象参照を取得できるようにします。DNSのホスト名からIPアドレスを得る仕組みとは対象と名前空間が異なります。
Trading Object Serviceはサービスの属性・条件に基づいて適合する提供者を検索します。既知名を参照へ結び付けるNaming Serviceと、条件検索で候補を探すTrading Serviceを区別します。
Event/Notification Serviceは送信側と受信側を疎結合にしてイベントを配送し、Transaction Serviceは複数資源にまたがる原子性等のトランザクション調整を支えます。それぞれ保証範囲と失敗時動作が異なります。
このほかLife Cycle、Persistent State、Concurrency Control、Time、Property等のサービス仕様があります。全CORBA製品や全アプリケーションが全サービスを必ず実装・使用するわけではありません。
ORBはオブジェクト参照に基づく要求の伝達、マーシャリング、相手の位置・言語差の隠蔽等を担う中核です。オブジェクトサービスはORB上で利用する共通機能であり、ORBそのものと同義ではありません。
OMAでは共通基盤であるCORBAservices、その上の共通・ドメイン施設、最上位の業務固有Application Objectsを区別します。下位の標準サービスを組み合わせて上位の業務処理を実装します。
共通サービスを使っても認証・認可、可用性、永続性及びトランザクション境界が自動的に適切になるわけではありません。製品実装、設定、障害モデル及びサービス間の整合性を設計します。
■ 過去問での着眼点
オブジェクトサービスはCORBAアプリケーション共通の名前解決、イベント、トランザクション等を標準IDLインタフェースで提供します。要求を仲介するORB、共通機能を提供するCORBAservices、業務固有処理を持つApplication Objectsの階層を区別します。Namingは既知名から参照、Tradingは条件から提供者を検索というサービスの違いも押さえます。
例: 受注クライアントはNaming ServiceからOrderServiceのオブジェクト参照を取得し、ORB経由で業務オブジェクトを呼び出します。複数データ資源を同時更新する場合はTransaction Serviceを使えますが、受注ロジック自体はApplication Objectが実装します。