UDDI バージョン 3 レジストリーは、レジストリー内部で情報を効率的に検索するための構造およびモデル化のツール群を提供します。 ユーザーは、複数の値セットを定義し、カスタムの値セットを追加することができます。 UDDI バージョン 2 では、この機能はカスタム分類法のサポートと呼ばれていました。
データは、他の大量のデータに埋もれてしまって区別することも発見することもできなければ、 何の価値もありません。 UDDI のクライアントがレジストリー内の情報を効果的に検出できなければ、 UDDI の目的はかなり損なわれます。この問題に対処する構造とモデリング・ツールを提供することが、 UDDI の設計の目的です。 UDDI 内のデータの検証は、記述、ディスカバリー、および統合という UDDI の目的の中心となるものです。 これを達成する方法は、いくつかあります。
ユーザーは、 UDDI で使用できる値セットを複数定義することができます。この方法で、 1 つの UDDI エンティティー上で複数の分類スキームをオーバーレイすることができます。この機能によって、 組織は、UDDI レジストリーがサポートするシステムのセットを拡張することができます。 ユーザーは、単一のシステムに結び付けられることなく、複数の分類システムを同時に使用することができます。
デフォルトの値セットは製品に同梱されていますが、 UDDI バージョン 3 レジストリーでは、「カスタム」値セットを追加できるツールを提供しています。 このツールによって、UDDI エンティティーを公開時により細かくカテゴリー 化し、クライアントが特定のデータを検出する機能をさらに強化することが可能に なります。
以下で定義するプロシージャーでは、 追加のユーザー定義値セットを追加する方法、 およびそれらの許可された値を UDDI ユーザー・コンソール値セットのツリー表示で表示する方法について説明します。 Rational Application Developer の Web Services Explorer ユーザー・インターフェースを使用して、 カスタムのチェック・マーク付き値セットを追加および表示することもできます。 値セットのカテゴリー化 tModel のパブリッシャーは、 UDDI ユーザー・コンソール・インプリメンテーションで使用する「表示名」を指定できます。
ユーザー・コンソールで、 値セット・データがチェックマークなしの値セット用に使用されることもありますが、 これは必須ではなく、通常は、unspc-org:unspc やバックレベルの互換性など、 使用すべきでない値セットを表示するためにのみ使用されます。
値セットにチェックマークが付けられると、 新しいカテゴリー化 tModel を備えた keyedReferences を含む categoryBag を持つすべての公開要求が妥当性検査されます。 レジストリー・データベース内のカテゴリー化 tModel に対応する値セット・データがある場合、 有効な値のみが受け入れられます。 このデータベースに値セット・データがない場合には、 すべての値が拒否され、公開要求は失敗します。 カテゴリー化 tModel にチェックマークが付いていない場合、 UDDI レジストリー・データベース内に対応する値セットがあるかどうかにかかわらず、 すべての値が許可されます。 値セット tModel は、 管理者が管理コンソール、または JMX インターフェースを使用して、 そのサポートを使用可能にするまでは使用できません。
このセクションでは、 ユーザー定義値セットで使用する「Checked value set」キー名を指 定してチェックマーク付きカテゴリー化 tModel を公開する方法について説明します。
注 | tModelKey | KeyName | KeyValue |
1 | uddi:uddi-org:categorization:types UDDI レジストリーのユーザー・インターフェースで、 この tModelKey は、「UDDI Types」のカテゴリー・タイプを選択することによって選択できます。 |
categorization | categorization |
2 | uddi:uddi-org:categorization:types UDDI レジストリーのユーザー・インターフェースで、 この tModelKey は、「UDDI Types」のカテゴリー・タイプを選択することによって選択できます。 |
チェック・マークの付いた値セット | checked |
3 | uddi:uddi-org:categorization:general_keywords UDDI レジストリーのユーザー・インターフェースで、 この tModelKey は、「categorization:general_keywords」のカテゴリー・タイプを選択することによって選択できます。 |
urn:x-ibm:uddi:customTaxonomy:displayName | <User Defined Value Set displayName> |
displayName は、 UDDI ユーザー・コンソールが値セット・ツリーや使用可能な値セットのプル ダウン・リストに値セットを表示する場合などに、値セットにラベルを付ける方法を提供します。 8 文字までという制限を受けず、また、公開された tModelName と同じにする必要もなく、ユーザーにわかりやすい名前を指定します (255 文字まで使用可能)。 以下に例を示します。
urn:x-ibm:customTaxonomy:displayName は、 ユーザー・インターフェースに表示された際に混同を避けるためにも固有にする必要がありますが、 それについての妥当性検査は行われません。
<save_tModel generic="3.0" xmlns="urn:uddi-org:api_v3"> <authInfo></authInfo>> <tModel tModelKey=""> <name>Natural Foods tModel</name> <categoryBag> <keyedReference tModelKey="uddi:uddi.org:categorization:types" keyName="categorization" keyValue="categorization"/> <keyedReference tModelKey="uddi:uddi.org:categorization:types" keyName="Checked value set" keyValue="checked"/> <keyedReference tModelKey="uddi:uddi.org:categorization:general_keywords" keyName="urn:x-ibm:uddi:customTaxonomy:displayName" keyValue="Natural Foods"/> </categoryBag> </tModel> </save_tModel>
ユーザー定義値セット・データ のファイル・フォーマット
列名 | 最大長 | 使用の説明 |
コード | 765 | 妥当性検査に使用される値セット内の固有値。 |
description | 765 | 通常は UDDI ユーザー・コンソールが使用します。 オプションで keyedReference に keyName 値として使用されます。 |
parentcode | 765 | 既存のコードのいずれがこのコードの論理親であるかを示すために ツリー表示で使用されます。 |
00#Food#00 10#Fruit#00 101#Apples#10 102#Oranges#10 103#Pears#10 1031#Anjou#103 1032#Conference#103 1033#Bosc#103 104#Pomegranates#10 20#Vegetables#00 201#Carrots#20 202#Potatoes#20 203#Peas#20 204#Sprouts#20
この例では、「Food」は、子ノード「Fruit」および「Vegetables」(これらはいずれも「 Food」のコード値と同じ parentcode 値を持つ) を持つルート・ノードを表しています。
Food Fruit Apples Oranges Pears Anjou Conference Bosc Pomegranates Vegetables Carrots Potatoes Peas Sprouts
このファイルは UTF-8 フォーマットで保管する必要があります。
UDDI バージョ ン 2 で使用されるカスタム分類法ファイルも、ユーティリティーによってサポートされています。
UDDIUserDefinedValueSet
値セット・データを UDDI レジストリーにロードしたり、 既存の値セット・データを別の tModel に割り当てたり、 既存の値セット・データをアンロードするために、ユーティリティーが提供されています。 このユーティリティーでは、UDDI レジストリーの JMX インターフェースを使用します。 したがって、いくつかの接続パラメーターが必要です。
Usage: UDDIUserDefinedValueSet[.sh|.bat] '{'function'}' [options]
function:
-load <path> <key> Load value set data from specified file
-newKey <oldKey> <newKey> Move value set to a new tModel
-unload <key> Unload existing value set
options:
-properties <path> 構成ファイルのロケーションを指定
-host <host name> Application Server host
-port <port> SOAP Lister port number
-node <node name> Node running a UDDI server
-server <server name> Server with UDDI deployed
-columnDelimiter <delim> Character delimiter to denote field end
-stringDelimiter <delim> Character delimiter to denote strings
Connector security parameters
-userName <name>
-password <password>
-trustStore <path>
-trustStorePassword <password>
-keyStore <name>
-keyStorePassword <password>
UDDIUserDefinedValueSet スクリプトは、app_server_root/bin ディレクトリーにあります。
接続パラメーターが 指定されていない場合は、デフォルトのアプリケーション・サーバー SOAP ポート番号を使用して、 ローカル・ホスト上で接続がシークされます。
コマンド引数は、大文字と小文字を区別しません。
使用例
次のように % 記号を valuesetdata.txt ファイル内の列マーカーとして使用して、 tModel の値セット・データをローカル UDDI レジストリーにロードします。
UDDIUserDefinedValueSet.xxx -load valuesetdata.txt uddi:a708b8a7-35b5-451c-aafc-718ae071fcfe -columnDelimi ter %ここで、.xxx は Windows オペレーティング・システムの場合は .bat であり、UNIX および Linux プラットフォームの場合は .sh です。
Network Deployment 構成の UDDI レジストリー上で、 値セット・データを、あるチェックマーク付き tModel から別のチェックマーク付き tModel に移動します。
UDDIUserDefinedValueSet.xxx –newKey uddi:a708b8a7-35b5-451c-aafc-718ae071fcfe uddi:b819c9b8-46c6-562d-bb 0d-829bf1820d0f –host depmanagerhost.ibm.com –port 8879 –node uddinode –server uddiserver -overrideここで、.xxx は Windows オペレーティング・システムの場合は .bat であり、UNIX および Linux プラットフォームの場合は .sh です。
セキュリティーをオンにして接続パラメーターおよびセキュリティー・パラメーターを myproperties.properties ファイル内に指定しますが、 サーバー引数およびパスワード引数をコマンド行上に指定して (これにより、プロパティー・ファイル内に格納されているそれらの引数を拡張またはオーバーライドします)、tModel からの値セットをサーバーからアンロードします。
UDDIUserDefinedValueSet.xxx –unload uddi:b819c9b8-46c6-562d-bb0d-829bf1820d0f –server uddiserver –properties myproperties.properties –password myrealpasswordここで、.xxx は Windows オペレーティング・システムの場合は .bat であり、UNIX および Linux プラットフォームの場合は .sh です。
オプションの -properties パラメーターが指定されている場合、 いくつかのオプション・パラメーターは、構成ファイルによって決まります。 これらのパラメーターは、コマンド行上で指定することができ、 そのようにした場合は、プロパティー・ファイル内の値をオーバーライドします。 これらのパラメーターは、ほとんどの場合、JMX 接続パラメーターおよびセキュリティー・パラメーターです。
string.delimiter は、通常、記述値に列の区切り文字と同じ文字が含まれている 場合に使用されます。例えば、column.delimiter が「,」(コンマ) に設定されており、 値セットの記述値が 'Fruits, citrus' である場合、 string.delimiter を「"」(二重引用符) に設定してこの記述を 'Fruits, citrus' のように引用符で囲むと、 この記述値を値セット・データ・ファイルに入れることができます。 引用符文字は円記号 ('¥') でエスケープすることにより、 リテラル文字が使用されることを示すことに注意してください。
コマンド行引数およびサンプル・データ | プロパティーおよびサンプル・データ | コメント |
-columnDelimiter # | column.delimiter=# | 値セット・データ・ファイルで使用される列の区切り文字 |
-stringDelimiter ¥" | string.delimiter=¥" | フィールドの区切り文字 (この値は column.delimiter 値と 同じにならないようにします) |
-host ibm.com | host=ibm.com | アプリケーション・サーバーが稼働している システムのホスト名 |
-port 8880 | port=8880 | アプリケーション・サーバーの SOAP ポート番号 |
-node ibmNode | node=ibmNode | UDDI レジストリーを備えたサーバーが稼働しているノードの名前 |
-server server1 | server=server1 | UDDI レジストリーが稼働しているサーバー |
-userName ibmuser | security.username=ibmuser | ユーザー名。WebSphere Application Server セキュリティーが オンになっている場合、この値は必須です。 |
-password mypassword | security.password=mypassword | パスワード |
-trustStore /TrustStoreLocation | security.truststore=/TrustStoreLocation | トラストストア・ファイルの場所 |
-keyStore ibmkeystore | security.keystore=ibmkeystore | 鍵ストア名 |
-trustStorepassword trustpass | security.truststore.password=trustpass | トラストストアのパスワード |
-keyStorePassword keypass | security.keystore.password=keypass | 鍵ストアのパスワード |
UDDI レジストリーのユーザー・ コンソールは、tModel の保管要求のが 構築中に (つまり、公開が行われる前に) 妥当性検査を実行します。例えば、ユーザーが 2 つの customTaxonomy:displayName keyedReference を追加しようとすると、次のメッセージが表示されます。
Advice: Only one 'urn:x-ibm:uddi:customTaxonomy:displayName' key name is allowed for the 'Other' taxonomy.
keyedReference に「urn:x-ibm:uddi:customTaxonomy:」で始まり、 「displayName」以外のものが続く keyName 値が含まれている場合、 次のようなメッセージが表示されます。
Advice: Only key name values of 'urn:x-ibm:uddi:customTaxonomy:displayName' are supported.
save_tModel メッセージに複数の tModel を持つ要求に関して、 その tModel のいずれかがカテゴリー化 tModel であり、その tModel が妥当性検査に失敗した場合は、 要求が失敗して UDDIInvalidValueException (考えられる原因を説明する追加情報を含む) が出され、 いずれの tModel も公開されません。 以下に例を示します。
E_invalidValue (20200) A value that was passed in a keyValue attribute did not pass validation. This applies to checked categorizations, identifiers and other validated code lists. The error text will clearly indicate the key and value combination that failed validation. Invalid 'custo mTaxonomy:dbKey' keyValue [naics] in keyedReference. KeyValue already in use by tModelKey[UUID:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2]