JP2004258823A - Business process transaction method and system, and transaction program therefor - Google Patents

Business process transaction method and system, and transaction program therefor Download PDF

Info

Publication number
JP2004258823A
JP2004258823A JP2003046684A JP2003046684A JP2004258823A JP 2004258823 A JP2004258823 A JP 2004258823A JP 2003046684 A JP2003046684 A JP 2003046684A JP 2003046684 A JP2003046684 A JP 2003046684A JP 2004258823 A JP2004258823 A JP 2004258823A
Authority
JP
Japan
Prior art keywords
business process
message
next step
definition
line
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2003046684A
Other languages
Japanese (ja)
Other versions
JP4352722B2 (en
Inventor
Akira Tanaka
明 田中
Akiko Ogawa
晶子 小川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2003046684A priority Critical patent/JP4352722B2/en
Priority to US10/650,688 priority patent/US20040167795A1/en
Publication of JP2004258823A publication Critical patent/JP2004258823A/en
Application granted granted Critical
Publication of JP4352722B2 publication Critical patent/JP4352722B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/103Workflow collaboration or project management

Abstract

<P>PROBLEM TO BE SOLVED: To realize distributed execution of a business process in distributed transaction environment. <P>SOLUTION: By describing a definition of the business process by use of a standard XML language, and transferring it to a computer node executing each step of the business process together with information necessary for the step, computers executing the business process can execute the business process, in equal relation to each other, in a state that the computers grasp an overall image of the business process. By providing a monitoring node and transmitting a completion report of each step, monitoring of an execution state of the business process is realized. <P>COPYRIGHT: (C)2004,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
本発明はワークフローやビジネスプロセスの処理技術に関する
【0002】
【従来の技術】
従来ワークフローの標準化やこれを実現した各種プロダクトにみられるように、ビジネスプロセスの制御はワークフロー技術の応用として実現されてきた。この方法では、まず利用者がビジネスプロセスを定義し、ワークフローエンジンと呼ばれるソフトウェアコンポーネントがこの定義に基づき個々のステップの遂行責任を持つソフトウェアや人に対し遠隔手続き呼び出し(RPC)やメッセージ送信などの通信手段を用い、ビジネスプロセス定義に従い順次起動ないし作業依頼することでビジネスプロセスの実行と進行状況監視を行っていた。
【0003】
また、ビジネスプロセス定義の分野ではXML言語を用いた記述方法の標準化が議論されていることが知られている。これらは記述のための文法規則であり、記述された定義文書の使い方について規定するものではない。
【0004】
更に、特開平9−265408号公報で開示されているような技術では、ワークフローの分散実行という意味で類似の領域を狙ったものであり、▲1▼ビジネスプロセスの自動化というより文書ベースのワークフローの自動化であること、及び▲2▼送信されるワークフロー定義にはフロー情報のほかにプログラムが含まれ各ノードで実行されることを前提にしていること、が特徴であり、本特許の請求項としている、XML「文書」引渡しによる人間の操作を前提としない「ビジネスプロセス」実行の実現、ステップ実行主体の動的発見、文書情報やメッセージ情報の参照による転送、ビジネスプロセス進捗状況モニタリングのための監視ノードの設定、など各種の点において異なるもの(対象領域、技術要素)である。
【0005】
【特許文献1】
特開平9−265408号
【0006】
【発明が解決しようとする課題】
ワークフローエンジンという制御コンポーネントにより集中制御や管理を行うため、その集中制御・管理専用の信頼性の高いソフトウェアやハードウェアが必要であった。
【0007】
更に、企業の境界をまたがるようなビジネスプロセスではマスタ・スレーブという関係はなじまなず、各企業システムが対等な関係で連携しビジネスプロセスを実現出来るようにすることが求められていた。
【0008】
また、ステップを実行する主体はその実行に必要最低限の情報だけを与えて処理を行う仕組みとなっていたため、その実行主体にとって当該処理を行うことがビジネス面から妥当か否かといった判断を行う情報が十分に与えられていなかった。
【0009】
本発明の目的は、分散処理環境におけるビジネスプロセスの実行を分散型で実現することにある。
【0010】
【課題を解決するための手段】
上記課題を改善するために、文書記述言語を用いて記述したビジネスプロセス定義とビジネスプロセス実行に必要な情報をメッセージ送信という機能を用いステップ間で順次渡して行くという手段を用意する。これにより、制御ノードを必要とせず、参加計算機ノードが対等な立場で、更にビジネスプロセスとしてのコンテキストを理解した上で各ステップ処理を遂行出来るようになる。
【0011】
一方、ビジネスプロセス処理の進行状況のモニタリング用に監視ノードを用意し、ステップ処理終了時点の結果通知を受けられるようにする。これを用意することで、進行状況のモニタリングだけでなく、ステップでの処理が不成功となった場合に適切な動作を取らせることが可能となる。
【0012】
【発明の実施の形態】
以下、本発明の実施例を図面に基づいて説明する。図1は本発明における一実施例の構成を示すものである。本実施例では、ネットワーク8で接続された七つの計算機ノードを示しており、ビジネスプロセス起動ノード1がビジネスプロセスを起動する。このビジネスプロセスで最初に行うステップは布地購入ステップで、ビジネスプロセス起動ノード1は布地購入ステップ実行ノード4に図2から図6に例を示したビジネスプロセス定義文書と、図7に示すメッセージを送信する。布地購入ステップの実行終了後、図7のビジネスプロセス定義文書にある条件に従って、衣料品の製造ステップ実行ノード5または衣料品以外の製造ステップ実行ノード6のいずれかに、図2から図6に例を示したビジネスプロセス定義文書と図7のような必要な情報を含むメッセージを送信する。なおメッセージ形式は各ステップ実行ノードが公開している形式に従うものとする。これらのステップでの処理が終了すると、衣料品の製造ステップ実行ノード5または衣料品以外の製造ステップ実行ノード6のいずれかから、パッケージステップ実行ノード7に、図2から図6に例を示したビジネスプロセス定義文書と図7のような必要な情報を含むメッセージを送信する。パッケージステップ実行ノードでの処理が正常に終了すると、ビジネスプロセスが完了し、ビジネスプロセス終了報告ノードに報告を送信する。
【0013】
ビジネスプロセスの進行状況のモニターを可能にするため、各ステップでの処理が正常に終了した時点でビジネスプロセス監視ノード2に通知メッセージを送信するものとする。ステップでの処理に問題があった場合は、ビジネスプロセス監視ノード2が、それまで正常終了の報告をあげてきた各ステップ実行ノードに対して補償動作指示などの適切な動作を実施する。
【0014】
ここで、ビジネスプロセス起動ノード1、ビジネスプロセス監視ノード2、ビジネスプロセス終了報告ノード3の三つのノードは、同じ計算機であっても構わないし、別々の計算機としても構わない。
【0015】
なお、ビジネスプロセス定義文書を直接メッセージの一部として送信するのではなく、ネットワーク上のアクセス可能な場所に置き、URLのようなアクセス方法と位置情報を参照という形でメッセージに含めて送信しても良い。
【0016】
図2〜図6は本ビジネスプロセスをXML文書として定義した例である。本発明はXML言語での記述例を示しているが、XMLに限定されるものではない。構造的に記載可能なデータ構造であれば適用可能である。プログラム間で通信するメッセージを文書という表現をしているが、メッセージや要求(リクエスト)でも実現可能である。図2は文書構造であり、ビジネスプロセスは説明、属性、責任システム、ビジネスプロセス・インバリアント、ビジネスプロセス事前条件、報告先、ステップ定義、ビジネスプロセス事後条件から構成されることを示す。また、その内部に複数のステップを定義することが出来る。またステップは、インバリアント、事前条件、シグニチャ、事後条件、次のステップという要素から構成されることを示している。図3以降がビジネスプロセスの定義実体の例である。
【0017】
図7はビジネスプロセス定義文書と共に各ステップに送られるメッセージの例である。宛先によりステップを遂行する計算機とアプリケーションが指定され、ビジネスプロセスID、ステップIDにより、どのビジネスプロセスのどのステップの処理を行うのかを指示している。それ以降のデータはステップ実行に必要となるパラメタである。
安全性の観点からメッセージ自体をPKI等を用い暗号化することもある。
【0018】
図8はビジネスプロセスの実行に参加する各計算機ノードにおける処理の流れの例を示したものである。9でメッセージを受信し、そのメッセージ中にビジネス定義文書が含まれていればそれを10で取り出し、含まれていない場合には11のようにURL情報をもとにネットワーク経由で取り出し、12でメッセージに含まれるパラメタ情報と併せて解析を行う。この結果に基づき、13でビジネスプロセス定義のなかで遂行を求められているステップを発見し、処理に必要な入力情報であるシグニチャを14で作り上げ、15で処理の実行を行う。その結果は16で監視ノードへ報告し、ステップ定義に含まれる条件により、17で次に行われるべきステップを確定する。最後に18で次のステップに渡すべきメッセージを組立て、17で確定したステップ実行計算機ノードに宛てこれを送信する。
【0019】
図9はこれらビジネスプロセス処理方法を実現する装置の構造例を示したものである。19はビジネスプロセス利用者システム例であり、ディスプレイ20、入力装置21、CPU22を備えている。この装置でビジネスプロセス定義編集プログラムとWebサービスクライアントプログラム23を動作させることで、19の利用者はビジネスプロセス定義文書を作成するとともに、31で示すビジネスプロセスステップ実行装置にその処理実行の依頼を行う。24はビジネスプロセス監視装置の構成例であり、ディスプレイ25、入力装置26、CPU27を備えている。この装置でビジネスプロセス進捗管理Webサービスプログラム28を動作させることで、31で示すビジネスプロセスステップ実行装置から実行結果を随時受信し、19のビジネスプロセス利用者システムなどから進捗状況の把握が可能となる。また、実行できなかったという結果を受け取った場合、ビジネスプロセス利用者から得た取るべき動作のテーブルなどをDB29に保管し、対応するエントリを読み出すことで動作指示を出すことができる。31はビジネスプロセスステップ実行装置の構成例であり、ディスプレイ32、入力装置33、CPU34を備えている。この装置でビジネスプロセスステップ処理Webサービスプログラム35を動作させることで、ビジネスプロセス定義に現れる各ステップの処理を実行することができる。19、24、31の各装置はネットワーク30で接続されており、オープンな通信が出来るものとしている。
【0020】
図10は本ビジネスプロセス処理方法とビジネスプロセス処理装置を使い、ビジネスプロセスの進捗状況監視と必要に応じ補償動作を起動するなどの対応を代行するというビジネスの方法例を示したものである。36のビジネスプロセス利用者は、ビジネスプロセスの定義を行い、その実行を37のビジネスプロセス処理サービス提供者に依頼する。ビジネスプロセス処理サービス提供者は依頼者に替わり、ビジネスプロセスの始めのステップを実行するステップ実行装置38に対し、ビジネスプロセス定義文書とステップ処理に必要なパラメタ情報をメッセージとして送信する。38はステップ処理後、図1に対する説明で述べたような方法で、39や40のステップ実行装置にメッセージを送信する。このとき、各ステップ処理終了後に処理終了や処理不可といった結果情報を37に送信するが、処理不可の場合には、37から補償行為に相当する別のビジネスプロセスが流されることもある。37は利用者に対してビジネスプロセスの管理というサービスを提供することで対価を得る。
【0021】
以下、例を用い本発明を実現した場合のプログラムの動作を説明する。
【0022】
1 ビジネスプロセス開始プログラムの動作
1.1 前提
1)ビジネスプロセス定義(XML文書)はビジネスプロセス開始プログラム実行前に以下のいずれかの形態で作成されているものとする。
【0023】
すべての値が入った定義文書(例:サービス実行者名や渡すパラメタ値全て)−これはビジネスプロセスの実行者、パラメタ等を全て固定にし、途中で変更を許さないもの。この場合には、変更が行われなかったことを証明するための機構(例えば暗号化やデジタル署名)を併用することを想定する。
【0024】
部分的にパラメタ化された定義文書(例:サービス実行者に渡す各種情報をパラメタ化したもの)―これはステップ実行結果をビジネスプロセス定義の一部として次のステップに渡す場合などを想定。
【0025】
すべての変数要素をパラメタ化し、テンプレートとしての利用を目的とした定義文書(例:典型的な購買プロセス)−これはビジネスプロセス定義のテンプレートのライブラリやリポジトリがあり、そこからベースとなるテンプレートを検索し、カスタマイズし利用する。
【0026】
2)上記ビジネスプロセス定義は、▲1▼ビジネスプロセス開始プログラムへの入力データ、または、▲2▼ビジネスプロセス定義リポジトリ(DB)から読み出して自らの用途用にパラメタ設定、という形態で利用する
1.2 例に基づく処理ロジックの説明
1)ビジネスプロセスXML定義文書の読み込みを行う
2)同文書の構文解析を行う
3)<説明>を画面に出力する(図3の2行目に対応し「本ビジネスプロセスは布地を購入し衣料品等を製造販売するもの」というメッセージをディスプレイに表示)
4)<属性>がビジネストランザクションであることをチェックする(図3の3行目「ビジネストランザクション」に対応)
5)<責任システム>が本ビジネスプロセス実行を開始するシステム名と一致することをチェックする(図3の4行目「ABC製作所.com/BP」に対応)
6)<ビジネスプロセスインバリアント>として<ビジネスプロセスID>が含まれていることをチェックする(図3の5から7行目「XYZ123477」に対応)
7)<ビジネスプロセスID>が設定されている場合はこれを本ビジネスプロセスのIDとして保存する(設定されていない場合には、ビジネスプロセス開始プログラムが一意な値を生成し設定)
8)<ビジネスプロセス事前条件>の<布地ストック>の値(100)と現実のストック数(開始プログラムが情報ベースより読み出す)を比較し、現実のストック数が100以下であることをチェックする(図3の8から10行目「100」に対応)
9)<報告先>が設定されている場合にはこれを本ビジネスプロセスでの報告先として保存する(設定されていない場合には、ここに責任システムのアドレスを設定)(図3の11行目「xxx.yyy.com/ReportHandler」に対応)
10)<ステップ定義>が存在することをチェックする(図3の12行目に対応)
11)最初に現れる<ステップ>の属性である識別子(サービス名)を保存する(図3の13行目及び図7の18行目「布地購入」に対応)
12)保存した識別子に基づきステップ実行者を選定する
・ネームサービスによる選定(識別子が具体的なシステム名の場合)
・UDDIによる選定(識別子がサービス名の場合、UDDIでサービスを検索し、判断基準にあうサービス提供者を選定)
13)ステップ実行者に渡すパラメタの準備を行う
<インバリアント>が<日数>の場合、ビジネスプロセス定義と共に送付するメッセージに<日数>の具体的な値を<Days>として設定、但し責任システムが最初から数値を設定している場合は何もしない(図3の14−16行目に対応した図7の19行目「7」)
<オーダID>についても、ビジネスプロセス定義と共に送付するメッセージに<オーダID>の具体的な値を<OrderID>として設定、但し責任システムが最初から数値を設定している場合は何もしない(図3の22行目に対応した図7の20行目「ABC000891」)
<オーダタイプ>についても、ビジネスプロセス定義と共に送付するメッセージに<オーダタイプ>の具体的な値を<OrderType>として設定、但し責任システムが最初から数値を設定している場合は何もしない(図3の23行目に対応した図7の21行目「木綿布地」)
<数量>についても、ビジネスプロセス定義と共に送付するメッセージに<数量>の具体的な値を<Quantity>として設定、但し責任システムが最初から数値を設定している場合は何もしない(図3の24行目に対応した図7の22行目「50000」)
<単価>についても、ビジネスプロセス定義と共に送付するメッセージに<単価>の具体的な値を<Price>として設定、但し責任システムが最初から数値を設定している場合は何もしない(図3の25行目に対応した図7の23行目「3000」)
<発注日付>についても、ビジネスプロセス定義と共に送付するメッセージに<発注日付>の具体的な値を<Date>として設定、但し責任システムが最初から数値を設定している場合は何もしない(図3の26行目に対応「20020701」)
14)選定したサービス提供者に送る以下のメッセージを組立て(図7に主な項目を例示)
・ ヘッダ部分
・ 発信システム名:責任システム名
・ ビジネスプロセスID:ビジネスプロセスID
・ 宛先システム名:選定されたサービス提供者名
・ ステップ名:ステップ識別子
・ 監視システム名:報告者名
・ コンテンツ部分
<Days>、<OrderID>、<OrderType>、<Quantity>、<Price>、<Date>の(名前、値)リストからなるXML文書(これらの元となる<日数>、<オーダID>、<オーダタイプ>、<数量>、<単価>、<発注日付>が責任システムにより設定されていない場合)
上記ビジネスプロセス定義XML文書(またはそのURL)
15)選定したサービス提供者へこのメッセージを送信する
16)監視システムにビジネスプロセス文書を送付し当該ビジネスプロセスがスタートしたことを連絡する
2 衣料材購入ステップでのプログラムの動作
2.1 前提
1)メッセージを受信する
2)メッセージを解析し、ヘッダ部分の各情報、コンテンツ部分の各情報を保存する(図7に例示した内容)
3)ヘッダ部分に含まれるステップ名を用い、コンテンツ部分のビジネスプロセス定義から対応するステップを確定する(例では布地購入ステップ)(図3の13行目の情報を使用)
4)ステップ実行を受け入れることが出来ない場合には、監視ノードにその旨の連絡をする
2.2 例に基づく処理ロジックの説明
1)<インバリアント>の<日数>の値(”Days”)は、メッセージに<Days>があるためその値で置き換え保存する(図3の15行目に対応し、図7の19行目の値で置き換えることに相当)
2)<オーダID>、<オーダタイプ>、<数量>、<単価>、<発注日付>についても同様に、<OrderID>、<OrderType>、<Quantity>、<Price>、<Date>の値で置き換え保存する(図3の22から26行目及び図7の20から24行目に対応)
3)<事前条件>の<コントラクト>の値(契約済み)が、ステップ実行者と責任システムとの間の契約関係情報(情報ベースから読み出す)と合致していることをチェックする(図3の21行目「xxx.yyy.com/contract.doc」の記述内容に対応)
4)アプリケーション起動の準備を行う
アプリケーション起動時のパラメタとなる<INシグニチャ>情報を設定する(図3の20から27行目に対応)
・コントラクト本文:ドキュメントまたはURL等を設定する
・オーダID:<OrderID>にあった値を設定する
・オーダタイプ:<OrderType>にあった値を設定する
・数量:<Quantity>にあった値を設定する
・単価:<Price>にあった値を設定する
・発注日付:<Date>にあった値を設定する
5)アプリケーションを起動し、リターン(結果)を得、<OUTシグニチャ>情報を設定する(図3の28から32行目に対応)
・成否:アプリケーション処理が正常に処理を終えたか否かを示す(図3の29行目に対応)
・プロダクトタイプ:アプリケーション処理の結果生まれる製品のタイプ(図3の30行目に対応)
・荷札ID:製品を以降のステップに引き渡す時の識別子(図3の31行目に対応)
6)<成否>の値が成功であることを確認:失敗の場合には以降の処理は行わず、失敗報告メッセージを報告者に送信する
7)<事後条件>の<発送済>の値(yes)が、ステップ実行者の本ビジネスプロセス(IDにより識別)における<発送済>ステータス(情報ベースより読み出す)と合致していることをチェックする(図3の34行目に対応)
8)<事後条件>の<支払済>の値(yes)が、ステップ実行者の本ビジネスプロセス(IDにより識別)における<支払済>ステータス(情報ベースより読み出す)と合致していることをチェックする(図3の35行目に対応)
9)次のステップの確定
・アプリケーション起動のリターンにある<プロダクトタイプ>の値と<次のステップの>の<条件>にある<プロダクトタイプ>が一致する場合。次の行にある<ステップID>の値が、次のステップIDとなる。(図3の39行目と43行目が条件で、各々の遷移先が40行目と44行目)
・本例では、プロダクトタイプが衣料品用布地であれば衣料品製造というステップへ、プロダクトタイプが非衣料品用布地であれば非衣料品製造というステップへ、各々遷移する、という例である。
【0027】
10)上記判定により決まったステップの属性である識別子(サービス名)をビジネスプロセス定義XML文書より読み出す
11)その識別子に基づきステップ実行者を選定する
・ネームサービスによる選定(識別子が具体的なシステム名の場合)
・UDDIによる選定(識別子がサービス名の場合、UDDIでサービスを検索し、判断基準にあうサービス提供者を選定)
12)ステップ実行者に渡すパラメタの準備を行う
<インバリアント>が<日数>の場合、ビジネスプロセス定義と共に送付するメッセージに<日数>の具体的な値を<Days>として設定、但し責任システムが最初から数値を設定している場合は何もしない(図4の3行目または図5の3行目に対応した図7の19行目)
<オーダID>についても、ビジネスプロセス定義と共に送付するメッセージに<オーダID>の具体的な値を<OrderID>として設定、但し責任システムが最初から数値を設定している場合は何もしない(図4の10行目または図5の10行目に対応した図7の20行目)
<オーダタイプ>についても、ビジネスプロセス定義と共に送付するメッセージに<オーダタイプ>の具体的な値を<OrderType>として設定、但し責任システムが最初から数値を設定している場合は何もしない(図4の11行目または図5の11行目に対応した図7の21行目)
<数量>についても、ビジネスプロセス定義と共に送付するメッセージに<数量>の具体的な値を<Quantity>として設定、但し責任システムが最初から数値を設定している場合は何もしない(図4の12行目または図5の12行目に対応した図7の22行目)
<単価>についても、ビジネスプロセス定義と共に送付するメッセージに<単価>の具体的な値を<Price>として設定、但し責任システムが最初から数値を設定している場合は何もしない(図4の13行目または図5の13行目に対応した図7の23行目)
<発注日付>についても、ビジネスプロセス定義と共に送付するメッセージに<発注日付>の具体的な値を<Date>として設定、但し責任システムが最初から数値を設定している場合は何もしない(図4の14行目または図5の14行目に対応した図7の24行目)
13)選定したサービス提供者に送る以下のメッセージを組立て(図7に主な項目を例示)
・ヘッダ部分
・発信システム名:責任システム名
・ビジネスプロセスID:ビジネスプロセスID
・宛先システム名:選定されたサービス提供者名
・ステップ名:ステップ識別子
・監視システム名:報告者名
・コンテンツ部分
<Days>、<OrderID>、<OrderType>、<Quantity>、<Price>、<Date>の(名前、値)リストからなるXML文書(これらの元となる<日数>、<オーダID>、<オーダタイプ>、<数量>、<単価>、<発注日付>が責任システムにより設定されていない場合)
・上記ビジネスプロセス定義XML文書(またはそのURL)
14)監視システムに本ビジネスプロセスの衣料材購入ステップが終了したことを連絡した後、選定したサービス提供者へこのメッセージを送信する
3 衣料品製造ステップ
3.1 前提
1)メッセージを受信する
2)メッセージを解析し、ヘッダ部分の各情報、コンテンツ部分の各情報を保存する
3)ヘッダ部分に含まれるステップ名を用い、コンテンツ部分のビジネスプロセス定義から対応するステップを確定する(例では衣料品製造ステップ)(図4の1行目「衣料品製造」に対応)
4)必要に応じ、直前のステップが正常に終了していることを、監視ノードに問合せ確認する
5)ステップ実行を受け入れることが出来ない場合には、監視ノードにその旨の連絡をする
3.2 例に基づく処理ロジックの説明
1)<インバリアント>の<日数>の値(”Days”)は、メッセージに<Days>があるためその値で置き換え保存する(図4の2−4行目に対応)
2)<オーダID>、<オーダタイプ>、<数量>、<単価>、<発注日付>についても同様に、<OrderID>、<OrderType>、<Quantity>、<Price>、<Date>の値で置き換え保存する(図4の10から14行目に対応)
3)<事前条件>の<コントラクト>の値(契約済み)が、ステップ実行者と責任システムとの間の契約関係情報(情報ベースから読み出す)と合致していることをチェックする(図4の9行目「xxx.yyy.com/contract.doc」の記述内容に対応)
4)アプリケーション起動の準備を行う
・アプリケーション起動時のパラメタとなる<INシグニチャ>情報を設定する(図4の8から15行目に対応)
・コントラクト本文:ドキュメントまたはURL等を設定する
・オーダID:<OrderID>にあった値を設定する
・オーダタイプ:<OrderType>にあった値を設定する
・数量:<Quantity>にあった値を設定する
・単価:<Price>にあった値を設定する
・発注日付:<Date>にあった値を設定する
5)アプリケーションを起動し、リターン(結果)を得、<OUTシグニチャ>情報を設定する(図4の16から20行目に対応)
・成否:アプリケーション処理が正常に処理を終えたか否かを示す(図4の17行目に対応)
・プロダクトタイプ:アプリケーション処理の結果生まれる製品のタイプ(図4の18行目に対応)
・荷札ID:製品を以降のステップに引き渡す時の識別子(図4の19行目に対応)
6)<成否>の値が成功であることを確認:失敗の場合には以降の処理は行わず、失敗報告メッセージを報告者に送信する
7)<事後条件>の<発送済>の値(yes)が、ステップ実行者の本ビジネスプロセス(IDにより識別)における<発送済>ステータス(情報ベースより読み出す)と合致していることをチェックする(図4の22行目に対応)
8)<事後条件>の<支払済>の値(yes)が、ステップ実行者の本ビジネスプロセス(IDにより識別)における<支払済>ステータス(情報ベースより読み出す)と合致していることをチェックする(図4の23行目に対応)
9)次のステップの確定
・アプリケーション起動のリターンにある<プロダクトタイプ>の値と<次のステップの>の<条件>にある<プロダクトタイプ>が一致する場合。次の行にある<ステップID>の値が、次のステップIDとなる。(図4の27行目が条件で28行目が遷移先)
・本例では、プロダクトタイプが衣料品であればパッケージというステップへ、遷移する、という例である。
10)上記判定により決まったステップの属性である識別子(サービス名)をビジネスプロセス定義XML文書より読み出す
11)その識別子に基づきステップ実行者を選定する
・ネームサービスによる選定(識別子が具体的なシステム名の場合)
・UDDIによる選定(識別子がサービス名の場合、UDDIでサービスを検索し、判断基準にあうサービス提供者を選定)
12)ステップ実行者に渡すパラメタの準備を行う
・<インバリアント>が<日数>の場合、ビジネスプロセス定義と共に送付するメッセージに<日数>の具体的な値を<Days>として設定、但し責任システムが最初から数値を設定している場合は何もしない(図6の3行目に対応した図7の19行目)
・<オーダID>についても、ビジネスプロセス定義と共に送付するメッセージに<オーダID>の具体的な値を<OrderID>として設定、但し責任システムが最初から数値を設定している場合は何もしない(図6の10行目に対応した図7の20行目)
・<オーダタイプ>についても、ビジネスプロセス定義と共に送付するメッセージに<オーダタイプ>の具体的な値を<OrderType>として設定、但し責任システムが最初から数値を設定している場合は何もしない(図6の11行目に対応した図7の21行目)
・<数量>についても、ビジネスプロセス定義と共に送付するメッセージに<数量>の具体的な値を<Quantity>として設定、但し責任システムが最初から数値を設定している場合は何もしない(図6の12行目に対応した図7の22行目)
・<単価>についても、ビジネスプロセス定義と共に送付するメッセージに<単価>の具体的な値を<Price>として設定、但し責任システムが最初から数値を設定している場合は何もしない(図6の13行目に対応した図7の23行目)
<発注日付>についても、ビジネスプロセス定義と共に送付するメッセージに<発注日付>の具体的な値を<Date>として設定、但し責任システムが最初から数値を設定している場合は何もしない(図6の14行目に対応した図7の24行目)
13)選定したサービス提供者に送る以下のメッセージを組立て(図7に主な項目を例示)
・ヘッダ部分
・発信システム名:責任システム名
・ビジネスプロセスID:ビジネスプロセスID
・宛先システム名:選定されたサービス提供者名
・ステップ名:ステップ識別子
・監視システム名:報告者名
・コンテンツ部分
・<Days>、<OrderID>、<OrderType>、<Quantity>、<Price>、<Date>の(名前、値)リストからなるXML文書(これらの元となる<日数>、<オーダID>、<オーダタイプ>、<数量>、<単価>、<発注日付>が責任システムにより設定されていない場合)
・上記ビジネスプロセス定義XML文書(またはそのURL)
14)監視システムに本ビジネスプロセスの衣料材製造ステップが終了したことを連絡した後、選定したサービス提供者へこのメッセージを送信する
4 非衣料品製造ステップ
4.1 前提
1)メッセージを受信する
2)メッセージを解析し、ヘッダ部分の各情報、コンテンツ部分の各情報を保存する
3)ヘッダ部分に含まれるステップ名を用い、コンテンツ部分のビジネスプロセス定義から対応するステップを確定する(例では非衣料品製造ステップ)(図5の1行目「非衣料品製造」に対応)
4)必要に応じ、直前のステップが正常に終了していることを、監視ノードに問合せ確認する
5)ステップ実行を受け入れることが出来ない場合には、監視ノードにその旨の連絡をする
4.2 例に基づく処理ロジックの説明
1)<インバリアント>の<日数>の値(”Days”)は、メッセージに<Days>があるためその値で置き換え保存する(図5の2から4行目に対応)
2)<オーダID>、<オーダタイプ>、<数量>、<単価>、<発注日付>についても同様に、<OrderID>、<OrderType>、<Quantity>、<Price>、<Date>の値で置き換え保存する(図5の10から14行目に対応)
3)<事前条件>の<コントラクト>の値(契約済み)が、ステップ実行者と責任システムとの間の契約関係情報(情報ベースから読み出す)と合致していることをチェックする(図5の9行目「qqq.ppp.com/contract.doc」の記述内容に対応)
4)アプリケーション起動の準備を行う
・アプリケーション起動時のパラメタとなる<INシグニチャ>情報を設定する(図5の8から15行目に対応)
・コントラクト本文:ドキュメントまたはURL等を設定する
・オーダID:<OrderID>にあった値を設定する
・オーダタイプ:<OrderType>にあった値を設定する
・数量:<Quantity>にあった値を設定する
・単価:<Price>にあった値を設定する
・発注日付:<Date>にあった値を設定する
5)アプリケーションを起動し、リターン(結果)を得、<OUTシグニチャ>情報を設定する(図5の16から20行目に対応)
・成否:アプリケーション処理が正常に処理を終えたか否かを示す(図5の17行目に対応)
・プロダクトタイプ:アプリケーション処理の結果生まれる製品のタイプ(図5の18行目に対応)
・荷札ID:製品を以降のステップに引き渡す時の識別子(図5の19行目に対応)
6)<成否>の値が成功であることを確認:失敗の場合には以降の処理は行わず、失敗報告メッセージを報告者に送信する
7)<事後条件>の<発送済>の値(yes)が、ステップ実行者の本ビジネスプロセス(IDにより識別)における<発送済>ステータス(情報ベースより読み出す)と合致していることをチェック(図5の22行目に対応)
8)<事後条件>の<支払済>の値(yes)が、ステップ実行者の本ビジネスプロセス(IDにより識別)における<支払済>ステータス(情報ベースより読み出す)と合致していることをチェック(図5の23行目に対応)
9)次のステップの確定
・アプリケーション起動のリターンにある<プロダクトタイプ>の値と<次のステップの>の<条件>にある<プロダクトタイプ>が一致する場合。次の行にある<ステップID>の値が、次のステップIDとなる。(図5の27行目が条件で28行目が遷移先)
・本例では、プロダクトタイプが非衣料品であればパッケージというステップへ遷移する、という例である。
10)上記判定により決まったステップの属性である識別子(サービス名)をビジネスプロセス定義XML文書より読み出す
11)その識別子に基づきステップ実行者を選定する
・ネームサービスによる選定(識別子が具体的なシステム名の場合)
・UDDIによる選定(識別子がサービス名の場合、UDDIでサービスを検索し、判断基準にあうサービス提供者を選定)
12)ステップ実行者に渡すパラメタの準備を行う
・<インバリアント>が<日数>の場合、ビジネスプロセス定義と共に送付するメッセージに<日数>の具体的な値を<Days>として設定、但し責任システムが最初から数値を設定している場合は何もしない(図6の3行目に対応した図7の19行目)
・<オーダID>についても、ビジネスプロセス定義と共に送付するメッセージに<オーダID>の具体的な値を<OrderID>として設定、但し責任システムが最初から数値を設定している場合は何もしない(図6の10行目に対応した図7の20行目)
* <オーダタイプ>についても、ビジネスプロセス定義と共に送付するメッセージに<オーダタイプ>の具体的な値を<OrderType>として設定、但し責任システムが最初から数値を設定している場合は何もしない(図6の11行目に対応した図7の21行目)
・<数量>についても、ビジネスプロセス定義と共に送付するメッセージに<数量>の具体的な値を<Quantity>として設定、但し責任システムが最初から数値を設定している場合は何もしない(図6の12行目に対応した図7の22行目)
・<単価>についても、ビジネスプロセス定義と共に送付するメッセージに<単価>の具体的な値を<Price>として設定、但し責任システムが最初から数値を設定している場合は何もしない(図6の13行目に対応した図7の23行目)
・<発注日付>についても、ビジネスプロセス定義と共に送付するメッセージに<発注日付>の具体的な値を<Date>として設定、但し責任システムが最初から数値を設定している場合は何もしない(図6の14行目に対応した図7の24行目)
13)選定したサービス提供者に送る以下のメッセージを組立て(図7に主な項目を例示)
・ヘッダ部分
・発信システム名:責任システム名
・ビジネスプロセスID:ビジネスプロセスID
・宛先システム名:選定されたサービス提供者名
・ステップ名:ステップ識別子
・監視システム名:報告者名
・コンテンツ部分
・<Days>、<OrderID>、<OrderType>、<Quantity>、<Price>、<Date>の(名前、値)リストからなるXML文書(これらの元となる<日数>、<オーダID>、<オーダタイプ>、<数量>、<単価>、<発注日付>が責任システムにより設定されていない場合)
・上記ビジネスプロセス定義XML文書(またはそのURL)
14)監視システムに本ビジネスプロセスの非衣料材製造ステップが終了したことを連絡した後、選定したサービス提供者へこのメッセージを送信する
5 パッケージステップ
5.1 前提
1)メッセージを受信する
2)メッセージを解析し、ヘッダ部分の各情報、コンテンツ部分の各情報を保存する
3)ヘッダ部分に含まれるステップ名を用い、コンテンツ部分のビジネスプロセス定義から対応するステップを確定する(例ではパッケージステップ)(図6の1行目「パッケージ」に対応)
4)必要に応じ、直前のステップが正常に終了していることを、監視ノードに問合せ確認する
5)ステップ実行を受け入れることが出来ない場合には、監視ノードにその旨の連絡をする
5.2 例に基づく処理ロジックの説明
1)<インバリアント>の<日数>の値(”Days”)は、メッセージに<Days>があるためその値で置き換え保存する(図6の3から5行目に対応)
2)<オーダID>、<オーダタイプ>、<数量>、<単価>、<発注日付>についても同様に、<OrderID>、<OrderType>、<Quantity>、<Price>、<Date>の値で置き換え保存する(図6の10から14行目に対応)
3)<事前条件>の<コントラクト>の値(契約済み)が、ステップ実行者と責任システムとの間の契約関係情報(情報ベースから読み出す)と合致していることをチェックする(図6の9行目に対応)
4)アプリケーション起動の準備を行う
・アプリケーション起動時のパラメタとなる<INシグニチャ>情報を設定する(図6の8から15行目に対応)
・コントラクト本文:ドキュメントまたはURL等を設定する
・オーダID:<OrderID>にあった値を設定する
・オーダタイプ:<OrderType>にあった値を設定する
・数量:<Quantity>にあった値を設定する
・単価:<Price>にあった値を設定する
・発注日付:<Date>にあった値を設定する
5)アプリケーションを起動し、リターン(結果)を得、<OUTシグニチャ>情報を設定する(図6の16から20行目に対応)
・成否:アプリケーション処理が正常に処理を終えたか否かを示す(図6の17行目に対応)
・プロダクトタイプ:アプリケーション処理の結果生まれる製品のタイプ(図6の18行目に対応)
・荷札ID:製品を以降のステップに引き渡す時の識別子(図6の19行目に対応)
6)<事後条件>の<発送済>の値(yes)が、ステップ実行者の本ビジネスプロセス(IDにより識別)における<発送済>ステータス(情報ベースより読み出す)と合致していることをチェック(図6の22行目に対応)
7)<事後条件>の<支払済>の値(yes)が、ステップ実行者の本ビジネスプロセス(IDにより識別)における<支払済>ステータス(情報ベースより読み出す)と合致していることをチェック(図6の23行目に対応)
8)次のステップの確定
・アプリケーション起動のリターンにある<プロダクトタイプ>の値と<次のステップの>の<条件>にある<プロダクトタイプ>が一致する場合。次の行にある<ステップID>の値が、次のステップIDとなる。(図6の26行目に対応)
・本例では、次のステップに関する情報が無いため、ビジネスプロセスは終了となり、ビジネスプロセス終了報告先へ遷移する、という例である。(図6の31行目に対応)
9)選定したサービス提供者に送る以下のメッセージを組立て(図7に主な項目を例示)
・ヘッダ部分
・発信システム名:責任システム名
・ビジネスプロセスID:ビジネスプロセスID
・宛先システム名:ビジネスプロセス終了プログラム
・ステップ名:無し
・監視システム名:報告者名
・コンテンツ部分
・<Days>、<OrderID>、<OrderType>、<Quantity>、<Price>、<Date>の(名前、値)リストからなるXML文書(これらの元となる<日数>、<オーダID>、<オーダタイプ>、<数量>、<単価>、<発注日付>が責任システムにより設定されていない場合)
・上記ビジネスプロセス定義XML文書(またはそのURL)
10)監視システムに本ビジネスプロセスが終了したことを連絡した後、ビジネスプロセス終了プログラムへこのメッセージを送信する
6 ビジネスプロセス終了報告先の動作
1)メッセージを受信する
2)メッセージを解析し、ヘッダ部分の各情報、コンテンツ部分の各情報を保存する
3)オペレータにビジネスプロセス終了メッセージをあげる
7 ビジネスプロセス監視プログラムの動作
1)成功報告メッセージを受信した場合
・ビジネスプロセスにおける各ステップの進行状況をビジネスプロセス実行履歴情報として保存する
2)進行状況の問い合わせを受信した場合
・保存した各ステップの進行状況を回答する
3)失敗報告メッセージを受信した場合
・責任システムに連絡すると共に、定められた補償動作等を実行するために新たなビジネスプロセスを開始する
4)ステップ実行不可メッセージを受信した場合
・ビジネスプロセス定義文書にステップ実行者が特定されている場合は失敗報告メッセージを受信した場合の処理を行う。特定されていない場合には、UDDIのような動的発見機構を用い代替のステップ実行ノードを発見し、そのノードにビジネスプロセスの続行を依頼する。
【0028】
以上によれば、ネットワーク環境におけるビジネスプロセスの実行を、対等かつ分散型で実現できる。また、ビジネスプロセス定義を共有することで、ビジネス内容を理解した上でビジネスプロセスの遂行に参加するか否かを判断できる。
【0029】
また、監視ノードを用意することで、分散して実行が進んで行くビジネスプロセスの進行状況をモニターすることが出来る。更に、ビジネスプロセスの実行途上で何らかのエラーが発生した場合の収拾処理も、この監視ノードを用いることで用意することが出来る。
【0030】
また、ビジネスプロセスの各ステップを実行する計算機ノード間でデータの受け渡しが必要になった場合、単にメッセージに含めて送信するだけでなく、URLなどの記法を使いデータの所在場所とアクセス方法だけをメッセージに含めて送信することが出来る。
【0031】
また、ビジネスプロセスのフローにおける各ステップ実行計算機ノードの特定方法に関し、ビジネスプロセス定義文書中はサービス名やサービス内容だけを記述しておき、実行時にUDDIなどを使ったWebサービスの動的発見メカニズムを利用し物理的なサービス実行計算機ノードを特定する、ことが出来る。
【0032】
また、オープンなネットワーク環境に展開されるビジネスプロセスの管理を代行するという行為がビジネスとして成立することを示している。
【0033】
【発明の効果】
分散処理環境におけるビジネスプロセスの実行を分散型で実現することが可能となる。
【図面の簡単な説明】
【図1】本発明における一実施例で、布地加工パッケージビジネスプロセスシステムを本発明の方法で実現する場合のシステム構成を示すものである。
【図2】図1で参照される、XML言語による布地加工パッケージビジネスプロセス定義例を示すものである。
【図3】図1における衣料購入で受け付けるメッセージ例を示すものである。
【図4】図1における衣料品製造で受け付けるメッセージ例を示すものである。
【図5】図1における非衣料品製造で受け付けるメッセージ例を示すものである。
【図6】図1におけるパッケージで受け付けるメッセージ例を示すものである。
【図7】ビジネスプロセス定義文書と共に各ステップに送られるメッセージの例である。
【図8】図1で参照される、各ステップ実行計算機ノードでの処理手順例である。
【図9】図1で参照される、各ステップ実行計算機ノードの構成要素例である。
【図10】図1で参照されるビジネスプロセス例において、起動、監視、終了、といった管理機能を代行するビジネスの構成例である。
【符号の説明】
1 ビジネスプロセス起動計算機ノード
2 ビジネスプロセス監視計算機ノード
3 ビジネスプロセス終了報告計算機ノード
4 布地購入ステップ実行計算機ノード
5 衣料品製造ステップ実行計算機ノード
6 非衣料品製造ステップ実行計算機ノード
7 パッケージステップ実行計算機ノード
8 ネットワーク
9 メッセージ受信処理
10 メッセージよりビジネスプロセス文書を抽出する処理
11 ネットワークよりビジネスプロセス文書を抽出する処理
12 パラメタと定義文書の解析処理
13 実行ステップ発見処理
14 シグニチャの作成処理
15 当該ステップ実行処理
16 当該ステップ実行結果の監視ノードへの報告処理
17 次のステップ確定処理
18 次のステップへ送るメッセージ組立て送信処理
19 ビジネスプロセス利用者システム(装置)
20 ディスプレイ装置
21 入力装置
22 中央処理装置(CPU)
23 ビジネスプロセス定義編集プログラム及びWebサービスクライアントプログラム
24 ビジネスプロセス監視システム(装置)
25 ディスプレイ装置
26 入力装置
27 中央処理装置(CPU)
28 ビジネスプロセス進捗管理Webサービスプログラム
29 動作データベース装置
30 ネットワーク
31 ビジネスプロセスステップ実行装置
32 ディスプレイ装置
33 入力装置
34 中央処理装置(CPU)
35 ビジネスプロセスステップ処理Webサービスプログラム
36 ビジネスプロセス利用者
37 ビジネスプロセス処理サービス
38 ビジネスプロセスステップ実行装置
39 ビジネスプロセスステップ実行装置
40 ビジネスプロセスステップ実行装置
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to workflow and business process processing technology.
[0002]
[Prior art]
Conventionally, business process control has been realized as an application of workflow technology, as seen in standardization of workflows and various products that have realized this. In this method, a user first defines a business process, and a software component called a workflow engine communicates with software or persons responsible for performing individual steps based on the definition, such as remote procedure call (RPC) and message transmission. The execution and the progress monitoring of the business process have been performed by sequentially starting or requesting work according to the business process definition using means.
[0003]
In the field of business process definition, it is known that standardization of a description method using an XML language is being discussed. These are grammatical rules for description and do not prescribe how to use the described definition document.
[0004]
Furthermore, the technology disclosed in Japanese Patent Application Laid-Open No. 9-265408 aims at a similar area in terms of distributed execution of a workflow, and (1) a document-based workflow rather than a business process automation. It is characterized by the fact that it is automation, and that (2) the transmitted workflow definition contains a program in addition to the flow information and is executed on each node. Realization of "business process" execution that does not require human operation by passing XML "document", dynamic discovery of step execution entity, transfer by referring to document information and message information, monitoring for business process progress monitoring They differ in various points such as node settings (target areas, technical elements).
[0005]
[Patent Document 1]
JP-A-9-265408
[0006]
[Problems to be solved by the invention]
Since centralized control and management are performed by a control component called a workflow engine, highly reliable software and hardware dedicated to the centralized control and management were required.
[0007]
Further, in a business process that straddles the boundary of a company, the relationship of master / slave does not adapt, and it has been required that each company system can cooperate in an equal relationship to realize a business process.
[0008]
In addition, since the entity that executes the step performs the process by giving only the minimum information necessary for the execution, the execution entity determines whether or not performing the process is appropriate from a business perspective. Not enough information was given.
[0009]
An object of the present invention is to realize execution of a business process in a distributed processing environment in a distributed manner.
[0010]
[Means for Solving the Problems]
In order to solve the above problem, a means is provided for sequentially passing the business process definition described in the document description language and information necessary for the execution of the business process between the steps using a function of message transmission. As a result, the control node is not required, and the participating computer nodes can perform each step process from an equal standpoint while further understanding the context as a business process.
[0011]
On the other hand, a monitoring node is prepared for monitoring the progress of the business process processing, so that a result notification at the end of the step processing can be received. By preparing this, it becomes possible not only to monitor the progress, but also to take an appropriate action when the processing in the step becomes unsuccessful.
[0012]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings. FIG. 1 shows the configuration of one embodiment of the present invention. In this embodiment, seven computer nodes connected by the network 8 are shown, and the business process activation node 1 activates a business process. The first step performed in this business process is a cloth purchase step, and the business process start node 1 transmits a business process definition document shown in FIGS. 2 to 6 and a message shown in FIG. 7 to the cloth purchase step execution node 4. I do. After the execution of the cloth purchase step, according to the conditions in the business process definition document of FIG. 7, either the clothing manufacturing step execution node 5 or the non-clothing manufacturing step execution node 6 is used as an example in FIGS. Is transmitted, and a message including necessary information as shown in FIG. 7 is transmitted. Note that the message format follows the format published by each step execution node. When the processing in these steps is completed, an example is shown in FIG. 2 to FIG. 6 from either the manufacturing step execution node 5 for clothing or the manufacturing step execution node 6 other than clothing to the package step execution node 7. A message containing necessary information as shown in FIG. 7 is transmitted with the business process definition document. When the process in the package step execution node ends normally, the business process is completed and a report is sent to the business process end report node.
[0013]
In order to enable monitoring of the progress of the business process, a notification message is transmitted to the business process monitoring node 2 when the processing in each step ends normally. If there is a problem in the processing in the step, the business process monitoring node 2 performs an appropriate operation such as a compensation operation instruction to each step execution node that has reported the normal end.
[0014]
Here, the three nodes of the business process start node 1, the business process monitoring node 2, and the business process end report node 3 may be the same computer or separate computers.
[0015]
Instead of sending the business process definition document directly as a part of the message, place it in an accessible location on the network and include the access method such as URL and the location information in the form of a reference and send it. Is also good.
[0016]
2 to 6 show examples in which the business process is defined as an XML document. The present invention shows a description example in the XML language, but is not limited to XML. Any data structure that can be described structurally is applicable. Although the message communicated between the programs is expressed as a document, it can be realized by a message or a request. FIG. 2 shows a document structure, which shows that a business process is composed of a description, attributes, a responsibility system, a business process invariant, a business process precondition, a report destination, a step definition, and a business process postcondition. Also, a plurality of steps can be defined therein. Further, it is shown that the step is composed of the following elements: an invariant, a precondition, a signature, a postcondition, and a next step. FIG. 3 et seq. Are examples of business process definition entities.
[0017]
FIG. 7 is an example of a message sent to each step together with a business process definition document. The computer which executes the step and the application are specified by the destination, and the business process ID and the step ID indicate which step of which business process is to be processed. Subsequent data are parameters necessary for step execution.
From the viewpoint of security, the message itself may be encrypted using PKI or the like.
[0018]
FIG. 8 shows an example of the flow of processing in each computer node participating in the execution of a business process. At step 9, a message is received. If a business definition document is included in the message, the message is extracted at step 10. Otherwise, the message is extracted via the network based on URL information as indicated at 11, and at step 12, the business definition document is extracted. The analysis is performed together with the parameter information included in the message. Based on the result, a step required to be executed is found in the business process definition at 13, a signature as input information necessary for the processing is created at 14, and the processing is executed at 15. The result is reported to the monitoring node at 16, and the next step to be performed is determined at 17 according to the conditions included in the step definition. Finally, a message to be passed to the next step is assembled at 18 and transmitted to the step execution computer node determined at 17.
[0019]
FIG. 9 shows an example of the structure of an apparatus for implementing these business process processing methods. Reference numeral 19 denotes an example of a business process user system, which includes a display 20, an input device 21, and a CPU 22. By operating the business process definition editing program and the Web service client program 23 on this device, the user 19 creates a business process definition document and requests the business process step execution device 31 to execute the process. . Reference numeral 24 denotes a configuration example of the business process monitoring device, which includes a display 25, an input device 26, and a CPU 27. By operating the business process progress management Web service program 28 with this device, the execution result is received from the business process step execution device 31 as needed, and the progress status can be grasped from the 19 business process user system or the like. . When receiving a result indicating that the operation cannot be executed, a table of operations to be taken obtained from the business process user is stored in the DB 29, and an operation instruction can be issued by reading a corresponding entry. Reference numeral 31 denotes a configuration example of a business process step execution device, which includes a display 32, an input device 33, and a CPU. By operating the business process step processing Web service program 35 with this device, it is possible to execute the processing of each step appearing in the business process definition. The devices 19, 24, and 31 are connected by a network 30 and can perform open communication.
[0020]
FIG. 10 shows an example of a business method in which the present business process processing method and the business process processing apparatus are used to monitor the progress of a business process and activate a compensation operation if necessary. The 36 business process user defines a business process, and requests the 37 business process processing service providers to execute the business process. The business process processing service provider sends a business process definition document and parameter information necessary for step processing as a message to the step execution device 38 that executes the first step of the business process, instead of the requester. 38, after the step processing, sends a message to the step execution device 39 or 40 by the method described in the explanation for FIG. At this time, after completion of each step processing, the result information such as the processing end or the processing impossibility is transmitted to the 37. If the processing is not feasible, another business process corresponding to the compensation act may flow from the 37. 37 is provided by providing a service of managing business processes to users.
[0021]
Hereinafter, the operation of the program when the present invention is realized will be described using an example.
[0022]
1 Business process start program operation
1.1 Assumption
1) It is assumed that the business process definition (XML document) is created in one of the following forms before executing the business process start program.
[0023]
Definition document containing all values (eg, service executor name and all parameter values to be passed)-This is one that fixes the executor of the business process, all the parameters, etc., and does not allow changes during the process. In this case, it is assumed that a mechanism (for example, encryption or digital signature) for proving that the change has not been performed is also used.
[0024]
Partially parameterized definition document (eg, a parameterized version of the information passed to the service executor)-This assumes that the step execution results will be passed to the next step as part of the business process definition.
[0025]
A definition document for parameterizing all variable elements and using it as a template (eg a typical purchasing process)-this is a library or repository of business process definition templates, from which the base template can be searched And customize and use.
[0026]
2) The business process definition is used in the form of (1) input data to a business process start program or (2) parameter setting for own use by reading from a business process definition repository (DB).
1.2 Description of processing logic based on examples
1) Read the business process XML definition document
2) Parse the document
3) Output <Explanation> on the screen (corresponding to the second line in FIG. 3, a message “This business process purchases fabric and manufactures and sells clothing etc.” is displayed on the display)
4) Check that <attribute> is a business transaction (corresponding to "business transaction" on the third line in FIG. 3)
5) Check that <responsibility system> matches the name of the system that starts execution of this business process (corresponds to "ABC Mfg. Com / BP" in the fourth line of FIG. 3).
6) Check that <business process ID> is included as <business process invariant> (corresponding to “XYZ123477” on lines 5 to 7 in FIG. 3)
7) If <business process ID> is set, save this as the ID of this business process (if not set, the business process start program generates a unique value and sets it)
8) The value (100) of <cloth stock> in <business process preconditions> is compared with the actual stock number (the starting program is read from the information base), and it is checked that the actual stock number is 100 or less ( (Corresponds to "100" in lines 8 to 10 in FIG. 3)
9) If <report destination> is set, save it as the report destination in this business process (if not set, set the address of the responsible system here) (line 11 in FIG. 3) Eye "xxx.yyy.com/ReportHandler")
10) Check that <step definition> exists (corresponds to the twelfth line in FIG. 3)
11) Save the identifier (service name), which is the attribute of <step> that appears first (corresponding to “purchase cloth” on line 13 in FIG. 3 and line 18 in FIG. 7)
12) Select a step performer based on the saved identifier
-Selection by name service (when the identifier is a specific system name)
-Selection by UDDI (If the identifier is a service name, search the service by UDDI and select a service provider that meets the criteria)
13) Prepare parameters to be passed to the step executor
If <invariant> is <days>, the specific value of <days> is set as <Days> in the message sent with the business process definition. However, if the responsible system sets a numerical value from the beginning, nothing will occur. No ("7" on line 19 in FIG. 7 corresponding to lines 14-16 in FIG. 3)
Regarding <Order ID>, the specific value of <Order ID> is set as <OrderID> in the message sent with the business process definition. However, if the responsible system sets a numerical value from the beginning, nothing is done (see FIG. ("ABC000891" on line 20 in FIG. 7 corresponding to line 22 on line 3)
Regarding <Order Type>, the specific value of <Order Type> is set as <OrderType> in the message sent with the business process definition. However, if the responsible system sets a numerical value from the beginning, nothing is done. Line 21 of FIG. 7 corresponding to line 23 of FIG. 3 “Cotton fabric”)
Regarding <quantity>, the specific value of <quantity> is set as <Quantity> in the message sent together with the business process definition. However, if the responsible system sets a numerical value from the beginning, nothing is done (see FIG. 3). (“50000” on line 22 in FIG. 7 corresponding to line 24)
As for <unit price>, the specific value of <unit price> is set as <Price> in the message sent together with the business process definition. However, if the responsible system sets a numerical value from the beginning, nothing is done (see FIG. 3). (“3000” on line 23 in FIG. 7 corresponding to line 25)
Regarding the <order date>, the specific value of the <order date> is set as <Date> in the message sent with the business process definition. However, if the responsible system sets a numerical value from the beginning, nothing is performed (see FIG. (Corresponding to the 26th line of No. 3 “20020701”)
14) Assemble the following message to be sent to the selected service provider (the main items are illustrated in FIG. 7)
・ Header part
-Outgoing system name: Responsible system name
・ Business process ID: Business process ID
-Destination system name: Selected service provider name
-Step name: Step identifier
・ Monitoring system name: Reporter name
・ Content part
An XML document composed of a (name, value) list of <Days>, <OrderID>, <OrderType>, <Quantity>, <Price>, and <Date> (the original <days>, <order ID>, < (If order type, <quantity>, <unit price>, <order date> are not set by responsible system)
The above business process definition XML document (or its URL)
15) Send this message to the selected service provider
16) Send the business process document to the monitoring system and notify that the business process has started.
2 Operation of the program in the clothing purchase step
2.1 Assumption
1) Receive the message
2) Analyze the message and save each information of the header part and each information of the content part (contents illustrated in FIG. 7)
3) Using the step name included in the header part, determine the corresponding step from the business process definition of the content part (in the example, cloth purchase step) (use the information on the 13th line in FIG. 3)
4) If the step execution cannot be accepted, notify the monitoring node to that effect.
2.2 Description of processing logic based on examples
1) The value of "days" of "invariant"("Days") is replaced with the value of <Days> because the message has <Days> (corresponding to the 15th line in FIG. 3 and the 19th line in FIG. 7). Equivalent to the value of
2) Similarly, for <Order ID>, <Order type>, <Quantity>, <Unit price>, and <Order date>, values of <OrderID>, <OrderType>, <Quantity>, <Price>, <Date> (Corresponding to lines 22 to 26 in FIG. 3 and lines 20 to 24 in FIG. 7)
3) Check that the value of <contract> of <preconditions> (contracted) matches the contract relationship information (read from the information base) between the stepper and the responsible system (see FIG. 3). Line 21 corresponds to the description of “xxx.yyy.com/contract.doc”)
4) Prepare for application startup
Set the <IN signature> information that is a parameter at the time of application startup (corresponding to lines 20 to 27 in FIG. 3)
・ Contract text: Set the document or URL, etc.
・ Order ID: Set a value suitable for <OrderID>
-Order type: Set a value that matches <OrderType>
-Quantity: Set a value that matches <Quantity>
-Unit price: Set a value that matches <Price>
-Order date: Set a value that matches <Date>
5) Start the application, obtain a return (result), and set <OUT signature> information (corresponding to lines 28 to 32 in FIG. 3)
Success or failure: indicates whether or not the application process has been completed normally (corresponding to the 29th line in FIG. 3)
-Product type: Product type created as a result of application processing (corresponding to line 30 in FIG. 3)
-Tag ID: Identifier for delivering the product to the subsequent steps (corresponding to the 31st line in FIG. 3)
6) Confirm that the value of <success / fail> is successful: If the value is unsuccessful, the subsequent processing is not performed, and a failure report message is transmitted to the reporter.
7) Check that the value (yes) of <shipped> in <post-condition> matches the <shipped> status (read from the information base) in this step's business process (identified by ID) Yes (corresponds to line 34 in FIG. 3)
8) Check that the value (yes) of <paid> in <post-condition> matches the <paid> status (read from the information base) in this step's business process (identified by ID) Yes (corresponding to line 35 in FIG. 3)
9) Confirmation of next step
-When the value of <product type> in the return of application startup matches <product type> in <condition> of <next step>. The value of <Step ID> in the next line is the next step ID. (Lines 39 and 43 in FIG. 3 are the conditions, and their transition destinations are lines 40 and 44.)
In this example, if the product type is clothing fabric, the process goes to the step of manufacturing clothing, and if the product type is non-clothing fabric, the process transitions to the step of manufacturing non-garment.
[0027]
10) The identifier (service name) which is the attribute of the step determined by the above determination is read from the business process definition XML document.
11) Select a step performer based on the identifier
-Selection by name service (when the identifier is a specific system name)
-Selection by UDDI (If the identifier is a service name, search the service by UDDI and select a service provider that meets the criteria)
12) Prepare parameters to be passed to the step executor
If <invariant> is <days>, the specific value of <days> is set as <Days> in the message sent with the business process definition. However, if the responsible system sets a numerical value from the beginning, nothing will occur. No (line 19 in FIG. 7 corresponding to line 3 in FIG. 4 or line 3 in FIG. 5)
Regarding <Order ID>, the specific value of <Order ID> is set as <OrderID> in the message sent with the business process definition. However, if the responsible system sets a numerical value from the beginning, nothing is done (see FIG. (Line 10 in FIG. 7 corresponding to line 10 in FIG. 4 or Line 10 in FIG. 5)
Regarding <Order Type>, the specific value of <Order Type> is set as <OrderType> in the message sent with the business process definition. However, if the responsible system sets a numerical value from the beginning, nothing is done. (Line 11 in FIG. 7 corresponding to line 11 in FIG. 4 or Line 11 in FIG. 5)
Regarding <quantity>, the specific value of <quantity> is set as <Quantity> in the message sent together with the business process definition. However, if the responsible system sets a numerical value from the beginning, nothing is done (see FIG. 4). The twelfth line or the twenty-second line in FIG. 7 corresponding to the twelfth line in FIG. 5)
As for <unit price>, the specific value of <unit price> is set as <Price> in the message sent together with the business process definition. However, if the responsible system sets a numerical value from the beginning, nothing is performed (see FIG. 4). Line 13 in FIG. 7 corresponding to line 13 or line 13 in FIG. 5)
Regarding the <order date>, the specific value of the <order date> is set as <Date> in the message sent with the business process definition. However, if the responsible system sets a numerical value from the beginning, nothing is performed (see FIG. (4th line of FIG. 4 or 24th line of FIG. 7 corresponding to the 14th line of FIG. 5)
13) Assemble the following message to be sent to the selected service provider (the main items are illustrated in FIG. 7)
・ Header part
・ Originating system name: Responsible system name
・ Business process ID: Business process ID
-Destination system name: Name of the selected service provider
-Step name: Step identifier
・ Monitoring system name: Reporter name
・ Content part
An XML document composed of a (name, value) list of <Days>, <OrderID>, <OrderType>, <Quantity>, <Price>, and <Date> (the original <days>, <order ID>, < (If order type, <quantity>, <unit price>, <order date> are not set by responsible system)
-The above business process definition XML document (or its URL)
14) After notifying the monitoring system that the clothing purchase step of the business process has been completed, send this message to the selected service provider.
3 Clothing manufacturing steps
3.1 Assumption
1) Receive the message
2) Analyze the message and save each information of the header part and each information of the content part
3) Using the step name included in the header portion, determine the corresponding step from the business process definition of the content portion (in the example, a clothing manufacturing step) (corresponding to “clothing manufacturing” in the first line of FIG. 4).
4) If necessary, check with the monitoring node to confirm that the previous step has been completed normally.
5) If step execution cannot be accepted, notify the monitoring node to that effect.
3.2 Description of processing logic based on examples
1) The value of "days" of "<invariant>"("Days") is replaced by the value of <Days> because the message contains <Days> (corresponding to the second to fourth lines in FIG. 4).
2) Similarly, for <Order ID>, <Order type>, <Quantity>, <Unit price>, and <Order date>, values of <OrderID>, <OrderType>, <Quantity>, <Price>, <Date> And save (corresponds to lines 10 to 14 in FIG. 4)
3) Check that the value of <contract> of <preconditions> (contracted) matches the contract relationship information (read from the information base) between the step performer and the responsible system (see FIG. 4). The ninth line corresponds to the description content of “xxx.yyy.com/contract.doc”)
4) Prepare for application startup
-Set <IN signature> information that is a parameter at the time of application startup (corresponding to lines 8 to 15 in FIG. 4)
・ Contract text: Set the document or URL, etc.
・ Order ID: Set a value suitable for <OrderID>
-Order type: Set a value that matches <OrderType>
-Quantity: Set a value that matches <Quantity>
-Unit price: Set a value that matches <Price>
-Order date: Set a value that matches <Date>
5) Activate the application, obtain a return (result), and set <OUT signature> information (corresponding to lines 16 to 20 in FIG. 4)
Success or failure: indicates whether or not the application process has been completed normally (corresponding to the 17th line in FIG. 4)
-Product type: Type of product created as a result of application processing (corresponding to line 18 in Fig. 4)
-Tag ID: an identifier for delivering the product to the subsequent steps (corresponding to line 19 in FIG. 4)
6) Confirm that the value of <success / fail> is successful: If the value is unsuccessful, the subsequent processing is not performed, and a failure report message is transmitted to the reporter.
7) Check that the value (yes) of <shipped> in <post-condition> matches the <shipped> status (read from the information base) in this step's business process (identified by ID) Yes (corresponds to line 22 in FIG. 4)
8) Check that the value (yes) of <paid> in <post-condition> matches the <paid> status (read from the information base) in this step's business process (identified by ID) Yes (corresponding to line 23 in FIG. 4)
9) Confirmation of next step
-When the value of <product type> in the return of application startup matches <product type> in <condition> of <next step>. The value of <Step ID> in the next line is the next step ID. (Line 27 in FIG. 4 is a condition and line 28 is a transition destination.)
In this example, if the product type is clothing, the process transitions to the step of packaging.
10) The identifier (service name) which is the attribute of the step determined by the above determination is read from the business process definition XML document.
11) Select a step performer based on the identifier
-Selection by name service (when the identifier is a specific system name)
-Selection by UDDI (If the identifier is a service name, search the service by UDDI and select a service provider that meets the criteria)
12) Prepare parameters to be passed to the step executor
-If <Invariant> is <Days>, the specific value of <Days> is set as <Days> in the message sent with the business process definition. However, what if the responsible system sets a numerical value from the beginning? Nothing (line 19 in FIG. 7 corresponding to line 3 in FIG. 6)
-Regarding <Order ID>, the specific value of <Order ID> is set as <OrderID> in the message sent with the business process definition. However, if the responsible system sets a numerical value from the beginning, nothing is done ( (Line 20 in FIG. 7 corresponding to line 10 in FIG. 6)
-Regarding <Order Type>, the specific value of <Order Type> is set as <OrderType> in the message sent together with the business process definition. However, if the responsible system sets a numerical value from the beginning, nothing is done ( (Line 21 in FIG. 7 corresponding to line 11 in FIG. 6)
-Regarding <quantity>, the specific value of <quantity> is set as <Quantity> in the message sent together with the business process definition. However, if the responsible system sets a numerical value from the beginning, nothing is done (FIG. 6). (The 22nd line in FIG. 7 corresponding to the 12th line)
-Regarding <unit price>, the specific value of <unit price> is set as <Price> in the message sent together with the business process definition. However, if the responsible system sets a numerical value from the beginning, nothing is done (FIG. 6). Line 23 in FIG. 7 corresponding to line 13 in FIG. 7)
Regarding the <order date>, the specific value of the <order date> is set as <Date> in the message sent with the business process definition. However, if the responsible system sets a numerical value from the beginning, nothing is performed (see FIG. (Line 24 in FIG. 7 corresponding to line 14 in line 6)
13) Assemble the following message to be sent to the selected service provider (the main items are illustrated in FIG. 7)
・ Header part
・ Originating system name: Responsible system name
・ Business process ID: Business process ID
-Destination system name: Name of the selected service provider
-Step name: Step identifier
・ Monitoring system name: Reporter name
・ Content part
An XML document including a (name, value) list of <Days>, <OrderID>, <OrderType>, <Quantity>, <Price>, <Date> (the number of <days>, <order ID>, <When order type>, <quantity>, <unit price>, and <order date> are not set by the responsible system)
-The above business process definition XML document (or its URL)
14) After notifying the monitoring system that the clothing material manufacturing step of the business process has been completed, send this message to the selected service provider.
4 Non-clothing manufacturing steps
4.1 Assumption
1) Receive the message
2) Analyze the message and save each information of the header part and each information of the content part
3) Using the step name included in the header part, determine the corresponding step from the business process definition of the content part (in the example, a non-clothing manufacturing step) (corresponding to “non-clothing manufacturing” in the first line of FIG. 5)
4) If necessary, check with the monitoring node to confirm that the previous step has been completed normally.
5) If step execution cannot be accepted, notify the monitoring node to that effect.
4.2 Description of processing logic based on examples
1) The value of “days” of “<invariant>” (“Days”) is replaced with the value of “Days” because the message has <Days> (corresponding to the second to fourth lines in FIG. 5).
2) Similarly, for <Order ID>, <Order type>, <Quantity>, <Unit price>, and <Order date>, values of <OrderID>, <OrderType>, <Quantity>, <Price>, <Date> Replace and save (corresponds to lines 10 to 14 in FIG. 5)
3) Check that the value (contracted) of <contract> of <preconditions> matches the contract relationship information (read from the information base) between the step executor and the responsible system (see FIG. 5). Line 9 corresponds to the description of "qqq.ppp.com/contract.doc"
4) Prepare for application startup
-Set <IN signature> information that is a parameter at the time of application startup (corresponding to lines 8 to 15 in FIG. 5)
・ Contract text: Set the document or URL, etc.
・ Order ID: Set a value suitable for <OrderID>
-Order type: Set a value that matches <OrderType>
-Quantity: Set a value that matches <Quantity>
-Unit price: Set a value that matches <Price>
-Order date: Set a value that matches <Date>
5) Start the application, obtain a return (result), and set <OUT signature> information (corresponding to lines 16 to 20 in FIG. 5)
Success or failure: indicates whether the application process has been completed normally (corresponding to the 17th line in FIG. 5)
-Product type: Product type created as a result of application processing (corresponding to line 18 in Fig. 5)
-Tag ID: Identifier for delivering the product to the subsequent steps (corresponding to line 19 in FIG. 5)
6) Confirm that the value of <success / fail> is successful: If the value is unsuccessful, the subsequent processing is not performed, and a failure report message is transmitted to the reporter.
7) Check that the value (yes) of <shipped> in <post-condition> matches the <shipped> status (read from the information base) in this step's business process (identified by ID) (Corresponding to line 22 in FIG. 5)
8) Check that the value (yes) of <paid> in <post-condition> matches the <paid> status (read from the information base) in this step's business process (identified by ID) (Corresponding to line 23 in FIG. 5)
9) Confirmation of next step
-When the value of <product type> in the return of application startup matches <product type> in <condition> of <next step>. The value of <Step ID> in the next line is the next step ID. (Line 27 in FIG. 5 is a condition and line 28 is a transition destination.)
In this example, if the product type is non-clothing, the process transits to the step of packaging.
10) The identifier (service name) which is the attribute of the step determined by the above determination is read from the business process definition XML document.
11) Select a step performer based on the identifier
-Selection by name service (when the identifier is a specific system name)
-Selection by UDDI (If the identifier is a service name, search the service by UDDI and select a service provider that meets the criteria)
12) Prepare parameters to be passed to the step executor
-If <invariant> is <days>, set the specific value of <days> as <Days> in the message sent with the business process definition. However, what if the responsible system sets the number from the beginning? Nothing (line 19 in FIG. 7 corresponding to line 3 in FIG. 6)
-Regarding <Order ID>, the specific value of <Order ID> is set as <OrderID> in the message sent together with the business process definition. However, if the responsible system sets a numerical value from the beginning, nothing is done ( (Line 20 in FIG. 7 corresponding to line 10 in FIG. 6)
* Regarding <Order Type>, the specific value of <Order Type> is set as <OrderType> in the message sent together with the business process definition. However, if the responsible system sets a numerical value from the beginning, nothing is done ( (Line 21 in FIG. 7 corresponding to line 11 in FIG. 6)
-Regarding <quantity>, the specific value of <quantity> is set as <Quantity> in the message sent together with the business process definition. However, if the responsible system sets the numerical value from the beginning, nothing is done (FIG. 6). (The 22nd line in FIG. 7 corresponding to the 12th line)
-Regarding <unit price>, the specific value of <unit price> is set as <Price> in the message sent together with the business process definition. However, if the responsible system sets a numerical value from the beginning, nothing is done (FIG. 6). Line 23 in FIG. 7 corresponding to line 13 in FIG. 7)
-Regarding <order date>, the specific value of <order date> is set as <Date> in the message sent with the business process definition. However, if the responsible system has set a numerical value from the beginning, nothing is done ( (Line 24 in FIG. 7 corresponding to line 14 in FIG. 6)
13) Assemble the following message to be sent to the selected service provider (the main items are illustrated in FIG. 7)
・ Header part
・ Originating system name: Responsible system name
・ Business process ID: Business process ID
-Destination system name: Name of the selected service provider
-Step name: Step identifier
・ Monitoring system name: Reporter name
・ Content part
An XML document including a (name, value) list of <Days>, <OrderID>, <OrderType>, <Quantity>, <Price>, and <Date> (the number of <days>, <order ID>, <When order type>, <quantity>, <unit price>, and <order date> are not set by the responsible system)
-The above business process definition XML document (or its URL)
14) Send this message to the selected service provider after notifying the monitoring system that the non-garment material manufacturing step of the business process has been completed.
5 Package steps
5.1 Assumption
1) Receive the message
2) Analyze the message and save each information of the header part and each information of the content part
3) Using the step name included in the header part, determine the corresponding step from the business process definition of the content part (package step in the example) (corresponding to "Package" on the first line in FIG. 6)
4) If necessary, check with the monitoring node to confirm that the previous step has been completed normally.
5) If step execution cannot be accepted, notify the monitoring node to that effect.
5.2 Description of processing logic based on examples
1) The <Days> value (“Days”) of <Invariant> is replaced with the value of <Days> because the message has <Days> (corresponding to the third to fifth lines in FIG. 6).
2) Similarly, for <Order ID>, <Order type>, <Quantity>, <Unit price>, and <Order date>, values of <OrderID>, <OrderType>, <Quantity>, <Price>, <Date> Replace and save (corresponds to lines 10 to 14 in FIG. 6)
3) Check that the value of <contract> of <preconditions> (contracted) matches the contract relationship information (read from the information base) between the step executor and the responsible system (see FIG. 6). (Corresponds to line 9)
4) Prepare for application startup
-Set <IN signature> information that is a parameter at the time of application startup (corresponding to lines 8 to 15 in FIG. 6)
・ Contract text: Set the document or URL, etc.
・ Order ID: Set a value suitable for <OrderID>
-Order type: Set a value that matches <OrderType>
-Quantity: Set a value that matches <Quantity>
-Unit price: Set a value that matches <Price>
-Order date: Set a value that matches <Date>
5) Start the application, obtain a return (result), and set the <OUT signature> information (corresponding to lines 16 to 20 in FIG. 6)
Success or failure: indicates whether or not the application processing has been completed normally (corresponding to the 17th line in FIG. 6)
-Product type: Product type created as a result of application processing (corresponding to line 18 in Fig. 6)
-Tag ID: Identifier for delivering the product to the subsequent steps (corresponding to line 19 in FIG. 6)
6) Check that the value (yes) of <shipped> in <post-condition> matches the <shipped> status (read from information base) in the step process's business process (identified by ID) (Corresponding to line 22 in FIG. 6)
7) Check that the value (yes) of <paid> in <post-condition> matches the <paid> status (read from the information base) in this step's business process (identified by ID) (Corresponding to line 23 in FIG. 6)
8) Confirmation of next step
-When the value of <product type> in the return of application startup matches <product type> in <condition> of <next step>. The value of <Step ID> in the next line is the next step ID. (Corresponding to line 26 in FIG. 6)
In this example, since there is no information on the next step, the business process ends, and the process transits to the business process end report destination. (Corresponding to line 31 in FIG. 6)
9) Assemble the following message to be sent to the selected service provider (the main items are illustrated in FIG. 7)
・ Header part
・ Originating system name: Responsible system name
・ Business process ID: Business process ID
-Destination system name: Business process end program
・ Step name: None
・ Monitoring system name: Reporter name
・ Content part
An XML document including a (name, value) list of <Days>, <OrderID>, <OrderType>, <Quantity>, <Price>, and <Date> (the number of <days>, <order ID>, <When order type>, <quantity>, <unit price>, and <order date> are not set by the responsible system)
-The above business process definition XML document (or its URL)
10) After notifying the monitoring system that this business process has ended, send this message to the business process end program.
6 Business process end report destination operation
1) Receive the message
2) Analyze the message and save each information of the header part and each information of the content part
3) Give a business process end message to the operator
7 Operation of business process monitoring program
1) When a success report message is received
-Save the progress of each step in the business process as business process execution history information
2) When a progress inquiry is received
・ Respond the progress of each saved step
3) When a failure report message is received
・ Contact the responsible system and start a new business process in order to execute the prescribed compensation operation, etc.
4) When a step execution impossible message is received
-If the step executor is specified in the business process definition document, perform the process when a failure report message is received. If not specified, an alternative step execution node is found using a dynamic discovery mechanism such as UDDI, and the node is requested to continue the business process.
[0028]
According to the above, the execution of the business process in the network environment can be realized on an equal and distributed basis. Further, by sharing the business process definition, it is possible to determine whether to participate in the execution of the business process after understanding the business content.
[0029]
Also, by providing monitoring nodes, it is possible to monitor the progress of business processes that are being executed in a distributed manner. Further, a collection process in the case where an error occurs during the execution of the business process can be prepared by using the monitoring node.
[0030]
When it becomes necessary to transfer data between the computer nodes that execute each step of the business process, not only send the data in a message but also use a notation such as URL to specify the location and access method of the data. It can be sent in a message.
[0031]
In addition, regarding the method for specifying each step execution computer node in the business process flow, only the service name and service contents are described in the business process definition document, and a dynamic discovery mechanism of the Web service using UDDI or the like at the time of execution is provided. It is possible to specify a physical service execution computer node by using it.
[0032]
It also indicates that the act of acting for the management of business processes deployed in an open network environment is established as a business.
[0033]
【The invention's effect】
Execution of business processes in a distributed processing environment can be realized in a distributed manner.
[Brief description of the drawings]
FIG. 1 shows a system configuration in a case where a fabric processing package business process system is realized by a method of the present invention in one embodiment of the present invention.
FIG. 2 shows an example of a fabric processing package business process definition in XML language referred to in FIG.
FIG. 3 shows an example of a message accepted for purchase of clothing in FIG. 1;
FIG. 4 shows an example of a message accepted in the manufacture of clothing in FIG.
FIG. 5 shows an example of a message accepted in non-clothing production in FIG. 1;
FIG. 6 shows an example of a message accepted by the package in FIG. 1;
FIG. 7 is an example of a message sent to each step together with a business process definition document.
FIG. 8 is an example of a processing procedure in each step execution computer node referred to in FIG. 1;
FIG. 9 is an example of components of each step execution computer node referred to in FIG. 1;
FIG. 10 is a configuration example of a business that performs management functions such as starting, monitoring, and termination in the business process example referred to in FIG. 1;
[Explanation of symbols]
1 Business process start computer node
2 Business process monitoring computer node
3 Business process end report computer node
4 Fabric purchase step execution computer node
5 Apparel manufacturing step execution computer node
6 Non-clothing manufacturing step execution computer node
7 Package step execution computer node
8 Network
9 Message reception processing
10 Process to extract business process document from message
11 Processing to extract business process documents from the network
12 Parameter and definition document analysis
13 Execution step discovery process
14 Signature Creation Process
15 Step execution process
16 Reporting the execution result of the step to the monitoring node
17 Next step confirmation processing
18. Message assembling and sending processing to be sent to the next step
19 Business process user system (device)
20 Display device
21 Input device
22 Central Processing Unit (CPU)
23 Business Process Definition Editing Program and Web Service Client Program
24 Business Process Monitoring System (Equipment)
25 Display device
26 Input device
27 Central Processing Unit (CPU)
28 Business Process Progress Management Web Service Program
29 Operation database device
30 Network
31 Business process step execution device
32 Display device
33 Input device
34 Central Processing Unit (CPU)
35 Business Process Step Processing Web Service Program
36 Business Process User
37 Business Process Processing Service
38 Business Process Step Execution Device
39 Business process step execution device
40 Business Process Step Execution Device

Claims (8)

相互通信が可能な複数の計算機が連携して行うビジネスプロセス処理方法において、
ビジネスプロセス定義を含むメッセージを参照し、次のステップへの入力パラメタを論理メッセージとして生成し、前記次のステップを実行する計算機へ送信することにより、当該計算機がそのステップを実行するとともに前記ビジネスプロセス定義に含まれる情報を解析して実行すべき次のステップを決定し、前記ビジネスプロセス定義メッセージの処理にて生成した前記次のステップへの入力パラメタを論理メッセージとして生成して次のステップを実行する計算機ノードに送信することを特徴としたビジネスプロセス処理方法。
In a business process processing method performed by a plurality of computers capable of communicating with each other,
By referring to the message including the business process definition, generating an input parameter to the next step as a logical message and transmitting the logical message to a computer that executes the next step, the computer executes the step and executes the business process. Analyzes the information included in the definition to determine the next step to be executed, generates the input parameter to the next step generated in the processing of the business process definition message as a logical message, and executes the next step A business process processing method characterized by transmitting a business process to a computer node.
前記ステップでの実行結果を事前に設定する監視ノードに通知することで、当該ビジネスプロセスの進捗状況を随時把握出来るようにし、障害等により以降のノードへ前記ビジネスプロセスを進められない場合には前記監視ノードから定義に基づき前記ビジネスプロセスを中断し補償動作を実現するビジネスプロセスを起動させることを特徴とする請求項1記載のビジネスプロセス処理方法。By notifying the monitoring node that sets the execution result in the step in advance, the progress of the business process can be grasped at any time, and when the business process cannot be advanced to a subsequent node due to a failure or the like, the 2. The business process processing method according to claim 1, wherein the business process is interrupted based on the definition from a monitoring node to activate a business process for realizing a compensation operation. ステップ間でデータの引渡しが必要な場合に、データを当該ステップ間のメッセージの一部として引き渡す、またはデータの所在、名前およびアクセス手順を前記ビジネスプロセスメッセージの一部として引き渡すことを特徴とする請求項1記載のビジネスプロセス管方法。When data is required to be passed between steps, the data is delivered as part of a message between the steps, or the location, name, and access procedure of the data are delivered as part of the business process message. Item 4. The business process management method according to Item 1. 前記ビジネスプロセス定義におけるステップ実行主体の指定時に、名称解決によりネットワークアドレスを直接得られるようなシステム名の指定またはサービス名やサービス記述といった型情報を指定することで、次のステップ実行主体を発見もしくは確定することを特徴とする請求項1記載のビジネスプロセス管方法。At the time of specifying a step execution subject in the business process definition, by specifying a system name or a type name such as a service name or a service description so that a network address can be directly obtained by name resolution, the next step execution subject can be found or 2. The business process management method according to claim 1, wherein the determination is made. 請求項1から4のビジネスプロセス処理方法を用い、非集中型のビジネスプロセス実行を行うシステム及び装置。A system and apparatus for performing a decentralized business process using the business process processing method according to claim 1. 請求項1から5のビジネスプロセス処理方法と装置を用い、他者からの依頼を受け、ビジネスプロセスの進捗状況を監視し、必要に応じ補償動作を起動するなどの対応を行い、ビジネスプロセス開始者の負担を代行するというビジネスの方法。The business process initiator using the business process processing method and apparatus according to claim 1, receiving a request from another person, monitoring the progress of the business process, and activating a compensation operation as necessary. The business method of acting on behalf of the business. 相互通信が可能な複数の計算機が連携して行うビジネスプロセス処理システムにおいて、
ビジネスプロセス定義を含むメッセージを参照し、次のステップへの入力パラメタを論理メッセージとして生成し、前記次のステップを実行する計算機へ送信する手段と、当該計算機がそのステップを実行するとともに前記ビジネスプロセス定義に含まれる情報を解析して実行すべき次のステップを決定し、前記ビジネスプロセス定義メッセージの処理にて生成した前記次のステップへの入力パラメタを論理メッセージとして生成して次のステップを実行する計算機ノードに送信する手段とを備えたことを特徴としたビジネスプロセス処理システム。
In a business process processing system where multiple computers that can communicate with each other cooperate,
Means for referring to a message including a business process definition, generating an input parameter to the next step as a logical message, and transmitting the logical message to a computer that executes the next step; Analyzes the information included in the definition to determine the next step to be executed, generates the input parameter to the next step generated in the processing of the business process definition message as a logical message, and executes the next step Means for transmitting data to a computer node to be processed.
相互通信が可能な複数の計算機が連携して行うビジネスプロセス処理システムにおけるビジネスプロセス処理プログラムにおいて、
ビジネスプロセス定義を含むメッセージを参照し、次のステップへの入力パラメタを論理メッセージとして生成し、前記次のステップを実行する計算機へ送信する機能と、当該計算機がそのステップを実行するとともに前記ビジネスプロセス定義に含まれる情報を解析して実行すべき次のステップを決定し、前記ビジネスプロセス定義メッセージの処理にて生成した前記次のステップへの入力パラメタを論理メッセージとして生成して次のステップを実行する計算機ノードに送信する機能とを有することを特徴としたビジネスプロセス処理プログラム。
In a business process processing program in a business process processing system performed by a plurality of computers that can communicate with each other,
A function of referring to a message including a business process definition, generating an input parameter to a next step as a logical message, and transmitting the logical message to a computer that executes the next step; Analyzes the information included in the definition to determine the next step to be executed, generates the input parameter to the next step generated in the processing of the business process definition message as a logical message, and executes the next step A business process processing program having a function of transmitting data to a computer node that performs the processing.
JP2003046684A 2003-02-25 2003-02-25 Business process processing method and system, and processing program therefor Expired - Fee Related JP4352722B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2003046684A JP4352722B2 (en) 2003-02-25 2003-02-25 Business process processing method and system, and processing program therefor
US10/650,688 US20040167795A1 (en) 2003-02-25 2003-08-29 Method and system for processing business process, and processing program therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003046684A JP4352722B2 (en) 2003-02-25 2003-02-25 Business process processing method and system, and processing program therefor

Publications (2)

Publication Number Publication Date
JP2004258823A true JP2004258823A (en) 2004-09-16
JP4352722B2 JP4352722B2 (en) 2009-10-28

Family

ID=32866549

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003046684A Expired - Fee Related JP4352722B2 (en) 2003-02-25 2003-02-25 Business process processing method and system, and processing program therefor

Country Status (2)

Country Link
US (1) US20040167795A1 (en)
JP (1) JP4352722B2 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007249598A (en) * 2006-03-16 2007-09-27 Mitsubishi Electric Corp Processing flow control device, application execution device, processing flow control system, processing flow control method and processing flow control program
JP2010002963A (en) * 2008-06-18 2010-01-07 Hitachi Ltd Service cooperation method, service cooperation program, bp (business process) node, and service cooperation system
WO2010018637A1 (en) * 2008-08-15 2010-02-18 富士通株式会社 Business flow distributed processing system and method
WO2011042969A1 (en) * 2009-10-07 2011-04-14 Nakashima Hirofumi P2p-type work flow system
CN102810070A (en) * 2012-07-16 2012-12-05 福建富士通信息软件有限公司 High-performance professional ability packaging process engine and process control method thereof
JP2013012014A (en) * 2011-06-29 2013-01-17 Yahoo Japan Corp Application platform device, application platform system and operation method of application platform device

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4625337B2 (en) * 2004-02-23 2011-02-02 株式会社リコー Process management apparatus, process management method, and process management program
US8650152B2 (en) * 2004-05-28 2014-02-11 International Business Machines Corporation Method and system for managing execution of data driven workflows
CA2661477A1 (en) 2006-08-13 2008-02-21 Controls Force Ltd. Systems and methods for message-based control and monitoring of a business process
US9020944B2 (en) 2009-10-29 2015-04-28 International Business Machines Corporation Systems and methods for organizing documented processes
US8561080B2 (en) * 2011-04-26 2013-10-15 Sap Ag High-load business process scalability
CN113409153A (en) * 2020-03-16 2021-09-17 京东安联财产保险有限公司 Business process management system, business process processing method, equipment and storage medium
CN112433794A (en) * 2020-11-20 2021-03-02 金蝶云科技有限公司 Method for controlling service progress of ERP system and related equipment
CN113762910B (en) * 2020-11-27 2024-04-16 北京京东振世信息技术有限公司 Document monitoring method and device
CN113435842A (en) * 2021-06-28 2021-09-24 京东科技控股股份有限公司 Business process processing method and computer equipment
CN113778572B (en) * 2021-09-28 2023-09-15 广州四三九九信息科技有限公司 Method for automatically linking multiple CLI programs into task flow
CN114785874B (en) * 2022-06-16 2022-09-06 成都中科合迅科技有限公司 Method for providing high-availability transmission channel based on multi-network protocol

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5754857A (en) * 1995-12-08 1998-05-19 Sun Microsystems, Inc. Distributed asynchronous workflow on the net
US6463420B1 (en) * 1999-12-30 2002-10-08 General Electric Company Online tracking of delivery status information over a computer network
JP2002074090A (en) * 2000-08-29 2002-03-12 Mori Seiki Co Ltd Network system
US20020143660A1 (en) * 2001-03-29 2002-10-03 International Business Machines Corporation Method and system for online shopping
GB2381710B (en) * 2001-10-31 2004-01-21 Sun Microsystems Inc Method and apparatus for routing signed messages

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007249598A (en) * 2006-03-16 2007-09-27 Mitsubishi Electric Corp Processing flow control device, application execution device, processing flow control system, processing flow control method and processing flow control program
JP2010002963A (en) * 2008-06-18 2010-01-07 Hitachi Ltd Service cooperation method, service cooperation program, bp (business process) node, and service cooperation system
WO2010018637A1 (en) * 2008-08-15 2010-02-18 富士通株式会社 Business flow distributed processing system and method
JP5024453B2 (en) * 2008-08-15 2012-09-12 富士通株式会社 Business flow distributed processing system and method
US8583754B2 (en) 2008-08-15 2013-11-12 Fujitsu Limited Business flow distributed processing system and method
WO2011042969A1 (en) * 2009-10-07 2011-04-14 Nakashima Hirofumi P2p-type work flow system
GB2486151A (en) * 2009-10-07 2012-06-06 Hirofumi Nakashima P2p-type work flow system
CN102576429A (en) * 2009-10-07 2012-07-11 中岛裕文 P2P-type work flow system
JP5117619B2 (en) * 2009-10-07 2013-01-16 裕文 中島 P2P type workflow system
JP2013012014A (en) * 2011-06-29 2013-01-17 Yahoo Japan Corp Application platform device, application platform system and operation method of application platform device
CN102810070A (en) * 2012-07-16 2012-12-05 福建富士通信息软件有限公司 High-performance professional ability packaging process engine and process control method thereof

Also Published As

Publication number Publication date
JP4352722B2 (en) 2009-10-28
US20040167795A1 (en) 2004-08-26

Similar Documents

Publication Publication Date Title
JP2004258823A (en) Business process transaction method and system, and transaction program therefor
US6658483B1 (en) Electronic transaction system and method and storage medium storing therein control program for executing format conversion in electronic transaction
Tan et al. A petri net-based method for compatibility analysis and composition of web services in business process execution language
US7707587B2 (en) Scheduler supporting web service invocation
US7949999B1 (en) Providing support for multiple interface access to software services
US7343554B2 (en) Mechanisms for supporting back button function of web browser as web service server in interaction with business process engine
US20020143819A1 (en) Web service syndication system
Falazi et al. Smart contract invocation protocol (SCIP): A protocol for the uniform integration of heterogeneous blockchain smart contracts
US7418632B2 (en) Service processing system, processing result management device and processing result checking method of service processing system
US20050071243A1 (en) Non-disruptive business process debugging and analysis
WO2002071216A2 (en) A method and a bridge for coupling a server and a client of different object types
JP2008003709A (en) Management device, task management method, and program
JP4852906B2 (en) Cooperation processing system and apparatus
JP2006277644A (en) Data migration support system and data migration support program
KR100574158B1 (en) Method and apparatus for controlling a multi-node process
Helal et al. The internet enterprise
JP2004185166A (en) Service part selection support method
Mateo et al. A coloured Petri net approach to model and analyse stateful workflows based on WS-BPEL and WSRF
JP2004310742A (en) Service processing method and device
KR102659154B1 (en) Appartus for providing application services, method thereof, and computationally-implementable storage medium for storing a program for providing application services
KR102659150B1 (en) Appartus for providing application services, method thereof, and computationally-implementable storage medium for storing a program for providing application services
JP2000207474A (en) Workflow support execution system
JP2002288360A (en) Method and system for purchasing software
Akram et al. Grid Business Process: Case Study
Cicirelli et al. Integration and interoperability between Jini services and web services

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060216

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20060420

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080728

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080819

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081020

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081118

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090421

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090622

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090707

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090720

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120807

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120807

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130807

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees