Oracle Service RegistryのRange Queries(範囲問合せ)デモ・セットでは、Oracle Service Registryの照会の拡張機能である範囲問合せの使用方法のデモンストレーションを行います。 Oracle Service Registryの範囲問合せ機能を利用すると、比較演算子(>、<)の機能を使用して、keyedReference内で一致するkeyValueを求めてUDDIエンティティを検索できます。
このデモ・セットに含まれるデモは次のとおりです。
FindBusiness
Oracle Service Registryがすでにインストールされ、環境変数REGISTRY_HOMEにレジストリのインストール場所が設定されていることを想定しています。
Oracle Service Registryのデモを実行するには、レジストリが実行中である必要があります。
デモを構成する必要があります。構成システムには、グローバルとローカルの2つのレベルがあります。グローバル・レベルで定義されたプロパティは、ローカル・レベルで上書きできます。グローバル・プロパティは、次のファイルにあります。
| Windows: | %REGISTRY_HOME%¥demos¥env.properties |
| UNIX: | $REGISTRY_HOME/demos/env.properties |
Oracle Service Registryのインストール中に設定された値はそのまま使用でき、値の変更はすべてのデモに影響を与えます。単一のデモについて(つまりローカル・レベルで)一部のプロパティの値を再定義する必要がある場合は、env.propertiesを編集してください。このファイルは、ファイルrun.sh(run.bat)と同じディレクトリにあります。Advanced Inquiryデモのローカル・レベルのプロパティは、次のファイルからロードされます。
| Windows: | %REGISTRY_HOME%¥demos¥advanced¥inquiry¥env.properties |
| UNIX: | $REGISTRY_HOME/demos/advanced/inquiry/env.properties |
この項では、デモで使用されるプログラミング・パターンを、FindBusinessデモを例にして説明します。ソース・コードは次のファイルにあります。
| Windows: | %REGISTRY_HOME%¥demos¥advanced¥inquiry¥src¥demo¥uddi¥rq¥FindBusiness.java |
| UNIX: | $REGISTRY_HOME/demos/advanced/inquiry/src/demo/uddi/rq/FindBusiness.java |
ヘルパー・メソッドcreateFindBusinessによって、次のようにしてFindBusiness構造が作成されます。
public Find_business createFindBusiness(String tModelKey, String keyValue,
String operator, String quantifier)
throws InvalidParameterException {
System.out.println("tModelKey = " + tModelKey);
System.out.println("keyValue = " + keyValue);
System.out.println("operator = " + operator);
System.out.println("quantifier = " + quantifier);
Find_business find_business = new Find_business();
QualifiedKeyedReference qualifiedKeyedReference = new QualifiedKeyedReference();
qualifiedKeyedReference.setTModelKey(tModelKey);
qualifiedKeyedReference.setKeyValue(keyValue);
qualifiedKeyedReference.setFindQualifierArrayList(parseFindQualifiers(operator, quantifier));
find_business.setCategoryBag(new CategoryBag(new KeyedReferenceArrayList(qualifiedKeyedReference)));
find_business.setMaxRows(new Integer(MAX_ROWS));
return find_business;
}
findBusinessメソッドによって、次のようにして検索操作が実行されます。
public BusinessList findBusiness(Find_business find_business) throws UDDIException, SOAPException {
System.out.print("Check structure validity .. ");
try {
find_business.check();
} catch (InvalidParameterException e) {
System.out.println("Failed!");
throw new UDDIException(e);
}
System.out.println("OK");
UDDI_Inquiry_PortType inquiry = getInquiryStub();
System.out.print("Search in progress ..");
BusinessList businessList = inquiry.find_business(find_business);
System.out.println(" done");
return businessList;
}
この項では、Oracle Service RegistryのAdvanced Inquiry(高度な照会)デモ・セットをビルドして実行する方法を示します。引き続きFindBusinessデモを使用します。
デモが適切に構成され、Oracle Service Registryが実行中であることを確認してください。
次のディレクトリに移動します。
| Windows | %REGISTRY_HOME%¥demos¥advanced¥inquiry |
| UNIX | $REGISTRY_HOME/demos/advanced/inquiry |
次のコマンドを使用して、デモをビルドします。
| Windows: | UNIX: |
| run.bat make | ./run.sh make |
![]() | 注意 |
|---|---|
|
Windowsプラットフォームでデモをコンパイルすると、次のテキストが表示されることがあります。 A subdirectory or file ..\..\common\.\build\classes already exists. . これは予想される現象であり、問題を示すものではありません。 | |
利用可能なすべてのデモのリストを表示するには、次のコマンドを実行します。
| Windows: | run.bat help |
| UNIX: | ./run.sh help |
選択したデモを実行するには、runコマンドのパラメータにデモの名前を指定して実行します。たとえば、FindBusinessデモを実行するには、次のように起動します。
| Windows: | run.bat FindBusiness |
| UNIX: | ./run.sh FindBusiness |
このデモの出力は次のようになります。
Searching for businesses by category where keyedReference
Enter tModelKey [uddi:systinet.com:demo:location:floor]:
Enter keyValue [1]: 3
Enter operator (=,<,>,<=,>=,<>) [=]:>
Enter quantifier (exists,notExists) [exists]:
tModelKey = uddi:systinet.com:demo:location:floor
keyValue = 3
operator = >
quantifier = exists
Check structure validity .. OK
Using Inquiry at url http://van.in.idoox.com:8888/registry/uddi/inquiryExt .. done
Search in progress .. done
Displaying 1 of 1, starting at position 1
Business 1 : uddi:systinet.com:demo:it
<businessInfoExt businessKey="uddi:systinet.com:demo:it" xmlns="http://systinet.com/uddi/api/v3/ext/5.0">
<name xmlns="urn:uddi-org:api_v3">IT</name>
<description xmlns="urn:uddi-org:api_v3">IT department</description>
<serviceInfos xmlns="urn:uddi-org:api_v3">
<serviceInfoExt serviceKey="uddi:systinet.com:demo:it:support" businessKey="uddi:systinet.com:demo:it" xmlns="http://systinet.com/uddi/api/v3/ext/5.0">
<name xmlns="urn:uddi-org:api_v3">Support</name>
<description xmlns="urn:uddi-org:api_v3">Telephone support</description>
<bindingTemplates xmlns="urn:uddi-org:api_v3">
<bindingTemplate bindingKey="uddi:b77eb8f0-86ce-11d8-ba05-123456789012" serviceKey="uddi:systinet.com:demo:it:support">
<description>IT related issues shall be reported there</description>
<accessPoint useType="endPoint">tel:+1-123-456-7890</accessPoint>
<tModelInstanceDetails>
<tModelInstanceInfo tModelKey="uddi:uddi.org:transport:telephone"/>
</tModelInstanceDetails>
</bindingTemplate>
</bindingTemplates>
</serviceInfoExt>
<serviceInfoExt serviceKey="uddi:systinet.com:demo:hr:employeesList" businessKey="uddi:systinet.com:demo:hr" xmlns="http://systinet.com/uddi/api/v3/ext/5.0">
<name xmlns="urn:uddi-org:api_v3">EmployeeList</name>
<description xmlns="urn:uddi-org:api_v3">wsdl:type representing service</description>
<bindingTemplates xmlns="urn:uddi-org:api_v3">
<bindingTemplate bindingKey="uddi:5c546520-78b8-11d8-bec4-123456789012" serviceKey="uddi:systinet.com:demo:hr:employeesList">
<description>wsdl:type representing port</description>
<accessPoint useType="http://schemas.xmlsoap.org/soap/http">urn:unknown-location-uri</accessPoint>
<tModelInstanceDetails>
<tModelInstanceInfo tModelKey="uddi:systinet.com:demo:employeeList:binding">
<instanceDetails>
<instanceParms>EmployeeList</instanceParms>
</instanceDetails>
</tModelInstanceInfo>
<tModelInstanceInfo tModelKey="uddi:systinet.com:demo:employeeList:portType">
<instanceDetails>
<instanceParms>EmployeeList</instanceParms>
</instanceDetails>
</tModelInstanceInfo>
</tModelInstanceDetails>
<categoryBag>
<keyedReference tModelKey="uddi:uddi.org:xml:namespace" keyName="uddi.org:xml:namespace" keyValue="http://systinet.com/wsdl/demo/uddi/services/"/>
<keyedReference tModelKey="uddi:uddi.org:wsdl:types" keyName="uddi.org:wsdl:types" keyValue="port"/>
<keyedReference tModelKey="uddi:uddi.org:xml:localName" keyName="uddi.org:xml:localName" keyValue="EmployeeList"/>
<keyedReference tModelKey="uddi:systinet.com:taxonomy:endpoint:availability" keyName="Available" keyValue="Available"/>
<keyedReference tModelKey="uddi:systinet.com:taxonomy:endpoint:status" keyName="Operational" keyValue="Operational"/>
</categoryBag>
</bindingTemplate>
</bindingTemplates>
</serviceInfoExt>
</serviceInfos>
<contactInfos>
<contactInfo useType="Technical support">
<personName xmlns="urn:uddi-org:api_v3">John Demo</personName>
</contactInfo>
</contactInfos>
</businessInfoExt>
********************************************************