(57)【要約】【課題】ワークフローの最適化が可能な情報処理装置を提供すること。【解決手段】設定画面２１０を介してユーザにより１の処理単位として選択される複数のプログラム４６を搭載し、ユーザにより選択される１以上の処理で構成されるワークフローの実行を制御する情報処理装置４０であって、前記ワークフローにおいて実行されないよう制御する処理が設定された設定情報を保持する保持部４８と、前記設定情報において設定された処理が実行されないよう前記ワークフローにおける設定を変更する処理設定変更部４４ａ〜４４ｃと、を有する。【選択図】図５
2019153930.tif 000002
【特許請求の範囲】
【請求項１】
設定画面を介してユーザにより１の処理単位として選択される複数のプログラムを搭載し、ユーザにより選択される１以上の処理で構成されるワークフローの実行を制御する情報処理装置であって、
前記ワークフローにおいて実行されないよう制御する処理が設定された設定情報を保持する保持部と、
前記設定情報において設定された処理が実行されないよう前記ワークフローにおける設定を変更する処理設定変更部と、を有する情報処理装置。
【請求項２】
前記設定情報には、前記ワークフローにおいて重複して実行されないよう制御する処理が設定されており、
前記処理設定変更部は、前記設定情報において設定された処理が重複して実行されないよう前記ワークフローにおける設定を変更する請求項１に記載の情報処理装置。
【請求項３】
前記ワークフローにおいて実行される処理には該処理のために実行される内部処理を有するものがあり、
前記設定情報には前記内部処理が重複する前記処理が設定されていることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記設定情報には、前記情報処理装置により処理された情報を配信する処理が設定されており、
前記処理設定変更部は、前記設定情報において設定された処理が前記ワークフローに複数あり、それぞれの処理に設定されている配信先が重複している場合、配信先の重複を排除するように前記ワークフローにおける設定を変更する請求項１に記載の情報処理装置。
【請求項５】
前記情報を配信する処理はメール配信の処理であり、
前記処理設定変更部は、前記メール配信が前記ワークフローに複数あり、それぞれの前記メール配信に設定されているメールアドレスが重複している場合、メールアドレスの重複を排除するように前記メール配信からメールアドレスを削除する請求項４に記載の情報処理装置。
【請求項６】
前記設定情報には、前記ワークフローにおいて実行が困難な処理が設定されており、
前記処理設定変更部は、前記設定情報において設定された処理が実行されないよう前記ワークフローにおける設定を変更する請求項１に記載の情報処理装置。
【請求項７】
前記設定情報には、処理が出力するファイル形式と処理に入力可能なファイル形式とが処理ごとに設定されており、
前記処理設定変更部は、前記ワークフローにおける連続した処理のうち後の処理が入力可能なファイル形式を前の処理が出力するか否かを前記設定情報に基づいて判断し、
後の処理が入力可能なファイル形式を前の処理が出力しない場合、後の処理が実行されないよう前記ワークフローにおける設定を変更する請求項６に記載の情報処理装置。
【請求項８】
設定画面を介してユーザにより１の処理単位として選択される複数のプログラムを搭載し、ユーザにより選択される１以上の処理で構成されるワークフローの実行を制御する情報処理装置が実行する情報処理方法であって、
保持部が保持する、前記ワークフローにおいて実行されないよう制御する処理が設定された設定情報において設定された処理が実行されないよう、処理設定変更部が前記ワークフローにおける設定を変更するステップ、
を有する情報処理方法。
【請求項９】
設定画面を介してユーザにより１の処理単位として選択される複数のプログラムを搭載し、ユーザにより選択される１以上の処理で構成されるワークフローの実行を制御する情報処理装置を、
保持部が保持する、前記ワークフローにおいて実行されないよう制御する処理が設定された設定情報において設定された処理が実行されないよう、前記ワークフローにおける設定を変更する処理設定変更部、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、及びプログラムに関する。
【背景技術】
【０００２】
電子メールで文書を配信したり所定のフォルダに文書を配信したりする文書配信システムが知られているが、文書配信システムが配信する文書に何らかの処理を行ってから文書を配信する場合がある。文書配信システムを使用するユーザはスキャナなどで原稿を読み取って生成した画像データに施される１つ以上の処理を選択したり設定したりすることができる。このように１つ文書に複数の処理が施される処理態様をワークフローと称し、ワークフローがどのように処理を実行するかが定義された情報をワークフローの定義情報という。
【０００３】
文書配信システムの管理者は予め複数のワークフローの定義情報を配信サーバに登録しておくことができる。これにより、ユーザは所望のワークフローを選択すれば、定義情報で定義された１つ以上の処理を文書（例えば画像データ）に対し実行できる。また、複数のワークフローから自動で最適なワークフローを選択する技術が考案されている（例えば、特許文献１参照。）。特許文献１には、ユーザの認証情報と予めワークフロー毎に設定した属性情報から最適なワークフローを自動的に選択する文書配信システムが開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載された文書配信システムでは、最適なワークフローが選択されたとしても、そのワークフローが最適化されていないという問題があった。これは、第一に、ワークフローに含まれる各処理の粒度に起因している。例えば、ある処理Ａが内部処理を必要とする場合、処理Ａの中で内部処理が行われるが、別の処理Ｂも同じ内部処理を有する場合があり、処理Ａと処理Ｂを含むワークフローでは同じ内部処理が重複して実行されてしまう。
【０００５】
また、第二に、組み合わせが困難な処理が存在することに起因している。例えば、処理Ａと処理Ｂが連続して実行されるワークフローにおいて、処理Ａが出力するファイル形式に処理Ｂが対応していない場合が生じ得る。この場合、処理Ｂにファイルが入力されずワークフローを最後まで実行できないおそれがある。
【０００６】
なお、このような課題は自動で最適なワークフローが選択される場合だけでなく、ユーザがワークフローを選択する場合にも生じ得る。
【０００７】
本発明は、上記課題に鑑み、ワークフローの最適化が可能な情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題に鑑み、本発明は、設定画面を介してユーザにより１の処理単位として選択される複数のプログラムを搭載し、ユーザにより選択される１以上の処理で構成されるワークフローの実行を制御する情報処理装置であって、前記ワークフローにおいて実行されないよう制御する処理が設定された設定情報を保持する保持部と、前記設定情報において設定された処理が実行されないよう前記ワークフローにおける設定を変更する処理設定変更部と、を有する。
【発明の効果】
【０００９】
ワークフローの最適化が可能な情報処理装置を提供することができる。
【図面の簡単な説明】
【００１０】
【図１】ワークフローの定義情報の新規作成時における設定画面の一例を示す図である。
【図２】ワークフローの設定画面の一例を示す図である。
【図３】ワークフローの定義情報の一例を示す図である。
【図４】メール送信というプラグインの詳細設定画面の一例を示す図である。
【図５】文書配信システムの概略構成図の一例である。
【図６】配信サーバのハードウェア構成例を示す図である。
【図７】スキャナ装置及び配信サーバの機能をブロック状に示す機能ブロック図の一例である。
【図８】定義情報記憶部に記憶されるワークフローの定義情報の一例を示す図である。
【図９】最適化設定記憶部に記憶された最適化設定を示す図の一例である。
【図１０】定義情報最適化部が最適化したワークフローの定義情報の一例を示す図である。
【図１１】定義情報最適化部が重複した処理を削除する手順を示すフローチャート図の一例である。
【図１２】スキャナ装置及び配信サーバの機能をブロック状に示す機能ブロック図の一例である（実施例２）。
【図１３】最適化設定記憶部に記憶された最適化設定を示す図の一例である（実施例２）。
【図１４】定義情報最適化部が連続した処理のファイル形式に基づいて処理を無効化する手順を示すフローチャート図の一例である。
【図１５】スキャナ装置及び配信サーバの機能をブロック状に示す機能ブロック図の一例である（実施例３）。
【図１６】最適化設定記憶部に記憶された最適化設定を示す図の一例である（実施例３）。
【図１７】２つの異なるメール配信に設定されているメールアドレスを示す図の一例である。
【図１８】定義情報最適化部が重複した配信先を削除する手順を示すフローチャート図の一例である。
【発明を実施するための形態】
【００１１】
以下、本発明を実施するための形態の一例として、文書配信システムと文書配信システムの配信サーバが行う情報処理方法について図面を参照しながら説明する。
【実施例１】
【００１２】
＜前提事項＞
本実施例の文書配信システムを説明するにあたり、文書配信システムで実行されるワークフローの定義情報について説明する。
【００１３】
図１は、ワークフローの定義情報の新規作成時における設定画面２１０の一例を示す図である。本実施例では、ワークフローの設定は文書配信システムの管理者が操作するスキャナ装置で行われるものとして説明するが、管理者が使用する端末又は一般のユーザが使用する端末から設定されてもよい。ワークフローの設定によりワークフローが定義される（定義情報が生成される）。
【００１４】
スキャナ装置は後述する配信サーバと通信して設定画面２１０を表示する。設定画面２１０は、追加可能なプラグイン（プログラム）のリストが表示されるプラグインリスト欄２０１と、ワークフロー定義欄２０２を有する。プラグインリスト欄２０１には、配信サーバが実行可能な全てのプラグインを示すアイコン９４（９４−１〜９４−６）が表示される。プラグインは、管理者又はユーザからみた処理の最小単位であり実際にはプログラムである。
【００１５】
図１に示すように、ワークフローの新規作成時のワークフロー定義欄２０２には、スタートマーク９１のみを含む流れ図９０が表示される。スキャナ装置は、管理者が、スタートマーク９１のみを含む流れ図９０にアイコン９４を追加することに応じて、ワークフローに対して新たなプラグインの実行を追加してワークフローの定義情報を作成する。このように、スキャナ装置の操作パネル２１上で管理者はアイコンを移動することでワークフローの定義情報を新規に作成することができる。
【００１６】
図２は、ワークフローの設定画面の一例を示す図である。図２（ａ）は、途中まで作成されたワークフローの流れ図９０が表示された設定画面２１０を示す。なお、ワークフローは最低１つのプラグインを有すればよく、図２（ａ）の流れ図９０で完成していてもよい。流れ図９０は、スタートを示すスタートマーク９１と、実行されるプラグインを示すアイコン９２（９２−１〜９２−４）と、矢印９３（９３−１〜９３−４）とを含む。矢印９３は、スタートマーク９１及びそれぞれのアイコン９２の間を接続して、プラグインの実行順序を表す。
【００１７】
図２（ｂ）は、図２（ａ）に対しプラグインが追加された設定画面２１０を示す。プラグインリスト欄２０１に表示されたアイコン９４−２を流れ図９０に追加する操作を管理者が行うことに応じて、スキャナ装置はワークフローに新たなプラグインの実行を追加する。このように、管理者はプラグインを流れ図に追加するという操作でワークフローを定義でき、スキャナ装置（又は配信サーバ）は流れ図に応じたワークフローの定義情報を作成することができる。作成されたワークフローの定義情報は配信サーバに登録される。
【００１８】
図１，２ではワークフローの新規の作成方法を説明したが、すでに定義済みのワークフローを管理者が編集したり改良したりすることもできる。管理者は配信サーバからスキャナ装置にワークフローをダウンロードする。スキャナ装置は、管理者の操作に応じて、ワークフローに既に組み込まれたプラグインを削除又は追加したり、既に組み込まれたプラグインの実行順序を変更したりすることができる。また、管理者は配信サーバへのワークフローの登録時にこのような操作を禁止してもよい。
【００１９】
図３は、ワークフローの定義情報の一例を示す図である。配信サーバは、スキャナ装置がスキャン処理をした場合、例えば、図３に示されるようなワークフローの定義情報にしたがって、プラグインを実行させる。
【００２０】
図３によれば、配信サーバは、スキャナ装置が取り込んだ画像データを受信すると、例えば、第１の処理として、バーコード分割／認識をするプラグインを実行する。バーコード分割／認識処理は、画像データ内の所定の位置のバーコードを画像データから抽出して、バーコードの内容を取得する処理である。
【００２１】
続いて、第２の処理として、配信サーバは、ＸＭＬ（Extensible  Markup  Language）スタイルシート変換をするプラグインを実行する。ＸＭＬスタイルシート変換は、画像データの書誌情報をＸＭＬ形式のデータに変換する処理である。
【００２２】
続いて、第３の処理として、配信サーバは、メール配信をするプラグインを実行する。メール配信は、図４で後述する宛先に例えば画像データ（配信サーバが処理した電子データであり画像データに限られない）を電子メールで送信する処理である。また、第４の処理として、配信サーバは、第３の処理（フォルダ配信）と並行して、ＦＴＰ配信をするプラグインを実行する。ＦＴＰ配信は、ネットワーク上のＦＴＰサーバにデータをＦＴＰで送信して蓄積させる処理である。
【００２３】
また、ワークフロー定義欄２０２のいずれかのプラグインを管理者がダブルクリック等すると、スキャナ装置は当該プラグインの詳細を設定する詳細設定画面を表示する。
【００２４】
図４は、メール送信というプラグインの詳細設定画面２２０の一例を示す図である。図４に示される詳細設定画面２２０は、送信先アドレスの設定領域２２１、添付文書の名前の設定領域２２２、本文の設定領域２２３を有する。また、送信先に自分を含めるか否かの設定欄２２４、デフォルト（初期設定）の電子メールドメインの設定欄２２５、エラー通知の有無に関する設定欄２２６を有する。図４ではメール送信のプラグインの詳細設定画面２２０を説明したが、他のプラグインについてもプラグインの処理に対応した詳細設定画面２２０が表示される。
【００２５】
このように、管理者が設定画面２１０を使って選択できる１の処理は、ユーザが選択して搭載するプラグインが最小単位（最小粒度）である。プラグインは、処理を実行するプログラムである。プラグインは、例えば、ＯＣＲ（Optical Character Reader）を実行するために天地処理を実行することもあれば、スタンプを押印するために天地処理を実行することもあるなど、他のプラグインと重複した内部処理を有する場合がある。
【００２６】
各プラグインが重複した内部処理を有さないようにするためには、処理の粒度を小さくすればよいが、ユーザが設定画面２１０を介して選択する処理の粒度が細かくなると利便性を損なうおそれがある。このため、各プラグインは、他のプラグインにおいて重複した内部処理が行われるかどうかを意識して作成されていない。また、ユーザが重複した内部処理を有するプラグインを実行しうるかどうかもユーザ次第で変わる。
【００２７】
仮に、重複が排除されなくてもワークフローの実行が困難になることは少ないが、ワークフローに要する時間が長くなったり、配信サーバの処理負荷が増大したりするおそれがある。そこで、図３のような１つのワークフローが重複した内部処理を有する場合は、重複を排除することが好ましい。
【００２８】
＜用語について＞
ワークフローとは、電子データに対し実行される１以上の処理である。各処理の順番が決まっている場合を含む。一連の処理によりワークフローが出力する電子データは複数でもよい。１つ以上の処理を含んでいればワークフローと呼ばれていなくてもよい。例えば、連携処理、連続処理と呼ばれていてもよい。
【００２９】
実行されないよう制御するとは、いかなる方法でも実行されなければよい。例えば、ワークフローの定義情報から削除される方法、ワークフローの定義情報が無効化される方法、又は、実際には処理されないダミー処理に置き換えられる方法などがある。
【００３０】
また、文書配信システムの管理者は主にワークフローを定義する者をいい、ユーザは定義されたワークフローを実行する者をいう。ただし、管理者がユーザとなる場合もあり、両者の区別は便宜上に過ぎない。
【００３１】
また、文書配信システムは、１つ以上の処理が実行された電子データを出力するシステム又は装置であればよい。したがって、電子データ出力システムなどと呼ばれていてもよい。また、ワークフローに対応したシステムとしてワークフローシステム等と呼ばれていてもよい。
【００３２】
＜システム構成例＞
図５は文書配信システム１００の概略構成図の一例を示す。文書配信システム１００は、ネットワークＮを介して通信可能に接続された、配信サーバ４０、及び１つ以上のスキャナ装置２０を有する。図５には主に本実施例の説明で使用される装置が記載されているに過ぎず、図示する以外の装置を有していてよい。例えば、配信サーバが処理した文書を蓄積するデータ蓄積装置、管理者端末、及び、ユーザ端末等がネットワークＮに接続されていてもよい。
【００３３】
ネットワークＮは、スキャナ装置２０が配置された施設のＬＡＮ（Local Area Network）、広域イーサネット（登録商標）、ＶＰＮ（Virtual Private Network）などで接続されたＷＡＮ、及び、インターネット等を含んでいてよい。この他、通信可能な仕組みであればネットワークＮを構成しうる。
【００３４】
スキャナ装置２０は画像取込装置の一例であって、原稿をスキャンして画像データを生成する。スキャナ装置２０は、スキャナ機能と共に、ファクシミリ機能、コピー機能及びプリンタ機能のうちの少なくとも１つを有する複合機であってもよい。スキャナ装置２０は、ネットワークＮを介して生成した画像データを配信サーバ４０へと送信する。
【００３５】
画像データを作成する装置としては、デジタルスチルカメラでもよいしデジタルビデオカメラでもよい。必ずしも画像の入力を受け付ける装置でなくてもよく、配信サーバ４０による処理の対象となる電子データの入力を受け付ける装置であればよい。例えば、テレビ会議端末、電子黒板、ＰＣ(Personal Computer)、又は、ＵＳＢメモリなどの記憶媒体でもよい。
【００３６】
配信サーバ４０は、１台以上の情報処理装置から構成される。配信サーバ４０は、少なくとも一つのスキャナ装置２０から画像データを取得する。
【００３７】
配信サーバ４０は、スキャナ装置２０から取得した画像データに対して、少なくとも１つの処理を予め定められた順序で実行する。配信サーバ４０はクラウドコンピューティングに対応していることが好ましい。クラウドコンピューティングとは、特定ハードウェア資源が意識されずにネットワーク上のリソースが利用される利用形態をいう。
【００３８】
配信サーバ４０は、一例として、スキャナ装置２０から取得した画像データに対して、フィルタ処理（画像補正、ファイル形式の変換、文字認識、バーコード読み取り、及び、文書情報の抽出等）を実行する。そして、配信サーバ４０は、スキャナ装置２０から取得した画像データ及びファイル処理により生成された各種の文書情報を、メール配信、フォルダ配信等により所定の情報処理装置へと送信して蓄積させる。
【００３９】
なお、文書の蓄積には、一例として、Ｗｉｎｄｏｗｓ（登録商標）の共有フォルダを管理するファイルサーバ、ＦＴＰ（File  Transfer  Protocol）サーバ、ＷｅｂＤＡＶ（Web−based  Distributed  Authoring  and  Versioning）サーバ、メールサーバ等が利用される。
【００４０】
＜ハードウェア構成例＞
図６は、本実施例における配信サーバ４０のハードウェア構成例を示す図である。配信サーバ４０は、それぞれバスＢで相互に接続されているＣＰＵ１０１、インタフェース装置１０２、表示装置１０３、入力装置１０４、ドライブ装置１０５、補助記憶装置１０６、及び、メモリ装置１０７を有する。
【００４１】
ＣＰＵ１０１は、補助記憶装置１０６に記憶されたプログラムをメモリ装置１０７に展開してプログラムを実行することで配信サーバ４０の処理の全体に係る機能を実現する。インタフェース装置１０２は、ネットワークＮに接続して通信処理を行う通信装置である。表示装置１０３はＣＰＵが生成したＧＵＩ（Graphical User Interface）を表示する。入力装置１０４はキーボード及びマウス等であり、様々な操作指示を入力させるために用いられる。
【００４２】
ドライブ装置１０５はＣＤ−ＲＯＭ等の記録媒体１０８に情報を読み書きする装置である。補助記憶装置１０６は不揮発性の大容量の記憶装置であり、例えばハードディスクドライブやソリッドステイトドライブである。メモリ装置１０７は高速に読み書きが可能な揮発性の記憶装置である。
【００４３】
補助記憶装置１０６に記憶されるプログラムは、記録媒体１０８に記憶された状態で配布され、ドライブ装置１０５を介して配信サーバ４０にインストールされてもよいし、プログラム配信用のサーバからインタフェース装置１０２を介してダウンロードされ配信サーバ４０にインストールされてもよい。このプログラムには各種のプラグインが含まれる。
【００４４】
なお、スキャナ装置２０のハードウェアについては公知の構成でよいものとし、図６の情報処理装置としての構成に、少なくとも原稿の読み取り機能（スキャナ）を有するものとする。
【００４５】
＜機能について＞
図７は、本実施例に係るスキャナ装置２０及び配信サーバ４０の機能をブロック状に示す機能ブロック図の一例である。
【００４６】
＜＜スキャナ装置＞＞
スキャナ装置２０は、操作パネル２１と、表示制御部２２と、情報保持部２３と、スキャナ部２４と、通信部２５とを有する。スキャナ装置２０が有するこれらの機能は、スキャナ装置２０のＣＰＵがＨＤＤ等に記憶されたプログラムを実行し、スキャナ装置２０のハードウェアを制御することにより実現される機能又は手段である。
【００４７】
操作パネル２１は、ユーザＵに対して画面を表示すると共に、操作ボタン及びテキスト入力ボックスを介してユーザＵからの操作入力を受け付ける。操作パネル２１は、一例として、タッチパネル及び各種操作ボタン等を含む。
【００４８】
表示制御部２２は、操作パネル２１を制御する。情報保持部２３は、操作パネル２１に表示する画像及び操作パネル２１に対して入力された情報を記憶する。スキャナ部２４は、原稿台にセットされた用紙等をスキャンして画像データを生成する。
【００４９】
通信部２５は、ネットワークＮを介して配信サーバ４０と通信する。通信部２５は、一例として、操作パネル２１に表示する情報等を配信サーバ４０から取得すると共に、操作パネル２１に対して入力された情報を配信サーバ４０へと送信する。また、通信部２５は、一例として、スキャナ部２４により取り込んだ画像データを配信サーバ４０へと送信する。
【００５０】
＜＜配信サーバ＞＞
配信サーバ４０は、通信部４１と、処理実行部４２と、定義情報保存部４３と、定義情報最適化部４４ａと、プログラム実行部４５と、を有する。配信サーバ４０が有するこれらの機能は、図６に示した配信サーバ４０のＣＰＵ１０１が補助記憶装置１０６等に記憶されたプログラムを実行し、配信サーバ４０のハードウェア要素を制御することにより実現される機能又は手段である。
【００５１】
また、配信サーバ４０は、図６に示した補助記憶装置１０６又はメモリ装置１０７等により構築される定義情報記憶部４７、及び最適化設定記憶部４８を有する。まず、これらについて説明する。
【００５２】
図８は定義情報記憶部４７に記憶されるワークフローの定義情報の一例を示す。図８（ａ）は流れ図で示されたワークフローを示し、図８（ｂ）は図８（ａ）のワークフローをＸＭＬ形式で示したワークフローの定義情報である。図８（ａ）のワークフローは、スタートＳ→ＰＤＦ変換→ＯＣＲ→メール配信×２、スタートＳ→アーカイバ→アーカイバ→フォルダ配信、という一連の処理とその順番を示す。なお、アーカイバとは圧縮されたファイルを解凍することをいう。
【００５３】
図８（ｂ）のワークフローの定義情報は、下から上にワークフローが進行するように記載されている。下から順にワークフローの定義情報について説明する。
<startpoint>
<nextPlugin id="@RPDFConverter" index="0" />
<nextPlugin id="@Archiver" index="0" />
</startpoint>
これらの記載は、ＰＤＦ変換とアーカイバの処理からワークフローが始まる（startpoint）ことを示している。
<plugin id="@Archiver" index="0" type="filter" displayName="アーカイバ">
<nextPlugin id="@Archiver" index="1" />
</plugin>
これらの記載は、アーカイバ（index="0"）は途中の処理（filter）であり、スキャナ装置２０における表記が「アーカイバ」であることを示す。また、次の処理（nextPlugin）がアーカイバ（index="1"）であることを示す。
<plugin id="@Archiver" index="1" type="filter" displayName="アーカイバ">
<nextPlugin id="@ToFolder" index="0" />
</plugin>
これらの記載は、アーカイバ（index="1"）は途中の処理（filter）であり、スキャナ装置２０における表記が「アーカイバ」であることを示す。また、次の処理（nextPlugin）がフォルダ配信であることを示す。
<plugin id="@ToFolder" index="0" type="output" displayName="フォルダ配信" />
この記載は、フォルダ配信は出力の処理（output）であり、スキャナ装置２０における表記が「フォルダ配信」であることを示す。なお、次の処理は定義されていない。
<plugin id="@RPDFConverter" index="0" type="filter" displayName="PDF変換">
<nextPlugin id="@OcrFilter" index="0" />
</plugin>
これらの記載は、ＰＤＦ変換は途中の処理（filter）であり、スキャナ装置２０における表記が「ＰＤＦ変換」であることを示す。また、次の処理（nextPlugin）がＯＣＲであることを示す。
<plugin id="@OcrFilter" index="0" type="filter" displayName="OCR">
<nextPlugin id="@ToSMTP" index="0" />
<nextPlugin id="@ToSMTP" index="1" />
</plugin>
これらの記載は、ＯＣＲは途中の処理（filter）であり、スキャナ装置２０における表記が「ＯＣＲ」であることを示す。また、次の処理（nextPlugin）がメール送信（index="0"）とメール送信（index="1"）であることを示す。
<plugin id="@ToSMTP" index="0" type="output" displayName="メール配信" />
この記載は、メール送信（index="0"）は出力の処理（output）であり、スキャナ装置２０における表記が「メール配信」であることを示す。なお、次の処理は定義されていない。
<plugin id="@ToSMTP" index="1" type="output" displayName="メール配信" />
この記載は、メール送信（index="1"）は出力の処理（output）であり、スキャナ装置２０における表記が「メール配信」であることを示す。なお、次の処理は定義されていない。
【００５４】
図８（ｂ）ではＸＭＬ形式でワークフローの定義情報が記載されているが、ＪＳＯＮ形式、ＣＳＶ形式、又は、テキスト形式などで記載されてもよく、ワークフローの定義情報の形式はこれらに限られない。
【００５５】
次に、図９を用いて最適化設定記憶部４８について説明する。図９は最適化設定記憶部４８に記憶された最適化設定を示す。本実施例の最適化設定（設定情報の一例）には重複して配置しても効果がない処理のリスト「重複設定不可処理」が設定されている。すなわち、アーカイバは解凍処理なので重複して実行される必要がなく、ＰＤＦ変換も一度行えば重複して実行される必要がない。ＰＤＦスタンプ、画像変換、及び、画像補正についても同様である。最適化設定には重複して実行されないよう制御される処理が設定されている。最適化設定には内部処理が重複する処理が設定されている。
【００５６】
なお、配信サーバ４０は、１つのワークフローが重複して同じ処理（最適化設定に設定された処理）を有するだけでなく、連続した同じ処理を有する場合にだけ処理が重複していると判断してもよい。同じ処理であっても離れている場合には、間の処理で再度、同じ処理が必要になる可能性があるためである。
【００５７】
図７に戻って説明する。通信部４１は、ネットワークＮを介してスキャナ装置２０と通信する。本実施例では画像データとワークフローの定義情報を受信する。プログラム実行部４５は、予め登録された複数のプラグイン４６を有し、処理実行部４２の制御にしたがって実行する。プラグイン４６は処理と１対１に対応する。原則的に各プラグイン４６は互いに異なる処理を実行するが、同じ処理を実行するプラグイン４６が存在してもよい。
【００５８】
処理実行部４２は、プログラム実行部４５と通信してユーザが選択したワークフローを実行する。ユーザによって実行するワークフローを指示されると処理実行部４２は定義情報記憶部４７に記憶されたワークフローの定義情報を読み出して、処理とその順番を解析する。そして、処理に対応するプラグイン４６に画像データを送出してその実行を要求する。プラグイン４６から処理された画像データ（画像データから別の形式のデータに変換されていてもよい）を取得すると、ワークフローの定義情報の処理の順番に、プラグイン４６への処理の要求を繰り返す。
【００５９】
定義情報保存部４３は、スキャナ装置２０による画像データの取り込みに先立って、スキャナ装置２０に対する管理者の操作に応じて、選択されたワークフローの定義情報の編集を受け付ける。定義情報保存部４３は、一例として、通信部４１を介して、スキャナ装置２０の操作パネル２１にワークフローの設定画面２１０を表示させ、設定画面２１０に対するワークフローの編集操作を受け付ける。すでに、定義情報記憶部４７に記憶されているワークフローが編集される場合と、新規に作成される場合とがある。そして、定義情報保存部４３は、編集後のワークフローの定義情報又は新規に作成されたワークフローの定義情報を定義情報記憶部４７に記憶させる。
【００６０】
定義情報最適化部４４ａは、最適化設定記憶部４８に記憶された最適化設定を参照して、ワークフローの定義情報を最適化する。より具体的には、最適化設定と同じ処理がワークフローの定義情報に重複して２つ以上含まれる場合、１つの処理を残して他の同じ処理を削除する。なお、定義情報最適化部４４ａは、定義情報記憶部４７にワークフローの定義情報が記憶されたタイミングで重複した処理を削除してもよいし、処理実行部４２がワークフローを実行するタイミングで重複した処理を削除してもよい。
【００６１】
＜重複した処理の削除後の定義情報＞
図１０は定義情報最適化部４４ａが最適化したワークフローの定義情報の一例を示す。図１０と図８（ｂ）を比較する以下の変更点がある。
<plugin id="@Archiver" index="0" type="filter" displayName="アーカイバ">
<nextPlugin id="@ToFolder" index="0" />
すなわち、アーカイバ（index="0"）の次の処理がフォルダ配信に変更されている。このように、削除した処理の前の処理と削除した処理の後の処理とが繋がるように重複した処理を削除する。
【００６２】
また、図８（ｂ）には存在したアーカイバ（index="1"）の以下の処理が削除されている。
『<plugin id="@Archiver" index="1" type="filter" displayName="アーカイバ">
<nextPlugin id="@ToFolder" index="0" />
</plugin>  』
このようにして配信サーバ４０は重複した処理を削除できる。なお、アーカイバ（index="0"）が削除されてもよい。
【００６３】
＜動作手順＞
図１１は、定義情報最適化部４４ａが重複した処理を削除する手順を示すフローチャート図の一例である。図１１の処理は配信サーバ４０が起動中に実行される。
【００６４】
まず、定義情報最適化部４４ａは、処理実行部４２からワークフローを実行する旨の通知があるか否かを判断する（Ｓ１０）。処理実行部４２は重複した処理の実行を回避するため、ワークフローの実行にあたり定義情報最適化部４４ａにワークフローを実行することを通知する。
【００６５】
また、定義情報最適化部４４ａは、定義情報保存部４３からワークフローの定義情報を定義情報記憶部４７に保存した旨の通知があるか否かを判断する（Ｓ２０）。定義情報保存部４３は重複した処理があるワークフローの定義情報を保存しないようにするため、ワークフローの定義情報を保存する際にその旨を定義情報最適化部４４ａに通知する。定義情報最適化部４４ａが定義情報記憶部４７へのワークフローの定義情報の保存を監視してもよい。
【００６６】
ステップＳ１０又はＳ２０の判断がＹｅｓの場合、定義情報最適化部４４ａはワークフローの定義情報を定義情報記憶部４７から取得する（Ｓ３０）。定義情報最適化部４４ａは処理実行部４２又は定義情報保存部４３から通知されたワークフローの定義情報の識別情報に基づいて定義情報記憶部４７からワークフローの定義情報を取得する（読み出す）。
【００６７】
次に、定義情報最適化部４４ａは最適化設定記憶部４８から最適化設定を読み出し、最適化設定に設定された処理であってワークフローの定義情報に重複して設定されている２つ以上の処理を削除する。重複していなければ削除しないでよい。定義情報最適化部４４ａは最適化したワークフローの定義情報を定義情報記憶部４７に記憶する（Ｓ４０）。同じ処理が３つ以上ある場合は、同じ処理を１つだけ残せばよい。同じ処理が連続している場合にだけ１つの処理を残して他の処理を削除してもよい。また、重複した同じ処理のうちどの処理を残してもよいが、ワークフローの定義情報の変更が容易になるように削除する処理が決定されるとよい。
【００６８】
定義情報最適化部４４ａは削除が完了した旨を処理実行部４２又は定義情報保存部４３に通知する（Ｓ５０）。これにより、処理実行部４２は重複した処理がないワークフローを実行できる。
【００６９】
＜まとめ＞
以上説明したように、本実施例の配信サーバ４０は、１つのワークフローが予め設定された重複した処理を有する場合は、重複を排除する（重複した処理を削除する）ので、ワークフローの実行が完了するまでの時間を短縮でき、配信サーバ４０の処理負荷が増大したりすることを抑制できる。また、１つの処理の粒度を調整する必要もないし、ユーザが設定画面を操作する際の利便性を損なうこともない。
【実施例２】
【００７０】
本実施例では、処理間の入出力を最適化する配信サーバ４０について説明する。例えば、処理Ａと処理Ｂが連続しており、処理Ａが生成するファイル形式に処理Ｂが対応していない場合、配信サーバ４０は処理Ｂを無効化することで最適化する。これにより、実行できない処理Ｂでワークフローが中断して、処理結果が得られないなどの状況が生じることを抑制できる。
【００７１】
本実施例では、実施例１において同一の符号を付した構成要素は同様の機能を果たすので、主に本実施例の主要な構成要素についてのみ説明する場合がある。例えば、図５のシステム構成図及び図６のハードウェア構成図は本実施例でも援用される。
【００７２】
図１２は、本実施例に係るスキャナ装置２０及び配信サーバ４０の機能をブロック状に示す機能ブロック図の一例である。図１２の説明では、主に図７との相違を説明する。配信サーバ４０の構成は図７と同様であるが、定義情報最適化部４４ｂが何に基づいてワークフローの定義情報を最適化するかが異なっている。また、図１２の最適化設定記憶部４８が記憶する最適化設定が実施例１とは異なっている。
【００７３】
図１３は本実施例の最適化設定記憶部４８に記憶された最適化設定を示す。最適化設定には処理ごとに、入力可能ファイルと出力ファイルが対応付けられている。例えば、ＰＤＦ変換という処理では、入力可能ファイルがbmp、png、gif、tif、及び、jpgであり、出力ファイルがpdfである。
【００７４】
例えば、図８に示したワークフローの定義情報に含まれるように、「ＰＤＦ変換」→「ＯＣＲ」という処理が含まれる場合を例に説明する。図１３によれば、ＰＤＦ変換の出力ファイル「pdf」は次のＯＣＲの入力可能ファイルに含まれない。これは、配信サーバ４０がＯＣＲを実行できないことを意味する。本実施例の定義情報最適化部４４ｂはＯＣＲの処理を無効化する。無効化とは、処理が実行されないようにワークフローの定義情報を変更すること又はその旨を記載することをいう。例えば、無効化される処理をファイル形式にしたがってコメント行にする方法がある。あるいは、実施例１と同様に処理を削除してもよい。
【００７５】
＜動作手順＞
図１４は、定義情報最適化部４４ｂが連続した処理のファイル形式に基づいて処理を無効化する手順を示すフローチャート図の一例である。図１４の処理は配信サーバ４０が起動中に実行される。ステップＳ１０〜Ｓ３０の処理は図１１と同様でよい。
【００７６】
次に、定義情報最適化部４４ｂはｉ番目の処理を特定する（Ｓ１０１）。なお、ｉの初期値は１（スタートの処理）である。
【００７７】
次に、定義情報最適化部４４ｂは最適化設定記憶部４８に記憶されている最適化設定を参照してｉ番目の処理の出力ファイルがｉ＋１番目の処理の入力可能ファイルにあるか否かを判断する（Ｓ１０２）。ステップＳ１０２の判断がＹｅｓの場合、処理はステップＳ１０４に進む。
【００７８】
ステップＳ１０２の判断がＮｏの場合、ｉ＋１番目の処理を実行できないので、定義情報最適化部４４ｂはｉ＋１番目の処理を無効化する（Ｓ１０３）。
【００７９】
そして、定義情報最適化部４４ｂは１つのワークフローの全ての処理を確認したか否かを判断する（Ｓ１０４）。ステップＳ１０４の判断がＮｏの場合、定義情報最適化部４４ｂはｉを１つ大きくする（Ｓ１０５）。この後、処理はステップＳ１０１に戻る。
【００８０】
ステップＳ１０４の判断がＹｅｓの場合、定義情報最適化部４４ｂは最適化されたワークフローの定義情報を定義情報記憶部４７に記憶する（Ｓ１０６）。そして、最適化が完了した旨を処理実行部４２又は定義情報保存部４３に通知する（Ｓ５０）。
【００８１】
＜まとめ＞
以上のように、本実施例の配信サーバ４０は、１つ前の処理の出力ファイルと後の処理の入力可能ファイルの整合性を判断することで、ワークフローの処理が途中で中断してしまうようなことを抑制できる。
【実施例３】
【００８２】
本実施例では、複数のメール配信が含まれるワークフローの定義情報を最適化する配信サーバ４０について説明する。例えば、図８に示したワークフローの定義情報は２つのメール配信という処理を有している。しかしながら、１つのワークフローから複数のメールを配信することは無駄な場合が多い。従来から、１つのメール配信の中では配信サーバ４０が重複した配信先（宛先）を除外する処理は行われていたが、メール配信Ａとメール配信Ｂの間で、重複した配信先を削除する処理は行われていなかった。本実施例では、１つのワークフローにおいて別々の配信処理における配信先の同一性を確認し、同じ場合には重複した配信先を削除することで、同じ配信先への文書の配信を抑制できる。
【００８３】
本実施例では、実施例１において同一の符号を付した構成要素は同様の機能を果たすので、主に本実施例の主要な構成要素についてのみ説明する場合がある。例えば、図５のシステム構成図及び図６のハードウェア構成図は本実施例でも援用される。
【００８４】
図１５は、本実施例に係るスキャナ装置２０及び配信サーバ４０の機能をブロック状に示す機能ブロック図の一例である。図１５の説明では、主に図７との相違を説明する。本実施例の配信サーバ４０の構成は図７と同様であるが、本実施例では、最適化設定記憶部４８が保持する最適化設定が異なっている。
【００８５】
図１６は本実施例の最適化設定記憶部４８に記憶された最適化設定を示す。最適化設定には処理ごとに重複を排除する対象が設定されている。例えば、メール配信の場合は同一の配信先（メールアドレス）が削除の対象であり、フォルダ配信の場合は同一のフォルダ（フォルダ名）が削除の対象である。
【００８６】
したがって、定義情報最適化部４４ｃは、最適化設定に設定された処理が１つのワークフローに複数、含まれており、それぞれに同一の配信先が設定されている場合、配信先が重複しないように処理する。例えば、メール配信Ａとメール配信Ｂが重複した配信先（メールアドレス）を有する場合、同じ配信先を１つだけ残し他の配信先を削除する。
【００８７】
図１７は、２つの異なるメール配信に設定されているメールアドレスを示す。図１７では、メール配信以外の記載を省略した。図示するように、メール配信（index="0"）とメール配信（index="1"）が同じメールアドレス「xyz@cory.com」を有するため、定義情報最適化部４４ｃは一方を削除する。メール配信が３つ以上ある場合は、同じ配信先を１つだけ残して他の配信先を削除する。
【００８８】
２つ以上のメール配信がある場合、どのメール配信のメールアドレスを削除してもよい。しかし、例えば、スタートＳから最も遠いメール配信のメールアドレスを残すとよい。最終的な処理が実行された段階の文書をメール送信することができるためである。
【００８９】
＜動作手順＞
図１８は、定義情報最適化部４４ｃが重複した配信先を削除する手順を示すフローチャート図の一例である。図１８の処理は配信サーバ４０が起動中に実行される。ステップＳ１０〜Ｓ３０の処理は図１１と同様でよい。
【００９０】
次に、定義情報最適化部４４ｃはワークフローの定義情報の中に最適化設定に設定された処理（例えばメール配信）が２つ以上あるか否かを判断する（Ｓ２０１）。最適化設定に設定された処理が２つ以上ない場合、配信先が重複することもないので図１８の処理は終了する。
【００９１】
最適化設定に設定された処理が２つ以上ある場合、定義情報最適化部４４ｃは最適化設定に設定された２つ以上の処理のそれぞれに同じ配信先（例えばメールアドレス）があるか否かを判断する（Ｓ２０２）。同じ配信先がない場合、図１８の処理は終了する。
【００９２】
それぞれに同じ配信先（例えばメールアドレス）がある場合、重複を排除するため、定義情報最適化部４４ｃはワークフローの定義情報から重複した配信先（例えばメールアドレス）を削除して定義情報記憶部４７に記憶する（Ｓ２０３）。
【００９３】
同じ配信先が３つ以上ある場合は、１つだけ残せばよい。なお、配信先を削除することでメール配信に配信先が１つもなくなった場合、メール配信という処理そのものを削除してよい。
【００９４】
次に、定義情報最適化部４４ｃは、削除が完了した旨を処理実行部４２又は定義情報保存部４３に通知する（Ｓ５０）。
【００９５】
＜まとめ＞
以上説明したように、本実施例の配信サーバ４０は、メール配信等、配信処理が２つ以上あり異なる配信処理に重複した配信先がある場合、重複した配信先を削除するので、同じ文書が同じ配信先に配信されることを抑制できる。
【００９６】
＜その他の適用例＞
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【００９７】
例えば、配信サーバは複数存在してよい。この場合、配信サーバは自分が有していないプラグインの実行を他の配信サーバに要求したり、負荷が少ない配信サーバを選択してプラグインの実行を他の配信サーバに要求したりできる。
【００９８】
また、プラグインを有する情報処理装置と通信し、プラグインの実行を情報処理装置に要求することでワークフローを実行してもよい。すなわち、ワークフローは複数の装置の連携で実行されてもよい。
【００９９】
また、図７、図１２、図１５などの構成例は、スキャナ装置２０、及び、配信サーバ４０による処理の理解を容易にするために、主な機能に応じて分割したものである。処理単位の分割の仕方や名称によって本願発明が制限されることはない。スキャナ装置２０、及び、配信サーバ４０の処理は、処理内容に応じて更に多くの処理単位に分割することもできる。また、１つの処理単位が更に多くの処理を含むように分割することもできる。
【０１００】
なお、最適化設定記憶部４８は保持部の一例であり、定義情報最適化部４４ａ〜４４ｃは処理設定変更部の一例である。
【符号の説明】
【０１０１】
２０      ：スキャナ装置
４０      ：配信サーバ
４１      ：通信部
４２      ：処理実行部
４３      ：定義情報保存部
４４ａ    ：定義情報最適化部
４４ｂ    ：定義情報最適化部
４４ｃ    ：定義情報最適化部
４５      ：プログラム実行部
４６      ：プラグイン
４７      ：定義情報記憶部
４８      ：最適化設定記憶部
１００    ：文書配信システム
【先行技術文献】
【特許文献】
【０１０２】
【特許文献１】特開２０１２‐０４４３８６号公報
【図１】
2019153930.tif 000003
【図２】
2019153930.tif 000004
【図３】
2019153930.tif 000005
【図４】
2019153930.tif 000006
【図５】
2019153930.tif 000007
【図６】
2019153930.tif 000008
【図７】
2019153930.tif 000009
【図８】
2019153930.tif 000010
【図９】
2019153930.tif 000011
【図１０】
2019153930.tif 000012
【図１１】
2019153930.tif 000013
【図１２】
2019153930.tif 000014
【図１３】
2019153930.tif 000015
【図１４】
2019153930.tif 000016
【図１５】
2019153930.tif 000017
【図１６】
2019153930.tif 000018
【図１７】
2019153930.tif 000019
【図１８】
2019153930.tif 000020