ヘッダーをスキップ
Oracle® Fusion Middleware Oracle WebLogic Server JAX-WS Webサービスの高度な機能のプログラミング
11g リリース1(10.3.6)
B61633-04
  目次へ移動
目次

前
 
次
 

22 UDDIを使用したWebサービスのパブリッシュと検索

この章では、UDDIレジストリを使用してWebLogic Webサービスをパブリッシュおよび検索する方法について説明します。

この章の内容は以下のとおりです。


注意:

このリリースでは、UDDI v2.0レジストリとUDDIExplorerアプリケーションは非推奨となっています。お客さまには、SOAの可視性と管理を提供するOracleエンタープライズ・リポジトリまたはOracleサービス・レジストリへのアップグレードについて考慮することをお薦めします。詳細については、 http://www.oracle.com/technologies/soa/docs/enterprise-repository-svc-registry-datasheet.pdfを参照してください。

UDDIの概要

UDDIとは、Universal Description, Discovery, and Integrationの略です。UDDIプロジェクトは、企業が互いに迅速、簡潔、動的にトランザクションを検索および実行できるようにするための業界イニシアティブです。

UDDIレジストリには、ビジネス、ビジネスが提供するサービス、およびビジネスがトランザクションを実行するために使用する通信規格とインタフェースに関する情報がカタログ化されて格納されます。

UDDIはSOAP (Simple Object Access Protocol)データ通信規格に基づいて構築されており、グローバルでプラットフォームに依存しないオープンなアーキテクチャを実現して企業にメリットをもたらします。

UDDIレジストリは、次の2つのカテゴリに大別できます。

UDDIのデータ構造の詳細は、「UDDIのデータ構造」を参照してください。

UDDIとWebサービス

Webサービスの所有者は、WebサービスをUDDIレジストリにパブリッシュします。パブリッシュ後、UDDIレジストリにはWebサービスの説明とWebサービスのポインタが保持されます。

UDDIを使用すると、クライアントはこのレジストリを検索し、目的のサービスを見つけてその詳細を取得できます。これらの詳細には、サービスの呼出しポイントのほかに、サービスとその機能を識別するための情報が含まれます。

Webサービス機能は、プログラミング・インタフェースを介して公開され、一般にWeb Services Description Language (WSDL)で記述されます。一般的なパブリッシュ/照会のシナリオでは、プロバイダがそのビジネスをパブリッシュし、その下にサービスを登録し、バインディング・テンプレートにそのWebサービスの技術情報を定義します。バインディング・テンプレートには、1つ以上のtModel(Webサービスによって実装される抽象的なインタフェースを表す)への参照も保存されます。tModelは、インタフェースとWSDLドキュメントのURL参照に関する情報とともに、プロバイダによって独自にパブリッシュされている場合があります。

一般的なクライアントの照会の目的は、次の2つのうちのいずれかです。

  • 既知のインタフェースの実装を検索します。この場合、クライアントはtModel IDを持っており、そのtModelを参照するバインディング・テンプレートを検索します。

  • 既知のバインディング・テンプレートIDの呼出しポイント(アクセス・ポイント)の更新値を検索します。

UDDIとビジネス・レジストリ

ビジネス・レジストリ・ソリューションとしてのUDDIを使用すると、企業は自社のビジネス製品およびサービス、さらにWebでのビジネス・トランザクションの実行方法を公開できます。このようにUDDIを使用することにより、企業間(B2B)電子商取引が補完されます。

ビジネスをパブリッシュするために必要な情報は、1つのビジネス名だけです。パブリッシュされたビジネス・エンティティの詳細な記述には、さまざまな情報が含まれます。こうした情報はすべて、ビジネス・エンティティとその製品およびサービスを、正確に、そしてアクセス可能な形式で公開するのに役立ちます。

ビジネス・レジストリには、次の要素が含まれます。

  • ビジネスID - ビジネスの複数の名前と説明、連絡先、および標準のID (納税者番号など)です。

  • カテゴリ - 標準のカテゴリ情報(D-U-N-Sビジネス・カテゴリ番号など)です。

  • サービスの記述 - サービスの複数の名前と説明です。サービス情報のコンテナとして、企業は様々なサービスを公開しつつ、サービスの所有権を明確に表示できます。bindingTemplate情報は、サービスへのアクセス方法を説明するものです。

  • 規格への準拠 - 場合によっては、各種規格への準拠を指定することが重要となります。これらの規格には、サービスの使用方法に関する詳細な技術要件が示されます。

  • カスタム・カテゴリ - ビジネスまたはサービスを識別または分類する独自仕様(tModels)をパブリッシュできます。

UDDIのデータ構造

UDDIのデータ構造は、businessEntitybusinessServicebindingTemplatetModelという4つの構造で構成されています。

次の表に、Webサービスまたはビジネス・レジストリ・アプリケーションで使用する場合のこれらの構造の相違点を示します。

表22-1 UDDIのデータ構造

データ構造 Webサービス ビジネス・レジストリ

businessEntity

Webサービス・プロバイダを表します。

  • 企業名

  • 連絡先

  • その他のビジネス情報

企業、またはその事業部または部門を表します。

  • 企業名(複数可)

  • 連絡先

  • 識別情報およびカテゴリ

businessService

1つ以上のWebサービスの論理グループ。

単一名のAPI。子要素として格納され、上記の名前のビジネス・エンティティによって保持されます。

単一のbusinessEntityに複数のサービスのグループを含めることができます。

  • 複数の名前と説明

  • カテゴリ

  • 規格への準拠の指定

bindingTemplate

単一のWebサービス。

ターゲットWebサービスにバインドして対話するためにクライアント・アプリケーションが必要とする技術情報。

アクセス・ポイント(Webサービスを呼び出すURI)を含んでいます。

追加の規格準拠インスタンス。

URL形式のサービス・アクセス・ポイント、電話番号、電子メール・アドレス、ファックス番号など。

tModel

技術仕様(通常は仕様のポインタ)、または仕様ドキュメントに関するメタデータ(実際の仕様を指す名前およびURLなど)を表します。Webサービスのコンテキストでは、実際の仕様ドキュメントはWSDLファイルで表されます。

普及しているか、またはユーザーが特定用途のために登録した標準または技術仕様を表します。


WebLogic ServerのUDDI機能

WebLogic Serverは、以下のUDDI機能を提供します。

UDDI 2.0サーバー

UDDI 2.0サーバーはWebLogic Serverの一部であり、WebLogic Serverの起動時に自動的に起動されます。UDDIサーバーは、(http://uddi.xml.org)のUDDI 2.0サーバー仕様を実装しています。

UDDI 2.0サーバーの構成

UDDI 2.0サーバーを構成するには、次の手順に従います。

  1. WebLogic Serverを停止します。

  2. WL_HOME/server/libディレクトリのuddi.propertiesファイルを更新します。WL_HOMEは、WebLogic Serverのメイン・インストール・ディレクトリです。


    注意:

    WebLogic Serverドメインを作成したユーザーがWebLogic Serverをインストールしたユーザーと異なる場合は、WebLogic Server管理者はuddi.propertiesファイルの権限を変更してすべてのユーザーがアクセスできるようにする必要があります。

  3. Weblogic Serverを再起動します。

WebLogic Serverの実行中はuddi.propertiesファイルを編集しないでください。このファイルを修正したことでUDDIサーバーが正常に起動しなくなった場合は、WL_HOME/server/lib/uddi.properties.bootedファイルの前回の正常な構成を参照してください。

構成をデフォルトに回復するには、uddi.propertiesファイルをWL_HOME/server/libディレクトリから削除します。このファイルは、バックアップ用のディレクトリに移動することをお勧めします。新しいuddi.propertiesファイルが作成され、正常に起動されたときにuddi.properties.bootedファイルが上書きされるためです。プロパティ・ファイルを削除したら、サーバーを再起動します。最低限のデフォルト・プロパティがロードされ、新しいuddi.propertiesファイルに書き込まれます。

以下の節では、uddi.properitesファイルに追加できるUDDIサーバー・プロパティについて説明します。プロパティのリストは、コンポーネント、用途、および機能に従って分類されています。常にすべてのプロパティが必要というわけではありません。

外部LDAPサーバーの構成

UDDI 2.0サーバーは、組込みLDAPサーバーで自動的に構成されます。しかし、この節の以下の手順によって、外部LDAPサーバーを構成することもできます。


注意:

現時点では、WebLogic ServerはUDDI 2.0サーバーで使用するものとして、SunOne Directory Serverのみをサポートしています。

UDDIで使用するSunOne Directory Serverを構成するには、次の手順に従います。

  1. LDAP_DIR/Sun/MPS/slapd-LDAP_INSTANCE_NAME/config/schemaディレクトリ内に51acumen.ldifというファイルを作成します。LDAP_DIRは、SunOne Directory Serverのインストール先のルート・ディレクトリ、LDAP_INSTANCE_NAMEはインスタンス名を表します。

  2. 「51acumen.ldifファイルのコンテンツ」で説明するコンテンツを使って、51acumen.ldifファイルを更新します。

  3. SunOne Directory Serverを再起動します。

  4. WebLogic UDDI 2.0サーバーのuddi.propertiesファイルに以下のプロパティを追加して、更新します。

    datasource.ldap.manager.password
    datasource.ldap.manager.uid
    datasource.ldap.server.root
    datasource.ldap.server.url
    

    プロパティの値は、SunOne Directory Serverの構成に応じて異なります。次の例では、デフォルト値を使用する構成として考えられるものを示します。

    datasource.ldap.manager.password=password
    datasource.ldap.manager.uid=cn=Directory Manager
    datasource.ldap.server.root=dc=beasys,dc=com
    datasource.ldap.server.url=ldap://host:port
    

    これらのプロパティの詳細は、表22-1を参照してください。

  5. Weblogic Serverを再起動します。

51acumen.ldifファイルのコンテンツ

以下のコンテンツを使用して、51acumen.ldifファイルを作成します。

dn: cn=schema
#
# attribute types:
#
attributeTypes: ( 11827.0001.1.0 NAME 'uddi-Business-Key'                DESC 'Business Key' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{41} SINGLE-VALUE X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.1 NAME 'uddi-Authorized-Name'             DESC 'Authorized Name for publisher of data' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{255} X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.2 NAME 'uddi-Operator'                    DESC 'Name of UDDI Registry Operator' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{255} X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.3 NAME 'uddi-Name'                        DESC 'Business Entity Name' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{258} X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.4 NAME 'uddi-Description'                 DESC 'Description of Business Entity' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{255} X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.7 NAME 'uddi-Use-Type'                    DESC 'Name of convention that the referenced document follows' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{255} X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.8 NAME 'uddi-URL'                         DESC 'URL' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{255} X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.9 NAME 'uddi-Person-Name'                 DESC 'Name of Contact Person' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{255} X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.10 NAME 'uddi-Phone'                      DESC 'Telephone Number' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{50} X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.11 NAME 'uddi-Email'                      DESC 'Email address' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{255} X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.12 NAME 'uddi-Sort-Code'                  DESC 'Code to sort addresses' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{10} X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.13 NAME 'uddi-tModel-Key'                 DESC 'Key to reference a tModel entry' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{255} SINGLE-VALUE X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.14 NAME 'uddi-Address-Line'               DESC 'Actual address lines in free form text' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{80} X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.15 NAME 'uddi-Service-Key'                DESC 'Service Key' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{41} SINGLE-VALUE X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.16 NAME 'uddi-Service-Name'               DESC 'Service Name' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{255} X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.17 NAME 'uddi-Binding-Key'                DESC 'Binding Key' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{41} SINGLE-VALUE X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.18 NAME 'uddi-Access-Point'               DESC 'A text field to convey the entry point address for calling a web service' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{255} X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.19 NAME 'uddi-Hosting-Redirector'         DESC 'Provides a Binding Key attribute to redirect reference to a different binding template' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{41} SINGLE-VALUE X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.20 NAME 'uddi-Instance-Parms'             DESC 'Parameters to use a specific facet of a bindingTemplate description' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{255} X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.21 NAME 'uddi-Overview-URL'               DESC 'URL reference to a long form of an overview document' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{255} X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.22 NAME 'uddi-From-Key'                   DESC 'Unique key reference to first businessEntity assertion is made for' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{41} SINGLE-VALUE X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.23 NAME 'uddi-To-Key'                     DESC 'Unique key reference to second businessEntity assertion is made for' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{41} SINGLE-VALUE X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.24 NAME 'uddi-Key-Name'                   DESC 'An attribute of the KeyedReference structure' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{255} X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.25 NAME 'uddi-Key-Value'                  DESC 'An attribute of the KeyedReference structure' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{255} X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.26 NAME 'uddi-Auth-Info'                  DESC 'Authorization information' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{4096} X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.27 NAME 'uddi-Key-Type'                   DESC 'The key for all UDDI entries' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{16} X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.28 NAME 'uddi-Upload-Register'            DESC 'The upload register' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{255} X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.29 NAME 'uddi-URL-Type'                   DESC 'The type for the URL' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{16} X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.30 NAME 'uddi-Ref-Keyed-Reference'        DESC 'reference to a keyedReference entry' SYNTAX 1.3.6.1.4.1.1466.115.121.1.12{255}  X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.31 NAME 'uddi-Ref-Category-Bag'           DESC 'reference to a categoryBag entry' SYNTAX 1.3.6.1.4.1.1466.115.121.1.12{255}  X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.32 NAME 'uddi-Ref-Identifier-Bag'         DESC 'reference to a identifierBag entry' SYNTAX 1.3.6.1.4.1.1466.115.121.1.12{255}  X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.33 NAME 'uddi-Ref-TModel'                 DESC 'reference to a TModel entry' SYNTAX 1.3.6.1.4.1.1466.115.121.1.12{255} SINGLE-VALUE X-ORIGIN 'acumen defined' )
# id names for each entry
attributeTypes: ( 11827.0001.1.34 NAME 'uddi-Contact-ID'                 DESC 'Unique ID which will serve as the Distinguished Name of each entry' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{16} SINGLE-VALUE X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.35 NAME 'uddi-Discovery-URL-ID'           DESC 'Unique ID which will serve as the Distinguished Name of each entry' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{16} SINGLE-VALUE X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.36 NAME 'uddi-Address-ID'                 DESC 'Unique ID which will serve as the Distinguished Name of each entry' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{16} SINGLE-VALUE X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.37 NAME 'uddi-Overview-Doc-ID'            DESC 'Unique ID which will serve as the Distinguished Name of each entry' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{16} SINGLE-VALUE X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.38 NAME 'uddi-Instance-Details-ID'        DESC 'Unique ID which will serve as the Distinguished Name of each entry' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{16} SINGLE-VALUE X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.39 NAME 'uddi-tModel-Instance-Info-ID'    DESC 'Unique ID which will serve as the Distinguished Name of each entry' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{16} SINGLE-VALUE X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.40 NAME 'uddi-Publisher-Assertions-ID'    DESC 'Unique ID which will serve as the Distinguished Name of each entry' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{16} SINGLE-VALUE X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.41 NAME 'uddi-Keyed-Reference-ID'         DESC 'Unique ID which will serve as the Distinguished Name of each entry' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{16} SINGLE-VALUE X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.42 NAME 'uddi-Ref-Attribute'              DESC 'a reference to another entry' SYNTAX 1.3.6.1.4.1.1466.115.121.1.12{255} X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.43 NAME 'uddi-Entity-Name'                DESC 'Business entity Name' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{258} X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.44 NAME 'uddi-tModel-Name'                DESC 'tModel Name' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{255} X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.45 NAME 'uddi-tMII-TModel-Key'            DESC 'tModel key referneced in tModelInstanceInfo' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{255} SINGLE-VALUE X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.46 NAME 'uddi-Keyed-Reference-TModel-Key' DESC 'tModel key referneced in KeyedReference' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{255} SINGLE-VALUE X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.47 NAME 'uddi-Address-tModel-Key'         DESC 'tModel key referneced in Address' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{255} SINGLE-VALUE X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.48 NAME 'uddi-isHidden'                   DESC 'a flag to indicate whether an entry is hidden' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{255} SINGLE-VALUE X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.49 NAME 'uddi-Time-Stamp'                 DESC 'modification time satmp' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{255} SINGLE-VALUE X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.50 NAME 'uddi-next-id'                    DESC 'generic counter' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.51 NAME 'uddi-tModel-origin'              DESC 'tModel origin' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.52 NAME 'uddi-tModel-type'                DESC 'tModel type' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.53 NAME 'uddi-tModel-checked'             DESC 'tModel field to check or not' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.54 NAME 'uddi-user-quota-entity'          DESC 'quota for business entity' SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.55 NAME 'uddi-user-quota-service'         DESC 'quota for business services per entity' SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.56 NAME 'uddi-user-quota-binding'         DESC 'quota for binding templates per service' SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.57 NAME 'uddi-user-quota-tmodel'          DESC 'quota for tmodels' SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.58 NAME 'uddi-user-quota-assertion'       DESC 'quota for publisher assertions' SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.59 NAME 'uddi-user-quota-messagesize'     DESC 'quota for maximum message size' SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.60 NAME 'uddi-user-language'              DESC 'user language' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.61 NAME 'uddi-Name-Soundex'               DESC 'name in soundex format' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{258} X-ORIGIN 'acumen defined' )
attributeTypes: ( 11827.0001.1.62 NAME 'uddi-var'                        DESC 'generic variable' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'acumen defined' )
#
# objectclasses:
#
objectClasses: ( 11827.0001.2.0 NAME 'uddi-Business-Entity'              DESC 'Business Entity object' SUP top STRUCTURAL MUST (uddi-Business-Key $ uddi-Entity-Name $ uddi-isHidden $ uddi-Authorized-Name ) MAY ( uddi-Name-Soundex $ uddi-Operator $ uddi-Description $ uddi-Ref-Identifier-Bag $ uddi-Ref-Category-Bag ) X-ORIGIN 'acumen defined' )
objectClasses: ( 11827.0001.2.1 NAME 'uddi-Business-Service'             DESC 'Business Service object' SUP top STRUCTURAL MUST ( uddi-Service-Key $ uddi-Service-Name $ uddi-isHidden ) MAY ( uddi-Name-Soundex $ uddi-Description $ uddi-Ref-Category-Bag ) X-ORIGIN 'acumen defined' )
objectClasses: ( 11827.0001.2.2 NAME 'uddi-Binding-Template'             DESC 'Binding Template object' SUP TOP STRUCTURAL   MUST ( uddi-Binding-Key $ uddi-isHidden ) MAY ( uddi-Description $ uddi-Access-Point $ uddi-Hosting-Redirector ) X-ORIGIN 'acumen defined' )
objectClasses: ( 11827.0001.2.3 NAME 'uddi-tModel'                       DESC 'tModel object' SUP top STRUCTURAL   MUST (uddi-tModel-Key $ uddi-tModel-Name $ uddi-isHidden $ uddi-Authorized-Name ) MAY ( uddi-Name-Soundex $ uddi-Operator $ uddi-Description $ uddi-Ref-Identifier-Bag $ uddi-Ref-Category-Bag $ uddi-tModel-origin $ uddi-tModel-checked $ uddi-tModel-type ) X-ORIGIN 'acumen defined' )
objectClasses: ( 11827.0001.2.4 NAME 'uddi-Publisher-Assertion'          DESC 'Publisher Assertion object' SUP TOP STRUCTURAL   MUST ( uddi-Publisher-Assertions-ID $ uddi-From-Key $ uddi-To-Key $ uddi-Ref-Keyed-Reference ) X-ORIGIN 'acumen defined' )
objectClasses: ( 11827.0001.2.5 NAME 'uddi-Discovery-URL'                DESC 'Discovery URL' SUP TOP STRUCTURAL   MUST ( uddi-Discovery-URL-ID $ uddi-Use-Type $ uddi-URL ) X-ORIGIN 'acumen defined' )
objectClasses: ( 11827.0001.2.6 NAME 'uddi-Contact'                      DESC 'Contact Information' SUP TOP STRUCTURAL   MUST ( uddi-Contact-ID $ uddi-Person-Name ) MAY ( uddi-Use-Type $ uddi-Description $ uddi-Phone $ uddi-Email $ uddi-tModel-Key ) X-ORIGIN 'acumen defined' )
objectClasses: ( 11827.0001.2.7 NAME 'uddi-Address'                      DESC 'Address information for a contact entry' SUP TOP STRUCTURAL   MUST ( uddi-Address-ID ) MAY ( uddi-Use-Type $ uddi-Sort-Code $ uddi-Address-tModel-Key $ uddi-Address-Line ) X-ORIGIN 'acumen defined' )
objectClasses: ( 11827.0001.2.8 NAME 'uddi-Keyed-Reference'              DESC 'KeyedReference' SUP TOP STRUCTURAL   MUST ( uddi-Keyed-Reference-ID $ uddi-Key-Value ) MAY ( uddi-Key-Name $ uddi-Keyed-Reference-TModel-Key ) X-ORIGIN 'acumen defined' )
objectClasses: ( 11827.0001.2.9 NAME 'uddi-tModel-Instance-Info'         DESC 'tModelInstanceInfo' SUP TOP STRUCTURAL   MUST ( uddi-tModel-Instance-Info-ID $ uddi-tMII-TModel-Key ) MAY ( uddi-Description ) X-ORIGIN 'acumen defined' )
objectClasses: ( 11827.0001.2.10 NAME 'uddi-Instance-Details'            DESC 'instanceDetails' SUP TOP STRUCTURAL   MUST ( uddi-Instance-Details-ID ) MAY ( uddi-Description $ uddi-Instance-Parms ) X-ORIGIN 'acumen defined' )
objectClasses: ( 11827.0001.2.11 NAME 'uddi-Overview-Doc'                DESC 'overviewDoc' SUP TOP STRUCTURAL   MUST ( uddi-Overview-Doc-ID ) MAY ( uddi-Description $ uddi-Overview-URL ) X-ORIGIN 'acumen defined' )
objectClasses: ( 11827.0001.2.12 NAME 'uddi-Ref-Object'                  DESC 'an object class conatins a reference to another entry' SUP TOP STRUCTURAL MUST ( uddi-Ref-Attribute ) X-ORIGIN 'acumen defined' )
objectClasses: ( 11827.0001.2.13 NAME 'uddi-Ref-Auxiliary-Object'        DESC 'an auxiliary type object used in another structural class to hold a reference to a third entry' SUP TOP AUXILIARY MUST ( uddi-Ref-Attribute ) X-ORIGIN 'acumen defined' )
objectClasses: ( 11827.0001.2.14 NAME 'uddi-ou-container'                DESC 'an organizational unit with uddi attributes' SUP organizationalunit STRUCTURAL MAY ( uddi-next-id $ uddi-var ) X-ORIGIN 'acumen defined' )
objectClasses: ( 11827.0001.2.15 NAME 'uddi-User'                        DESC 'a User with uddi attributes' SUP inetOrgPerson STRUCTURAL MUST ( uid $ uddi-user-language $ uddi-user-quota-entity $ uddi-user-quota-service $ uddi-user-quota-tmodel $ uddi-user-quota-binding $ uddi-user-quota-assertion $ uddi-user-quota-messagesize ) X-ORIGIN 'acumen defined' )

uddi.propertiesファイルのプロパティ

次の表に、uddi.propertiesファイルのプロパティを、説明されるUDDIのタイプ別に示します。

表22-2 基本的なUDDI構成

UDDIプロパティ・キー 説明
auddi.discoveryurl

保存されたビジネス・エンティティごとに設定されるDiscoveryURL接頭辞。通常、これはuddilistenerサーブレットの完全なURLとなるため、完全なDiscoveryURLを指定すると、格納されたBusinessEntityデータが表示されます。

auddi.inquiry.secure

許容値は、trueおよびfalseです。trueに設定すると、UDDIサーバーの照会呼出しはセキュアなhttps接続だけに制限されます。通常のhttp URLを介したUDDI照会呼出しは拒否されます。

auddi.publish.secure

許容値は、trueおよびfalseです。trueに設定すると、UDDIサーバーのパブリッシュ呼出しはセキュアなhttps接続だけに制限されます。通常のhttp URLを介したUDDIパブリッシュ呼出しは拒否されます。

auddi.search.maxrows

検索操作で返される行の最大数。検索の結果がこの最大行数を超えると、結果が切り詰められます。

auddi.search.timeout

検索操作のタイムアウト値。この値は、ミリ秒単位で指定します。

auddi.siteoperator

UDDIレジストリのサイト・オペレータの名前。指定した値はオペレータ属性として使用され、以後のすべてのBusinessEntity登録に保存されます。この属性はレスポンスで返され、どのUDDIレジストリがレスポンスを生成したかを示します。

security.cred.life

認証の資格証明の存続期間(秒単位で指定)。ユーザーの認証時に、このプロパティで指定した有効期限を持つAuthTokenが割り当てられます。

pluggableTModel.file.list

UDDIサーバーには、標準のTModelがあらかじめ組み込まれています。独自の分類法を使用して、TModel形式でUDDIサーバーをさらにカスタマイズできます。分類法は、XMLスキーマに従ってXMLファイルに定義する必要があります。このプロパティの値は、URI (XMLファイルなど)のカンマ区切りリストです。これらのTModelを表す値は、指定した分類法に照らし合わされてチェックおよび検証されます。


表22-3 UDDIのユーザー・デフォルト

UDDIプロパティ・キー 説明
auddi.default.lang

ユーザーの初期言語。デフォルトでは作成時にユーザー・プロファイルに割り当てられます。ユーザー・プロファイルの設定は、サインアップ時またはそれ以降に変更できます。

auddi.default.quota.assertion

ユーザーの初期アサーション割当て。デフォルトでは作成時にユーザー・プロファイルに割り当てられます。アサーション割当ては、ユーザーがパブリッシュできるパブリッシャ・アサーションの最大数。制限を設定しない場合は、値を -1に設定します。ユーザーのプロファイル設定は、サインアップ時またはそれ以降に変更できます。

auddi.default.quota.binding

ユーザーの初期バインディング割当て。デフォルトでは作成時にユーザー・プロファイルに割り当てられます。バインディング割当ては、ビジネス・サービスごとにユーザーがパブリッシュできるバインディング・テンプレートの最大数。制限を設定しない場合は、値を -1に設定します。ユーザーのプロファイル設定は、サインアップ時またはそれ以降に変更できます。

auddi.default.quota.entity

ユーザーの初期ビジネス・エンティティ割当て。デフォルトでは作成時にユーザー・プロファイルに割り当てられます。エンティティ割当ては、ユーザーがパブリッシュできるビジネス・エンティティの最大数。制限を設定しない場合は、値を -1に設定します。ユーザーのプロファイル設定は、サインアップ時またはそれ以降に変更できます。

auddi.default.quota.messageSize

ユーザーの初期メッセージ・サイズ制限。デフォルトでは作成時にユーザー・プロファイルに割り当てられます。メッセージ・サイズ制限は、ユーザーがUDDIサーバーに送信できるSOAP呼出しの最大サイズ。制限を設定しない場合は、値を -1に設定します。ユーザーのプロファイル設定は、サインアップ時またはそれ以降に変更できます。

auddi.default.quota.service

ユーザーの初期サービス割当て。デフォルトでは作成時にユーザー・プロファイルに割り当てられます。サービス割当ては、ビジネス・エンティティごとにユーザーがパブリッシュできるビジネス・サービスの最大数。制限を設定しない場合は、値を -1に設定します。ユーザーのプロファイル設定は、サインアップ時またはそれ以降に変更できます。

auddi.default.quota.tmodel

ユーザーの初期TModel割当て。デフォルトでは作成時にユーザー・プロファイルに割り当てられます。TModel割当ては、ユーザーがパブリッシュできるTModelの最大数。制限を設定しない場合は、値を -1に設定します。ユーザーのプロファイル設定は、サインアップ時またはそれ以降に変更できます。


表22-4 一般的なサーバーの構成

UDDIプロパティ・キー 説明
auddi.datasource.type

UDDIデータの物理ストレージの場所。この値はデフォルトではWLSとなります。これは、WebLogic Serverの内部LDAPディレクトリがデータ・ストレージ用に使用されることを示します。それ以外の許容値は、LDAPReplicaLDAP、およびFile

auddi.security.type

UDDIサーバーのセキュリティ・モジュール(認証)。この値はデフォルトではWLSとなります。これは、WebLogic Serverのデフォルト・セキュリティ・レルムがUDDI認証用に使用されることを示します。このため、WebLogic ServerユーザーはUDDIサーバー・ユーザーとなります。また、どのWebLogic Server管理者もUDDIサーバー管理者となり、UDDIサーバー設定で定義されているUDDIサーバーの管理者グループのメンバーに加えられます。それ以外の許容値は、LDAPおよびFile


表22-5 ログ出力の構成

UDDIプロパティ・キー 説明
logger.file.maxsize

ロガーの出力ファイルの最大サイズ(出力がファイルに送信される場合)。単位はKB。出力ファイルが最大サイズに達すると、そのファイルは閉じられ、新しいログ・ファイルが作成されます。

logger.indent.enabled

許容値は、trueおよびfalseです。trueに設定すると、「+」および「-」で始まるログ・メッセージ(通常TRACEレベルのログ)によって出力のインデントが増減されます。

logger.indent.size

各インデントのサイズ(スペースの数)。整数として指定します。

logger.log.dir

ログ・ファイルが格納されるディレクトリの絶対パスまたは相対パス。

logger.log.file.stem

すべてのログ・ファイル名の先頭に付加される文字列。

logger.log.type

ログ・メッセージの出力先を画面にするか、ファイルにするか、またはその両方にするかを決定します。許容値は、それぞれLOG_TYPE_SCREENLOG_TYPE_FILELOG_TYPE_SCREEN_FILEです。

logger.output.style

ログ出力にメッセージだけを含めるか、またはスレッドおよびタイムスタンプ情報を含めるかを決定します。許容値は、OUTPUT_LONGOUTPUT_SHORTです。

logger.quiet

ロガー自体に情報メッセージを表示するかどうかを決定します。許容値は、trueおよびfalseです。

logger.verbosity

ロガーの冗長レベル。許容値(大文字と小文字は区別される)は、TRACEDEBUGINFOWARNINGERROR。各重大度には、下位の重大度も含まれます。


表22-6 接続プール

UDDIプロパティ・キー 説明
datasource.ldap.pool.increment

プール内のすべての接続がビジーの場合に、作成してプールに追加する新しい接続の数。

datasource.ldap.pool.initialsize

プールの作成および初期化時に格納される接続数。

datasource.ldap.pool.maxsize

プールが保持できる接続の最大数。

datasource.ldap.pool.systemmaxsize

プールがその最大容量に達した後に作成される接続の最大数。プールが最大サイズに達し、すべての接続がビジーの場合、新しい接続が一時的に作成されてクライアントに返されます。この接続はプールには格納されません。しかし、システムの最大サイズに達すると、ビジー接続が使用可能になるまで新しい接続リクエストはすべてブロックされます。


表22-7 LDAPデータ・ストアの構成

UDDIプロパティ・キー 説明
datasource.ldap.manager.uid

LDAPにデータを保存できるバックエンドLDAPサーバー管理者または権限があるユーザーのID (cn=Directory Managerなど)。

datasource.ldap.manager.password

datasource.ldap.manager.uidのパスワード。データ・ストレージ用のLDAPディレクトリとの接続を確立します。

datasource.ldap.server.url

データ・ストレージ用のLDAPディレクトリの「ldap://」URL。

datasource.ldap.server.root

データ・ストレージ用のLDAPディレクトリのルート・エントリ(dc=acumenat、dc=comなど)。



注意:

複製LDAP環境には、「m」LDAPマスタと「n」LDAPレプリカがあります。これらの番号は、それぞれ0から(m-1)および0から(n-1)です。次のプロパティ・キーの5番目の部分の「i」はこの番号を表しており、定義されているLDAPサーバー・インスタンスによって異なります。

表22-8 複製LDAPデータ・ストアの構成

UDDIプロパティ・キー 説明
datasource.ldap.server.master.i.manager.uid

LDAPにデータを保存できる、このマスタLDAPサーバー・ノードの管理者または権限があるユーザーID (cn=Directory Managerなど)。

datasource.ldap.server.master.i.manager.password

datasource.ldap.server.master.i.manager.uidのパスワード。データを書き込むための関連するマスタLDAPディレクトリとの接続を確立します。

datasource.ldap.server.master.i.url

対応するLDAPディレクトリ・ノードの「ldap://」URL。

datasource.ldap.server.master.i.root

対応するLDAPディレクトリ・ノードのルート・エントリ(dc=acumenat、dc=comなど)。

datasource.ldap.server.replica.i.manager.uid

このレプリカLDAPサーバー・ノードのユーザーID (cn=Directory Managerなど)。このユーザーはLDAPからUDDIデータを読み出すことができます。

datasource.ldap.server.replica.i.manager.password

datasource.ldap.server.replica.i.manager.uidのパスワード。データを読み出すための関連するレプリカLDAPディレクトリとの接続を確立します。

datasource.ldap.server.replica.i.url

対応するLDAPディレクトリ・ノードの「ldap://」URL。

datasource.ldap.server.replica.i.root

対応するLDAPディレクトリ・ノードのルート・エントリ(dc=acumenat、dc=comなど)。


表22-9 ファイル・データ・ストアの構成

UDDIプロパティ・キー 説明
datasource.file.directory

UDDIデータを格納するファイル・システムのディレクトリ。


表22-10 一般的なセキュリティの構成

UDDIプロパティ・キー 説明
security.custom.group.operators

セキュリティ・グループ名。このグループのメンバーはUDDI管理者として扱われます。


表22-11 LDAPセキュリティの構成

UDDIプロパティ・キー 説明
security.custom.ldap.manager.uid

セキュリティLDAPサーバー管理者または権限があるユーザーID (cn=Directory Managerなど)。このユーザーは、LDAPにデータを保存することができます。

security.custom.ldap.manager.password

このプロパティの値は、上記のユーザーIDのパスワードであり、セキュリティ用のLDAPディレクトリに接続するために使用します。

security.custom.ldap.url

このプロパティの値は、セキュリティ用のLDAPディレクトリの「ldap://」URL。

security.custom.ldap.root

セキュリティ用のLDAPディレクトリのルート・エントリ(dc=acumenat、dc=comなど)。

security.custom.ldap.userroot

セキュリティLDAPサーバーのユーザー・ルート・エントリ。(ou=Peopleなど)。

security.custom.ldap.group.root

セキュリティLDAPサーバーのオペレータ・エントリ。たとえば、「cn=UDDI Administrators, ou=Groups」のように指定します。このエントリにはすべてのUDDI管理者のIDが含まれます。


表22-12 ファイル・セキュリティの構成

UDDIプロパティ・キー 説明
security.custom.file.userdir

UDDIセキュリティ情報(ユーザーとグループ)の格納先となるファイル・システムのディレクトリ。


UDDIディレクトリ・エクスプローラ

UDDIディレクトリ・エクスプローラを使用すると、認可されたユーザーは、WebLogic ServerのプライベートなUDDIレジストリにWebサービスをパブリッシュしたり、すでにパブリッシュされているWebサービスの情報を変更することができます。また、Webサービスおよび関連付けられたWSDLファイル(利用可能な場合)に関する詳細情報にアクセスできます。

また、UDDIディレクトリ・エクスプローラを使用して、パブリックとプライベート両方のUDDIレジストリにあるWebサービスおよびこれらのWebサービスを提供している企業や部門に関する情報を検索できます。

ブラウザでUDDIディレクトリ・エクスプローラを起動するには、次のURLを入力します。

http://host:port/uddiexplorer

説明:

UDDIディレクトリ・エクスプローラを使用して、以下のタスクを実行できます。


注意:

Oracle WebLogic Serverユーザー名およびパスワードを使用して、「UDDIディレクトリ・エクスプローラ」ページにアクセスします。

UDDIディレクトリ・エクスプローラの使い方の詳細は、メイン・ページの「Explorer Help」リンクをクリックしてください。

UDDIクライアントAPI

WebLogic Serverには、Javaクライアント・アプリケーションでWebサービスをプログラムから検索およびパブリッシュするために使用できるクライアント側UDDI APIが組み込まれています。

UDDIクライアントAPIには、InquiryPublishという、2つの主なクラスがあります。Inquiryクラスは、既知のUDDIレジストリにあるWebサービスの検索に使用し、Publishクラスは、開発したWebサービスを既知のレジストリに追加するために使用します。

WebLogic Serverでは、以下のクライアントUDDI APIパッケージを実装しています。

これらのパッケージの使い方の詳細は、「UDDI APIのJavadoc」を参照してください。

プラガブルtModel

分類法は、基本的にcategoryBagまたはidentifierBagによって参照として使用されるtModelです。主な相違点は、単純なtModelに対して、分類法の参照は一般にチェックおよび検証されることです。WebLogic ServerのUDDIサーバーはこのコンセプトを活用し、プラガブルtModelという独自の分類法を採用することでこの機能を拡張します。プラガブルtModelを使用すると、ユーザー(UDDI管理者)は独自のチェック済み分類法をUDDIレジストリに追加し、標準の分類法を上書きできます。

プラガブルtModelを追加するには、次の手順に従います。

  1. 「プラガブルtModelのXMLスキーマ」で説明する形式に従って、tModelKey/categorizationごとにXMLファイルを作成します。

  2. UDDIサーバーを構成するために使用するuddi.propertiesファイルのpluggableTModel.file.listプロパティに、ファイルのカンマ区切りの完全修飾名を追加します。例:

    pluggableTModel.file.list=c:/temp/cat1.xml,c:/temp/cat2.xml
    

    uddi.propertiesファイルの詳細は、「UDDI 2.0サーバーの構成」を参照してください。

  3. Weblogic Serverを再起動します。

以下の節では、XML要素とその許容値の表、プラガブルtModelの検証に使用するXMLスキーマ、およびサンプルXMLを示します。

XML要素と許容値

次の表に、プラガブルtModelを記述するXMLファイルの要素について説明します。

表22-13 プラガブルtModelを構成するためのXML要素の説明

要素/属性 必須 ロール 備考

Taxonomy

必須

ルート要素。

-

-

checked

必須

この分類がチェックされるかどうか。

trueまたはfalse

falseを指定すると、keyValueは検証されません。

type

必須

tModelのタイプ。

categorization、identifier、uddi-org-typesで定義した有効値

有効値についてはuddi-org-types tModelを参照してください。

applicability

省略可能

tModelの使用に関する制約。

-

この要素を指定しない場合、制約があるとは見なされません。

scope

applicability要素が含まれている場合は必須

tModelの使用に関する制約。

businessEntity、businessService、bindingTemplate、tModel

「bindingTemplate」を指定した場合、tModelはtModelInstanceInfoで使用できます。

tModel

必須

UDDIデータ構造に従った実際のtModel。

有効なtModelKey

-

categories

checkedがtrueの場合は必須

-

-

-

category

categories要素が含まれている場合は必須

実際のkeyNameとkeyValueを保持します。

keyNameとkeyValueのペア

categoryは、グループ化またはツリー構造用にネストできます。

keyName

必須

-

-

-

keyValue

必須

-

-

-


プラガブルtModelのXMLスキーマ

プラガブルtModelのXMLスキーマは次のように検証されます。

<simpleType name="type">
  <restriction base="string"/>
</simpleType>

<simpleType name="checked">
  <restriction base="NMTOKEN">
    <enumeration value="true"/>
    <enumeration value="false"/>
  </restriction>
</simpleType>

<element name="scope" type="string"/>

<element name = "applicability" type = "uddi:applicability"/>

<complexType name = "applicability">
  <sequence>
    <element ref = "uddi:scope" minOccurs = "1" maxOccurs = "4"/>
  </sequence>
</complexType>

<element name="category" type="uddi:category"/>

<complexType name = "category">
  <sequence>
    <element ref = "uddi:category" minOccurs = "0" maxOccurs = "unbounded"/>

  </sequence>
  <attribute name = "keyName" use = "required" type="string"/>
  <attribute name = "keyValue" use = "required" type="string"/>
</complexType>

<element name="categories" type="uddi:categories"/>

<complexType name = "categories">
  <sequence>
    <element ref = "uddi:category" minOccurs = "1" maxOccurs = "unbounded"/>
  </sequence>
</complexType>

<element name="Taxonomy" type="uddi:Taxonomy"/>

<complexType name="Taxonomy">
  <sequence>
    <element ref = "uddi:applicability" minOccurs = "0" maxOccurs = "1"/>
    <element ref = "uddi:tModel" minOccurs = "1" maxOccurs = "1"/>
    <element ref = "uddi:categories" minOccurs = "0" maxOccurs = "1"/>
  </sequence>
  <attribute name = "type" use = "required" type="uddi:type"/>
  <attribute name = "checked" use = "required" type="uddi:checked"/>
</complexType>

プラガブルtModelのサンプルXML

次に、プラガブルtModelのサンプルXMLを示します。

<?xml version="1.0" encoding="UTF-8" ?>

  <SOAP-ENV:Envelope 
      xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">

  <SOAP-ENV:Body>

   <Taxonomy checked="true" type="categorization" xmlns="urn:uddi-org:api_v2" >
    <applicability>
        <scope>businessEntity</scope>
        <scope>businessService</scope>
        <scope>bindingTemplate</scope>
    </applicability>
    <tModel  tModelKey="uuid:C0B9FE13-179F-41DF-8A5B-5004DB444tt2" >
        <name> sample pluggable tModel </name>
        <description>used for test purpose only </description>
            <overviewDoc>
                <overviewURL>http://www.abc.com </overviewURL>
            </overviewDoc>
    </tModel>
    <categories>
        <category keyName="name1 " keyValue="1">
            <category keyName="name11" keyValue="12">
                <category keyName="name111" keyValue="111">
                    <category keyName="name1111" keyValue="1111"/>
                    <category keyName="name1112" keyValue="1112"/>
                </category>
                <category keyName="name112" keyValue="112">
                    <category keyName="name1121" keyValue="1121"/>
                    <category keyName="name1122" keyValue="1122"/>
                </category>
            </category>
        </category>
        <category keyName="name2 " keyValue="2">
            <category keyName="name21" keyValue="22">
                <category keyName="name211" keyValue="211">
                    <category keyName="name2111" keyValue="2111"/>
                    <category keyName="name2112" keyValue="2112"/>
                </category>
                <category keyName="name212" keyValue="212">
                    <category keyName="name2121" keyValue="2121"/>
                    <category keyName="name2122" keyValue="2122"/>
                </category>
            </category>
        </category>
    </categories>
   </Taxonomy>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>