JPWO2014147711A1 - スケジュール決定装置及び決定方法 - Google Patents
スケジュール決定装置及び決定方法 Download PDFInfo
- Publication number
- JPWO2014147711A1 JPWO2014147711A1 JP2015506396A JP2015506396A JPWO2014147711A1 JP WO2014147711 A1 JPWO2014147711 A1 JP WO2014147711A1 JP 2015506396 A JP2015506396 A JP 2015506396A JP 2015506396 A JP2015506396 A JP 2015506396A JP WO2014147711 A1 JPWO2014147711 A1 JP WO2014147711A1
- Authority
- JP
- Japan
- Prior art keywords
- schedule
- operator
- time
- operations
- execution
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06311—Scheduling, planning or task assignment for a person or group
- G06Q10/063116—Schedule adjustment for a person or group
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06312—Adjustment or analysis of established resource schedule, e.g. resource or task levelling, or dynamic rescheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/103—Workflow collaboration or project management
Landscapes
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Engineering & Computer Science (AREA)
- Strategic Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Economics (AREA)
- General Business, Economics & Management (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Development Economics (AREA)
- Educational Administration (AREA)
- Game Theory and Decision Science (AREA)
- Data Mining & Analysis (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
シナリオを構成するオペレーションを実行するオペレータのスケジュールを確保し、オペレーションの終了予定時刻がデッドライン時刻を満足するとき、確保したスケジュールを表示する。オペレータによるオペレーションの開始予定時刻が所定時間内のオペレーションをグループ化し、グループの中で最も開始予定時刻が早い開始予定時刻から最も終了予定時刻が遅い終了予定時刻までの時間をオペレータの拘束時間とする。グループの中の調整可能なオペレーションを再スケジュールし、再スケジュールしたオペレーションを含むグループの、最も開始予定時刻が早い開始予定時刻から最も終了予定時刻が遅い終了予定時刻までの時間を新たな拘束時間として求め、新たな拘束時間が先に求めた拘束時間より短いとき、新たな拘束時間及び再スケジュールしたスケジュールを表示する。
Description
本発明は、クラウドサービス運用のために、オペレータが実行する手作業のオペレーションやソフトウェアが実行するオペレーションの実行スケジュールを決定するスケジュール決定装置及び決定方法に関するものである。
クラウドサービス運用のためには、運用管理コスト(OPEX)の低減が不可欠であり、オペレータがいかに効率よくサービス運用するかが鍵となっている。クラウドサービス運用では、サービスを受ける顧客の要望に応じて、クラウドサービスを構成するインフラのいくつかの定型的な運用作業フロー(運用定型フロー)に従ってオペレータが作業する。オペレータを統括する管理者がオペレータにクラウドサービスの運用作業フローを割当てる。オペレータは、管理者から割当てられた運用作業フローに従って作業する。オペレータが同時に複数の運用作業フローを割当てられることもある。
このような運用作業フローは複数のオペレーション((オペレーションは、さらに複数のタスクに細分されることもある。)から構成される一連の処理となっていて、オペレータは各オペレーションに対応する管理ソフトを順次呼び出して実行するのが通常である。最近では、ITの運用管理コスト低減や操作ミス低減を目的として、このような運用作業フローを極力自動実行する傾向にある。このような自動実行を支援する代表的な技術としてはRun Book Automation(RBA)がある。
また、特許文献1では、業務プロセスを自動化するために業務手順をワークフローとして定義して、ワークフロー制御装置によりワークフローを構成する各手続を順序実行する内容を開示している。上記に挙げたRBA技術は、特許文献1が示す業務プロセスの自動実行技術を運用管理のオペレーションに適用したものとも見ることができる。
さらに、特許文献2では、機器とその作業者のスケジュールを管理する技術を開示している。機器の利用占有時間や作業者の作業時間をずらして、機器の利用占有時間の重複がないようにスケジュール調整する。
運用定型フローが示す一連のオペレーションには、承認タスク、目視確認タスク、及びAPIが提供されておらずGUIを介して作業するしかないタスクが必ず存在するので、RBAでも、運用定型フローも完全自動実行は難しい。このような人の作業(承認、目視確認、GUIを介した作業)を必要とするタスク(手作業タスク)があるときに、順次作業が割り当てられると、オペレータ(承認タスクについては承認者)を人手作業で拘束するので、オペレータは他のオペレーションなどの作業ができなくなる。そこで、オペレータを拘束する時間を短縮するオペレーション実行スケジュール決定装置及び決定方法が必要となる。
開示するスケジュール決定装置は、管理端末と接続した管理サーバによって実現される。管理サーバは、管理端末からシナリオの実行要求を受け付け、シナリオを構成するオペレーションの開始予定時刻と終了予定時刻を決定し、これらの時刻を満足するオペレーションを実行するオペレータ及び機器のスケジュールを確保し、確保したスケジュールによるオペレーションの終了予定時刻が、実行要求に含まれるデッドライン時刻を満足するとき、確保したスケジュールを管理端末に表示する実行スケジュール管理部、並びに、管理端末からオペレータの拘束時間の表示要求を受け付け、オペレータのスケジュールを取得し、取得したスケジュールのオペレーションの開始予定時刻が所定時間内のオペレーションをグループ化し、グループ化したオペレーションの中で、最も開始予定時刻が早いオペレーションの開始予定時刻から最も終了予定時刻が遅いオペレーションの終了予定時刻までの時間をオペレータの拘束時間として求めて、管理端末に表示するスケジュール評価部を有し、実行スケジュール管理部は、管理端末からオペレータのスケジュールの変更要求を受け付け、オペレータのスケジュールを取得し、取得したスケジュールのオペレーションの開始予定時刻が所定時間内のオペレーションをグループ化し、グループ化したオペレーションの中でスケジュールを調整可能なオペレーションがあるとき、調整可能なオペレーションを再スケジュールし、再スケジュールしたオペレーションを含むグループの、最も開始予定時刻が早いオペレーションの開始予定時刻から最も終了予定時刻が遅いオペレーションの終了予定時刻までの時間をオペレータの新たな拘束時間として求め、新たな拘束時間がスケジュール評価部が求めた拘束時間より短いとき、新たな拘束時間及び再スケジュールしたスケジュールを含むオペレータのスケジュールを管理端末に表示する。
本発明によれば、オペレータを拘束する時間を短縮するオペレーション実行スケジュールを決定できる。
以下、発明を実施するための形態を説明する。本実施形態では、オペレータの手作業タスクを含む複数のオペレーションから構成されるオペレーションシナリオの実行要求に応答して、手作業を含むオペレーションの実行順序と実行タイミングを調整してオペレーションの実行順序と実行タイミングを決定する。この決定において、実行開始時刻の近い手作業タスクを含むオペレーションをグループ化し、各グループ内でオペレーションの、最も早い開始時刻から最も遅い終了時刻までの時間をオペレータの拘束時間とし、この拘束時間が短くなるように実行タイミングと実行順序に決定する。
図1は、オペレーションの実行スケジュールを決定する管理サーバとその管理対象を示すシステム構成図である。管理サーバは、スケジュール決定装置として機能する。本システムは、管理サーバ101と管理端末102が、管理用IPネットワーク107を介して接続されている。管理サーバ101は、管理用IPネットワーク107を介して管理対象のサーバやストレージ装置などクラウドサービスを提供するための機器に接続しているが図示を省略する。
管理サーバ101は、オペレーションの実行順序や実行タイミングを決定するスケジューリングを行う。管理サーバ101は、一般的な計算機で構成でき、中央演算装置111、主記憶装置112、外部記憶装置113を備えている。
主記憶装置112には、実行スケジュール評価部130と、実行スケジュール管理部131と、オペレータスケジュール管理部132と、機器スケジュール管理部133と、シナリオ実行部134とが格納され、中央演算装置111に読み込まれることにより各処理部の機能を実行する。
実行スケジュール評価部130は、オペレーションのスケジュールを評価する。具体的には、現在の手作業タスクを含むオペレーションのスケジュールに基づいて、オペレータの拘束時間を算出し、現在のスケジュールを評価する。
実行スケジュール管理部131は、オペレータ(役割に応じて、オペレータ、承認者、管理者などと呼ばれるが、総称してオペレータと呼ぶ。)のスケジュールや機器のスケジュールを管理する。実行スケジュール管理部131は、管理端末102からのオペレーションシナリオ(以下、シナリオ)の実行要求の受け付けや、管理端末102からのオペレーションの再スケジュール要求を受け付けて、オペレータの拘束時間が短くなるように再スケジュールする。拘束時間は、実行スケジュール評価部130が算出する。具体的な処理ステップについては後述する。
オペレータスケジュール管理部132は、オペレータのスケジュールを管理する。オペレータのスケジュールには、シナリオにかかわるオペレータの手作業タスクを含むオペレーションスケジュールの他に、シナリオに関係ない打合せスケジュールなども含まれる。オペレータスケジュール管理部132は、オペレータのスケジュールを管理し、オペレータのスケジュール情報を表示したり、オペレータのスケジュール変更要求を受け付けたりする。
機器スケジュール管理部133は、機器の利用スケジュールを管理する。機器の利用スケジュールには、機器管理ソフトウェアへ登録されたタスクスケジュールも含まれる。
シナリオ実行部134は、管理端末102から実行要求のあったシナリオを順次実行する。シナリオ実行部134は、シナリオを構成する各オペレーションを順次実行していく。オペレーションが機器への自動実行タスクであれば、機器へタスクの実行要求を発行する。オペレーションが人手のタスクであれば、該当するオペレータに対して実行要求を示す通知を行う。
外部記憶装置113には、シナリオ定義テーブル200と、シナリオインスタンステーブル300と、オペレータスケジュール管理テーブル400と、機器スケジュール管理テーブル500とを備えている。
シナリオ定義テーブル200は、シナリオの内容を定義したテーブルである。シナリオは、一連のオペレーションを予め定義したものである。シナリオには、少なくとも一つのオペレーションを含む。
図2は、シナリオ定義テーブル200の一例を示す図である。シナリオ定義テーブル200の各レコードは、シナリオの定義情報を示す。あるシナリオを構成するオペレーションが複数あるとき、オペレーションを実行する順番にレコードを登録する。各図中の「♯」は識別子を示す。シナリオ定義テーブル200は、シナリオテンプレート識別子201と、シナリオ内容202と、オペレーション識別子203と、要求先条件204と、要求オペレーション内容205とから構成されている。
シナリオテンプレート識別子201は、シナリオの識別子である。シナリオ内容202は、シナリオの内容である。オペレーション識別子203は、シナリオを構成する各オペレーションの識別子である。要求先条件204は、オペレーションの要求先の条件情報である。管理ソフトの実行を要求するオペレーションであれば、その管理ソフトを特定する情報である。人手によるオペレーションであれば、実行するオペレータを特定する情報である。要求オペレーション内容205は、オペレーションの内容である。
シナリオインスタンステーブル300は、管理端末102からのシナリオの実行要求に対応して、そのシナリオの実行状態や実行スケジュールを記憶するテーブルである。管理端末102から実行要求されたシナリオを、シナリオ定義テーブル200を参照して、シナリオインスタンステーブル300にエントリ登録する。
図3は、シナリオインスタンステーブル300の一例を示す図である。シナリオインスタンステーブル300は、シナリオ301、オペレーション識別子305、要求先306、実行状態307、及び時刻308を含む構成である。シナリオ301には、シナリオインスタンス識別子302と、シナリオテンプレート識別子303と、シナリオ内容304を含んでいる。時刻308は、実行するオペレーション305の、開始予定時刻309と、終了予定時刻310と、開始実績時刻311と、終了実績時刻312と、シナリオデッドライン時刻313を含んでいる。
シナリオ301は、シナリオを表す内容である。シナリオインスタンス識別子302は、シナリオインスタンスを識別する識別子である。シナリオテンプレート識別子303は、シナリオインスタンスの元のシナリオ定義を識別する識別子である。シナリオ内容304は、シナリオインスタンスで実行するシナリオの内容である。オペレーション識別子305は、シナリオインスタンスを構成するオペレーションを識別する識別子である。
たとえば、管理端末102から実行要求されたシナリオの内容が「仮想サーバデプロイ」であるならば、実行要求されたシナリオにシナリオインスタンス識別子302として「SI1」を付し、シナリオ定義テーブル200を参照して、「仮想サーバデプロイ」に対応するシナリオテンプレート識別子201「ST1」、シナリオ内容202「仮想サーバデプロイ」、及びオペレーション識別子203「OP1、OP2、・・、OP5」のそれぞれを、シナリオインスタンステーブル300のシナリオテンプレート識別子303、シナリオ内容304、及びオペレーション識別子305とする。
要求先306は、オペレーション識別子305で特定されるオペレーションの実行を要求する要求先である。オペレーションの実行を要求する要求先は、具体的な管理ソフトウェアを特定する情報や具体的に手作業するオペレータを特定する情報である。
実行状態307は、オペレーション識別子305で特定されるオペレーションの実行状態である。オペレーションの実行状態には、受付完、スケジュール調整中、スケジュール仮確保済み、スケジュール本確保済み、実行中、実行完了などの実行状態がある。
受付完状態とは、管理サーバ101が管理端末102からシナリオの実行要求を受け付け、シナリオの各オペレーションの実行を要求する要求先306や開始予定時刻309や終了予定時刻310が未定の状態を示す。スケジュール調整中状態とは、シナリオの各オペレーションの実行を要求する要求先306や開始予定時刻309や終了予定時刻310を決定する処理を実行中の状態を示す。
スケジュール仮確保済み状態とは、シナリオの各オペレーションの一貫したスケジュールを確保中で、各オペレーションを実行するオペレータやオペレーションの実行に必要な機器(オペレーションの対象機器)のスケジュールを仮押さえした状態である。たとえば、シナリオ301のあるオペレーション305について要求先306や開始予定時刻309や終了予定時刻310が決定したが、そのシナリオ301を構成する他のオペレーション305について要求先306や開始予定時刻309や終了予定時刻310が未定の状態を示す。要求先306を示すオペレータやオペレーションの対象機器も開始予定時刻309から終了予定時刻310までの間、オペレーションを実行するためにスケジュールが確保される。
スケジュール本確保済み状態とは、シナリオのスケジュールを確保できた状態を示す。シナリオを構成する各オペレーションについて、要求先306と開始予定時刻309と予定終了時刻310が決定した状態を示す。要求先を示すオペレータやオペレーションの対象機器のも開始予定時刻309から終了予定時刻310までの間、オペレーションを実行するためにスケジュールが確保されている。スケジュール本確保済み状態では、シナリオのオペレーションの実行を開始していない。
実行中状態とは、ナリオに従ったオペレーションの実行を開始し、実行中の状態であることを示す。実行完了状態とは、シナリオの各オペレーションの実行が終了した状態であることを示す。
時刻308は、オペレーションの実行予定スケジュールや実行実績スケジュール情報である。開始予定時刻309は、オペレーションの実行を開始する予定時刻である。終了予定時刻310は、オペレーションの実行を終了する予定時刻である。開始実績時刻311は、オペレーションの実行を開始した時刻である。終了実績時刻312は、オペレーションの実行を終了した時刻である。シナリオデッドライン時刻313は、管理端末102からシナリオの実行要求に伴って、その終了時刻に期限が設けられた場合に、指定された期限情報である。
シナリオインスタンステーブル300及びシナリオ定義テーブル200を用いたシナリオ実行部134の処理を簡単に説明する。シナリオ実行部134は、シナリオインスタンステーブル300のインスタンスごとに、テンプレート識別子303とオペレーション識別子305とで識別されるオペレーションを順次実行していく。テンプレート識別子303とオペレーション識別子305に対応する、シナリオ定義テーブル200のシナリオテンプレート識別子201とオペレーション識別子203が示す要求オペレーション内容205で定義されたオペレーションおよびタスクの実行を制御する。シナリオ実行部134は、シナリオインスタンステーブル300の要求先306にオペレーションの実行要求を発行する。オペレーションが管理ソフトや機器へのオペレーションである場合には、管理ソフトや機器に対してオペレーションの実行要求を発行する。一方、オペレーションが人手の作業である場合には、要求先306のオペレータに対して作業を依頼するメールを送信したり、作業を依頼するメッセージやイベント情報を送信することでオペレーションの実行を要求する。。オペレーションを実行開始したときに、開始実績時刻311としてオペレーションを開始した時刻を記憶する。オペレーションが終了するのを検出すると、終了実績時刻312としてオペレーションが終了した時刻を記憶する。そして、実行状態307を実行完了状態に変更し、そのオペレーションに後続するオペレーションを実行開始する。このようにして、シナリオインスタンスに属する一連のオペレーションをすべて実行完了したら、シナリオインスタンスの実行完了となる。
オペレータスケジュール管理テーブル400は、オペレータの作業のスケジュールを記憶するテーブルである。
図4は、オペレータスケジュール管理テーブル400の一例を示す図である。オペレータスケジュール管理テーブル400は、管理者識別子401、オペレータ名402、チーム403、ロール404、権限405、開始時刻406、終了時刻407、予定内容408、関連オペレーション409、確保状態410、及び調整可否411を含んでいる。
管理者識別子401は、オペレータなどを識別する識別子である。オペレータ名402は、オペレータの名前情報であるチーム403は、オペレータの属するチームやグループなどの所属情報である。ロール404は、オペレータのロール情報である権限405は、オペレータが有する権限情報である
開始時刻406は、オペレータの予定の開始予定時刻である終了時刻407は、オペレータの予定の終了予定時刻である。予定内容408は、オペレータの予定の内容情報である
関連オペレーション409は、オペレータの予定が、第1管理サーバ101が実行要求したオペレーションのスケジューリングによって登録されているとき、そのオペレーションの識別子情報である。
開始時刻406は、オペレータの予定の開始予定時刻である終了時刻407は、オペレータの予定の終了予定時刻である。予定内容408は、オペレータの予定の内容情報である
関連オペレーション409は、オペレータの予定が、第1管理サーバ101が実行要求したオペレーションのスケジューリングによって登録されているとき、そのオペレーションの識別子情報である。
確保状態410は、オペレータのスケジュールが調整中または他のスケジュールが入らないように確保された状態であって、シナリオのスケジュール調整中に一時的に確保された状態、またはシナリオのスケジュール調整が完了して予約(開始時刻406、終了時刻407、予定内容408及び関連オペレーション409)が確保された状態であることを示す状態情報である。スケジュール調整中または確保状態にない場合には、確保状態410はNull(空)である。スケジュール調整中に一時的に確保された状態である場合には、状態情報は仮確保状態を示す。また、スケジュール調整完了済みで予約が確保されている場合には、状態情報は本確保状態を示す。
調整可否411は、そのオペレータのスケジュールの実行時刻(開始時刻406及び/又は終了時刻407)の変更が可能か否かを示す。Trueなら調整可能を示し、Falseなら調整不可能を示す。すでに実行が完了した予約は、調整できないためFalseになる。
機器スケジュール管理テーブル500は、機器や機器を管理する管理ソフトに実行要求されたオペレーションのスケジュール情報を記憶するテーブルである。
図5は、機器スケジュール管理テーブル500の一例を示す図である。機器スケジュール管理テーブル500は、オペレーション要求先識別子501、機器識別子502、タスク識別子503、タスク内容504、実行状態505、開始時刻506、終了時刻507、関連オペレーション508、確保状態509、及び調整可否510を含んでいる。
オペレーション要求先識別子501は、管理サーバ101の実行スケジュール管理部131や機器スケジュール管理部133がオペレーションの要求先(シナリオインスタンステーブル300の要求先306)として決定した機器や管理ソフトを識別する識別子である。
機器識別子502は、オペレーションを構成するタスクを実行する機器の識別子である。オペレーション要求先識別子501で識別される管理ソフトや機器が、タスクの実際の実行先とした機器等があるとき、その機器の識別子である。オペレーション要求先識別子501に要求されるオペレーションは、少なくとも一つのタスクから構成され、そのタスクを実行する機器の識別子が機器識別子502である。
タスク識別子503は、オペレーションを構成するタスクの識別子である。タスク内容504は、オペレーションを構成するタスクの内容である。実行状態505は、オペレーションを構成するタスクの実行状態である。タスクの実行状態には、未実行、実行中、実行完了などの状態がある。
開始時刻506は、オペレーションを構成するタスクの実行開始時刻である。終了時刻507は、オペレーションを構成するタスクの実行終了時刻である。
関連オペレーション508は、タスクがシナリオ実行部134から実行要求されたオペレーションを構成するタスクであれば、そのオペレーションを特定するシナリオインスタンステーブル300のオペレーション識別子305である。
確保状態509は、機器のスケジュールが調整中または他のスケジュールが入らないように確保された状態であって、シナリオのスケジュール調整中に一時的に確保された状態、またはシナリオのスケジュール調整が完了して予約(開始時刻506、終了時刻507、及び関連オペレーション508)が確保された状態であることを示す状態情報である。スケジュール調整中または確保状態にない場合には、確保状態509はNull(空)である。スケジュール調整中に一時的に確保された状態である場合には、状態情報は仮確保状態を示す。また、スケジュール調整完了済みで予約が確保されている場合には、状態情報は本確保状態を示す。
調整可否510は、その機器のスケジュールの実行時刻(開始時刻506及び/又は終了時刻507)の変更が可能か否かを示す。Trueなら調整可能を示し、Falseなら調整不可能を示す。すでに実行が完了したタスクについては、調整できないためFalseになる。
図6は、管理端末102からオペレーションシナリオ実行要求(以下、シナリオ実行要求)を受け付けたときの実行スケジュール管理部131の処理を示すフロー図である。
(1)シナリオ実行要求を受け付ける(ステップ601)。
シナリオ実行要求には、実行するシナリオの内容を特定するためのシナリオテンプレート識別子、シナリオの実行が完了しなければならない時刻を指定したデッドライン情報を含んでいる。
シナリオ実行要求には、実行するシナリオの内容を特定するためのシナリオテンプレート識別子、シナリオの実行が完了しなければならない時刻を指定したデッドライン情報を含んでいる。
(2)シナリオ実行要求からシナリオ情報を取得する(ステップ602)。
ステップ601で受け付けたシナリオ実行要求からシナリオテンプレート識別子を取得する。このシナリオテンプレート識別子にもとづきシナリオ定義テーブル200のシナリオテンプレート識別子201を検索し、シナリオテンプレート識別子が一致するレコードを特定する。この特定したレコードに、シナリオ実行要求のあったンシナリオの定義内容を記憶している。このシナリオ定義より、シナリオを構成するオペレーション(オペレーション識別子203および要求オペレーション内容205)やオペレーションの要求先の条件情報(要求先条件204)を取得する。
ステップ601で受け付けたシナリオ実行要求からシナリオテンプレート識別子を取得する。このシナリオテンプレート識別子にもとづきシナリオ定義テーブル200のシナリオテンプレート識別子201を検索し、シナリオテンプレート識別子が一致するレコードを特定する。この特定したレコードに、シナリオ実行要求のあったンシナリオの定義内容を記憶している。このシナリオ定義より、シナリオを構成するオペレーション(オペレーション識別子203および要求オペレーション内容205)やオペレーションの要求先の条件情報(要求先条件204)を取得する。
(3)シナリオインスタンスを生成して登録する(ステップ603)。
シナリオインスタンステーブル300に、シナリオ実行要求に対応する新たなシナリオ301のレコードを生成する。シナリオインスタンス識別子302にはレコードを識別するための一意な識別子を設定する。 そのレコードにステップ602で特定したシナリオ定義テーブル200のレコードの情報を設定する。テンプレート識別子303には、ステップ602で特定したレコードのシナリオテンプレート識別子201を設定する。シナリオ内容304には、ステップ602で特定したシナリオ内容202を設定する。オペレーション番号305には、ステップ602で特定したレコードのオペレーション識別子203を設定する。
シナリオインスタンステーブル300に、シナリオ実行要求に対応する新たなシナリオ301のレコードを生成する。シナリオインスタンス識別子302にはレコードを識別するための一意な識別子を設定する。 そのレコードにステップ602で特定したシナリオ定義テーブル200のレコードの情報を設定する。テンプレート識別子303には、ステップ602で特定したレコードのシナリオテンプレート識別子201を設定する。シナリオ内容304には、ステップ602で特定したシナリオ内容202を設定する。オペレーション番号305には、ステップ602で特定したレコードのオペレーション識別子203を設定する。
実行状態307には、受付完状態を設定する。要求先306、開始予定時刻309、終了予定時刻310、開始実績時刻311、および終了実績時刻312には、何も設定しない。デッドライン時刻313には、ステップ601で受け付けたシナリオ実行要求に含まれるデッドライン情報としての時刻を設定する。
(4)設定したシナリオ301を構成するオペレーション305に関してステップ605とステップ606を実行する(ステップ604)。オペレーション305が複数の場合は、それらの各々に関して実行する。
(5)各オペレーションの開始予定時刻309と終了予定時刻310を算出する(ステップ605)。
ステップ603で生成したシナリオインスタンステーブル300の新たなシナリオ301を構成するオペレーション識別子305で識別されるオペレーションを表すレコードを特定し、そのレコードのオペレーションの開始予定時刻309と終了予定時刻310を設定する。
ステップ603で生成したシナリオインスタンステーブル300の新たなシナリオ301を構成するオペレーション識別子305で識別されるオペレーションを表すレコードを特定し、そのレコードのオペレーションの開始予定時刻309と終了予定時刻310を設定する。
オペレーションの開始予定時刻309は、シナリオ301の最初のオペレーションであれば、現在時刻を設定する。シナリオ301の2番目以降のオペレーションであれば、直前のオペレーションの終了予定時刻以降の時刻をそのオペレーションの開始予定時刻309とする。もし、後述するステップ606においてオペレーションのスケジュール仮確保が失敗して再度ステップ605を実行する場合には、仮確保が失敗したオペレーションの開始予定時刻や終了予定時刻とは異なる時刻を開始予定時刻や終了予定時刻とする。オペレーションの終了予定時刻310は、オペレーションの実行時間を、そのオペレーション開始予定時刻309に加算することにより算出する。
オペレーションの終了予定時刻310の算出に用いる実行時間は、過去に同一または類似のオペレーションを実行した実行履歴から推定する。同一オペレーションの実行履歴から推定する処理を示す。ステップ604において処理の対象となるオペレーションに対応するレコードをシナリオインスタンステーブル300から特定し、そのオペレーション識別子305を特定する。シナリオインスタンステーブル300の各オペレーション識別子305が、特定したオペレーション識別子と同一であり、実行状態307が完了状態のレコードを検索する。検索してヒットしたレコードの終了実績時刻312と開始実績時刻311との差分から、過去に実行された同一オペレーションの実行時間を算出する。過去に実行された同一オペレーションが複数の場合には、算出した各実行時間の平均値や最大値などの統計値を算出して、オペレーションの実行時間としてもよい。
(6)シナリオ301を構成するオペレーションの要求先306を特定し、特定した要求先306のスケジュールを仮確保する(ステップ606)。本ステップの詳細は、図9を用いて後述する。
シナリオ301のオペレーションを実行するオペレータまたは機器を決定し、オペレーションの開始予定時刻309から終了予定時刻310までをオペレーションを実行するための時間として、決定したオペレータまたは機器のスケジュールを確保する。シナリオ301を構成するオペレーションのスケジュール(実体としては、オペレーションを実行するオペレータまたは機器のスケジュール)を確保できたならば、スケジュールは未確定という意味での仮確保という形でスケジュールを確保する。シナリオ301を構成するすべてのオペレーションのスケジュールを仮確保できたならば、シナリオ301のスケジュールを確保できたとして、シナリオ301を構成する各オペレーションのスケジュールを本確保したことに変更する。
シナリオ301のオペレーションを実行するオペレータまたは機器を決定し、オペレーションの開始予定時刻309から終了予定時刻310までをオペレーションを実行するための時間として、決定したオペレータまたは機器のスケジュールを確保する。シナリオ301を構成するオペレーションのスケジュール(実体としては、オペレーションを実行するオペレータまたは機器のスケジュール)を確保できたならば、スケジュールは未確定という意味での仮確保という形でスケジュールを確保する。シナリオ301を構成するすべてのオペレーションのスケジュールを仮確保できたならば、シナリオ301のスケジュールを確保できたとして、シナリオ301を構成する各オペレーションのスケジュールを本確保したことに変更する。
(7)ステップ604からステップ606の処理でシナリオ301を構成する各オペレーションを実行する要求先306を決定できたかを判定する(ステップ607)。
判定の結果、各オペレーションを実行する要求先306を決定できた場合は、ステップ608に進む。ひとつでも要求先306を決定できなかったオペレーションがある場合には、ステップ618に進む。
判定の結果、各オペレーションを実行する要求先306を決定できた場合は、ステップ608に進む。ひとつでも要求先306を決定できなかったオペレーションがある場合には、ステップ618に進む。
本ステップの各オペレーションを実行する要求先306を決定できたかの判定は、シナリオインスタンステーブル300におけるステップ603で生成したシナリオインスタンスのレコードに記憶されたすべてのオペレーションについて実行状態307がスケジュール仮確保済み状態になったかを判定する。
(8)シナリオ301の終了予定時刻310が、シナリオ301に要求されたデッドライン313を満たしているか判定する(ステップ608)。
ステップ603で生成したシナリオインスタンスのレコードに記憶されたすべてのオペレーションについて終了予定時刻310を参照し、デッドライン313の時刻と比較する。比較した結果、デッドライン313の時刻よりも終了予定時刻310の最も遅い時刻の方が早ければデッドラインを満たしていると判定する。終了予定時刻310の最も遅い時刻の方がデッドライン313の時刻よりも遅ければデッドラインを満たしていないと判定する。
ステップ603で生成したシナリオインスタンスのレコードに記憶されたすべてのオペレーションについて終了予定時刻310を参照し、デッドライン313の時刻と比較する。比較した結果、デッドライン313の時刻よりも終了予定時刻310の最も遅い時刻の方が早ければデッドラインを満たしていると判定する。終了予定時刻310の最も遅い時刻の方がデッドライン313の時刻よりも遅ければデッドラインを満たしていないと判定する。
(9)ステップ608の判定結果がYES(デッドラインを満たしている)の場合は、ステップ611に進む。判定結果がNO(デッドラインを満たしていない)の場合は、ステップ618に進む(ステップ609)。
(10)シナリオ実行要求を受け付けた旨のメッセージを管理端末102に表示して終了する(ステップ611)。
ステップ603で生成したシナリオインスタンスのレコードに記憶されたすべてのオペレーションについて、実行状態307をスケジュール本確保済み状態に変更する。本確保済み状態に変更後にステップ601の要求元である管理端末102に対してシナリオ実行要求を受け付けた旨のメッセージを表示する。
ステップ603で生成したシナリオインスタンスのレコードに記憶されたすべてのオペレーションについて、実行状態307をスケジュール本確保済み状態に変更する。本確保済み状態に変更後にステップ601の要求元である管理端末102に対してシナリオ実行要求を受け付けた旨のメッセージを表示する。
(11)ステップ607やステップ609の判定の結果、NOの場合は、後述する(A)(B)の全候補を判定済みか判定する(ステップ618)。
ステップ603で生成したシナリオインスタンスのレコードに記載されたすべてのオペレーションについて、実行状態307をスケジュール調整中状態に変更する。また、要求先306、オペレーションの開始予定時刻309および終了予定時刻310を初期化して未記入に戻す。
ステップ603で生成したシナリオインスタンスのレコードに記載されたすべてのオペレーションについて、実行状態307をスケジュール調整中状態に変更する。また、要求先306、オペレーションの開始予定時刻309および終了予定時刻310を初期化して未記入に戻す。
(12)ステップ618の判定の結果がYESの場合はステップ620に進む。この場合、シナリオ301を構成するオペレーション305の要求先306がないか、あっても要求先306のスケジュールが確保できず、シナリオ301の実行要求を受け付けられないことを示す。
ステップ618の判定の結果がNOの場合はステップ612に進む(ステップ619)。この場合、シナリオ301を構成するオペレーション305の要求先306が他にあるか、オペレーション305を実行する候補の機器やオペレータのスケジュールを調整すれば、オペレーション305を実行できるようになる可能性がある。
(13)シナリオ実行要求を受け付けられない旨のエラーメッセージを管理端末102に表示して終了する(ステップ620)。
(14)ステップ619の判定の結果、NOの場合、オペレーション305を実行可能な他の要求先候補(A)があるか判定する(ステップ612)。
ステップ602で取得した、オペレーション305の要求先の条件情報にもとづき、オペレーション305は実行をオペレータに要求するものか、実行を機器に要求するものかを判定する。
ステップ602で取得した、オペレーション305の要求先の条件情報にもとづき、オペレーション305は実行をオペレータに要求するものか、実行を機器に要求するものかを判定する。
オペレーション305がオペレータに要求するものである場合、ステップ602で取得した要求先の条件を満足する、チーム403、ロール404、および権限405のオペレータ名402を、オペレータスケジュール管理テーブル400から検索する。すでにステップ604からステップ606の処理を実行していないレコードがあるかを判定することにより実行可能な他の要求先候補(A)があるかを判定する。
オペレーション305が機器に実行要求するものである場合、ステップ602で取得した要求先の条件を満足する、オペレーション要求先識別子501を、機器スケジュール管理テーブルを検索して特定する。
(15)ステップ612の判定の結果がYESの場合、ステップ614に進む。NOの場合、ステップ615に進む(ステップ613)。
(16)オペレーションの他の要求先を特定し、ステップ605に進む(ステップ614)。
ステップ612で特定した要求先候補のうちから一つ選択して、ステップ604に進み、以降の処理で特定する要求先の候補とする。
ステップ612で特定した要求先候補のうちから一つ選択して、ステップ604に進み、以降の処理で特定する要求先の候補とする。
(17)ステップ613の判定の結果、NOの場合、機器やオペレータのスケジュール調整候補(B)はあるか判定する(ステップ615)。
機器のスケジュール調整可否は、調整対象のスケジュールが機器のスケジュールであれば、機器スケジュール管理テーブル500の調整可否510がTrueであるかにより判定する。調整可否510がTrueであれば、時刻調整が可能なスケジュールである。
調整対象のスケジュールがオペレータのスケジュールであれば、オペレータスケジュール管理テーブル400の調整可否411がTrueであるかにより判定する。調整可否411がTrueであれば、スケジュール調整可能なオペレーションである。
機器のスケジュール調整可否は、調整対象のスケジュールが機器のスケジュールであれば、機器スケジュール管理テーブル500の調整可否510がTrueであるかにより判定する。調整可否510がTrueであれば、時刻調整が可能なスケジュールである。
調整対象のスケジュールがオペレータのスケジュールであれば、オペレータスケジュール管理テーブル400の調整可否411がTrueであるかにより判定する。調整可否411がTrueであれば、スケジュール調整可能なオペレーションである。
(18)ステップ615の判定の結果がYESの場合、ステップ617に進み、NOの場合、ステップ618に進む(ステップ616)。
(19)機器やオペレータの他のスケジュールを調整してステップ604に進む(ステップ617)。
ステップ617のスケジュールの再調整は、ステップ615で調整可能と判定した再調整対象のオペレーションが属するシナリオ301をシナリオインスタンステーブル300から特定し、そのシナリオ301を構成する全オペレーションのスケジュールを再調整する。再調整対象のオペレーションに対して、ステップ604からステップ606までと同様の処理を実行し、再調整前の開始予定時刻309から再調整前の終了予定時刻310の時間帯を除外した時間帯のスケジュールの確保を試みる。
ステップ617でスケジュールの再調整ができなければ、ステップ606以降のステップ607で全要求先を決定できず、ステップ619の判定結果としてシナリオ実行要求を受け付けられないことになる。
ステップ617のスケジュールの再調整は、ステップ615で調整可能と判定した再調整対象のオペレーションが属するシナリオ301をシナリオインスタンステーブル300から特定し、そのシナリオ301を構成する全オペレーションのスケジュールを再調整する。再調整対象のオペレーションに対して、ステップ604からステップ606までと同様の処理を実行し、再調整前の開始予定時刻309から再調整前の終了予定時刻310の時間帯を除外した時間帯のスケジュールの確保を試みる。
ステップ617でスケジュールの再調整ができなければ、ステップ606以降のステップ607で全要求先を決定できず、ステップ619の判定結果としてシナリオ実行要求を受け付けられないことになる。
図7は、オペレータの拘束時間表示要求に対応して、実行スケジュール評価部130がオペレータの拘束時間を算出し、表示する処理を示すフロー図である。実行スケジュール評価部130は、拘束時間表示要求を受け付けた時点におけるスケジュールに基づいて、オペレータの拘束時間を算出する。
(1)管理端末102からオペレータの拘束時間の表示要求を受け付ける(ステップ701)。
表示要求には、拘束時間を表示する対象のオペレータを特定するオペレータ識別情報を含む。
表示要求には、拘束時間を表示する対象のオペレータを特定するオペレータ識別情報を含む。
(2)表示要求の対象のオペレータのスケジュール情報を取得する(ステップ702)。
オペレータスケジュール管理テーブル400の管理者識別子401を検索し、表示要求に含まれるオペレータ識別情報と一致した管理者識別子401のレコードのスケジュール情報(開始時刻406、終了時刻407、予定内容408)を取得する。オペレータ識別情報と一致する管理者識別子401が複数ある場合、それぞれに対応するレコードごとにスケジュール情報を取得する。個々のレコードがオペレーションに対応している。
オペレータスケジュール管理テーブル400の管理者識別子401を検索し、表示要求に含まれるオペレータ識別情報と一致した管理者識別子401のレコードのスケジュール情報(開始時刻406、終了時刻407、予定内容408)を取得する。オペレータ識別情報と一致する管理者識別子401が複数ある場合、それぞれに対応するレコードごとにスケジュール情報を取得する。個々のレコードがオペレーションに対応している。
(3)スケジューリングされた複数オペレーションをグループ化する(ステップ703)。
時間的に近接するオペレーションをグループ化して、グループ化したオペレーションに関して拘束時間を算出する。オペレーションのグループ化は、たとえば、実行スケジュール評価部130が時間の閾値を持ち、開始時刻406が、現在時刻から閾値の時間以内であれば一つのグループとし、閾値の時間を超えていれば異なるグループとする。
また、他のグループ化の方法として次のようにしても良い。あるオペレーションの終了時刻407から、近接する他のオペレーションの開始時刻406までの時間が閾値の時間以下であれば、あるオペレーションと他のオペレーションを同一グループとし、閾値の時間よりも長ければ異なるグループとする。
時間的に近接するオペレーションをグループ化して、グループ化したオペレーションに関して拘束時間を算出する。オペレーションのグループ化は、たとえば、実行スケジュール評価部130が時間の閾値を持ち、開始時刻406が、現在時刻から閾値の時間以内であれば一つのグループとし、閾値の時間を超えていれば異なるグループとする。
また、他のグループ化の方法として次のようにしても良い。あるオペレーションの終了時刻407から、近接する他のオペレーションの開始時刻406までの時間が閾値の時間以下であれば、あるオペレーションと他のオペレーションを同一グループとし、閾値の時間よりも長ければ異なるグループとする。
(4)グループ内で最も開始時刻の早いオペレーションの開始予想時刻と最も終了時刻の遅いオペレーションの終了予想時刻の差分からオペレータ拘束時間を算出する(ステップ704)。
グループ化したオペレーションに相当するオペレータスケジュール管理テーブル400のレコードをすべて検索し、グループ内のオペレーションの最も早い開始時刻406から最も遅い終了時刻407までの時間をオペレータ拘束時間とする。
このように、対象のオペレータの近接したオペレーションをグループ化して、グループ内のオペレーションの最も早い開始時刻406から最も遅い終了時刻407までの時間を拘束時間とする。このようにすることで、近接していない(閾値の時間を超えている)オペレーション間の時間、すなわちオペレータの自由時間をオペレーション実行のための拘束時間として加算することを防止できる。
グループ化したオペレーションに相当するオペレータスケジュール管理テーブル400のレコードをすべて検索し、グループ内のオペレーションの最も早い開始時刻406から最も遅い終了時刻407までの時間をオペレータ拘束時間とする。
このように、対象のオペレータの近接したオペレーションをグループ化して、グループ内のオペレーションの最も早い開始時刻406から最も遅い終了時刻407までの時間を拘束時間とする。このようにすることで、近接していない(閾値の時間を超えている)オペレーション間の時間、すなわちオペレータの自由時間をオペレーション実行のための拘束時間として加算することを防止できる。
グループごとに算出されたこれらの拘束時間を、オペレータの拘束時間の表示要求に対応するものとする。また、これらの拘束時間の最大値、平均値、最小値、または所定の評価式に従って算出した評価値(たとえば5段階評価)を拘束時間の指標として算出してもよい。これらの指標の選択は、オペレータの拘束時間の表示要求の仕方(パラメータなど)に基づけばよい。
(5)オペレータの拘束時間を管理端末102に出力する(ステップ705)。
図8は、オペレータの拘束時間を短縮するために、実行スケジュール管理部131がオペレータのオペレーションを再スケジュール(スケジュール変更)する処理を示すフロー図である。
(1)オペレータの拘束時間の短縮を要求するスケジュール変更要求を管理端末102から受付ける(ステップ801)。
スケジュール変更要求メッセージは、拘束時間短縮する対象のオペレータを特定する識別情報であるオペレータ識別情報を含む。
スケジュール変更要求メッセージは、拘束時間短縮する対象のオペレータを特定する識別情報であるオペレータ識別情報を含む。
(2)スケジュール情報を取得する(ステップ802)。
オペレータスケジュール管理テーブル400の管理者識別子401を検索し、スケジュール変更要求に含まれるオペレータ識別子情報一致したが管理者識別子401のレコードのスケジュール情報(開始時刻406、終了時刻407、予定内容408)を取得する。オペレータ識別情報と一致する管理者識別子401が複数ある場合、それぞれに対応するレコードごとにスケジュール情報を取得する。
オペレータスケジュール管理テーブル400の管理者識別子401を検索し、スケジュール変更要求に含まれるオペレータ識別子情報一致したが管理者識別子401のレコードのスケジュール情報(開始時刻406、終了時刻407、予定内容408)を取得する。オペレータ識別情報と一致する管理者識別子401が複数ある場合、それぞれに対応するレコードごとにスケジュール情報を取得する。
(3)スケジューリングされた複数オペレーションをグループ化する(ステップ803)。
ステップ703と同様にオペレーションをグループ化する。
ステップ703と同様にオペレーションをグループ化する。
つづく、ステップ804からステップ808では、スケジュール変更要求で指定されたオペレータの最も短い拘束時間を算出する。調整可能なスケジュール候補それぞれでオペレータの拘束時間を算出し、算出した拘束時間がいままで算出した拘束時間よりも短ければ新たに算出した拘束時間を一時的に内部で記憶することで、最も短い拘束時間を算出する。
(4)グループ内で最も開始時刻の早いオペレーションの開始予想時刻と最も終了時刻の遅いオペレーションの終了予想時刻の差分からオペレータ拘束時間(A)を算出する(ステップ804)。
ステップ704と同様に拘束時間を算出する。具体的には、グループ内のオペレーションで最も早い開始時刻406最も遅い終了時刻407の差分をオペレータ拘束時間(A)とする。
ステップ704と同様に拘束時間を算出する。具体的には、グループ内のオペレーションで最も早い開始時刻406最も遅い終了時刻407の差分をオペレータ拘束時間(A)とする。
(5)記憶しているオペレータ拘束時間(B)よりも、算出したオペレータ拘束時間(A)が短いかを判定する(ステップ805)。
ステップ805では、後述するステップ807で実行スケジュール管理部131が一時的に内部で記憶しているオペレータ拘束時間(B)よりも、新たに算出したオペレータ拘束時間(A)が短いかを判定する。はじめてステップ805を実行する場合、オペレータ拘束時間(B)は記憶されていないため、ここでの判定はYESと判定する。
ステップ805では、後述するステップ807で実行スケジュール管理部131が一時的に内部で記憶しているオペレータ拘束時間(B)よりも、新たに算出したオペレータ拘束時間(A)が短いかを判定する。はじめてステップ805を実行する場合、オペレータ拘束時間(B)は記憶されていないため、ここでの判定はYESと判定する。
(6)ステップ805の判定の結果、YESの場合ステップ807に進む。NOの場合、ステップ808に進む(ステップ806)。
ステップ805の判定がYESの場合は、より短い拘束時間(新たに算出したオペレータ拘束時間(A)のスケジュール候補があったことを示している。NOの場合は、一時記憶しているオペレータ拘束時間(B)の方が、新たに算出したオペレータ拘束時間(A)より短いことを示している。
ステップ805の判定がYESの場合は、より短い拘束時間(新たに算出したオペレータ拘束時間(A)のスケジュール候補があったことを示している。NOの場合は、一時記憶しているオペレータ拘束時間(B)の方が、新たに算出したオペレータ拘束時間(A)より短いことを示している。
(7)スケジューリング情報(C)とそのときの算出したオペレータ拘束時間(A)を記憶する(ステップ807)。
新たに算出したオペレータ拘束時間(A)がより短い拘束時間であるため、新たに算出したオペレータ拘束時間(A)をオペレータ拘束時間(B)として、そのスケジュール調整候補(開始時刻406、終了時刻407、予定内容408)をスケジューリング情報(C)として実行スケジュール管理部131が内部に一時的に記憶する。
新たに算出したオペレータ拘束時間(A)がより短い拘束時間であるため、新たに算出したオペレータ拘束時間(A)をオペレータ拘束時間(B)として、そのスケジュール調整候補(開始時刻406、終了時刻407、予定内容408)をスケジューリング情報(C)として実行スケジュール管理部131が内部に一時的に記憶する。
(8)グループ内でオペレータのスケジュールを調整可能な他のスケジュール調整候補があるか判定する(ステップ808)。
オペレータスケジュール管理テーブル400を参照して、スケジュールの調整候補があるかを判定する。
オペレータスケジュール管理テーブル400を参照して、スケジュールの調整候補があるかを判定する。
(9)ステップ808の判定の結果、YESならば、ステップ811に進み、NOならば、ステップ810に進む(ステップ810)。
YESの場合は、ステップ808で判定した他のスケジュール調整候補の拘束時間を評価するために、ステップ811に進む。NOの場合は、全てのスケジュール調整候補の拘束時間を評価したとして、ステップ810に進む。
YESの場合は、ステップ808で判定した他のスケジュール調整候補の拘束時間を評価するために、ステップ811に進む。NOの場合は、全てのスケジュール調整候補の拘束時間を評価したとして、ステップ810に進む。
(10)グループ内でオペレータのスケジュールを再スケジュールしてステップ804に進む(ステップ811)。
ステップ811では、グループに属する調整可能なスケジュールをそのグループ内でスケジュール変更した変更スケジュール候補を求め、その変更スケジュール候補で後続するステップ804以降のステップを実行する。
ステップ811では、グループに属する調整可能なスケジュールをそのグループ内でスケジュール変更した変更スケジュール候補を求め、その変更スケジュール候補で後続するステップ804以降のステップを実行する。
(11)ステップ809の判定でNOならば、記憶している拘束時間(B)とそのときのスケジュール情報(C)を出力する(ステップ810)。
実行スケジュール管理部131が内部で記憶している拘束時間(B)とスケジューリング情報(C)を管理端末102に出力し、管理端末102からのスケジュール変更の確定要求を待つ。
(12)スケジュール変更の確定要求を受け付けたか判定する(ステップ812)。
(13)ステップ812の判定の結果、YESならステップ814に進む。NOならステップ815に進む(ステップ813)。
ステップ812のスケジュール確定要求を待つ処理の中で、スケジュール確定要求を受付けたらステップ814に進む。スケジュール変更をキャンセルするメッセージを受付けたらステップ813に進む。何もメッセージがない場合は確定要求メッセージを待つ。
ステップ812のスケジュール確定要求を待つ処理の中で、スケジュール確定要求を受付けたらステップ814に進む。スケジュール変更をキャンセルするメッセージを受付けたらステップ813に進む。何もメッセージがない場合は確定要求メッセージを待つ。
(14)スケジュール情報(C)にもとづき、オペレータのスケジュールを変更する(ステップ814)。
実行スケジュール管理部131が内部で記憶しているスケジューリング情報(C)で変更オペレータスケジュール管理テーブル400の内容を更新する。
実行スケジュール管理部131が内部で記憶しているスケジューリング情報(C)で変更オペレータスケジュール管理テーブル400の内容を更新する。
(15)オペレータのスケジュールを変更した旨のメッセージを管理端末102に出力する(ステップ815)
図9は、実行スケジュール管理部131によるオペレーションを実行する要求先(オペレータや機器)の決定と、要求先(オペレータや機器)のスケジュールを仮確保する処理を示すフロー図である。図6のステップ606をサブルーチンとして処理する場合を例に説明する。
図9は、実行スケジュール管理部131によるオペレーションを実行する要求先(オペレータや機器)の決定と、要求先(オペレータや機器)のスケジュールを仮確保する処理を示すフロー図である。図6のステップ606をサブルーチンとして処理する場合を例に説明する。
(1)オペレーションの要求先決定要求を受け付ける(ステップ901)。
オペレーションの要求先決定要求には、要求先306を決定する対象のオペレーションを識別するオペレーション識別情報305と、スケジュール確保する要求先を306特定するための条件情報(要求先条件204)と、確保しようとするスケジュールの開始予定時刻309と、確保しようとするスケジュールの終了予定時刻310を含む。
オペレーションの要求先決定要求には、要求先306を決定する対象のオペレーションを識別するオペレーション識別情報305と、スケジュール確保する要求先を306特定するための条件情報(要求先条件204)と、確保しようとするスケジュールの開始予定時刻309と、確保しようとするスケジュールの終了予定時刻310を含む。
要求先条件204には、要求先決定対象のオペレータが実行するオペレーションか、機器が自動実行するオペレーションかを示す要求先の種別情報を含む。
さらに、要求先条件204には、オペレータが実行するオペレーションの場合、オペレータが属するチームを特定する条件情報、オペレータのロールまたは権限を特定する条件情報などを含む。オペレーションを複数のオペレータにより実行する場合には、オペレータごとにオペレータに求められるチームを特定する条件情報、ロール、権限を特定する条件情報を含む。以降、このようなオペレータごとの条件情報を構成員条件と呼ぶ。要求先条件には、ひとつ以上の構成員条件から構成されているものとする。
また、要求対象が機器である場合には、機器を操作するタスクの要求先となるオペレーション要求先を特定する条件情報などを含む。
さらに、要求先条件204には、オペレータが実行するオペレーションの場合、オペレータが属するチームを特定する条件情報、オペレータのロールまたは権限を特定する条件情報などを含む。オペレーションを複数のオペレータにより実行する場合には、オペレータごとにオペレータに求められるチームを特定する条件情報、ロール、権限を特定する条件情報を含む。以降、このようなオペレータごとの条件情報を構成員条件と呼ぶ。要求先条件には、ひとつ以上の構成員条件から構成されているものとする。
また、要求対象が機器である場合には、機器を操作するタスクの要求先となるオペレーション要求先を特定する条件情報などを含む。
(2)オペレーションの識別子、要求先条件、開始予定時刻、終了予定時刻を特定する(ステップ902)。
オペレーションの要求先決定要求に含むオペレーション識別子305、要求先条件204と開始予定時刻309と終了予定時刻310を取得する。
オペレーションの要求先決定要求に含むオペレーション識別子305、要求先条件204と開始予定時刻309と終了予定時刻310を取得する。
(3)オペレーションの要求先の種別を判定する(ステップ903)。
要求先条件204を満足するオペレーションの要求先306が機器であればステップ915に進む。要求先306がオペレータであればステップ904に進む。
要求先条件204を満足するオペレーションの要求先306が機器であればステップ915に進む。要求先306がオペレータであればステップ904に進む。
(4)オペレーションの要求先306として指定されているオペレータが複数人の場合は、ステップ905に進む。指定されているオペレータが一人である場合はステップ917に進む。(ステップ904)。
(5)オペレーションの要求先306として指定されたオペレータ集合を構成する各オペレータに対して、ステップ906からステップ909までを実行する(ステップ905)。
ステップ902で取得した要求先条件204に含まれるオペレータの構成員条件をひとつずつ取得して、ステップ906からステップ909までのステップを実行する。
(6)要求先条件204をみたすオペレータを特定する(ステップ906)。本ステップの処理の詳細を、図10、図11、図12、図13を用いて後述する。
特定した構成員条件にもとづいて、要求先条件204を満たすオペレータを特定する。
(7)オペレーションの予定開始時間から予定終了時間まで、特定した人のスケジュールを仮確保する(ステップ907)。
ステップ906で特定したオペレータ名402をもとにオペレータスケジュール管理テーブル400を検索し、確保状態410を「仮確保状態」とした新たなレコードを追加する。新たに追加したレコードの開始時刻406をステップ902で取得した開始予定時刻309とし、終了時刻407をステップ902で取得した終了予定時刻310とする。
ステップ906で特定したオペレータ名402をもとにオペレータスケジュール管理テーブル400を検索し、確保状態410を「仮確保状態」とした新たなレコードを追加する。新たに追加したレコードの開始時刻406をステップ902で取得した開始予定時刻309とし、終了時刻407をステップ902で取得した終了予定時刻310とする。
(8)構成員条件に対してステップ906からステップ908までの処理を実行済みであれば、ステップ910に進む。実行済みでなければ、ステップ909に進む(ステップ908)。
ステップ905で取得したすべての構成員条件に対してオペレータを特定するステップ906からステップ909の処理を実行したらステップ910に進む。そうでなければステップ909に進む。
ステップ905で取得したすべての構成員条件に対してオペレータを特定するステップ906からステップ909の処理を実行したらステップ910に進む。そうでなければステップ909に進む。
(9)次の構成員条件を特定して、ステップ906以下の処理を実行する(ステップ909)。
ステップ905で取得した構成員条件でステップ906からステップ909の処理を実行していない構成員条件を特定する。
ステップ905で取得した構成員条件でステップ906からステップ909の処理を実行していない構成員条件を特定する。
(10)オペレーションの要求先条件204で指定された全構成員(オペレータ)のスケジュールを仮確保できたか判定し、全構成員のスケジュールを仮確保できた場合はステップ912に進む。仮確保できない構成員(オペレータ)があった場合にはステップ911に進む(ステップ910)。
すべての構成員条件に対して、ステップ906とステップ907の処理を実行して仮確保状態のレコードの追加に成功した場合には、ステップ912に進む。そうでない場合には、ステップ911に進む。
すべての構成員条件に対して、ステップ906とステップ907の処理を実行して仮確保状態のレコードの追加に成功した場合には、ステップ912に進む。そうでない場合には、ステップ911に進む。
(11)確保できなかった構成員(オペレータ)がいる場合には、確保に失敗したものとして、仮確保したスケジュールを開放し、ステップ922に進む(ステップ911)。
オペレータスケジュール管理テーブル400から、ステップ907で追加したレコードを削除することにより、仮確保したスケジュールを開放する。
オペレータスケジュール管理テーブル400から、ステップ907で追加したレコードを削除することにより、仮確保したスケジュールを開放する。
(12)全構成員のスケジュールを仮確保できた場合には、チームやグループなど複数人のオペレータが同時にオペレーションを実行するスケジュールを確保できたとして、その複数人のオペレータをオペレーションの要求先として決定し(ステップ912)、仮確保したスケジュールを確保扱いにする(ステップ913)。
ステップ902で取得したオペレーション識別子305をもとに、シナリオインスタンステーブル300に記憶したオペレーションに相当するレコードを特定する。そのレコードの要求先306に仮確保したオペレータの識別情報を記憶する。また、レコードの開始予定時刻309にステップ902で取得した開始予定時刻を、レコードの終了予定時刻310にステップ902で取得した終了予定時刻を記憶する。
ステップ902で取得したオペレーション識別子305をもとに、シナリオインスタンステーブル300に記憶したオペレーションに相当するレコードを特定する。そのレコードの要求先306に仮確保したオペレータの識別情報を記憶する。また、レコードの開始予定時刻309にステップ902で取得した開始予定時刻を、レコードの終了予定時刻310にステップ902で取得した終了予定時刻を記憶する。
(13)最後に決定したオペレータ、確保したスケジュール、確保成功した旨を本サブルーチンの呼び出し元に応答して終了する(ステップ914)。
(14)ステップ903にて、オペレーションの要求先が機器であると判定した場合には、要求先条件204を満たす機器を特定する(ステップ915)。
機器スケジュール管理テーブル500を検索し、ステップ902で取得した要求先条件204に合致する機器を特定する。
機器スケジュール管理テーブル500を検索し、ステップ902で取得した要求先条件204に合致する機器を特定する。
(15)オペレーションの開始予定時刻から終了予定時刻まで、特定した機器のスケジュールを仮確保し、ステップ913に進む(ステップ916)。
ステップ915で特定した機器を機器スケジュール管理テーブル500に新たなレコードを追加し、開始時刻506と終了時刻507をそれぞれステップ902で取得した開始予定時刻309と終了予定時刻310とする。また、確保状態509を仮確保状態とする。
ステップ915で特定した機器を機器スケジュール管理テーブル500に新たなレコードを追加し、開始時刻506と終了時刻507をそれぞれステップ902で取得した開始予定時刻309と終了予定時刻310とする。また、確保状態509を仮確保状態とする。
(16)ステップ904でオペレータが一人であると判定した場合には、要求先条件204を満たすオペレータを特定する(ステップ917)。本ステップの処理の詳細を、ステップ906と同様に、図10、図11、図12、図13を用いて後述する。
(17)オペレーションの予定開始時間から予定終了時間まで、特定した人のスケジュールを仮確保する(ステップ918)。
ステップ917で特定したオペレータ名402をもとにオペレータスケジュール管理テーブル400を検索し、確保状態410を「仮確保状態」とした新たなレコードを追加する。新たに追加したレコードの開始時刻406をステップ902で取得した開始予定時刻とし、終了時刻407をステップ902で取得した終了予定時刻とする。
ステップ917で特定したオペレータ名402をもとにオペレータスケジュール管理テーブル400を検索し、確保状態410を「仮確保状態」とした新たなレコードを追加する。新たに追加したレコードの開始時刻406をステップ902で取得した開始予定時刻とし、終了時刻407をステップ902で取得した終了予定時刻とする。
(18)ステップ918でスケジュールを仮確保できたか判定する(ステップ919)。確保できた場合にはステップ920に進み、確保できなかった場合にはステップ922に進む。
ステップ902で取得した要求先条件204に対してオペレータを特定するステップ917からステップ918の処理を実行したらステップ920に進む。そうでなければステップ922に進む。
ステップ902で取得した要求先条件204に対してオペレータを特定するステップ917からステップ918の処理を実行したらステップ920に進む。そうでなければステップ922に進む。
(19)ステップ919で確保できたと判定した場合、確保したオペレータをオペレーションの要求先として決定する(ステップ920)。
ステップ902で取得したオペレーション識別子305をもとに、シナリオインスタンステーブル300のレコードを特定する。そのレコードの要求先306を仮確保したオペレータを識別情報とする。また、レコードの開始予定時刻309にステップ902で取得した開始予定時刻309とし、レコードの終了予定時刻310をステップ902で取得した終了予定時刻310とする。
ステップ902で取得したオペレーション識別子305をもとに、シナリオインスタンステーブル300のレコードを特定する。そのレコードの要求先306を仮確保したオペレータを識別情報とする。また、レコードの開始予定時刻309にステップ902で取得した開始予定時刻309とし、レコードの終了予定時刻310をステップ902で取得した終了予定時刻310とする。
(20)ステップ920で決定したオペレータと、確保したスケジュール、確保成功した旨を本サブルーチン処理フローの呼び出し元に応答して終了する(ステップ921)。
(21)ステップ911およびステップ919で、スケジュールを確保できなかったと判定した場合、オペレーションのスケジュール確保に失敗した旨をサブルーチン呼び出し元に応答して終了する(ステップ922)。
(22)ステップ916を処理後、スケジュールを仮確保できたか判定する(ステップ923)。確保できたと判定した場合にはステップ924に進む。確保できなかったと判定した場合にはステップ926に進む(ステップ923)。
(23)ステップ923で確保できたと判定した場合、確保した機器をオペレーション要求先として決定する(ステップ924)。
ステップ915で特定した機器をもとに機器スケジュール管理テーブル500を検索し、確保状態509を「仮確保状態」とした新たなレコードを追加する。新たに追加したレコードの開始時刻506をステップ902で取得した開始予定時刻309とし、終了時刻507をステップ902で取得した終了予定時刻とする。
ステップ915で特定した機器をもとに機器スケジュール管理テーブル500を検索し、確保状態509を「仮確保状態」とした新たなレコードを追加する。新たに追加したレコードの開始時刻506をステップ902で取得した開始予定時刻309とし、終了時刻507をステップ902で取得した終了予定時刻とする。
(24)決定した機器、確保したスケジュール、確保に成功した旨を本サブルーチンの呼出し元に応答して終了する(ステップ925)。
25)ステップ923で確保できなかったと判定した場合には、確保失敗した旨を本サブルーチン呼び出し元に応答して終了する(ステップ926)。
図10は、ステップ906の要求先条件を満たすオペレータを特定する第1の処理例の処理フロー図である。この処理によって、あらかじめ指定したオペレーションの特徴という指標に基づいてオペレーション間の類似性の高いオペレーションを同じオペレータに作業を割当てることができる。これにより、オペレータは同じような作業を連続して実施できるのでオペレータの負担を軽減できる。
(1)要求のあったオペレーションの特徴を抽出する(ステップ1001)。
オペレーションの特徴を、シナリオ定義テーブル200に定義された要求オペレーション内容205やオペレーションに求められるスキルや習熟度をもとにして抽出する。図示していないが、外部記憶装置113にあらかじめ記憶された、オペレーションの内容とそのオペレーションのカテゴリ、オペレーションに求められるスキル、習熟度、利用するソフトウェア(または利用Webサイト)の対応テーブル(オペレーション特徴テーブル)を参照し、要求のあったオペレーションに関するカテゴリ情報、スキル情報、習熟度情報、利用ソフトウェア(または利用Webサイト)といったオペレーションの特徴情報を取得する。
オペレーションの特徴を、シナリオ定義テーブル200に定義された要求オペレーション内容205やオペレーションに求められるスキルや習熟度をもとにして抽出する。図示していないが、外部記憶装置113にあらかじめ記憶された、オペレーションの内容とそのオペレーションのカテゴリ、オペレーションに求められるスキル、習熟度、利用するソフトウェア(または利用Webサイト)の対応テーブル(オペレーション特徴テーブル)を参照し、要求のあったオペレーションに関するカテゴリ情報、スキル情報、習熟度情報、利用ソフトウェア(または利用Webサイト)といったオペレーションの特徴情報を取得する。
(2)抽出したオペレーションの特徴を指標にして、要求のあったオペレーションと所定時間(所定時間過去から現在まで)内の実行履歴を持つ各オペレーションとの類似度を算出する(ステップ1002)。
オペレータスケジュール管理テーブル400の終了時刻407が所定時間以内の過去の時刻が格納れたレコードの関連オペレーション409を参照し、該当するオペレーションの定義内容をシナリオ定義テーブル200のシナリオテンプレート識別子201とオペレーション識別子203とから特定する。該当するオペレーションの定義内容をシナリオ定義テーブル200の要求オペレーション内容205の値をキーにして、ステップ1001で説明したオペレーション特徴テーブルを参照して、オペレーションの属するカテゴリ情報、スキル情報、習熟度情報といったオペレーションの特徴情報を取得する。これら取得した過去の特徴情報と、ステップ1001で取得した特徴情報との類似度を算出する。類似度の算出は、たとえば、外部記憶装置113にあらかじめ記憶されているカテゴリ間の距離を示すスコアを算出し、距離が違いものほど高い類似度として算定する。また、スキル情報については、スキルの有無からスコアを算定し、スコアが近いものほど高い類似度として算定する。習熟度については、習熟度を表す指標が近いものほど高い類似度として算定する。また、利用ソフトウェア(利用Webサイト)が同じか否か、またはその利用機能や利用サイト、利用ページが同じか否かの判定からスコアを計算し類似度を総合的に算定する。このように算定したカテゴリの類似度、スキルの類似度、習熟度、利用ソフトウェア(または利用サイト)の類似度から総合的な類似度をあらかじめ決められた算出式により算出する。
オペレータスケジュール管理テーブル400の終了時刻407が所定時間以内の過去の時刻が格納れたレコードの関連オペレーション409を参照し、該当するオペレーションの定義内容をシナリオ定義テーブル200のシナリオテンプレート識別子201とオペレーション識別子203とから特定する。該当するオペレーションの定義内容をシナリオ定義テーブル200の要求オペレーション内容205の値をキーにして、ステップ1001で説明したオペレーション特徴テーブルを参照して、オペレーションの属するカテゴリ情報、スキル情報、習熟度情報といったオペレーションの特徴情報を取得する。これら取得した過去の特徴情報と、ステップ1001で取得した特徴情報との類似度を算出する。類似度の算出は、たとえば、外部記憶装置113にあらかじめ記憶されているカテゴリ間の距離を示すスコアを算出し、距離が違いものほど高い類似度として算定する。また、スキル情報については、スキルの有無からスコアを算定し、スコアが近いものほど高い類似度として算定する。習熟度については、習熟度を表す指標が近いものほど高い類似度として算定する。また、利用ソフトウェア(利用Webサイト)が同じか否か、またはその利用機能や利用サイト、利用ページが同じか否かの判定からスコアを計算し類似度を総合的に算定する。このように算定したカテゴリの類似度、スキルの類似度、習熟度、利用ソフトウェア(または利用サイト)の類似度から総合的な類似度をあらかじめ決められた算出式により算出する。
(3)各オペレーションのオペレータを参照し、オペレータごとに類似度を集計する(ステップ1003)。
オペレータスケジュール管理テーブル400の管理者識別子欄401が一致するオペレーションごとに、ステップ1002で算出した類似度をグループ化して合計することにより集計する。
オペレータスケジュール管理テーブル400の管理者識別子欄401が一致するオペレーションごとに、ステップ1002で算出した類似度をグループ化して合計することにより集計する。
(4)集計した類似度の値が最も大きいオペレータをオペレーション要求先として決定する(ステップ1004)。
つづいて、要求先条件を満たすオペレータを特定する第2の処理例について説明する。第2の処理例では、オペレータの手作業タスクを含む複数タスクから構成されるオペレーションの実行要求が投入されると、各手作業タスクを含む全タスクの実行順序と実行タイミングを調整して、手作業タスクを実施するオペレータの割当てと各タスクの実行順序と実行タイミングを決定する。この決定において、作業の連続性・作業内容を勘案して手作業タスクを実施するオペレータを決定し、実行開始時刻の近い手作業タスクをグループ化し、各グループ内でもっとも開始時刻の早いタスクの実行開始時刻と実行終了時刻の最も遅いタスクの実行終了時刻との時間差からオペレータの拘束時間を算出し、この拘束時間が短くなるように実行タイミングと実行順序を決定する処理例を示す。ここで、作業の連続性・作業内容を勘案するとは、あるオペレーションの実行先オペレータを(作業可能な)複数オペレータの中から決定する場合に、同一シナリオインスタンスに属する他のオペレーションと同じオペレータに積極的に割り当てるように決定することで、シナリオインスタンス内での連続性を満たすようにするということである。
図11は、ステップ906の要求先条件を満たすオペレータを特定する第2の処理例の処理フロー図である。この処理によって、同一シナリオインスタンスで定義されたオペレーションを積極的に同じオペレータに割り当てることができる。
(1)要求のあったオペレーションの属するシナリオインスタンスを特定する(ステップ1101)。
オペレーションの特徴の抽出は、図10のステップ1001と同様である。
(2)シナリオインスタンスを構成する他のオペレーションについて、実行するオペレータが決まっていればそのオペレータを集計し、オペレータ集合として特定する(ステップ1102)。
シナリオインスタンステーブル300のシナリオインスタンス識別子302を検索し、ステップ1101で取得したシナリオインスタンス識別子と一致するレコードの集合を特定し、それらのレコードの要求先306のオペレータを特定してオペレータ集合とする。
(3)オペレータ集合のうち、もっとも多いオペレータ(要求先306のオペレータとして最も多く現れるオペレータ)を要求のあったオペレーションの要求先として決定して、本サブルーチンの処理を終了する(ステップ1103)
ステップ1102で取得したオペレータ集合に属するオペレータごとにオペレーション数を集計する。オペレーション数の最も多かったオペレータをオペレーションの要求先として決定する。なお、このとき、オペレータスケジュール管理テーブル400のチーム403、ロール404、権限405を参照して、要求先条件204に合致するオペレータ(管理者識別子401)に絞り込んだうえで、オペレーション数の最も多かったオペレータをオペレーションの要求先として決定してもよい。
シナリオインスタンステーブル300のシナリオインスタンス識別子302を検索し、ステップ1101で取得したシナリオインスタンス識別子と一致するレコードの集合を特定し、それらのレコードの要求先306のオペレータを特定してオペレータ集合とする。
(3)オペレータ集合のうち、もっとも多いオペレータ(要求先306のオペレータとして最も多く現れるオペレータ)を要求のあったオペレーションの要求先として決定して、本サブルーチンの処理を終了する(ステップ1103)
ステップ1102で取得したオペレータ集合に属するオペレータごとにオペレーション数を集計する。オペレーション数の最も多かったオペレータをオペレーションの要求先として決定する。なお、このとき、オペレータスケジュール管理テーブル400のチーム403、ロール404、権限405を参照して、要求先条件204に合致するオペレータ(管理者識別子401)に絞り込んだうえで、オペレーション数の最も多かったオペレータをオペレーションの要求先として決定してもよい。
つづいて、要求先条件を満たすオペレータを特定する第3の処理例について説明する。第3の処理例では、オペレータの手作業タスクを含む複数タスクから構成されるオペレーションの実行要求が投入されると、各手作業タスクを含む全タスクの実行順序と実行タイミングを調整して、手作業タスクを実施するオペレータの割当てと各タスクの実行順序と実行タイミングを決定する。この決定において、手作業タスク実施に求められるスキルとタスクを実施するオペレータのスキルとを勘案して手作業タスクを実施するオペレータを決定し、実行開始時刻の近い手作業タスクをグループ化し、各グループ内でもっとも開始時刻の早いタスクの実行開始時刻と実行終了時刻の最も遅いタスクの実行終了時刻との時間差からオペレータの拘束時間を算出し、この拘束時間が短くなるように実行タイミングと実行順序を決定する処理例を示す。
図12は、ステップ906の要求先条件を満たすオペレータを特定する第3の処理例の処理フロー図である。この処理によって、オペレータがオペレーションを作業するスキルを勘案して、オペレーションをオペレータに割り当てることができる。これにより、オペレータのオペレーション習熟度、オペレーションの処理スピードに基づいてオペレータに作業を割当てることができる。
(1)要求のあったオペレーションの特徴を抽出する(ステップ1201)。
オペレーションの特徴の抽出は、図10のステップ1001と同様である。
オペレーションの特徴の抽出は、図10のステップ1001と同様である。
(2)抽出したオペレーションの特徴をもとづき、オペレーションの実行履歴にある類似の特徴を有するオペレーション集合を取得する(ステップ1202)。
オペレータスケジュール管理テーブル400の終了時刻欄407にあらじめ設定されたある一定時間以内の過去の時刻が格納れたレコードの関連オペレーション409を参照し、該当するオペレーションの定義内容をシナリオ定義テーブル200のシナリオテンプレート識別子欄201とオペレーション識別子欄203とから特定する。該当するオペレーションの定義内容をシナリオ定義テーブル200の要求オペレーション内容欄205の値をキーにして、ステップ1001で説明したオペレーション特徴テーブルを参照して、オペレーションの属するカテゴリや利用ソフトウェア(または利用サイト)を取得する。これら取得した過去の特徴情報と、ステップ1001で取得した特徴情報との類似度を算出する。類似度の算出は、たとえば、外部記憶装置113にあらかじめ記憶されているカテゴリ間の距離を示すスコアを算出し、距離が違いものほど高い類似度として算定する。このように算定したスキルの類似度、習熟度の類似度から総合的な類似度をあらかじめ決められた算出式により算出する。そして、あらかじめ外部記憶装置113に記憶された類似度の閾値を超過した類似度を有するオペレーションを特定し、オペレーション集合して取得する。
オペレータスケジュール管理テーブル400の終了時刻欄407にあらじめ設定されたある一定時間以内の過去の時刻が格納れたレコードの関連オペレーション409を参照し、該当するオペレーションの定義内容をシナリオ定義テーブル200のシナリオテンプレート識別子欄201とオペレーション識別子欄203とから特定する。該当するオペレーションの定義内容をシナリオ定義テーブル200の要求オペレーション内容欄205の値をキーにして、ステップ1001で説明したオペレーション特徴テーブルを参照して、オペレーションの属するカテゴリや利用ソフトウェア(または利用サイト)を取得する。これら取得した過去の特徴情報と、ステップ1001で取得した特徴情報との類似度を算出する。類似度の算出は、たとえば、外部記憶装置113にあらかじめ記憶されているカテゴリ間の距離を示すスコアを算出し、距離が違いものほど高い類似度として算定する。このように算定したスキルの類似度、習熟度の類似度から総合的な類似度をあらかじめ決められた算出式により算出する。そして、あらかじめ外部記憶装置113に記憶された類似度の閾値を超過した類似度を有するオペレーションを特定し、オペレーション集合して取得する。
(3)取得した類似のオペレーション集合に属する各オペレーションの時間を取得し、そのオペレータごとに平均実行時間を集計する(ステップ1203)。
シナリオインスタンステーブル300の開始実績時刻311から終了実績時刻31までの時間をオペレーションの実行時間とする。
シナリオインスタンステーブル300の開始実績時刻311から終了実績時刻31までの時間をオペレーションの実行時間とする。
(4)平均実行時間の最も短いオペレータをオペレーションの要求先として決定する(ステップ1204)。
オペレーションの実行時間の実績のうち、平均実行時間が短いオペレータほど習熟したオペレータであるとして、平均実行時間の短いオペレータを要求先として決定する。
図13は、ステップ906の要求先条件を満たすオペレータを特定する第4の処理例の処理フロー図である。この処理によって、オペレータが最近実行したオペレーションと同じオペレーションを割当てることができるようになる。これによって、オペレータは類似作業を連続して実施できるようになり、結果として単純作業の繰り返しになり、作業時間を短縮できたり、作業の切り替え負担を減らせたりできる。また、たとえば、同じ管理ソフトや同じ管理ソフトのタスクというレベルでの特徴をベースに類似度を判定することによって、オペレータは同じ管理ソフトに集中して作業することができるようになるし、新たにマニュアルや文書を調べたりすることなく過去のノウハウや経験を活かして作業できるようになる。
(1)要求のあったオペレーションの特徴を特定する(ステップ1301)。
オペレーションの特徴の抽出は、図10のステップ1001と同様である。
(2)各オペレータのスケジュールを取得し、要求のあったオペレーションの開始予定時刻から遡り、直近で実行する所定数のオペレーション集合をオペレータごとに特定する(ステップ1302)。
ステップ1301で要求のあったオペレーションの開始予定時刻309を取得する。
オペレータスケジュール管理テーブル400の開始時刻406を検索し、ステップ1301で要求のあったオペレーションの開始予定時刻309よりも所定時間以前からの時刻のレコードの関連オペレーション409のオペレーション識別子を、管理者識別子401(オペレータ)ごとに集計する。
オペレーションの特徴の抽出は、図10のステップ1001と同様である。
(2)各オペレータのスケジュールを取得し、要求のあったオペレーションの開始予定時刻から遡り、直近で実行する所定数のオペレーション集合をオペレータごとに特定する(ステップ1302)。
ステップ1301で要求のあったオペレーションの開始予定時刻309を取得する。
オペレータスケジュール管理テーブル400の開始時刻406を検索し、ステップ1301で要求のあったオペレーションの開始予定時刻309よりも所定時間以前からの時刻のレコードの関連オペレーション409のオペレーション識別子を、管理者識別子401(オペレータ)ごとに集計する。
(3)特定した特徴を指標として、特定したオペレーション集合の各オペレーションと要求のあったオペレーションとの類似度を集計して、オペレータごとに算出する(ステップ1303)。
該当するオペレーションの定義内容をシナリオ定義テーブル200のシナリオテンプレート識別子201とオペレーション識別子203とから特定する。該当するオペレーションの定義内容をシナリオ定義テーブル200の要求オペレーション内容205の値をキーにして、オペレーション特徴テーブルを参照して、オペレーションの属するカテゴリ情報、スキル情報、習熟度情報といったオペレーションの特徴情報を取得する。これら取得した過去の特徴情報と、ステップ1001で取得した特徴情報との類似度を算出する。類似度の算出は、たとえば、外部記憶装置113にあらかじめ記憶されているカテゴリ間の距離を示すスコアを算出し、距離が違いものほど高い類似度として算定する。また、スキル情報については、スキルの有無からスコアを算定し、スコアが近いものほど高い類似度として算定する。習熟度については、習熟度を表す指標が近いものほど高い類似度として算定する。また、利用ソフトウェア(利用Webサイト)が同じか否か、またはその利用機能や利用サイト、利用ページが同じか否かの判定からスコアを計算し類似度を総合的に算定する。このように算定したカテゴリの類似度、スキルの類似度、習熟度、利用ソフトウェア(または利用サイト)の類似度から総合的な類似度をあらかじめ決められた算出式により算出する。
該当するオペレーションの定義内容をシナリオ定義テーブル200のシナリオテンプレート識別子201とオペレーション識別子203とから特定する。該当するオペレーションの定義内容をシナリオ定義テーブル200の要求オペレーション内容205の値をキーにして、オペレーション特徴テーブルを参照して、オペレーションの属するカテゴリ情報、スキル情報、習熟度情報といったオペレーションの特徴情報を取得する。これら取得した過去の特徴情報と、ステップ1001で取得した特徴情報との類似度を算出する。類似度の算出は、たとえば、外部記憶装置113にあらかじめ記憶されているカテゴリ間の距離を示すスコアを算出し、距離が違いものほど高い類似度として算定する。また、スキル情報については、スキルの有無からスコアを算定し、スコアが近いものほど高い類似度として算定する。習熟度については、習熟度を表す指標が近いものほど高い類似度として算定する。また、利用ソフトウェア(利用Webサイト)が同じか否か、またはその利用機能や利用サイト、利用ページが同じか否かの判定からスコアを計算し類似度を総合的に算定する。このように算定したカテゴリの類似度、スキルの類似度、習熟度、利用ソフトウェア(または利用サイト)の類似度から総合的な類似度をあらかじめ決められた算出式により算出する。
(4)集計した類似度の最も高いオペレータをオペレーションの要求先として決定する(ステップ1304)。
本実施形態によれば、オペレータを拘束する時間を短縮するオペレーション実行スケジュールを決定できる。
101:管理サーバ、102:管理端末、111:中央演算装置、112:主記憶装置、113:外部記憶装置、130:実行スケジュール評価部、131:実行スケジュール管理部、132:オペレータスケジュール管理部、133:機器スケジュール管理部、134:シナリオ実行部、200:シナリオ定義テーブル、300:シナリオインスタンステーブル、400:オペレータスケジュール管理テーブル、500:機器スケジュール管理テーブル。
Claims (8)
- 管理端末と接続し、オペレータや機器のスケジュールを決定するスケジュール決定装置であって、
前記管理端末からシナリオの実行要求を受け付け、前記実行要求の受付に応答して、オペレーションシナリオを定義したシナリオ定義テーブルを参照して、前記実行要求に対応する前記シナリオを構成する複数のオペレーションの各々の開始予定時刻と終了予定時刻を決定し、複数の前記オペレーションを実行するオペレータ及び機器のスケジュールを格納する領域を、各々オペレータスケジュール管理テーブルおよび機器スケジュール管理テーブルに設け、決定した前記開始予定時刻と前記終了予定時刻を満足する、複数の前記オペレーションを実行するオペレータ及び機器のスケジュールを仮確保し、仮確保した前記オペレータ及び機器のスケジュールを各々前記オペレータスケジュール管理テーブル及び機器スケジュール管理テーブルに格納し、仮確保した前記スケジュールによる複数の前記オペレーションの前記終了予定時刻が、前記実行要求に含まれるデッドライン時刻を満足するとき、前記オペレータスケジュール管理テーブル及び機器スケジュール管理テーブルの、仮確保した前記オペレータ及び前記機器の前記スケジュールを確保状態に変更し、前記実行要求を受け付けたことを示すメッセージと確保状態に変更した前記スケジュールを前記管理端末に表示する実行スケジュール管理部、並びに
前記管理端末から前記オペレータの拘束時間の表示要求を受け付け、前記表示要求の受付に応答して、前記オペレータスケジュール管理テーブルから前記オペレータの、前記スケジュールを含むスケジュールを取得し、取得したスケジュールのオペレーションの開始予定時刻が所定時間内のオペレーションをグループ化し、グループ化した前記オペレーションの中で、最も開始予定時刻が早いオペレーションの開始予定時刻から最も終了予定時刻が遅いオペレーションの終了予定時刻までの時間を前記オペレータの前記拘束時間として求め、求めた前記拘束時間を前記管理端末に表示するスケジュール評価部を有し、
前記実行スケジュール管理部は、前記管理端末から前記オペレータのスケジュールの変更要求を受け付け、前記変更要求の受付に応答して、前記オペレータスケジュール管理テーブルから前記オペレータのスケジュールを取得し、取得したスケジュールのオペレーションの開始予定時刻が所定時間内のオペレーションをグループ化し、グループ化した前記オペレーションの中でスケジュールを調整可能なオペレーションがあるとき、調整可能な前記オペレーションのスケジュールを再スケジュールし、再スケジュールした前記オペレーションを含むグループの、最も開始予定時刻が早いオペレーションの開始予定時刻から最も終了予定時刻が遅いオペレーションの終了予定時刻までの時間を前記オペレータの新たな拘束時間として求め、前記新たな拘束時間が前記スケジュール評価部が求めた前記拘束時間より短いとき、前記新たな拘束時間及び再スケジュールしたスケジュールを含む前記オペレータのスケジュールを前記管理端末に表示することを特徴とするスケジュール決定装置。 - 前記実行スケジュール管理部は、取得した前記オペレータのスケジュールのオペレーションの開始予定時刻が所定時間内のオペレーションによるグループ化の前に、前記オペレータのスケジュールの、オペレーション間の類似度が高いオペレーションによりグループ化することを特徴とする請求項1に記載のスケジュール決定装置。
- 前記実行スケジュール管理部は、複数の前記オペレーションを実行する各オペレータとして、前記オペレーションと類似したオペレーションを実行した履歴があるオペレータを選択することを特徴とする請求項1に記載のスケジュール決定装置。
- 前記実行スケジュール管理部は、前記オペレーションと類似したオペレーションを実行した履歴があるオペレータが複数の場合、類似した前記オペレーションの平均実行時間が最も短いオペレータを選択することを特徴とする請求項3に記載のスケジュール決定装置。
- 管理端末と接続したスケジュール決定装置が、オペレータや機器のスケジュールを決定する方法であって、前記スケジュール決定装置は、
前記管理端末からシナリオの実行要求を受け付け、前記実行要求の受付に応答して、オペレーションシナリオを定義したシナリオ定義テーブルを参照して、前記実行要求に対応する前記シナリオを構成する複数のオペレーションの各々の開始予定時刻と終了予定時刻を決定し、複数の前記オペレーションを実行するオペレータ及び機器のスケジュールを格納する領域を、各々オペレータスケジュール管理テーブルおよび機器スケジュール管理テーブルに設け、決定した前記開始予定時刻と前記終了予定時刻を満足する、複数の前記オペレーションを実行するオペレータ及び機器のスケジュールを仮確保し、仮確保した前記オペレータ及び機器のスケジュールを各々前記オペレータスケジュール管理テーブル及び機器スケジュール管理テーブルに格納し、仮確保した前記スケジュールによる複数の前記オペレーションの前記終了予定時刻が、前記実行要求に含まれるデッドライン時刻を満足するとき、前記オペレータスケジュール管理テーブル及び機器スケジュール管理テーブルの、仮確保した前記オペレータ及び前記機器の前記スケジュールを確保状態に変更し、前記実行要求を受け付けたことを示すメッセージと確保状態に変更した前記スケジュールを前記管理端末に表示し、
前記管理端末から前記オペレータの拘束時間の表示要求を受け付け、前記表示要求の受付に応答して、前記オペレータスケジュール管理テーブルから前記オペレータの、前記スケジュールを含むスケジュールを取得し、取得したスケジュールのオペレーションの開始予定時刻が所定時間内のオペレーションをグループ化し、グループ化した前記オペレーションの中で、最も開始予定時刻が早いオペレーションの開始予定時刻から最も終了予定時刻が遅いオペレーションの終了予定時刻までの時間を前記オペレータの前記拘束時間として求め、求めた前記拘束時間を前記管理端末に表示し、
前記管理端末から前記オペレータのスケジュールの変更要求を受け付け、前記変更要求の受付に応答して、前記オペレータスケジュール管理テーブルから前記オペレータのスケジュールを取得し、取得したスケジュールのオペレーションの開始予定時刻が所定時間内のオペレーションをグループ化し、グループ化した前記オペレーションの中でスケジュールを調整可能なオペレーションがあるとき、調整可能な前記オペレーションのスケジュールを再スケジュールし、再スケジュールした前記オペレーションを含むグループの、最も開始予定時刻が早いオペレーションの開始予定時刻から最も終了予定時刻が遅いオペレーションの終了予定時刻までの時間を前記オペレータの新たな拘束時間として求め、前記新たな拘束時間が前記スケジュール評価部が求めた前記拘束時間より短いとき、前記新たな拘束時間及び再スケジュールしたスケジュールを含む前記オペレータのスケジュールを前記管理端末に表示することを特徴とするスケジュール決定方法。 - 前記スケジュール決定装置は、取得した前記オペレータのスケジュールのオペレーションの開始予定時刻が所定時間内のオペレーションによるグループ化の前に、前記オペレータのスケジュールの、オペレーション間の類似度が高いオペレーションによりグループ化することを特徴とする請求項5に記載のスケジュール決定方法。
- 前記スケジュール決定装置は、複数の前記オペレーションを実行する各オペレータとして、前記オペレーションと類似したオペレーションを実行した履歴があるオペレータを選択することを特徴とする請求項5に記載のスケジュール決定方法。
- 前記スケジュール決定装置は、前記オペレーションと類似したオペレーションを実行した履歴があるオペレータが複数の場合、類似した前記オペレーションの平均実行時間が最も短いオペレータを選択することを特徴とする請求項7に記載のスケジュール決定方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2013/057683 WO2014147711A1 (ja) | 2013-03-18 | 2013-03-18 | スケジュール決定装置及び決定方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP6039791B2 JP6039791B2 (ja) | 2016-12-07 |
JPWO2014147711A1 true JPWO2014147711A1 (ja) | 2017-02-16 |
Family
ID=51579448
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015506396A Expired - Fee Related JP6039791B2 (ja) | 2013-03-18 | 2013-03-18 | スケジュール決定装置及び決定方法 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP6039791B2 (ja) |
WO (1) | WO2014147711A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101908484B1 (ko) * | 2015-10-30 | 2018-10-17 | 주식회사 포스코 | 파우더 처리 장치 및 방법 |
JP7041565B2 (ja) | 2018-03-23 | 2022-03-24 | 本田技研工業株式会社 | 遠隔運転管理装置及びプログラム |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1998025219A1 (fr) * | 1996-12-04 | 1998-06-11 | Hitachi, Ltd. | Systeme d'aide au travail |
JP4614387B2 (ja) * | 2005-03-02 | 2011-01-19 | キヤノン株式会社 | 情報処理装置および工程管理方法およびそのプログラム |
JP4776501B2 (ja) * | 2006-11-10 | 2011-09-21 | 株式会社富士通エフサス | コールセンタにおけるオペレータスケジュール管理システム及びコールセンタにおけるオペレータスケジュール管理方法 |
-
2013
- 2013-03-18 WO PCT/JP2013/057683 patent/WO2014147711A1/ja active Application Filing
- 2013-03-18 JP JP2015506396A patent/JP6039791B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP6039791B2 (ja) | 2016-12-07 |
WO2014147711A1 (ja) | 2014-09-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5773554B2 (ja) | タスク管理方法及びタスク管理装置 | |
Kress et al. | A worker constrained flexible job shop scheduling problem with sequence-dependent setup times | |
US20140278652A1 (en) | Hybrid system and method for selecting and deploying field technicians in a facilities management hybrid workforce | |
US20080046862A1 (en) | Business task management | |
US10055703B2 (en) | Factory management system | |
CN110097304B (zh) | 信息生成方法和装置 | |
CN107545338A (zh) | 业务数据处理方法及业务数据处理系统 | |
JPWO2013140613A1 (ja) | 生産計画立案決定方法、生産計画立案装置およびプログラム | |
CN110070289A (zh) | 任务分配方法、装置、设备及存储介质 | |
JP6039791B2 (ja) | スケジュール決定装置及び決定方法 | |
US20150178658A1 (en) | Onboarding by Analyzing Practices of Best Hiring Managers | |
US20150294247A1 (en) | Method of managing business description, apparatus and storage medium | |
JP2008250556A (ja) | ワークフロー管理システム、ワークフロー管理方法、及びプログラム | |
CN110852571B (zh) | 加盟商的房源管理方法、计算机可读存储介质及服务器 | |
CN115511292B (zh) | 一种生产排程方法、系统、智能终端和存储介质 | |
CN116860344A (zh) | 一种流程管理方法、系统、设备及介质 | |
US20180060787A1 (en) | Information processing method, information processing device and client terminal | |
JP2010218324A (ja) | 業務割振り装置、業務割振り方法及び業務割振りプログラム | |
KR101676467B1 (ko) | 프로비저닝 방법 및 그 장치 | |
JP4489340B2 (ja) | 情報管理支援装置、情報管理支援システム、情報管理支援方法、記憶媒体、及びプログラム | |
JP2009122791A (ja) | ワークフローにおける作業終了予測システム | |
US20180240210A1 (en) | System and method for transportation scheduling and planning | |
JP2011076544A (ja) | 作業手順策定支援システム、作業手順策定支援方法、および作業手順策定支援プログラム | |
US20180349823A1 (en) | Systems and methods for generating and managing service appointments | |
JP7189640B1 (ja) | 情報処理装置、方法、およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20161011 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20161104 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6039791 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |