TOPプロジェクト管理> インターフェース定義(WSDL)




実践!BPI
実践!ビジネス・プロセス・インテグレーション

第1回:BO定義とインターフェース定義
著者:日本アイ・ビー・エム  小倉 弘敬、佐藤 泉、津田 佳一
2005/12/8
前のページ  1  2  3  4
インターフェース定義(WSDL)

   次にプロセスを構成する各システム間のインターフェースについて設計を行っていく。インターフェースとはシステムが提供しているサービスの呼び出し方を定めたものである。

   今回のビジネスプロセスでは、プロセスに接続する各システムはすべてWebサービスとして自身のサービスを公開しており、その場合のインターフェース定義はWSDLとなる。WSDLについては「BPIのビジネス要件とそれを実現するための機能」も参照して頂きたい。

一般的にはプロセスが呼び出しを行うシステムは既に運用されている既存のシステムであるケースも少なくない。その場合既存のインターフェースとの連携のためにプロトコルの差異を吸収するアダプターコンポーネントの使用などといった対応をとる場合もある。しかし、本連載では簡単のためそれは考慮しないこととした。

   以下、BO定義の場合と同様に注文管理システムを例にとってインターフェースの作成手順について見ていこう。

   注文管理システムでは、サービスとして「注文情報の入力処理」を外部に公開する。このサービスは入力として注文情報を受け取り、その情報を注文管理システムに入力した後、結果を呼び出し元に返す。これを仕様として記述すると表6のようになる。

サービス名 入力
データ名
入力
データ型
出力
データ名
出力
データ型
説明
inputOrder order Order result boolean 注文データを受け取って注文管理システムに注文情報を入力した後、処理結果を戻り値として返す

表6:注文情報の入力処理サービスの仕様

   ここで、入力データ型には先ほどのBO定義で作成したOrderを、出力データ型にはbooleanを指定している。

   インターフェースの成果物であるWSDLファイルはここで定められた仕様を記述する定義体となる。ここでの仕様を記述しているWSDLの具体的な内容は以下の通りである。

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:bons1="http://OrderProcess"
   xmlns:tns="http://OrderProcess/OrderSystem"
   xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   name="OrderSystem"
   targetNamespace="http://OrderProcess/OrderSystem">
   <wsdl:types>
      <xsd:schema targetNamespace="http://OrderProcess/OrderSystem"
         xmlns:bons1="http://OrderProcess"
         xmlns:tns="http:// OrderProcess/OrderSystem"
         xmlns:xsd="http://www.w3.org/2001/XMLSchema">
         <xsd:import namespace="http://OrderProcess"
         schemaLocation="xsd-includes/http.OrderProcess.xsd"/>
         <xsd:element name="inputOrder">
            <xsd:complexType>
               <xsd:sequence>
                  <xsd:element name="order" nillable="true"type="bons1:Order"/>
               </xsd:sequence>
            </xsd:complexType>
         </xsd:element>
         <xsd:element name="inputOrderResponse">
            <xsd:complexType>
               <xsd:sequence>
                  <xsd:element name="result"nillable ="true" type="xsd:boolean"/>
               </xsd:sequence>
            </xsd:complexType>
         </xsd:element>
      </xsd:schema>
   </wsdl:types>
   <wsdl:message name="inputOrderRequestMsg">
      <wsdl:part element="tns:inputOrder" name="inputOrderParameters"/>
   </wsdl:message>
   <wsdl:message name="inputOrderResponseMsg">
      <wsdl:part element="tns:inputOrderResponse" name="inputOrderResult"/>
   </wsdl:message>
   <wsdl:portType name="OrderSystem">
      <wsdl:operation name="inputOrder">
         <wsdl:input message="tns:inputOrderRequestMsg" name="inputOrderRequest"/>
         <wsdl:output message="tns:inputOrderResponseMsg " name="inputOrderResponse"/>
      </wsdl:operation>
   </wsdl:portType>
</wsdl:definitions>
   インターフェース開発はインターフェース仕様からこのようなWSDLを作成する作業となる。WSDLの場合もBO定義の場合と同様にツールを利用することでより簡単で直感的な操作での開発が可能となる。

   WIDではインターフェースの開発用にインターフェースエディタと呼ばれるGUIのエディタが用意されている。このエディタでは今回のインターフェース仕様で定めた項目をほとんどそのままエディタ上で記述していくだけでWSDLファイルを作成することができる。図5がこのエディタでの開発画面である。

WIDによるインターフェース定義の作成
図5:WIDによるインターフェース定義の作成
(画像をクリックすると別ウィンドウに拡大図を表示します)

   このエディタ上で仕様にそってWSDLのオペレーションを定義し、各オペレーションに対して入力や出力のパラメータを記述していくことがWIDを使用した場合のインターフェースの開発手順となる。

   以上がインターフェース定義についての開発の流れである。実際の開発では今回注文管理システムに対して行ったのと同様の手順でプロセスが関わるすべてのシステムについてのインターフェースを定義していくことになる。システムが既にWSDLを公開している場合にはそのままそれを使用する。


終わりに

   今回はビジネスプロセス設計ステップにおいて成果物として定義した「BO定義(XSD)」と「インターフェース定義(WSDL)」について、注文管理システムを例に仕様の策定から実装の開発までの流れを紹介した。次回はビジネスプロセスやヒューマンタスクなどのコンポーネントの実装について見ていく。

前のページ  1  2  3  4


日本アイ・ビー・エム株式会社 小倉 弘敬
著者プロフィール
日本アイ・ビー・エム株式会社  小倉 弘敬
日本アイ・ビー・エムソリューション開発 インテグレーション所属
ソフトウェア・エバンジェリスト。担当分野は、ビジネス・プロセス・インテグレーション(BPI:Business Process Integration)。WebSphere Business Integration(WBI)ソリューションセンターで、BPIソリューションの開発/提供に従事する。


日本アイ・ビー・エム株式会社 佐藤 泉
著者プロフィール
日本アイ・ビー・エム株式会社  佐藤 泉
入社以来、ワークフロー、ビジネスプロセスエンジン、ビジネスプロセスモニターなどのソフトウェア製品の開発やそれらの製品をベースとしたソリューションの提案活動に従事。
特に、SOAに則ったBPI(Business Process Integration)やBIO(Business Innovation and Optimization)を得意分野とする。


日本アイ・ビー・エム株式会社 津田 佳一
著者プロフィール
日本アイ・ビー・エム株式会社  津田 佳一
日本アイ・ビー・エム ソリューション開発 インテグレーション所属
BPIソリューションの開発/提供に従事する。


INDEX
第1回:BO定義とインターフェース定義
  はじめに
  O社のネット注文システム用ビジネスプロセス
  BO定義(XSD)
インターフェース定義(WSDL)