(57)【要約】【課題】排他ロックを行う排他制御の単位を示す排他区間を動的に決定する排他制御プログラムを提供する。【解決手段】コンピュータに、情報処理装置に対する操作を定義した操作情報を含む操作手順を示す複数のワークフロー情報それぞれの、少なくとも１つ以上の操作情報に対して、排他ロックを行う排他制御の単位を示す排他区間を設定し、各ワークフロー情報の排他区間に対応する操作情報に基づく操作を実行させる場合に、操作情報の種別に応じた操作の重要度を示す操作重要度情報と、操作の緊急度を示す操作緊急度情報とを用いて、排他区間の優先度を算出し、排他区間同士が排他ロックの競合関係にある場合、優先度に基づいて、ワークフロー間の排他区間の排他制御を行うことにより、上記課題の解決を図る。【選択図】図１
2014006740.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
情報処理装置に対する操作を定義した操作情報を含む操作手順を示す複数のワークフロー情報それぞれの、少なくとも１つ以上の前記操作情報に対して、排他ロックを行う排他制御の単位を示す排他区間を設定し、
前記各ワークフロー情報の排他区間に対応する操作情報に基づく操作を実行させる場合に、該操作情報の種別に応じた操作の重要度を示す操作重要度情報と、該操作の緊急度を示す操作緊急度情報とを用いて、前記排他区間の優先度を算出し、
前記排他区間同士が前記排他ロックの競合関係にある場合、前記優先度に基づいて、前記ワークフロー間の該排他区間の排他制御を行う
処理を実行させることを特徴とする排他制御プログラム。
【請求項２】
前記排他区間の設定において、前記操作情報の操作対象、該操作対象及び該操作対象への入力情報、または前記操作情報間で受け渡される変数に応じて、少なくとも１つ以上の前記操作情報に対して、前記排他区間を設定する
処理を実行させることを特徴とする請求項１に記載の排他制御プログラム。
【請求項３】
前記排他区間の設定において、前記各ワークフロー情報の連続する操作情報のうち、操作対象が同じ場合、該操作対象及び該操作対象への入力情報が同じ場合、または前記操作情報のうちのいずれかの操作情報で出力された変数が他の操作情報の入力情報となっている場合、該操作情報をグループ化し、該グループ化した前記操作情報に対して、前記排他区間を設定する
処理を実行させることを特徴とする請求項２に記載の排他制御プログラム。
【請求項４】
前記排他区間の設定において、連続する前記排他区間において、該排他区間に含まれる操作にて用いる変数の値が同じ場合、該排他区間を結合し、該排他区間に含まれる操作により、該排他区間で用いる変数の値が変更された場合、該排他区間を分割する
処理を実行させることを特徴とする請求項１〜３のうちいずれか１項に記載の排他制御プログラム。
【請求項５】
前記優先度の算出において、前記各ワークフローに含まれる前記操作情報に対応する操作重要度、前記ワークフローを開始させたユーザに応じて重みづけされた第１の値、該ワークフローの開始の誘因に応じて重みづけされた第２の値、及び該ワークフローが完了するまでの残り時間に応じて重みづけされた第３の値が格納された関係情報格納部から、前記各ワークフローに含まれる前記操作情報に対応する操作重要度を取得し、前記排他区間毎に該操作重要度を加算し、前記関係情報格納部から、前記ワークフローを開始させたユーザに対応する前記第１の値、該ワークフローの開始の誘因に対応する前記第２の値、及び該ワークフローが完了するまでの残り時間に対応する前記第３の値を取得し、該第１の値、該第２の値、及び該第３の値を乗じて、前記操作緊急度を算出し、前記排他区間毎に加算した操作重要度と前記操作緊急度を乗じて、前記優先度を算出する
処理を実行させることを特徴とする請求項１〜４のうちいずれか１項に記載の排他制御プログラム。
【請求項６】
情報処理装置に対して操作指示をする操作指示部に対して、該排他区間の排他制御において、前記優先度の最も高い排他区間を有する前記ワークフロー情報のワークフローを実行する旨の通知を行う
処理を実行させることを特徴とする請求項１〜５のうちいずれか１項に記載の排他制御プログラム。
【請求項７】
前記コンピュータに、さらに、
排他制御に基づいて、排他制御された排他区間及び排他制御される排他区間を示す情報を出力する
処理を実行させることを特徴とする請求項１〜６のうちいずれか１項に記載の排他制御プログラム。
【請求項８】
情報処理装置に対する操作を定義した操作情報を含む操作手順を示す複数のワークフロー情報それぞれの、少なくとも１つ以上の前記操作情報に対して、排他ロックを行う排他制御の単位を示す排他区間を設定する設定部と、
前記各ワークフロー情報の排他区間に対応する操作情報に基づく操作を実行させる場合に、該操作情報の種別に応じた操作の重要度を示す操作重要度情報と、該操作の緊急度を示す操作緊急度情報とを用いて、前記排他区間の優先度を算出する算出部と、
前記排他区間同士が前記排他ロックの競合関係にある場合、前記優先度に基づいて、前記ワークフロー間の該排他区間の排他制御を行う排他実行部と、
を備えることを特徴とする排他制御装置。
【請求項９】
コンピュータにより実行されるワークフローに関する排他制御方法であって、
前記コンピュータは、
情報処理装置に対する操作を定義した操作情報を含む操作手順を示す複数のワークフロー情報それぞれの、少なくとも１つ以上の前記操作情報に対して、排他ロックを行う排他制御の単位を示す排他区間を設定し、
前記各ワークフロー情報の排他区間に対応する操作情報に基づく操作を実行させる場合に、該操作情報の種別に応じた操作の重要度を示す操作重要度情報と、該操作の緊急度を示す操作緊急度情報とを用いて、前記排他区間の優先度を算出し、
前記排他区間同士が前記排他ロックの競合関係にある場合、前記優先度に基づいて、前記ワークフロー間の該排他区間の排他制御を行う
ことを特徴とする排他制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ワークフローシステムの排他制御に関する。
【背景技術】
【０００２】
業務システムは、多数のIT機器（サーバ、ストレージ、ネットワークなど）が設置され、それらのIT機器に搭載されたオペレーティングシステム（OS）／ミドルウェア／アプリケーションによって構成されている。そのような業務システムが複数稼働している。データセンターは、それらの業務システムの監視や保守作業などの運用作業を行う。
【０００３】
運用作業を自動化する機器（Runbook Automation機器）は、自動化する運用作業を記述したワークフローを作成する。このとき、運用管理者は、複数のワークフローが同時に動作することを考慮して、ワークフローに排他区間を追加したり、ワークフローの動作順序を定義するスケジューリングをしたりすることで、排他制御をする。そのようなワークフローを自動で管理する技術として、次の技術がある。
【０００４】
例えば、コンピュータ・ソフトウェア・アプリケーションにおいて処理ノードによりメッセージを並行して処理するメッセージ・フローを管理する方法がある。処理ノードは、フロー・パスにおいて相互接続されたロック獲得ノード、システム・リソース・アクセス・ノード、及びロック解放ノードの少なくとも１つのセットを含む。そのようなセットでは、それらのノードがフロー・パスにおいて相互接続され、そのフロー・パスによって定義された順序でメッセージのそれぞれ１つが処理される。その処理は、ロック獲得ノードがそれぞれのメッセージを処理したことに応答して、そのセットのそれぞれのメッセージに対するシステム・リソースへのアクセスを排他的に許可する。そのセットのシステム・リソース・アクセス・ノードがメッセージを処理したことに応答して、そのメッセージに対するシステム・リソースがアクセスされる。そのメッセージに対するリソースのアクセスは、或るシステム状態の変更を含む。システム・リソースの排他的アクセスは、そのセットのロック解放ノードがメッセージを処理したことに応答して解放される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特表２００６−５１１８５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記技術では、ワークフローの実行に伴って、各ワークフローが対象とする処理対象、資源、変数等が変化し、その変化に応じて、ワークフローの排他制御を行っていない。そのため、ワークフローの実行に伴って、各ワークフローが対象とする処理対象、資源、変数等が変化することを考慮して、人手で、ワークフローの排他設計を行っているが、すべての排他制御のパターンを網羅して排他設計を行うことは困難である。
【０００７】
そこで、１つの側面として、排他ロックを行う排他制御の単位を示す排他区間を動的に決定する排他制御プログラムを提供する。
【課題を解決するための手段】
【０００８】
一態様の排他制御プログラムは、コンピュータに次を実行させる。
すなわち、コンピュータは、情報処理装置に対する操作を定義した操作情報を含む操作手順を示す複数のワークフロー情報それぞれの、少なくとも１つ以上の前記操作情報に対して、排他ロックを行う排他制御の単位を示す排他区間を設定する。コンピュータは、各ワークフロー情報の排他区間に対応する操作情報に基づく操作を実行させる場合に、操作情報の種別に応じた操作の重要度を示す操作重要度情報と、操作の緊急度を示す操作緊急度情報とを用いて、排他区間の優先度を算出する。コンピュータは、排他区間同士が排他ロックの競合関係にある場合、優先度に基づいて、ワークフロー間の排他区間の排他制御を行う処理を実行させる。
【発明の効果】
【０００９】
本実施形態の一側面によれば、排他ロックを行う排他制御の単位を示す排他区間を動的に決定することができる。
【図面の簡単な説明】
【００１０】
【図１】本実施形態の一側面における排他制御装置を示す。
【図２】本実施形態における運用システムの一例を示す。
【図３】本実施形態の全体の処理フローを示す。
【図４】本実施形態における、ワークフローＡ，Ｂに定義されている運用操作部品のモデル化について説明するための図である。
【図５】本実施形態における、同一の操作対象／同一の変数利用に基づいて、排他区間を決定する処理を説明するための図である。
【図６】本実施形態における、各運用操作部品で利用する資源の流れ（変数の受け渡し）に基づいて、排他区間を決定する処理を説明するための図である。
【図７】図５及び図６の場合の排他区間のロックの競合関係を説明するための図である。
【図８】本実施形態におけるワークフローの動作時の処理（Ｓ３）を行うフローチャートの一例である。
【図９】本実施形態における、異なる変数で設定した排他区間において、その変数が同じ値に変更された場合、その排他区間を結合することを説明するための図である。
【図１０】本実施形態における、同じ変数で設定した排他区間において、変数の内容が変更された場合、排他区間を分割することについて説明するための図である。
【図１１】本実施形態における、ワークフローの実行優先度の仮決定について説明するための図である。
【図１２】実行中のワークフローのうち最も大きい実行優先度を持つ排他区間の抽出処理、及び次の運用操作部品を即時実行するか待たせるかを判断する処理について説明するための図（その１）である。
【図１３】実行中のワークフローのうち最も大きい実行優先度を持つ排他区間の抽出処理、及び次の運用操作部品を即時実行するか待たせるかを判断する処理について説明するための図（その２）である。
【図１４】実行中のワークフローのうち最も大きい実行優先度を持つ排他区間の抽出処理、及び次の運用操作部品を即時実行するか待たせるかを判断する処理について説明するための図（その３）である。
【図１５】実行中のワークフローのうち最も大きい実行優先度を持つ排他区間の抽出処理、及び次の運用操作部品を即時実行するか待たせるかを判断する処理について説明するための図（その４）である。
【図１６】ワークフロー実行中に実行優先度が変更された場合のワークフローの排他権（実行権）獲得例について説明するための図（その１）である。
【図１７】ワークフロー実行中に実行優先度が変更された場合のワークフローの排他権（実行権）獲得例について説明するための図（その２）である。
【図１８】本実施形態におけるワークフローの実行履歴の表示について説明するための図である。
【図１９】本実施形態における端末の画面の表示例を示す。
【図２０】本実施形態の実施例における、運用システムを示す。
【図２１】本実施形態の実施例における、運用自動化サーバを示す。
【図２２】本実施形態の実施例におけるワークフロー管理テーブルの一例を示す。
【図２３】本実施形態の実施例における運用操作部品定義テーブルの一例を示す。
【図２４】本実施形態の実施例における変数管理テーブルの一例を示す。
【図２５】本実施形態の実施例におけるインスタンス管理テーブルの一例を示す。
【図２６】本実施形態の実施例における排他情報管理テーブルの一例を示す。
【図２７】本実施形態の実施例における排他情報管理テーブルの一例を示す。
【図２８】本実施形態の実施例におけるユーザ係数テーブルの一例を示す。
【図２９】本実施形態の実施例における起動方式係数テーブルの一例を示す。
【図３０】本実施形態の実施例における時間係数テーブルの一例を示す。
【図３１】本実施形態の実施例におけるワークフロー実行部による処理フローの一例を示す。
【図３２】本実施形態の実施例における排他制御部の全体の処理フローの一例を示す。
【図３３】本実施形態の実施例におけるワークフロー開始時の排他制御処理（Ｓ５４）のフローを示す
【図３４】本実施形態の実施例における排他情報仮決定処理のフローを示す。
【図３５】本実施形態の実施例における排他情報の実行優先度計算処理のフローを示す。
【図３６】本実施形態の実施例におけるワークフロー動作中の排他制御処理（Ｓ５５）のフローを示す。
【図３７】本実施形態の実施例における排他アクション決定処理のフローを示す。
【図３８】本実施形態の実施例における画面表示のフローを示す。
【図３９】本実施形態の一実施例に係るコンピュータのハードウェア環境の構成ブロック図である。
【発明を実施するための形態】
【００１１】
データセンターにおける運用管理作業は多種多様にわたるため、多数のワークフローが同時に動作することがある。多数のワークフローが同時に動作したとしても、操作内容の整合性が保たれる必要がある。運用管理者は、多数のワークフローが同時に動作した場合、ワークフローの完了予定時間や操作内容の整合性、データの整合性を考慮してワークフローの設計やスケジューリングを行う。
【００１２】
しかし、運用管理者がワークフローの作成時に排他区間を設定することは、以下の理由により困難である。ここで、排他区間とは、ワークフローにおいて、排他制御を行う所定の区間をいう。排他制御とは、複数のワークフローが同時に動作して、共通の資源等を同時に使用すると競合関係になる場合に、いずれかのワークフローを優先して動作させ、その他のワークフローを処理待ち状態にして、競合を回避させることをいう。
【００１３】
第１の理由として、排他区間の設計負荷が大きいことが挙げられる。運用管理者には、オンデマンドに動作するワークフローの同時実行性をすべて考慮することが要求される。そのため、排他区間の設計には多大な時間と労力が要求される。また、ワークフローの動作時に操作対象や利用する資源が決定されることが多いため、すべてのパターンを網羅した排他区間の設計は困難である。また、人による排他区間の設計のため、排他制御の設定に漏れがあったり、デッドロック等の排他制御のミスが発生しやすい。また、ワークフローを追加した場合、すべてのワークフローの排他区間を見直した上で、排他区間を再度設計する必要がある。
【００１４】
第２の理由として、最新の情報が取得できないことが挙げられる。例えば、ワークフローＡがサーバＡの情報を取得した後に、ワークフローＢがサーバＡを操作する場合、ワークフローＡの情報が古くなってしまう。ワークフローＡがサーバＡの最新の情報を得るには、再度情報の取得を行う必要があり効率が悪い。
【００１５】
第３の理由として、ワークフロー作成時の排他区間の設計により運用作業全体の効率が低下することが挙げられる。人による排他区間の設計では、ワークフローに不要な排他区間を設定することが考えられる。その結果、運用作業が遅延する恐れがある。すなわち、あるワークフローは、他のワークフローの実行状況に関係なく排他獲得を行うため、状況に応じて排他獲得の順序を変更することができず、運用作業全体の効率が低下する。ここで、排他獲得とは、複数のワークフローが同時に動作して、共通の資源等を同時に使用すると競合関係になる場合に、いずれかのワークフローが優先して動作することをいう。この場合、その他のワークフローは、その動作しているワークフローの所定の動作が完了するまで処理待ち状態になる。
【００１６】
第４の理由として、排他制御のミス発生時の影響範囲が大きいことが挙げられる。排他制御のミスが発生すると、関連する多くの業務（プロセス）を停止し、復旧対応が必要になるため、影響が広範囲に及ぶ。
【００１７】
そこで、本実施形態では、ワークフローの実行時に起動状況や進捗状況に応じて適切な排他区間を動的に決定する。
【００１８】
図１は、本実施形態の一側面における排他制御装置を示す。排他制御装置１は、設定部３、算出部４、排他実行部５を含む。
【００１９】
設定部３は、情報処理装置に対する操作を定義した操作情報を含む操作手順を示す複数のワークフロー情報それぞれの、少なくとも１つ以上の前記操作情報に対して、排他ロックを行う排他制御の単位を示す排他区間を設定する。設定部３の一例としては、設定部１４が挙げられる。
【００２０】
算出部４は、各ワークフロー情報の排他区間に対応する操作情報に基づく操作を実行させる場合に、操作情報の種別に応じた操作の重要度を示す操作重要度情報と、操作の緊急度を示す操作緊急度情報とを用いて、排他区間の優先度を算出する。算出部４の一例としては、設定部１４が挙げられる。
【００２１】
排他実行部５は、排他区間同士が排他ロックの競合関係にある場合、優先度に基づいて、ワークフロー間の排他区間の排他制御を行う。排他実行部５の一例としては、設定部１４が挙げられる。
【００２２】
このように構成することにより、排他ロックを行う排他制御の単位を示す排他区間を動的に決定することができる。
【００２３】
設定部３は、操作情報の操作対象、操作対象及び操作対象への入力情報、または操作情報間で受け渡される変数に応じて、少なくとも１つ以上の操作情報に対して、排他区間を設定する。具体的には、設定部３は、次の場合に、操作情報をグループ化する。すなわち、各ワークフロー情報の連続する操作情報のうち、操作対象が同じ場合、操作対象及び操作対象への入力情報が同じ場合、または操作情報のうちのいずれかの操作情報で出力された変数が他の操作情報の入力情報となっている場合である。設定部３は、グループ化した操作情報に対して、排他区間を設定する。このように構成することにより、排他区間を決定することができる。
【００２４】
また、設定部３は、連続する排他区間において、排他区間に含まれる操作にて用いる変数の値が同じ場合、排他区間を結合する。設定部３は、排他区間に含まれる操作により、排他区間にて用いる変数の値が変更された場合、排他区間を分割する。
【００２５】
排他制御装置１は、さらに、関係情報格納部６を含む。関係情報格納部６は、操作重要度、第１の値、第２の値、及び第３の値が格納されている。操作重要度は、取得した各ワークフローに含まれる前記操作情報に対応する情報である。第１の値は、ワークフローを開始させたユーザに応じて重みづけされた値である。第２の値は、ワークフローの開始の誘因に応じて重みづけされた値である。第３の値は、ワークフローが完了するまでの残り時間に応じて重みづけされた値である。関係情報格納部６の一例としては、格納部１７、データベース（ＢＤ）５１が挙げられる。
【００２６】
算出部４は、関係情報格納部６から、各ワークフローに含まれる操作情報に対応する操作重要度を取得する。算出部４は、排他区間毎に操作重要度を加算する。算出部４は、関係情報格納部から、ワークフローを開始させたユーザに対応する第１の値、ワークフローの開始の誘因に対応する第２の値、及びワークフローが完了するまでの残り時間に対応する第３の値を取得する。算出部４は、第１の値、第２の値、及び第３の値を乗じて、操作緊急度を算出する。算出部４は、排他区間毎に加算した操作重要度と操作緊急度を乗じて、優先度を算出する。
【００２７】
このように構成することにより、優先度を算出することができる。
排他実行部５は、操作指示部８に対して、優先度の最も高い排他区間を有するワークフロー情報のワークフローを実行する旨の通知を行う。操作指示部８は、情報処理装置に対して操作指示をする。操作指示部８の一例としては、ワークフロー実行部１６が挙げられる。
【００２８】
このように構成することにより、排他権を獲得したワークフローを実行させ、排他権を獲得していないワークフローを実行させないようにすることにより、排他制御を行うことができる。
【００２９】
排他制御装置１は、さらに、表示制御部７を含む。表示制御部７は、排他制御に基づいて、排他制御された排他区間及び排他制御される排他区間を示す情報を出力する。表示制御部７の一例として、表示制御部１５が挙げられる。
【００３０】
このように構成することにより、予測に基づいた排他制御及び排他履歴を表示させることができる。
【００３１】
図２は、本実施形態における運用システムの一例を示す。運用システムは、運用自動化サーバ１１、業務サーバ１８を含む。業務サーバ１８は、各種の業務処理を実行する。運用自動化サーバ１１は、業務サーバ１８の運用を自動化して管理する。
【００３２】
運用自動化サーバ１１は、排他制御部１２、ワークフロー実行部１６、格納部１７を含む。ワークフロー実行部１６は、排他制御部１２による制御に基づいて、ワークフローを実行する。格納部１７には、ワークフローに関するデータ、後述するテーブル情報等が格納されている。
【００３３】
排他制御部１２は、排他区間の動的な決定、未来を予測した操作優先度に従った処理順番の制御、ワークフローの実行履歴の表示制御を行う。排他制御部１２は、モデル化部１３、設定部１４、表示制御部１５を含む。
【００３４】
・排他区間の動的な決定
排他制御部１２は、ワークフローの動作開始時に運用操作部品の種類と、利用している資源（操作対象や変数）とから排他区間を仮決定する。排他制御部１２は、仮決定した排他区間を基準として、ワークフローの動作中に他のワークフローの実行状況と排他状況を考慮して排他区間を動的に決定する。ここで、運用操作部品とは、ワークフローを構成する各処理を業務サーバ１８に自動的に実行させるように、業務サーバ１８に対する運用操作を自動的に実行するよう記述したスクリプトである。
【００３５】
・未来を予測した操作優先度に従った処理順番の制御
排他制御部１２は、排他を獲得する際に、獲得済みの排他と、排他を獲得していない他のワークフローの排他取得予定情報、実行優先度を考慮することで、予測に基づいた排他制御を行う。そのために、排他制御部１２は、ワークフローの作業の順序を適宜変更する。
【００３６】
・ワークフローの実行履歴を表示
排他制御部１２（表示制御部１５）は、動的に決定した排他区間および排他の制御状態（獲得している排他や待ち時間）を記憶装置に記録して、表示装置に表示する。これにより、ユーザは、排他の実行状況を容易に確認することが可能になる。
【００３７】
図３は、本実施形態の全体の処理フローを示す。運用自動化サーバ１１へのワークフローの登録時に、排他制御部１２は、モデル化処理（Ｓ１）、排他区間の初期設定処理（Ｓ２）を行う。ワークフローの動作時に、排他制御部１２は、排他区間の再設定処理（Ｓ３）を行う。以下では、ワークフローの登録時の処理及び動作時の処理について説明する。
【００３８】
＜ワークフロー登録時の処理＞
ワークフローが運用自動化サーバ１１に登録される際に、モデル化部１３、設定部１４は以下の処理を実行する。
【００３９】
モデル化処理（Ｓ１）では、次の処理が行われる。モデル化部１３は、登録されたワークフローの運用操作部品の内容に基づいて、運用操作部品をグループ分けし、操作重要度を定義する（Ｓ１）。例えば、モデル化部１３は、業務システムへの情報の登録、ネットワークの設定などの設定系の運用操作部品の操作重要度を、「高（または「１」）」に設定する。また、モデル化部１３は、OSの再起動、サービスの起動などの設定系の運用操作部品の操作重要度を、例えば、「中（または「２」）」に設定する。また、モデル化部１３は、サーバ/サービスの状態確認などの参照・確認・通知系の運用操作部品の操作重要度を、例えば、「低」に設定する。これにより、図３及び図４で説明するように、ワークフローに定義されている運用操作部品をモデル化することができる。モデル化したワークフローによって、各運用操作部品の操作重要度が決定される。
【００４０】
図４は、本実施形態における、ワークフローＡ，Ｂに定義されている運用操作部品のモデル化について説明するための図である。例えば、ワークフローＡには、「操作対象、資源の取得」２１、「サービスの停止」２２、「サービスの停止確認」２３、「サーバ停止」２４、「サーバ起動」２５、「サーバの起動確認」２６、「エラー通知メール」２７，２８の運用操作部品が定義されている。例えば、ワークフローＢには、「操作対象、資源の取得」３１、「ソフトウェアのインストール」３２、「情報登録」３３、「サーバ再起動」３４、「サーバの起動確認」３５、「メール送信」３６、「エラー通知メール」３７の運用操作部品が定義されている。
【００４１】
モデル化部１３によりワークフローＡがモデル化されると、「操作対象、資源の取得」２１は、「参照系」２１−１にモデル化され、重要度：１が設定される。「サービスの停止」２２は、「操作系」２２−１にモデル化され、重要度：２が設定される。「サービスの停止確認」２３は、「参照系」２３−１にモデル化され、重要度：１が設定される。「サーバ停止」２４は、「操作系」２４−１にモデル化され、重要度：２が設定される。「サーバ起動」２５は、「操作系」２５−１にモデル化され、重要度：２が設定される。「サーバの起動確認」２６は、「参照系」２６−１にモデル化され、重要度：１が設定される。「エラー通知メール」２７，２８は、通知系２７−１，２８−１にモデル化される。
【００４２】
モデル化部１３によりワークフローBがモデル化されると、「操作対象、資源の取得」３１は、「参照系」３１−１にモデル化され、重要度：１が設定される。「ソフトウェアのインストール」３２は、「参照系」３２−１にモデル化され、重要度：３が設定される。「情報登録」３３は、「設定系」３３−１にモデル化され、重要度：３が設定される。「サーバ再起動」３４は、「操作系」３４−１にモデル化され、重要度：２が設定される。「サーバの起動確認」３５は、「参照系」３５−１にモデル化され、重要度：１が設定される。「メール送信」３６及び「エラー通知メール」３７は、「通知系」３６−１，３７−１にモデル化される。
【００４３】
次に、排他区間の初期設定処理（Ｓ２）では、次の処理が行われる。設定部１４は、図５、図６で説明するように、（ｉ）同一の操作対象／同一の変数利用、及び（ｉｉ）各運用操作部品で利用する資源の流れ（変数の受け渡し）に基づいて、排他区間を自動的に決定する。具体的には、設定部１４は、連続する運用操作部品について、操作対象サーバが同じか否か、または操作対象サーバと操作内容（サービス、インストールするソフトウェア）が同じか否かに基づいて、排他区間を決定する。なお、［排他区間：Ａ］の“Ａ”を「排他区間名」と定義する。
【００４４】
例えば、操作対象がサーバＡの区間は、［排他区間：Ａ］で定義される。操作対象がサーバＢの区間は、［排他区間：Ｂ］で定義される。また、［排他区間：Ａ］において、ServiceXに対する操作の区間は［排他区間：Ａ＋Ｘ］で定義される。また、［排他区間：Ａ］において、InstallSoftYに対する操作の区間は［排他区間：Ａ＋Ｙ］で定義される。また、運用操作部品の出力情報が後続の運用操作部品の入力となっている区間は、［排他区間：Ｃ］される。
【００４５】
図５は、本実施形態における、同一の操作対象／同一の変数利用に基づいて、排他区間を決定する処理を説明するための図である。図５（Ａ）において、運用操作部品２２−１，２３−１について、操作対象サーバは、「サーバＡ」で同じであり、サービスも「サービスＸ」で同じである。この場合、設定部１４は、運用操作部品２２−１，２３−１について、［排他区間：Ａ＋Ｘ］と決定する。
【００４６】
運用操作部品２４−１について、操作対象サーバは、サーバＡである。この場合、設定部１４は、運用操作部品２４−１について、［排他区間：Ａ］と決定する。
【００４７】
運用操作部品２５−１，２５−６について、操作対象サーバは、サーバＢである。この場合、設定部１４は、運用操作部品２５−１，２５−６について、［排他区間：Ｂ］と決定する。
【００４８】
図６は、本実施形態における、各運用操作部品で利用する資源の流れ（変数の受け渡し）に基づいて、排他区間を決定する処理を説明するための図である。設定部１４は、運用操作部品の出力値が後続の運用操作部品の入力値になっているか否かに基づいて、排他制御の範囲を選定する。
【００４９】
図６に示すように、サーバＣから取得したイベントログ（ログ情報）がデータベース（ＤＢ）サーバに格納される場合、設定部１４は、その区間について［排他区間：Ｃ］と定義する。
【００５０】
各排他区間におけるロックの競合関係は、排他区間名が以下のいずれかの場合である。
・排他を獲得する排他区間名が、排他獲得済みの排他区間名と部分一致する。
【００５１】
・排他獲得済みの排他区間名が、排他を獲得する排他区間名と部分一致する。
したがって、設定部１４は、排他を獲得する排他区間名が、排他獲得済みの排他区間名と部分一致するか、または排他獲得済みの排他区間名が、排他を獲得する排他区間名と部分一致するかを判定する。排他を獲得する排他区間名が、排他獲得済みの排他区間名と部分一致すると判定した場合、設定部１４は、排他ロックが競合関係にあると判定する。また排他獲得済みの排他区間名が、排他を獲得する排他区間名と部分一致すると判定した場合、設定部１４は、排他ロックが競合関係にあると判定する。
【００５２】
図７は、図５及び図６の場合の排他区間のロックの競合関係を説明するための図である。例えば、排他獲得済みの排他区間が［排他区間：Ａ］の場合であって、排他を獲得する排他区間が［排他区間：Ａ］、［排他区間： Ａ＋Ｘ］または［排他区間： Ａ＋Ｙ］の場合、排他ロックは競合関係になる。一方、排他獲得済みの排他区間が［排他区間：Ａ］の場合であって、排他を獲得する排他区間が［排他区間：Ｂ］、または［排他区間：Ｃ］の場合、排他ロックは競合関係にならない。
【００５３】
＜ワークフローの動作時の処理＞
次に、ワークフローの動作時の処理について説明する。
【００５４】
図８は、本実施形態におけるワークフローの動作時の処理（Ｓ３）を行うフローチャートの一例である。図８は、図２のＳ３の詳細なフローを示す。ワークフローが起動すると（Ｓ３−１）、排他制御部１２は、ワークフローの内容を取得し、分析する（Ｓ３−２）。起動したワークフロー中の運用操作部品が実行される場合（Ｓ３−３で「Ｎｏ」）、排他制御部１２は、起動したワークフローにおいて、排他区間の調整及び決定を行う（Ｓ３−４）。そして、排他制御部１２は、動作中のワークフローにおいて、排他区間の調整及び決定を行う（Ｓ３−５）。ワークフロー実行部１６は、その調整及び決定結果に基づいて、運用操作部品を実行するように、業務サーバ１８に命令する（Ｓ３−６）。すべての運用操作部品について、Ｓ３−４〜Ｓ３−６の処理が行われる。
【００５５】
図８のＳ３−２，Ｓ３−４，Ｓ３−５に関して、以下に詳細を示す。
（１）ワークフローの内容を取得・分析の詳細
ワークフロー起動時に、排他制御部１２は、実行優先度を以下の処理を行って決定する。まず、排他制御部１２は、予め運用自動化サーバ１１の記憶装置に登録された、ワークフローに定義されている運用操作部品及び利用する資源の情報を取得する。次に、排他制御部１２は、各運用操作部品で利用する資源の情報（操作対象の情報/変数の内容）に基づいて、図２のＳ２を再度実施し、次の場合に排他区間を再設定する。すなわち、排他制御部１２は、異なる変数が入力される排他区間において、その変数が同じ値に変更された場合にはその排他区間を結合する。また、排他制御部１２は、同じ変数で設定した排他区間において、その変数の内容が変更された場合にその排他区間を分割する。
【００５６】
図９は、本実施形態における、異なる変数で設定した排他区間において、その変数が同じ値に変更された場合、その排他区間を結合することを説明するための図である。排他区間の結合前では、運用操作部品２２−１〜２４−１については、［排他区間：Ａ］が設定され、運用操作部品２５−１〜２６−１については、［排他区間：Ｂ］が設定されている。
【００５７】
その後、ワークフローが実行されて、変数の値に変化が生じたとする。運用操作部品２２−１〜２４−１に設定された変数Ａの値は「ServerA」である。運用操作部品２５−１〜２６−１に設定された変数Ｂの値は「ServerB」である。この場合、隣接する［排他区間：Ａ］と［排他区間：Ｂ］において、変数Ａの値と変数Ｂの値が同じなので、［排他区間：Ａ］と［排他区間：Ｂ］を結合し、［排他区間：Ａ］とする。
【００５８】
図１０は、本実施形態における、同じ変数で設定した排他区間において、変数の内容が変更された場合、排他区間を分割することについて説明するための図である。排他区間の分割前では、運用操作部品２２−１〜２６−１については、［排他区間：Ａ］が設定されている。
【００５９】
その後、ワークフローが実行されて、変数の値に変化が生じたとする。運用操作部品２２−１〜２３−１に設定された変数Ａの値は「ServerA」である。運用操作部品２４−１〜２６−１に設定された変数Ａの値は「ServerB」である。この場合、運用操作部品２２−１〜２３−１と運用操作部品２４−１〜２６−１の間で、変数Ａの値が異なるので、［排他区間：Ａ］を分割し、［排他区間：Ａ］と［排他区間：Ｂ］を形成する。
【００６０】
次に、排他制御部１２は、以下の式（１）に従い、ワークフローを起動したユーザと、ワークフローの起動の仕方と、完了予定時間までの残り時間とに応じて、操作緊急度を決定する。
【００６１】
操作緊急度 ＝ユーザ係数×起動方式係数×時間係数   (1)
ユーザ係数は、ワークフローを起動したユーザのユーザ係数である。ユーザ係数の例としては、例えば、管理者ユーザの場合には、ユーザ係数＝3.0が設定される。一般ユーザの場合には、ユーザ係数＝2.0が設定される。
【００６２】
起動方式係数としては、例えば、ワークフローの起動が手動起動の場合には起動方式係数＝2.0が設定される。ワークフローの起動が時間指定によるスケジュール起動の場合には起動方式係数＝1.0が設定される。ワークフローの起動が監視製品からの通知による起動の場合には起動方式係数＝ 3.0が設定される。
【００６３】
時間係数としては、例えば、完了予定時間までの残り時間10分以内の場合には時間係数＝2.0が設定される。 完了予定時間までの残り時間20分以内の場合には時間係数＝1.5が設定される。それ以外、または、完了予定時間指定なしの場合には時間係数＝1.0が設定される。
【００６４】
次に、排他制御部１２は、以下の式（２）に従い、ワークフローの実行優先度を仮決定する。
【００６５】
実行優先度  ＝  Σ操作重要度  ×  操作緊急度   (2)
図１１は、本実施形態における、ワークフローの実行優先度の仮決定について説明するための図である。ワークフローＡについて、例えば、ユーザ係数:2.0、起動方式係数:1.0、時間係数:1.5が設定されているとする。運用操作部品２２−１の操作重要度は、「２」であり、運用操作部品２３−１の操作重要度は、「１」であるから、Σ操作重要度 = 2 + 1 = 3となる。式（１）より、操作緊急度 = 2.0 × 1.0 ×1.5 = 3.0が算出される。よって、式（２）より、実行優先度は、3.0×3.0＝9.0となる。
【００６６】
（２）ワークフローの動作中に仮決定されたワークフローの排他区間の調整・決定
次に、排他制御部１２は、ワークフローの動作中に仮決定されたワークフローの排他区間の調整・決定を行う。ワークフローが動作した場合、排他制御部１２は、ワークフローの分岐や運用操作部品の処理結果によって、実行優先度を変更する。また、排他制御部１２は、実行優先度に応じて、実行している運用操作部品の次の運用操作部品を、即時実行させるか待たせるかを決定する。これらの処理は、以下の手順（I）〜（Ｖ）により実行される。
（I）排他制御部１２は、ワークフロー実行部１６から所定の通知を受信する。
（II）排他制御部１２は、前述した「（１）ワークフローの内容を取得・分析の詳細」の処理を実施し、排他区間と実行優先度を決定し直す。
（III）排他制御部１２は、上記（II）で再決定した排他区間と実行優先度を記憶装置に格納する。
（IV）排他制御部１２は、実行中のワークフローのうち、最も大きい実行優先度を持つ排他区間を抽出する。
（V）排他制御部１２は、次の運用操作部品を即時実行するか待たせるかを判断する。ここでは、排他制御部１２は、対象となるワークフローの排他取得が決定した場合、運用操作部品を実行する。他のワークフローの排他取得が優先となった場合、排他制御部１２は、その実行作業を遅延させる。
【００６７】
上記（IV）（V）の処理について、図１２〜図１７を用いて説明する。
図１２〜図１５は、実行中のワークフローのうち最も大きい実行優先度を持つ排他区間の抽出処理、及び次の運用操作部品を即時実行するか待たせるかを判断する処理について説明するための図である。図１２〜図１５では、ワークフローＡ，Ｂ，Ｃを並列に実行させる場合について説明する。図１２〜図１５の各ワークフローにおいて、下向きの三角マークは、現在の処理位置を示す。また、後述する排他権（実行権）を獲得している間、そのワークフローは、処理を実行することができる。
【００６８】
図１２において、ワークフローＡの［排他区間：Ａ＋Ｘ］について処理しようとした場合、ワークフローＣの［排他区間：Ａ＋Ｘ］の実行優先度が高いため、ワークフローＡはワークフローＣの排他が解放されるまで待ち状態になる（Ｓ１１）。
【００６９】
ワークフローＢの［排他区間：Ａ＋Ｙ］は［排他区間：Ａ＋Ｘ］と競合関係にないため、ワークフローＢは排他権（実行権）を獲得する（Ｓ１２）。
【００７０】
ワークフローCの［排他区間：Ａ＋Ｘ］については、現時点でのワークフローＡ，Ｂ，Ｃの排他区間で、最も実行優先度が高いため、ワークフローＣは、排他権（実行権）を獲得する（Ｓ１３）。
【００７１】
図１３に示すように、ワークフローＣの［排他区間：Ａ＋Ｘ］の処理が完了した場合、［排他区間：Ａ＋Ｘ］の排他状態が解放される。その結果、ワークフローＡの［排他区間：Ａ＋Ｘ］が最も実行優先度が高いため、ワークフローＡは、排他権（実行権）する（Ｓ１４）。
【００７２】
ワークフローＣの［排他区間：Ａ］について、ワークフローＣは、ワークフローＡの［排他区間：Ａ＋Ｘ］の排他状態が解放されるまで、ワークフローＣは、待ち状態になる（Ｓ１５）。
【００７３】
図１４に示すように、ワークフローＡの［排他区間］：Ａ＋Ｘ］の処理が完了した場合、［排他区間：Ａ＋Ｘ］の排他状態が解放される。それから、ワークフローＢとＣの［排他区間：Ａ］において、実行優先度が同じ場合、管理者権限のため（すなわち、ユーザ係数が最も大きいため）、ワークフローＣが優先して排他権（実行権）を獲得する（Ｓ１６）。
【００７４】
ワークフローＡ，Ｂの［排他区間：Ａ］について、ワークフローＣの［排他区間：Ａ］の排他状態が解放されるまで、ワークフローＡ，Ｂは、待ち状態になる（Ｓ１７）。
【００７５】
図１５に示すように、ワークフローＣの［排他区間：Ａ］の処理が完了した場合、［排他区間：Ａ］の排他状態が解放される。その結果、ワークフローＢの［排他区間：Ａ］が最も実行優先度が高いため、ワークフローＢは排他権（実行権）を獲得する（Ｓ１８）。
【００７６】
ワークフローＡの［排他区間：Ａ］について、ワークフローＢの［排他区間：Ａ］の排他状態が解放されるまで、ワークフローＡは待ち状態になる（Ｓ１９）。
【００７７】
次に、ワークフロー実行中に実行優先度が変更された場合のワークフローの排他権（実行権）獲得例について説明する。
【００７８】
図１６及び図１７は、ワークフロー実行中に実行優先度が変更された場合のワークフローの排他権（実行権）獲得例について説明するための図である。
【００７９】
図１６に示すように、ワークフローＡの［排他区間：Ａ］について、ワークフローＡが排他権（実行権）を獲得した場合、ワークフローＢは［排他区間：Ａ］の排他権（実行権）の獲得前であるが、ワークフローＢの実行優先度が最も高い。このため、ワークフローＡの［排他区間：Ａ］について、ワークフローＢの［排他区間：Ａ］についてワークフローＢが排他権（実行権）の獲得後、排他状態が解放されるまで、ワークフローＡは待ち状態となる（Ｓ２１）。
【００８０】
図１７に示すように、時間経過により、時間係数が変化する。その結果、ワークフローＡの［排他区間：Ａ］の実行優先度が変更する（Ｓ２２）。すると、ワークフローＡの[排他区間：Ａ］の実行優先度が最も高くなるため、ワークフローＡは、排他権（実行権）を獲得して処理を行う（Ｓ２３）。
【００８１】
＜ワークフローの実行履歴の表示＞
図１８は、本実施形態におけるワークフローの実行履歴の表示について説明するための図である。排他制御部１２は、動的に決定した排他区間および排他の制御状態（獲得している排他権（実行権）や待ち時間）をデータベースに記録する（Ｓ３１）。
【００８２】
排他制御部１２は、記録した排他区間および排他の制御状態を、パーソナルコンピュータ等の端末装置４１に通知する（Ｓ３２）。これにより、利用者は端末装置４１から排他の実行状況を容易に確認することが可能になる。
【００８３】
図１９は、本実施形態における端末の画面の表示例を示す。図１９に示すように、各ワークフローにおいて、獲得した排他権による排他済状態（実行済状態）、排他権未獲得の排他区間、排他解放待ち状態が端末の画面に表示される。
【００８４】
以下では、本実施形態の実施例をより具体的に説明する。
図２０は、本実施形態の実施例における、運用システムを示す。運用システムは、運用自動化サーバ１１、１以上の業務サーバ１８を含む。業務サーバ１８は、業務サーバＡ（１８−１），Ｂ（１８−２），Ｃ（１８−３）を含む。業務サーバＡ（１８−１），Ｂ（１８−２），Ｃ（１８−３）は、各種の業務処理を実行する。運用自動化サーバ１１は、業務サーバＡ（１８−１），Ｂ（１８−２），Ｃ（１８−３）の運用を自動化して管理するサーバである。
【００８５】
図２１は、本実施形態の実施例における、運用自動化サーバを示す。運用自動化サーバ１１は、排他制御部１２、ワークフロー実行部１６（１６−１，１６−２，１６−３）、データベース（ＤＢ）５１を含む。
【００８６】
ワークフロー実行部１６は、どのような排他制御を行うかを排他制御部１２に問い合わせ（Check）、排他制御部１２からの応答（Action）に基づいて、業務サーバ１８（１８−１，１８−２，１８−３）にワークフローに基づいた処理を実行させる。
【００８７】
排他制御部１２は、各ワークフロー実行部１６（１６−１，１６−２，１６−３）からの問い合わせ（Check）に基づいて、ワークフローの排他制御を行い、ワークフロー実行部１６（１６−１，１６−２，１６−３）の動作を制御する（Action）。
【００８８】
ＤＢ５１は、ワークフロー管理テーブル６１、運用操作部品定義テーブル６２、変数管理テーブル６３、インスタンス管理テーブル６４、排他情報管理テーブル６５、排他獲得履歴テーブル６６を格納する。さらに、ＤＢ５１は、ユーザ係数テーブル６７、起動方式係数テーブル６８、時間係数テーブル６９を格納する。
【００８９】
図２２は、本実施形態の実施例におけるワークフロー管理テーブルの一例を示す。ワークフロー管理テーブル６１は、各ワークフローに含まれる運用操作部品を管理するテーブルであり、ワークフローの登録時に生成される。
【００９０】
ワークフロー管理テーブル６１は、「ワークフローＮｏ．」６１−１、「部品Ｎｏ．」６１−２、「運用操作部品名」６１−３、「操作対象」６１−４、「操作サービス、資源」６１−５、「出力」６１−６、「次の部品Ｎｏ．」６１−７のデータ項目を含む。
【００９１】
「ワークフローＮｏ．」６１−１には、ワークフローを識別する番号が格納される。「部品Ｎｏ．」６１−２には、そのワークフローにおける運用操作部品の番号が格納される。「運用操作部品名」６１−３には、運用操作部品の名称（操作内容）が格納される。
【００９２】
「操作対象」６１−４には、操作対象となるサーバ、デバイス等の名称に対応する変数が入力値として格納される。「操作サービス、資源」６１−５には、操作するサービス名、資源名に対応する変数が入力値として格納される。「出力」６１−６には、出力値が設定される変数が格納される。「次の部品Ｎｏ．」６１−７には、そのワークフローにおいて、次に実行する運用操作部品の部品Ｎｏ．が格納される。
【００９３】
図２３は、本実施形態の実施例における運用操作部品定義テーブルの一例を示す。運用操作部品定義テーブル６２は、運用操作部品の定義情報が予め格納されている。運用操作部品定義テーブル６２は、「運用操作部品名」６２−１、「部品種別」６２−２、「操作／確認対象」６２−３、「操作重要度」６２−４のデータ項目を含む。
【００９４】
「運用操作部品名」６２−１には、運用操作部品の名称（操作内容）が格納される。「部品種別」６２−２には、運用操作部品の種別（操作系部品、確認系部品、通知系部品、設定系部品等）が格納される。「操作／確認対象」６２−３には、その運用操作部品の操作の対象または確認の対象が格納される。「操作重要度」６２−４には、その運用操作部品の操作重要度が格納される。
【００９５】
図２４は、本実施形態の実施例における変数管理テーブルの一例を示す。変数管理テーブル６３は、定義されたワークフロー情報の実体を識別する情報であるインスタンスで利用される変数名及び変数値を管理する。変数管理テーブル６３は、「インスタンスＮｏ．」６３−１、「ワークフロー」６３−２、「変数名」６３−３、「変数値」６３−４のデータ項目を含む。
【００９６】
「インスタンスＮｏ．」６３−１には、定義されたワークフロー情報の実体を示すインスタンスを識別するＮｏ．が格納される。「ワークフローＮｏ．」６３−２には、ワークフローＮｏ．が格納される。「変数名」６３−３には、変数名が格納される。「変数値」６３−４には、その変数に設定されている値が格納される。
【００９７】
図２５は、本実施形態の実施例におけるインスタンス管理テーブルの一例を示す。インスタンス管理テーブル６４は、インスタンス単位で管理する情報が格納される。インスタンス管理テーブル６４は、「インスタンスＮｏ．」６４−１、「ワークフローＮｏ．」６４−２、「部品Ｎｏ．（現在）」６４−３、「ホスト名」６４−４、「サービス名」６４−５、「ユーザＩＤ」６４−６、「起動方式係数」６４−７、「排他Ｎｏ．」６４−８、「完了予定時間」６４−９のデータ項目を含む。
【００９８】
「インスタンスＮｏ．」６４−１には、インスタンスＮｏ．が格納される。「ワークフローＮｏ．」６４−２には、ワークフローＮｏ．が格納される。「部品Ｎｏ．（現在）」６４−３には、そのワークフローの現在の処理位置に対応する運用操作部品の部品Ｎｏ．が格納される。
【００９９】
「ホスト名」６４−４には、ホスト名が格納される。「サービス名」６４−５には、サービス名が格納される。「ユーザＩＤ」６４−６には、ユーザを識別する情報（ユーザＩＤ）が格納される。
【０１００】
「起動方式係数」６４−７には、起動方式係数が格納される。「排他Ｎｏ．」６４−８には、排他区間を識別する番号が格納される。「完了予定時間」６４−９には、ワークフローの完了予定時間が格納される。
【０１０１】
図２６は、本実施形態の実施例における排他情報管理テーブルの一例を示す。排他情報管理テーブル６５は、排他区間に関する情報を管理する。排他情報管理テーブル６５は、「排他Ｎｏ．」６５−１、「部品Ｎｏ．（ロック開始）」６５−２、「部品Ｎｏ．（ロック解除）」６５−３、「実行優先度」６５−４、「操作緊急度」６５−５のデータ項目を含む。
【０１０２】
「排他Ｎｏ．」６５−１には、排他区間を識別する番号が格納される。「部品Ｎｏ．（ロック開始）」６５−２には、その排他区間の開始の運用操作部品の部品Ｎｏ．が格納される。「部品Ｎｏ．（ロック解除）」６５−３には、その排他区間の最後の運用操作部品の部品Ｎｏ．が格納される。「実行優先度」６５−４には、その排他区間の実行優先度が格納される。「操作緊急度」６５−５には、その排他区間の操作緊急度が格納される。
【０１０３】
図２７は、本実施形態の実施例における排他情報管理テーブルの一例を示す。排他獲得履歴テーブル６６は、排他区間の排他権（実行権）の獲得の履歴情報を管理する。排他獲得履歴テーブル６６は、「インスタンスＮｏ．」６６−１、「ワークフローＮｏ．」６６−２、「排他区間Ｎｏ．」６６−３、「開始待ち時間」６６−４、「開始時刻」６６−５、「完了時刻」６６−６のデータ項目を含む。
【０１０４】
「インスタンスＮｏ．」６６−１には、インスタンスＮｏ．が格納される。「ワークフローＮｏ．」６６−２には、ワークフローＮｏ．が格納される。「排他区間Ｎｏ．」６６−３には、排他区間のＮｏ．が格納される。「開始待ち時間」６６−４には、その排他区間が排他権（実行権）を獲得するまでの待ち時間が格納される。「開始時刻」６６−５には、その排他区間が排他権（実行権）を獲得する時刻が格納される。「完了時刻」６６−６には、その排他区間が排他権（実行権）を獲得して、処理を実行した場合の完了時刻が格納される。
【０１０５】
図２８は、本実施形態の実施例におけるユーザ係数テーブルの一例を示す。ユーザ係数テーブル６７には、ユーザ毎のユーザ係数が予め格納されている。ユーザ係数テーブル６７は、「ユーザＩＤ」６７−１、「ユーザ係数」６７−２のデータ項目を含む。「ユーザＩＤ」６７−１には、ユーザを識別する情報（ユーザＩＤ）が格納される。「ユーザ係数」６７−２には、そのユーザIDのユーザ係数が格納される。
【０１０６】
図２９は、本実施形態の実施例における起動方式係数テーブルの一例を示す。起動方式係数テーブル６８は、「起動方法」６８−１、「起動方式係数」６８−２のデータ項目を含む。「起動方法」６８−１には、ワークフローの起動方法が格納される。「起動方式係数」６８−２には、その起動方法の起動方式係数が格納される。
【０１０７】
図３０は、本実施形態の実施例における時間係数テーブルの一例を示す。時間係数テーブル６９は、「残り時間」６９−１、「時間係数」６９−２のデータ項目を有する。「残り時間」６９−１には、完了予定時刻までの残り時間が格納される。「時間係数」６９−２には、その残り時間に対応する時間係数が格納される。
【０１０８】
図３１は、本実施形態の実施例におけるワークフロー実行部による処理フローの一例を示す。ワークフロー実行部１６は、排他制御部１２に対して、ワークフローの実行開始、及びワークフローの実行に際して用いる変数の情報を通知する（Ｓ４１）。変数に関する情報は、例えば、ワークフローを起動したユーザのユーザＩＤ、ワークフローの起動方式等の情報を含む。
【０１０９】
ワークフロー実行部１６は、排他制御部１２に対して、実行する運用操作部品と、その運用操作部品が用いる変数の情報を通知する（Ｓ４２）。ワークフロー実行部１６は、排他制御部１２から指示を受信し（Ｓ４３）、その指示の内容に従った処理を実行する（Ｓ４４）。それにより、ワークフロー実行部１６は、運用操作部品に対応する処理を業務サーバ１８に実行させる（Ｓ４５）。実行するワークフローにおいて、次の運用操作部品があれば（Ｓ４６で「Ｙｅｓ」）、Ｓ４２の処理へ戻る。実行するワークフローにおいて、すべての運用操作部品について処理が完了すれば（Ｓ４６で「Ｎｏ」）、本フローは終了する。
【０１１０】
図３２は、本実施形態の実施例における排他制御部の全体の処理フローの一例を示す。ワークフロー実行部１６からの通知があるまで（Ｓ５２で「Ｎｏ」）、排他制御部１２は、待ち状態になる（Ｓ５１）。
【０１１１】
ワークフロー実行部１６から、図３１のＳ４１でのワークフローの開始の通知があった場合（Ｓ５２で「Ｙｅｓ」、Ｓ５３で「Ｙｅｓ」）、排他制御部１２は、ワークフロー開始時の排他制御処理を行う（Ｓ５４）。その後、Ｓ５１へ処理が戻る。
【０１１２】
ワークフロー実行部１６から、図３１のＳ４２での通知があった場合（Ｓ５２で「Ｙｅｓ」、Ｓ５３で「Ｎｏ」）、排他制御部１２は、ワークフロー動作中の排他制御処理を行う（Ｓ５５）。その後、Ｓ５１へ処理が戻る。
【０１１３】
図３３は、本実施形態の実施例におけるワークフロー開始時の排他制御処理（Ｓ５４）のフローを示す。排他制御部１２は、ワークフロー管理テーブル６１から、実行対象のワークフロー情報を取得する（Ｓ６１）。
【０１１４】
排他制御部１２は、運用操作部品定義テーブル６２から、実行対象のワークフロー情報に含まれる「運用操作部品名」に対応する「部品種別」を取得する（Ｓ６１）。これにより、排他制御部１２は、実行対象のワークフロー情報に含まれる運用操作部品の種別を決定する。
【０１１５】
次に、排他制御部１２は、ワークフロー開始時に確定済みの変数情報を変数管理テーブル６３に記録する（Ｓ６３）。ワークフロー開始時に確定済みの変数情報とは、例えば、予め値が設定された変数、またはワークフロー実行部１６より渡された変数等である。
【０１１６】
次に、排他制御部１２は、開始するワークフローの排他情報を仮決定する（Ｓ６４）。Ｓ６４の処理については、図３４を用いて詳述する。
【０１１７】
次に、排他制御部１２は、仮決定した排他情報の実行優先度を計算する（Ｓ６５）。Ｓ６５の処理については、図３５を用いて詳述する。
【０１１８】
それから、排他制御部１２は、仮決定した排他情報をインスタンス管理テーブル６４に格納する。
【０１１９】
図３４は、本実施形態の実施例における排他情報仮決定処理のフローを示す。本フローは、図３２のＳ６４、及び後述する図３６のＳ９３の処理の詳細を示す。排他制御部１２は、ワークフロー管理テーブル６１から、対象のワークフローの運用操作部品の情報を取得する（Ｓ７１）。
【０１２０】
排他制御部１２は、運用操作定義テーブル６２を用いて、対象のワークフローに含まれる運用操作部品をモデル化する（Ｓ７２）。すなわち、排他制御部１２は、運用操作定義テーブル６２を用いて、対象のワークフローに含まれる運用操作部品を、対応する部品種別に変換する。
【０１２１】
排他制御部１２は、ワークフロー管理テーブル６１及び変数管理テーブル６３を用いて、対象のワークフローにおいて変数の値または変数名が連続している運用操作部品を抽出する。すなわち、排他制御部１２は、ワークフロー管理テーブル６１の「部品Ｎｏ．」６１−２及び「次の部品Ｎｏ．」６１−７から、対象のワークフロー内での部品種別（モデル化した運用管理部品）の処理順を判定する。それから、排他制御部１２は、変数管理テーブル６３を用いて、その処理順において同じ部品種別の変数の値または同じ変数名が連続するか否かを判定する。その結果、排他制御部１２は、ワークフロー管理テーブル６１から、その処理順において同じ部品種別の変数の値または同じ変数名が連続する運用操作部品（区間）を抽出する（Ｓ７３）。
【０１２２】
排他制御部１２は、ワークフロー管理テーブル６１の「操作対象」、「操作サービス、資源」、「出力」のデータ項目を用いて、その処理順に基づいて、運用操作部品の出力値が後続の運用操作部品の入力値になっている運用操作部品（区間）を抽出する（Ｓ７４）。
【０１２３】
排他制御部１２は、Ｓ７３またはＳ７４において、抽出した区間を排他区間として仮決定する（Ｓ７５）。
【０１２４】
排他制御部１２は、運用操作部品定義テーブル６２、ユーザ係数テーブル６７、起動方式係数テーブル６８、時間係数テーブル６９を用いて、仮決定した排他区間の実行優先度を仮決定する（Ｓ７６）。すなわち、排他制御部１２は、運用操作部品定義テーブル６２から、仮決定した排他区間に含まれる部品種別に対応する操作重要度を取得し、操作重要度同士を加算する。
【０１２５】
また、排他制御部１２は、ユーザ係数テーブル６７から、ワークフローを起動したユーザのユーザＩＤに対応するユーザ係数を取得する。また、排他制御部１２は、起動方式係数テーブル６８から、ワークフローの起動方法に対応する起動方式係数を取得する。
【０１２６】
また、排他制御部１２は、ワークフローの完了予定時刻と現時刻との差分から完了予定時刻までの残り時間を算出する。ここで、排他制御部１２は、予め登録されている各運用操作部品の完了までにかかる時間に基づいて、ワークフローの完了予定時刻を算出してもよい。また、排他制御部１２は、過去に実行したワークフローの履歴情報（排他獲得履歴テーブル６６）から取得した完了時刻を完了予定時刻としてもよい。
【０１２７】
排他制御部１２は、時間係数テーブル６９から、その算出した残り時間に対応する時間係数を取得する。そして、排他制御部１２は、上述した式（１）を用いて操作緊急度を算出し、上述した式（２）を用いて実行優先度を算出する。
【０１２８】
排他制御部１２は、インスタンス管理テーブル６４、排他情報管理テーブル６５に、仮決定した排他区間に関する情報（仮決定した排他区間、実行優先度、ユーザ係数、起動方式係数、操作緊急度等のＳ７３〜Ｓ７６で用いた情報）を格納する（Ｓ７７）。
【０１２９】
図３５は、本実施形態の実施例における排他情報の実行優先度計算処理のフローを示す。本フローは、図３２のＳ６５、及び後述する図３６のＳ９４の処理の詳細を示す。排他制御部１２は、インスタンス管理テーブル６４から、仮決定した排他区間に関する情報（ユーザ係数、起動方式係数、排他No.、完了予定時刻等）を取得する（Ｓ８１）。排他制御部１２は、運用操作部品定義テーブル６２から、その排他No.に対応する排他区間に含まれる部品種別及び操作重要度情報を取得する（Ｓ８２，Ｓ８３）。
【０１３０】
排他制御部１２は、Ｓ８１で取得した完了予定時刻から現在の時刻を差し引いて、完了予定時刻までの残り時間を算出し、時間係数テーブル６９から、その算出した残り時間に対応する時間係数を取得する。排他制御部１２は、上述した式（１）を用いて操作緊急度を算出し、上述した式（２）を用いて、その排他区間の実行優先度を算出する。排他制御部１２は、算出した操作緊急度及び実行優先度を排他情報管理テーブル６５に格納する（Ｓ８５）。
【０１３１】
図３６は、本実施形態の実施例におけるワークフロー動作中の排他制御処理（Ｓ５５）のフローを示す。排他制御部１２は、ワークフロー実行部１６から通知された情報に含まれる変数の情報（確定した変数の情報）または予め値が設定された変数を変数管理テーブル６３に格納する（Ｓ９１）。
【０１３２】
排他制御部１２は、インスタンス管理テーブル６４から、ワークフローの定義情報を取得する（Ｓ９２）。
【０１３３】
排他制御部１２は、仮決定した排他区間に関する情報を更新する（Ｓ９３）。Ｓ９３の処理の詳細は、図３４で説明したものと同様である。
【０１３４】
排他制御部１２は、実行優先度情報を更新する（Ｓ９４）。Ｓ９４の処理の詳細は、図３５で説明したものと同様である。
【０１３５】
排他制御部１２は、排他アクション動作を決定する（Ｓ９５）。Ｓ９５の処理については、図３７を用いて詳述する。
【０１３６】
図３７は、本実施形態の実施例における排他アクション決定処理のフローを示す。排他制御部１２は、対象のワークフローについて仮決定した排他区間に関する情報と実行優先度情報を取得する（Ｓ１０１）。ここでは、排他制御部１２は、インスタンス管理テーブル６４から、対象のワークフローについて仮決定した排他区間に関する情報（排他Ｎｏ．等）を取得する。排他制御部１２は、その排他Ｎｏ．をキーとして、排他情報管理テーブル６５から実行優先度を取得する。
【０１３７】
次に、排他制御部１２は、実行中のワークフローについて、ワークフローの実行状況、現在の排他区間に関する情報と実行優先度情報、仮決定された排他区間に関する予定情報と実行優先度情報を取得する（Ｓ１０２）。ここでは、排他制御部１２は、インスタンス管理テーブル６４を読み込んで、ワークフローの実行状況を取得する。
【０１３８】
排他制御部１２は、インスタンス管理テーブル６４及び排他情報管理テーブル６５から、実行中のワークフロー（対象のワークフローを除く）について現在の排他区間に関する情報を取得する。ここでは、まず、排他制御部１２は、インスタンス管理テーブル６４の「部品Ｎｏ．（現在）」６４−３から、ワークフローで現在の対象となっている運用操作部品（現在の処理位置）を判定する。排他制御部１２は、インスタンス管理テーブル６４及びワークフロー管理テーブル６１を用いて、その運用操作部品（現在の処理位置）がどの排他区間に含まれるかを判定する。排他制御部１２は、その判定した排他区間の排他Ｎｏ．をキーとして、排他情報管理テーブル６５から実行優先度を取得する。
【０１３９】
排他制御部１２は、インスタンス管理テーブル６４及び排他情報管理テーブル６５から、実行中のワークフロー（対象のワークフローを除く）について仮決定した排他区間に関する情報を取得する。ここでは、まず、排他制御部１２は、インスタンス管理テーブル６４から、ワークフローで現在の対象となっている運用操作部品（現在の処理位置）が属する排他区間以外の排他区間の情報を取得する。排他制御部１２は、その排他区間の排他Ｎｏ．をキーとして、排他情報管理テーブル６５から実行優先度を取得する。
【０１４０】
排他制御部１２は、対象のワークフロー及びＳ１０２において取得したワークフローのうち、実行優先度情報が最も大きいワークフローを抽出する（Ｓ１０３）。
【０１４１】
Ｓ１０３において抽出したワークフローが対象のワークフロー（通知したワークフロー実行部１６が実行するワークフロー）である場合、排他制御部１２は、対象のワークフローの処理を継続する旨の通知（Action）を、ワークフロー実行部１６に送信する。一方、抽出したワークフローが対象のワークフロー以外のワークフローである場合、排他制御部１２は、そのワークフローが排他権（実行権）を喪失するまで、ワークフロー実行部１６にActionを返信しないことにより、対象のワークフローを処理待ち状態にする。このとき、排他制御部１２は、排他獲得履歴テーブル６６に情報を登録または排他獲得履歴テーブル６６を更新する（Ｓ１０４）。例えば、排他権を獲得して処理を完了された排他区間の場合には、「完了時刻」６６−６の情報が更新される。また、排他解除待ちの排他区間であれば、「開始待ち時間」６６−４の情報が更新される。
【０１４２】
図３８は、本実施形態の実施例における画面表示のフローを示す。排他制御部１２は、端末４１から表示要求を受信すると（Ｓ１１１）、排他情報管理テーブル６５、排他獲得履歴テーブル６６から、排他区間に関する情報を取得する（Ｓ１１２）。すなわち、排他制御部１２は、既に排他権（実行権）を獲得した排他区間については、排他獲得履歴テーブル６６から排他区間に関する情報を取得する。排他制御部１２は、まだ排他権（実行権）を獲得していない排他区間については、排他情報管理テーブル６５から排他区間に関する情報を取得する。排他制御部１２は、その取得した排他区間に関する情報を端末４１へ通知する（Ｓ１１３）。
【０１４３】
図３９は、本実施形態の一実施例に係るコンピュータのハードウェア環境の構成ブロック図である。コンピュータ７０は、本実施形態の処理を行うプログラムを読み込むことにより、排他制御部１２として機能する。
【０１４４】
コンピュータ７０は、出力Ｉ／Ｆ７１、ＣＰＵ７２、ＲＯＭ７３、通信Ｉ／Ｆ７４、入力Ｉ／Ｆ７５、ＲＡＭ７６、記憶装置７７、読み取り装置７８、バス７９を含む。コンピュータ７０は、出力機器８１、入力機器８２と接続されている。
【０１４５】
ここで、ＣＰＵは、中央演算装置を示であり、プロセッサの一例である。ＲＯＭは、リードオンリメモリを示す。ＲＡＭは、ランダムアクセスメモリを示す。Ｉ／Ｆは、インターフェースを示す。バス７９には、出力Ｉ／Ｆ７１、ＣＰＵ７２、ＲＯＭ７３、通信Ｉ／Ｆ７４、入力Ｉ／Ｆ７５、ＲＡＭ７６、記憶装置７７、読み取り装置７８が接続されている。読み取り装置７８は、可搬型記録媒体を読み出す装置である。出力機器８１は、出力Ｉ／Ｆ７１に接続されている。入力機器８２は、入力Ｉ／Ｆ７５に接続にされている。
【０１４６】
記憶装置７７としては、ハードディスクドライブ、フラッシュメモリ装置、磁気ディスク装置など様々な形式の記憶装置を使用することができる。記憶装置７７またはＲＯＭ７３には、例えば、本実施形態で説明した処理を実現するプログラムが格納されている。
また、記憶装置７７またはＲＯＭ７３は、運用操作部品等を含めたワークフローデータ、ワークフロー管理テーブル６１、運用操作部品定義テーブル６２、変数管理テーブル６３、インスタンス管理テーブル６４等を格納する。さらに、記憶装置７７またはＲＯＭ７３は、排他情報管理テーブル６５、排他獲得履歴テーブル６６を格納する。さらに、ＤＢ５１は、ユーザ係数テーブル６７、起動方式係数テーブル６８、時間係数テーブル６９等を格納する。
【０１４７】
ＣＰＵ７２は、記憶装置７７またはＲＯＭ７３に格納した本実施形態で説明した処理を実現するプログラムを読み出し、当該プログラムを実行する。具体的には、ＣＰＵ７２は、当該プログラムを実行することにより、排他制御部１２（モデル化部１３、設定部１４、表示制御部１５）として機能する。
【０１４８】
本実施形態で説明した処理を実現するプログラムは、プログラム提供者側から通信ネットワーク８０、および通信Ｉ／Ｆ７４を介して、例えば記憶装置７７に格納してもよい。また、本実施形態で説明した処理を実現するプログラムは、市販され、流通している可搬型記憶媒体に格納されていてもよい。この場合、この可搬型記憶媒体は読み取り装置７８にセットされて、ＣＰＵ７２によってそのプログラムが読み出されて、実行されてもよい。可搬型記憶媒体としてはＣＤ−ＲＯＭ、フレキシブルディスク、光ディスク、光磁気ディスク、ＩＣカード、ＵＳＢメモリ装置など様々な形式の記憶媒体を使用することができる。このような記憶媒体に格納されたプログラムが読み取り装置７８によって読み取られる。
【０１４９】
また、入力機器８２には、キーボード、マウス、電子カメラ、ウェブカメラ、マイク、スキャナ、センサ、タブレット、タッチパネルなどを用いることが可能である。また、出力機器８１には、ディスプレイ、プリンタ、スピーカなどを用いることが可能である。また、ネットワーク８０は、インターネット、ＬＡＮ、ＷＡＮ、専用線、有線、無線等の通信網であってよい。
【０１５０】
本実施形態によれば、排他ロックを行う排他制御の単位を示す排他区間を動的に決定することができる。その結果、運用管理者は排他制御の負担から解放され、運用作業全体の効率化が図れる。また、大量の自動運用プロセスを作成しても、排他制御を追加する必要がないので、排他設計を行う必要がない。
【０１５１】
また、現時点での排他制御だけでなく、他のワークフローの排他取得を予測して排他制御することができる。これにより、最適な排他区間を動的に決定できるため、運用作業全体の効率が向上する。したがって、最適な排他区間の決定による運用作業全体の効率化を図ることができる。
【０１５２】
参照系の運用操作部品が対象サーバの操作後に情報を取得するため、最新の情報が取得できる。このため、運用作業の効率が向上する。よって、最新の情報に基づいて、ワークフローを動作させることができる。
【０１５３】
また、排他設定漏れ、排他設定解除漏れが起こらないため、排他についてのミスの発生を防止することができる。
【０１５４】
なお、本実施形態は、以上に述べた実施の形態に限定されるものではなく、本実施形態の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
【０１５５】
上記実施形態に関し、更に以下の付記を開示する。
（付記１）  情報処理装置に対する操作を定義した操作情報を含む操作手順を示す複数のワークフロー情報それぞれの、少なくとも１つ以上の前記操作情報に対して、排他ロックを行う排他制御の単位を示す排他区間を設定する設定部と、
前記各ワークフロー情報の排他区間に対応する操作情報に基づく操作を実行させる場合に、該操作情報の種別に応じた操作の重要度を示す操作重要度情報と、該操作の緊急度を示す操作緊急度情報とを用いて、前記排他区間の優先度を算出する算出部と、
前記排他区間同士が前記排他ロックの競合関係にある場合、前記優先度に基づいて、前記ワークフロー間の該排他区間の排他制御を行う排他実行部と、
を備えることを特徴とする排他制御装置。
（付記２）
前記設定部は、前記操作情報の操作対象、該操作対象及び該操作対象への入力情報、または前記操作情報間で受け渡される変数に応じて、少なくとも１つ以上の前記操作情報に対して、前記排他区間を設定する
ことを特徴とする付記１に記載の排他制御装置。
（付記３）  前記設定部は、前記各ワークフロー情報の連続する操作情報のうち、操作対象が同じ場合、該操作対象及び該操作対象への入力情報が同じ場合、または前記操作情報のうちのいずれかの操作情報で出力された変数が他の操作情報の入力情報となっている場合、該操作情報をグループ化し、該グループ化した前記操作情報に対して、前記排他区間を設定する
ことを特徴とする付記１に記載の排他制御装置。
（付記４）  前記設定部は、連続する前記排他区間において、該排他区間に含まれる操作にて用いる変数の値が同じ場合、該排他区間を結合し、該排他区間に含まれる操作により、該排他区間にて用いる変数の値が変更された場合、該排他区間を分割する
ことを特徴とする付記１〜３のうちいずれか１項に記載の排他制御装置。
（付記５）  前記排他制御装置は、さらに、
前記各ワークフロー情報に含まれる前記操作情報に対応する操作重要度、前記ワークフローを開始させたユーザに応じて重みづけされた第１の値、該ワークフローの開始の誘因に応じて重みづけされた第２の値、及び該ワークフローが完了するまでの残り時間に応じて重みづけされた第３の値が格納された関係情報格納部
を備え、
前記算出部は、前記関係情報格納部から、前記各ワークフロー情報に含まれる前記操作情報に対応する該操作重要度を取得し、前記排他区間毎に該操作重要度を加算し、前記関係情報格納部から、前記ワークフローを開始させたユーザに対応する前記第１の値、該ワークフローの開始の誘因に対応する前記第２の値、及び該ワークフローが完了するまでの残り時間に対応する前記第３の値を取得し、該第１の値、該第２の値、及び該第３の値を乗じて、前記操作緊急度を算出し、前記排他区間毎に加算した操作重要度と前記操作緊急度を乗じて、前記優先度を算出する
ことを特徴とする付記１〜４のうちいずれか１項に記載の排他制御装置。
（付記６）  前記排他実行部は、情報処理装置に対して操作指示をする操作指示部に対して、前記優先度の最も高い排他区間を有する前記ワークフロー情報のワークフローを実行する旨の通知を行う
ことを特徴とする付記１〜５のうちいずれか１項に記載の排他制御装置。
（付記７）  前記排他制御装置は、さらに、
前記排他制御に基づいて、排他制御された前記排他区間及び排他制御される前記排他区間を示す情報を出力する表示制御部
を備えることを特徴とする付記１〜６のうちいずれか１項に記載の排他制御装置。
（付記８）  コンピュータに、
情報処理装置に対する操作を定義した操作情報を含む操作手順を示す複数のワークフロー情報それぞれの、少なくとも１つ以上の前記操作情報に対して、排他ロックを行う排他制御の単位を示す排他区間を設定し、
前記各ワークフロー情報の排他区間に対応する操作情報に基づく操作を実行させる場合に、該操作情報の種別に応じた操作の重要度を示す操作重要度情報と、該操作の緊急度を示す操作緊急度情報とを用いて、前記排他区間の優先度を算出し、
前記排他区間同士が前記排他ロックの競合関係にある場合、前記優先度に基づいて、前記ワークフロー間の該排他区間の排他制御を行う
処理を実行させることを特徴とする排他制御プログラム。
（付記９）
前記排他区間の設定において、前記操作情報の操作対象、該操作対象及び該操作対象への入力情報、または前記操作情報間で受け渡される変数に応じて、少なくとも１つ以上の前記操作情報に対して、前記排他区間を設定する
処理を実行させることを特徴とする付記８に記載の排他制御プログラム。
（付記１０）
前記排他区間の設定において、前記各ワークフロー情報の連続する操作情報のうち、操作対象が同じ場合、該操作対象及び該操作対象への入力情報が同じ場合、または前記操作情報のうちのいずれかの操作情報で出力された変数が他の操作情報の入力情報となっている場合、該操作情報をグループ化し、該グループ化した前記操作情報に対して、前記排他区間を設定する
処理を実行させることを特徴とする付記９に記載の排他制御プログラム。
（付記１１）  前記排他区間の設定において、連続する前記排他区間において、該排他区間に含まれる操作にて用いる変数の値が同じ場合、該排他区間を結合し、該排他区間に含まれる操作により、該排他区間で用いる変数の値が変更された場合、該排他区間を分割する
処理を実行させることを特徴とする付記８〜１０のうちいずれか１項に記載の排他制御プログラム。
（付記１２）  前記優先度の算出において、前記各ワークフローに含まれる前記操作情報に対応する操作重要度、前記ワークフローを開始させたユーザに応じて重みづけされた第１の値、該ワークフローの開始の誘因に応じて重みづけされた第２の値、及び該ワークフローが完了するまでの残り時間に応じて重みづけされた第３の値が格納された関係情報格納部から、前記各ワークフローに含まれる前記操作情報に対応する操作重要度を取得し、前記排他区間毎に該操作重要度を加算し、前記関係情報格納部から、前記ワークフローを開始させたユーザに対応する前記第１の値、該ワークフローの開始の誘因に対応する前記第２の値、及び該ワークフローが完了するまでの残り時間に対応する前記第３の値を取得し、該第１の値、該第２の値、及び該第３の値を乗じて、前記操作緊急度を算出し、前記排他区間毎に加算した操作重要度と前記操作緊急度を乗じて、前記優先度を算出する
処理を実行させることを特徴とする付記８〜１１のうちいずれか１項に記載の排他制御プログラム。
（付記１３）  情報処理装置に対して操作指示をする操作指示部に対して、該排他区間の排他制御において、前記優先度の最も高い排他区間を有する前記ワークフロー情報のワークフローを実行する旨の通知を行う
処理を実行させることを特徴とする付記８〜１２のうちいずれか１項に記載の排他制御プログラム。
（付記１４）  前記コンピュータに、さらに、
排他制御に基づいて、排他制御された排他区間及び排他制御される排他区間を示す情報を出力する
処理を実行させることを特徴とする付記８〜１３のうちいずれか１項に記載の排他制御プログラム。
（付記１５）
コンピュータにより実行されるワークフローに関する排他制御方法であって、
前記コンピュータは、
情報処理装置に対する操作を定義した操作情報を含む操作手順を示す複数のワークフロー情報それぞれの、少なくとも１つ以上の前記操作情報に対して、排他ロックを行う排他制御の単位を示す排他区間を設定し、
前記各ワークフロー情報の排他区間に対応する操作情報に基づく操作を実行させる場合に、該操作情報の種別に応じた操作の重要度を示す操作重要度情報と、該操作の緊急度を示す操作緊急度情報とを用いて、前記排他区間の優先度を算出し、
前記排他区間同士が前記排他ロックの競合関係にある場合、前記優先度に基づいて、前記ワークフロー間の該排他区間の排他制御を行う
ことを特徴とする排他制御方法。
【符号の説明】
【０１５６】
１      排他制御装置
３      設定部
４      算出部
５      排他実行部
６      関係情報格納部
７      表示制御部
８      操作指示部
１１    運用自動化サーバ
１２    排他制御部
１３    モデル化部
１４    設定部
１５    表示制御部
１６（１６−１，１６−２，１６−３）    ワークフロー実行部
１７    記憶部
１８（１８−１，１８−２，１８−３）  業務サーバ
４１    端末装置
５１    ＤＢ
【図１】
2014006740.tif 000003
【図２】
2014006740.tif 000004
【図３】
2014006740.tif 000005
【図４】
2014006740.tif 000006
【図５】
2014006740.tif 000007
【図６】
2014006740.tif 000008
【図７】
2014006740.tif 000009
【図８】
2014006740.tif 000010
【図９】
2014006740.tif 000011
【図１０】
2014006740.tif 000012
【図１１】
2014006740.tif 000013
【図１２】
2014006740.tif 000014
【図１３】
2014006740.tif 000015
【図１４】
2014006740.tif 000016
【図１５】
2014006740.tif 000017
【図１６】
2014006740.tif 000018
【図１７】
2014006740.tif 000019
【図１８】
2014006740.tif 000020
【図１９】
2014006740.tif 000021
【図２０】
2014006740.tif 000022
【図２１】
2014006740.tif 000023
【図２２】
2014006740.tif 000024
【図２３】
2014006740.tif 000025
【図２４】
2014006740.tif 000026
【図２５】
2014006740.tif 000027
【図２６】
2014006740.tif 000028
【図２７】
2014006740.tif 000029
【図２８】
2014006740.tif 000030
【図２９】
2014006740.tif 000031
【図３０】
2014006740.tif 000032
【図３１】
2014006740.tif 000033
【図３２】
2014006740.tif 000034
【図３３】
2014006740.tif 000035
【図３４】
2014006740.tif 000036
【図３５】
2014006740.tif 000037
【図３６】
2014006740.tif 000038
【図３７】
2014006740.tif 000039
【図３８】
2014006740.tif 000040
【図３９】
2014006740.tif 000041