![]() ![]() ![]() ![]() |
WebLogic Portal は、プロデューサ、ポートレット、ブック、およびページに対する UDDI レジストリを検索するためのツールを提供します。さらに、WebLogic Portal により、ポートレット、ブック、およびページを UDDI レジストリに公開できます。
この章では、ポートレット、ブック、ページ、およびそれらがデプロイされるプロデューサを UDDI レジストリに公開する方法を説明します。また、UDDI 検索をプログラミングにより実行するための API についても説明します。
ヒント : | WebLogic Portal Administration Console には、プロデューサとポートレットに対する UDDI レジストリを検索できる検索ツールが用意されています。Administration Console の検索機能を使用する前に、この章で説明されているようにコンシューマを設定する必要があります。 |
UDDI (Universal Description, Discovery, and Integration) は、インターネット全体にわたる Web サービスを説明および検索するための標準のメカニズムです。WSRP プロデューサなどの Web サービスは、通常、関連するメタデータと一緒に UDDI レジストリに公開されます。ユーザはキーワードを使って UDDI レジストリを検索し、プロデューサ、およびプロデューサにより提供されるポートレットやその他のサービスの位置を突き止めることができます。
ヒント : | UDDI レジストリを利用できるようにするには、事前に WebLogic Portal 開発者または管理者が、特定のプロデューサのポートレットを検出するためにそのプロデューサの WSDL URL アドレスを把握しておく必要がありました。現在、開発者と管理者は、メタデータ クエリに基づき、特定のプロデューサとそのリソースを検索し、プロデューサの位置を突き止めることができます。前もって、プロデューサの WSDL URL を把握しておく必要はありません。 |
図 9-1 で示すように、プロデューサからのメタデータは、ポートレット、ブック、ページ用のメタデータも含めて、UDDI レジストリに公開されます。キーワードを使用して、コンシューマは UDDI レジストリを検索し、これらのサービスの位置を突き止めて利用できます。
ヒント : | OASIS (Organization for the Advancement of Structured Information Standards) が、UDDI 標準の作成を担当しています。詳細な技術仕様を含めた UDDI の詳細については、以下の URL を参照してください。 http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=uddi-spec |
プロデューサとそのリソースを UDDI レジストリに公開する場合、プロデューサをコンフィグレーションする必要があります。同様に、WebLogic Portal コンシューマ アプリケーションから UDDI レジストリを検索できるようにするには、コンシューマが UDDI レジストリの位置を突き止めて使用できるようにコンフィグレーションする必要があります。
この節では、UDDI レジストリを WebLogic Portal と一緒に使用するために実行する必要がある主要タスクについて説明します。
WebLogic Portal アプリケーションは、自動的には UDDI レジストリに公開されません。リソースを公開するようにアプリケーションをコンフィグレーションする必要があります。「プロデューサのコンフィグレーション」の節で、プロデューサとそのリソース (ブック、ページ、ポートレット) が 1 つまたは複数の UDDI レジストリに表示されるようにプロデューサをコンフィグレーションする方法が説明されています。
コンシューマが正しくコンフィグレーションされると、WebLogic Portal Administration Console を使用して、プロデューサとそのリソースの両方についてプログラミングおよび対話形式で UDDI レジストリを検索できます。「コンシューマのコンフィグレーション」の節で、特定の UDDI レジストリの位置を突き止めて検索できるようにコンシューマをコンフィグレーションする方法が説明されています。
コンシューマからのプログラミングによる UDDI レジストリ検索の実行については、「プロデューサのプログラミングによる検索」を参照してください。Administration Console 内の UDDI レジストリの検索用に用意されているツールについては、「ライブラリへのリモート リソースの追加」を参照してください。
この節では、プロデューサと、ポートレット、ページ、ブックなどのリソースの UDDI レジストリへの公開方法について説明します。そのためには、プロデューサを正しくコンフィグレーションする必要があります。
offerRemote
プロパティが true
に設定されているすべてのポートレット、ブック、ページは、正確にコンフィグレーションされた 1 つまたは複数の UDDI レジストリで自動的に公開されます。offerRemote
プロパティの設定については、「プロデューサに対する UDDI の有効化と無効化」を参照してください。
注意 : | 空のブックおよびページがレジストリに公開される可能性があります。ブックとページはサービス記述要求で解決され、空のブックおよびページは除外されます。レジストリはブックおよびページ リポジトリを直接ポーリングし、リポジトリには空のページおよびブックが含まれる場合があるので、レジストリは空のページおよびブックを公開する場合があります。 |
注意 : | 公開は非同期的に発生し、プロデューサ内のすべてのポートレット、ページ、ブックをレジストリに公開するには数秒から数分かかる可能性があります。ページとブックの子は、レジストリには自動的に公開されません。 |
表 9-1 は、公開されている各コンポーネントについて UDDI レジストリに公開されている特定タイプの情報を一覧表示しています。
プロデューサとそのリソースの公開の第 1 段階は、コンフィグレーション ファイルの wsrp-producer-portlet-registry-config.xml
を編集することです。このファイルが、保存されている J2EE 共有ライブラリからプロジェクトにコピーされるとき、それはプロデューサ内の各 Web アプリケーションの /WEB-INF
ディレクトリに配置されます。このファイルは、プロデューサと、ポートレットなどのプロデューサのリソースを、指定の UDDI レジストリに公開するために使用します。コンフィグレーション ファイル例はコード リスト 9-1 に示されています。コンフィグレーション ファイルの各要素は、表 9-2 に表示および定義されています。コンフィグレーション ファイルを編集するときは、表に記載されている必須要素のすべてが備わっていることを確認します。
注意 : | デフォルトでは、このファイルの <enabled> 要素は false に設定されます。この要素を true に設定するとき、プロデューサとそのブック、ページ、およびポートレットのすべてが、指定されている UDDI レジストリに公開されます。特定のブック、ページ、またはポートレットを公開しない場合は、offerRemote プロパティを false に設定する必要があります。 |
<?xml version="1.0" encoding="UTF-8"?>
<wsrp-producer-portlet-registry-config xmlns="http://www.bea.com/ns/portal/90/wsrp-producer-portlet-registry-config">
<description>Description goes here</description>
<!-- これを false に設定して、このプロデューサがポートレットを公開できないようにします。 -->
<enabled>true</enabled>
<publish-url>http://localhost:7001/uddi/uddilistener</publish-url>
<inquiry-url>http://localhost:7001/uddi/uddilistener</inquiry-url>
<!--credential-alias>registryPublisherComplexProducer</credential-alias-->
<username>weblogic</username>
<password>weblogic</password>
<producer-business-entity>
<name>Sample Producer</name>
<description>This is a producer business entity</description>
<discovery-url>http://localhost:7001/portal_2/index.jsp</discovery-url>
</producer-business-entity>
<producer-service>
<name>Sample Producer</name>
<description>This producer hosts test portlets for portal_2</description>
<wsdl-url>http://localhost:7001/portal_2/producer?WSDL</wsdl-url>
<keyword>skiing</keyword>
<keyword>hiking</keyword>
<keyword>camping</keyword>
<keyword>cycling</keyword>
</producer-service>
</wsrp-producer-portlet-registry-config>
表 9-2 は、コンフィグレーション ファイルの要素を説明します。
注意 : | wsrp-producer-portlet-registry-config.xml ファイルに設定するレジストリ資格エリアスは、wsrp-consumer-security-config.xml のグローバル資格 と同じであってはいけません。グローバル資格の設定については、「グローバル資格の変更」で説明します。 |
|
|
|
|
サードパーティ UDDI レジストリを使用するように WebLogic Portal アプリケーションをコンフィグレーションするには、次の手順を実行する必要があります。
<publish-url>
および <query-url>
アドレスを入手し、それらを wsrp-producer-portlet-registry-config.xml
コンフィグレーション ファイルに追加する。このコンフィグレーション ファイルの詳細については、「コンフィグレーション ファイルの編集」を参照してください。
レジストリの中には、同じ URL で公開および照会の両方のサービスを提供するものもあれば、これらの 2 つのサービスに対して別の URL を使用するものもあります。特定のレジストリのドキュメントを参照して、実際の URL を見つけ出してください。
レジストリがアクセス制御を実行する方法により、場合によっては、資格のセット、または資格に対するエリアスのいずれかも入力する必要があります。資格では、すべての UDDI の公開処理にアクセスするための十分なパーミッションが許可されている必要があります。再び、レジストリのドキュメントを参照して、アクセス制御ポリシーを見つけ出してください。
アクセス資格を wsrp-producer-portlet-registry-config.xml
で、または WebLogic Portal Administration Console を使用して設定できます。
コンフィグレーション ファイルの詳細については、「プロデューサのコンフィグレーション」を参照してください。Administration Console を使用した資格設定の詳細については、「プロデューサ ポートレット レジストリの変更」を参照してください。
UDDI レジストリに保存されるサービスは、分類法により分類および識別されます。分類法は tModel とも呼ばれ、基本的には名前とキーのマッピングです。
UDDI レジストリに公開する目的のため、プロデューサ、ポートレット、ブック、およびページすべてに、XML ファイルに定義されている分類法があります。デフォルトの分類法は、WebLogic Server の内部 UDDI レジストリに対してプロデューサ、ポートレット、ブック、およびページを説明するために提供されます。サードパーティ レジストリを使用する場合、そのレジストリにログインし、内部 WebLogic UDDI レジストリで検出した各分類法に対して tModel を作成します。その特定のレジストリに対する分類法を作成する方法に関しては、サードパーティ レジストリ用のドキュメントを参照してください。
内部 WebLogig UDDI tModel ファイルは次に配置されています。
WEBLOGIC_HOME
/portal/lib/wsrp/tModels
ここで、WEBLOGIC_HOME
は、インストールされている WebLogic のルート ディレクトリです。
ヒント : | tModel は、UDDI レジストリ内のサービス タイプ (登録されているサービスの汎用表現) を表すデータ構造です。UDDI と一緒に登録されている各ビジネスは、サービス タイプの定義済みリストに従って Web サービスのすべてを分類します。ビジネスは、レジストリのリストアップされているサービス タイプを検索して、サービス プロバイダを検出できます。tModel は、サービス タイプの技術仕様に対する抽象化であり、サービス タイプの情報をまとめて、レジストリ データベースでそれにアクセスできるようにします。もう 1 つの UDDI データ構造である bindingTemplate は、サービス タイプの特定のインスタンスに対する情報をまとめます。ビジネスで仕様準拠サービスをレジストリで利用可能にする場合は、bindingTemplate データ内のそのサービス タイプに対する tModelKey への参照が含まれます。各 tModel は、名前、説明記述、UUID (Universal Unique Identifier) で構成されます。tModel 名は、たとえばオンライン発注などのサービスを識別します。説明は、サービスに関する追加の任意情報を提供します。 tModelKey というユニークな識別子は、uuid:4CD7E4BC-648B-426D-9936-443EAAC8AI などの一連の英数字です。 |
UDDI レジストリでビジネス エンティティを直接事前コンフィグレーションする場合、ビジネス エンティティの名前のみを使用して、そのエンティティをプロデューサに関連付けることができます。たとえば、コード リスト 9-2 は、事前コンフィグレーション ビジネス エンティティを識別する <producer-business-entity>
要素を示します。この例では、「My Portlet Producer」という名前の付いたエンティティが、UDDI レジストリに事前にコンフィグレーションされています。この例では、<description>
と <discovery-url>
要素は必要ありません。
所定の UDDI レジストリに対する <producer-business-entity>
および <producer-service>
エンティティのコンフィグレーションの詳細については、そのレジストリのドキュメントを参照してください。一般に、JAXR API を使用して、ビジネス エンティティをプログラミングにより作成できます。
<producer-business-entity>
<name>My Portlet Producer</name>
</producer-business-entity>
ビジネス エンティティを事前にコンフィグレーションする場合、(コード リスト 9-2 に示されているように) WebLogic Portal では、ビジネス エンティティの名前のみが必要です。複数のプロデューサ Web アプリケーションが、この同じ名前を使用することにより、同じビジネス エンティティを使用できます。さまざまなプロデューサ Web アプリケーションが、それぞれ固有のビジネス エンティティを使用するようにするには、ビジネス エンティティに対してユニークな名前を使用します。
WebLogic Portal では、wsrp-producer-portlet-registry-config.xml
ファイル内の <discovery-url>
要素を指定すると、自動的にビジネス エンティティを作成できます。たとえば、コード リスト 9-3 に示されている wsrp-producer-portlet-registry-config.xml
ファイルのコンフィグレーションでは、ビジネス エンティティの自動的な作成が許可されています。
<producer-business-entity>
<name>My Portlet Producer</name>
<description>This is my business entity</description>
<discovery-url>http://somehost:port/path</discovery-url>
</producer-business-entity>
Web アプリケーションをデプロイするとき、プロデューサは最初に、指定された名前の付いたビジネス エンティティがレジストリに存在するかどうかを確認します。存在しない場合、WebLogic Portal は、所定の <name>
、<description>
、および <discover-url>
の付いた新しいビジネス エンティティを作成します。
キーワードなどのメタデータを、プロデューサ、ポートレット、ページおよびブックに追加することにより、コンシューマの能力を強化して、検索でそのようなリソースが検出されるようにできます。この節では、ポートレット、ブック、ページに対して検索可能なメタデータを追加する方法を説明します。公開するプロデューサ メタデータの追加については、「プロデューサのメタデータの追加」を参照してください。
UDDI 検索では、前述の wsrp-producer-portlet-registry-config.xml
ファイルに追加されているメタデータを使ってプロデューサの位置を突き止めることができます。<producer-service>
要素の <name>
と <description>
の両方の要素を検索できます。さらに、コード リスト 9-4 に示されているように、<producer-service>
要素の <keyword>
要素を使用してメタデータを追加できます。
<producer-service>
<name>Colorado Producer</name>
<description>
このプロデューサは、Colorado に関するポートレットを提供します。
</description>
<wsdl-url>http://colorado/producer?wsdl</wsdl-url>
<keyword>skiing</keyword>
<keyword>hiking</keyword>
<keyword>camping</keyword>
</producer-service>
UDDI 検索では、ポートレットのタイトルと説明により、ポートレットの位置を突き止めることができます。ポートレットを作成するとき、ポートレットにタイトルを付ける必要があり、オプションで説明を入れることも可能です。これらの 2 つのフィールドのテキストは、UDDI 検索で利用可能です。これらのタグの他に、<netuix:meta>
タグを使用して、検索可能なメタデータを提供できます。コード リスト 9-5 は、追加されたメタデータ タグが付いたサンプルのポートレット ファイルを示しています。
<?xml version="1.0" encoding="UTF-8"?>
<portal:root
xmlns:netuix="http://www.bea.com/servers/netuix/xsd/controls/netuix/1.0.0"
xmlns:portal="http://www.bea.com/servers/netuix/xsd/portal/support/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.bea.com/servers/netuix/xsd/portal/support/
1.0.0 portal-support-1_0_0.xsd">
<netuix:portlet definitionLabel="index_1" title="Activities"><netuix:meta>hiking</netuix:meta>
<netuix:titlebar>
<netuix:meta>camping</netuix:meta>
<netuix:meta>fishing</netuix:meta>
<netuix:maximize/>
<netuix:minimize/>
</netuix:titlebar>
<netuix:content>
<netuix:jspContent contentUri="/activities.jsp"/>
</netuix:content>
</netuix:portlet>
</portal:root>
UDDI 検索では、特定のブックとページの位置をそのタイトルで突き止めることができます。ブックまたはページを作成する場合、それにタイトルを付ける必要があります。このタイトルは UDDI 検索で利用可能です。ポートレットの場合と同様に、.book
および .page
ファイルに <netuix:meta>
タグを組み込んで、検索可能なメタデータ キーワードを追加できます。例については、「コード リスト 9-5」を参照してください。
注意 : | リモートで使用できる .book および .page ファイルのみを UDDI レジストリに公開できます。リモートで使用できるブックとページの作成の詳細については、「コンシューマに対するブック、ページ、およびポートレットの提供」を参照してください。 |
デフォルトでは、このファイルの <enabled>
要素は false
に設定されます。プロデューサを公開するには、それを true
に設定する必要があります。
プロデューサ Web アプリケーション全体、または特定のポートレット、ブック、およびページに対する UDDI 検索を有効または無効にできます。
wsrp-producer-portlet-registry-config.xml
ファイル内の <enabled>
要素を false
に設定することにより、Web アプリケーション全体に対して UDDI 公開を無効にできます。この要素が false
の場合、Web アプリケーション内のポートレット、ページ、またはブックのいずれも、UDDI 照会でアクセスできなくなります。要素が true
の場合、Web アプリケーション内のすべてのポートレット、ページ、およびブックが、個別に offerRemote
プロパティを使用して無効にされていない限り、公開されます。
プロデューサの各 Web アプリケーションの /WEB-INF
ディレクトリに、wsrp-producer-portlet-registry-config.xml
ファイルが配置されています (このファイルを編集するには、まず、それが保存されている J2EE 共有ライブラリから自分のプロジェクトに、そのファイルをコピーする必要があります)。
offerRemote
プロパティは、リモートにできるどのポータル リソース (ポートレット、ページ、およびブック) も、true
または false
に設定できます。true
の場合、リソースはリモートとして提供され、コンシューマがリモートで検出および利用できます。false
の場合、リソースはコンシューマに対して非表示になります。図 9-2 に示すように、ポートレット、ブック、またはページに対して、プロパティ ビューからこのプロパティを設定できます。
注意 : | offerRemote 値の変更は、レジストリのコンテンツには影響しません。エンティティが公開された後に offerRemote プロパティが false に変更される場合、プロデューサはレジストリからそのエンティティを削除しません。たとえば、公開されたポートレットはレジストリに存在できますが、offerRemote が false に設定されると、ポートレットは WebLogic Portal コンシューマでは利用できません。 |
API または WebLogic Portal Administration Console を通じて検索ツールを使用するには、コンシューマに対して wsrp-consumer-portlet-registry-config.xml
を設定する必要があります。このファイルは、UDDI 照会 URL、返される行数、記述などの UDDI レジストリ情報を定義します。コンシューマは複数のレジストリを検索しなければならない場合があり、すべてのレジストリをこのファイルで定義する必要があります。
注意 : | エンタープライズ アプリケーションの META-INF ディレクトリに、wsrp-consumer-portlet-registry-config.xml ファイルが配置されています。デフォルトでは、このファイルは空です。この節で説明するようにファイルをコンフィグレーションしないと、管理者またはユーザが UDDI 検索機能を使用できなくなります。 (このファイルを編集するには、まず、それが保存されている J2EE 共有ライブラリから自分のプロジェクトに、そのファイルをコピーする必要があります)。 |
コード リスト 9-6 は、コンフィグレーション ファイルの例を示しています。コンシューマをコンフィグレーションしたら、アプリケーションを再起動する必要があります。
<wsrp-consumer-portlet-registry-config
xmlns="http://www.bea.com/ns/portal/90/wsrp-consumer-portlet-registry-config">
<description>WLP Tools WSRP Registry Configuration</description>
<registry>
<name>defaultRegistry</name>
<title>Default Registry</title>
<description>This is the default registry.</description>
<default>true</default>
<inquiry-url>http://localhost:7001/uddi/uddilistener</inquiry-url>
<max-results>500</max-results>
</registry>
<registry>
<name>SecondRegistry</name>
<title>Second Registry</title>
<description>Another registry.</description>
<default>false</default>
<inquiry-url>http://localhost:8080/uddi/inquiry</inquiry-url>
<max-results>500</max-results>
</registry>
</wsrp-consumer-portlet-registry-config>
WebLogic Portal は、プロデューサの検索に 2 とおりの方法を提供します。ステージングまたはプロダクション環境で作業中の場合は、プロデューサの検索に WebLogic Portal Administration Console を使用できます。WebLogic Portal は、プログラミングによって検索できるようにする API も公開します。固有の検索ツールを書き込む場合は、API を使用できます。
注意 : | UDDI 検索では空のブックとページは表示されません。 |
Administration Console でのプロデューサの検索の詳細については、「ライブラリへのリモート リソースの追加」を参照してください。
この節の残りの部分では、プロデューサの検索に API を使用する方法について説明します。この節の内容は以下のとおりです。
WebLogic Portal には、プロデューサ、ポートレット、ページ、およびブックに対する UDDI レジストリを検索するために使用できる API が用意されています。一般に、この API は、カスタム検索ツールの開発に使用されます。
次のパッケージには、プロデューサ、ポートレット、ページ、およびブックに対する UDDI レジストリを検索するために使用できる API が含まれています。
com.bea.wsrp.registry
このパッケージには UDDI レジストリに対するコンフィグレーション情報を入手および設定できるクラスがあります。このパッケージに含まれるクラスは、表 9-3 で説明されています。
com.bea.wsrp.registry.entries
このパッケージには、プロデューサ、ポートレット、ブック、ページなどのレジストリ エントリを表すクラスが含まれています。これらのクラスにあるメソッドにより、これらのエントリに対するキーワード、タイトル、記述、およびその他のデータ要素を入手および設定できます。このパッケージに含まれるクラスは、表 9-4 で説明されています。
com.bea.wsrp.registry.find
このパッケージには、UDDI レジストリ照会を構築および実行するためのクラスが含まれています。このパッケージに含まれるクラスは、表 9-5 で説明されています。
次の表はこれらの 3 つのパッケージのクラスを要約しています。これらのクラスの詳細については、「Javadoc」を参照してください。
コード リスト 9-7 内のコード例は、UDDI レジストリでポートレットとプロデューサを検索および検出するために API を使用する方法を示しています。
import com.bea.wsrp.registry.entries.*;
import com.bea.wsrp.registry.*;
import com.bea.wsrp.registry.find.*;
public class UDDIQuery {
public void doQuery() {
ConnectInfo ci = RegistryFinder.getDefault();
FindRequest fr = new FindRequest();
fr.addName("Hello");
fr.addKeyword("hello");
fr.addKeyword("world");
List<PortletEntry> portlets = registryFinder.findPortlets(fr, connectInfo);
//-- ユーザはリストからポートレットを選択します。
Key producerKey = portletEntry.getProducerKey();
fr = new FindRequest();
fr.setProducerServiceKey(producerKey);
List<ProducerEntry> producers = registryFinder.findProducers(fr, connectInfo);
//-- ユーザはリストからプロデューサを選択します。
}
}
![]() ![]() ![]() |