(57)【要約】【課題】複数のワークフローが並行して実行される場合に生じ得るリソースの競合を回避することができる画像処理装置及びプログラムを提供すること。【解決手段】本発明の画像処理装置は、ワークフローを受け付ける受付手段と、前記受付手段によって受け付けたワークフローを実行した場合に該ワークフローと他のワークフローとの間で生じる得る競合を検知する、競合検知手段と、前記受付手段により複数のワークフローを受け付けた場合、前記ワークフロー受付手段で受け付けたワークフローを、他のワークフローとの競合が生じないワークフローに修正する、修正手段と、を有する。【選択図】図２
2018182365.tif 000002
【特許請求の範囲】
【請求項１】
ワークフローを受け付ける受付手段と、
前記受付手段によって受け付けたワークフローを実行した場合に該ワークフローと他のワークフローとの間で生じる得る競合を検知する、競合検知手段と、
前記受付手段により複数のワークフローを受け付けた場合、前記ワークフロー受付手段で受け付けたワークフローを、他のワークフローとの競合が生じないワークフローに修正する、修正手段と、
を有する、画像処理装置。
【請求項２】
前記競合検知手段が、前記受付手段によって受け付けたワークフローを実行する前に該ワークフローと他のワークフローとの間で生じる得る競合を検知する、請求項１記載の画像処理装置。
【請求項３】
前記受付手段で受け付けたワークフローの構成に関する情報を格納する、ワークフロー構成情報格納手段と、
ワークフローを構成する各ワークフローステップが属するグループ及び排他的に利用するリソースに関する情報が格納されている、ワークフローステップ情報格納手段と、を更に有し、
前記競合検知手段が、前記ワークフロー構成情報格納手段に格納された情報と、前記ワークフローステップ情報格納手段に格納されている情報とを用いて、前記競合を検知する、請求項１又は２記載の画像処理装置。
【請求項４】
前記競合検知手段がリソース競合が生じ得ることを検知した場合に、前記修正手段が、前記ワークフロー受付手段で受け付けたワークフローに対する修正を行う、請求項１から３いずれか記載の画像処理装置。
【請求項５】
前記競合検知手段がリソース競合が生じることを検知しなかった場合には、前記修正手段が、前記ワークフロー受付手段で受け付けたワークフローに対する修正を行わない、請求項１から３いずれか記載の画像処理装置。
【請求項６】
競合状態の種類と各競合状態を回避するための代替ワークフローに関する情報を格納する、代替ワークフロー格納手段を更に有し、
前記修正手段が、前記代替ワークフロー格納手段に格納されている情報に基づいて前記ワークフロー受付手段で受け付けたワークフローを修正する、請求項１から５いずれか記載の画像処理装置。
【請求項７】
前記修正手段によって修正されたワークフローが、前記受付手段で受け付けたワークフローを構成するワークフローステップとは画像に関する設定値の異なるワークフローステップを含んでいる、請求項１から６いずれか記載の画像処理装置。
【請求項８】
前記修正手段によって修正されたワークフローが、前記受付手段で受け付けたワークフローを構成するワークフローステップとは種類の異なるワークフローステップを含んでいる、請求項１から７いずれか記載の画像処理装置。
【請求項９】
ワークフローを受け付けるステップと、
複数のワークフローを受け付けた場合、ワークフローの少なくとも一部が競合するとき、受け付けたワークフローを、他のワークフローとの競合が生じないワークフローに修正するステップと、
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及びプログラムに関する。
【背景技術】
【０００２】
下記特許文献１には、単数又は複数のサービスの実行機能を備えたデバイスを制御するデバイス制御装置であって、少なくとも第一のユーザ認証情報を含むユーザ情報が記憶された情報記憶手段と、携帯端末から情報を取得する情報取得手段と、前記情報取得手段によって前記携帯端末から取得した、第二のユーザ認証情報と、前記情報記憶手段に記憶してある前記第一のユーザ認証情報と照合してユーザ認証を行う認証手段と、前記デバイスにおけるサービスに関する管理及び制御を行う管理制御手段と、を備え、前記情報取得手段によって、前記携帯端末から、第二のユーザ認証情報並びに前記サービスのサービス指定情報を取得したときに、前記認証手段によって、ユーザ認証が成功すると、前記管理制御手段が、前記デバイスにおける該取得したサービス指定情報で指定されているサービスの実行状態を判断し、該当するサービスが実行可能な状態であるとき、該サービスに対する排他実行権限を設定し、前記デバイスに対して当該サービスの実行開始命令を送信し、前記デバイスから当該サービスの実行終了通知を受信したときに前記排他実行権限の設定を解除するよう制御すること、を特徴とするデバイス制御装置が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−  ８６９７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、複数のワークフローが並行して実行される場合に生じ得るワークフロー処理の遅延を抑制する画像処理装置及びプログラムを提供することを目的とする。なお、「並行して複数のワークフローが実行される」とは、あるワークフローの処理が開始された後、当該ワークフローが終了する前に、他のワークフローが少なくとも一つ開始されることを意味する。
【課題を解決するための手段】
【０００５】
［画像処理装置］
請求項１に係る本発明は、ワークフローを受け付ける受付手段と、
前記受付手段によって受け付けたワークフローを実行した場合に該ワークフローと他のワークフローとの間で生じる得る競合を検知する、競合検知手段と、
前記受付手段により複数のワークフローを受け付けた場合、前記ワークフロー受付手段で受け付けたワークフローを、他のワークフローとの競合が生じないワークフローに修正する、修正手段と、
を有する、画像処理装置である。
【０００６】
請求項２に係る本発明は、前記競合検知手段が、前記受付手段によって受け付けたワークフローを実行する前に該ワークフローと他のワークフローとの間で生じる得る競合を検知する、請求項１記載の画像処理装置である。
【０００７】
請求項３に係る本発明は、前記受付手段で受け付けたワークフローの構成に関する情報を格納する、ワークフロー構成情報格納手段と、
ワークフローを構成する各ワークフローステップが属するグループ及び排他的に利用するリソースに関する情報が格納されている、ワークフローステップ情報格納手段と、を更に有し、
前記競合検知手段が、前記ワークフロー構成情報格納手段に格納された情報と、前記ワークフローステップ情報格納手段に格納されている情報とを用いて、前記競合を検知する、請求項１又は２記載の画像処理装置である。
【０００８】
請求項４に係る本発明は、前記競合検知手段が所定のリソース競合が生じ得ることを検知した場合に、前記修正手段が、前記ワークフロー受付手段で受け付けたワークフローに対する修正を行う、請求項１から３いずれか記載の画像処理装置である。
【０００９】
請求項５に係る本発明は、前記競合検知手段が所定のリソース競合が生じることを検知しなかった場合には、前記修正手段が、前記ワークフロー受付手段で受け付けたワークフローに対する修正を行わない、請求項１から３いずれか記載の画像処理装置である。
【００１０】
請求項６に係る本発明は、競合状態の種類と各競合状態を回避するための代替ワークフローに関する情報を格納する、代替ワークフロー格納手段を更に有し、
前記修正手段が、前記代替ワークフロー格納手段に格納されている情報に基づいて前記ワークフロー受付手段で受け付けたワークフローを修正する、請求項１から５いずれか記載の画像処理装置である。
【００１１】
請求項７に係る本発明は、前記修正手段によって修正されたワークフローが、前記受付手段で受け付けたワークフローを構成するワークフローステップとは画像に関する設定値の異なるワークフローステップを含んでいる、請求項１から６いずれか記載の画像処理装置である。
【００１２】
請求項８に係る本発明は、前記修正手段によって修正されたワークフローが、前記受付手段で受け付けたワークフローを構成するワークフローステップとは種類の異なるワークフローステップを含んでいる、請求項１から７いずれか記載の画像処理装置である。
【００１３】
［プログラム］
請求項９に係る本発明は、ワークフローを受け付けるステップと、
複数のワークフローを受け付けた場合、ワークフローの少なくとも一部が競合したとき、受け付けたワークフローを、他のワークフローとの競合が生じないワークフローに修正するステップと、
をコンピュータに実行させるためのプログラムである。
【発明の効果】
【００１４】
請求項１に係る本発明によれば、複数のワークフローが並行して実行される場合に生じ得るワークフロー処理の遅延を抑制することができる。
【００１５】
請求項２に係る本発明によれば、請求項１に係る本発明の効果に加えて、受付手段で受け付けたワークフローに対する修正を、当該ワークフローの実行前に行うことができる。
【００１６】
請求項３に係る本発明によれば、請求項１又は２に係る本発明の効果に加えて、受付手段で受け付けたワークフローの構成に関する情報と、ワークフローを構成する各ワークフローステップが属するグループ及び排他的に利用するリソースに関する情報とを用いて、リソースの競合を検知することができる。
【００１７】
請求項４に係る本発明によれば、請求項１から３いずれかに係る本発明の効果に加えて、競合検知手段がリソース競合が生じ得ることを検知した場合に、受付手段で受け付けたワークフローを修正することができる。
【００１８】
請求項５に係る本発明によれば、請求項１から３いずれかに係る本発明の効果に加えて、競合検知手段がリソース競合が生じ得ることを検知しなかった場合に、受付手段で受け付けたワークフローへの修正を行わないようにすることができる。
【００１９】
請求項６に係る本発明によれば、請求項１から５いずれかに係る本発明の効果に加えて、受付手段で受け付けたワークフローを代替ワークフロー格納手段に格納された代替ワークフローに基づいて修正することができる。
【００２０】
請求項７に係る本発明によれば、請求項１から６いずれかに係る本発明の効果に加えて、受付手段で受け付けたワークフローの代わりに、当該ワークフローを構成するワークフローステップとは画像に関する設定値の異なるワークフローステップを含んでいるワークフローを実行することができる。
【００２１】
請求項８に係る本発明によれば、請求項１から７いずれかに係る本発明の効果に加えて、受付手段で受け付けたワークフローの代わりに、当該ワークフローを構成するワークフローステップとは種類の異なるワークフローステップを含んでいるワークフローを、実行することができる。
【００２２】
請求項９に係る本発明によれば、複数のワークフローが並行して実行される場合に生じ得るワークフロー処理の遅延を抑制することができる。
【図面の簡単な説明】
【００２３】
【図１】本発明の実施形態に係る画像処理装置１０のハードウェア構成を示すブロック図である。
【図２】画像処理装置１０の機能構成を示すブロック図である。
【図３】本発明の実施形態に係るワークフロー定義情報格納部に格納される情報の例を示す。
【図４】本発明の実施形態に係るワークフローＡのワークフローステップ構成を示す。
【図５】本発明の実施形態に係るワークフローＢのワークフローステップ構成を示す。
【図６】本発明の実施形態に係るワークフローＣのワークフローステップ構成を示す。
【図７】本発明の実施形態に係るワークフローＤのワークフローステップ構成を示す。
【図８】ワークフローＡの各ワークフローステップの、排他利用リソース及び属するグループを示す。
【図９】ワークフローＢの各ワークフローステップの、排他利用リソース及び属するグループを示す。
【図１０】ワークフローＣの各ワークフローステップの、排他利用リソース及び属するグループを示す。
【図１１】ワークフローＤの各ワークフローステップの、排他利用リソース及び属するグループを示す。
【図１２】本発明の実施形態に係る代替ワークフロー等に関する情報の例を示す。
【図１３】画像処理装置１０の動作を説明するためのフローチャートである。
【発明を実施するための形態】
【００２４】
図１は、本発明の実施形態に係る画像処理装置１０のハードウェア構成を示すブロック図である。画像処理装置１０は、ＣＰＵ１１、メモリ１２、ハードディスクドライブ（ＨＤＤ）等の記憶装置１３、ネットワークを介して外部の装置等との間でデータの送信及び受信を行う通信インタフェース（ＩＦ）１４を有し、これらの構成要素が、制御バス１５を介して互いに接続されている。
【００２５】
ＣＰＵ１１は、メモリ１２または記憶装置１３に格納された（あるいはＣＤ−ＲＯＭ等の記憶媒体（図示しない）から提供される）制御プログラムに基づき各処理を実行して、画像処理装置１０の動作を制御する。
【００２６】
図２は、画像処理装置１０の機能構成を示すブロック図である。画像処理装置１０は、ワークフローステップ定義部２１、受付部２２と、ワークフロー構成情報格納部２３と、ワークフロー実行部２４と、排他制御部２５と、代替ワークフロー格納部２６と、競合検知部２７と、ワークフロー修正部２８とを具えている。
【００２７】
ワークフローステップ定義部２１には、ワークフローステップ定義情報として、ワークフローステップ毎に、当該ワークフローステップにおいて排他的に利用することになる予め定められたリソース（コントロールパネルやスキャナ等）、及び、当該ワークフローステップが属するグループの情報が定義されている。
【００２８】
なお、ワークフローステップが属するグループの情報としては、任意に定めることができるが、例えば、ワークフローステップの種類毎に、画像処理装置１０が利用されている状況を類別するための情報（情報工学分野において、コンテキスト:context等と呼ばれる）が紐づいていれば、それらを流用しても良い。
【００２９】
利用者は、行いたい業務の流れに応じて、ワークフローステップ定義部２１に定義されているワークフローステップを（直接的にあるいは間接的に）選択し、処理順に組み合わせることで、所望のワークフローを作成する。
【００３０】
受付部２２は、利用者によって作成されたワークフローの入力を受け付ける。
【００３１】
ワークフロー構成情報格納部２３は、受付部２２で受け付けた各ワークフローについて、ワークフローを構成する複数のワークフローステップとその順列の情報（以下、「ワークフロー構成情報」ともいう）を格納する。
【００３２】
ワークフロー実行部２４は、ワークフロー構成情報格納部２３に格納されている情報に基づき、各ワークフローステップを順列に従って処理することで、ワークフローを実行する。
【００３３】
排他制御部２５は、ワークフロー実行部２４と連動して、リソースの排他処理及び排他状態の解除処理を行う。具体的には、ワークフローステップ定義情報を参照することで、ワークフローステップ毎に排他すべきリソースを決定し、各ワークフローステップの処理が開始されるタイミングで、当該リソースに対して排他処理を行う。なお、以降においては、例えば、排他処理をすることを「ロックする」、排他状態にあることを「ロックされている」等、排他について「ロック」という表現も用いる。
【００３４】
排他状態の解除のタイミングは、以下の様にして決定される。すなわち、一つのワークフローステップ（便宜上「先行ステップ」という）が終了し、続いて次のワークフロー（同じく「後続ステップ」という）が開始される際に、先行ステップと後続ステップのそれぞれが属するグループについて同一であるか異なるかをチェックし、異なる場合に、後続ステップの処理を開始するタイミングで、先行ステップにおいてロックされていたリソースの排他を解除する。
【００３５】
また、先行ステップと後続ステップの属するグループが同一である場合は、後続ステップが開始されても、先行ステップにおいてロックされていたリソースの排他状態は解除されず、排他状態のまま後続ステップの処理が実行される。
【００３６】
代替ワークフロー格納部２６には、リソースの競合状態の種類毎に予め用意された、競合を回避するための代替のワークフロー又はワークフローの一部としての一連のワークフローステップ群（以下、「代替ワークフロー等」ともいう）が格納される。
【００３７】
代替ワークフロー等は、仮に実行してしまうと既に実行されている先行ワークフローとの間でリソース競合が生じてしまう後続ワークフローについて、当該ワークフローを構成するワークフローステップの全部あるいは一部を置き換えるための一連のワークフローステップ群である。
【００３８】
ワークフローステップの種類はワークフローステップ定義情報に予め定められているため、先行ワークフローと後続ワークフローとの間でリソースの競合が生じ得るワークフローステップ群の組み合わせを洗い出し、問題となるリソース競合を回避するための後続ワークフローに対する修正方法を確認しておくことができる。従って、これらの結果に基づいて、代替ワークフロー等を作成しておくことが可能である。
【００３９】
画像処理装置１０として、画像読取用スキャナ、及び、操作用コントロールパネルを具え、ワークフローステップ定義部２１が、図３に示される内容をワークフローステップ定義情報として格納しているものを例にして、問題となるリソース競合及びその代替ワークフロー等について、以下例示する。
［競合例１：継続ロック］
【００４０】
ここでは、先行ワークフローとして図５に示されるワークフローステップで構成されるワークフローＢが実行され、後続ワークフローとして図４に示されるワークフローステップで構成されるワークフローＡが実行される場合を例に説明する。
【００４１】
ワークフローＡは、図４に示されるように、１番目のワークフローステップ：「宛先選択・スキャン開始画面」、２番目のワークフローステップ：「スキャン（Ｒｕｎ画面）」、３番目のワークフローステップ：「宛先確認・送信画面」の３つのワークフローステップから構成されている。
【００４２】
ワークフローＢは、図５に示されるように、１番目のワークフローステップ：「ＤＡＤＦ原稿セット」、２番目のワークフローステップ：「スキャン・合成プレビュー画面」、３番目のワークフローステップ：「プリント指示画面」の３つのワークフローステップから構成されている。
【００４３】
ここで、ワークフローステップ定義部２１を参照すると、ワークフローＡ及びワークフローＢの各ワークフローステップが排他利用するリソースと、各ワークフローステップが属するグループは、図８（ワークフローＡ）及び図９（ワークフローＢ）のとおりとなる。
【００４４】
図８より、ワークフローＡはステップＡ−１及びＡ−３において、コントロールパネルを利用することがわかる。
【００４５】
一方、図９より、ワークフローＢは、全てのワークフローステップにおいて、コントロールパネルを排他利用することになり、更に、各ワークフローステップ（ステップＢ−１、Ｂ−２、Ｂ−３）が「スキャン画面」グループに属するワークフローステップであるため、ステップＢ−１が開始されると、ワークフローＢ全体が完了するまで、コントロールパネルのロックは解除されないことになる。
【００４６】
従って、ステップＢ−１が開始された後は、ワークフローＡは、ワークフローＢ全体が完了するまで、処理の実行をステップＡ−１もしくはＡ−３の前の時点で待たなければならない。
【００４７】
上述のように、複数のワークフローステップが終了するまで、継続的にリソースを排他利用することによって生じる競合状態を、本明細書においては「継続ロック」という。
【００４８】
ここでワークフローＡの修正方法を検討すると、元々のワークフローＡを構成するワークフローステップとは、種類が異なるワークフローステップ、あるいは、種類は同じでも画像に関する設定値が異なるワークフローステップを含むように修正することにより、ワークフローＢによる継続ロックによって生じるワークフローＡの実行遅延という問題が改善可能である。
【００４９】
例えば、利用者によるコントロールパネルでのスキャン条件の設定を待たずに、スキャナが有する最高解像度・フルカラーで先にスキャンをし、ワークフローＢによるコントロールパネルのロックが解除された後に設定可能となるスキャンパラメータに応じて、先に得ておいたスキャン画像に対して、画像データの加工（解像度やカラー設定：ワークフローＡの２番目のワークフローステップにおけるスキャンが、特定の解像度及び白黒画像としてスキャンを行うものである場合を例にすると、最高解像度・フルカラーで得られている画像データに対して、解像度を当該特定の解像度まで落とす処理やカラー画像を白黒画像へ変換する処理が相当する）を行う。このように、元々のワークフローに設定されている設定値より上位の設定値に変更して処理を行い、後から画像データを加工して元の設定の状態の処理結果を得られるように修正する。
【００５０】
このように修正されたワークフローＡは、ワークフローＢによるコントロールパネルのロックが解除されるのを待たずに、スキャンをしてしまうことが可能となり、コントロールパネルのロック解除後に行わなければならない処理が減ることとなる。結果として、ワークフローＡの完了タイミングを早めることが可能となる。
【００５１】
［競合例２：相互ロック］
次に、図６に示されるワークフローステップで構成されるワークフローＣと図７に示されるワークフローＤが、並行して実行される場合に生じ得る競合について説明する。
【００５２】
ワークフローＣは、図６に示されるように、１番目のワークフローステップ：「スキャン設定画面」、２番目のワークフローステップ：「スキャン（Ｒｕｎ画面）」、３番目のワークフローステップ：「スキャン設定内プレビュー画面」の３つのワークフローステップから構成されている。
【００５３】
ワークフローＤは、図７に示されるように、１番目のワークフローステップ：「ＤＡＤＦ原稿セット」、２番目のワークフローステップ：「スキャン（Ｒｕｎ画面）」、３番目のワークフローステップ：「スキャン設定内プレビュー画面」の３つのワークフローステップから構成されている。
【００５４】
ここで、ワークフローステップ定義部２１を参照すると、ワークフローＣ及びワークフローＤの各ワークフローステップが排他利用するリソースと、各ワークフローステップが属するグループは、図１０（ワークフローＣ）及び図１１（ワークフローＤ）のとおりとなる。
【００５５】
図１０より、ワークフローＣは、ステップＣ−１においてコントロールパネルをロックし、ステップＣ−２においてスキャナを排他利用することになる。また、全てのワークフローステップが、「スキャン画面」に属しているため、コントロールパネル及びスキャナのロックは、ワークフローＣ全体が完了するまで、解除されないことがわかる。
【００５６】
また、図１１より、ワークフローＤはステップＤ−１及びＤ−２において、スキャナを継続的に排他利用し、ステップＤ−３においてコントロールパネルを排他利用することがわかる。
【００５７】
従って、ステップＣ−１が、ステップＤ−２の終了（ステップＤ−３の開始）前に開始され、かつ、ステップＤ−１が、ステップＣ−１の終了（ステップＣ−２の開始）前に開始されることになるタイミングで、ワークフローＣ及びワークフローＤが並行して実行されるような場合、以下のような競合状態が生じる。
【００５８】
すなわち、ワークフローＣでは、ステップＣ−１の終了段階で、ステップＤ−１及びステップＤ−２によるスキャナのロックにより、スキャナのロックができないため、ステップＣ−２を開始できず、結果として、ステップＣ−１を終了させることができないため、コントロールパネルをロックしたまま、スキャナのロックが解除されるのを待つことになる。
【００５９】
一方、ワークフローＤでは、ステップＤ−２の終了段階で、ステップＣ−１によるコントロールパネルのロックにより、コントロールパネルのロックができないため、ステップＤ−３を開始できず、結果として、ステップＤ−２を終了させることができないため、スキャナをロックしたまま、コントロールパネルのロックが解除されるのを待つことになる。
【００６０】
上述のように、一方のワークフローが、他方のワークフローが解除を待っているリソースをロックしたまま、他方がロックしているリソースの解除を待つという状態を、相互に維持し続け、双方のワークフローが進めない状況で膠着してしまう競合状態を、本明細書においては「相互ロック」という。
【００６１】
そこで、ワークフローＤの内容を修正することで、相互ロックの発生の回避を試みる。ワークフローＤの修正方法としては、例えば、以下のような方法が挙げられる。すなわち、ステップＤ−３におけるスキャン後のプレビュー表示を、コントロールパネルではなく、リモート操作端末で行うようにする。
【００６２】
ここで、リモート操作端末とは、ネットワークを介して画像処理装置１０と接続可能な端末装置であり、画像処理装置１０の操作や情報を表示するためのユーザインターフェイスを有するものであれば、専用の端末でも特定のプログラムを実装した各種パーソナルコンピュータ（デスクトップ型、ノート型、タブレット型等）、スマートフォン等でも良い。
【００６３】
このようにして修正されたワークフローＤは、ワークフローＣ（ステップＣ−１）によるコントロールパネルのロックが解除されずとも、ステップＤ−２を終了させることが可能となる。そのため、ステップＤ−２の終了に伴ってスキャナのロックが解除されて、ワークフローＣにおいても、ステップＣ−１の終了及びステップＣ−２の開始が可能となり、結果として、上述したような相互ロックの回避が可能となる。
【００６４】
回避すべき競合状態として、上述のような継続ロック及び相互ロックが想定された場合、例えば、図１２に示されるような情報を代替ワークフロー格納部に予め格納しておくことになる。
【００６５】
競合検知部２７は、受付部２２でワークフローの入力を受け付けると、当該ワークフローのワークフロー構成情報と、ワークフローステップ定義情報とを基に、既に実行中の先行ワークフローとの間で生じるリソース競合の種類を検知する。
【００６６】
なお、競合を検知するタイミングは、当該受け付けたワークフローの実行前（処理開始前）でも実行中（処理開始後）でも良いが、ワークフロー実行前に検知することで、ワークフロー実行前に、後述するワークフロー修正部２８によるワークフローの修正が可能となり、リソースの競合を未然に防ぐ、あるいは、結果的に競合することになる無駄な処理を行うことを防ぐ、ことが可能となるため、より好ましい。
【００６７】
例えば、受け付けたワークフローのワークフロー構成情報と、ワークフローステップ定義情報とを基に、当該ワークフローを実行することで排他処理されるリソースと、当該排他処理及び排他の解除のタイミングを取得し、実際に当該ワークフローが実行される前にワークフローのシミュレーションを実施するようにすることで、受け付けたワークフローの実行前に他のワークフローとの間のリソース競合の種類を検知することができる。
【００６８】
ワークフロー修正部２８は、競合検知部２７が検知したリソース競合の種類と、代替ワークフロー格納部２６に格納されている代替ワークフロー等と、の間でパターンマッチングを行い、条件に合致した代替ワークフロー等を用いて後続ワークフローの内容を置き換えることで後続ワークフローを修正する。なお、当然のことながら、条件に合致した代替ワークフロー等が無い場合は、後続ワークフローへの修正はなされない。
【００６９】
また、本実施形態においては、受付部２２でワークフローを受け付けた際に、実行中のワークフローがあるかどうかを判定して、実行中のワークフローがある場合にのみ、競合検知部２７あるいはワークフロー修正部が動作するように制御する、制御部を更に設けても良い。
【００７０】
以下、本実施形態における、ワークフローの実行処理の流れについて、図１３のフローチャートを参照しながら説明する。
【００７１】
ステップＳ１では、受付部２２で利用者によって作成されたワークフローを受け付ける。
【００７２】
ステップＳ２では、実行中のワークフロー（先行ワークフロー）が存在するかどうかを判定し、ＹＥＳの場合はステップＳ３へ進み、ＮＯの場合はステップＳ６へ進む。
【００７３】
ステップＳ３では、受付部２２で受け付けたワークフローをシミュレート実行する。
【００７４】
ステップＳ４では、ステップＳ３でのシミュレーション結果と、代替ワークフロー格納部２６に格納されている情報に基づき、受け付けたワークフローが代替ワークフロー等で置き換えるべき（すなわち、回避すべき）リソース競合を生じるものであるかどうか、を判定し、ＹＥＳの場合はステップＳ５へ進み、ＮＯの場合は、ステップＳ６へ進む。
【００７５】
ステップＳ５では、代替ワークフロー格納部２６に格納されている情報に基づき、該当ワークフローステップを代替ワークフロー等で置き換える。なお、修正されたワークフローの扱いについては、受付部２２の情報を直接更新しても良いし、受付部２２の情報は更新せずに別途記憶装置に記憶しておき、ステップＳ６において実行するワークフローを別途記憶している修正されたワークフローを実行するようにしても良い。
【００７６】
ステップＳ６では、受付部２２に格納されているワークフローの情報に基づいて、あるいは、上述したように、受付部２２とは別に記憶されている修正されたワークフローに基づいて、ワークフローが実行される。
【産業上の利用可能性】
【００７７】
以上で説明をしたように、本発明は画像処理装置及びプログラムに適用することができる。
【符号の説明】
【００７８】
１０    画像処理装置
１１    ＣＰＵ
１２    メモリ
１３    記憶装置
１４    通信インタフェース
１５    制御バス
２１    ワークフローステップ定義部
２２    受付部
２３    ワークフロー構成情報格納部２３
２４    ワークフロー実行部
２５    排他制御部
２６    代替ワークフロー格納部
２７    競合検知部
２８    ワークフロー修正部
【図１】
2018182365.tif 000003
【図２】
2018182365.tif 000004
【図３】
2018182365.tif 000005
【図４】
2018182365.tif 000006
【図５】
2018182365.tif 000007
【図６】
2018182365.tif 000008
【図７】
2018182365.tif 000009
【図８】
2018182365.tif 000010
【図９】
2018182365.tif 000011
【図１０】
2018182365.tif 000012
【図１１】
2018182365.tif 000013
【図１２】
2018182365.tif 000014
【図１３】
2018182365.tif 000015