13.1.26.3 利点

値型(値で渡すことが可能なオブジェクト)のサポート以前は、CORBAオブジェクトには、すべてオブジェクト参照がありました。そのため、複数のクライアントが特定のオブジェクトを呼び出すとき、クライアントは同じリファレンスを使用していました。オブジェクトのインスタンスはサーバーORB上に残り、その状態はクライアントORBではなく、サーバーORBが管理していました。

値型は、CORBAアーキテクチャへの重要な追加機能であると言えます。参照によって受け渡されるオブジェクトに関して、値型には状態とメソッドが含まれますがオブジェクト参照は含まれず、プログラミング言語オブジェクトとして常にローカルで呼び出されます。受信側からのリクエスト時に、値型は送信側のコンテキストの状態をパッケージ化し、「over the wire」状態を受信側に送信します。受信側では、インスタンスが作成され、送信された状態が自動的に設定されます。この段階以降、送信側はクライアント側のインスタンスを制御できなくなります。つまり、これ以降は、受信側がインスタンスをローカルで呼び出すことができるようになります。このモデルにより、ネットワーク経由の通信で生じる遅延を短縮することができます。この遅延は、大規模なネットワークで顕著に生じます。値型を追加することにより、CORBA実装の規模の調整が容易になり、大量のデータ処理要件を満たすことができます。

このように、値型の本質的な特徴は、その実装が常にローカルである点です。つまり、具象的なプログラミング言語で値型を明示的に使用すると、常にローカルで実装が行われ、リモート呼出しが不要になることが保証されます。値型の値自体がIDであるため、値型にはIDがなく、ORBに「登録」されません。