Hitachi

Cosminexus V11 BPM/ESB基盤 サービスプラットフォーム 開発ガイド 基本開発編


付録D.5 サービスの詳細インターフェースを検討する

これまでに検討した仕様を踏まえて,各サービスのオペレーションのメッセージ構造を決定します。具体的には,「付録D.2(2) 概要WSDLを作成する」で作成した概要WSDLにメッセージ構造の宣言を追加します。

各サービスの要求メッセージと応答メッセージには,次の表に示す情報が必要になるため,これを概要WSDLのメッセージ宣言に反映(ルート要素の下に宣言を追加)します。

表D‒8 サービスの要求/応答メッセージに必要な情報

項番

サービス名

メッセージ

必要な情報

名前

説明

1

在庫引当サービス

reserveItemRequest

ItemName

xsd:string

在庫引当する商品の名前

Quantity

xsd:int

在庫引当する個数

reserveItemResponse

ReservationNumber

xsd:string

引当番号

2

配送手配サービス

deliverItemRequest

ReservationNumber

xsd:string

配送手配する引当番号

deliverItemResponse

DeliveryNumber

xsd:string

配送番号

3

商品手配ビジネスプロセス

arrangeItemRequest

ItemName

xsd:string

手配する商品の名前

Quantity

xsd:int

手配する商品の個数

arrangeItemResponse

DeliveryNumber

xsd:string

配送番号

在庫引当サービスを例にWSDL(InventoryManagementService.wsdl)の定義例を次に示します。WSDL中の太字は,追記した内容を表します。

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions
      targetNamespace="http://sample/InventoryManagementService"
      xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
      xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
      xmlns:xsd="http://www.w3.org/2001/XMLSchema"
      xmlns:ims="http://sample/InventoryManagementService">
 
   <wsdl:types>
      <xsd:schema
            targetNamespace="http://sample/InventoryManagementService"
            elementFormDefault="qualified">
         <xsd:element name="reserveItem">
            <xsd:complexType>
               <xsd:sequence>
                  <xsd:element name="ItemName" type="xsd:string" />
                  <xsd:element name="Quantity" type="xsd:int" />
               </xsd:sequence>
            </xsd:complexType>
         </xsd:element>
         <xsd:element name="reserveItemResponse">
            <xsd:complexType>
               <xsd:sequence>
                  <xsd:element name="ReservationNumber" type="xsd:string" />
               </xsd:sequence>
            </xsd:complexType>
         </xsd:element>
      </xsd:schema>
   </wsdl:types>
 
   <wsdl:message name="reserveItemRequest">
      <wsdl:part name="parameters" element="ims:reserveItem" />
   </wsdl:message>
 
   <wsdl:message name="reserveItemResponse">
      <wsdl:part name="parameters" element="ims:reserveItemResponse" />
   </wsdl:message>
 
   <wsdl:portType name="InventoryManager">
      <wsdl:operation name="reserveItem">
         <wsdl:input message="ims:reserveItemRequest" name="reserveItemRequest" />
         <wsdl:output message="ims:reserveItemResponse" name="reserveItemResponse" />
      </wsdl:operation>
   </wsdl:portType>
 
   <wsdl:binding name="InventoryManagerSoapBinding" type="ims:InventoryManager">
      <soap:binding style="document"
            transport="http://schemas.xmlsoap.org/soap/http" />
      <wsdl:operation name="reserveItem">
         <soap:operation soapAction="" />
         <wsdl:input name="reserveItemRequest">
            <soap:body use="literal" />
         </wsdl:input>
      <wsdl:output name="reserveItemResponse">
            <soap:body use="literal" />
         </wsdl:output>
      </wsdl:operation>
   </wsdl:binding>
 
   <wsdl:service name="InventoryManagementService">
      <wsdl:port binding="ims:InventoryManagerSoapBinding" name="InventoryManager">
         <soap:address location="http://localhost/InventoryManagementServiceWeb/services/InventoryManager" />
      </wsdl:port>
   </wsdl:service>
</wsdl:definitions>

詳細インターフェースを記載したWSDLは,サンプルプログラムに同梱されています。サンプルプログラムの格納場所については,マニュアル「サービスプラットフォーム ファーストステップガイド」の「付録A サンプルプログラムのファイルの構成」を参照してください。