業務フロー図ライブラリ Q Business Process Management

出典: Q-BPM

BPELとは、ネットワーク上で複数のアプリケーションの機能を順に呼び出してタスクを実行する手順を一連のビジネスプロセスとして記述するための言語。Business Process Execution Language。

目次

BPELの概要

抽象プロセスとは
メッセージの流れなどビジネスプロセス間の相互作用を表現する。ビジネスプロセスの詳細部分は表示しない。

BPELとは、ネットワーク上の複数のアプリケーションの機能を自動的に順々に利用してタスクを処理し実行していくプロセスを記述するための言語であり、その役割は

  • 抽象プロセスの記述
  • 実行エンジンへの実装

の二つである。BPELで記述されるビジネスプロセスは「BPELプロセス」または「BPELフロー」と呼ばれる。


BPELで記述されたプロセスでは自動的にアクティビティが処理され、一連のフローをあたかも1つのサービスとして呼び出せる形になっている。このような、サービスを「コンポジットアプリケーション(Composite Application)」と呼ぶ。 また、アプリケーションの機能をネットワーク経由で利用できるようにしたものを「webサービス」と言い、www(World Wide Web)関連の技術が利用されている。webサービスは、命令を送信すれば、webを通じて自動的に期待するアクションを返してくれる。BPELは、このWebサービスを利用してプロセスを実行していくための言語である。

BPELの特徴

XMLベース

BPELは、XML(Extended Markup Language)に基づいている言語である。ネットワークを利用してアプリケーションの機能を利用するので、XMLベースになっている。

webサービスの利用

BPELビジネスプロセスを定義する際は、

  • invoke(アプリケーションの機能を呼び出す)
  • receive(要求を受信する)
  • reply(結果を返信する)

といったアクティビティを組み合わせ、「リクエストメッセージをreceiveすることで実行が開始され、実行結果をreplyすることで終了する」というプロセスを作成するのが基本となる。これらは、webサービスを利用して自動的に実行される。

BPMN・BPEL・XPDLの比較

BPELは、ビジネスプロセスのグラフィカルな表現方法の定義や特定の設計手法を提供するものではない。ビジネスプロセスのグラフィカルな表現方法を規定するのは、BPMNである。
BPMN・BPEL・XPDLイメージ
BPMN・BPEL・XPDLイメージ
  BPMNBPELXPDL
性格描画記法手続き保存フォーマット画像保存フォーマット
主目的可視化他システムの制御BPMN図のXML化
ダイアグラム情報×
データ形式画像XMLXML

BPELは、Webサービスを使ったプロセスをデザインするための実行言語であって、アプリケーションを統合しプロセスを自動的に実行するのに向いている。BPELで書かれたデータの形式は、テキストファイルになる。それに対して、BPMNはビジネスプロセス図の描写法を規定するものであり、ビジネスプロセスをグラフィカルに表現するのに向いている。BPMNに従って書かれたデータは、画像ファイルになる。XPDLはBPMNで表記されたビジネスプロセス図をテキスト化し保存するための言語である。

BPMNからBPELへの変換

BPMNではBPELへのマッピングが示されているが、すべてがBPMNからBPELへの変換できるわけではなく、多くは複雑化したり変換できなかったりする。

変換例

ある業務の一部分において、条件によって次に行う作業が異なり、「Xが10以上」なら「A」というタスクを行い「Xが10未満」ならBを行うとする。

BPEL

このような業務をBPEL記述すると以下のようになる。後半部分のswitch以降が、下図の色付け部分を表す。

<process 
  name="processX" 
  targetNamespace="http://www.questetra.com"
  xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/">
               ・
               ・
     <partnerLinks>
        <partnerlink partnerLinktype="ns1:RiskAssessmentPT"
             name="assessor"/ partnerRoles="assessor">
               ・
               ・
       <variables>
           <variables messagetype=“ns1:CreditInformationMessage”  name="request"・
               ・
               ・
             <switch name="sub_DeicideRisk">
                <case condition="bpws:getVariableData('request','X')">=10
                    <sequence name="DecideRisk_seq1">
                         <invoke operation="check" inputVariable="request"
                              name="A""outputVariable="risk"
                              portType="ns1:RiskAssessmentPT" partnerLink="assessor"/>
                    </sequence>
                </case>
               ・
               ・

BPMN

BPMNによるプロセス図
BPMNによるプロセス図

このような業務をBPMNに従ってプロセス図として表記すると右図のようになる。色付けされたところが分岐個所である。

BPELの仕様

BPEL4WS 1.0

2002年にIBM、BEA、Microsoftが、IBMが仕様開発を行っていたWSFLとMicrosoftが開発していたXLANGを基に合同提案。BPEL4WSは、Business Process Execution Language for Web Servicesの略。

BPEL4WS 1.1

2003年にIBM、BEA、Microsoft、SAP、Siebelが標準化団体OASISに提出。

WS-BPEL 2.0

2007年にOASISによって発表。WS-BPELは、Web Service Business Process Execution Languageの略。

WS-BPEL Extension for People1.0(WS-BPEL4People)

2007年にOracle、IBM、BEA、SAP、Adobe、Active Endpointsの6社によって発表されたWS-BPELの拡張版。 複数のアプリケーションを順に利用して実行するビジネスプロセスの記述に向いているWS-BPELに対して、レビュー、認証、データ入力などヒューマンタスクを管理するワークフローの記述向け。

BPEL 沿革
BPEL 沿革

BPELとSOAの関係

ESBとは
Enterprise Service Busの略で、各ソフトウェアを個々に結び付けるのではなく、バスを介して結び付けようとする設計手法。

この場合、個別のインターフェースは必要なくなるという考え方。

SOAとは、Service-Oriented Architectureの略で、ビジネスの構成単位に合わせて構築・整理されたソフトウェア部品や機能をネットワークで相互に連携させることによりシステムを構築しようとするシステムアーキテクチャのことである。 SOAによりサービス化されたアプリケーションがそろえば、それらを組み合わせたビジネスプロセスが構築される。そのようなビジネスプロセスの定義を行うのが、BPELである。そして、「各アプリケーションをどのように結び付けるか」という問題を扱っているのが、ESBに基づく。

BPELのタグ

同期とは
次の処理に影響がある場合などに、他の作業が終わってデータが更新されるまで待機すること。

BPELの基本的なタグ定義は次の通り。

  1. Webサービスの呼び出し <invoke>
  2. 待機状態(リクエストの受信)<receive>
  3. 同期オペレーションのレスポンスの生成 <reply>
  4. データ操作 <assign>
  5. 失敗、例外を示す <throw>
  6. 明示的な一定時間の待機状態 <wait>
  7. プロセス全体の停止 <terminate>
  8. アクティビティの連続したセットを表す <sequence>
  9. 並列に呼び出されるアクティビティのセットを表す <flow>
  10. ブランチのCase-switch表現(条件分岐) <switch>
  11. ループの定義を表す<while>
  12. いくつかのアクティビティから選択することを表す <pick>


関連記事

参考

ツールボックス
リンク元
リンク先の更新状況
アップロード
特別ページ
印刷用バージョン
この版への固定リンク

カテゴリ
一般名詞 | 固有名詞 | 汎用業務プロセス | 基幹系業務プロセス | 支援管理系業務プロセス
Q-BPM Q-BPMでは企業内の業務フローについて、そのサンプルプロセスを幅広く例示し、業務フロー図の作成を支援します。 (※ 業務フロー図: 業務の流れ図/ビジネスダイアグラム/業務プロセス図) 当サイトは世界中の協力者を募るクラウドソース型情報発信サイトであり、サイトコンテンツは原則として「特定条件を満たせば転載可能」な「CC-By SA」と呼ばれるライセンスのもとに公開されます。 株式会社クエステトラ このサイトはBPMに興味があるが多数の書籍や文献、難しい用語の調査に膨大な時間を費やしている世界中のビジネスマンの為に株式会社クエステトラによって始められました。株式会社クエステトラはBPMに興味があるが多くの関連用語を調べたり文献を探したりする手間を減らして、BPMを理解したり、BPMを実際に活用したりする時間を世界中のビジネスマンに貢献したいと思っています。

Powered by MediaWiki CreativeCommons By SA