JP2009282581A - Business process performing device and business process performing method - Google Patents
Business process performing device and business process performing method Download PDFInfo
- Publication number
- JP2009282581A JP2009282581A JP2008131364A JP2008131364A JP2009282581A JP 2009282581 A JP2009282581 A JP 2009282581A JP 2008131364 A JP2008131364 A JP 2008131364A JP 2008131364 A JP2008131364 A JP 2008131364A JP 2009282581 A JP2009282581 A JP 2009282581A
- Authority
- JP
- Japan
- Prior art keywords
- service
- business process
- execution
- definition
- time
- 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.)
- Ceased
Links
Images
Landscapes
- Hardware Redundancy (AREA)
Abstract
Description
本発明は、ネットワーク上の計算機に配備された複数のサービスを順に実行するビジネスプロセスにおいて、サービスの実行失敗回数を低減する装置および方法に関する。 The present invention relates to an apparatus and method for reducing the number of service execution failures in a business process that sequentially executes a plurality of services deployed in computers on a network.
近年、ネットワークを介して接続された複数の計算機において、計算機上に配備されたアプリケーションがネットワークを経由して処理要求、応答の送受信を行なう分散処理構成が広く使用されている。
この分散処理構成では、例えば呼出し先アプリケーションがメンテナンス中であり処理要求を受け付けない閉塞状態であったり、呼出し先アプリケーションが配備されているサーバが再起動中であるといった場合があり、呼出し先であるアプリケーションが一時的に停止している可能性を考慮する必要がある。
In recent years, in a plurality of computers connected via a network, a distributed processing configuration in which an application deployed on the computer transmits and receives processing requests and responses via the network has been widely used.
In this distributed processing configuration, for example, there is a case where the call destination application is under maintenance and the processing request is not accepted, or the server on which the call destination application is deployed is being restarted. You need to consider the possibility that the application is temporarily suspended.
呼出し先の停止中のアプリケーションへの処理要求送信を回避するためには、処理要求を送る直前に呼出し先アプリケーションの稼動状態を確認し、停止中であればアプリケーションが復旧するまで待機するという方法が考えられる。
アプリケーションの起動やサーバの再起動といった作業は、開始から終了までにかかる時間が毎回、ほぼ同等と考えられるため、アプリケーションが停止している場合には停止理由毎に復旧までにかかる平均的な時間だけアプリケーションの実行を待機すれば、一定時間経過後には復旧し、アプリケーションの実行が成功することが期待できる。
In order to avoid sending a processing request to an application whose call destination is stopped, a method of checking the operating state of the call destination application immediately before sending the processing request and waiting until the application recovers if it is stopped. Conceivable.
Operations such as application startup and server restart are considered to be almost the same every time from start to end, so if the application is stopped, the average time taken to recover for each reason for the stop If only waiting for the execution of the application, it can be expected to recover after a certain period of time and the execution of the application succeeds.
ところで、これまでは、複数のアプリケーションを連携させる場合、呼出し元と呼出し先が互いを意識する密結合な連携方法が採用されることが多かった。この密結合のシステムでは、呼出し先アプリケーションが呼出し元アプリケーションへ稼動状態を通知するなどして、呼出し先のアプリケーションの稼動状態を呼出し元が検知することができる。このため、呼出し先のアプリケーションが障害等により停止している場合は呼出し元で呼出し先を変更するといった障害対策をとることができる。このようなシステムの例として、特許文献1がある。
By the way, until now, when a plurality of applications are linked, a tightly coupled linkage method in which the caller and the callee are aware of each other has often been adopted. In this tightly coupled system, the call source can detect the operation state of the call destination application by, for example, the call destination application notifying the call source application of the operation state. For this reason, when the application at the call destination is stopped due to a failure or the like, it is possible to take measures against the failure such as changing the call destination at the call source.
ところで、密結合なシステムには、システム間の関連度合いが深いことから保守作業が多肢に及び、保守性の低下や開発コストの増大という欠点がある。
これに対して、近年、SOA(Service Oriented Architecture)という情報システム設計手法が注目されている。SOAとは、サービスと呼ばれる業務処理を行なうアプリケーションを、ビジネスプロセスと呼ばれる業務フローを実装したアプリケーションから指定された順序で呼び出すことで新たな情報システムを構築するという考え方である。
By the way, a tightly coupled system has a drawback that maintenance work is extensive because the degree of association between the systems is deep, and maintainability is reduced and development cost is increased.
On the other hand, in recent years, an information system design technique called SOA (Service Oriented Architecture) has attracted attention. SOA is a concept of constructing a new information system by calling an application that performs business processing called a service in an order specified by an application that implements a business flow called a business process.
SOAにおけるサービスでは、サービスを実行するためのインタフェースがインタフェース記述言語で記述されており、そのインタフェースに従っていれば、どのビジネスプロセスからでもサービスを実行することができる。インタフェース記述言語の仕様の例としては、WSDL(Web Service Description Language)がある。また、ビジネスプロセス記述言語の仕様の例としては、BPEL(Business Process Execution Language)がある。 In the service in the SOA, an interface for executing the service is described in an interface description language, and the service can be executed from any business process as long as the interface is followed. An example of the interface description language specification is WSDL (Web Service Description Language). An example of business process description language specifications is BPEL (Business Process Execution Language).
SOAに基づいた情報システムでは、ビジネスプロセスとサービス間の独立性が高いため、既存のサービスを再利用することで低コストかつ迅速に情報システムを開発することができる。加えて、複数のサービスを組み合わせて新たな情報システムを構築するためのサービスの実装の変更や呼出し順序の変更が容易となり、情報システムの柔軟性を確保することができるという利点がある。
しかし、SOAに代表されるような呼出し元と呼出し先が互いを意識しない疎結合なシステムにおいては、呼出し先であるサービスは呼出し元であるビジネスプロセスを意識しないため、ビジネスプロセスへサービス自身の稼動状態を通知することができない。
In the information system based on the SOA, the independence between the business process and the service is high. Therefore, the information system can be rapidly developed at low cost by reusing the existing service. In addition, there is an advantage that it is easy to change the implementation of services and change the calling order for constructing a new information system by combining a plurality of services, and to ensure the flexibility of the information system.
However, in a loosely coupled system in which the caller and callee are unaware of each other, as represented by SOA, the service that is the callee is not aware of the business process that is the caller, so The status cannot be notified.
この疎結合なシステムにおいて、サービスの稼動状態をビジネスプロセスが検知する手段としては、保管手段であるUDDI(Universal Description, Discovery and Integration)を用いる方法が考えられる。UDDIとは、サービスの処理内容やサービスを使用するためのインタフェースといった情報を登録しておくリポジトリである。ビジネスプロセスは、サービスを使用する際、UDDIへサービスの情報を問合せ、また様々な情報を取得する。UDDIがサービスへ稼動状態の問合せを行い、サービスの稼動状態情報を保持し、ビジネスプロセスからの問合せに対してサービスの稼動状態情報を提供することができる。
ところで、UDDIでは、複数のビジネスプロセスからの問合せやサービスの稼動状態の応答がUDDIに集中するため、処理が重くなり、UDDIがシステム上のボトルネックとなる可能性がある。また、UDDIが何らかの障害により停止した場合、UDDIを利用しているビジネスプロセスも処理を実行することができなくなるため、障害の影響範囲が広くなりやすい。
また、ビジネスプロセスからサービスを実行する度にビジネスプロセスがUDDIへサービスの稼動状態を問い合わせるため、ネットワークトラフィックが増大し、レスポンスが悪くなる、容量オーバーでシステムダウンが発生する等の不都合を生じる。このため、UDDIへのアクセス量が過大になると想定される大規模なシステムへ適用するのは現実的ではない。
By the way, in UDDI, since inquiries from multiple business processes and responses of service operating states are concentrated on UDDI, processing becomes heavy, and UDDI may become a bottleneck on the system. In addition, when the UDDI is stopped due to some failure, the business process using the UDDI cannot execute the process, so the range of influence of the failure is likely to be widened.
In addition, every time a service is executed from the business process, the business process inquires about the operating state of the service to UDDI, resulting in inconveniences such as an increase in network traffic, a poor response, and an overcapacity resulting in a system down. For this reason, it is not realistic to apply to a large-scale system in which the amount of access to UDDI is assumed to be excessive.
停止中のサービスをビジネスプロセスから実行してしまった場合、サービスの実行に失敗したという例外がビジネスプロセスにて発生し、ビジネスプロセスの実行に失敗する等の異常処理が発生する。実際には、ビジネスプロセスは同時に複数のクライアントからの処理要求を受け取って並列に処理を実行しているため、1つのサービスが停止すると、1つのビジネスプロセスについて、処理中の処理要求の数だけ例外が発生する。また、あるサービスを複数のビジネスプロセスから利用している場合、共有しているサービスが停止すると複数のビジネスプロセスで例外が発生する。さらに、ビジネスプロセスからビジネスプロセスを実行するような多段構成の場合には、1つのサービス実行失敗が複数のビジネスプロセスに波及し、多数の例外が発生してしまう。 When a stopped service is executed from a business process, an exception that the service execution failed occurs in the business process, and abnormal processing such as failure to execute the business process occurs. Actually, business processes receive processing requests from multiple clients at the same time and execute processing in parallel, so if one service stops, there will be an exception for the number of processing requests being processed for one business process. Will occur. Also, when a service is used from multiple business processes, an exception occurs in multiple business processes when the shared service stops. Furthermore, in the case of a multi-stage configuration in which business processes are executed from business processes, one service execution failure spreads to a plurality of business processes, and a large number of exceptions occur.
以下、従来のシステムの概要を、図1の一部を用いて説明する。なお、図1は、本発明の第1実施形態のビジネスプロセス処理システムにおけるデータの流れを示す図である。
従来のビジネスプロセス実行装置200におけるビジネスプロセス実行の基本的な流れは、次の通りである。
クライアント270はビジネスプロセス実行装置200へビジネスプロセス1処理要求100を送信する。ビジネスプロセス実行装置200のビジネスプロセス実行部230は、ビジネスプロセス1処理要求100毎にビジネスプロセス1インスタンス231、232を生成する。
Hereinafter, an outline of a conventional system will be described with reference to a part of FIG. FIG. 1 is a diagram showing a data flow in the business process processing system according to the first embodiment of the present invention.
The basic flow of business process execution in the conventional business
The
このビジネスプロセス1インスタンス231、232は、ビジネスプロセスの進捗状態やビジネスプロセス内部で使用する変数の値といった処理要求毎の実行状態を保持し、実行状態とビジネスプロセス1定義251の内容に従って処理を行なう処理部であり、受信したビジネスプロセス1処理要求100毎にビジネスプロセス実行部230が生成する。そして、ビジネスプロセス1インスタンス231、232はビジネスプロセス1定義251に従ってサービスA280およびサービスB281を実行する。
These
従来の方法では、仮にサービスB281が何らかの障害により停止している場合、ビジネスプロセス1インスタンス231、232の双方がサービスB281の実行に失敗し、インスタンスが異常終了してしまう。ビジネスプロセスインスタンスが異常終了した場合、インスタンスの進捗状態やサービスの実行状態等を照らし合わせて回復処理を行なう必要がある。
このように、例外が発生した場合、ビジネスプロセスの復旧作業にはサービスの進捗状態とビジネスプロセスの進捗状態の照らし合わせなど、システム管理者による複雑な手作業が必要であり、運用コストの増大を招来している。
In the conventional method, if the service B281 is stopped due to some failure, both the
In this way, when an exception occurs, the recovery process of the business process requires complicated manual operations by the system administrator, such as comparing the progress status of the service with the progress status of the business process. I have been invited.
この復旧作業を図20、図21を用いて説明する。なお、図20は、従来のビジネスプロセスが多段の場合の障害発生状況を示した図である。
図20に示すシステムは、ビジネスプロセスへ処理要求を送信するクライアント1850、ビジネスプロセスを実行するビジネスプロセス実行装置200、およびビジネスプロセスからの処理要求を受けて処理を行なう複数のサービス 1860〜1863で構成されている。ビジネスプロセス実行装置200には、発注ビジネスプロセス1851、見積取得ビジネスプロセス1852、購入ビジネスプロセス1853の3つのビジネスプロセスが配備されている。
This restoration work will be described with reference to FIGS. Note that FIG. 20 is a diagram illustrating a failure occurrence state when the conventional business process has multiple stages.
The system shown in FIG. 20 includes a
発注ビジネスプロセス1851は、クライアント1850からの発注依頼を受けて、見積取得ビジネスプロセス1852、購入ビジネスプロセス1853を実行することで発注処理を行なう。見積取得ビジネスプロセス1852は、サービスa 1860、サービスb1861を実行して見積取得処理を行なう。購入ビジネスプロセス1853は納期確認サービス1862、注文サービス1863を実行して購入処理を行なう。
The
ここで、注文サービス1863が何らかの障害によって停止した場合、注文サービス1863を実行しようとした購入ビジネスプロセス1853で例外が発生する。さらに、購入ビジネスプロセス1853を利用する発注ビジネスプロセス1851でも、購入ビジネスプロセス1853の実行に失敗し、例外が発生する。このように、ビジネスプロセスが多段になっている場合、1つのサービスの実行失敗によって複数のビジネスプロセスで例外が発生し、例外の連鎖が生じる。
Here, when the
図21は、図20に示す従来の障害の復旧作業の様子を示した図である。
図21に示すように、例外が発生したビジネスプロセスは途中まで処理を実行した状態で中断しているため、中断した時点から処理を再開するか、若しくは、誤りの原因となり得る処理済の処理の結果を全て消去(補償処理を実行)して最初からビジネスプロセスをやり直す必要がある。ここでは、例としてシステム管理者が補償処理を実行する手順を述べる。
FIG. 21 is a diagram showing a state of the conventional failure recovery operation shown in FIG.
As shown in FIG. 21, since the business process in which an exception has occurred is suspended in a state in which processing has been executed halfway, processing is resumed from the point of interruption, or processing that has been processed that may cause an error. It is necessary to erase all the results (execute compensation processing) and start the business process from the beginning. Here, as an example, a procedure in which the system administrator executes compensation processing will be described.
システム管理者は、運用ツール等によりシステム上で複数の例外が発生していることを検知し、例外が発生したビジネスプロセスを検索する。次に実行履歴を解析し、例外が発生している各ビジネスプロセスの進捗状況を確認する。その結果、実行済みのサービスやビジネスプロセスがあれば、実行済みの処理に対する補償処理を実行する。補償処理の手順は、サービスやビジネスプロセス毎に異なっており、システム管理者はそれぞれ提供されている運用マニュアル等を参照しながら処理を行なう。 The system administrator detects that a plurality of exceptions have occurred on the system using an operation tool or the like, and searches for a business process in which the exception has occurred. Next, analyze the execution history and check the progress of each business process in which an exception has occurred. As a result, if there is an already executed service or business process, compensation processing for the already executed process is executed. Compensation processing procedures differ for each service and business process, and the system administrator performs processing while referring to an operation manual provided.
補償処理としては、図21に示すように、例えばサービスa1860が使用しているデータベースから処理データを消去する作業や、発注ビジネスプロセスへ処理要求を送ったクライアント1850へ処理が失敗した旨を通知するメールを送信する作業などが考えられる。また、例外発生原因である注文サービス1863については、注文サービス1863における処理の進捗状況を確認して補償処理を行なう必要がある。
このように、ビジネスプロセスが多段になっている場合は、回復作業に大きな労力が費やされる。このため、サービスの実行に失敗しないようにすることでシステム全体での例外発生数を抑制し、システム管理者の作業量を低減することが可能になると考えられる。
As compensation processing, as shown in FIG. 21, for example, the processing data is deleted from the database used by the service a1860, or the
Thus, when the business process is multistage, a great effort is spent on the recovery work. For this reason, it is considered that the number of exception occurrences in the entire system can be suppressed and the work amount of the system administrator can be reduced by preventing the execution of the service from failing.
本発明は上記実状に鑑み、疎結合なシステムにおいてビジネスプロセスの実行失敗を回避することが可能なビジネスプロセス実行装置およびビジネスプロセス実行方法の提供を目的とする。 In view of the above circumstances, an object of the present invention is to provide a business process execution apparatus and a business process execution method capable of avoiding a business process execution failure in a loosely coupled system.
上記目的を達成すべく、第1の本発明に関わるビジネスプロセス実行装置は、クライアントの処理要求に応じてビジネスプロセス定義に記述された順にネットワーク上の複数のサービスを実行するビジネスプロセス実行装置であって、ビジネスプロセス実行履歴記憶部に記憶されるビジネスプロセスによるサービス実行結果から停止中のサービス毎にサービス実行待機時間を算出するサービス待機時間計算部と、ビジネスプロセス実行履歴記憶部に記憶される最新のサービス実行結果からサービス毎の稼動状態を判定するとともに停止中のサービス毎のサービス実行待機時間を取得するサービス稼動状態解析部と、サービスを実行する前に該サービスの稼動状態およびサービス実行待機時間を取得し、該サービスが稼動中である場合には該サービスを実行する一方、該サービスが停止中である場合にはサービス実行待機時間の間、該サービスの実行を延期するサービス実行制御部とを備えている。 In order to achieve the above object, a business process execution apparatus according to the first aspect of the present invention is a business process execution apparatus that executes a plurality of services on a network in the order described in a business process definition in response to a processing request from a client. A service standby time calculation unit for calculating a service execution standby time for each stopped service from a service execution result by a business process stored in the business process execution history storage unit, and a latest stored in the business process execution history storage unit A service operation state analysis unit that determines an operation state for each service from a service execution result of the service and obtains a service execution standby time for each stopped service; and an operation state and a service execution standby time of the service before the service is executed If the service is in operation, the service While performing the screws, the service is provided between the service execution waiting time when it is stopped, and a service execution control unit to delay the execution of the service.
第2の本発明に関わるビジネスプロセス実行方法は、クライアントの処理要求に応じてビジネスプロセス定義に記述された順にネットワーク上の複数のサービスを実行するビジネスプロセス実行方法であって、ビジネスプロセス実行装置が、ビジネスプロセス実行履歴記憶部に記憶されるビジネスプロセスによるサービス実行結果から停止中のサービス毎にサービス実行待機時間を算出し、ビジネスプロセス実行履歴記憶部に記憶される最新のサービス実行結果からサービス毎の稼動状態を判定するとともに停止中のサービス毎のサービス実行待機時間を取得し、サービスを実行する前に該サービスの稼動状態およびサービス実行待機時間を取得して該サービスが稼動中である場合には該サービスを実行する一方、該サービスが停止中である場合にはサービス実行待機時間の間、該サービスの実行を延期している。 A business process execution method according to the second aspect of the present invention is a business process execution method for executing a plurality of services on a network in the order described in a business process definition in response to a processing request from a client. The service execution standby time is calculated for each stopped service from the service execution result of the business process stored in the business process execution history storage unit, and the service execution standby time is calculated for each service from the latest service execution result stored in the business process execution history storage unit. The service execution standby time is acquired for each service that is stopped, and the service operation state and the service execution standby time are acquired before executing the service. Runs the service while the service is down The case between the service execution standby time, has postponed the execution of the service.
本発明によれば、疎結合なシステムにおいてビジネスプロセスの実行失敗を回避することが可能なビジネスプロセス実行装置およびビジネスプロセス実行方法を実現可能である。 According to the present invention, it is possible to realize a business process execution apparatus and a business process execution method capable of avoiding a business process execution failure in a loosely coupled system.
以下、本発明の実施形態について添付図面を参照して説明する。
まず、第1実施形態について図1から図9を用いて説明する。
<<第1実施形態>>
<ビジネスプロセス処理システムSの構成概要>
図1は、第1実施形態のビジネスプロセス処理システムSにおけるデータの流れを示す図である。
第1実施形態のビジネスプロセス処理システムSは、ビジネスプロセス実行装置200へ処理要求を送信するクライアント270、該クライアント270からの処理要求を受けて処理を行なうビジネスプロセス実行装置200、ビジネスプロセス実行装置200からの処理要求を受けて処理を行なうソフトウェアの集合のサービスA280、サービスB281で構成されている。
Embodiments of the present invention will be described below with reference to the accompanying drawings.
First, a first embodiment will be described with reference to FIGS.
<< First Embodiment >>
<Outline of configuration of business process processing system S>
FIG. 1 is a diagram illustrating a data flow in the business process processing system S according to the first embodiment.
The business process processing system S of the first embodiment includes a
サービスとは、サービス実行装置上に配備され、ネットワークを介して処理要求を受け取り、実行結果を応答する処理部である。
以下、「サービスを実行する」との表現は、サービス処理要求送信元がサービスへ実行要求を送信し、サービスが要求された処理を実行し、その処理結果をサービス処理要求送信元が受信するまでの一連の処理を意味する。上記サービスA280およびサービスB281は、ビジネスプロセス実行装置200のビジネスプロセス実行部230によって実行される。
A service is a processing unit that is arranged on a service execution device, receives a processing request via a network, and responds to an execution result.
Hereinafter, the expression “execute a service” means that the service processing request transmission source sends an execution request to the service, the service executes the requested processing, and the processing result is received by the service processing request transmission source. This means a series of processes. The service A280 and the service B281 are executed by the business
ビジネスプロセス実行部230とは、ビジネスプロセス定義に記述された処理を実行する処理部である。
ビジネスプロセス定義とは、複数のサービスの実行、サービスに送信する処理データの生成といったビジネスプロセス実行部230が行なう処理をビジネスプロセス記述言語を用いてフローとして記述したものである。なお、ビジネスプロセス記述言語の一般的な例としては、BPEL(Business Process Execution Language)がある。
図1に示すビジネスプロセス1定義251には、サービスA280およびサービスB281を実行するための処理が記述されている。ビジネスプロセス1定義251の定義内容、およびビジネスプロセス実行部230が実行する処理については後記する。
The business
The business process definition is a description of processing performed by the business
The
<ビジネスプロセス処理システムSの概要>
第1実施形態のビジネスプロセス処理システムSは、疎結合なシステムにおいて、ビジネスプロセス側が有する情報によってサービスの稼動状態を判定し、サービスの稼動状態に応じてサービスの実行タイミングを制御することで、サービスの実行失敗を回避することを目的としている。
図1に示すように、ビジネスプロセス処理システムSは、クライアント270からビジネスプロセス実行装置200にサービス処理要求があった場合、サービス実行制御部233およびサービス状態管理部240によりサービスを実行する直前にこのサービスの稼動状態をチェックし、サービスの稼動状態に応じてサービスを実行するか、または一定時間実行を延期するかを決定し、延期する場合は実行対象のサービス、および障害種別に応じてビジネスプロセス実行履歴254に格納される情報から算出したサービス実行待機時間を設定する。
<Outline of business process processing system S>
The business process processing system S according to the first embodiment determines a service operating state based on information held by the business process side in a loosely coupled system, and controls the execution timing of the service according to the service operating state. The purpose is to avoid execution failure.
As shown in FIG. 1, when a business process request is sent from the
そして、停止中のサービスの実行を回避して復旧している可能性が高いサービス実行待機時間経過後に当該サービスを実行することにより、ビジネスプロセス実行装置200全体としてビジネスプロセスの実行失敗回数を低減している。
ここで、サービス状態管理部240がサービスの稼動状態を検知する手段として、ビジネスプロセス実行装置200が保持するビジネスプロセス実行履歴254を用いる。そのため、従来のように、ビジネスプロセス実行装置200と各サービスが互いの所在を認識し、サービス側がビジネスプロセス実行装置200へ自身の稼動状態を通知するといった密な結合は不要である。
And, by executing the service after the service execution waiting time that is likely to be recovered by avoiding the execution of the stopped service, the business
Here, the business
従って、この構成により、サービスA280、B281等のサービス側がビジネスプロセス実行装置200の所在を意識しない疎結合なシステムにおいて、ビジネスプロセス実行装置200側からサービスの稼動状態を検知することができる。
以下、図1を用いて具体的に説明する。
Therefore, with this configuration, in a loosely coupled system in which the service side such as the services A280 and B281 is unaware of the location of the business
This will be specifically described below with reference to FIG.
<具体例>
図1に示すように、サービスB281が何らかの障害により停止した場合、サービスB281の停止直後にサービスB281を実行するビジネスプロセス1インスタンス231はサービスB281の実行に失敗する。そして、実行に失敗したという情報が、ビジネスプロセス実行装置200のビジネスプロセス実行履歴254に記録されると、サービス状態管理部240がビジネスプロセス実行履歴254を解析し、記録されているサービスB281の稼動状態を更新する。ビジネスプロセス1インスタンス231の後にサービスB281を実行するビジネスプロセス1インスタンス232は、サービス状態管理部240からサービスB281の稼動状態を取得し、サービスB281が停止中のためサービス実行を一定時間延期する。
<Specific example>
As shown in FIG. 1, when the service B281 is stopped due to some failure, the
以上の処理により、従来ではビジネスプロセス1インスタンス231、232の両方でサービス実行に失敗していたのに対し、本ビジネスプロセス処理システムSの場合は先行するビジネスプロセス1インスタンス231がサービス実行に失敗したという情報を利用して、後続のビジネスプロセス1インスタンス232が停止中のサービスの実行を回避する。
さらに、サービス状態管理部240はビジネスプロセス実行履歴254に記録されるサービスB281の実行失敗データを解析してサービスB281のサービス実行待機時間を取得し、ビジネスプロセス1インスタンス231、232のサービス実行待機時間として設定する。これにより、サービス毎、障害種別毎に過去の実績に基づいて動的に適切な待機時間を設定することができる。
As a result of the above processing, service execution has failed in both
Further, the service
<ビジネスプロセス処理システムSのハードウェア構成>
図2は、第1実施形態のビジネスプロセス処理システムSのハードウェア構成の一例を示す図である。
ビジネスプロセス処理システムSは、サービスA280、B281等のサービスの処理要求を発するクライアント実行装置201と、要求される処理を実行するビジネスプロセス実行装置200と、サービスA280を実際に実行するサービス実行装置202と、サービスB281を実際に実行するサービス実行装置203とを備え構成されている。
<Hardware configuration of business process processing system S>
FIG. 2 is a diagram illustrating an example of a hardware configuration of the business process processing system S according to the first embodiment.
The business process processing system S includes a
ここで、クライアント実行装置201、ビジネスプロセス実行装置200およびサービス実行装置202、203上に配置されている全ての処理部は専用のハードウェアとして実現されていても良いし、CPU(Central Processing Unit)によって実行されるプログラムとして実現されていても良いが、以下ではプログラムとして実現した場合を示す。
クライアント実行装置201、ビジネスプロセス実行装置200、およびサービス実行装置202、203は、互いにネットワーク204を介して接続されている。このネットワーク204は、LAN(Local Area Network)やイントラネットなどのローカルネットワークであっても、インターネットなどのグローバルネットワークであってもよく、限定されない。また、クライアント実行装置201、サービス実行装置202、203は、任意の複数台存在しても良いことは勿論である。
Here, all the processing units arranged on the
The
<クライアント実行装置201>
図2に示すように、クライアント実行装置201は、CPU210、主記憶装置211、ネットワークインタフェース213、およびこれらを接続するシステムバス214で構成されている。
主記憶装置211には、必要に応じてCPU210によって、クライアント270が、そのプログラムが実行され配備されている。ネットワークインタフェース213は、CPU210の指示に従って、ネットワーク204を介してネットワーク204上の他の機器と通信を行なう。
但し、図2に示す構成は一例であり、クライアント実行装置201内に複数のクライアント270が配備されていても良い。
<
As shown in FIG. 2, the
The
However, the configuration illustrated in FIG. 2 is an example, and a plurality of
<サービス実行装置202、203>
サービス実行装置202、203は、CPU210、主記憶装置211、ネットワークインタフェース213、およびこれらを接続するシステムバス214で構成されている。
サービス実行装置202の主記憶装置211にはサービスA280が、サービス実行装置203の主記憶装置211には、サービスB281が、必要に応じてそれぞれCPU210によって、対応するプログラムが実行され、配備されている。ネットワークインタフェース213は、CPU210の指示に従って、ネットワーク204を介してネットワーク204上の他の機器と通信を行なう。
但し、図2の構成は一例であり、サービス実行装置202、203内にはサービスA280、サービスB281以外のサービスが配備されていても良い。
<
The
A service A280 is provided in the
However, the configuration in FIG. 2 is an example, and services other than the
<ビジネスプロセス実行装置200>
図2に示すビジネスプロセス実行装置200は、CPU210、主記憶装置211、二次記憶装置212、ネットワークインタフェース213、およびこれらを接続するシステムバス214で構成されている。
主記憶装置211には、CPU210によってビジネスプロセス実行プログラム220が実行され、配備されている。
このように、図2に示す主記憶装置211上に配置されたビジネスプロセス実行プログラム220の各処理部は、二次記憶装置212内にそれぞれ対応する目的プログラムが格納され、必要に応じてCPU210によって、主記憶装置211に読み込まれ実行され、配備される。
<Business
The business
A business
As described above, each processing unit of the business
二次記憶装置212には、ビジネスプロセス1定義251、サービスAインタフェース定義252(以下、サービスAIF定義252と称す)、サービスBインタフェース定義253(以下、サービスBIF定義253と称す)、ビジネスプロセス実行履歴254、稼動状態管理テーブル261、待機時間管理テーブル262等が配置されている。
また、二次記憶装置212は、ビジネスプロセス実行装置200に内蔵されたメモリやハードディスクなどの記憶装置の他、外付けのメモリやハードディスク装置、ネットワークを介して接続されたデータベース、データベースサーバ等によって実現されていても良い。
ネットワークインタフェース213は、CPU210の指示に従って、ネットワーク204を介してネットワーク204上の他の機器と通信を行なう。
The
The
The
<ビジネスプロセス実行プログラム220>
図2に示すように、ビジネスプロセス実行プログラム220は、ビジネスプロセス実行部230とサービス状態管理部240とを有し構成されている。
ビジネスプロセス実行部230は、図1に示すように、クライアント270からのビジネスプロセス1処理要求100に応じて、ビジネスプロセス1定義251に記述された処理を実行し、処理状態や処理結果をビジネスプロセス実行履歴254として記録する処理部である。
<Business
As shown in FIG. 2, the business
As shown in FIG. 1, the business
図2に示すように、ビジネスプロセス実行部230は、ビジネスプロセス1インスタンス231、232、およびサービス実行制御部233で構成されている。但し、図2に示す構成は一例であり、ビジネスプロセス実行部230にはビジネスプロセス1定義251以外のビジネスプロセス定義が複数配備されていても良いし、各定義を実行するビジネスプロセスインスタンスが任意の複数存在していても良い。
As shown in FIG. 2, the business
<ビジネスプロセス1定義251の処理内容>
図2に示すビジネスプロセス1定義251内に本第1実施形態で使用するビジネスプロセス1定義251の処理内容の一例を示す。ビジネスプロセス1定義251は、ビジネスプロセス実行部230が実行する処理の手順をビジネスプロセス定義言語を用いてフローとして記述したものである。
ビジネスプロセス定義は、複数のステップで構成されており、各ステップはビジネスプロセス定義内で一意となる識別子であるステップID、ステップで行なう処理の種別を表すステップ種別、および処理内容の詳細を表すステップ詳細情報を含んでいる。
<Processing contents of
An example of the processing contents of the
The business process definition is composed of a plurality of steps, and each step is a step ID that is a unique identifier in the business process definition, a step type that represents the type of processing performed in the step, and a step that represents details of the processing content. Contains detailed information.
ビジネスプロセス1定義251は、図1に示すビジネスプロセス1処理要求100を受け取りデータを抽出するステップID1であってステップ種別が開始ステップであるステップ300、サービスA280を実行するステップID2であってステップ種別がサービス実行ステップであるステップ301、サービスB281を実行するステップID3であってステップ種別がサービス実行ステップであるステップ302、および後処理を行なうステップID4であってステップ種別が終了ステップであるステップ303を有し構成されている。但し、上記の内容はビジネスプロセス定義の一例であり、ビジネスプロセス定義言語で記述可能な範囲であればどのような処理フローが定義されていても良いことは勿論である。
The
図1に示すビジネスプロセス1処理要求100は、クライアント270がビジネスプロセス実行装置200のビジネスプロセス1定義251の実行をビジネスプロセス実行装置200のビジネスプロセス実行部230へ要求する際に送信するデータである。
ビジネスプロセス1処理要求100(図1参照)は、実行対象のビジネスプロセス定義名やビジネスプロセス1定義251を実行するために必要な入力データの他、サービス実行制御部233において使用する更新時刻閾値101および最大待機時間102を含む。図1に示すように、ビジネスプロセス1インスタンス231、232は、サービス実行に必要な情報の他、更新時刻閾値101および最大待機時間102をサービス実行制御部233へ渡してサービスの実行を依頼する。更新時刻閾値101および最大待機時間102のサービス実行制御部233における利用方法については後記する。
The
The
<ビジネスプロセス実行履歴254>
図3は、ビジネスプロセス実行履歴254の構成の一例を示す図である。
図3に示すビジネスプロセス実行履歴254は、データベース、ファイル等の記憶部であり、ビジネスプロセス定義の識別子であるビジネスプロセス名400、処理を行なったビジネスプロセスインスタンスの識別子であるインスタンスID401、処理対象ステップの識別子であるステップID402、ステップID402のステップのステップ種別であるステップ種別403、ビジネスプロセスインスタンスによるステップID402のステップの処理開始時刻であるステップ開始時刻404、および処理終了時刻であるステップ終了時刻405、ステップの処理状態であるステップ状態406、処理結果である実行結果407、ステップ処理時に障害が発生した場合の発生した障害種別である障害種別408で構成されている。
但し、図3に示す構成は一例であり、図3に示した情報以外の情報が含まれていても良い。
<Business
FIG. 3 is a diagram showing an example of the configuration of the business
The business
However, the configuration illustrated in FIG. 3 is an example, and information other than the information illustrated in FIG. 3 may be included.
<サービス実行制御部233>
図1、図2に示すサービス実行制御部233は、サービスの稼動状態に応じて適切なタイミングでサービスを実行する処理部であり、ビジネスプロセス1インスタンス231、232によるサービスの実行を代行する。本制御部233における処理の詳細は後記する。
<Service
The service
<サービスAIF定義252、サービスBIF定義253>
図1、図2に示すサービスAIF定義252、サービスBIF定義253には、それぞれサービスA280、サービスB281を実行するために必要な情報が記述されている。サービスを実行するために必要な情報とは、例えばサービス処理要求の送信先URL、サービス処理要求に含まれるべきデータのデータ構造、サービスからの応答に含まれる結果データのデータ構造等の情報である。
図1に示すように、サービス実行制御部233は、サービスA280を実行する場合、サービスAIF定義252を参照して処理データ111を含むサービスA処理要求110を生成してサービスA280へ送信する。同様に、サービスB281を実行する場合はサービスBIF定義253を参照して処理データ121を含むサービスB処理要求120を生成し、サービスB281へ送信する。
<
The
As shown in FIG. 1, when executing the service A280, the service
サービスからの応答に含まれるデータは、サービスの実行に成功した場合と失敗した場合とで異なる。
サービスAの実行に成功した場合、サービスA処理応答112には処理が成功したことを示す処理結果113と、処理の結果データである結果データ114が含まれる。一方、サービスBの実行に失敗した場合、サービスB処理応答122には処理が失敗したことを示す処理結果123と、サービスBの停止やサービスB実行装置の停止といった障害の種別を表す障害種別124が含まれる。
前記ビジネスプロセス1定義251、サービスAIF定義252、およびサービスBIF定義253は、ビジネスプロセス開発者がビジネスプロセス開発環境用のツールを使用して作成し、ビジネスプロセス実行装置200に配備する。この開発ツールや配備方法については従来技術で実現可能であるため、詳細な説明は省略する。
The data included in the response from the service differs depending on whether the service has been successfully executed or failed.
When the service A is successfully executed, the service
The
<サービス状態管理部240>
図1、図2に示すサービス状態管理部240は、サービスの稼動状態など、サービスの実行制御に必要な情報を保持し、サービス実行制御部233からの問い合わせに応じて情報を提供する処理部であり、サービス状態管理の処理を行なうサービス状態判定部241を有し構成されている。
サービス状態判定部241は、図1に示すように、サービスの最新の稼動状態を記録するサービス稼動状態解析部242およびサービスを実行するまでの待機時間を計算し記録するサービス待機時間計算部243で構成されている。
サービス稼動状態解析部242は、ビジネスプロセス実行履歴254を解析し、サービスの最新の稼動状態を稼動状態管理テーブル261へ記録する処理部である。
<Service
The service
As shown in FIG. 1, the service
The service operation
図4は、稼動状態管理テーブル261の構成を示す図である。
図4に示す稼動状態管理テーブル261は、サービス毎にサービスの稼動状態、停止している場合はその原因と、サービス実行までの待機時間を保持するテーブルである。
稼動状態管理テーブル261は、サービスの識別子であるサービス名500、サービスの稼動状態を示す稼動状態501、サービスが停止している場合の原因を示す障害種別502、該サービスが該障害を起こしている場合にサービス実行制御部233(図1参照)がサービス実行を待機する時間間隔である待機時間503、および各エントリの更新時刻である更新時刻504で構成される。
FIG. 4 is a diagram showing the configuration of the operating state management table 261.
The operation state management table 261 shown in FIG. 4 is a table that stores the operation state of each service for each service, the cause when the service is stopped, and the waiting time until the service is executed.
The operation state management table 261 includes a
図1に示すサービス待機時間計算部243は、ビジネスプロセス実行履歴254に記録されるログの実行履歴情報を解析し、サービスを実行するまでの待機時間を算出し、待機時間管理テーブル262へ記録する処理部である。
The service standby
図5は、待機時間管理テーブル262の構成を示す図である。
図5に示す待機時間管理テーブル262は、サービス毎、障害種別毎のサービスを実行するまでの待機時間を保持するテーブルである。
待機時間管理テーブル262は、サービスの識別子であるサービス名600、該サービスで発生したことがある障害の原因を示す障害種別601、および該サービスで障害種別601の障害が発生した場合にサービス実行制御部233がサービス実行を待機する時間間隔である待機時間602で構成されている。
FIG. 5 is a diagram showing the configuration of the standby time management table 262. As shown in FIG.
The standby time management table 262 shown in FIG. 5 is a table that holds the standby time until the service for each service and each failure type is executed.
The standby time management table 262 includes a
<<ビジネスプロセス実行部230によるビジネスプロセス実行処理>>
次に、図1、図2に示すビジネスプロセス実行部230によるビジネスプロセス実行処理について図6に従って説明する。
なお、図6は、ビジネスプロセス実行部230によるビジネスプロセス実行処理の流れを示すフローチャートである。
ビジネスプロセス実行部230は、本来、クライアント270からの複数のビジネスプロセス実行要求を同時に受け付け、複数のビジネスプロセスインスタンスを並列に実行することができるが、図6では1つの処理要求を受け付けた場合の処理の流れを示す。図6を参照して、
<< Business Process Execution Processing by Business
Next, business process execution processing by the business
FIG. 6 is a flowchart showing the flow of business process execution processing by the business
The business
(図6のステップ700)図1に示すように、ビジネスプロセス実行部230が、クライアント270から送信されるビジネスプロセス1処理要求100を受信する。
(ステップ701)ビジネスプロセス実行部230は、図1に示すように、ビジネスプロセス1処理要求100に応じて、インスタンスID:10001であるビジネスプロセス1インスタンス231を生成する。
(ステップ702) ビジネスプロセス1インスタンス231は、図1に示すように、ビジネスプロセス1定義251を読み込む。
(ステップ703)実行中ステップIDを示す変数iに1を代入する。
(
(Step 701) As shown in FIG. 1, the business
(Step 702) The
(Step 703) 1 is substituted into a variable i indicating the step ID being executed.
(ステップ704)ビジネスプロセス1インスタンス231は、ステップID iのステップ種別をビジネスプロセス1定義251(図1参照)から取得し、ステップ種別が「終了ステップ」か否か判断し、ステップ種別が「終了ステップ」であればステップ715へ移行し、それ以外であればステップ705へ移行する。
(ステップ705)ビジネスプロセス1インスタンス231は、図1に示すように、ビジネスプロセス実行履歴254(図3参照)へ以下のデータを記録する。ビジネスプロセス名400:ビジネスプロセス1、インスタンスID401:10001、ステップID402:i、ステップ種別403:ステップIDiのステップ種別、ステップ開始時刻404:現在時刻、ステップ終了時刻405:文字列"−"、ステップ状態406:文字列"実行中"、実行結果407:文字列"−"、障害種別408:文字列"−"。
(Step 704) The
(Step 705) As shown in FIG. 1, the
(ステップ706) ステップ704で取得したステップID iのステップ種別が「サービス実行ステップ」か否か判断し、「サービス実行ステップ」であればステップ707へ移行し、それ以外であればステップ712へ移行する。
(ステップ707) ビジネスプロセス1インスタンス231は、サービス実行制御部233(図1参照)へサービス実行処理を依頼する。本処理の詳細は後記する。
(ステップ708)図1に示すように、サービスからの応答をサービス実行制御部233から受け取り、例外が発生していないかチェックする。すなわち、サービスA処理応答112に含まれる処理結果113を解析し、サービスの実行が成功した場合はステップ709へ移行し、失敗した場合はステップ714へ移行する
(Step 706) It is determined whether or not the step type of step ID i acquired in
(Step 707) The
(Step 708) As shown in FIG. 1, a response from the service is received from the service
(ステップ709)サービスの実行結果を表す変数rに文字列"成功"、およびサービス処理応答から取得した結果データ114(図1参照)を格納する。また、サービス障害種別を表す変数eに文字列"−"を格納する。
(ステップ710) 図1に示すビジネスプロセス1インスタンス231はステップ705でビジネスプロセス実行履歴254(図3参照)に記録したデータを以下のデータで更新する。ステップ終了時刻405:現在時刻、ステップ状態406:文字列"完了"、実行結果407:変数rの内容、障害種別408:変数eの内容。
(ステップ711) 図1に示すように、ビジネスプロセス1インスタンス231は、ビジネスプロセス1定義251から、ステップID iの次のステップのステップIDを取得してiに格納し、ステップ704へ移行する。
(Step 709) The character string “success” and the result data 114 (see FIG. 1) acquired from the service processing response are stored in the variable r representing the service execution result. Further, the character string “-” is stored in the variable e representing the service failure type.
(Step 710) The
(Step 711) As shown in FIG. 1, the
(ステップ712)ステップID iのステップを実行し、サービスの実行結果を表す変数r、およびサービスの障害種別を表す変数eに文字列"−"を格納し、ステップ710へ移行する。
(ステップ713) サービスの実行結果を表す変数rに文字列"失敗"を格納する。また、サービスの障害種別を表す変数eにサービスB処理応答(図1参照)から取得した障害種別124を格納する。
(Step 712) The step of step ID i is executed, the character string “-” is stored in the variable r indicating the service execution result and the variable e indicating the service failure type, and the process proceeds to step 710.
(Step 713) The character string “failure” is stored in the variable r representing the service execution result. Further, the failure type 124 acquired from the service B processing response (see FIG. 1) is stored in the variable e representing the service failure type.
(ステップ714) 図1に示すビジネスプロセス1インスタンス231はステップ705でビジネスプロセス実行履歴254(図3参照)に記録したデータを以下のデータで更新し、終了する。ステップ終了時刻405:現在時刻、ステップ状態406:文字列"エラー終了"、実行結果407:変数rの内容、障害種別408:変数eの内容。
(Step 714) The
(ステップ715) 図1に示すビジネスプロセス1インスタンス231はステップ705でビジネスプロセス実行履歴254(図3参照)に記録したデータを以下のデータで更新し、処理を終了する。ステップ終了時刻405:現在時刻、ステップ状態406:文字列"完了"、実行結果407:文字列"−"、障害種別408:文字列"−"。
(Step 715) The
<<サービス実行制御部233によるサービス実行制御処理>>
次に、図1、図2に示すサービス実行制御部233によるサービス実行制御処理について、図7に従って説明する。
図7は、図6のステップ707における、サービス実行制御部233によるサービス実行制御処理の詳細を示すフローチャートである。
サービス実行制御部233では、ビジネスプロセス1インスタンス231、232が実行を依頼したサービスA280、サービスB281等のサービスの稼動状態をサービス状態管理部240(図1参照)から取得し、依頼されたサービスが稼動していればサービスを実行する一方、稼動していなく停止していれば図4に示す稼動状態管理テーブル261の待機時間503だけサービスの実行を延期する。
<< Service execution control processing by service
Next, service execution control processing by the service
FIG. 7 is a flowchart showing details of service execution control processing by the service
The service
サービス実行制御部233の動作を制御するパラメータとして図1に示す更新時刻閾値101および最大待機時間102を指定することができる。
更新時刻閾値101は、図4に示す稼動状態管理テーブル261が保持する情報の鮮度に対する制約であり、稼動状態管理テーブル261に登録された情報が更新時刻閾値101よりも古い情報であった場合は無効と判断し、稼動状態管理テーブル261が示すサービスの稼動状態501が"停止"であってもサービスを実行する。
The update time threshold 101 and the
The update time threshold 101 is a restriction on the freshness of the information held in the operation state management table 261 shown in FIG. 4, and the information registered in the operation state management table 261 is information older than the update time threshold 101. The service is executed even if the
最大待機時間102は、サービス実行制御部233での待機時間の上限値であり、稼動状態管理テーブル261の待機時間503が最大待機時間102を超える場合、処理に用いる実際の待機時間として最大待機時間102を採用する。これにより、レスポンスタイムに対する要求が高いクライアント270(図1、図2参照)は、最大待機時間102を短く設定することでサービス実行制御部233にてクライアント270の想定よりも長時間待機してしまうことを防ぐことができる。
The
本実施形態では、図1に示すように、更新時刻閾値101および最大待機時間102はクライアント270が設定し、ビジネスプロセス1処理要求100に含めてビジネスプロセス実行部230へ送信する。更新時刻閾値101および最大待機時間102はサービス毎に異なる値を設定しても良い。
但し、図1の構成は一例であり、例えばビジネスプロセス1定義251に開発者が設定する、またはビジネスプロセス実行部230へ運用者が設定するといった方法でも実現可能であり、その設定方法は限定されない。
In the present embodiment, as shown in FIG. 1, the update time threshold 101 and the
However, the configuration of FIG. 1 is an example, and for example, it can be realized by a method in which a developer sets the
図1に示すビジネスプロセス1インスタンス231、232は、サービス実行制御部233へ処理を依頼する際、サービスA280、B281へそれぞれ送信する処理データ111、121、実行対象ビジネスプロセス定義名、実行対象サービス名、インスタンスID、ステップID、ステップ開始時刻、更新時刻閾値101、最大待機時間102といったサービスの実行に必要な情報をサービス実行制御部233へ渡す。そして、サービス実行制御部233は、これらの情報を用いて以下の処理を行なう。図7を参照し、
The
(ステップ800)図4に示す稼動状態管理テーブル261から、実行対象サービスの稼動状態501、更新時刻504を取得する。
(ステップ801)ステップ800で取得した稼動状態501が停止中か否か判断し、停止中であればステップ802へ移行し、稼動中または該当するデータがなければステップ807へ移行する。
(ステップ802)現在時刻からステップ800で取得した更新時刻504を減算した値が、更新時刻閾値101より小さいか否か判断され、小さければステップ803へ移行する一方、以上であればステップ807へ移行する。
(ステップ803)実行対象サービスの待機時間を図4示す稼動状態管理テーブル261の待機時間503から取得し、待機時間を表す変数tへ格納する。
(Step 800) The
(Step 801) It is determined whether or not the operating
(Step 802) It is determined whether or not the value obtained by subtracting the
(Step 803) The standby time of the execution target service is acquired from the
(ステップ804)ステップ803で取得した待機時間tが、最大待機時間102(図1参照)より小さければステップ806へ移行する一方、以上であればステップ805へ移行する。
(ステップ805)待機時間tに最大待機時間102を格納する。
(ステップ806)待機時間tだけ、処理を待機する。待機時間tが経過したらステップ807へ移行する。
(ステップ807)図1に示すように、実行対象サービスのサービスAIF定義252等のサービスIF定義、およびビジネスプロセス1インスタンス231等のビジネスプロセスインスタンスから取得した情報を元にサービスA処理要求110等のサービス処理要求を生成し、サービスA280等のサービスへ送信し、応答を受信する。
(Step 804) If the standby time t acquired in
(Step 805) The
(Step 806) The process waits for the waiting time t. When the standby time t has elapsed, the routine proceeds to step 807.
(Step 807) As shown in FIG. 1, the service A processing request 110 and the like are obtained based on the service IF definition such as the
<<サービス待機時間計算部243による待機時間管理テーブル262の更新処理>>
次に、図1、図2に示すサービス待機時間計算部243による待機時間管理テーブル262(図5参照)の更新処理について、図8に従って説明する。
なお、図8は、図1に示すサービス状態判定部241のサービス待機時間計算部243がビジネスプロセス実行履歴254を解析し、待機時間管理テーブル262を更新する処理の流れを示すフローチャートである。
本実施形態では、図8に示す処理は、図6のステップ705、ステップ710、ステップ711、ステップ714で実行されるビジネスプロセス実行履歴254の更新を検知して実行されるが、このタイミングは一例であり、例えばステップ710、714の更新のみを検知して図8の処理を行なっても良いし、図6の処理とは無関係に一定時間毎に図8の処理を行なっても良い。
<< Update processing of waiting time management table 262 by service waiting
Next, update processing of the standby time management table 262 (see FIG. 5) by the service standby
FIG. 8 is a flowchart showing a flow of processing in which the service standby
In the present embodiment, the processing shown in FIG. 8 is executed by detecting the update of the business
また、本実施形態では図8の処理の度に全てのビジネスプロセス実行履歴254(図1参照)を読み込んで処理を行なっているが、図8に示す処理を2度以上行なう場合は前回読み込んだビジネスプロセス実行履歴254からの差分のみを読み込んで処理を行なっても良い。図8を参照し、
Further, in this embodiment, every business process execution history 254 (see FIG. 1) is read and processed every time the process of FIG. 8 is performed, but when the process shown in FIG. Processing may be performed by reading only the difference from the business
(ステップ900)図1に示すサービス状態判定部241が、ビジネスプロセス実行履歴254の更新を検知する。
(ステップ901)サービス状態判定部241が図3に示すビジネスプロセス実行履歴254に格納される情報を取得する。
(Step 900) The service
(Step 901) The service
(ステップ902)図1に示すサービス待機時間計算部243がビジネスプロセス実行履歴254を解析してサービス毎、障害種別毎にサービス実行待機時間を取得する。
サービス毎、障害種別毎のサービス実行待機時間は、ビジネスプロセス実行履歴254から以下のように計算する。あるサービスについて、サービスの実行結果が"失敗"のエントリのステップ開始時刻Tstartを取得する。次に、同一サービスの実行結果が"成功"で、ステップ終了時刻TendがTstartよりも新しく、かつ最も時刻が近いエントリを検索する。TendからTstartを引いた値が、該サービスの該障害種別によるサービス実行不可であった時間の1データにあたる。このようにして、サービス毎、障害種別毎にサービス実行不可時間を取得し、その平均値をサービス毎、障害種別毎のサービス実行待機時間とする。
(Step 902) The service standby
The service execution standby time for each service and each failure type is calculated from the business
図3に示す例では、エントリ421でサービスA280のサービス実行が失敗していることが解る。このときの障害種別408は"サービス停止"、ステップ開始時刻404は16:00:02である。エントリ421から最も近いサービスA280のサービス実行結果が成功のエントリはエントリ425であり、このときのステップ終了時刻405は16:10:35である。以上から、サービスA280の障害種別"サービス停止"におけるサービス実行不可時間の1データは16:10:35−16:00:02=10分33秒となる。
In the example shown in FIG. 3, it can be seen from the
(ステップ903)図1に示すサービス待機時間計算部243が、ステップ902で算出したサービス毎、障害種別毎のサービス実行待機時間を図5に示す待機時間管理テーブル262の待機時間602へ記録する。
(Step 903) The service
<<サービス稼動状態解析部242による稼動状態管理テーブル261の更新処理>>
次に、図1、図2に示すサービス稼動状態解析部242による稼動状態管理テーブル261の更新処理について、図9に従って説明する。
なお、図9は、サービス状態判定部241(図1、図2参照)のサービス稼動状態解析部242がビジネスプロセス実行履歴254を解析し、稼動状態管理テーブル261を更新する処理の流れを示すフローチャートである。
<< Update processing of the operation state management table 261 by the service operation
Next, update processing of the operation state management table 261 by the service operation
FIG. 9 is a flowchart showing a flow of processing in which the service operation
本実施形態では、図9に示す処理は、図6のステップ705、ステップ710、ステップ711、ステップ714で実行されるビジネスプロセス実行履歴254の更新を検知して実行されるが、このタイミングは一例であり、例えばステップ711、714の更新のみを検知して図9の処理を行なっても良いし、図6の処理とは無関係に一定時間毎に図9の処理を行なっても良い。また、本実施形態では図9の処理の度に全てのビジネスプロセス実行履歴254を読み込んで処理を行なっているが、図9の処理を2度以上行なう場合は前回読み込んだビジネスプロセス実行履歴254からの差分のみを読み込んで処理を行なっても良い。図9を参照して、
In the present embodiment, the processing shown in FIG. 9 is executed by detecting the update of the business
(ステップ1000)図1に示すサービス状態判定部241が、ビジネスプロセス実行履歴254の更新を検知する。
(ステップ1001)サービス状態判定部241がビジネスプロセス実行履歴254に格納される情報を取得する。
(ステップ1002)図1に示すサービス稼動状態解析部242が、ビジネスプロセス実行履歴254(図3参照)を解析してサービス毎に最新の実行結果407および該エントリ420〜426、…のステップ終了時刻405を取得する。
(Step 1000) The service
(Step 1001) The service
(Step 1002) The service operation
(ステップ1003)サービスの実行結果407が成功か否かを判断し、実行結果407が"失敗"であればステップ1004に移行し、"成功"であればステップ1007に移行する。
(ステップ1004)稼動状態を表す変数sに文字列"停止"を格納する。また、障害種別を表す変数eへステップ1002で取得したエントリの障害種別408を格納する。
(ステップ1005)サービス稼動状態解析部242が、図5に示す待機時間管理テーブル262から該サービスの該障害種別における待機時間602を取得し、待機時間を表す変数tに格納する。もし、待機時間管理テーブル262に該当するエントリがなければ、システム運用者が設定したデフォルト値を待機時間を表す変数tに格納する。
(Step 1003) It is determined whether or not the
(Step 1004) The character string “stop” is stored in the variable s representing the operating state. Further, the
(Step 1005) The service operating
(ステップ1006)図1に示すサービス稼動状態解析部242が、稼動状態管理テーブル261(図4参照)へサービス名500としてステップ1002で取得した各サービスのサービス名、稼動状態501として変数s、障害種別502として変数e、待機時間503として変数t、更新時刻504としてステップ1002で取得したステップ終了時刻405をそれぞれ格納し、終了する。
(Step 1006) The service operation
(ステップ1007) 図1に示すサービス稼動状態解析部242が、稼動状態を表す変数sに文字列"稼動"を、障害種別を表す変数eへ文字列"−"を、待機時間を表す変数tに文字列"−"をそれぞれ格納し、ステップ1006へ移行する。
このように、第1実施形態によるサービス実行制御部233およびサービス状態管理部240によれば、疎結合なシステムにおいて処理要求送信元であるビジネスプロセス実行装置200(図1、図2参照)においてサービスA280等の各サービスの稼動状態を検知することができる。
(Step 1007) The service operating
As described above, according to the service
また、サービスの稼動状態に応じてサービスを直ぐに実行するか、または一定時間待機した後に実行するかを判断する。待機する場合は、図3に示すビジネスプロセス実行履歴254から算出したサービス毎、障害種別毎のサービス実行待機時間を待機時間602(図5参照)として設定する。
これにより、ビジネスプロセス実行装置200全体としてビジネスプロセスの実行失敗回数を低減することができる。
Further, it is determined whether to execute the service immediately or wait for a certain period of time depending on the operating state of the service. When waiting, the service execution standby time for each service and failure type calculated from the business
As a result, the business
以下、例外失敗回数低減効果について述べる。
図1に示すように、あるビジネスプロセス1インスタンスが、サービスB281を実行し、サービスB281が停止していたために実行に失敗したとする。サービス状態管理部240はビジネスプロセス実行履歴254からサービスB281が停止していることを検知し、他のインスタンスによるサービスB281の実行を延期する。
The effect of reducing the number of exception failures will be described below.
As shown in FIG. 1, it is assumed that one
図5に示す待機時間管理テーブル262のサービスBに関するエントリの待機時間602から、サービスB281が実行可能となるまで平均的に30秒かかっていることがわかる。サービス実行制御部233は、インスタンスによるサービスB281の実行を30秒間延期することで、過去の実績から停止していると推測される期間、サービスB281の実行を回避する。これによりサービスB281の実行失敗回数を低減することができる。30秒後にサービスB281を実行し、失敗した場合は、その情報を元に延期時間が延長される。
From the
本第1実施形態は、1つのビジネスプロセスに対するクライアントからのビジネスプロセス実行要求が比較的短い間隔で多数発生しているようなシステムや、1つのサービスを複数のビジネスプロセスで利用しているようなシステムにおいて特に効果的である。これは、サービス実行要求が頻繁に発生するのでサービスの稼動状態が更新され易く、加えてサンプリング間隔が短いので延期時間の精度が高まるためである。 In the first embodiment, a system in which a large number of business process execution requests from a client for one business process are generated at relatively short intervals, or a single service is used in a plurality of business processes. It is particularly effective in the system. This is because service execution requests are frequently generated, so that the service operating state is easily updated, and in addition, since the sampling interval is short, the accuracy of the postponement time is increased.
<<第2実施形態>>
次に、第2実施形態のビジネスプロセス処理システム2Sについて、図10から図17を用いて説明する。
<第2実施形態のビジネスプロセス処理システム2Sの特徴>
第1実施形態で用いたビジネスプロセス定義(図1参照)では、ビジネスプロセス定義から各サービスを直接実行していたため、単純に各サービスの稼動状態を確認している。
<< Second Embodiment >>
Next, a business process processing system 2S according to the second embodiment will be described with reference to FIGS.
<Features of Business Process Processing System 2S of Second Embodiment>
In the business process definition (see FIG. 1) used in the first embodiment, since each service is directly executed from the business process definition, the operating state of each service is simply confirmed.
図10は、第2実施形態のビジネスプロセス処理システムにおけるデータの流れを示す図である。
ところで、例えば、図10に示すように、ビジネスプロセス2インスタンス1201がサービス実行制御部233へビジネスプロセス1定義251の実行を依頼した場合、ビジネスプロセス1自身の配備状態のみを条件としてビジネスプロセス1を実行する。しかし、仮にサービスB281が何らかの障害により停止している場合、ビジネスプロセス1の実行に失敗し、ビジネスプロセス2インスタンス1201が異常終了してしまう。
FIG. 10 is a diagram illustrating a data flow in the business process processing system according to the second embodiment.
Incidentally, for example, as shown in FIG. 10, when the
そのため、ビジネスプロセス定義から他のビジネスプロセス定義を実行する場合、実行される側のビジネスプロセス定義の実行可否を判定するためには、実行される側のビジネスプロセス定義の配備状態に加え、実行される側のビジネスプロセス定義が利用する各サービスの稼動状態も確認する必要がある。 Therefore, when executing another business process definition from the business process definition, in order to determine whether or not the business process definition on the side to be executed can be executed, it is executed in addition to the deployment state of the business process definition on the side to be executed. It is also necessary to check the operating status of each service used by the business process definition on the other side.
ここで、「ビジネスプロセス定義aから他のビジネスプロセス定義bを実行する」とは、ビジネスプロセス定義aのビジネスプロセスインスタンスが、ビジネスプロセス定義bが配備されたビジネスプロセス実行部へ処理要求を送信し、ビジネスプロセス定義bのビジネスプロセスインスタンスが処理を行ない、その処理結果を処理要求送信元であるビジネスプロセス定義aのビジネスプロセスインスタンスが受信するまでの一連の処理を意味する。 Here, “execute another business process definition b from business process definition a” means that the business process instance of business process definition a sends a processing request to the business process execution part where business process definition b is deployed. This means a series of processing until the business process instance of the business process definition b performs processing and the processing result is received by the business process instance of the business process definition a which is the processing request transmission source.
第2実施形態のビジネスプロセス処理システム2Sは、ビジネスプロセス1定義251を実行するビジネスプロセス2定義1220を設け、あるビジネスプロセス定義から他のビジネスプロセス定義を実行する場合の処理にも本発明を適用可能とするものである。
第2実施形態のビジネスプロセス処理システム2Sでは、図10に示すように、クライアント1240はビジネスプロセス実行部230へビジネスプロセス2処理要求1101を送信する。ビジネスプロセス実行部230はビジネスプロセス2インスタンス1201を生成する。ビジネスプロセス2インスタンス1201は、ビジネスプロセス2処理要求1101とビジネスプロセス2定義1220に従って処理を実行する。ビジネスプロセス2定義1220はビジネスプロセス1定義251を実行し、ビジネスプロセス1定義251は第1実施形態と同様に、サービスA280、サービスB281を実行する。ビジネスプロセス1定義251に関する動作は第1実施形態と同様なので、説明を省略する。
The business process processing system 2S of the second embodiment is provided with a
In the business process processing system 2S of the second embodiment, as shown in FIG. 10, the
<<第2実施形態のビジネスプロセス処理システム2Sの概要>>
図10に示す第2実施形態のビジネスプロセス処理システム2Sは、ビジネスプロセスからビジネスプロセスを実行するような複雑な構成において、該ビジネスプロセスが依存しているサービスの稼動状態まで考慮してビジネスプロセスの稼動状態を判定し、ビジネスプロセスの実行タイミングを制御することで、ビジネスプロセスの実行失敗を回避することを目的としている。
図10に示すように、第2実施形態のビジネスプロセス処理システム2Sでは、サービス状態管理部240内に新たに設けた依存関係解析部1210が、ビジネスプロセス1定義251を解析し、ビジネスプロセス1定義251が利用するサービスの一覧を依存関係管理テーブル1232へ記録しておく。サービス実行制御部233は、ビジネスプロセス1定義251の実行の直前にビジネスプロセス1定義251の配備状態を問い合わせる。
<< Outline of Business Process Processing System 2S of Second Embodiment >>
The business process processing system 2S of the second embodiment shown in FIG. 10 has a complicated configuration in which a business process is executed from the business process, and the business process is processed in consideration of the operating state of the service on which the business process depends. The purpose is to avoid business process execution failure by determining the operating state and controlling the execution timing of the business process.
As shown in FIG. 10, in the business process processing system 2S of the second embodiment, the
ビジネスプロセス状態判定部1211はビジネスプロセス1定義251自体の配備状態だけでなく、ビジネスプロセス1定義251が利用するサービスの稼動状態を含めて実行可能かどうかを判定し、サービス実行制御部233へ回答する。
これにより、あるビジネスプロセスから他のビジネスプロセスを実行するような複雑な構成においても適切に実行可否を判定することができる。また、ビジネスプロセスとサービスの依存関係を解析する際には、必要以上にビジネスプロセスの稼動率を低く判定することを回避するため、条件分岐などビジネスプロセスの構造を考慮することとしている。
The business process
Thereby, it is possible to appropriately determine whether or not execution is possible even in a complicated configuration in which another business process is executed from a certain business process. Also, when analyzing the dependency between business processes and services, the structure of the business process such as conditional branching is considered in order to avoid determining that the operation rate of the business process is unnecessarily low.
<ハードウェア構成>
図11は、第2実施形態のビジネスプロセス処理システム2Sにおけるハードウェア構成の一例を示す図である。
図11に示すように、第2実施形態のビジネスプロセス処理システム2Sは、処理要求を行うクライアント実行装置201、該処理を実行するビジネスプロセス実行装置200、該処理要求に係わるサービスA280、B281をそれぞれ実行するサービス実行装置202、203で構成されている。
<Hardware configuration>
FIG. 11 is a diagram illustrating an example of a hardware configuration in the business process processing system 2S of the second embodiment.
As shown in FIG. 11, the business process processing system 2S of the second embodiment includes a
クライアント実行装置201、ビジネスプロセス実行装置200、およびサービス実行装置202、203上に配置されている全ての処理部は専用のハードウェアとして実現されていても良いし、CPUによって実行されるプログラムとして実現されていても良いが、以下ではプログラムとして実現した場合について説明する。
クライアント実行装置201、ビジネスプロセス実行装置200、サービス実行装置202、203は、ネットワーク204を介して接続されている。ネットワーク204はLANやイントラネットなどのローカルネットワークであっても、インターネットなどのグローバルネットワークであってもよい。また、クライアント実行装置201、サービス実行装置202、203は複数台存在しても良い。
All processing units arranged on the
The
クライアント実行装置201については、第1実施形態とほぼ同様であるが、主記憶装置211にクライアント1240が配備されている点のみ異なる。図10に示すように、クライアント1240は、ビジネスプロセス実行装置200へビジネスプロセス2処理要求1101を送信する処理部であり、CPU210によって対応するプログラムが実行され、配備されている。
図11に示すサービス実行装置202、203については第1実施形態と同様の構成であるため、説明を省略する。
The
Since the
<ビジネスプロセス実行装置200>
図11に示すように、ビジネスプロセス実行装置200は、主記憶装置211内のビジネスプロセス実行部230にビジネスプロセス2インスタンス1201、ビジネスプロセス1インスタンス1202を設けている。また、サービス状態管理部240内に第2実施形態による依存関係解析部1210およびビジネスプロセス状態判定部1211を設けている。
なお、主記憶装置211内のビジネスプロセス実行部230、サービス状態管理部240等の各処理部は、ビジネスプロセス実行プログラム220がCPU210によって実行され、配備されている。
<Business
As illustrated in FIG. 11, the business
It should be noted that the business
加えて、二次記憶装置212に、ビジネスプロセス2定義1220、ビジネスプロセス1インタフェース定義1221(以下、ビジネスプロセス1IF定義1221と称す)、ビジネスプロセス管理テーブル1223、および第2実施形態による依存関係管理テーブル1232を設けている。これ以外の構成については第1実施形態と同様であるため、説明を省略する。
以下、ビジネスプロセス実行装置200の各部の構成について説明する。
In addition, the
The configuration of each part of the business
<ビジネスプロセス2インスタンス1201>
図10に示すビジネスプロセス2インスタンス1201は、ビジネスプロセスの進捗状態やビジネスプロセス内部で使用する変数の値といった処理要求毎の実行状態を保持し、実行状態とビジネスプロセス2定義1220の内容に従って処理を行なう処理部であり、ビジネスプロセス実行部230が受信したビジネスプロセス2処理要求1101毎にビジネスプロセス実行部230が生成する。
<
The
<ビジネスプロセス2定義1220>
図11に示すビジネスプロセス2定義1220内に、第2実施形態で使用するビジネスプロセス2定義1220の処理内容の一例を示す。
ビジネスプロセス2定義1220は、ビジネスプロセス2処理要求1101(図10参照)を受け取りデータを抽出するステップID1であってステップ種別が開始ステップであるステップ1300、ビジネスプロセス1定義251を実行するステップID2であってステップ種別がサービス実行ステップであるステップ1301、および後処理を行なうステップID3であってステップ種別が終了ステップであるステップ1302によって構成されている。
<
An example of processing contents of the
The
但し、上記の内容はビジネスプロセス定義の一例であり、ビジネスプロセス定義言語で記述可能な範囲であればどのような処理フローが定義されていても良い。
ビジネスプロセス2定義1220が実行するビジネスプロセス1定義251(図10、図11参照)は、第1実施形態に示したものと同様なので、説明を省略する。
However, the above content is an example of a business process definition, and any processing flow may be defined as long as it can be described in the business process definition language.
Since the
<ビジネスプロセス1IF定義1221>
図10、図11に示すビジネスプロセス1IF定義1221には、ビジネスプロセス1定義251を実行するために必要な情報が記述されている。例えば、入力として必要なデータのデータ構造や、ビジネスプロセス1定義251が応答するデータのデータ構造である。ビジネスプロセス2インスタンス1201からビジネスプロセス1を実行するよう指示を受けたサービス実行制御部233(図10参照)は、ビジネスプロセス1IF定義1221に従ってビジネスプロセス1処理要求1102を生成し、ビジネスプロセス実行部230へ送信する。ビジネスプロセス1処理要求1102を受け取ったビジネスプロセス実行部230は、ビジネスプロセス1インスタンス1202を生成する。ビジネスプロセス1インスタンス1202は、ビジネスプロセス1処理要求1102とビジネスプロセス1定義251に従って処理を行なう。
<Business
Information required for executing the
<依存関係解析部1210>
図10、図11に示す依存関係解析部1210は、ビジネスプロセス1定義251、ビジネスプロセス2定義1220を解析して各ビジネスプロセス定義が利用するサービスの一覧を取得し、依存関係管理テーブル1232へ登録する処理部である。本処理部における処理の詳細は後記する。
<
The
<依存関係管理テーブル1232>
図12は、依存関係管理テーブル1232の構成を示す図である。
図12に示す依存関係管理テーブル1232は、ビジネスプロセス定義毎に、該ビジネスプロセス定義が実行するビジネスプロセス名およびサービス名を保持するテーブルである。
依存関係管理テーブル1232は、ビジネスプロセス定義の識別子であるビジネスプロセス名1400、該ビジネスプロセス定義が利用するサービスおよびビジネスプロセスの識別子一覧である依存サービス(ビジネスプロセス)名1401で構成されている。
<Dependency management table 1232>
FIG. 12 is a diagram showing a configuration of the dependency management table 1232.
The dependency relationship management table 1232 illustrated in FIG. 12 is a table that holds, for each business process definition, a business process name and a service name executed by the business process definition.
The dependency management table 1232 includes a
<ビジネスプロセス状態判定部1211>
図10、図11に示すビジネスプロセス状態判定部1211は、サービス状態管理部240が保持する情報からビジネスプロセスの稼動状態を判定し、稼動状態管理テーブル1230へ登録する処理部である。本処理部における処理の詳細は後記する。
<Business process
The business process
<ビジネスプロセス管理テーブル1223>
図13は、ビジネスプロセス管理テーブル1223の構成の一例を示す図である。
図13に示すビジネスプロセス管理テーブル1223は、ビジネスプロセス定義自体の配備状態を保持するテーブルであり、ビジネスプロセス定義の識別子であるビジネスプロセス名1500、ビジネスプロセス定義の状態1501で構成されている。
ビジネスプロセス定義の状態1501としては、ビジネスプロセス実行装置200へ配備済みであるが処理要求は受け付けていない"配備済み"、およびビジネスプロセス実行装置200へ配備済みであり、かつ処理要求を受け付け可能である"稼動中"といった状態がある。
<Business process management table 1223>
FIG. 13 is a diagram showing an example of the configuration of the business process management table 1223.
The business process management table 1223 shown in FIG. 13 is a table that holds the deployment status of the business process definition itself, and includes a
The business
なお、図13の構成は一例であり、上記以外の情報が含まれていても良い。ビジネスプロセス管理テーブル1223への情報の登録は、ビジネスプロセス実行プログラム220に含まれる処理部が行なっても良いし、他の処理部が行なっても良いが、既存技術によって実現可能であるため詳細は省略する。
The configuration of FIG. 13 is an example, and information other than the above may be included. Registration of information in the business process management table 1223 may be performed by a processing unit included in the business
<稼動状態管理テーブル1230>
図14は、稼動状態管理テーブル1230の構成を示す図である。
図14に示す稼動状態管理テーブル1230は、第1実施形態で例示した稼動状態管理テーブル261(図4参照)と同様の構成であるが、管理対象としてサービスだけでなく、ビジネスプロセスも含んでいる点が異なる(図14のサービス(ビジネスプロセス)名1600参照)。
対象がビジネスプロセスの場合、ビジネスプロセス実行可否が稼動状態1601に、ビジネスプロセスが実行不可の場合の原因となる障害が障害種別1602に、ビジネスプロセス実行待機時間が待機時間1603に、以上のデータの更新時刻が更新時刻1604に格納される。
<Operation status management table 1230>
FIG. 14 is a diagram showing the configuration of the operating state management table 1230.
The operation state management table 1230 shown in FIG. 14 has the same configuration as the operation state management table 261 (see FIG. 4) exemplified in the first embodiment, but includes not only services but also business processes as management targets. The points are different (see service (business process)
When the target is a business process, whether or not the business process can be executed is in the
<待機時間管理テーブル1231>
図15は、待機時間管理テーブル1231の構成を示す図である。
図15に示す待機時間管理テーブル1231は、第1実施形態で例示した待機時間管理テーブル262(図5参照)と同様の構成であるが、管理対象としてサービスだけでなく、ビジネスプロセスも含んでいる点が異なる(図15のサービス(ビジネスプロセス)名1700参照)。対象がビジネスプロセスの場合、ビジネスプロセスが実行不可の場合の原因となる障害が障害種別1701に、ビジネスプロセス実行待機時間が待機時間1702に格納されている。
<Standby time management table 1231>
FIG. 15 is a diagram showing the configuration of the standby time management table 1231. As shown in FIG.
The standby time management table 1231 shown in FIG. 15 has the same configuration as the standby time management table 262 (see FIG. 5) exemplified in the first embodiment, but includes not only services but also business processes as management targets. The points are different (see service (business process)
<<ビジネスプロセス実行部230によるビジネスプロセス実行処理>>
第2実施形態におけるビジネスプロセス実行部230によるビジネスプロセス実行処理の流れは第1実施形態の図6とほぼ同様であるため、説明は省略するが、以下の点が異なる。(a)実行されるビジネスプロセス定義について、ビジネスプロセス1定義251(図1参照)からビジネスプロセス2定義1220(図10参照)へ変更、(b)ビジネスプロセス1処理要求100(図1参照)をビジネスプロセス2処理要求1101(図10参照)へ変更、(c)ビジネスプロセス1インスタンス2311(図1参照)をビジネスプロセス2インスタンス1201(図10参照)へ変更。
<< Business Process Execution Processing by Business
The flow of business process execution processing by the business
<<依存関係解析部1210による依存関係管理テーブル1232の更新処理>>
次に、依存関係解析部1210による依存関係管理テーブル1232の更新処理について、図16に従って説明する。
図16は、図10に示す依存関係解析部1210がビジネスプロセス1定義251、ビジネスプロセス2定義1220を解析して依存関係管理テーブル1232を更新する処理の流れを示すフローチャートである。
本処理では、ビジネスプロセス定義およびサービスIF定義を解析することで、該ビジネスプロセスから利用されるサービスを該ビジネスプロセスの依存サービスとして依存関係管理テーブル1232へ登録する。全ての依存サービスが稼動している場合のみ、該ビジネスプロセスは実行可能と判定する。ここで、ビジネスプロセスから実行される全てのサービスを無条件に依存サービスとして登録すると、該ビジネスプロセスの稼動率を無駄に低く判定してしまうことが想定される。
<< Update processing of dependency management table 1232 by
Next, update processing of the dependency relationship management table 1232 by the dependency
FIG. 16 is a flowchart showing the flow of processing in which the dependency
In this process, by analyzing the business process definition and the service IF definition, a service used from the business process is registered in the dependency management table 1232 as a dependent service of the business process. Only when all the dependent services are operating, the business process is determined to be executable. Here, if all services executed from a business process are unconditionally registered as dependent services, it is assumed that the operation rate of the business process is judged to be uselessly low.
そこで、本第2実施形態では、ビジネスプロセスの構造のうち条件分岐および非同期サービスの実行に着目して、依存サービスとして登録するサービスに制限を加えることで、稼動率を低く判定してしまうことを回避している。
具体的には、ビジネスプロセス定義をフローの先頭から順に解析する際、以下の2点の何れかに該当した場合、その時点で解析を中止する。中止点以前に実行されるサービスのみを依存サービスとして登録し、中止点以降に実行されるサービスは依存サービスとしてはカウントしない。
Therefore, in the second embodiment, focusing on conditional branching and execution of asynchronous services in the structure of business processes, by limiting the services registered as dependent services, the operation rate is determined to be low. It is avoiding.
Specifically, when analyzing a business process definition in order from the top of the flow, if any of the following two points is met, the analysis is stopped at that point. Only services executed before the stop point are registered as dependent services, and services executed after the stop point are not counted as dependent services.
(a) 条件分岐ステップ
条件分岐ステップが存在する場合、実際に実行される経路はビジネスプロセス実行時まで不明である。このため、分岐先に配置された全てのサービスを依存サービスとして登録すると、実際には実行されないサービスまで依存サービスとして登録する場合が生じる。これを回避するため、条件分岐が存在するビジネスプロセスについては、条件分岐の前のステップまでを依存関係解析対象とする。
(a) Conditional branch step When a conditional branch step exists, the path actually executed is unknown until the business process is executed. For this reason, when all the services arranged at the branch destination are registered as dependent services, a service that is not actually executed may be registered as a dependent service. In order to avoid this, for business processes in which conditional branches exist, the steps up to the step before the conditional branch are subject to dependency analysis.
(b) 非同期サービスの実行
サービスの中には処理の実行が比較的長時間(数時間から数日)に渡るものが存在する。例えば人手による申請−承認処理を行なうようなサービスである。これらはビジネスプロセスからの処理要求に対して処理応答を非同期的に返すため、非同期サービスと呼ばれる。
非同期サービスの実行には時間がかかるため、非同期サービス以降のステップで実行されるサービスは、ビジネスプロセス実行開始時に稼動状態を判定しても実際にサービスを実行する際には稼動状態が変わっている可能性が高い。
(b) Execution of Asynchronous Service Some services have a relatively long execution time (several hours to several days). For example, it is a service that performs a manual application-approval process. These are called asynchronous services because they respond asynchronously to processing requests from business processes.
Because execution of an asynchronous service takes time, services that are executed in the steps after the asynchronous service change the operating state when the service is actually executed even if the operating state is determined at the start of business process execution. Probability is high.
これを回避するため、非同期サービスの実行が存在するビジネスプロセスについては、非同期サービスの実行より前のステップまでを依存関係解析対象とする。
実行するサービスが非同期サービスかどうかは、図10、図11に示すサービスAIF定義252、サービスBIF定義253等のサービスIF定義から識別することができる。具体的には、サービスの実行メソッドの定義として、処理要求のデータ型のみ定義されており、処理応答に関する定義が無いものは非同期サービスと判定することができる。
以上を踏まえて、図16に基づいて、依存関係管理テーブル1232の更新処理について説明する。
図16を参照して、
In order to avoid this, for business processes where asynchronous service execution exists, the processes up to the step prior to asynchronous service execution are subject to dependency analysis.
Whether the service to be executed is an asynchronous service can be identified from the service IF definitions such as the
Based on the above, the update process of the dependency management table 1232 will be described based on FIG.
Referring to FIG.
(ステップ1800) 図10に示すサービス状態管理部240の依存関係解析部1210がビジネスプロセス実行装置200上に配備されたビジネスプロセス1定義251、ビジネスプロセス2定義1220、サービスAIF定義252、サービスBIF定義253を取得する。
(ステップ1801)取得した全てのビジネスプロセス定義について、ステップ1802からステップ1809の処理を実行する。
(ステップ1802)処理対象のビジネスプロセス定義を読み込む。
(ステップ1803)処理対象ステップIDを表す変数iに1を代入する。
(Step 1800)
(Step 1801)
(Step 1802) The business process definition to be processed is read.
(Step 1803) 1 is substituted into the variable i representing the processing step ID.
(ステップ1804)処理対象ビジネスプロセス定義のステップIDiのステップ種別が終了ステップまたは分岐ステップであるか判断し、終了ステップまたは分岐ステップであればステップ1809へ移行し、それ以外であればステップ1805へ移行する。
(ステップ1805)処理対象ビジネスプロセス定義のステップIDiのステップ種別がサービス実行ステップであるか否か判断され、サービス実行ステップであればステップ1806へ移行し、それ以外であればステップ1808へ移行する。
(ステップ1806)実行対象のサービスが非同期サービスであるか否か判断され、非同期サービスでなければステップ1807へ移行し、非同期サービスであればステップ1809へ移行する。
(Step 1804) It is determined whether the step type of step IDi of the business process definition to be processed is an end step or a branch step. If it is an end step or a branch step, the process proceeds to step 1809. Otherwise, the process proceeds to step 1805. To do.
(Step 1805) It is determined whether or not the step type of step IDi of the business process definition to be processed is a service execution step. If it is a service execution step, the process proceeds to step 1806. Otherwise, the process proceeds to step 1808.
(Step 1806) It is determined whether the service to be executed is an asynchronous service. If it is not an asynchronous service, the process proceeds to Step 1807, and if it is an asynchronous service, the process proceeds to Step 1809.
(ステップ1807)図12に示す依存関係管理テーブル1232へ、解析中のビジネスプロセスの依存サービスとしてステップID iで実行するサービス名(ビジネスプロセス名)を依存サービス名1401に追加する。
(ステップ1808)処理対象ビジネスプロセス定義から、ステップIDiの次のステップのステップIDを取得し、iへ代入し、ステップ1804へ移行する。
(ステップ1809)取得した全てのビジネスプロセス定義について処理が完了しているか否か判断し、取得した全てのビジネスプロセス定義について処理が完了していればステップ1810へ移行し、完了していなければステップ1802へ移行する。
(Step 1807) The service name (business process name) executed at step ID i is added to the
(Step 1808) The step ID of the next step after step IDi is acquired from the processing target business process definition, substituted into i, and the process proceeds to step 1804.
(Step 1809) It is determined whether or not the processing has been completed for all the acquired business process definitions, and if the processing has been completed for all the acquired business process definitions, the process proceeds to Step 1810. Move to 1802.
(ステップ1810)図12に示す依存関係管理テーブル1232の全エントリを検索し、依存サービス(ビジネスプロセス)名1401にビジネスプロセスが登録されている場合、該ビジネスプロセスが依存している全てのサービス(ビジネスプロセス)を依存サービス(ビジネスプロセス)名1401として追加する。例えば本第2実施形態では、図12に示すように、ビジネスプロセス2はビジネスプロセス1を利用し、ビジネスプロセス1はサービスA280およびサービスB281を利用している。このとき、依存関係管理テーブル1232には図12に示す通り、ビジネスプロセス1の依存サービスとしてサービスA280、サービスB281が登録され、さらにビジネスプロセス2の依存サービスとしてビジネスプロセス1、およびビジネスプロセス1が依存しているサービスA280、サービスB281が登録される。
(Step 1810) When all the entries in the dependency management table 1232 shown in FIG. 12 are searched and a business process is registered in the dependent service (business process)
<<ビジネスプロセス状態判定部1211による稼動状態管理テーブル1230への登録処理>>
次に、図10、図11に示すビジネスプロセス状態判定部1211による稼動状態管理テーブル1230への登録処理について、図17に従って説明する。
なお、図17は、ビジネスプロセス状態判定部1211が稼動状態管理テーブル1230、待機時間管理テーブル1231、ビジネスプロセス管理テーブル1223、依存関係管理テーブル1232に登録された情報からビジネスプロセスの稼動状態を判定し、稼動状態管理テーブル1230へ登録する処理の流れを示すフローチャートである。
<< Registration processing in the operation status management table 1230 by the business process
Next, registration processing in the operation state management table 1230 by the business process
In FIG. 17, the business process
図14に示す稼動状態管理テーブル1230に登録されるビジネスプロセスの稼動状態1601および待機時間1603の判定方法を簡単に説明する。
図10、図11に示すビジネスプロセス1定義251等のビジネスプロセス定義がビジネスプロセス実行装置200に配備されていてリクエストを受け付け可能な状態であり、かつ該ビジネスプロセスが利用するサービスが全て稼動している場合、ビジネスプロセスは実行可能と判定され、図14の稼動状態1601として「稼動」が登録される。該ビジネスプロセス定義がリクエストを受け付けていないか、もしくは利用するサービスのうち1つ以上が停止している場合、ビジネスプロセスは実行不可と判定され、図14の稼動状態1601として「停止」が登録される。稼動状態1601が停止の場合、ビジネスプロセスが利用するサービスのうち停止しているサービスのサービス実行待機時間を全て取得し、その中で最も待機時間が長いものを図14の待機時間1603として登録する。
A method for determining the
The business process definition such as the
本第2実施形態では、図17に示す処理は、稼動状態管理テーブル1230または待機時間管理テーブル1231の更新を検知して実行されるが、このタイミングは一例であり、例えば該テーブル1230、1231の更新とは無関係に一定時間毎に図17の処理を行なっても良い。また、本第2実施形態では図17の処理の度に全ての図10、図11に示すビジネスプロセス実行履歴254を読み込んで処理を行なっているが、図17の処理を2度以上行なう場合は、前回読み込んだビジネスプロセス実行履歴254(図3参照)からの差分のみを読み込んで処理を行なっても良い。
In the second embodiment, the processing shown in FIG. 17 is executed by detecting the update of the operating state management table 1230 or the standby time management table 1231. This timing is an example, and for example, the processing of the tables 1230 and 1231 is performed. Regardless of the update, the processing of FIG. 17 may be performed at regular intervals. Further, in the second embodiment, every time the processing of FIG. 17 is performed, the business
図17を参照し、
(ステップ1900)図10に示すサービス状態管理部240が稼動状態管理テーブル1230または待機時間管理テーブル1231の更新を検知する。
(ステップ1901)図14に示す稼動状態管理テーブル1230のビジネスプロセスに関するエントリを以下のデータで初期化する。サービス(ビジネスプロセス)名1600:(変更なし)、稼動状態1601:文字列"稼動"、障害種別1602:文字列"−"、待機時間1603:文字列"−"、更新時刻1604:文字列"−"。
(ステップ1902)稼動状態管理テーブル1230に登録されているエントリのうち、稼動状態1601が"停止"である全てのサービスSstopについて、ステップ1903からステップ1907の処理を実行する。
With reference to FIG.
(Step 1900) The service
(Step 1901) The business process entry in the operating state management table 1230 shown in FIG. 14 is initialized with the following data. Service (business process) name 1600: (no change), operation status 1601: character string "active", failure type 1602: character string "-", standby time 1603: character string "-", update time 1604: character string "-".
(Step 1902) The processing from
(ステップ1903)図14に示す稼動状態管理テーブル1230から、"停止"であるサービスSstopのサービス名1600および障害種別1602を取得し、障害種別を表す変数eへ格納する。また、待機時間1603を取得し、待機時間を表す変数t1へ格納する。また、更新時刻1604を取得し、更新時刻を表す変数trへ格納する。
(ステップ1904)図12に示す依存関係管理テーブル1232から、"停止"であるサービスSstopに依存している全てのビジネスプロセスbpを取得する。
(ステップ1905)稼動状態管理テーブル1230(図14参照)のサービス(ビジネスプロセス)名1600がビジネスプロセスbpであるエントリについて、待機時間1603が文字列"−"または待機時間の変数t1より小さいか否か判断し、待機時間1603が文字列"−"または待機時間の変数t1より小さい場合はステップ1906へ移行し、t1以上の場合はステップ1907へ移行する。
(Step 1903) The
(Step 1904) All the business processes bp depending on the service Sstop which is “stop” are acquired from the dependency management table 1232 shown in FIG.
(Step 1905) Whether or not the standby time 1603 is smaller than the character string “-” or the standby time variable t1 for the entry whose service (business process)
(ステップ1906)図14に示す稼動状態管理テーブル1230のサービス(ビジネスプロセス)名1600がビジネスプロセスbpであるエントリを以下のデータで更新する。稼動状態1601:文字列"停止"、障害種別1602:障害種別変数e、待機時間1603:待機時間変数t1、更新時刻1604:更新時刻変数tr。
(ステップ1907)図14に示す稼動状態管理テーブル1230に登録されているエントリのうち、全ての稼動状態1601が停止のサービスSstopについて、処理が完了しているか否か判断し、処理が完了していればステップ1908へ移行し、完了していなければステップ1903へ移行する。
(Step 1906) The entry whose service (business process)
(Step 1907) Of the entries registered in the operating state management table 1230 shown in FIG. 14, it is determined whether or not the processing has been completed for all services Sstop whose
(ステップ1908)図13に示すビジネスプロセス管理テーブル1223に登録されているビジネスプロセスのうち、状態1501が停止である全てのビジネスプロセスBPstopについて、ステップ1909からステップ1913の処理を実行する。
(ステップ1909)図15に示す待機時間管理テーブル1231から停止のビジネスプロセスBPstopの待機時間1702を取得し、待機時間を表す変数t2へ格納する。また、図14に示す稼動状態管理テーブル1230の障害種別1602を取得して障害種別を表す変数e2へ格納する。また、更新時刻1604を取得し、更新時刻を表す変数tr2へ格納する。
(Step 1908) The processing from
(Step 1909) The
(ステップ1910)図12に示す依存関係管理テーブル1232から、依存サービス(ビジネスプロセス)名1401に停止であるビジネスプロセスBPstopが含まれる全てのビジネスプロセス(ビジネスプロセス名1400)を取得し、ビジネスプロセス名を表す変数bpに格納する。
(ステップ1911)図14に示す稼動状態管理テーブル1230のサービス(ビジネスプロセス)名1600がビジネスプロセス名の変数bpに含まれるエントリについて、待機時間1603が文字列"−"またはt2より小さいか否か判断し、待機時間1603が文字列"−"またはt2より小さい場合はステップ1912へ移行し、t2以上の場合はステップ1913へ移行する。
(Step 1910) Acquire all business processes (business process name 1400) including the business process BPstop that is stopped in the dependency service (business process)
(Step 1911) Whether or not the waiting time 1603 is smaller than the character string “-” or t2 for the entry in which the service (business process)
(ステップ1912)図14に示す稼動状態管理テーブル1230のサービス(ビジネスプロセス)名1600がビジネスプロセス名の変数bpであるエントリを以下のデータで更新する。稼動状態1601:文字列"停止"、障害種別1602:障害種別変数e2、待機時間1603:待機時間変数t2、更新時刻1604:更新時刻変数tr2。
(ステップ1913)図13に示すビジネスプロセス管理テーブル1223に登録されているビジネスプロセスのうち、状態1501が停止である全てのビジネスプロセスBPstopについて、処理が完了しているか否か判断し、処理が完了していれば終了する。完了していなければステップ1909へ移行する。
以上が、図10に示すビジネスプロセス状態判定部1211による稼動状態管理テーブル1230への登録処理である。
(Step 1912) The entry whose service (business process)
(Step 1913) Among the business processes registered in the business process management table 1223 shown in FIG. 13, it is determined whether or not the processing has been completed for all business processes BPstop whose
The above is the registration process to the operation state management table 1230 by the business process
上記第2実施形態による依存関係解析部1210およびビジネスプロセス状態判定部1211(図10、図11参照)によれば、あるビジネスプロセスから他のビジネスプロセスを実行するような複雑な構成においてもビジネスプロセスの稼動状態を判定することができる。また、条件分岐などビジネスプロセスの構造を考慮して依存関係を解析することで必要以上にビジネスプロセスの稼動率を低く判定することを回避できる。これにより、ビジネスプロセスの稼動状態に応じてビジネスプロセスの実行タイミングを制御することができ、ビジネスプロセス実行装置200全体としてビジネスプロセスの実行失敗回数を低減することができる。
According to the dependency
<<まとめ>>
本発明は、ビジネスプロセスが、ネットワーク上の複数のサービスを定義された順に実行して業務を遂行するビジネスプロセス処理システムにおいて、サービスの稼動状態に応じてサービスの実行タイミングを制御するものである。
このため、本発明では、図1に示すように、ビジネスプロセス実行装置200が保持するビジネスプロセス実行履歴254を解析してサービスA280、B281等のサービスの稼動状態、およびサービス毎、障害種別毎のサービス実行待機時間を取得する。サービスを実行する直前にサービスの稼動状態をチェックし、サービスの稼動状態に応じてサービスを直ぐに実行するか、または一定時間待機した後に実行するかを判断する。
<< Summary >>
The present invention controls a service execution timing according to a service operating state in a business process processing system in which a business process executes a plurality of services on a network in a defined order to perform a business.
For this reason, in the present invention, as shown in FIG. 1, the business
待機する場合の待機時間としては、前記サービス毎、障害種別毎のサービス実行待機時間を使用する。サービス稼動状態の取得に利用するビジネスプロセス実行履歴254には、ビジネスプロセス実行装置200に配備されている全てのビジネスプロセスの実行履歴が含まれている。従って、本発明では、あるビジネスプロセスによるサービスの実行結果は、ビジネスプロセス実行履歴254を介してビジネスプロセス実行装置200に配備されている全てのビジネスプロセスで共有される。
As the standby time for standby, the service execution standby time for each service and each failure type is used. The business
さらに、ビジネスプロセス定義からビジネスプロセスとサービスの依存関係を取得し、依存関係やビジネスプロセスの構造、サービスの稼動状態などの情報からビジネスプロセスの稼動状態を判定し、ビジネスプロセスの稼動状態に応じてビジネスプロセスを直ぐに実行するか、または一定時間待機した後に実行するかを判断する。 In addition, the business process and service dependency is obtained from the business process definition, and the business process operating state is determined from information such as the dependency, business process structure, and service operating state, and according to the business process operating state. Determine whether to execute the business process immediately or after waiting for a certain time.
図18を用いて解決手段の概要について説明する。
なお、図18は、ビジネスプロセスが多段になっている場合に、サービスの稼動状態に応じてビジネスプロセスの実行タイミングを制御する処理の概念図である。
発注ビジネスプロセス1851から購入ビジネスプロセス1853を実行する処理を本発明によるサービス実行制御部233が代行する。サービス実行制御部233では、本発明によるサービス状態管理部240から購入ビジネスプロセスの稼動状態を取得する。サービス状態管理部240では、購入ビジネスプロセス1853がどのサービスを利用しているかを示す依存関係情報、および各サービスの稼動状態を示すサービス稼動情報から、購入ビジネスプロセス1853の実行可否を判定する。
The outline of the solving means will be described with reference to FIG.
FIG. 18 is a conceptual diagram of processing for controlling the execution timing of a business process according to the service operating state when the business process has multiple stages.
The service
購入ビジネスプロセス1853は納期確認サービス1862および注文サービス1863を利用する。2つのサービスが稼動している場合、サービス実行制御部233はすぐに購入ビジネスプロセス1853を実行する。仮にどちらかのサービスが停止していた場合、購入ビジネスプロセス1853は実行不可と判定され、サービス実行制御部233は一定時間待機してサービスの復旧を待った後、購入ビジネスプロセス1853を実行する。以上の処理により、ビジネスプロセスの稼動状態に応じて実行タイミングを制御し、ビジネスプロセスの実効失敗を回避する。
The
また、ビジネスプロセスとサービスの依存関係を解析する際には、ビジネスプロセスの構造を考慮する必要がある。この様子を図19を用いて説明する。
なお、図19は、ビジネスプロセスの構造に応じた依存関係解析範囲を表す図であり、(a)は処理の途中に条件分岐が含まれているビジネスプロセスを示す図であり、(b)は処理の途中に非同期サービスcの実行が含まれているビジネスプロセスを示す図である。
Also, when analyzing the dependency between business processes and services, it is necessary to consider the structure of the business process. This will be described with reference to FIG.
FIG. 19 is a diagram showing the dependency analysis range according to the structure of the business process, (a) is a diagram showing a business process including a conditional branch in the middle of processing, and (b) is a diagram showing It is a figure which shows the business process in which execution of the asynchronous service c is included in the middle of a process.
図19(a)に示すビジネスプロセスは、分岐結果が判明するまでサービスc、サービスdのどちらが実行されるか判定することはできない。この場合、サービスcおよびdの双方の稼動をビジネスプロセスの稼動状態判定の条件としてしまうと、無駄にビジネスプロセスの稼働率を低く判定してしまう可能性がある。このため、図19(a)のケースでは分岐の前までを依存関係解析対象とする。 In the business process shown in FIG. 19A, it cannot be determined whether the service c or the service d is executed until the branch result is determined. In this case, if the operation of both services c and d is used as the condition for determining the operating state of the business process, there is a possibility that the operating rate of the business process is unnecessarily determined low. For this reason, in the case of FIG. 19 (a), the part before the branch is set as the dependency analysis target.
また、図19(b)に示すビジネスプロセスは、処理の途中に非同期サービスcの実行が含まれている。非同期サービスとは処理の開始から終了までにかかる時間が比較的長時間に及ぶサービスである。非同期サービスcの後に実行される同期サービスdの稼動状態は、ビジネスプロセスの処理開始時とは異なっている可能性が高い。この場合、同期サービスdの稼動をビジネスプロセスの稼動状態判定の条件としてしまうと、無駄にビジネスプロセスの稼働率を低く判定してしまう可能性がある。このため、図19(b)に示すケースでは非同期サービスcより前を依存関係解析対象とする。 Further, the business process shown in FIG. 19B includes the execution of the asynchronous service c in the middle of processing. An asynchronous service is a service that takes a relatively long time from the start to the end of processing. There is a high possibility that the operating state of the synchronous service d executed after the asynchronous service c is different from that at the start of business process processing. In this case, if the operation of the synchronous service d is used as the condition for determining the operating state of the business process, there is a possibility that the operating rate of the business process is unnecessarily determined low. For this reason, in the case shown in FIG. 19B, the object before the asynchronous service c is set as the dependency analysis target.
このように、本発明ではビジネスプロセスの構造を考慮してビジネスプロセスとサービスの依存関係を判定する。
本発明によれば、あるビジネスプロセスがサービスの実行に失敗することでサービスが停止したことを検知し、後続のビジネスプロセスによる停止中サービスの実行を一時的に延期することで、ビジネスプロセス処理システム全体としてビジネスプロセスの実行失敗回数を低減することができる。
Thus, in the present invention, the business process and service dependency are determined in consideration of the structure of the business process.
According to the present invention, a business process processing system detects that a service has stopped due to a business process failing to execute a service, and temporarily postpones execution of the stopped service by a subsequent business process. Overall, the number of business process execution failures can be reduced.
さらにビジネスプロセスからビジネスプロセスを実行するような複雑な構成において、ビジネスプロセスの稼動状態を、該ビジネスプロセスが依存しているサービスの稼動状態まで考慮して判定することで、ビジネスプロセス処理システム全体としてビジネスプロセスの実行失敗回数を低減することができる。 Furthermore, in a complex configuration where a business process is executed from a business process, the business process processing system as a whole is determined by determining the operating state of the business process in consideration of the operating state of the service on which the business process depends. The number of business process execution failures can be reduced.
200 ビジネスプロセス実行装置
204 ネットワーク
230 ビジネスプロセス実行部
233 サービス実行制御部
242 サービス稼動状態解析部
243 サービス待機時間計算部
251 ビジネスプロセス1定義(ビジネスプロセス定義、他のビジネスプロセス定義)
254 ビジネスプロセス実行履歴(ビジネスプロセス実行履歴記憶部)
261 稼動状態管理テーブル(サービス稼動状態解析部)
270、1240 クライアント
280 サービスA
281 サービスB
503 待機時間 (請求項1のサービス実行待機時間)
602 待機時間 (請求項3の各サービスの実行失敗の原因毎のサービス実行待機時間)
1210 依存関係解析部
1211 ビジネスプロセス状態判定部
1220 ビジネスプロセス2定義(あるビジネスプロセス定義)
1230 稼動状態管理テーブル(サービス稼動状態解析部)
1862 納期確認サービス(他のビジネスプロセス定義が利用するサービス)
1863 注文サービス(他のビジネスプロセス定義が利用するサービス)
a サービス(請求項7、請求項17の条件分岐よりも前に実行されるサービス)
b サービス(請求項7、請求項17の条件分岐よりも前に実行されるサービス)
c 非同期サービス(請求項8、請求項18の非同期のサービス)、
200 Business process execution device
204 network
230 Business Process Execution Department
233 Service execution control section
242 Service Operating State Analysis Department
243 Service waiting time calculator
251
254 Business process execution history (business process execution history storage)
261 Operating status management table (Service operating status analyzer)
270, 1240 clients
280 Service A
281 Service B
503 Waiting time (Service execution waiting time of Claim 1)
602 waiting time (service execution waiting time for each cause of execution failure of each service of claim 3)
1210 Dependency analyzer
1211 Business process status judgment part
1220
1230 Operating status management table (Service operating status analysis part)
1862 Delivery Confirmation Service (service used by other business process definitions)
1863 Order service (service used by other business process definitions)
a Service (service executed before the conditional branch in
b Service (service executed before the conditional branch in
c Asynchronous services (asynchronous services of
Claims (20)
ビジネスプロセス実行履歴記憶部に記憶されるビジネスプロセスによるサービス実行結果から停止中のサービス毎にサービス実行待機時間を算出するサービス待機時間計算部と、
前記ビジネスプロセス実行履歴記憶部に記憶される最新のサービス実行結果からサービス毎の稼動状態を判定するとともに前記停止中のサービス毎のサービス実行待機時間を取得するサービス稼動状態解析部と、
前記サービスを実行する前に該サービスの前記稼動状態および前記サービス実行待機時間を取得し、該サービスが稼動中である場合には該サービスを実行する一方、該サービスが停止中である場合には前記サービス実行待機時間の間、該サービスの実行を延期するサービス実行制御部とを
備えることを特徴とするビジネスプロセス実行装置。 A business process execution device that executes a plurality of services on a network in the order described in a business process definition in response to a client processing request,
A service standby time calculation unit that calculates a service execution standby time for each stopped service from a service execution result by a business process stored in the business process execution history storage unit;
A service operation state analysis unit that determines an operation state for each service from the latest service execution result stored in the business process execution history storage unit and obtains a service execution standby time for each stopped service;
Before executing the service, obtain the operating state of the service and the service execution waiting time, and execute the service when the service is in operation, while the service is stopped A business process execution apparatus comprising: a service execution control unit that postpones execution of the service during the service execution standby time.
前記サービス待機時間計算部は、
前記サービス毎に、サービス実行失敗時刻と該サービス実行失敗時刻直後の同一サービスのサービス実行成功時刻との差分を前記ビジネスプロセス実行履歴記憶部から取得し、その平均を前記サービス実行待機時間として算出する
ことを特徴とするビジネスプロセス実行装置。 The business process execution device according to claim 1,
The service waiting time calculation unit
For each service, the difference between the service execution failure time and the service execution success time of the same service immediately after the service execution failure time is acquired from the business process execution history storage unit, and the average is calculated as the service execution waiting time. A business process execution device characterized by that.
前記サービス待機時間計算部は、
前記各サービスの実行失敗の原因毎に、サービス実行失敗時刻と、該サービス実行失敗時刻直後の同一サービスのサービス実行成功時刻との差分を前記ビジネスプロセス実行履歴記憶部から取得し、その平均を前記各サービスの実行失敗の原因毎の前記サービス実行待機時間として算出する
ことを特徴とするビジネスプロセス実行装置。 In the business process execution device according to claim 1,
The service waiting time calculation unit
For each cause of execution failure of each service, the difference between the service execution failure time and the service execution success time of the same service immediately after the service execution failure time is obtained from the business process execution history storage unit, and the average is A business process execution device characterized in that the service execution standby time is calculated for each cause of execution failure of each service.
前記サービス実行制御部は、
前記サービスの稼動状態の更新時刻と前記サービス実行制御部が処理を実行している時点の時刻とを比較し、その差が所定値以上である場合、前記サービスの稼動状態に関わらず該サービスを実行する
ことを特徴とするビジネスプロセス実行装置。 The business process execution device according to claim 1,
The service execution control unit
The update time of the service operation state is compared with the time at which the service execution control unit is executing the process. If the difference is equal to or greater than a predetermined value, the service is updated regardless of the service operation state. A business process execution device characterized by executing.
前記サービス実行制御部は、
前記サービス実行待機時間が所定値以上である場合、前記サービスの稼動状態に関わらず該サービスを実行する
ことを特徴とするビジネスプロセス実行装置。 The business process execution device according to claim 1,
The service execution control unit
When the service execution standby time is a predetermined value or more, the service is executed regardless of the operation state of the service.
あるビジネスプロセス定義が他のビジネスプロセス定義を実行する場合に該他のビジネスプロセス定義を解析して該他のビジネスプロセス定義が利用するサービスの一覧を取得する依存関係解析部と、
前記他のビジネスプロセス定義が利用する全てのサービスの稼動状態および該他のビジネスプロセス定義の配備状態から該他のビジネスプロセス定義が実行可能か否かを判定し、該他のビジネスプロセス定義が利用するサービスの前記サービス実行待機時間を前記サービス稼働状態解析部から取得して該他のビジネスプロセス定義のビジネスプロセス実行待機時間を決定するビジネスプロセス状態判定部とを
備えることを特徴とするビジネスプロセス実行装置。 The business process execution device according to claim 1,
A dependency analysis unit that analyzes the other business process definition when a business process definition executes another business process definition and obtains a list of services used by the other business process definition;
It is determined whether or not the other business process definition can be executed from the operating state of all services used by the other business process definition and the deployment state of the other business process definition, and the other business process definition uses A business process state determination unit that obtains the service execution waiting time of a service to be executed from the service operating state analysis unit and determines a business process execution waiting time of the other business process definition. apparatus.
前記依存関係解析部は、
前記他のビジネスプロセス定義に条件分岐が含まれる場合、該条件分岐よりも前に実行されるサービスを該他のビジネスプロセス定義が利用するサービスとして取得する
ことを特徴とするビジネスプロセス実行装置。 The business process execution device according to claim 6,
The dependency analysis unit
When the other business process definition includes a conditional branch, a service executed before the conditional branch is acquired as a service used by the other business process definition.
前記依存関係解析部は、
前記他のビジネスプロセス定義に非同期に応答が返ってくるサービスを実行する処理を含む場合、該非同期のサービスの実行処理よりも前に実行される全てのサービスを、該他のビジネスプロセス定義が利用するサービスとして取得する
ことを特徴とするビジネスプロセス実行装置。 The business process execution device according to claim 6,
The dependency analysis unit
In the case of including a process for executing a service in which a response is asynchronously returned to the other business process definition, the other business process definition uses all services executed before the execution process of the asynchronous service. A business process execution device characterized by being acquired as a service to perform.
前記ビジネスプロセス状態判定部は、
前記他のビジネスプロセス定義が利用するサービスの一覧を前記依存関係解析部から取得し、かつ、該取得した前記サービスの稼働状態を前記サービス稼動状態解析部から取得し、かつ、該他のビジネスプロセス定義の配備状態を前記ビジネスプロセス実行装置から取得し、
前記サービス一覧に含まれる全てのサービスが稼動状態であり、かつ、該他のビジネスプロセス定義が前記ビジネスプロセス実行装置上に配備されている場合に該他のビジネスプロセス定義が実行可能と判定する
ことを特徴とするビジネスプロセス実行装置。 The business process execution device according to claim 6,
The business process state determination unit
A list of services used by the other business process definition is acquired from the dependency analysis unit, and an operation state of the acquired service is acquired from the service operation state analysis unit, and the other business process is acquired. Obtain the deployment status of the definition from the business process execution device,
Determining that other business process definitions can be executed when all the services included in the service list are in an active state and the other business process definitions are deployed on the business process execution device. Business process execution device characterized by
前記ビジネスプロセス状態判定部は、
前記他のビジネスプロセス定義が利用する1つ以上のサービスの稼動状態が停止である場合に、前記停止しているサービスのサービス実行待機時間を前記サービス稼働状態解析部から取得し、該取得したサービス実行待機時間のうち最も長いサービス実行待機時間を該他のビジネスプロセス定義の実行待機時間とする
ことを特徴とするビジネスプロセス実行装置。 The business process execution device according to claim 6,
The business process state determination unit
When the operating state of one or more services used by the other business process definition is stopped, the service execution waiting time of the stopped service is acquired from the service operating state analysis unit, and the acquired service A business process execution apparatus characterized in that the longest service execution waiting time among the execution waiting times is set as the execution waiting time of the other business process definition.
ビジネスプロセス実行装置が、
ビジネスプロセス実行履歴記憶部に記憶されるビジネスプロセスによるサービス実行結果から停止中のサービス毎にサービス実行待機時間を算出し、
前記ビジネスプロセス実行履歴記憶部に記憶される最新のサービス実行結果からサービス毎の稼動状態を判定するとともに前記停止中のサービス毎のサービス実行待機時間を取得し、
前記サービスを実行する前に該サービスの前記稼動状態および前記サービス実行待機時間を取得して該サービスが稼動中である場合には該サービスを実行する一方、該サービスが停止中である場合には前記サービス実行待機時間の間、該サービスの実行を延期する
ことを特徴とするビジネスプロセス実行方法。 A business process execution method for executing a plurality of services on a network in the order described in a business process definition in response to a client processing request,
Business process execution device
Calculate the service execution waiting time for each stopped service from the service execution result by the business process stored in the business process execution history storage unit,
Determining an operating state for each service from the latest service execution result stored in the business process execution history storage unit and obtaining a service execution waiting time for each stopped service;
Before the service is executed, the service is executed when the service is in operation by acquiring the operation state and the service execution waiting time of the service, and when the service is stopped Execution of the service is postponed during the service execution waiting time.
前記サービス実行待機時間の算出は、
前記サービス毎に、サービス実行失敗時刻と該サービス実行失敗時刻直後の同一サービスのサービス実行成功時刻との差分を前記ビジネスプロセス実行履歴記憶部から取得し、その平均を前記サービス実行待機時間として算出する
ことを特徴とするビジネスプロセス実行方法。 The business process execution method according to claim 11,
The service execution waiting time is calculated as follows:
For each service, the difference between the service execution failure time and the service execution success time of the same service immediately after the service execution failure time is acquired from the business process execution history storage unit, and the average is calculated as the service execution standby time. A business process execution method characterized by that.
前記サービス実行待機時間の算出は、
前記各サービスの実行失敗の原因毎に、サービス実行失敗時刻と、該サービス実行失敗時刻直後の同一サービスのサービス実行成功時刻との差分を前記ビジネスプロセス実行履歴記憶部から取得し、その平均を前記各サービスの実行失敗の原因毎の前記サービス実行待機時間として算出する
ことを特徴とするビジネスプロセス実行方法。 The business process execution method according to claim 11,
The service execution waiting time is calculated as follows:
For each cause of execution failure of each service, the difference between the service execution failure time and the service execution success time of the same service immediately after the service execution failure time is acquired from the business process execution history storage unit, and the average is A business process execution method, wherein the service execution standby time is calculated for each cause of execution failure of each service.
前記ビジネスプロセス実行装置は、
前記サービスの稼動状態の更新時刻と処理を実行している時点の時刻とを比較し、その差が所定値以上である場合、前記サービスの稼動状態に関わらず該サービスを実行する
ことを特徴とするビジネスプロセス実行方法。 The business process execution method according to claim 11,
The business process execution device includes:
The update time of the service operation state is compared with the time when the process is executed, and if the difference is equal to or greater than a predetermined value, the service is executed regardless of the service operation state. Business process execution method.
前記サービス実行待機時間が所定値以上である場合、前記サービスの稼動状態に関わらず該サービスを実行する
ことを特徴とするビジネスプロセス実行方法。 The business process execution method according to claim 11,
When the service execution standby time is equal to or greater than a predetermined value, the service is executed regardless of the operation state of the service.
前記ビジネスプロセス実行装置は、
あるビジネスプロセス定義が他のビジネスプロセス定義を実行する場合に該他のビジネスプロセス定義を解析して該他のビジネスプロセス定義が利用するサービスの一覧を取得し、
前記他のビジネスプロセス定義が利用する全てのサービスの稼動状態および該他のビジネスプロセス定義の配備状態から該他のビジネスプロセス定義が実行可能か否かを判定し、該他のビジネスプロセス定義が利用するサービスの前記サービス実行待機時間を取得して該他のビジネスプロセス定義のビジネスプロセス実行待機時間を決定する
ことを特徴とするビジネスプロセス実行方法。 The business process execution method according to claim 11,
The business process execution device includes:
When a business process definition executes another business process definition, the other business process definition is analyzed to obtain a list of services used by the other business process definition,
It is determined whether or not the other business process definition can be executed from the operating state of all services used by the other business process definition and the deployment state of the other business process definition, and the other business process definition uses A business process execution method comprising: obtaining the service execution waiting time of a service to be performed and determining a business process execution waiting time of the other business process definition.
前記他のビジネスプロセス定義を解析して該他のビジネスプロセス定義が利用するサービスの一覧を取得するに際して、
前記他のビジネスプロセス定義に条件分岐が含まれる場合、該条件分岐よりも前に実行されるサービスを該他のビジネスプロセス定義が利用するサービスとして取得する
ことを特徴とするビジネスプロセス実行方法。 The business process execution method according to claim 16, wherein
When analyzing the other business process definition and obtaining a list of services used by the other business process definition,
When a conditional branch is included in the other business process definition, a service executed before the conditional branch is acquired as a service used by the other business process definition.
前記他のビジネスプロセス定義を解析して該他のビジネスプロセス定義が利用するサービスの一覧を取得するに際して、
前記他のビジネスプロセス定義に非同期に応答が返ってくるサービスを実行する処理を含む場合、該非同期のサービスの実行処理よりも前に実行される全てのサービスを、該他のビジネスプロセス定義が利用するサービスとして取得する
ことを特徴とするビジネスプロセス実行方法。 The business process execution method according to claim 16, wherein
When analyzing the other business process definition and obtaining a list of services used by the other business process definition,
In the case of including a process for executing a service in which a response is asynchronously returned to the other business process definition, the other business process definition uses all services executed before the execution process of the asynchronous service. A business process execution method characterized by being acquired as a service.
前記ビジネスプロセス実行装置は、
前記他のビジネスプロセス定義が利用するサービスの一覧を取得し、かつ、該取得した前記サービスの稼働状態を取得し、かつ、該他のビジネスプロセス定義の配備状態を前記ビジネスプロセス実行装置から取得し、
前記サービス一覧に含まれる全てのサービスが稼動状態であり、かつ、該他のビジネスプロセス定義が前記ビジネスプロセス実行装置上に配備されている場合に該他のビジネスプロセス定義を実行可能と判定する
ことを特徴とするビジネスプロセス実行方法。 The business process execution method according to claim 16, wherein
The business process execution device includes:
Obtain a list of services used by the other business process definition, obtain an operating state of the obtained service, and obtain a deployment state of the other business process definition from the business process execution device. ,
Determining that another business process definition can be executed when all the services included in the service list are in an active state and the other business process definition is deployed on the business process execution device. Business process execution method characterized by
前記ビジネスプロセス実行装置は、
前記他のビジネスプロセス定義が利用する1つ以上のサービスの稼動状態が停止である場合に、前記停止しているサービスのサービス実行待機時間を取得し、該取得したサービス実行待機時間のうち最も長いサービス実行待機時間を該他のビジネスプロセス定義の実行待機時間とする
ことを特徴とするビジネスプロセス実行方法。 The business process execution method according to claim 16, wherein
The business process execution device includes:
When the operation state of one or more services used by the other business process definition is stopped, the service execution waiting time of the stopped service is acquired, and the longest service execution waiting time is acquired. A business process execution method characterized in that a service execution standby time is set as an execution standby time of the other business process definition.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008131364A JP2009282581A (en) | 2008-05-19 | 2008-05-19 | Business process performing device and business process performing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008131364A JP2009282581A (en) | 2008-05-19 | 2008-05-19 | Business process performing device and business process performing method |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009282581A true JP2009282581A (en) | 2009-12-03 |
Family
ID=41453013
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008131364A Ceased JP2009282581A (en) | 2008-05-19 | 2008-05-19 | Business process performing device and business process performing method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009282581A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010079500A (en) * | 2008-09-25 | 2010-04-08 | Fuji Xerox Co Ltd | Operation device, processing system, and operation control program |
JP2014010585A (en) * | 2012-06-29 | 2014-01-20 | Fujitsu Ltd | Data transmission method and data transmission apparatus |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003521038A (en) * | 2000-01-19 | 2003-07-08 | サン・マイクロシステムズ・インコーポレイテッド | System and method for improving communication between devices in a computer system |
JP2004038516A (en) * | 2002-07-03 | 2004-02-05 | Hitachi Ltd | Work processing system, operation management method and program for performing operation management |
JP2005011023A (en) * | 2003-06-18 | 2005-01-13 | Hitachi Ltd | Job scheduling method and system |
JP2008003709A (en) * | 2006-06-20 | 2008-01-10 | Mitsubishi Electric Corp | Management device, task management method, and program |
-
2008
- 2008-05-19 JP JP2008131364A patent/JP2009282581A/en not_active Ceased
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003521038A (en) * | 2000-01-19 | 2003-07-08 | サン・マイクロシステムズ・インコーポレイテッド | System and method for improving communication between devices in a computer system |
JP2004038516A (en) * | 2002-07-03 | 2004-02-05 | Hitachi Ltd | Work processing system, operation management method and program for performing operation management |
JP2005011023A (en) * | 2003-06-18 | 2005-01-13 | Hitachi Ltd | Job scheduling method and system |
JP2008003709A (en) * | 2006-06-20 | 2008-01-10 | Mitsubishi Electric Corp | Management device, task management method, and program |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010079500A (en) * | 2008-09-25 | 2010-04-08 | Fuji Xerox Co Ltd | Operation device, processing system, and operation control program |
JP2014010585A (en) * | 2012-06-29 | 2014-01-20 | Fujitsu Ltd | Data transmission method and data transmission apparatus |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10642599B1 (en) | Preemptive deployment in software deployment pipelines | |
JP5970617B2 (en) | Development support system | |
US8762929B2 (en) | System and method for exclusion of inconsistent objects from lifecycle management processes | |
US8370802B2 (en) | Specifying an order for changing an operational state of software application components | |
US8935395B2 (en) | Correlation of distributed business transactions | |
US11544137B2 (en) | Data processing platform monitoring | |
JP6369170B2 (en) | Execution time estimation apparatus and method | |
US8549536B2 (en) | Performing a workflow having a set of dependancy-related predefined activities on a plurality of task servers | |
JP5075736B2 (en) | System failure recovery method and system for virtual server | |
CN107016480B (en) | Task scheduling method, device and system | |
JP4045991B2 (en) | Policy rule generation method and job operation management method using the same | |
US20070101179A1 (en) | Method for fault handling in a co-operative workflow environment | |
US20170177419A1 (en) | Maintaining state information in a multi-component, event-driven state machine | |
KR20200078328A (en) | Systems and methods of monitoring software application processes | |
US20120096303A1 (en) | Detecting and recovering from process failures | |
US20170270031A1 (en) | Information processing apparatus, test execution method, and computer-readable recording medium | |
JP2009282581A (en) | Business process performing device and business process performing method | |
JP2005258501A (en) | Obstacle influence extent analyzing system, obstacle influence extent analyzing method and program | |
JP7243207B2 (en) | Information processing system, information processing device and program | |
JP2001022709A (en) | Cluster system and computer-readable storage medium storing program | |
US9881046B2 (en) | Recording medium having stored therein process managing program, process managing apparatus and process managing method | |
CN108804239B (en) | Platform integration method and device, computer equipment and storage medium | |
JP5466740B2 (en) | System failure recovery method and system for virtual server | |
WO2022196625A1 (en) | Operation management device, system, and method, and computer-readable medium | |
US9158615B2 (en) | Method and apparatus for managing system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100212 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110527 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20110704 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110705 |
|
AA92 | Notification of invalidation |
Free format text: JAPANESE INTERMEDIATE CODE: A971092 Effective date: 20110719 |