Cosminexus V9 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 サンプルプログラムのファイルの構成」を参照してください。