(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023002291
(43)【公開日】2023-01-10
(54)【発明の名称】情報処理システム、情報処理装置、情報処理方法及びプログラム
(51)【国際特許分類】
G06F 3/12 20060101AFI20221227BHJP
G06F 13/00 20060101ALI20221227BHJP
H04N 1/00 20060101ALI20221227BHJP
【FI】
G06F3/12 375
G06F3/12 302
G06F3/12 385
G06F13/00 357A
H04N1/00 127A
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2021103446
(22)【出願日】2021-06-22
(71)【出願人】
【識別番号】000006747
【氏名又は名称】株式会社リコー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】渡辺 太一
【テーマコード(参考)】
5B089
5C062
【Fターム(参考)】
5B089GA11
5B089GA16
5B089GA21
5B089GB03
5B089JA14
5B089JB03
5B089JB10
5B089KA04
5B089KC59
5C062AA02
5C062AA05
5C062AA13
5C062AA35
5C062AB38
5C062AB40
5C062AB42
5C062AC22
5C062AC34
(57)【要約】
【課題】実行する処理を要求元の機器の種別に基づいて変化させること。
【解決手段】機器と情報処理装置とを含む情報処理システムにおいて、前記情報処理装置は、1以上の処理単位の順序付けられた処理フローのうちの第1の処理単位について、機能ごとに分類された複数の機器種別に応じた処理の変更が指定された処理フローの実行要求を、前記機器から受信する受信部と、前記実行要求に応じて前記処理フローの実行を制御する制御部と、を有し、前記制御部は、前記機器が属する前記機器種別に基づいて、前記第1の処理単位について実行する処理を変化させる。
【選択図】
図4
【特許請求の範囲】
【請求項1】
機器と情報処理装置とを含む情報処理システムであって、
前記情報処理装置は、
1以上の処理単位の順序付けられた処理フローのうちの第1の処理単位について、機能ごとに分類された複数の機器種別に応じた処理の変更が指定された処理フローの実行要求を、前記機器から受信する受信部と、
前記実行要求に応じて前記処理フローの実行を制御する制御部と、
を有し、
前記制御部は、前記機器が属する前記機器種別に基づいて、前記第1の処理単位について実行する処理を変化させる、
ことを特徴とする情報処理システム。
【請求項2】
前記第1の処理単位は、前記処理フローを分岐させる処理単位であり、
前記制御部は、前記機器が属する前記機器種別に基づいて、前記第1の処理単位の分岐先の処理単位を選択する、
ことを特徴とする請求項1記載の情報処理システム。
【請求項3】
前記第1の処理単位は、前記処理フローの実行を2回目の実行要求まで待機させる処理単位であり、
前記制御部は、前記2回目の実行要求に係る機器が属する前記機器種別に基づいて、前記第1の処理単位について実行する処理を変化させる、
ことを特徴とする請求項1記載の情報処理システム。
【請求項4】
機器とネットワークを介して接続される情報処理装置であって、
1以上の処理単位の順序付けられた処理フローのうちの第1の処理単位について、機能ごとに分類された複数の機器種別に応じた処理の変更が指定された処理フローの実行要求を、前記機器から受信する受信部と、
前記実行要求に応じて前記処理フローの実行を制御する制御部と、
を有し、
前記制御部は、前記機器が属する前記機器種別に基づいて、前記第1の処理単位について実行する処理を変化させる、
ことを特徴とする情報処理装置。
【請求項5】
機器とネットワークを介して接続される情報処理装置が、
1以上の処理単位の順序付けられた処理フローのうちの第1の処理単位について、機能ごとに分類された複数の機器種別に応じた処理の変更が指定された処理フローの実行要求を、前記機器から受信する受信手順と、
前記実行要求に応じて前記処理フローの実行を制御する制御手順と、
を実行し、
前記制御手順は、前記機器が属する前記機器種別に基づいて、前記第1の処理単位について実行する処理を変化させる、
ことを特徴とする情報処理方法。
【請求項6】
機器とネットワークを介して接続される情報処理装置に、
1以上の処理単位の順序付けられた処理フローのうちの第1の処理単位について、機能ごとに分類された複数の機器種別に応じた処理の変更が指定された処理フローの実行要求を、前記機器から受信する受信手順と、
前記実行要求に応じて前記処理フローの実行を制御する制御手順と、
を実行させ、
前記制御手順は、前記機器が属する前記機器種別に基づいて、前記第1の処理単位について実行する処理を変化させる、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理システム、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【0002】
従来、ネットワークを介して接続されるクライアントからの要求に応じ、予め定義されたワークフロー等の所定の処理を実行する情報処理システムが有る。例えば、画像形成装置がスキャンしたデータに対して所定の処理を実行したり、クラウドストレージ等に保存されているデータに対して所定の処理を実行した結果を画像形成装置にダウンロード及び印刷させたりする情報処理システムが有る(例えば、特許文献1)。
【0003】
このような情報処理システムの中には、画像形成装置だけでなく、PC(Personal Computer)、モバイル端末又は電子黒板等の複数の種別の機器がクライアントとして利用可能なものもある。この場合、ユーザは、各種の機器を利用して、同一のワークフローを実行させることができる。
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来において、同一のワークフローに関する実行要求に応じて実行される処理は、ユーザがどのような種別の機器を利用していたとしても画一的であった。換言すれば、ワークフローの実行要求元の機器の種別に応じて、当該ワークフローに関する実行要求に応じて実行される処理を変化させることができなかった。
【0005】
本発明は、上記の点に鑑みてなされたものであって、実行する処理を要求元の機器の種別に基づいて変化させることを目的とする。
【課題を解決するための手段】
【0006】
そこで上記課題を解決するため、機器と情報処理装置とを含む情報処理システムにおいて、前記情報処理装置は、1以上の処理単位の順序付けられた処理フローのうちの第1の処理単位について、機能ごとに分類された複数の機器種別に応じた処理の変更が指定された処理フローの実行要求を、前記機器から受信する受信部と、前記実行要求に応じて前記処理フローの実行を制御する制御部と、を有し、前記制御部は、前記機器が属する前記機器種別に基づいて、前記第1の処理単位について実行する処理を変化させる。
【発明の効果】
【0007】
実行する処理を要求元の機器の種別に基づいて変化させることができる。
【図面の簡単な説明】
【0008】
【
図1】本発明の実施の形態における情報処理システム1の構成例を示す図である。
【
図2】本発明の実施の形態における情報処理装置10のハードウェア構成を示す図である。
【
図3】本発明の実施の形態における機器20のハードウェア構成例を示す図である。
【
図4】本発明の実施の形態における情報処理システム1の機能構成例を示す図である。
【
図5】フロー情報の生成処理の処理手順の一例を説明するためのシーケンス図である。
【
図7】「待機」コンポーネントに関する設定画面の一例を示す図である。
【
図10】ユーザがいずれかのワークフローを利用する際に実行される処理手順の一例を説明するためのシーケンス図である。
【
図11】画面情報の生成処理の処理手順の一例を説明するためのフローチャートである。
【
図13】画面の表示処理の処理手順の一例を説明するためのフローチャートである。
【
図15】画面構成情報に基づく画面の表示例を示す図である。
【
図16】待機後の実行指示を受け付けるための画面の表示例を示す図である。
【
図17】ワークフローの実行の制御処理の処理手順の一例を説明するためのフローチャートである。
【
図18】待機フロー一覧画面の表示例を示す図である。
【
図19】キャンセルフロー一覧画面の表示例を示す図である。
【発明を実施するための形態】
【0009】
以下、図面に基づいて本発明の実施の形態を説明する。
【0010】
<システム構成>
図1は、本発明の実施の形態における情報処理システム1の構成例を示す図である。
図1に示す情報処理システム1は、情報処理装置10、1以上の機器20、1以上のフロー生成端末30、及び外部ストレージシステム40等を構成要素として含む。機器20及び外部ストレージシステム40等は、例えば、インターネット等の広域的なネットワークN1を介して情報処理装置10に接続する。
【0011】
情報処理装置10は、1以上の処理単位の順序付けられた集合である処理フロー(以下、「ワークフロー」という。)の実行を制御する1以上のコンピュータである。
【0012】
ここで、処理単位とは、文書ファイルや画像ファイル等の電子ファイルに関する処理である。例えば、プリント、スキャン、ファクシミリ送信、データ形式の変換、メール配信、OCR(Optical character recognition)処理、加工や圧縮・解凍、リポジトリへの格納等が処理単位の一例である。なお、処理単位として定義される処理は、開発者の任意である。
【0013】
機器20は、ワークフローにおいて処理対象とされるデータの入力元力、又は当該ワークフローの処理結果として生成されるデータの出力先として機能する電子機器である。例えば、MFP(Multifunction Peripheral)等の画像形成装置、PC(パーソナルコンピュータ)、スマートフォン、タブレット端末、プロジェクタ、電子黒板、デジタルカメラ等が機器20の一例である。
【0014】
フロー生成端末30は、ワークフローの定義情報(どのような処理単位をどのような順序で実行するかについての定義情報)の生成に利用されるPC(Personal Computer)等の端末である。ワークフローの定義情報(以下、「フロー情報」という。)は、ワークフローの種別ごとに生成される。なお、いずれかの機器20、又は各機器20がフロー生成端末30を兼ねてもよい。
【0015】
外部ストレージシステム40は、クラウドストレージを提供する1以上の記憶装置である。本実施の形態において、外部ストレージシステム40は、ワークフローにおいて生成されるデータの保存先の候補となる。
【0016】
<ハードウェア構成>
図2は、本発明の実施の形態における情報処理装置10のハードウェア構成を示す図である。
図2に示す情報処理装置10は、入力装置11と、表示装置12と、外部I/F13と、RAM(Random Access Memory)14とを有する。また、情報処理装置10は、ROM(Read Only Memory)15と、CPU(Central Processing Unit)16と、通信I/F17と、HDD(Hard Disk Drive)18とを有する。これらの各ハードウェアは、それぞれがバスBで接続されている。
【0017】
入力装置11は、キーボードやマウス、タッチパネル等を含み、ユーザが各操作信号を入力するのに用いられる。表示装置12は、ディスプレイ等を含み、情報処理装置10による処理結果を表示する。なお、入力装置11及び表示装置12の少なくとも一方は、必要なときに情報処理装置10に接続して利用する形態であっても良い。
【0018】
通信I/F17は、情報処理装置10をネットワークN1に接続するインタフェースである。これにより、情報処理装置10は、通信I/F17を介して通信を行うことができる。
【0019】
HDD18は、プログラムやデータを格納している不揮発性の記憶装置である。HDD18に格納されるプログラムやデータには、情報処理装置10全体を制御する基本ソフトウェアであるOS(Operating System)、OS上において各種機能を提供するアプリケーションソフトウェア等がある。
【0020】
なお、情報処理装置10は、HDD18に代え、記憶媒体としてフラッシュメモリを用いるドライブ装置(例えばソリッドステートドライブ:SSD)を利用するものであっても良い。また、HDD18は、格納しているプログラムやデータを所定のファイルシステム及び/又はDBにより管理している。
【0021】
外部I/F13は、外部装置とのインタフェースである。外部装置には、記録媒体13a等がある。これにより、情報処理装置10は、外部I/F13を介して記録媒体13aの読み取りや書き込みを行うことができる。記録媒体13aには、フレキシブルディスク、CD、DVD、SDメモリカード、USBメモリ等がある。
【0022】
ROM15は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。ROM15には、情報処理装置10の起動時に実行されるBIOS(Basic Input/Output System)、OS設定、及びネットワーク設定等のプログラムやデータが格納されている。RAM14は、プログラムやデータを一時保持する揮発性の半導体メモリである。
【0023】
CPU16は、ROM15やHDD18等の記憶装置からプログラムやデータをRAM14上に読み出し、処理を実行することで、情報処理装置10全体の制御や機能を実現する演算装置である。
【0024】
図3は、本発明の実施の形態における機器20のハードウェア構成例を示す図である。
図3に示す機器20は、コントローラ21と、操作パネル22と、外部I/F23と、通信I/F24と、プリンタ25と、スキャナ26とを有する。また、コントローラ21は、CPU31と、RAM32と、ROM33と、NVRAM34と、HDD35とを有する。
【0025】
ROM33は、各種プログラムやデータを格納している不揮発性の半導体メモリである。RAM32は、プログラムやデータを一時保持する揮発性の半導体メモリである。NVRAM34は、例えば設定情報等を格納している。また、HDD35は、各種プログラムやデータを格納している不揮発性の記憶装置である。
【0026】
CPU31は、ROM33やNVRAM34、HDD35等からプログラムやデータ、設定情報等をRAM32上に読み出し、処理を実行することで、機器20全体の制御や機能を実現する演算装置である。
【0027】
操作パネル22は、ユーザからの入力を受け付ける入力部と、表示を行う表示部とを備えている。外部I/F23は、外部装置とのインタフェースである。外部装置には、記録媒体23a等がある。これにより、機器20は、外部I/F23を介して記録媒体23aの読み取り及び/又は書き込みを行うことができる。なお、記録媒体23aには、例えば、ICカード、フレキシブルディスク、CD、DVD、SDメモリカード、USBメモリ等がある。
【0028】
通信I/F24は、機器20をネットワークに接続するインタフェースである。これにより、機器20は、通信I/F24を介して通信を行うことができる。プリンタ25は、印刷データを印刷する印刷装置である。スキャナ26は、原稿を読み取って電子ファイル(画像ファイル)を生成する読取装置である。
【0029】
<機能構成例>
図4は、本発明の実施の形態における情報処理システム1の機能構成例を示す図である。
図4において、フロー生成端末30は、フロー生成画面取得部311、フロー生成画面表示部312、フロー情報生成部313及びフロー情報送信部314を有する。これら各部は、フロー生成端末30にインストールされた1以上のプログラムが、フロー生成端末30のCPUに実行させる処理により実現される。
【0030】
フロー生成画面取得部311は、フロー情報をユーザに編集及び生成させる画面(以下、「フロー生成画面」という。)の画面データを情報処理装置10から取得する。フロー生成画面表示部312は、フロー生成画面の画面データに基づいてフロー生成画面を表示する。フロー情報生成部313は、フロー生成画面に対するユーザによる入力に応じフロー情報を生成する。フロー情報送信部314は、フロー情報生成部313が生成したフロー情報を情報処理装置10へ送信する。
【0031】
機器20は、コンテンツ取得部211、コンテンツ表示部212及び実行要求部213を有する。これら各部は、機器20にインストール又はダウンロードされた1以上のプログラムが、CPU31に実行させる処理により実現される。当該プログラムには、ブラウザによってダウンロードされたスクリプトが含まれてもよい。
【0032】
コンテンツ取得部211は、ワークフローの実行に関するコンテンツ(画面に関する情報)を取得する。コンテンツ表示部212は、コンテンツ取得部211が取得したコンテンツに基づいて画面を表示する。実行要求部213は、コンテンツ表示部212が表示した画面に対するユーザによる入力に応じ、当該画面に係るワークフローの実行要求を情報処理装置10へ送信する。
【0033】
情報処理装置10は、フロー管理部111、コンテンツ提供部112及びフロー実行制御部113を有する。これら各部は、情報処理装置10にインストールされた1以上のプログラムが、CPU16に実行させる処理により実現される。情報処理装置10は、また、コンポーネント情報記憶部121、画面構成情報記憶部122、フロー情報記憶部123及びステータス記憶部124を利用する。これら各記憶部は、例えば、HDD18、又は情報処理装置10にネットワークを介して接続可能な記憶装置等を用いて実現可能である。
【0034】
フロー管理部111は、コンポーネント情報記憶部121を参照してフロー画面の画面データを生成したり、フロー生成端末30から送信されるフロー情報をフロー情報記憶部123に記憶したりする。したがって、フロー情報記憶部123には、フロー情報の一覧が記憶される。コンポーネント情報記憶部121には、ワークフローを構成するいずれかに対応するプログラム部品であるコンポーネントに関する情報を記憶する。すなわち、ワークフローは、処理単位と1対1に対応するコンポーネントを組み合わせることで構成される。なお、フロー管理部111は、フロー生成端末30から送信されるフロー情報に基づいて、当該フロー情報に係るワークフローの実行指示を受け付けるための画面の構成を示す情報(以下、「画面構成情報」という。)を生成する。フロー管理部111は、生成した画面構成情報を画面構成情報記憶部122へ記憶する。
【0035】
コンテンツ提供部112は、ワークフローの実行に関するコンテンツを機器20へ提供(送信)する。コンテンツ提供部112は、画面構成情報記憶部122、フロー情報記憶部123及びステータス記憶部124を参照して当該コンテンツを生成する。
【0036】
フロー実行制御部113は、機器20からのワークフローの実行要求に応じ、当該ワークフローの実行を制御する。フロー実行制御部113は、当該ワークフローの実行の制御に際し、当該ワークフローが特定の状態になった場合に、当該状態における当該ワークフローに関する情報をステータス記憶部124に記憶する。
【0037】
<処理手順>
以下、情報処理システム1が実行する処理手順について説明する。
図5は、フロー情報の生成処理の処理手順の一例を説明するためのシーケンス図である。
【0038】
ステップS101において、フロー生成画面取得部311は、フロー生成端末30に対するユーザによる操作に応じ、フロー生成画面の取得要求をフロー管理部111へ送信する。
【0039】
フロー管理部111は、当該取得要求を受信すると、コンポーネント情報記憶部121を参照して、フロー生成画面の画面データを生成する(S102)。当該画面データは、特定の形式に限定されないが、例えば、HTML(HyperText Markup Language)形式によって定義され、スクリプト等のプログラムを含むデータであってもよい。当該画面データの生成に際してコンポーネント情報記憶部121が参照されるのは、フロー情報の生成に際し、コンポーネントの一覧を、当該フロー情報の各処理単位に対応するコンポーネントの選択肢として表示するためである。続いて、フロー管理部111は、当該画面データをフロー生成画面取得部311へ送信する(S103)。
【0040】
フロー生成画面取得部311が当該画面データを受信すると、フロー生成画面表示部312は、当該画面データに基づいてフロー生成画面を表示する(S104)。続いて、フロー情報生成部313は、フロー生成画面に対するユーザによる操作に応じ、フロー情報の生成処理を実行する(S105)。
【0041】
図6は、フロー生成画面の表示例を示す図である。
図6が示すフロー生成画面510は、フロー名入力領域511、コンポーネントリスト512、フロー編集領域513及び保存ボタン514等を含む。
【0042】
フロー名入力領域511は、フロー定義に対する名称(以下、「フロー名」という。)の入力を受け付けるための領域である。
【0043】
コンポーネントリスト512は、生成対象のワークフローを構成するコンポーネントとして選択可能なコンポーネント名の一覧である。
図6の例では、外部ストレージに関するコンポーネントの一例として「アップロード」、「ダウンロード」及び「一覧取得」等のコンポーネントが示されている。また、文書操作に関するコンポーネントの一例として「2次元コード付与」及び「PDF変換」等が示されている。また、ワークフローの制御系のコンポーネントの一例として「待機」及び「分岐」等が示されている。なお、「待機」とは、1回目の実行要求(ワークフローの実行要求)の際には処理の進行を一時停止(待機)させ、再度(2回目)の実行要求に応じて、「待機」の次以降のコンポーネントを実行するといった制御を可能とするためのコンポーネントである。また、「分岐」は、ワークフローの分岐を可能とするためのコンポーネントである。
【0044】
フロー編集領域513は、コンポーネントリスト512から選択されたコンポーネントの実行順序(すなわち、フロー情報)を編集させるための領域である。
【0045】
保存ボタン514は、フロー編集領域513におけるフロー情報(以下、「対象フロー情報」という。)の保存指示を受け付けるためのボタンである。
【0046】
図6のフロー編集領域513は、既に、対象フロー情報の編集が完了した状態を示す。対象フロー情報は、1回目の実行指示に応じて機器20からアップロードされた画像データをPDF変換し、PDF変換によって生成されたPDFデータに対して所定の情報を含む2次元コードを付与し、当該PDFデータを外部ストレージシステム40へアップロードした後に待機することを示す。対象フロー情報は、更に、2回目の実行要求に応じて待機が解除されると、当該PDFデータを外部ストレージシステム40からダウンロードして、当該PDFデータを機器20へ送信することを示す。
【0047】
なお、ユーザは、フロー編集領域513に配置された各コンポーネントに対して、当該コンポーネントに固有のパラメータの値を設定することができる。例えば、「アップロード」コンポーネントであれば、ユーザは、アップロード先の外部ストレージシステム40に関する情報等を設定することができる。
【0048】
また、「フロー分岐」コンポーネントであれば、ユーザは、分岐条件を設定することができる。分岐条件とは、分岐先のコンポーネントを判定するための条件をいう。例えば、対象フロー情報に係るワークフロー(以下、「対象フロー」という。)の実行要求元の機器20が属する機器種別を分岐条件として指定することができる。すなわち、当該機器種別に応じて分岐先を変更することできる。機器種別とは、例えば、MFPであれば、印刷・スキャン機能を有し、PC/スマートフォンであれば、印刷・スキャン機能を有さないがディスプレイを有し、電子黒板であれば、印刷・スキャン機能を有さないが、大型のディスプレイを有するというように同じ機能を有する機器20の分類・タイプを示す情報をいう。換言すれば、機器種別とは、機器20が有する機能によって機器20を複数の種別に分類した場合に、各機器20がいずれの種別に属するのかを示す情報である。
図6の例では、機器種別が「MFP」の場合とそうでない場合とで、「2次元コード付与」コンポーネントに関する設定値が異なるように対象フローが生成された例が示されている。
【0049】
機器種別に基づく処理の変更は、他のコンポーネントについても指定可能である。
【0050】
図7は、「待機」コンポーネントに関する設定画面の一例を示す図である。
図7が示す設定画面520は、「待機」コンポーネントに対するパラメータを設定するための設定領域521~523を含む。設定領域521は、実行エージェントの設定を受け付けるための領域である。実行エージェントとは、対象フローの実行要求元の機器20の機器種別をいう。
図7の例は、実行エージェントとして「MFP」が設定された例が示されている。このことは、待機状態を解除できるのは(「待機」コンポーネントの次のコンポーネントへ処理を進めることができるのは)、機器種別が「MFP」である機器20に制限されることを意味する。なお、実行エージェントは、「待機」コンポーネント以外のコンポーネントに対しても設定可能とされてもよい。
【0051】
設定領域522は、待機時間(秒)の設定を受け付けるための領域である。待機時間とは、対象フローの実行時において「待機」コンポーネントが実行対象とされたタイミング(すなわち、対象フローの待機が開始されたタイミング)から、待機が終了するまで時間である。ユーザは、待機時間の間に、対象フローについて2回目の実行指示をいずれかの機器20から行う必要がある。この際、ユーザが2回目の実行指示を入力する機器20は、ユーザが1回目の実行指示を入力した機器20と同じでなくてもよい。
【0052】
設定領域523は、2回目の実行要求元の機器20の機器種別が実行エージェントとして指定された機器種別(
図7の例では「MFP」)でない場合に、2回目の実行要求元の機器20に対して表示すべきエラーメッセージの設定を受け付けるための領域である。
【0053】
なお、
図7では、「待機」コンポーネントに対する設定画面の例を示したが、対象フローを構成する他のコンポーネントについても、当該コンポーネントに応じたパラメータの設定が可能である。
【0054】
ステップS105において、フロー情報生成部313は、ユーザによる対話的な入力に応じ、対象フローのフロー情報を更新する。
【0055】
対象フロー情報の編集が終了し、ユーザが保存ボタン514を押下すると、フロー情報送信部314は、対象フローのフロー情報を、情報処理装置10のフロー管理部111へ送信する(S106)。フロー管理部111は、当該フロー情報を受信すると、当該フロー情報を、フローIDに関連付けてフロー情報記憶部123へ記憶する(S107)。なお、フローIDは、フロー情報の識別情報である。フローIDは、このタイミングでフロー管理部111が生成してもよい。
【0056】
図8及び
図9は、フロー情報の構成例を示す図である。
図8は、対象フロー情報の最初からの一部分を示し、
図9は、対象フロー情報の残りの部分を示す。すなわち、
図8と
図9との2つの図面が、1つの対象フロー情報を示す。
【0057】
図8及び
図9において、コンポーネント定義d1~コンポーネント定義d6は、対象フローを構成するコンポーネントごとの定義である。具体的には、コンポーネント定義d1は、「PDF変換」コンポーネントに関する定義である。コンポーネント定義d2は、「フロー分岐」コンポーネントに関する定義である。コンポーネント定義d3は、1回目の実行要求に係る実行エージェントが「MFP」である場合の「2次元コード付与」コンポーネント(以下、「2次元コード付与(MFP)」コンポーネントという。)に関する定義である。コンポーネント定義d4は、1回目の実行要求に係る実行エージェントが「MFP」以外である場合の「2次元コード付与」コンポーネントに関する定義である。コンポーネント定義d5は、「待機」コンポーネントに関する定義である。コンポーネント定義d6は、「ダウンロード」コンポーネントに関する定義である。なお、
図6には、対象フローが「アップロード」コンポーネントをも含むことが示されているが、「アップロード」コンポーネントのコンポーネント定義は、便宜上、省略されている。
【0058】
各コンポーネント定義は、name要素(「"name":」で始まる要素をいい、他の要素についても同様の命名規則に従う。)とparameters要素とを含む。name要素の値(「"name":」に続く文字列をいい、他の要素についても同様の命名規則に従う。)は、各コンポーネント定義に対応するコンポーネントのコンポーネント名を示す。parameters要素は、各定義が対応するコンポーネントに対応するパラメータの名前及び値を含む。
【0059】
例えば、「フロー分岐」コンポーネントに関するコンポーネント定義d2のparameters要素は、分岐条件を示すconditions要素を子要素として含む。conditions要素は、expression要素及びflowName要素を子要素として含む。
【0060】
expression要素は、分岐条件の条件式を示す要素であり、left要素、right要素及びsign要素を含む。left要素の値は、条件式の左辺の値を示す。right要素の値は、条件式の右辺の値を示す。sign要素の値は、条件式の左辺と右辺との関係を示す符号を示す。当該符号としては、equal、nequal、lt又はltoe等が設定されうる。equalは、left(左辺)とright(右辺)が一致している関係を示す。nequalは、left(左辺)とright(右辺)が一致していない関係を示す。ltは、left(左辺)がright(右辺)より小さい関係(<)を示す。ltoeは、left(左辺)がright(右辺)以下である関係(<=)を示す。コンポーネント定義d2内のexpression要素のleft要素の値は、「${実行エージェント}」であり、right要素の値は、「MFP」であり、sign要素の値は「equal」である。ここで、「${実行エージェント}」は、実行エージェントとしての機器種別を示す。したがって、当該expression要素は、『実行エージェントが「MFP」と等しい』という条件式を示す。
【0061】
flowName要素は、条件式が満たされる場合に選択される分岐先のコンポーネント名を値とする要素である。
図8の例では、flowName要素の値は、「2次元コード(MFP)」である。
【0062】
上記より、コンポーネント定義d2内の分岐条件は、『実行エージェントが「MFP」と等しい場合に、「2次元コード(MFP)」へ進み、そうでない場合に「2次元コード」へ進む』ことを示す。
【0063】
「2次元コード(MFP)」コンポーネントに関するコンポーネント定義d3内のparameters要素は、string要素、vertical要素及びhorizontal要素を含む。string要素の値は、2次元コードに変換する文字列を示す。vertical要素は、文書の垂直方向における2次元コードの付与位置を示す。horizontal要素は、文書の水平方向における2次元コードの付与位置を示す。
【0064】
「2次元コード付与」コンポーネントに関するコンポーネント定義d4の構成は、コンポーネント定義d3と同じである。便宜上、コンポーネント名は異なるが、「2次元コード(MFP)」コンポーネントと「2次元コード付与」コンポーネントとは、パラメータの値が異なるだけであり、コンポーネントとしては同一だからである。
図8の例では、「2次元コード(MFP)」コンポーネントと「2次元コード付与」コンポーネントとでは、string要素の値が異なる。すなわち、対象フローは、実行エージェントが「MFP」であるか否かに応じて、2次元コードとして文書に埋め込む情報(文字列)が異なるように構成されている。
【0065】
「待機」コンポーネントに関するコンポーネント定義d5(
図9)内のparameters要素は、execute要素及びerror要素を子要素として含む。execute要素は、実行条件を示す要素である。具体的には、当該execute要素は、left要素、right要素、sign要素及びkeepTime要素を子要素として含む。left要素、right要素及びsign要素は、コンポーネント定義d2(
図8)のexpression要素について説明した通りである。このleft要素、right要素及びsign要素が示す条件式が満たされる場合に、「待機」コンポーネントが実行されることになる。
図9の例において、当該条件式は、『実行エージェントが「MFP」と等しい』ことを示す。なお、ここでの実行エージェントでは、待機の開始後の2回目の実行要求元の機器20の機器種別に相当する。keepTime要素の値は待機時間を示す。
【0066】
error要素の値は、execute要素の条件式が満たされない場合のエラーメッセージを示す。
【0067】
すなわち、コンポーネント定義d5の内容は、
図7に示した設定画面520に対する設定例に対応する。
【0068】
「ダウンロード」コンポーネントに対応するコンポーネント定義d6内のparameters要素は、execute要素を含む。当該execute要素は、実行条件を示す要素であり、left要素、right要素及びsign要素を子要素として含む。このleft要素、right要素及びsign要素が示す条件式が満たされる場合に、「ダウンロード」コンポーネントが実行されることになる。
図9の例において、当該条件式は、『実行エージェントが「MFP」と等しい』ことを示す。
【0069】
なお、フロー管理部111は、対象フロー情報に基づいて、対象フローに関する画面構成情報を生成し、当該画面構成情報を対象フローのフローIDに関連付けて画面構成情報記憶部122に記憶する。画面構成情報とは、対象フローの実行の開始時等に、対象フローに関するパラメータの入力を受け付けるための画面の構成を示す情報をいう。本実施の形態における対象フローは、機器20からアップロードされるデータを入力とし、当該データを処理対象とするため、フロー管理部111は、アップロード対象を指定可能な画面の画面構成情報を生成する。
【0070】
続いて、ユーザがいずれかのワークフローを利用する際に実行される処理手順について説明する。
図10は、ユーザがいずれかのワークフローを利用する際に実行される処理手順の一例を説明するためのシーケンス図である。
【0071】
ユーザによる機器20(以下、「対象機器20」という。)に対する所定の操作に応じ、対象機器20のコンテンツ取得部211は、ワークフローの一覧画面(以下、「フロー一覧画面」という。)の取得要求を情報処理装置10へ送信する(S201)。なお、情報処理装置10へのユーザのログインは事前に実行されていることとする。
【0072】
情報処理装置10のコンテンツ提供部112は、当該取得要求を受信すると、フロー情報記憶部123を参照して、フロー一覧画面の画面データを生成する(S202)。例えば、コンテンツ提供部112は、フロー情報記憶部123に記憶されているフロー情報ごとに、当該フロー情報のフローIDに対応するアイコンを選択可能な状態で含む画面データをフロー一覧画面の画面データとして生成してもよい。続いて、コンテンツ提供部112は、生成した画面データをコンテンツ取得部211へ送信する(S203)。
【0073】
コンテンツ取得部211が当該画面データを受信すると、コンテンツ表示部212は、当該画面データに基づいてフロー一覧画面を表示する(S204)。ユーザは、フロー一覧画面を参照することで、実行対象として選択可能なワークフローの一覧を把握することができる。
【0074】
ユーザがいずれかのワークフローを実行対象として選択すると、コンテンツ取得部211は、選択されたワークフロー(以下、「対象フロー」という。)の画面情報の取得要求を情報処理装置10のコンテンツ提供部112へ送信する(S205)。当該取得要求は、対象フローのフローID(以下、「対象フローID」という。)と、対象機器20の機器種別とを含む。
【0075】
コンテンツ提供部112は、当該取得要求を受信すると、当該取得要求に含まれている対象フローIDに関連付けられて画面構成情報記憶部122に記憶されている画面構成情報と、当該取得要求に含まれている機器種別(以下、「対象機器種別」という。)と、当該取得要求に係るユーザのユーザID(以下、「対象ユーザID」という。)とに基づいて、画面情報の生成処理を実行する(S206)。画面情報とは、画面構成情報に対して、対象機器20の機器種別や、対象フローの実行状態に応じた制御情報が追加された情報をいう。画面情報の生成処理の詳細は後述される。本実施の形態において、対象フローの実行状態とは、対象フローが待機中であるか否かについての状態をいう。
【0076】
続いて、コンテンツ提供部112は、生成した画面情報を対象機器20へ送信する(S207)。対象機器20のコンテンツ取得部211が当該画面情報を受信すると、コンテンツ表示部212は、当該画面情報に基づいて、対象フローの画面の表示処理を実行する(S208)。
【0077】
続いて、ステップS206の詳細について説明する。
図11は、画面情報の生成処理の処理手順の一例を説明するためのフローチャートである。
【0078】
ステップS301において、コンテンツ提供部112は、対象フローIDに関連付けられて画面構成情報記憶部122に記憶されている画面構成情報を取得する。続いて、コンテンツ提供部112は、ステータス記憶部124を参照して、対象フローが待機中であるか否かを判定する(S302)。後述されるように、或るワークフローが待機する場合、当該ワークフローが待機中であることを示す情報(以下、「待機情報」という。)が、当該ワークフローのフローIDと、当該ワークフローの実行要求元に係るユーザのユーザIDとに関連付けられてステータス記憶部124に記憶される。したがって、ステップS302において、コンテンツ提供部112は、対象フローID及び対象ユーザIDに関連付けられてステータス記憶部124に待機情報が記憶されているか否かを確認することで、対象フローが待機中であるか否かを判定する。
【0079】
対象フローが待機中でない場合(S302でNo)、コンテンツ提供部112は、対象フロー情報において最初のコンポーネント定義に係るコンポーネントを実行対象として特定する(S303)。
図8に示した対象フロー情報によれば、「PDF変換」コンポーネントが実行対象として特定される。一方、対象フローが待機中でない場合(S303でYes)、コンテンツ提供部112は、対象フローID及び対象ユーザIDに関連付けられてステータス記憶部124に記憶されている待機情報に基づいて、実行対象のコンポーネントを特定する(S304)。当該待機情報には、待機中の「待機」コンポーネントの識別情報が含まれている。したがって、「待機」コンポーネントが実行対象として特定される。
【0080】
ステップS303又はS304に続いて、コンテンツ提供部112は、実行対象として特定したコンポーネントの実行が許可される機器種別を特定する(S305)。当該コンポーネントの実行が許可される機器種別は、対象フロー情報において当該コンポーネントに関するコンポーネント定義を参照することで特定することができる。
【0081】
具体的には、対象フローに関して実行対象として特定されるコンポーネントは、対象フローの1回目の実行要求のための画面情報の取得要求時(対象フローに関する待機情報が無い場合)には「PDF」コンポーネントである。したがって、コンテンツ提供部112は、
図8のコンポーネント定義d1を参照して、「PDF」コンポーネントの実行が許可される機器種別を特定する。
図8の例において、コンポーネント定義d1は、実行が許可される機器種別(実行エージェント)を制限する情報を含まない。この場合、コンテンツ提供部112は、実行が許可される機器種別として全ての機器種別(本実施の形態では、「MPF」、「PC」、「mobile」)を特定する。
【0082】
一方、対象フローの2回目の実行要求のための画面情報の取得要求時(対象フローに関する待機情報が無い場合)には、「待機」コンポーネントが実行対象のコンポーネントとして特定される。したがって、コンテンツ提供部112は、
図9のコンポーネント定義d5を参照して、「待機」コンポーネントの実行が許可される機器種別を特定する。
図9の例において、コンポーネント定義d5は、execute要素において、実行エージェントを「MFP」に制限することを示す情報を含む。この場合、コンテンツ提供部112は、実行が許可される機器種別として「MFP」を特定する。
【0083】
続いて、コンテンツ提供部112は、ステップS301において取得した画面構成情報と、ステップS305において特定した機器種別等を含む画面情報を生成する(S306)。
【0084】
図12は、画面情報の一例を示す図である。
図12において、左側の画面情報g1は、1回目の実行要求のための画面情報の取得要求時に生成される画面情報の一例であり、右側の画面情報g2は、2回目の実行要求のための画面情報の取得要求時に生成される画面情報の一例である。
【0085】
画面情報g1及びg2は、type要素e11、uiParts要素e12及びflow要素e13等を含む。type要素e11の値は、対象フローのタイプ(種別)を示す。対象フローのタイプ(以下「フロータイプ」という。)とは、対象フローが、機器20からアップロードされるデータを入力として実行されるのか、外部ストレージシステム40からダウンロードしたデータを機器20に出力させるのかを区別する情報である。前者のフロータイプを「scan」といい、後者のフロータイプを「print」という。対象フローは、機器20からアップロードされるデータを入力として実行されるため、type要素e11の値は「scan」である。なお、type要素e11の値は、対象フロー情報に基づいて特定可能である。例えば、対象フロー情報が示す対象フローの最初のコンポーネントが、機器20からアップロードされるデータの入力を前提とするコンポーネントである場合、コンテンツ提供部112は、対象フローのフロータイプは「scan」であると判定する。
【0086】
uiParts要素e12は、画面構成情報である。
【0087】
flow要素e13は、url要素、status要素及びagent要素を含む。url要素の値は、対象フロー情報に対するURLである。
【0088】
status要素の値は、対象フローが待機中であるか否かを示す値である。「none」は、待機中でないことを示し、「keep」は、待機中であることを示す。1回目の実行要求のための画面情報の取得要求(以下、「1回目の画面情報取得要求」という。)時において、対象フローは待機中でないため、1回目の画面情報取得要求に対応する画面情報g1におけるstatus要素の値は、「none」である。一方、2回目の実行要求のための画面情報の取得要求(以下、「2回目の画面情報取得要求」という。)時において、対象フローは待機中であるため、2回目の画面情報取得要求に対応する画面情報g2におけるstatus要素の値は、「keep」である。
【0089】
agent要素の値は、実行が許可される機器種別である。
図11のステップS305において説明したように、1回目の画面情報取得要求時には、「MPF」、「PC」及び「mobile」が実行が許可される機器種別として特定されるため、1回目の画面情報取得要求に対応する画面情報g1におけるagent要素の値は、これらの機器種別を示す値である。一方、2回目の画面情報取得要求時には、「MPF」が実行が許可される機器種別として特定されるため、2回目の画面情報取得要求に対応する画面情報g2におけるagent要素の値は、「MFP」を示す値である。
【0090】
すなわち、コンテンツ提供部112は、対象フロー情報に基づいて、画面情報のagent要素の値を設定することによって、対象フローの実行要求元の機器種別に基づいて実行対象のコンポーネント(処理単位)について実行する処理を変化させる。
【0091】
続いて、
図10のステップS208の詳細について説明する。
図13は、画面の表示処理の処理手順の一例を説明するためのフローチャートである。
【0092】
ステップS401において、コンテンツ表示部212は、受信した画面情報(
図12)のflow要素内のagent要素を参照して、対象機器20が対象フローを実行可能であるか否かを判定する。具体的には、コンテンツ表示部212は、agent要素の値に対象機器20の機器種別が含まれていれば、対象機器20が対象フローを実行可能であると判定する。一方、agent要素の値に対象機器20の機器種別が含まれていなければ、コンテンツ表示部212は、対象機器20が対象フローを実行不可能であると判定する。斯かる判定により、コンテンツ表示部212は、対象機器20が属する機器種別に基づいて、情報処理装置10において実行対象とされている処理単位について実行する処理を変化させる。なお、対象機器20の機器種別は、例えば、対象機器20のROM33、NVRAM34又はHDD35に記憶されている。
【0093】
対象機器20が対象フローを実行可能でない場合(S401でNo)、コンテンツ表示部212は、エラー画面を表示する(S402)。
【0094】
図14は、エラー画面の表示例を示す図である。
図14が示すエラー画面530は、対象フローを実行可能な機器種別が「MFP」である場合において、対象機器20の機器種別が「MFP」でない場合に表示されるエラー画面である。
図12に示した画面情報g2によれば、対象フローが待機中の場合には、対象フローを実行可能な機器種別は「MFP」である。この場合に、対象機器20の機器種別が「MFP」以外であれば、エラー画面530が表示される。エラー画面530は、画面情報のagent要素の値が示す機器種別に属する機器20からの実行を促すメッセージを含む。
【0095】
一方、対象機器20が対象フローを実行可能である場合(S401でYes)、コンテンツ表示部212は、画面情報のflow要素e13のstatus要素を参照して、対象フローが待機中の状態であるか否かを判定する(S403)。すなわち、コンテンツ表示部212は、当該status要素の値が「keep」であれば、対象フローは待機中であると判定し、そうでない場合(当該値が「none」の場合)、対象フローは待機中でないと判定する。
【0096】
対象フローが待機中でない場合(S403でNo)、コンテンツ表示部212は、画面情報に含まれる画面構成情報(uiParts要素e11)に基づく画面を表示する(S404)。
【0097】
図15は、画面構成情報に基づく画面の表示例を示す図である。
図15にいて、画面540aは、対象機器20の機器種別が「MFP」である場合に表示される画面の一例を示す。画面540bは、対象機器20の機器種別が「MFP」以外である場合に表示される画面の一例を示す。これら2つの画面を区別しない場合、「画面540」という。画面540は、ラベル541、テキストボックス542及びStartボタン543等を含む。
【0098】
ラベル541は、画面情報(
図12)のuiParts要素内のlabel要素e12の値として指定されている文字列(「fileName」)を表示する画面要素である。
【0099】
テキストボックス542は、画面情報(
図12)のuiParts要素内のtype要素e12に指定されている値(「text」)に対応する画面要素である。すなわち、type要素e12の値である「text」は、テキストボックスを示す。
【0100】
なお、Startボタン543は、コンテンツ表示部212が、既定の画面要素として表示するボタンである。
【0101】
画面540は、対象フローに対する入力として情報処理装置10へアップロードするデータ(ファイル)に対して付与する名前をユーザに指定させるための画面である。機器種別「MFP」に対応する画面540aは、更に、当該データの入力(スキャン)に関する設定値の表示領域544、当該設定値の設定画面に遷移するためのボタン545、実行履歴を表示するためのボタン546等を含む。
【0102】
ユーザが、テキストボックス542に対してアップロード対象のデータのファイル名を入力し、Startボタン543を押下すると、対象機器20の実行要求部213は、データの入力処理を実行し、テキストボックス542に入力された文字列(ファイル名)を当該入力処理において入力されたデータに付与する。実行要求部213は、当該データを含む、対象フローの実行要求を情報処理装置10へ送信する。情報処理装置10のフロー実行制御部113は、当該実行要求に応じ、対象フローの実行処理を開始する。
【0103】
ここで、データの入力処理とは、機器種別が「MFP」である機器20であれば、紙文書からの画像のスキャンが一例である。機器種別が「MFP」以外である機器20であれば、ローカルファイルからのデータの読み込みや、当該機器20が有するデジタルカメラによる画像データの入力が、当該入力処理の一例である。
【0104】
一方、対象フローが待機中である場合(S403でYes)、コンテンツ表示部212は、対象フローにおける待機後のコンポーネント(処理単位)の実行指示を受け付けるための画面を表示する(S405)。
【0105】
図16は、待機後の実行指示を受け付けるための画面の表示例を示す図である。本実施の形態において、対象フローにおける待機後のコンポーネントは、「ダウンロード」コンポーネントである。そして、本実施の形態において、機器20によるデータのダウンロードは、当該機器20に当該データの印刷を実行させることを意味する。したがって、
図16の画面550は、機器20がダウンロードするデータの印刷条件に関する設定を受け付けるための画面要素を含む。なお、対象フローにおいて、ダウンロード対象のデータは、1回目の実行要求に係る
図15の画面540において指定されたデータであるため、ダウンロード対象のデータを指定する必要はない。
【0106】
ユーザが、画面550を介して、印刷条件を設定し、Startボタン551を押下すると、実行要求部213は、対象フローについての(2回目の)実行要求を情報処理装置10へ送信する。情報処理装置10のフロー実行制御部113は、当該実行要求に応じ、対象フローの待機を解除して、対象フローの実行処理を再開する。
【0107】
続いて、
図15のStartボタン543又は
図16のStartボタン551の押下に応じて対象機器20の実行要求部213が送信する対象フローの実行要求に応じて情報処理装置10が実行する処理手順について説明する。
【0108】
図17は、ワークフローの実行の制御処理の処理手順の一例を説明するためのフローチャートである。
【0109】
ステップS501において、フロー実行制御部113は、対象フローの実行要求(以下、「対象実行要求」という。)に応じ、対象フローが待機中であるか否かを判定する(S501)。対象フローが待機中であるか否かは、対象フローに対応する待機情報がステータス記憶部124に記憶されているか否かに基づいて判定される。対象フローに対応する待機情報とは、対象フローID及び対象ユーザIDに関連付けられた待機情報をいう。対象フローID及び対象ユーザIDは、例えば、対象実行要求に含まれている。
【0110】
対象フローに対応する待機情報が無く、対象フローが待機中でない場合(S501でYes)、フロー実行制御部113は、変数iに1を代入する(S502)。変数iは、対象フローにおいて実行対象のコンポーネント(処理単位)を識別するための変数である。変数に1を代入することは、1番目のコンポーネントを実行対象とすることを意味する。
【0111】
続いて、フロー実行制御部113は、対象フロー情報(
図8、
図9)においてi番目のコンポーネントが「待機」コンポーネントであるか否かを判定する(S504)。なお、i番目とは、対象フロー情報におけるコンポーネント定義の順番がi番目であるこという。また、i番目のコンポーネントが「待機」コンポーネントであるか否かは、i番目のコンポーネント定義のname要素の値が「待機」であるか否かにより判定することができる。
【0112】
i番目のコンポーネントが「待機」コンポーネントでない場合(S504でNo)、フロー実行制御部113は、i番目のコンポーネントが「フロー分岐」コンポーネントであるか否かを判定する(S505)。
【0113】
i番目のコンポーネントが「フロー分岐」コンポーネントでない場合(S505でNo)、フロー実行制御部113は、i番目のコンポーネントに対応するプログラムに対して実行指示を入力することで、当該コンポーネントを実行する(S506)。当該コンポーネントは、対象要求に伴って受信された入力データ(対象機器20からアップロードされたデータ)やi番目より前の各コンポーネントによる処理結果等のうち、必要なデータを入力として当該コンポーネントに固有の処理単位を実行する。例えば、i番目のコンポーネントが「PDF変換」コンポーネントであれば、対象機器20からアップロードされたデータに基づいてPDFデータが生成される。続いて、フロー実行制御部113は、変数iに1を加算して(S507)、ステップS511へ進む。
【0114】
一方、i番目のコンポーネントが「フロー分岐」コンポーネントである場合(S505でYes)、フロー実行制御部113は、「フロー分岐」コンポーネントのコンポーネント定義d2(
図8)に基づいて分岐先のコンポーネントを特定する(S508)。具体的には、フロー実行制御部113は、コンポーネント定義d2内のconditions要素が示す分岐条件に基づいて分岐先のコンポーネントを特定する。
図8において、当該condition要素は、『実行エージェントが「MFP」と等しい場合に、「2次元コード(MFP)」へ進み、そうでない場合に「2次元コード」へ進む』といった分岐条件を示す。したがって、フロー実行制御部113は、対象実行要求に含まれている、対象機器20の機器種別を示すパラメータの値が「MFP」であれば「2次元コード(MFP)」コンポーネントを分岐先として特定し、当該パラメータの値が「MFP」以外であれば「2次元コード付与」コンポーネントを分岐先として特定する。すなわち、フロー実行制御部113は、対象機器20が属する機器種別に基づいて、分岐先の処理単位について実行する処理を変化させる。
【0115】
続いて、フロー実行制御部113は、分岐先として特定したコンポーネントに対応するプログラムに対して実行指示を入力することで、当該コンポーネントを実行する(S509)。対象フローの場合、「フロー分岐」コンポーネントの分岐先は、「2次元コード(MFP)」コンポーネント又は「2次元コード」コンポーネントである。上記したように、これら2つのコンポーネントはパラメータが異なるだけで、実体は同じである。したがって、いずれが分岐先である場合であっても、「PDF変換」コンポーネントによって生成されたPDFデータに対して2次元コードが付与される。続いて、フロー実行制御部113は、i番目のコンポーネントである「フロー分岐」コンポーネントの分岐先の候補数+1を変数iに加算してステップS511へ進む(S510)。対象フローの場合、分岐先の候補数は2である。したがって、iに対して2+1=3が加算される。
【0116】
ステップS511において、フロー実行制御部113は、i番目のコンポーネント定義が対象フロー情報に含まれているか否かを判定する。i番目のコンポーネント定義が無い場合(S511でNo)、対象フローは終了する。i番目のコンポーネント定義が有る場合(S5111でYes)、フロー実行制御部113は、ステップS504以降を繰り返す。
【0117】
ステップS504において、i番目のコンポーネントが「待機」コンポーネントである場合(S504でYes)、フロー実行制御部113は、変数iの値(以下、「待機位置」という。)、対象フローID、対象ユーザID、現在時刻(以下、「開始時刻」という。)、開始時刻から当該「待機」コンポーネントの待機時間の経過後の時刻(以下、「待機期限」という。)、入力データ、及びi番目より前の各コンポーネントによる処理結果等を含む待機情報をステータス記憶部124に記憶して(S512)、
図17の処理を終了する。ここで、変数iの値は、「待機」コンポーネントの順番を示す。なお、対象フローについて、i番目より前の各コンポーネントによる処理結果には、「アップロード」コンポーネントによる、データ(2次元コードが付与されたデータ)のアップロード先の識別情報(以下、「アップロード先情報」という。)も含まれる。
【0118】
ユーザから見た場合、
図15の画面540のStartボタン543を押下してデータをアップロードすることで、対象フローは終了したように見える。その後、ユーザが、対象機器20と同じ機器20、又は対象機器20とは別の機器20に対して所定の操作を行うと、
図10において説明した処理手順が改めて実行される。この場合のステップS205は、「2回目の画面情報取得要求」に相当する。その結果、所定の操作が行われた機器20(以下、当該機器20を「対象機器20」という。)の機器種別が「MFP」であれば、対象機器20は、
図16に示した画面550を表示し、対象機器20の機器種別が「MFP」以外であれば、対象機器20は、
図14に示したエラー画面530を表示する。
【0119】
ユーザが、画面550のStartボタン551を押下すると、対象機器20は、対象フローの実行要求(以下、「対象実行要求」という。)を情報処理装置10へ送信する。この場合、対象フローに対応する待機情報がステータス記憶部124に記憶されている。フロー実行制御部113は、現在時刻が当該待機情報に含まれる「待機期限」を過ぎていなければ、対象フローは待機中であると判定する(S501でNo)。その結果、フロー実行制御部113は、当該待機情報に含まれている「待機位置」を変数iに代入して(S503)、ステップS504以降を実行する。したがって、この場合、対象実行要求は2回目の実行要求に相当する。本実施の形態の場合、ステップS504以降では、ステップS506において、「ダウンロード」コンポーネントが実行される。「ダウンロード」コンポーネントは、当該待機情報に含まれている、「アップロード先情報」が示すアップロード先からデータを取得して、当該データを対象機器20へ送信する。その結果、対象機器20において当該データの印刷が実行される。「ダウンロード」コンポーネントの実行後のステップS511において、i番目のコンポーネント定義は無いため(S511でNo)、フロー実行制御部113は、当該待機情報を削除して対象フローを終了させる。
【0120】
なお、ステップS501において、対象フローに対応する待機情報がジョブ記憶部に記憶されていたとしても、現在時刻が当該待機情報に含まれる「待機期限」を過ぎていた場合、フロー実行制御部113は、対象フローの実行をキャンセルする。具体的には、フロー実行制御部113は、当該待機情報をキャンセル情報へと変更し、当該キャンセル情報をステータス記憶部124へ記憶する。なお、当該キャンセル情報は、元となる待機情報の全ての情報を含んでもよいし、対象フローID、対象ユーザID、開始時刻及び待機期限のみを含んでもよい。その上で、フロー実行制御部113は、対象フローは待機中でないと判定する(S501でNo)。その結果、フロー実行制御部113は、ステップS502以降を実行する。したがって、この場合、対象実行要求は1回目の実行要求に相当する。
【0121】
なお、待機情報やキャンセル情報に基づいて、待機中のワークフロー(以下、「待機フロー」という。)の一覧や、実行がキャンセルされたワークフロー(以下、「キャンセルフロー」という。)の一覧の表示が機器20等において可能とされてもよい。
【0122】
例えば、或る機器20(以下、「対象機器20」という。)に対して待機フローの一覧の表示指示が入力されると、コンテンツ取得部211は、対象機器20のユーザのユーザIDを含む、待機フローの一覧の取得要求を情報処理装置10へ送信する。情報処理装置10のコンテンツ提供部112は、当該ユーザIDを含む待機情報をステータス記憶部124から取得する。この際、コンテンツ提供部112は、該当する待機情報のうち、当該待機情報が含むフローIDに対応するフロー情報における「待機」コンポーネントのコンポーネント定義において、実行可能な機器種別が対象機器20が属する機器種別を含む待機情報のみを取得してもよい。すなわち、対象機器20から実行可能なワークフローに係る待機情報のみが取得されてもよい。コンテンツ提供部112は、取得した待機情報に基づいて、待機フロー一覧画面の画面データを生成し、当該画面データをコンテンツ取得部211へ送信する。コンテンツ取得部211が当該画面データを受信すると、コンテンツ表示部212は、当該画面データに基づいて待機フロー一覧画面を表示する。
【0123】
図18は、待機フロー一覧画面の表示例を示す図である。
図18が示すように、待機フロー一覧画面560は、待機フローごとに、フロー名、開始時刻及び待機期限等を含む。なお、フロー名の横に付与されている「Link」ボタンが選択されると、当該名前に係るワークフローのフロー情報が表示される。
【0124】
ユーザは、待機フロー一覧画面560を参照することで、現時点の待機フローの一覧を確認することができる。
【0125】
また、対象機器20に対してキャンセルフローの一覧の表示指示が入力されると、コンテンツ取得部211は、対象機器20のユーザのユーザIDを含む、キャンセルフローの一覧の取得要求を情報処理装置10へ送信する。情報処理装置10のコンテンツ提供部112は、当該ユーザIDを含むキャンセル情報をステータス記憶部124から取得する。この際、コンテンツ提供部112は、該当するキャンセル情報のうち、当該キャンセル情報が含むフローIDに対応するフロー情報における「待機」コンポーネントのコンポーネント定義において、実行可能な機器種別が対象機器20が属する機器種別を含むキャンセル情報のみを取得してもよい。すなわち、対象機器20から実行可能なワークフローに係るキャンセル情報のみが取得されてもよい。コンテンツ提供部112は、取得したキャンセル情報に基づいて、キャンセルフロー一覧画面の画面データを生成し、当該画面データをコンテンツ取得部211へ送信する。コンテンツ取得部211が当該画面データを受信すると、コンテンツ表示部212は、当該画面データに基づいてキャンセルフロー一覧画面を表示する。
【0126】
図19は、キャンセルフロー一覧画面の表示例を示す図である。
図19が示すように、キャンセルフロー一覧画面570は、キャンセルフローごとに、フロー名、開始時刻及び待機期限(すなわち、キャンセルされた時刻)等を含む。
【0127】
ユーザは、キャンセルフロー一覧画面570を参照することで、待機期限までに実行指示を行わなかったためにキャンセルされてしまったワークフローを確認することができる。
【0128】
上述したように、本実施の形態によれば、ワークフローの実行要求元の機器20が属する機器種別(実行エージェント)に基づいて、同一のワークフローの一部の処理単位の実行内容が変化する。したがって、実行する処理を要求元の機器の種別に基づいて変化させることができる。
【0129】
なお、機器20は、通信機能を備えた装置であれば、画像形成装置に限られない。機器20は、例えば、PJ(Projector:プロジェクタ)、IWB(Interactive White Board:相互通信が可能な電子式の黒板機能を有する白板)、デジタルサイネージ等の出力装置、HUD(Head Up Display)装置、産業機械、撮像装置、集音装置、医療機器、ネットワーク家電、ノートPC(Personal Computer)、携帯電話、スマートフォン、タブレット端末、ゲーム機、PDA(Personal Digital Assistant)、デジタルカメラ、ウェアラブルPCまたはデスクトップPC等であってもよい。
【0130】
なお、上記で説明した実施形態の各機能は、一又は複数の処理回路によって実現することが可能である。ここで、本明細書における「処理回路」とは、電子回路により実装されるプロセッサのようにソフトウェアによって各機能を実行するようプログラミングされたプロセッサや、上記で説明した各機能を実行するよう設計されたASIC(Application Specific Integrated Circuit)、DSP(digital signal processor)、FPGA(field programmable gate array)や従来の回路モジュール等のデバイスを含むものとする。
【0131】
また、本実施の形態に記載された装置群は、本明細書に開示された実施形態を実施するための複数のコンピューティング環境のうちの1つを示すものにすぎない。
【0132】
ある実施形態では、情報処理装置10は、サーバクラスタといった複数のコンピューティングデバイスを含む。複数のコンピューティングデバイスは、ネットワークや共有メモリなどを含む任意のタイプの通信リンクを介して互いに通信するように構成されており、本明細書に開示された処理を実施する。同様に、機器20は、互いに通信するように構成された複数のコンピューティングデバイスを含むことができる。
【0133】
なお、本実施の形態において、フロー管理部111及びフロー実行制御部113は、受信部の一例である。コンテンツ提供部112及びフロー実行制御部113は、制御部の一例である。
【0134】
以上、本発明の実施の形態について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【0135】
1 情報処理システム
10 情報処理装置
20 機器
30 フロー生成端末
40 外部ストレージシステム
111 フロー管理部
112 コンテンツ提供部
113 フロー実行制御部
121 コンポーネント情報記憶部
122 画面構成情報記憶部
123 フロー情報記憶部
124 ステータス記憶部
211 コンテンツ取得部
212 コンテンツ表示部
213 実行要求部
311 フロー生成画面取得部
312 フロー生成画面表示部
313 フロー情報生成部
314 フロー情報送信部
【先行技術文献】
【特許文献】
【0136】