JP2009282581A - Business process performing device and business process performing method - Google Patents

Business process performing device and business process performing method Download PDF

Info

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
Application number
JP2008131364A
Other languages
Japanese (ja)
Inventor
Sae Morishita
紗枝 森下
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2008131364A priority Critical patent/JP2009282581A/en
Publication of JP2009282581A publication Critical patent/JP2009282581A/en
Ceased legal-status Critical Current

Links

Images

Landscapes

  • Hardware Redundancy (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To avoid a failure in performing a business process concerning a loosely-coupled system. <P>SOLUTION: A business process performing device 200 includes: a service standby time calculating part 243 for calculating a service performance standby time by each service 280, 281 under suspension based on a service performance result by the business process stored in a business process performance history storage part 254; a service operation state analyzing part 242 for determining operation states by each service 280, 281 based on the latest service performance result stored in the business process performance history storage part 254, and obtaining the service performance standby time by each service; and a service performance control part 233 for obtaining the operation states and the service performance standby time of each service 280, 281 before performing the services 280, 281, performing the services when the services 280, 281 are under operation, and postponing the performance of the services during the service performance standby time when the services 280, 281 are under suspension. <P>COPYRIGHT: (C)2010,JPO&INPIT

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. Patent document 1 is an example of such a system.

ところで、密結合なシステムには、システム間の関連度合いが深いことから保守作業が多肢に及び、保守性の低下や開発コストの増大という欠点がある。
これに対して、近年、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がサービスへ稼動状態の問合せを行い、サービスの稼動状態情報を保持し、ビジネスプロセスからの問合せに対してサービスの稼動状態情報を提供することができる。
特開2007−25785号公報
In this loosely coupled system, a method using a UDDI (Universal Description, Discovery and Integration) as a storage means can be considered as a means for the business process to detect the service operating state. UDDI is a repository in which information such as service processing contents and interfaces for using services is registered. When a business process uses a service, it queries the UDDI about the service information and obtains various information. The UDDI makes an inquiry about the operating status to the service, holds the operating status information of the service, and can provide the operating status information of the service in response to the inquiry from the business process.
JP 2007-25785 A

ところで、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 process execution apparatus 200 is as follows.
The client 270 transmits a business process 1 processing request 100 to the business process execution apparatus 200. The business process execution unit 230 of the business process execution apparatus 200 generates business process 1 instances 231 and 232 for each business process 1 processing request 100.

このビジネスプロセス1インスタンス231、232は、ビジネスプロセスの進捗状態やビジネスプロセス内部で使用する変数の値といった処理要求毎の実行状態を保持し、実行状態とビジネスプロセス1定義251の内容に従って処理を行なう処理部であり、受信したビジネスプロセス1処理要求100毎にビジネスプロセス実行部230が生成する。そして、ビジネスプロセス1インスタンス231、232はビジネスプロセス1定義251に従ってサービスA280およびサービスB281を実行する。   These business process 1 instances 231 and 232 hold the execution state for each processing request such as the progress state of the business process and the value of a variable used inside the business process, and perform processing according to the execution state and the contents of the business process 1 definition 251. It is a processing unit, and is generated by the business process execution unit 230 for each received business process 1 processing request 100. The business process 1 instances 231 and 232 execute the service A 280 and the service B 281 in accordance with the business process 1 definition 251.

従来の方法では、仮にサービスB281が何らかの障害により停止している場合、ビジネスプロセス1インスタンス231、232の双方がサービスB281の実行に失敗し、インスタンスが異常終了してしまう。ビジネスプロセスインスタンスが異常終了した場合、インスタンスの進捗状態やサービスの実行状態等を照らし合わせて回復処理を行なう必要がある。
このように、例外が発生した場合、ビジネスプロセスの復旧作業にはサービスの進捗状態とビジネスプロセスの進捗状態の照らし合わせなど、システム管理者による複雑な手作業が必要であり、運用コストの増大を招来している。
In the conventional method, if the service B281 is stopped due to some failure, both the business process 1 instances 231 and 232 fail to execute the service B281, and the instances end abnormally. When a business process instance ends abnormally, it is necessary to perform a recovery process by comparing the progress state of the instance and the execution state of the service.
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 client 1850 that transmits a processing request to a business process, a business process execution device 200 that executes the business process, and a plurality of services 1860 to 1863 that perform processing in response to the processing request from the business process. Has been. The business process execution apparatus 200 is provided with three business processes: an order business process 1851, an estimate acquisition business process 1852, and a purchase business process 1853.

発注ビジネスプロセス1851は、クライアント1850からの発注依頼を受けて、見積取得ビジネスプロセス1852、購入ビジネスプロセス1853を実行することで発注処理を行なう。見積取得ビジネスプロセス1852は、サービスa 1860、サービスb1861を実行して見積取得処理を行なう。購入ビジネスプロセス1853は納期確認サービス1862、注文サービス1863を実行して購入処理を行なう。   The ordering business process 1851 receives an ordering request from the client 1850 and executes an estimate acquisition business process 1852 and a purchase business process 1853 to perform ordering processing. The estimate acquisition business process 1852 executes service a 1860 and service b 1861 to perform estimate acquisition processing. The purchase business process 1853 executes a delivery date confirmation service 1862 and an order service 1863 to perform purchase processing.

ここで、注文サービス1863が何らかの障害によって停止した場合、注文サービス1863を実行しようとした購入ビジネスプロセス1853で例外が発生する。さらに、購入ビジネスプロセス1853を利用する発注ビジネスプロセス1851でも、購入ビジネスプロセス1853の実行に失敗し、例外が発生する。このように、ビジネスプロセスが多段になっている場合、1つのサービスの実行失敗によって複数のビジネスプロセスで例外が発生し、例外の連鎖が生じる。   Here, when the order service 1863 is stopped due to some trouble, an exception occurs in the purchase business process 1853 that tried to execute the order service 1863. Further, even in the ordering business process 1851 using the purchasing business process 1853, execution of the purchasing business process 1853 fails and an exception occurs. In this way, when business processes are multi-staged, exceptions occur in a plurality of business processes due to execution failure of one service, resulting in a chain of exceptions.

図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 client 1850 that sent the processing request to the ordering business process is notified of the processing failure. The work of sending an e-mail can be considered. Further, regarding the order service 1863 which is the cause of the exception occurrence, it is necessary to confirm the progress of processing in the order service 1863 and perform compensation processing.
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 client 270 that transmits a processing request to the business process execution device 200, a business process execution device 200 that performs processing in response to a processing request from the client 270, and a business process execution device 200. Software A set of services A280 and B281 that perform processing in response to a processing request from.

サービスとは、サービス実行装置上に配備され、ネットワークを介して処理要求を受け取り、実行結果を応答する処理部である。
以下、「サービスを実行する」との表現は、サービス処理要求送信元がサービスへ実行要求を送信し、サービスが要求された処理を実行し、その処理結果をサービス処理要求送信元が受信するまでの一連の処理を意味する。上記サービス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 process execution unit 230 of the business process execution device 200.

ビジネスプロセス実行部230とは、ビジネスプロセス定義に記述された処理を実行する処理部である。
ビジネスプロセス定義とは、複数のサービスの実行、サービスに送信する処理データの生成といったビジネスプロセス実行部230が行なう処理をビジネスプロセス記述言語を用いてフローとして記述したものである。なお、ビジネスプロセス記述言語の一般的な例としては、BPEL(Business Process Execution Language)がある。
図1に示すビジネスプロセス1定義251には、サービスA280およびサービスB281を実行するための処理が記述されている。ビジネスプロセス1定義251の定義内容、およびビジネスプロセス実行部230が実行する処理については後記する。
The business process execution unit 230 is a processing unit that executes processing described in the business process definition.
The business process definition is a description of processing performed by the business process execution unit 230 such as execution of a plurality of services and generation of processing data to be transmitted to the service as a flow using a business process description language. A general example of a business process description language is BPEL (Business Process Execution Language).
The business process 1 definition 251 shown in FIG. 1 describes a process for executing the service A 280 and the service B 281. The definition contents of the business process 1 definition 251 and the processing executed by the business process execution unit 230 will be described later.

<ビジネスプロセス処理システム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 client 270 to the business process execution apparatus 200, the business process processing system S immediately before executing a service by the service execution control unit 233 and the service state management unit 240. Check the operating status of the service, decide whether to execute the service according to the operating status of the service or postpone the execution for a certain period of time, and if postponing, the business process according to the service to be executed and the fault type The service execution standby time calculated from the information stored in the execution history 254 is set.

そして、停止中のサービスの実行を回避して復旧している可能性が高いサービス実行待機時間経過後に当該サービスを実行することにより、ビジネスプロセス実行装置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 process execution device 200 as a whole reduces the number of business process execution failures. ing.
Here, the business process execution history 254 held by the business process execution device 200 is used as a means for the service state management unit 240 to detect the service operating state. Therefore, unlike the conventional case, it is not necessary to have a close coupling in which the business process execution device 200 and each service recognize the mutual location, and the service side notifies the business process execution device 200 of its own operating state.

従って、この構成により、サービス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 process execution device 200, the operating state of the service can be detected from the business process execution device 200 side.
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 business process 1 instance 231 that executes the service B281 immediately after the service B281 stops fails to execute the service B281. When information indicating that the execution has failed is recorded in the business process execution history 254 of the business process execution device 200, the service state management unit 240 analyzes the business process execution history 254 and operates the recorded service B281. Update state. The business process 1 instance 232 that executes the service B281 after the business process 1 instance 231 acquires the operating state of the service B281 from the service state management unit 240, and postpones the service execution for a certain time because the service B281 is stopped.

以上の処理により、従来ではビジネスプロセス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 business process 1 instances 231 and 232, whereas in the case of this business process processing system S, the preceding business process 1 instance 231 has failed in service execution. By using this information, the execution of the service in which the subsequent business process 1 instance 232 is stopped is avoided.
Further, the service state management unit 240 analyzes the service B281 execution failure data recorded in the business process execution history 254 to obtain the service execution standby time of the service B281, and the service execution standby time of the business process 1 instance 231, 232 Set as. Thereby, it is possible to dynamically set an appropriate standby time for each service and each failure type based on the past performance.

<ビジネスプロセス処理システム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 client execution device 201 that issues a processing request for services such as services A280 and B281, a business process execution device 200 that executes the requested processing, and a service execution device 202 that actually executes the service A280. And a service execution device 203 that actually executes the service B281.

ここで、クライアント実行装置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 client execution device 201, the business process execution device 200, and the service execution devices 202 and 203 may be realized as dedicated hardware, or a CPU (Central Processing Unit) However, in the following, a case where the program is realized will be described.
The client execution device 201, business process execution device 200, and service execution devices 202 and 203 are connected to each other via a network 204. The network 204 may be a local network such as a LAN (Local Area Network) or an intranet, or a global network such as the Internet, and is not limited. Needless to say, any number of client execution devices 201 and service execution devices 202 and 203 may exist.

<クライアント実行装置201>
図2に示すように、クライアント実行装置201は、CPU210、主記憶装置211、ネットワークインタフェース213、およびこれらを接続するシステムバス214で構成されている。
主記憶装置211には、必要に応じてCPU210によって、クライアント270が、そのプログラムが実行され配備されている。ネットワークインタフェース213は、CPU210の指示に従って、ネットワーク204を介してネットワーク204上の他の機器と通信を行なう。
但し、図2に示す構成は一例であり、クライアント実行装置201内に複数のクライアント270が配備されていても良い。
<Client execution device 201>
As shown in FIG. 2, the client execution device 201 includes a CPU 210, a main storage device 211, a network interface 213, and a system bus 214 for connecting them.
The main storage device 211 is provided with a client 270 that executes the program by the CPU 210 as necessary. The network interface 213 communicates with other devices on the network 204 via the network 204 in accordance with instructions from the CPU 210.
However, the configuration illustrated in FIG. 2 is an example, and a plurality of clients 270 may be provided in the client execution device 201.

<サービス実行装置202、203>
サービス実行装置202、203は、CPU210、主記憶装置211、ネットワークインタフェース213、およびこれらを接続するシステムバス214で構成されている。
サービス実行装置202の主記憶装置211にはサービスA280が、サービス実行装置203の主記憶装置211には、サービスB281が、必要に応じてそれぞれCPU210によって、対応するプログラムが実行され、配備されている。ネットワークインタフェース213は、CPU210の指示に従って、ネットワーク204を介してネットワーク204上の他の機器と通信を行なう。
但し、図2の構成は一例であり、サービス実行装置202、203内にはサービスA280、サービスB281以外のサービスが配備されていても良い。
<Service execution devices 202 and 203>
The service execution devices 202 and 203 include a CPU 210, a main storage device 211, a network interface 213, and a system bus 214 that connects them.
A service A280 is provided in the main storage device 211 of the service execution device 202, a service B281 is provided in the main storage device 211 of the service execution device 203, and the corresponding programs are executed and deployed by the CPU 210 as necessary. . The network interface 213 communicates with other devices on the network 204 via the network 204 in accordance with instructions from the CPU 210.
However, the configuration in FIG. 2 is an example, and services other than the service A 280 and the service B 281 may be provided in the service execution apparatuses 202 and 203.

<ビジネスプロセス実行装置200>
図2に示すビジネスプロセス実行装置200は、CPU210、主記憶装置211、二次記憶装置212、ネットワークインタフェース213、およびこれらを接続するシステムバス214で構成されている。
主記憶装置211には、CPU210によってビジネスプロセス実行プログラム220が実行され、配備されている。
このように、図2に示す主記憶装置211上に配置されたビジネスプロセス実行プログラム220の各処理部は、二次記憶装置212内にそれぞれ対応する目的プログラムが格納され、必要に応じてCPU210によって、主記憶装置211に読み込まれ実行され、配備される。
<Business process execution device 200>
The business process execution device 200 shown in FIG. 2 includes a CPU 210, a main storage device 211, a secondary storage device 212, a network interface 213, and a system bus 214 that connects them.
A business process execution program 220 is executed and deployed in the main storage device 211 by the CPU 210.
As described above, each processing unit of the business process execution program 220 arranged on the main storage device 211 shown in FIG. 2 stores a corresponding target program in the secondary storage device 212, and is executed by the CPU 210 as necessary. The main memory 211 is read, executed, and deployed.

二次記憶装置212には、ビジネスプロセス1定義251、サービスAインタフェース定義252(以下、サービスAIF定義252と称す)、サービスBインタフェース定義253(以下、サービスBIF定義253と称す)、ビジネスプロセス実行履歴254、稼動状態管理テーブル261、待機時間管理テーブル262等が配置されている。
また、二次記憶装置212は、ビジネスプロセス実行装置200に内蔵されたメモリやハードディスクなどの記憶装置の他、外付けのメモリやハードディスク装置、ネットワークを介して接続されたデータベース、データベースサーバ等によって実現されていても良い。
ネットワークインタフェース213は、CPU210の指示に従って、ネットワーク204を介してネットワーク204上の他の機器と通信を行なう。
The secondary storage device 212 includes business process 1 definition 251, service A interface definition 252 (hereinafter referred to as service AIF definition 252), service B interface definition 253 (hereinafter referred to as service BIF definition 253), business process execution history. An operation state management table 261, a standby time management table 262, and the like are arranged.
The secondary storage device 212 is realized by a storage device such as a memory or a hard disk built in the business process execution device 200, an external memory or hard disk device, a database connected via a network, a database server, or the like. May be.
The network interface 213 communicates with other devices on the network 204 via the network 204 in accordance with instructions from the CPU 210.

<ビジネスプロセス実行プログラム220>
図2に示すように、ビジネスプロセス実行プログラム220は、ビジネスプロセス実行部230とサービス状態管理部240とを有し構成されている。
ビジネスプロセス実行部230は、図1に示すように、クライアント270からのビジネスプロセス1処理要求100に応じて、ビジネスプロセス1定義251に記述された処理を実行し、処理状態や処理結果をビジネスプロセス実行履歴254として記録する処理部である。
<Business process execution program 220>
As shown in FIG. 2, the business process execution program 220 includes a business process execution unit 230 and a service state management unit 240.
As shown in FIG. 1, the business process execution unit 230 executes the process described in the business process 1 definition 251 in response to the business process 1 process request 100 from the client 270, and displays the process status and process result as a business process. A processing unit that records the execution history 254.

図2に示すように、ビジネスプロセス実行部230は、ビジネスプロセス1インスタンス231、232、およびサービス実行制御部233で構成されている。但し、図2に示す構成は一例であり、ビジネスプロセス実行部230にはビジネスプロセス1定義251以外のビジネスプロセス定義が複数配備されていても良いし、各定義を実行するビジネスプロセスインスタンスが任意の複数存在していても良い。   As shown in FIG. 2, the business process execution unit 230 includes business process 1 instances 231 and 232 and a service execution control unit 233. However, the configuration shown in FIG. 2 is an example, and a plurality of business process definitions other than the business process 1 definition 251 may be deployed in the business process execution unit 230, and a business process instance that executes each definition is arbitrary. There may be more than one.

<ビジネスプロセス1定義251の処理内容>
図2に示すビジネスプロセス1定義251内に本第1実施形態で使用するビジネスプロセス1定義251の処理内容の一例を示す。ビジネスプロセス1定義251は、ビジネスプロセス実行部230が実行する処理の手順をビジネスプロセス定義言語を用いてフローとして記述したものである。
ビジネスプロセス定義は、複数のステップで構成されており、各ステップはビジネスプロセス定義内で一意となる識別子であるステップID、ステップで行なう処理の種別を表すステップ種別、および処理内容の詳細を表すステップ詳細情報を含んでいる。
<Processing contents of business process 1 definition 251>
An example of the processing contents of the business process 1 definition 251 used in the first embodiment is shown in the business process 1 definition 251 shown in FIG. The business process 1 definition 251 describes a procedure of processing executed by the business process execution unit 230 as a flow using a business process definition language.
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 business process 1 definition 251 is a step ID1 that receives the business process 1 processing request 100 shown in FIG. 1 and extracts data and has a step type that is the start step, step 300, and a step ID2 that executes the service A280, and the step type Step 301 is a service execution step, Step ID3 is for executing service B281 and the step type is Step 302 for service execution step, and Step ID4 is a post-processing step ID4 and Step 303 is the end step. It is configured. However, the above content is an example of a business process definition, and it is a matter of course that any processing flow may be defined as long as it can be described in the business process definition language.

図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 business process 1 processing request 100 shown in FIG. 1 is data transmitted when the client 270 requests the business process execution unit 230 of the business process execution device 200 to execute the business process 1 definition 251 of the business process execution device 200. .
The business process 1 processing request 100 (see FIG. 1) includes an update time threshold value 101 used in the service execution control unit 233, in addition to the business process definition name to be executed and the input data required to execute the business process 1 definition 251. And a maximum waiting time 102. As shown in FIG. 1, the business process 1 instances 231 and 232 pass the update time threshold value 101 and the maximum standby time 102 to the service execution control unit 233 in addition to information necessary for service execution, and request the service execution. A method of using the update time threshold 101 and the maximum standby time 102 in the service execution control unit 233 will be described later.

<ビジネスプロセス実行履歴254>
図3は、ビジネスプロセス実行履歴254の構成の一例を示す図である。
図3に示すビジネスプロセス実行履歴254は、データベース、ファイル等の記憶部であり、ビジネスプロセス定義の識別子であるビジネスプロセス名400、処理を行なったビジネスプロセスインスタンスの識別子であるインスタンスID401、処理対象ステップの識別子であるステップID402、ステップID402のステップのステップ種別であるステップ種別403、ビジネスプロセスインスタンスによるステップID402のステップの処理開始時刻であるステップ開始時刻404、および処理終了時刻であるステップ終了時刻405、ステップの処理状態であるステップ状態406、処理結果である実行結果407、ステップ処理時に障害が発生した場合の発生した障害種別である障害種別408で構成されている。
但し、図3に示す構成は一例であり、図3に示した情報以外の情報が含まれていても良い。
<Business process execution history 254>
FIG. 3 is a diagram showing an example of the configuration of the business process execution history 254. As shown in FIG.
The business process execution history 254 shown in FIG. 3 is a storage unit such as a database or a file, a business process name 400 that is an identifier of a business process definition, an instance ID 401 that is an identifier of a business process instance that has performed processing, and a processing target step Step ID 402, step type 403 that is the step type of the step of step ID 402, step start time 404 that is the process start time of step ID 402 by the business process instance, and step end time 405 that is the process end time, It consists of a step state 406 that is a step processing state, an execution result 407 that is a processing result, and a failure type 408 that is the type of failure that occurred when a failure occurred during step processing.
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 execution control unit 233>
The service execution control unit 233 shown in FIGS. 1 and 2 is a processing unit that executes a service at an appropriate timing according to the service operating state, and performs the service execution by the business process 1 instances 231 and 232. Details of the processing in the control unit 233 will be described later.

<サービス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へ送信する。
<Service AIF definition 252 and Service BIF definition 253>
The service AIF definition 252 and the service BIF definition 253 shown in FIGS. 1 and 2 describe information necessary for executing the service A280 and the service B281, respectively. The information necessary for executing the service is information such as a destination URL of the service processing request, a data structure of data to be included in the service processing request, and a data structure of result data included in a response from the service. .
As shown in FIG. 1, when executing the service A280, the service execution control unit 233 refers to the service AIF definition 252 and generates a service A processing request 110 including the processing data 111 and transmits it to the service A280. Similarly, when the service B281 is executed, a service B processing request 120 including the processing data 121 is generated with reference to the service BIF definition 253 and transmitted to the service B281.

サービスからの応答に含まれるデータは、サービスの実行に成功した場合と失敗した場合とで異なる。
サービス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 A process response 112 includes a process result 113 indicating that the process has been successful and result data 114 that is the process result data. On the other hand, when execution of service B fails, the service B processing response 122 includes a processing result 123 indicating that the processing has failed, and a failure type 124 indicating a failure type such as service B stop or service B execution device stop. Is included.
The business process 1 definition 251, service AIF definition 252, and service BIF definition 253 are created by a business process developer using a tool for a business process development environment and deployed to the business process execution apparatus 200. Since the development tool and the deployment method can be realized by the conventional technology, detailed description thereof is omitted.

<サービス状態管理部240>
図1、図2に示すサービス状態管理部240は、サービスの稼動状態など、サービスの実行制御に必要な情報を保持し、サービス実行制御部233からの問い合わせに応じて情報を提供する処理部であり、サービス状態管理の処理を行なうサービス状態判定部241を有し構成されている。
サービス状態判定部241は、図1に示すように、サービスの最新の稼動状態を記録するサービス稼動状態解析部242およびサービスを実行するまでの待機時間を計算し記録するサービス待機時間計算部243で構成されている。
サービス稼動状態解析部242は、ビジネスプロセス実行履歴254を解析し、サービスの最新の稼動状態を稼動状態管理テーブル261へ記録する処理部である。
<Service status management unit 240>
The service state management unit 240 shown in FIG. 1 and FIG. 2 is a processing unit that holds information necessary for service execution control, such as service operation status, and provides information in response to an inquiry from the service execution control unit 233. And a service state determination unit 241 for performing service state management processing.
As shown in FIG. 1, the service state determination unit 241 includes a service operation state analysis unit 242 that records the latest operation state of a service, and a service standby time calculation unit 243 that calculates and records a standby time until the service is executed. It is configured.
The service operation state analysis unit 242 is a processing unit that analyzes the business process execution history 254 and records the latest operation state of the service in the operation state management table 261.

図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 service name 500 that is an identifier of the service, an operation state 501 that indicates the operation state of the service, a failure type 502 that indicates the cause when the service is stopped, and the service has caused the failure In this case, the service execution control unit 233 (see FIG. 1) includes a waiting time 503 that is a time interval for waiting for service execution, and an update time 504 that is an update time of each entry.

図1に示すサービス待機時間計算部243は、ビジネスプロセス実行履歴254に記録されるログの実行履歴情報を解析し、サービスを実行するまでの待機時間を算出し、待機時間管理テーブル262へ記録する処理部である。   The service standby time calculation unit 243 illustrated in FIG. 1 analyzes the log execution history information recorded in the business process execution history 254, calculates the standby time until the service is executed, and records it in the standby time management table 262. It is a processing unit.

図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 service name 600 that is a service identifier, a failure type 601 that indicates a cause of a failure that has occurred in the service, and a service execution control when a failure of the failure type 601 occurs in the service The unit 233 includes a waiting time 602 that is a time interval for waiting for service execution.

<<ビジネスプロセス実行部230によるビジネスプロセス実行処理>>
次に、図1、図2に示すビジネスプロセス実行部230によるビジネスプロセス実行処理について図6に従って説明する。
なお、図6は、ビジネスプロセス実行部230によるビジネスプロセス実行処理の流れを示すフローチャートである。
ビジネスプロセス実行部230は、本来、クライアント270からの複数のビジネスプロセス実行要求を同時に受け付け、複数のビジネスプロセスインスタンスを並列に実行することができるが、図6では1つの処理要求を受け付けた場合の処理の流れを示す。図6を参照して、
<< Business Process Execution Processing by Business Process Execution Unit 230 >>
Next, business process execution processing by the business process execution unit 230 shown in FIGS. 1 and 2 will be described with reference to FIG.
FIG. 6 is a flowchart showing the flow of business process execution processing by the business process execution unit 230.
The business process execution unit 230 originally can simultaneously receive a plurality of business process execution requests from the client 270 and execute a plurality of business process instances in parallel. In FIG. The flow of processing is shown. Referring to FIG.

(図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 700 in FIG. 6) As shown in FIG. 1, the business process execution unit 230 receives the business process 1 processing request 100 transmitted from the client 270.
(Step 701) As shown in FIG. 1, the business process execution unit 230 generates a business process 1 instance 231 having an instance ID: 10001 in response to the business process 1 processing request 100.
(Step 702) The business process 1 instance 231 reads the business process 1 definition 251 as shown in FIG.
(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 business process 1 instance 231 acquires the step type of step ID i from the business process 1 definition 251 (see FIG. 1), determines whether or not the step type is “end step”, and the step type is “end”. If “step”, the process proceeds to step 715; otherwise, the process proceeds to step 705.
(Step 705) As shown in FIG. 1, the business process 1 instance 231 records the following data in the business process execution history 254 (see FIG. 3). Business process name 400: business process 1, instance ID 401: 10001, step ID 402: i, step type 403: step type of step IDi, step start time 404: current time, step end time 405: character string “-”, step state 406: Character string “executing”, execution result 407: Character string “−”, Failure type 408: Character string “−”.

(ステップ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 704 is “service execution step”. If it is “service execution step”, the process proceeds to step 707. Otherwise, the process proceeds to step 712. To do.
(Step 707) The business process 1 instance 231 requests the service execution control unit 233 (see FIG. 1) for service execution processing. Details of this processing will be described later.
(Step 708) As shown in FIG. 1, a response from the service is received from the service execution control unit 233, and it is checked whether an exception has occurred. That is, the processing result 113 included in the service A processing response 112 is analyzed, and if the service has been successfully executed, the process proceeds to step 709, and if it has failed, the process proceeds to step 714.

(ステップ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 business process 1 instance 231 shown in FIG. 1 updates the data recorded in the business process execution history 254 (see FIG. 3) in step 705 with the following data. Step end time 405: current time, step state 406: character string “completed”, execution result 407: content of variable r, failure type 408: content of variable e.
(Step 711) As shown in FIG. 1, the business process 1 instance 231 acquires the step ID of the next step after the step ID i from the business process 1 definition 251, stores it in i, and proceeds to step 704.

(ステップ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 business process 1 instance 231 shown in FIG. 1 updates the data recorded in the business process execution history 254 (see FIG. 3) in step 705 with the following data, and ends. Step end time 405: current time, step state 406: character string “error end”, execution result 407: content of variable r, failure type 408: content of variable e.

(ステップ715) 図1に示すビジネスプロセス1インスタンス231はステップ705でビジネスプロセス実行履歴254(図3参照)に記録したデータを以下のデータで更新し、処理を終了する。ステップ終了時刻405:現在時刻、ステップ状態406:文字列"完了"、実行結果407:文字列"−"、障害種別408:文字列"−"。   (Step 715) The business process 1 instance 231 shown in FIG. 1 updates the data recorded in the business process execution history 254 (see FIG. 3) in step 705 with the following data, and ends the processing. Step end time 405: current time, step state 406: character string “completed”, execution result 407: character string “−”, failure type 408: character string “−”.

<<サービス実行制御部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 execution control unit 233 >>
Next, service execution control processing by the service execution control unit 233 shown in FIGS. 1 and 2 will be described with reference to FIG.
FIG. 7 is a flowchart showing details of service execution control processing by the service execution control unit 233 in step 707 of FIG.
The service execution control unit 233 obtains the operating status of services such as the service A280 and the service B281 requested to be executed by the business process 1 instance 231 and 232 from the service status management unit 240 (see FIG. 1). If the service is operating, the service is executed. If the service is not operating and stopped, the service is postponed for the standby time 503 in the operation state management table 261 shown in FIG.

サービス実行制御部233の動作を制御するパラメータとして図1に示す更新時刻閾値101および最大待機時間102を指定することができる。
更新時刻閾値101は、図4に示す稼動状態管理テーブル261が保持する情報の鮮度に対する制約であり、稼動状態管理テーブル261に登録された情報が更新時刻閾値101よりも古い情報であった場合は無効と判断し、稼動状態管理テーブル261が示すサービスの稼動状態501が"停止"であってもサービスを実行する。
The update time threshold 101 and the maximum standby time 102 shown in FIG. 1 can be designated as parameters for controlling the operation of the service execution control unit 233.
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 service operation state 501 indicated by the operation state management table 261 is “stopped”.

最大待機時間102は、サービス実行制御部233での待機時間の上限値であり、稼動状態管理テーブル261の待機時間503が最大待機時間102を超える場合、処理に用いる実際の待機時間として最大待機時間102を採用する。これにより、レスポンスタイムに対する要求が高いクライアント270(図1、図2参照)は、最大待機時間102を短く設定することでサービス実行制御部233にてクライアント270の想定よりも長時間待機してしまうことを防ぐことができる。   The maximum standby time 102 is an upper limit value of the standby time in the service execution control unit 233. When the standby time 503 in the operation state management table 261 exceeds the maximum standby time 102, the maximum standby time is used as an actual standby time used for processing. Adopt 102. As a result, the client 270 (see FIGS. 1 and 2) that has a high response time request waits for a longer time than the client 270 expects in the service execution control unit 233 by setting the maximum standby time 102 short. Can be prevented.

本実施形態では、図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 maximum standby time 102 are set by the client 270 and included in the business process 1 processing request 100 and transmitted to the business process execution unit 230. The update time threshold 101 and the maximum standby time 102 may be set to different values for each service.
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 business process 1 definition 251 or an operator sets in the business process execution unit 230, and the setting method is not limited. .

図1に示すビジネスプロセス1インスタンス231、232は、サービス実行制御部233へ処理を依頼する際、サービスA280、B281へそれぞれ送信する処理データ111、121、実行対象ビジネスプロセス定義名、実行対象サービス名、インスタンスID、ステップID、ステップ開始時刻、更新時刻閾値101、最大待機時間102といったサービスの実行に必要な情報をサービス実行制御部233へ渡す。そして、サービス実行制御部233は、これらの情報を用いて以下の処理を行なう。図7を参照し、   The business process 1 instances 231 and 232 shown in FIG. 1 send the processing data 111 and 121, the execution target business process definition name, and the execution target service name to the services A280 and B281, respectively, when requesting the processing to the service execution control unit 233. Information necessary for service execution, such as instance ID, step ID, step start time, update time threshold 101, and maximum standby time 102, is passed to the service execution control unit 233. Then, the service execution control unit 233 performs the following processing using these pieces of information. With reference to FIG.

(ステップ800)図4に示す稼動状態管理テーブル261から、実行対象サービスの稼動状態501、更新時刻504を取得する。
(ステップ801)ステップ800で取得した稼動状態501が停止中か否か判断し、停止中であればステップ802へ移行し、稼動中または該当するデータがなければステップ807へ移行する。
(ステップ802)現在時刻からステップ800で取得した更新時刻504を減算した値が、更新時刻閾値101より小さいか否か判断され、小さければステップ803へ移行する一方、以上であればステップ807へ移行する。
(ステップ803)実行対象サービスの待機時間を図4示す稼動状態管理テーブル261の待機時間503から取得し、待機時間を表す変数tへ格納する。
(Step 800) The operating status 501 and update time 504 of the execution target service are acquired from the operating status management table 261 shown in FIG.
(Step 801) It is determined whether or not the operating state 501 acquired in Step 800 is stopped. If it is stopped, the process proceeds to Step 802, and if it is operating or there is no corresponding data, the process proceeds to Step 807.
(Step 802) It is determined whether or not the value obtained by subtracting the update time 504 acquired in Step 800 from the current time is smaller than the update time threshold 101. If smaller, the process proceeds to Step 803. To do.
(Step 803) The standby time of the execution target service is acquired from the standby time 503 of the operating state management table 261 shown in FIG. 4, and stored in the variable t representing the standby time.

(ステップ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 803 is smaller than the maximum standby time 102 (see FIG. 1), the process proceeds to step 806, and if it is greater, the process proceeds to step 805.
(Step 805) The maximum standby time 102 is stored in the standby time t.
(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 service AIF definition 252 of the execution target service and the information acquired from the business process instance such as the business process 1 instance 231. A service processing request is generated, transmitted to a service such as service A280, and a response is received.

<<サービス待機時間計算部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 time calculation unit 243 >>
Next, update processing of the standby time management table 262 (see FIG. 5) by the service standby time calculation unit 243 shown in FIGS. 1 and 2 will be described with reference to FIG.
FIG. 8 is a flowchart showing a flow of processing in which the service standby time calculation unit 243 of the service state determination unit 241 shown in FIG. 1 analyzes the business process execution history 254 and updates the standby time management table 262.
In the present embodiment, the processing shown in FIG. 8 is executed by detecting the update of the business process execution history 254 executed in step 705, step 710, step 711, and step 714 in FIG. 6, but this timing is an example. For example, only the update in steps 710 and 714 may be detected and the process of FIG. 8 may be performed, or the process of FIG. 8 may be performed at regular intervals regardless of the process of FIG.

また、本実施形態では図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 process execution history 254. Referring to FIG.

(ステップ900)図1に示すサービス状態判定部241が、ビジネスプロセス実行履歴254の更新を検知する。
(ステップ901)サービス状態判定部241が図3に示すビジネスプロセス実行履歴254に格納される情報を取得する。
(Step 900) The service state determination unit 241 shown in FIG. 1 detects the update of the business process execution history 254.
(Step 901) The service state determination unit 241 acquires information stored in the business process execution history 254 shown in FIG.

(ステップ902)図1に示すサービス待機時間計算部243がビジネスプロセス実行履歴254を解析してサービス毎、障害種別毎にサービス実行待機時間を取得する。
サービス毎、障害種別毎のサービス実行待機時間は、ビジネスプロセス実行履歴254から以下のように計算する。あるサービスについて、サービスの実行結果が"失敗"のエントリのステップ開始時刻Tstartを取得する。次に、同一サービスの実行結果が"成功"で、ステップ終了時刻TendがTstartよりも新しく、かつ最も時刻が近いエントリを検索する。TendからTstartを引いた値が、該サービスの該障害種別によるサービス実行不可であった時間の1データにあたる。このようにして、サービス毎、障害種別毎にサービス実行不可時間を取得し、その平均値をサービス毎、障害種別毎のサービス実行待機時間とする。
(Step 902) The service standby time calculation unit 243 shown in FIG. 1 analyzes the business process execution history 254 and acquires the service execution standby time for each service and each failure type.
The service execution standby time for each service and each failure type is calculated from the business process execution history 254 as follows. For a service, obtain the step start time Tstart of the entry whose service execution result is “failure”. Next, an entry having the same service execution result “success”, a step end time Tend newer than Tstart, and the closest time is searched. A value obtained by subtracting Tstart from Tend corresponds to one data of a time when the service cannot be executed due to the failure type of the service. In this way, the service execution impossible time is acquired for each service and each failure type, and the average value is set as the service execution standby time for each service and each failure type.

図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 entry 421 that the service execution of the service A 280 has failed. At this time, the failure type 408 is “service stop”, and the step start time 404 is 16:00:02. The entry whose service execution result of the service A280 closest to the entry 421 is successful is the entry 425, and the step end time 405 at this time is 16:10:35. From the above, one data of the service non-executable time in the failure type “service stop” of the service A280 is 16: 10: 35-16: 00: 02 = 10 minutes 33 seconds.

(ステップ903)図1に示すサービス待機時間計算部243が、ステップ902で算出したサービス毎、障害種別毎のサービス実行待機時間を図5に示す待機時間管理テーブル262の待機時間602へ記録する。   (Step 903) The service standby time calculator 243 shown in FIG. 1 records the service execution standby time for each service and failure type calculated in Step 902 in the standby time 602 of the standby time management table 262 shown in FIG.

<<サービス稼動状態解析部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 state analysis unit 242 >>
Next, update processing of the operation state management table 261 by the service operation state analysis unit 242 illustrated in FIGS. 1 and 2 will be described with reference to FIG.
FIG. 9 is a flowchart showing a flow of processing in which the service operation state analysis unit 242 of the service state determination unit 241 (see FIGS. 1 and 2) analyzes the business process execution history 254 and updates the operation state management table 261. It is.

本実施形態では、図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 process execution history 254 executed in step 705, step 710, step 711, and step 714 in FIG. 6, but this timing is an example. For example, only the update in steps 711 and 714 may be detected and the process of FIG. 9 may be performed, or the process of FIG. 9 may be performed at regular intervals regardless of the process of FIG. Further, in the present embodiment, every business process execution history 254 is read and processed every time the processing of FIG. 9 is performed, but when the processing of FIG. 9 is performed twice or more, from the business process execution history 254 read last time. It is also possible to perform processing by reading only the difference. Referring to FIG.

(ステップ1000)図1に示すサービス状態判定部241が、ビジネスプロセス実行履歴254の更新を検知する。
(ステップ1001)サービス状態判定部241がビジネスプロセス実行履歴254に格納される情報を取得する。
(ステップ1002)図1に示すサービス稼動状態解析部242が、ビジネスプロセス実行履歴254(図3参照)を解析してサービス毎に最新の実行結果407および該エントリ420〜426、…のステップ終了時刻405を取得する。
(Step 1000) The service state determination unit 241 shown in FIG. 1 detects the update of the business process execution history 254.
(Step 1001) The service state determination unit 241 acquires information stored in the business process execution history 254.
(Step 1002) The service operation state analysis unit 242 shown in FIG. 1 analyzes the business process execution history 254 (see FIG. 3), and the latest execution result 407 and the step end times of the entries 420 to 426,. Get 405.

(ステップ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 service execution result 407 is successful. If the execution result 407 is “failure”, the process proceeds to step 1004, and if “success”, the process proceeds to step 1007.
(Step 1004) The character string “stop” is stored in the variable s representing the operating state. Further, the failure type 408 of the entry acquired in step 1002 is stored in the variable e representing the failure type.
(Step 1005) The service operating state analysis unit 242 acquires the standby time 602 for the failure type of the service from the standby time management table 262 shown in FIG. 5, and stores it in the variable t representing the standby time. If there is no corresponding entry in the standby time management table 262, the default value set by the system operator is stored in the variable t representing the standby time.

(ステップ1006)図1に示すサービス稼動状態解析部242が、稼動状態管理テーブル261(図4参照)へサービス名500としてステップ1002で取得した各サービスのサービス名、稼動状態501として変数s、障害種別502として変数e、待機時間503として変数t、更新時刻504としてステップ1002で取得したステップ終了時刻405をそれぞれ格納し、終了する。   (Step 1006) The service operation state analysis unit 242 shown in FIG. 1 acquires the service name of each service acquired in Step 1002 as the service name 500 in the operation state management table 261 (see FIG. 4), the variable s, the failure as the operation state 501 The variable e is stored as the type 502, the variable t is set as the standby time 503, and the step end time 405 acquired in step 1002 is stored as the update time 504.

(ステップ1007) 図1に示すサービス稼動状態解析部242が、稼動状態を表す変数sに文字列"稼動"を、障害種別を表す変数eへ文字列"−"を、待機時間を表す変数tに文字列"−"をそれぞれ格納し、ステップ1006へ移行する。
このように、第1実施形態によるサービス実行制御部233およびサービス状態管理部240によれば、疎結合なシステムにおいて処理要求送信元であるビジネスプロセス実行装置200(図1、図2参照)においてサービスA280等の各サービスの稼動状態を検知することができる。
(Step 1007) The service operating state analysis unit 242 shown in FIG. 1 sets the character string “active” in the variable s indicating the operating state, the character string “−” in the variable e indicating the failure type, and the variable t indicating the standby time. Each of the character strings “-” is stored in, and the process proceeds to step 1006.
As described above, according to the service execution control unit 233 and the service state management unit 240 according to the first embodiment, the service is executed in the business process execution apparatus 200 (see FIGS. 1 and 2) that is the processing request transmission source in the loosely coupled system. The operating status of each service such as A280 can be detected.

また、サービスの稼動状態に応じてサービスを直ぐに実行するか、または一定時間待機した後に実行するかを判断する。待機する場合は、図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 process execution history 254 shown in FIG. 3 is set as the standby time 602 (see FIG. 5).
As a result, the business process execution apparatus 200 as a whole can reduce the number of business process execution failures.

以下、例外失敗回数低減効果について述べる。
図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 business process 1 instance executes service B281 and fails to execute because service B281 is stopped. The service state management unit 240 detects that the service B281 is stopped from the business process execution history 254, and postpones the execution of the service B281 by another instance.

図5に示す待機時間管理テーブル262のサービスBに関するエントリの待機時間602から、サービスB281が実行可能となるまで平均的に30秒かかっていることがわかる。サービス実行制御部233は、インスタンスによるサービスB281の実行を30秒間延期することで、過去の実績から停止していると推測される期間、サービスB281の実行を回避する。これによりサービスB281の実行失敗回数を低減することができる。30秒後にサービスB281を実行し、失敗した場合は、その情報を元に延期時間が延長される。   From the standby time 602 of the entry related to service B in the standby time management table 262 shown in FIG. 5, it can be seen that it takes 30 seconds on average until the service B 281 becomes executable. The service execution control unit 233 avoids the execution of the service B281 for a period estimated to be stopped from the past performance by postponing the execution of the service B281 by the instance for 30 seconds. As a result, the number of execution failures of the service B281 can be reduced. If the service B281 is executed after 30 seconds and fails, the postponement time is extended based on the information.

本第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 business process 2 instance 1201 requests the service execution control unit 233 to execute the business process 1 definition 251, the business process 1 is executed only on the deployment state of the business process 1 itself. Execute. However, if the service B281 is stopped due to some failure, the execution of the business process 1 fails and the business process 2 instance 1201 ends abnormally.

そのため、ビジネスプロセス定義から他のビジネスプロセス定義を実行する場合、実行される側のビジネスプロセス定義の実行可否を判定するためには、実行される側のビジネスプロセス定義の配備状態に加え、実行される側のビジネスプロセス定義が利用する各サービスの稼動状態も確認する必要がある。   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 business process 2 definition 1220 that executes the business process 1 definition 251 and applies the present invention to processing when executing another business process definition from one business process definition. It is possible.
In the business process processing system 2S of the second embodiment, as shown in FIG. 10, the client 1240 transmits a business process 2 processing request 1101 to the business process execution unit 230. The business process execution unit 230 generates a business process 2 instance 1201. The business process 2 instance 1201 executes processing according to the business process 2 processing request 1101 and the business process 2 definition 1220. The business process 2 definition 1220 executes the business process 1 definition 251, and the business process 1 definition 251 executes the service A 280 and the service B 281 as in the first embodiment. Since the operation related to the business process 1 definition 251 is the same as that of the first embodiment, the description thereof is omitted.

<<第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 dependency analysis unit 1210 newly provided in the service state management unit 240 analyzes the business process 1 definition 251, and the business process 1 definition A list of services used by 251 is recorded in the dependency management table 1232. The service execution control unit 233 inquires the deployment status of the business process 1 definition 251 immediately before the business process 1 definition 251 is executed.

ビジネスプロセス状態判定部1211はビジネスプロセス1定義251自体の配備状態だけでなく、ビジネスプロセス1定義251が利用するサービスの稼動状態を含めて実行可能かどうかを判定し、サービス実行制御部233へ回答する。
これにより、あるビジネスプロセスから他のビジネスプロセスを実行するような複雑な構成においても適切に実行可否を判定することができる。また、ビジネスプロセスとサービスの依存関係を解析する際には、必要以上にビジネスプロセスの稼動率を低く判定することを回避するため、条件分岐などビジネスプロセスの構造を考慮することとしている。
The business process status determination unit 1211 determines whether or not the business process 1 definition 251 itself can be executed, including not only the deployment status of the business process 1 definition 251 itself, but also answers to the service execution control unit 233 To do.
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 client execution device 201 that performs a processing request, a business process execution device 200 that executes the processing, and services A280 and B281 related to the processing request. It comprises service execution devices 202 and 203 to be executed.

クライアント実行装置201、ビジネスプロセス実行装置200、およびサービス実行装置202、203上に配置されている全ての処理部は専用のハードウェアとして実現されていても良いし、CPUによって実行されるプログラムとして実現されていても良いが、以下ではプログラムとして実現した場合について説明する。
クライアント実行装置201、ビジネスプロセス実行装置200、サービス実行装置202、203は、ネットワーク204を介して接続されている。ネットワーク204はLANやイントラネットなどのローカルネットワークであっても、インターネットなどのグローバルネットワークであってもよい。また、クライアント実行装置201、サービス実行装置202、203は複数台存在しても良い。
All processing units arranged on the client execution device 201, the business process execution device 200, and the service execution devices 202 and 203 may be realized as dedicated hardware or as a program executed by the CPU. However, a case where it is realized as a program will be described below.
The client execution device 201, business process execution device 200, and service execution devices 202 and 203 are connected via a network 204. The network 204 may be a local network such as a LAN or an intranet, or a global network such as the Internet. Further, a plurality of client execution devices 201 and service execution devices 202 and 203 may exist.

クライアント実行装置201については、第1実施形態とほぼ同様であるが、主記憶装置211にクライアント1240が配備されている点のみ異なる。図10に示すように、クライアント1240は、ビジネスプロセス実行装置200へビジネスプロセス2処理要求1101を送信する処理部であり、CPU210によって対応するプログラムが実行され、配備されている。
図11に示すサービス実行装置202、203については第1実施形態と同様の構成であるため、説明を省略する。
The client execution device 201 is substantially the same as that of the first embodiment, except that the client 1240 is provided in the main storage device 211. As illustrated in FIG. 10, the client 1240 is a processing unit that transmits a business process 2 processing request 1101 to the business process execution apparatus 200, and a corresponding program is executed and deployed by the CPU 210.
Since the service execution apparatuses 202 and 203 shown in FIG. 11 have the same configuration as that of the first embodiment, description thereof is omitted.

<ビジネスプロセス実行装置200>
図11に示すように、ビジネスプロセス実行装置200は、主記憶装置211内のビジネスプロセス実行部230にビジネスプロセス2インスタンス1201、ビジネスプロセス1インスタンス1202を設けている。また、サービス状態管理部240内に第2実施形態による依存関係解析部1210およびビジネスプロセス状態判定部1211を設けている。
なお、主記憶装置211内のビジネスプロセス実行部230、サービス状態管理部240等の各処理部は、ビジネスプロセス実行プログラム220がCPU210によって実行され、配備されている。
<Business process execution device 200>
As illustrated in FIG. 11, the business process execution device 200 includes a business process 2 instance 1201 and a business process 1 instance 1202 in the business process execution unit 230 in the main storage device 211. Further, the service state management unit 240 is provided with a dependency relationship analysis unit 1210 and a business process state determination unit 1211 according to the second embodiment.
It should be noted that the business process execution program 220 is executed by the CPU 210 in each processing unit such as the business process execution unit 230 and the service state management unit 240 in the main storage device 211 and is deployed.

加えて、二次記憶装置212に、ビジネスプロセス2定義1220、ビジネスプロセス1インタフェース定義1221(以下、ビジネスプロセス1IF定義1221と称す)、ビジネスプロセス管理テーブル1223、および第2実施形態による依存関係管理テーブル1232を設けている。これ以外の構成については第1実施形態と同様であるため、説明を省略する。
以下、ビジネスプロセス実行装置200の各部の構成について説明する。
In addition, the secondary storage device 212 includes a business process 2 definition 1220, a business process 1 interface definition 1221 (hereinafter referred to as a business process 1IF definition 1221), a business process management table 1223, and a dependency management table according to the second embodiment. 1232 is provided. Since the configuration other than this is the same as that of the first embodiment, the description thereof is omitted.
The configuration of each part of the business process execution device 200 will be described below.

<ビジネスプロセス2インスタンス1201>
図10に示すビジネスプロセス2インスタンス1201は、ビジネスプロセスの進捗状態やビジネスプロセス内部で使用する変数の値といった処理要求毎の実行状態を保持し、実行状態とビジネスプロセス2定義1220の内容に従って処理を行なう処理部であり、ビジネスプロセス実行部230が受信したビジネスプロセス2処理要求1101毎にビジネスプロセス実行部230が生成する。
<Business process 2 instance 1201>
The business process 2 instance 1201 shown in FIG. 10 holds the execution state for each processing request such as the progress state of the business process and the value of the variable used in the business process, and performs processing according to the execution state and the contents of the business process 2 definition 1220. The business process execution unit 230 generates a request for each business process 2 processing request 1101 received by the business process execution unit 230.

<ビジネスプロセス2定義1220>
図11に示すビジネスプロセス2定義1220内に、第2実施形態で使用するビジネスプロセス2定義1220の処理内容の一例を示す。
ビジネスプロセス2定義1220は、ビジネスプロセス2処理要求1101(図10参照)を受け取りデータを抽出するステップID1であってステップ種別が開始ステップであるステップ1300、ビジネスプロセス1定義251を実行するステップID2であってステップ種別がサービス実行ステップであるステップ1301、および後処理を行なうステップID3であってステップ種別が終了ステップであるステップ1302によって構成されている。
<Business process 2 definition 1220>
An example of processing contents of the business process 2 definition 1220 used in the second embodiment is shown in the business process 2 definition 1220 shown in FIG.
The business process 2 definition 1220 is a step ID1 that receives the business process 2 processing request 1101 (see FIG. 10) and extracts data and the step type is the start step, step 1300, and the step ID2 that executes the business process 1 definition 251. Step 1301 is a service execution step, and step 1302 is post-processing step ID3 and step type is an end step.

但し、上記の内容はビジネスプロセス定義の一例であり、ビジネスプロセス定義言語で記述可能な範囲であればどのような処理フローが定義されていても良い。
ビジネスプロセス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 business process 1 definition 251 (see FIGS. 10 and 11) executed by the business process 2 definition 1220 is the same as that shown in the first embodiment, the description thereof is omitted.

<ビジネスプロセス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 process 1IF definition 1221>
Information required for executing the business process 1 definition 251 is described in the business process 1IF definition 1221 shown in FIGS. For example, the data structure of data required as input or the data structure of data to which the business process 1 definition 251 responds. The service execution control unit 233 (see FIG. 10) that has received an instruction to execute the business process 1 from the business process 2 instance 1201 generates a business process 1 processing request 1102 in accordance with the business process 1 IF definition 1221, and the business process execution unit 230 Send to. The business process execution unit 230 that has received the business process 1 processing request 1102 generates a business process 1 instance 1202. The business process 1 instance 1202 performs processing according to the business process 1 processing request 1102 and the business process 1 definition 251.

<依存関係解析部1210>
図10、図11に示す依存関係解析部1210は、ビジネスプロセス1定義251、ビジネスプロセス2定義1220を解析して各ビジネスプロセス定義が利用するサービスの一覧を取得し、依存関係管理テーブル1232へ登録する処理部である。本処理部における処理の詳細は後記する。
<Dependency analysis unit 1210>
The dependency analysis unit 1210 shown in FIGS. 10 and 11 analyzes the business process 1 definition 251 and the business process 2 definition 1220, acquires a list of services used by each business process definition, and registers them in the dependency management table 1232. Is a processing unit. Details of the processing in this processing unit will be described later.

<依存関係管理テーブル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 business process name 1400 that is an identifier of a business process definition, and a dependency service (business process) name 1401 that is a list of services and business process identifiers used by the business process definition.

<ビジネスプロセス状態判定部1211>
図10、図11に示すビジネスプロセス状態判定部1211は、サービス状態管理部240が保持する情報からビジネスプロセスの稼動状態を判定し、稼動状態管理テーブル1230へ登録する処理部である。本処理部における処理の詳細は後記する。
<Business process status determination unit 1211>
The business process state determination unit 1211 shown in FIGS. 10 and 11 is a processing unit that determines the operating state of a business process from information held by the service state management unit 240 and registers it in the operation state management table 1230. Details of the processing in this processing unit will be described later.

<ビジネスプロセス管理テーブル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 business process name 1500 that is an identifier of the business process definition and a business process definition status 1501.
The business process definition state 1501 includes “deployed” that has been deployed to the business process execution device 200 but not accepted a processing request, and has been deployed to the business process execution device 200 and can accept a processing request. There is a state such as “in operation”.

なお、図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 process execution program 220 or may be performed by another processing unit. Omitted.

<稼動状態管理テーブル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) name 1600 in FIG. 14).
When the target is a business process, whether or not the business process can be executed is in the active state 1601, the failure that causes the business process to not be executed is in the failure type 1602, the business process execution standby time is in the standby time 1603, The update time is stored in the update time 1604.

<待機時間管理テーブル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) name 1700 in FIG. 15). When the target is a business process, a failure that is a cause when the business process cannot be executed is stored in the failure type 1701, and the business process execution standby time is stored in the standby time 1702.

<<ビジネスプロセス実行部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 Process Execution Unit 230 >>
The flow of business process execution processing by the business process execution unit 230 in the second embodiment is substantially the same as that in FIG. 6 of the first embodiment, and thus the description is omitted, but the following points are different. (a) The business process definition to be executed is changed from the business process 1 definition 251 (see FIG. 1) to the business process 2 definition 1220 (see FIG. 10), and (b) the business process 1 processing request 100 (see FIG. 1). Change to business process 2 processing request 1101 (see FIG. 10), (c) Change business process 1 instance 2311 (see FIG. 1) to business process 2 instance 1201 (see FIG. 10).

<<依存関係解析部1210による依存関係管理テーブル1232の更新処理>>
次に、依存関係解析部1210による依存関係管理テーブル1232の更新処理について、図16に従って説明する。
図16は、図10に示す依存関係解析部1210がビジネスプロセス1定義251、ビジネスプロセス2定義1220を解析して依存関係管理テーブル1232を更新する処理の流れを示すフローチャートである。
本処理では、ビジネスプロセス定義およびサービスIF定義を解析することで、該ビジネスプロセスから利用されるサービスを該ビジネスプロセスの依存サービスとして依存関係管理テーブル1232へ登録する。全ての依存サービスが稼動している場合のみ、該ビジネスプロセスは実行可能と判定する。ここで、ビジネスプロセスから実行される全てのサービスを無条件に依存サービスとして登録すると、該ビジネスプロセスの稼動率を無駄に低く判定してしまうことが想定される。
<< Update processing of dependency management table 1232 by dependency analysis unit 1210 >>
Next, update processing of the dependency relationship management table 1232 by the dependency relationship analyzing unit 1210 will be described with reference to FIG.
FIG. 16 is a flowchart showing the flow of processing in which the dependency relationship analysis unit 1210 shown in FIG. 10 analyzes the business process 1 definition 251 and the business process 2 definition 1220 and updates the dependency relationship management table 1232.
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 service AIF definition 252 and the service BIF definition 253 shown in FIGS. Specifically, only the data type of the processing request is defined as the definition of the execution method of the service, and those having no definition regarding the processing response can be determined as an asynchronous service.
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) Business process 1 definition 251, business process 2 definition 1220, service AIF definition 252 and service BIF definition in which dependency analysis unit 1210 of service state management unit 240 shown in FIG. 10 is deployed on business process execution device 200 Get 253.
(Step 1801) Steps 1802 to 1809 are executed for all the acquired business process definitions.
(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 dependency service name 1401 as the dependency service of the business process being analyzed in the dependency relationship management table 1232 shown in FIG.
(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) name 1401, all the services on which the business process depends ( Business process) is added as dependent service (business process) name 1401. For example, in the second embodiment, as shown in FIG. 12, the business process 2 uses a business process 1, and the business process 1 uses a service A280 and a service B281. At this time, as shown in FIG. 12, service A280 and service B281 are registered in the dependency management table 1232 as business service 1 dependent services, and business process 1 and business process 1 depend as business service 2 dependent services. Service A280 and Service B281 are registered.

<<ビジネスプロセス状態判定部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 status determination unit 1211 >>
Next, registration processing in the operation state management table 1230 by the business process state determination unit 1211 shown in FIGS. 10 and 11 will be described with reference to FIG.
In FIG. 17, the business process state determination unit 1211 determines the operation state of the business process from information registered in the operation state management table 1230, the standby time management table 1231, the business process management table 1223, and the dependency relationship management table 1232. 10 is a flowchart showing a flow of processing for registration in an operation state management table 1230.

図14に示す稼動状態管理テーブル1230に登録されるビジネスプロセスの稼動状態1601および待機時間1603の判定方法を簡単に説明する。
図10、図11に示すビジネスプロセス1定義251等のビジネスプロセス定義がビジネスプロセス実行装置200に配備されていてリクエストを受け付け可能な状態であり、かつ該ビジネスプロセスが利用するサービスが全て稼動している場合、ビジネスプロセスは実行可能と判定され、図14の稼動状態1601として「稼動」が登録される。該ビジネスプロセス定義がリクエストを受け付けていないか、もしくは利用するサービスのうち1つ以上が停止している場合、ビジネスプロセスは実行不可と判定され、図14の稼動状態1601として「停止」が登録される。稼動状態1601が停止の場合、ビジネスプロセスが利用するサービスのうち停止しているサービスのサービス実行待機時間を全て取得し、その中で最も待機時間が長いものを図14の待機時間1603として登録する。
A method for determining the operating status 1601 and standby time 1603 of the business process registered in the operating status management table 1230 shown in FIG. 14 will be briefly described.
The business process definition such as the business process 1 definition 251 shown in FIG. 10 and FIG. 11 is deployed in the business process execution apparatus 200 and can accept requests, and all the services used by the business process are operating. If it is, the business process is determined to be executable, and “operation” is registered as the operation state 1601 in FIG. If the business process definition does not accept the request or one or more of the services to be used are stopped, it is determined that the business process cannot be executed, and “stopped” is registered as the operation state 1601 in FIG. The When the operating state 1601 is stopped, all service execution standby times of the services used by the business process are acquired, and the longest standby time among them is registered as the standby time 1603 in FIG. .

本第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 process execution history 254 shown in FIGS. 10 and 11 is read and processed. However, when the processing of FIG. 17 is performed twice or more, Alternatively, only the difference from the previously read business process execution history 254 (see FIG. 3) may be read for processing.

図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 state management unit 240 shown in FIG. 10 detects the update of the operation state management table 1230 or the standby time management table 1231.
(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 step 1903 to step 1907 is executed for all the services Sstop whose operation state 1601 is “stopped” among the entries registered in the operation state management table 1230.

(ステップ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 service name 1600 and failure type 1602 of the service Sstop which is “stopped” are acquired from the operating state management table 1230 shown in FIG. 14, and stored in the variable e representing the failure type. Also, the standby time 1603 is acquired and stored in a variable t1 representing the standby time. Also, the update time 1604 is acquired and stored in a variable tr representing the update time.
(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) name 1600 is the business process bp in the operating state management table 1230 (see FIG. 14) If the waiting time 1603 is smaller than the character string “-” or the waiting time variable t1, the process proceeds to step 1906. If the waiting time 1603 is greater than t1, the process proceeds to step 1907.

(ステップ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) name 1600 is the business process bp in the operating state management table 1230 shown in FIG. 14 is updated with the following data. Operating state 1601: Character string “stopped”, failure type 1602: failure type variable e, standby time 1603: standby time variable t1, update time 1604: update time variable tr.
(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 operating state 1601 is stopped. If so, the process proceeds to step 1908, and if not completed, the process proceeds to step 1903.

(ステップ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 to Step 1913 is executed for all business processes BPstop whose status 1501 is stopped among the business processes registered in the business process management table 1223 shown in FIG.
(Step 1909) The standby time 1702 of the stopped business process BPstop is acquired from the standby time management table 1231 shown in FIG. 15, and stored in a variable t2 representing the standby time. Further, the failure type 1602 of the operating state management table 1230 shown in FIG. 14 is acquired and stored in the variable e2 representing the failure type. Also, the update time 1604 is acquired and stored in a variable tr2 representing the update time.

(ステップ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) name 1401 from the dependency management table 1232 shown in FIG. Is stored in the variable bp representing.
(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) name 1600 of the operation state management table 1230 shown in FIG. 14 is included in the variable bp of the business process name If the waiting time 1603 is smaller than the character string “−” or t2, the process proceeds to step 1912. If the waiting time 1603 is equal to or greater than t2, the process proceeds to step 1913.

(ステップ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) name 1600 is the variable bp of the business process name in the operation state management table 1230 shown in FIG. 14 is updated with the following data. Operating state 1601: Character string “stopped”, failure type 1602: failure type variable e2, standby time 1603: standby time variable t2, update time 1604: update time variable tr2.
(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 status 1501 is stopped. If so, exit. If not completed, the process proceeds to step 1909.
The above is the registration process to the operation state management table 1230 by the business process state determination unit 1211 shown in FIG.

上記第2実施形態による依存関係解析部1210およびビジネスプロセス状態判定部1211(図10、図11参照)によれば、あるビジネスプロセスから他のビジネスプロセスを実行するような複雑な構成においてもビジネスプロセスの稼動状態を判定することができる。また、条件分岐などビジネスプロセスの構造を考慮して依存関係を解析することで必要以上にビジネスプロセスの稼動率を低く判定することを回避できる。これにより、ビジネスプロセスの稼動状態に応じてビジネスプロセスの実行タイミングを制御することができ、ビジネスプロセス実行装置200全体としてビジネスプロセスの実行失敗回数を低減することができる。   According to the dependency relationship analysis unit 1210 and the business process state determination unit 1211 (see FIGS. 10 and 11) according to the second embodiment, a business process can be performed even in a complicated configuration in which another business process is executed from a certain business process. Can be determined. Moreover, it is possible to avoid determining the operation rate of the business process lower than necessary by analyzing the dependency relationship in consideration of the structure of the business process such as conditional branching. Thereby, the execution timing of the business process can be controlled according to the operating state of the business process, and the business process execution apparatus 200 as a whole can reduce the number of business process execution failures.

<<まとめ>>
本発明は、ビジネスプロセスが、ネットワーク上の複数のサービスを定義された順に実行して業務を遂行するビジネスプロセス処理システムにおいて、サービスの稼動状態に応じてサービスの実行タイミングを制御するものである。
このため、本発明では、図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 process execution history 254 held by the business process execution apparatus 200 is analyzed, and the operating status of services such as services A280, B281, etc. Get the service execution waiting time. The service operating state is checked immediately before executing the service, and it is determined whether to execute the service immediately according to the service operating state or to execute after waiting for a certain time.

待機する場合の待機時間としては、前記サービス毎、障害種別毎のサービス実行待機時間を使用する。サービス稼動状態の取得に利用するビジネスプロセス実行履歴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 process execution history 254 used for acquiring the service operating state includes the execution history of all business processes deployed in the business process execution apparatus 200. Therefore, in the present invention, the execution result of a service by a certain business process is shared by all the business processes deployed in the business process execution apparatus 200 via the business process execution history 254.

さらに、ビジネスプロセス定義からビジネスプロセスとサービスの依存関係を取得し、依存関係やビジネスプロセスの構造、サービスの稼動状態などの情報からビジネスプロセスの稼動状態を判定し、ビジネスプロセスの稼動状態に応じてビジネスプロセスを直ぐに実行するか、または一定時間待機した後に実行するかを判断する。   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 execution control unit 233 according to the present invention performs the processing of executing the purchase business process 1853 from the order business process 1851. The service execution control unit 233 acquires the operating state of the purchase business process from the service state management unit 240 according to the present invention. The service state management unit 240 determines whether or not the purchase business process 1853 can be executed from the dependency relationship information indicating which service the purchase business process 1853 uses and the service operation information indicating the operation state of each service.

購入ビジネスプロセス1853は納期確認サービス1862および注文サービス1863を利用する。2つのサービスが稼動している場合、サービス実行制御部233はすぐに購入ビジネスプロセス1853を実行する。仮にどちらかのサービスが停止していた場合、購入ビジネスプロセス1853は実行不可と判定され、サービス実行制御部233は一定時間待機してサービスの復旧を待った後、購入ビジネスプロセス1853を実行する。以上の処理により、ビジネスプロセスの稼動状態に応じて実行タイミングを制御し、ビジネスプロセスの実効失敗を回避する。   The purchase business process 1853 uses a delivery date confirmation service 1862 and an order service 1863. When the two services are operating, the service execution control unit 233 immediately executes the purchase business process 1853. If one of the services is stopped, it is determined that the purchase business process 1853 cannot be executed, and the service execution control unit 233 waits for a certain period of time to wait for service recovery, and then executes the purchase business process 1853. Through the above processing, the execution timing is controlled in accordance with the operating state of the business process, and the business process is prevented from failing effectively.

また、ビジネスプロセスとサービスの依存関係を解析する際には、ビジネスプロセスの構造を考慮する必要がある。この様子を図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.

本発明に関わる第1実施形態のビジネスプロセス処理システムにおけるデータの流れを示す図である。It is a figure which shows the flow of the data in the business process processing system of 1st Embodiment in connection with this invention. 第1実施形態のビジネスプロセス処理システムのハードウェア構成の一例を示す図である。It is a figure which shows an example of the hardware constitutions of the business process processing system of 1st Embodiment. ビジネスプロセス実行履歴の構成の一例を示す図である。It is a figure which shows an example of a structure of a business process execution log | history. 稼動状態管理テーブルの構成を示す図である。It is a figure which shows the structure of an operation state management table. 待機時間管理テーブルの構成を示す図である。It is a figure which shows the structure of a waiting time management table. ビジネスプロセス実行部によるビジネスプロセス実行処理の流れを示すフローチャートである。It is a flowchart which shows the flow of the business process execution process by a business process execution part. サービス実行制御部によるサービス実行制御処理の詳細を示すフローチャートである。It is a flowchart which shows the detail of the service execution control process by a service execution control part. サービス待機時間計算部が待機時間管理テーブルを更新する処理の流れを示すフローチャートである。It is a flowchart which shows the flow of the process in which a service waiting time calculation part updates a waiting time management table. サービス稼動状態解析部が稼動状態管理テーブルを更新する処理の流れを示すフローチャートである。It is a flowchart which shows the flow of a process in which a service operation state analysis part updates an operation state management table. 第2実施形態のビジネスプロセス処理システムにおけるデータの流れを示す図である。It is a figure which shows the flow of the data in the business process processing system of 2nd Embodiment. 第2実施形態のビジネスプロセス処理システムにおけるハードウェア構成の一例を示す図である。It is a figure which shows an example of the hardware constitutions in the business process processing system of 2nd Embodiment. 依存関係管理テーブルの構成を示す図である。It is a figure which shows the structure of a dependence relationship management table. ビジネスプロセス管理テーブルの構成の一例を示す図である。It is a figure which shows an example of a structure of a business process management table. 稼動状態管理テーブルの構成を示す図である。It is a figure which shows the structure of an operation state management table. 待機時間管理テーブルの構成を示す図である。It is a figure which shows the structure of a waiting time management table. 依存関係解析部が依存関係管理テーブルを更新する処理の流れを示すフローチャートである。It is a flowchart which shows the flow of a process in which a dependence analysis part updates a dependence management table. ビジネスプロセス状態判定部が稼動状態管理テーブルへ登録する処理の流れを示すフローチャートである。It is a flowchart which shows the flow of the process which a business process state determination part registers into an operation state management table. ビジネスプロセスが多段になっている場合に、サービスの稼動状態に応じてビジネスプロセスの実行タイミングを制御する処理の概念図である。It is a conceptual diagram of the process which controls the execution timing of a business process according to the operation state of a service, when a business process is multistage. (a)は処理の途中に条件分岐が含まれているビジネスプロセスを示す図であり、(b)は処理の途中に非同期サービスの実行が含まれているビジネスプロセスを示す図である。(a) is a figure which shows the business process in which the conditional branch is included in the middle of a process, (b) is a figure which shows the business process in which execution of an asynchronous service is included in the middle of a process. 従来のビジネスプロセスが多段の場合の障害発生状況を示した図である。It is the figure which showed the failure occurrence condition in case the conventional business process is multistage. 従来の障害の復旧作業の様子を示した図である。It is the figure which showed the mode of the recovery operation | work of the conventional fault.

符号の説明Explanation of symbols

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 Business process 1 definition (business process definition, other business process definition)
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 Business process 2 definition (a business process definition)
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 claims 7 and 17)
b Service (service executed before the conditional branch in claims 7 and 17)
c Asynchronous services (asynchronous services of claims 8 and 18),

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.
請求項1に記載のビジネスプロセス実行装置において、
前記サービス待機時間計算部は、
前記サービス毎に、サービス実行失敗時刻と該サービス実行失敗時刻直後の同一サービスのサービス実行成功時刻との差分を前記ビジネスプロセス実行履歴記憶部から取得し、その平均を前記サービス実行待機時間として算出する
ことを特徴とするビジネスプロセス実行装置。
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.
請求項1に記載のビジネスプロセス実行装置において、
前記サービス待機時間計算部は、
前記各サービスの実行失敗の原因毎に、サービス実行失敗時刻と、該サービス実行失敗時刻直後の同一サービスのサービス実行成功時刻との差分を前記ビジネスプロセス実行履歴記憶部から取得し、その平均を前記各サービスの実行失敗の原因毎の前記サービス実行待機時間として算出する
ことを特徴とするビジネスプロセス実行装置。
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.
請求項1に記載のビジネスプロセス実行装置において、
前記サービス実行制御部は、
前記サービスの稼動状態の更新時刻と前記サービス実行制御部が処理を実行している時点の時刻とを比較し、その差が所定値以上である場合、前記サービスの稼動状態に関わらず該サービスを実行する
ことを特徴とするビジネスプロセス実行装置。
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.
請求項1に記載のビジネスプロセス実行装置において、
前記サービス実行制御部は、
前記サービス実行待機時間が所定値以上である場合、前記サービスの稼動状態に関わらず該サービスを実行する
ことを特徴とするビジネスプロセス実行装置。
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.
請求項1に記載のビジネスプロセス実行装置において、
あるビジネスプロセス定義が他のビジネスプロセス定義を実行する場合に該他のビジネスプロセス定義を解析して該他のビジネスプロセス定義が利用するサービスの一覧を取得する依存関係解析部と、
前記他のビジネスプロセス定義が利用する全てのサービスの稼動状態および該他のビジネスプロセス定義の配備状態から該他のビジネスプロセス定義が実行可能か否かを判定し、該他のビジネスプロセス定義が利用するサービスの前記サービス実行待機時間を前記サービス稼働状態解析部から取得して該他のビジネスプロセス定義のビジネスプロセス実行待機時間を決定するビジネスプロセス状態判定部とを
備えることを特徴とするビジネスプロセス実行装置。
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.
請求項6に記載のビジネスプロセス実行装置において、
前記依存関係解析部は、
前記他のビジネスプロセス定義に条件分岐が含まれる場合、該条件分岐よりも前に実行されるサービスを該他のビジネスプロセス定義が利用するサービスとして取得する
ことを特徴とするビジネスプロセス実行装置。
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.
請求項6に記載のビジネスプロセス実行装置において、
前記依存関係解析部は、
前記他のビジネスプロセス定義に非同期に応答が返ってくるサービスを実行する処理を含む場合、該非同期のサービスの実行処理よりも前に実行される全てのサービスを、該他のビジネスプロセス定義が利用するサービスとして取得する
ことを特徴とするビジネスプロセス実行装置。
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.
請求項6に記載のビジネスプロセス実行装置において、
前記ビジネスプロセス状態判定部は、
前記他のビジネスプロセス定義が利用するサービスの一覧を前記依存関係解析部から取得し、かつ、該取得した前記サービスの稼働状態を前記サービス稼動状態解析部から取得し、かつ、該他のビジネスプロセス定義の配備状態を前記ビジネスプロセス実行装置から取得し、
前記サービス一覧に含まれる全てのサービスが稼動状態であり、かつ、該他のビジネスプロセス定義が前記ビジネスプロセス実行装置上に配備されている場合に該他のビジネスプロセス定義が実行可能と判定する
ことを特徴とするビジネスプロセス実行装置。
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
請求項6に記載のビジネスプロセス実行装置において、
前記ビジネスプロセス状態判定部は、
前記他のビジネスプロセス定義が利用する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.
請求項11に記載のビジネスプロセス実行方法において、
前記サービス実行待機時間の算出は、
前記サービス毎に、サービス実行失敗時刻と該サービス実行失敗時刻直後の同一サービスのサービス実行成功時刻との差分を前記ビジネスプロセス実行履歴記憶部から取得し、その平均を前記サービス実行待機時間として算出する
ことを特徴とするビジネスプロセス実行方法。
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.
請求項11に記載のビジネスプロセス実行方法において、
前記サービス実行待機時間の算出は、
前記各サービスの実行失敗の原因毎に、サービス実行失敗時刻と、該サービス実行失敗時刻直後の同一サービスのサービス実行成功時刻との差分を前記ビジネスプロセス実行履歴記憶部から取得し、その平均を前記各サービスの実行失敗の原因毎の前記サービス実行待機時間として算出する
ことを特徴とするビジネスプロセス実行方法。
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.
請求項11に記載のビジネスプロセス実行方法において、
前記ビジネスプロセス実行装置は、
前記サービスの稼動状態の更新時刻と処理を実行している時点の時刻とを比較し、その差が所定値以上である場合、前記サービスの稼動状態に関わらず該サービスを実行する
ことを特徴とするビジネスプロセス実行方法。
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.
請求項11に記載のビジネスプロセス実行方法において、
前記サービス実行待機時間が所定値以上である場合、前記サービスの稼動状態に関わらず該サービスを実行する
ことを特徴とするビジネスプロセス実行方法。
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.
請求項11に記載のビジネスプロセス実行方法において、
前記ビジネスプロセス実行装置は、
あるビジネスプロセス定義が他のビジネスプロセス定義を実行する場合に該他のビジネスプロセス定義を解析して該他のビジネスプロセス定義が利用するサービスの一覧を取得し、
前記他のビジネスプロセス定義が利用する全てのサービスの稼動状態および該他のビジネスプロセス定義の配備状態から該他のビジネスプロセス定義が実行可能か否かを判定し、該他のビジネスプロセス定義が利用するサービスの前記サービス実行待機時間を取得して該他のビジネスプロセス定義のビジネスプロセス実行待機時間を決定する
ことを特徴とするビジネスプロセス実行方法。
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.
請求項16に記載のビジネスプロセス実行方法において、
前記他のビジネスプロセス定義を解析して該他のビジネスプロセス定義が利用するサービスの一覧を取得するに際して、
前記他のビジネスプロセス定義に条件分岐が含まれる場合、該条件分岐よりも前に実行されるサービスを該他のビジネスプロセス定義が利用するサービスとして取得する
ことを特徴とするビジネスプロセス実行方法。
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.
請求項16に記載のビジネスプロセス実行方法において、
前記他のビジネスプロセス定義を解析して該他のビジネスプロセス定義が利用するサービスの一覧を取得するに際して、
前記他のビジネスプロセス定義に非同期に応答が返ってくるサービスを実行する処理を含む場合、該非同期のサービスの実行処理よりも前に実行される全てのサービスを、該他のビジネスプロセス定義が利用するサービスとして取得する
ことを特徴とするビジネスプロセス実行方法。
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.
請求項16に記載のビジネスプロセス実行方法において、
前記ビジネスプロセス実行装置は、
前記他のビジネスプロセス定義が利用するサービスの一覧を取得し、かつ、該取得した前記サービスの稼働状態を取得し、かつ、該他のビジネスプロセス定義の配備状態を前記ビジネスプロセス実行装置から取得し、
前記サービス一覧に含まれる全てのサービスが稼動状態であり、かつ、該他のビジネスプロセス定義が前記ビジネスプロセス実行装置上に配備されている場合に該他のビジネスプロセス定義を実行可能と判定する
ことを特徴とするビジネスプロセス実行方法。
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
請求項16に記載のビジネスプロセス実行方法において、
前記ビジネスプロセス実行装置は、
前記他のビジネスプロセス定義が利用する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.
JP2008131364A 2008-05-19 2008-05-19 Business process performing device and business process performing method Ceased JP2009282581A (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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