ヘッダーをスキップ
Oracle® WebCenter Content Imaging開発者ガイド
11g リリース1 (11.1.1)
B72422-01
  ドキュメント・ライブラリへ移動
ライブラリ
目次へ移動
目次
索引へ移動
索引

前
 
次
 

8 Imaging APIをPure Webサービスとして使用

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

8.1 Pure WebサービスとしてのImaging APIの使用について

Imagingサービスの活用に最も便利な方法はネイティブのJava APIですが、ほとんどがImaging Webサービス・セットにコールを折返すプロキシ・クラスとユーティリティ・クラスのセットです。ネイティブJava APIにより公開されている機能はすべて、ダイレクトWebサービス・コールから利用できます。ダイレクトWebサービスを経由してAPIを使用するには、WSDLドキュメントとWebサービスを呼び出す環境固有のテクニックを深く理解する必要があります。

8.1.1 WebサービスWSDLの検索

Imaging Webサービスの起動方法を理解するには、まず、WSDLドキュメントがどこにあるかを知らなければなりません。次のリストは、ImagingサービスのWSDLの場所をまとめたものです。ホスト名およびポート番号は、インストールによって異なります。

  • http://<ipmhost>:<port>/imaging/ws/ApplicationService?wsdl

  • http://<ipmhost>:<port>/imaging/ws/ConnectionService?wsdl

  • http://<ipmhost>:<port>/imaging/ws/DocumentContentService?wsdl

  • http://<ipmhost>:<port>/imaging/ws/DocumentService?wsdl

  • http://<ipmhost>:<port>/imaging/ws/ImportExportService?wsdl

  • http://<ipmhost>:<port>/imaging/ws/LoginService?wsdl

  • http://<ipmhost>:<port>/imaging/ws/PreferenceService?wsdl

  • http://<ipmhost>:<port>/imaging/ws/SearchService?wsdl

  • http://<ipmhost>:<port>/imaging/ws/SecurityService?wsdl

  • http://<ipmhost>:<port>/imaging/ws/TicketService?wsdl

8.2 ステートレス・セッションでのWebサービスの使用

Imaging Webサービスの大半は、ステートレス・モード、ステートフル・モードのどちらでも動作します。ステートレス・モードでは、それぞれのサービス・リクエストで渡された認証資格証明書を使用して、ユーザーのログイン、リクエストされた操作の実行、ログアウトが透過的に行われ、その後、戻ります。

8.3 ステートフル・セッションでのWebサービスの使用

ステートフル操作では、まず、LoginService.login操作がコールされ、Imagingとのユーザー・セッションが確立されます。ログイン・メソッドへの資格証明は、そのときに有効なセキュリティ・ポリシーにより、ポリシーが適用されていない場合はHTTP Basic認証経由で提供されます。

ログイン操作により戻されたjsessionid Cookieは続けて別のサービスのコールに渡されます。これにより、コールからコールへセッションの状態が保持されます。ただし、Webサービスのセキュリティのため、OWSMセキュリティ・ポリシー強制に従って、コールごとにユーザー資格証明を渡す必要があります。このユーザー・セッションは、LoginService.logoutへのコールで終わります。

前述のとおり、ほとんどのImagingサービスはどちらかのモードで動作します。ただし、DocumentContentServiceは例外です。DocumentContentService操作は、ストリームMessage Transmission Optimization Mechanism (MTOM) 機能を使用できますが、この機能にはOWSMセキュリティ・ポリシーとの互換性がありません。したがって、DocumentContentService操作に適切なセキュリティを提供するには、ステートフル・モードが必要です。

8.4 AXF Webサービスの使用

AXFサーバー・サービスとのインタフェースとして、WSDLファイルを生成できます。WSDLファイルは、AXFサーバー・サービスが理解できるデータを渡す能力を提供します。これにより、WebCenter Content内の様々なコマンドにアクセスできるようになります。

8.4.1 AXF WebサービスのWSDLファイルのロケーティング

AXF Webサービス・ファイルは、次の場所にあります。ホスト名およびポート番号は、インストールによって異なります。

http://<host>:<port>/axf-ws2/AxfSolutionMediatorService?wsdl


注意:

上のURLは、IPMサーバーでのみ有効です。


8.4.2 WSDLファイル構造

WSDLファイルは、正式には、Webサービスに渡されるデータの説明を含む要素を使って構造化されています。この構造により、送信側アプリケーションと受信側アプリケーションの両方が、交換されているデータを解析できるようになります。

WSDL要素には、データに対して実行される操作の説明とプロトコルまたはトランスポートへのバインディングが含まれます。これにより、受信側アプリケーションは、データを処理しながら、データに応答するまたはデータを戻す方法を解析できるようになります。各WSDL要素に追加のサブ要素が含まれることもあります。

WSDLファイル構造に含まれる要素を大別すると次のようになります。

  • データ型: 一般に、メッセージで使用されるXMLスキーマの形式を取ります。

  • メッセージ: 完全なドキュメント、またはメソッド起動にマップされる引数として、メッセージの形式をとるデータの定義。

  • ポート・タイプ: アドレスにマップされる操作のセット。バインディングに使用される操作のコレクションを定義します。

  • バインディング: 特定のポート・タイプにおける操作とメッセージで実際に使用されるプロトコルとデータ形式。

  • サービスとポート: サービスは、ポートにバインディングをマップします。また、ポートは通信交換に使用されるバインディングとネットワーク・アドレスの組合せです。

8.4.3 データ型

データ型<types>は複合型および関連する要素を定義します。Webサービスは、単純データ型(文字列、整数、ブールなど)と複合データ型の両方をサポートします。複合型は、いくつかの単純型、またはサブ要素の配列を含む構造化XML文書です。

次のAxfRequestセットのコード部分では、要素CommandNamesapce、solutionNamespace、requestParameters、UserContext、およびusernameを定義し、これらを文字列に指定しています。

<xs:complexType name="axfRequest">
  <xs:sequence>
    <xs:element name="commandNamespace" type="xs:string"
    minOccurs="0" />
    <xs:element name="conversationId" type="xs:string"
    minOccurs="0" />
    <xs:element name="requestParameters">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="entry" minOccurs="0"
          maxOccurs="unbounded">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="key" minOccurs="0"
                type="xs:string" />
                <xs:element name="value" minOccurs="0"
                type="xs:string" />
              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    <xs:element name="role" type="xs:string" minOccurs="0" />
    <xs:element name="solutionNamespace" type="xs:string"
    minOccurs="0" />
    <xs:element name="systemName" type="xs:string" minOccurs="0" />
    <xs:element name="userContext">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="entry" minOccurs="0"
          maxOccurs="unbounded">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="key" minOccurs="0"
                type="xs:string" />
                <xs:element name="value" minOccurs="0"
                type="xs:string" />
              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
    <xs:element name="username" type="xs:string" minOccurs="0" />
  </xs:sequence>
</xs:complexType>

同様に、次のAxfResponseセットのコード部分では、要素ConversationId、Errorcode、ErrorMessage、およびresponseCommandsを定義し、これらを文字列に指定しています。

<xs:complexType name="executeResponse">
  <xs:sequence>
    <xs:element name="response" type="tns:axfResponse"
    minOccurs="0" />
  </xs:sequence>
</xs:complexType>
<xs:complexType name="axfResponse">
  <xs:sequence>
    <xs:element name="conversationId" type="xs:string"
    minOccurs="0" />
    <xs:element name="errorCode" type="xs:string" minOccurs="0" />
    <xs:element name="errorMessage" type="xs:string"
    minOccurs="0" />
    <xs:element name="pid" type="xs:string" minOccurs="0" />
    <xs:element name="responseCommands" type="tns:responseCommand"
    nillable="true" minOccurs="0" maxOccurs="unbounded" />
  </xs:sequence>
</xs:complexType>
<xs:complexType name="responseCommand">
  <xs:sequence>
    <xs:element name="command" type="xs:string" minOccurs="0" />
    <xs:element name="value" type="xs:string" minOccurs="0" />
  </xs:sequence>
</xs:complexType>

8.4.4 メッセージ

メッセージ<message>は、メソッド起動にマップされる引数としてデータを定義します。

<message name="execute">
  <part name="parameters" element="tns:execute" /> 
</message>
<message name="executeResponse">
  <part name="parameters" element="tns:executeResponse" /> 
</message>

8.4.5 ポート・タイプ

ポート・タイプ<portType>は、バインディングに使用される操作のコレクションを定義します。DocInfo.wsdlファイルは、DocInfoSoapとDocInfo操作名(メソッド名)を、メッセージを処理するためのI/O情報とともに提供します。

<portType name="AxfSolutionMediatorWS">
  <operation name="execute">
    <input message="tns:execute" />
    <output message="tns:executeResponse" />
  </operation>
</portType>

8.4.6 バインディング

バインディング<binding>は、特定のポート・タイプにおける操作とメッセージで実際に使用されるプロトコルとデータ形式を定義します。

<binding name="AxfSolutionMediatorPortBinding" type="tns:AxfSolutionMediatorWS">
  <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
  <operation name="execute">
    <soap:operation soapAction="execute" />
    <input>
      <soap:body use="literal" />
    </input>
    <output>
      <soap:body use="literal" />
    </output>
  </operation>
</binding>

8.4.7 サービスとポート

サービス<service>はポートにバインディングをマップします。ポートは、バインディングと、通信交換に使用されるネットワーク・アドレスの組合せです。ポートは、定義済トランスポート上でポート・タイプ(操作)のセットを公開するために使用されます。

<service name="AxfSolutionMediatorService">
  <port name="AxfSolutionMediatorPort" binding="tns:AxfSolutionMediatorPortBinding">
    <soap:address location="http://&lt;MachineName&gt;:&lt;Port&gt;/axf-ws2/AxfSolutionMediatorService" />
  </port>
</service>