4.6.5.2 corbaloc URLスキーム

その長さとバイナリ情報のテキストのエンコードが原因で、IORを非電子的な手段で人間同士が交換するのは困難です。corbalocおよびcorbalocs URLスキームでは、一般に普及しているFTPやHTTPのURLスキームに似た形式の文字列化されたオブジェクト参照が提供されます。corbalocおよびcorbalocsで定義されたURLスキームは、TCP/IP中心の環境とDNS中心の環境の両方で簡単に操作されます。corbalocおよびcorbalocs URLの構成要素は次のとおりです。

  • DNS形式のホスト名またはIPアドレスとポート
  • 使用するIIOPプロトコルのバージョン(オプション)
  • オブジェクト・キー(オプション)

デフォルトでは、corbaloc URLはIIOP経由でアクセスできるオブジェクトを示し、corbalocs URLはIIOP over SSLを使用してアクセスできるオブジェクトを示します。

次の表に、各URL要素のBNF構文を示します。

表4-8 URL要素のBNF形式

URL要素 BNF形式
<corbaloc>
= “corbaloc::”<obj_addr_list>[“/”<key_string>]
[,<corbaloc>|<corbalocs>]
<corbalocs>
= “corbalocs::”<obj_addr_list>[“/”<key_string>]
[,<corbaloc>|<corbalocs>]
<obj_addr_list>
= [<obj_addr> “,”]* <obj_addr>
<obj_addr>
= <iiop_prot_addr> | <future_prot_addr>
<iiop_prot_addr = <iiop_id><iiop_addr>
<iiop_id>
= “//” | <iiop_prot_token>”:”
<iiop_prot_token> = “iiop”
<iiop_addr>
= [<version> <host> [“:” <port>]]
<host> = DNS-style Host Name | ip_address
<version>
= <major> “.” <minor> “@” | empty_string
<port> = number
<major> = number
<minor> = number
<key_string> = <string> | empty_string

次の表では、各URL要素について説明します。

表4-9 URL要素の説明

URL要素 説明
obj_addr_list プロトコルID、バージョン、およびアドレス情報のカンマ区切りのリスト。このリストは、実装定義の方法でオブジェクトのアドレスを指定するために使用します。オブジェクトは、アドレスおよびプロトコルのいずれでもアクセスできます。その要素を使用して障害が発生した場合は、カンマ区切りリストの次の要素が使用されます。
obj_addr プロトコル識別子、バージョン・タグ、およびプロトコル固有のアドレス。右中かっこ「{」、左中かっこ「}」、垂直バー「|」、スラッシュ「/」、およびカンマ「,」はURLのこの構成要素では使用できません。
iiop_prot_addr IIOPプロトコル識別子、バージョン・タグおよびDNS形式のホスト名またはIPアドレスを含むアドレス。
iiop_id 識別子、バージョン・タグ、およびDNS形式のホスト名またはIPアドレスを含むアドレスとして認識されるトークン。
iiop_prot_token IIOPプロトコルcorbalocを示すために認識されるトークン。
iiop_addr IIOPプロトコル・トークン「iiop」。
host 単一のアドレス要素。
version DNS形式のホスト名またはIPアドレス。指定しない場合は、ローカル・ホストと見なされます。
ip_address 「.」で区切られ、「@」が後に続くメジャーおよびマイナーのバージョン番号。バージョンがない場合は、1.0と見なされます。
port 数字のIPアドレス(ドット付き10進表記)。
key_string NULLで終了しない文字列化されたオブジェクト・キー。key_stringでは、RFC 2396で規定されているエスケープ規則を使用してURLの一部として直接使用できないオクテット値からマッピングします。US-ASCII英数字はエスケープされません。この範囲外の文字は、次の文字を除いてエスケープされます。
“;” | “/” | “:” | “?” | “@” | “&” | “=” | “+” | “$” |
”,” | “-“ | “_” | “.” | “!” | “~” | “*” | “” | “(“ | “)”

key_stringは、CORBA仕様で定義されているGIOPリクエストまたはLocateRequestヘッダーのobject_keyメンバーのオクテット・シーケンスに対応します。

string_name IETF (Internet Engineering Task Force) RFC 2396で定義されているURLエスケープが含まれる文字列化された名前。エスケープ規則は、変更の必要なくURLを様々な方法でトランスポートできるようにします。US-ASCII英数字はエスケープされません。この範囲外の文字は、次の文字を除いてエスケープされます。
“;” | “/” | “:” | “?” | “@” | “&” | “=” | “+” | “$” |
”,” | “-“ | “_” | “.” | “!” | “~” | “*” | “” | “(“ | “)”

次に、新しいURL形式の使用例を示します:

corbaloc::555xyz.com:1024,555backup.com:1022,555last.com:1999
corbalocs::555xyz.com:1024,{555backup.com:1022|555last.com:1999}
corbaloc::1.2@555xyz.com:1111
corbalocs::1.1@24.128.122.32:1011,1.0@24.128.122.34

Oracle Tuxedo 8.0以降では、スキームの異なる複数のURLのリストをサポートするように、INSの提案で規定されているURL構文が拡張されています。次に例を示します。

corbalocs::555xyz.com:1024,corbaloc::1.2@555xyz.com:1111
corbalocs::ctxobj:3434,mthd:3434,corbaloc::force:1111

上の例で、パーサーがURL corbaloc::force.com:1111に達した場合は、安全な接続が試行されなかったかのようにパーサーの内部状態がリセットされ、保護なしの接続の試行が開始されます。