以下、図面に基づいて本発明の実施の形態を説明する。図1は、本発明の実施の形態における情報処理システムの構成例を示す図である。図1に示される情報処理システム1において、サービス提供環境E2、ユーザ環境E1、クラウドストレージ50、及びクラウドOCR60等は、インターネット等の広域的なネットワークを介して通信可能とされている。
サービス提供環境E2は、ネットワークを介してクラウドサービスを提供する組織におけるシステム環境である。なお、本実施の形態では、クラウドサービスを具体例に採用して説明するが、ASP(Application Service Provider)によって提供されるサービスやWebサービス等、ネットワークを介して提供される各種サービスに関して、本実施の形態が適用されてもよい。
サービス提供環境E2は、サービス提供装置20を有する。サービス提供装置20は、ネットワークを介して所定のサービスを提供する。サービス提供装置20が提供するサービスの一つとして、「ワークフローサービス」が有る。本実施の形態では、ワークフローサービスについて説明する。ワークフローサービスとは、ユーザ環境E1におけるユーザが定義したワークフローに従った処理を実行するサービスである。ワークフローは、データに対する複数の処理の順序の定義の一例であるが、その詳細については後述される。なお、サービス提供装置20は、ユーザ環境E1に設置されてもよい。すなわち、サービス提供環境E2は、ユーザ環境E1に包含されてもよい。
ユーザ環境E1は、ワークフローサービスの利用者の一例であるユーザ企業等の組織におけるシステム環境である。図1に示されるユーザ環境E1は、画像形成装置10a、画像投影装置10b、会議システム10c、ICレコーダ10d、デジタルカメラ10e、及びその他の新規デバイス10f等の各種機器、管理者端末30、並びにローカルストレージ40等を含む。これらの機器又は装置等は、LAN(Local Area Network)等のネットワークを介して接続されている。
画像形成装置10aは、スキャン機能又は印刷機能等を有する画像形成装置である。画像形成装置10は、スキャン機能又は印刷機能以外に、コピー又はファクス通信等の機能を有していてもよい。
画像投影装置10bは、例えば、プロジェクタであり、画像データの投影を行う装置である。会議システム10cは、例えば、テレビ会議システムであり、映像の表示等を行う。ICレコーダ10dは、音声データの保存等を行う。デジタルカメラ10eは、画像データの撮像を行う。
管理者端末30は、ユーザ環境E1における画像形成装置10aの管理者が使用する端末である。管理者端末30の一例として、PC(Personal Computer)、PDA(Personal Digital Assistance)、タブレット型端末、スマートフォン、又は携帯電話等が挙げられる。
ローカルストレージ40は、ワークフローに対するデータの入力元、又はワークフローから出力されるデータの出力先の候補となる、データの記憶装置である。
ユーザ環境E1は、更に、ファイアーウォールF1を含む。ファイアーウォールF1は、一般的なファイアーウォールと同様でよい。ファイアーウォールは、例えば、ユーザ環境E1の外部からの要求を遮断する。したがって、例えば、サービス提供装置20からの能動的な要求を、ユーザ環境E1内の画像形成装置10a等に送信することは困難である。
クラウドストレージ50は、ネットワークを介して、オンラインストレージと呼ばれるクラウドサービスを提供するコンピュータシステムである。オンラインストレージとは、ストレージの記憶領域を貸し出すサービスである。本実施の形態において、オンラインストレージによって貸し出される記憶領域は、ワークフローに対するデータの入力元、又はワークフローから出力されるデータの出力先の候補となる。
なお、クラウドストレージ50とローカルストレージ40とを区別しない場合、単に、「ストレージ」という。
クラウドOCR60は、ネットワークを介して、画像データに対するOCR(Optical Character Recognition)処理理に関するクラウドサービスを提供するコンピュータシステムである。なお、テキストデータの翻訳処理、テキストデータの要約処理、データ形式の変換処理等、他のデータ処理に関してクラウドサービスを提供するコンピュータシステムが存在してもよい。
サービス提供環境E2に対しては、ユーザ環境E1以外の環境からもアクセス可能である。例えば、携帯端末10g又はPC10h等から、インターネット等を介してサービス提供装置20にアクセスすることも可能である。携帯端末10g及びPC10hは、ユーザ環境E1内において使用されてもよい。携帯端末10gの一例として、携帯電話、スマートフォン、及びタブレット型端末等が挙げられる。
なお、画像形成装置10a、画像投影装置10b、会議システム10c、ICレコーダ10d、デジタルカメラ10e、新規デバイス10f、携帯端末10g、及びPC10h等を区別しない場合、単に「機器10」という。機器10は、ワークフローにおいて、画像データ等のデータの入力元若しくは出力先、又は電子データに対する加工処理の実行主体又は実行場所の候補となる。例えば、スマートフォン等の携帯端末10gにインストールされるアプリケーションによって実現される、スキャナと同質の機能によって、画像データが入力されてもよい。
図2は、本発明の実施の形態におけるサービス提供装置のハードウェア構成例を示す図である。図2のサービス提供装置20は、それぞれバスBで相互に接続されているドライブ装置200と、補助記憶装置202と、メモリ装置203と、CPU204と、インタフェース装置205とを有する。
サービス提供装置20での処理を実現するプログラムは、CD−ROM等の記録媒体201によって提供される。プログラムを記憶した記録媒体201がドライブ装置200にセットされると、プログラムが記録媒体201からドライブ装置200を介して補助記憶装置202にインストールされる。但し、プログラムのインストールは必ずしも記録媒体201より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置202は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
メモリ装置203は、プログラムの起動指示があった場合に、補助記憶装置202からプログラムを読み出して格納する。CPU204は、メモリ装置203に格納されたプログラムに従ってサービス提供装置20に係る機能を実行する。インタフェース装置205は、ネットワークに接続するためのインタフェースとして用いられる。
なお、サービス提供装置20は、図2に示されるようなハードウェアを有する複数のコンピュータによって構成されてもよい。すなわち、後述においてサービス提供装置20が実行する処理は、複数のコンピュータに分散されて実行されてもよい。
図3は、本発明の実施の形態における画像形成装置のハードウェア構成例を示す図である。図3において、画像形成装置10aは、コントローラ11、スキャナ12、プリンタ13、モデム14、操作パネル15、ネットワークインタフェース16、及びSDカードスロット17等のハードウェアを有する。
コントローラ11は、CPU111、RAM112、ROM113、HDD114、及びNVRAM115等を有する。ROM113には、各種のプログラムやプログラムによって利用されるデータ等が記憶されている。RAM112は、プログラムをロードするための記憶領域や、ロードされたプログラムのワーク領域等として用いられる。CPU111は、RAM112にロードされたプログラムを処理することにより、各種の機能を実現する。HDD114には、プログラムやプログラムが利用する各種のデータ等が記憶される。NVRAM115には、各種の設定情報等が記憶される。
スキャナ12は、原稿より画像データを読み取るためのハードウェア(画像読取手段)である。プリンタ13は、印刷データを印刷用紙に印刷するためのハードウェア(印刷手段)である。モデム14は、電話回線に接続するためのハードウェアであり、FAX通信による画像データの送受信を実行するために用いられる。操作パネル15は、ユーザからの入力の受け付けを行うためのボタン等の入力手段や、液晶パネル等の表示手段等を備えたハードウェアである。ネットワークインタフェース16は、LAN等のネットワーク(有線又は無線の別は問わない。)に接続するためのハードウェアである。SDカードスロット17は、SDカード80に記憶されたプログラムを読み取るために利用される。すなわち、画像形成装置10aでは、ROM113に記憶されたプログラムだけでなく、SDカード80に記憶されたプログラムもRAM112にロードされ、実行されうる。なお、他の記録媒体(例えば、CD−ROM又はUSB(Universal Serial Bus)メモリ等)によってSDカード80が代替されてもよい。すなわち、SDカード80の位置付けに相当する記録媒体の種類は、所定のものに限定されない。この場合、SDカードスロット17は、記録媒体の種類に応じたハードウェアによって代替されればよい。
なお、他の各機器10に関するハードウェア構成については、便宜上省略する。
ワークフローについて説明する。図4は、本発明の実施の形態におけるワークフローの概念モデルの一例を示す図である。
ワークフローは、利用者に価値を与える一連の処理の流れであるともいえる。一つのワークフローは、実行順に関して順序付けられた複数のタスクを含む。タスクは、ワークフローを構成する処理単位であり、タスク単位で、ワークフローを構成する処理の組み合わせや、処理間の順序が定義される。タスクの一例として、データの取得、データの変換、データの保存、メールによる通知、ログの保存等が挙げられる。また、複数のタスクから構成される複合タスクを定義することもできる。
タスクは、その処理内容に応じて、IOタスク又はプロセスタスクに分類される。IOタスクは、データの入力又は出力を実行するタスクをいう。データの入力を実行するIOタスクを、特に、入力タスクという。データの出力を実行するタスクを、特に、出力タスクという。
プロセスタスクは、入力タスクによって入力されたデータ、又は他のプロセスタスクから出力されるデータに対する加工処理や、その他の処理等を実行するタスクをいう。
一つのワークフローは、入力タスクから始まり、必要に応じてプロセスタスクを経由し、出力タスクで完了する。但し、プロセスタスクで完了するワークフローが有ってもよい。
入力タスクの一例として、画像形成装置10aによる、紙媒体からの画像データのスキャンや、デジタルカメラ10eによる画像データの撮像等が挙げられる。
出力タスクの一例として、PDF(Portable Document Format)文書や、PDL(Page Description Language)データの、画像形成装置10aへのスプールや、ローカルストレージ40又はクラウドストレージ50に対するデータの保存等が挙げられる。
プロセスタスクの一例として、画像データに対するOCR(Optical Character Recognition)処理、テキストデータの翻訳処理、データ形式の変換処理テキストデータの要約処理、何らかの処理が実行されたことの報告処理、データの配信処理等が挙げられる。
なお、各タスクを実現するのは、プログラムである。すなわち、ワークフローは、タスクに対応するプログラムの実行順の定義であるともいえる。
図5は、本発明の実施の形態におけるサービス提供装置の機能構成例を示す図である。図5において、サービス提供装置20は、サーバアプリ210及びプラットフォーム220等のソフトウェアを含む。これらは、サービス提供装置20にインストールされる一以上のプログラムによって構成され、CPU204に所定の処理を実行させる。
サービス提供装置20は、また、ユーザ情報記憶部231、機器情報記憶部232、機器アプリ記憶部233、プロファイル記憶部234、プロファイル機器対応記憶部235、ワークフロー定義記憶部236、及びサーバストレージ237等を利用する。これら各記憶部は、補助記憶装置202、又はサービス提供装置20にネットワークを介して接続される記憶装置等を用いて実現可能である。
サーバアプリ210は、サービス提供装置20が提供するサービスを実現するアプリケーションプログラムである。なお、「サーバアプリ」という用語は、サービス提供装置20側のアプリケーションプログラムを機器10側のアプリケーションプログラム(例えば、後述されるワークフロー機器アプリ125)と区別するために便宜上用いた用語である。
図5では、サーバアプリ210の一例として、ワークフローサーバアプリ211が示されている。ワークフローサーバアプリ211は、ワークフローサービスに関する処理を実行するサーバアプリ210である。
プラットフォーム220は、複数のサーバアプリ210に共通する機能、又は複数のサーバアプリ210から利用される基本機能等を含む。図5において、プラットフォーム220は、設定登録部221、機器通信部222、認証処理部223、セッション管理部224、ジョブ処理部225、ストレージ連携部226、及びプロセス部227等を含む。これら各部の機能は、プラットフォームAPI240を介してサーバアプリ210に公開されている。換言すれば、サーバアプリ210は、プラットフォームAPI240を介して、これら各部の機能を利用可能である。
設定登録部221は、ワークフローサービス等、サービス提供装置20が提供するサービスの利用開始時に必要とされる設定登録処理を実行する。設定登録部221によって、ユーザ情報記憶部231、機器情報記憶部232、プロファイル記憶部234、プロファイル機器対応記憶部235、及びワークフロー定義記憶部236に対して情報が登録される。
ユーザ情報記憶部231は、サービス提供装置20が提供するサービスのユーザに関する情報を記憶する。機器情報記憶部232は、ユーザにおけるシステム環境(すなわち、ユーザ環境E1)において、サービス提供装置20が提供するサービスと連携させる機器10に関する情報を記憶する。すなわち、ワークフローサービス等、サービス提供装置20によって提供されるサービスは、ユーザ環境E1における機器10との連携によって実現される。
機器アプリ記憶部233は、サーバアプリ210と機器10とを連携させるために、機器10にインストールされる必要の有るアプリケーションプログラム(以下、「機器アプリ」という。)を記憶する。プロファイル記憶部234は、プロファイルを記憶する。プロファイルには、機器アプリの操作画面の構成情報や、操作画面に対する操作に応じて実行される処理に関する情報等が含まれる。プロファイル機器対応記憶部235は、プロファイルと機器10との対応情報を記憶する。すなわち、同一の機器アプリに対する操作画面に関して、機器10ごとに異なるプロファイルを対応付けることができる。ワークフロー定義記憶部236は、ワークフローの定義内容(例えば、タスクの実行順序を示す情報等)を記憶する。
機器通信部222は、機器10との通信を制御する。認証処理部223は、管理者端末30のユーザ又は機器10のユーザの認証等を行う。また、認証処理部223は、例えば、ワークフローサービスの実行時において、クラウドストレージ50に対するログイン処理を代行する。セッション管理部224は、サービス提供装置20と機器10との連携時において、両者間の通信のセッションを管理する。
ジョブ処理部225は、サーバアプリ210から要求されるジョブの実行を制御する。ストレージ連携部226は、クラウドストレージ50との連携を行う。
プロセス部227は、ワークフローにおけるプロセスタスクを実行するプログラムモジュール(以下、「プロセスモジュール」という。)の集合である。図5では、斯かるプロセスモジュールの一例として、OCRモジュール2271、翻訳モジュール2272、要約モジュール2273、変換モジュール2274、報告モジュール2275、配信モジュール2276、及びクラウドOCRモジュール2277等が示されている。
OCRモジュール2271は、画像データに対するOCR処理をサービス提供装置20に実行させる。翻訳モジュール2272は、テキストデータに対する翻訳処理をサービス提供装置20に実行させる。要約モジュール2273は、テキストデータの内容の要約処理をサービス提供装置20に実行させる。変換モジュール2274は、データ形式の変換処理をサービス提供装置20に実行させる。報告モジュール2275は、所定の処理の完了等の報告処理を、サービス提供装置20に実行させる。配信モジュール2276は、指定された宛先に対するデータの配信処理を、サービス提供装置20に実行させる。クラウドOCRモジュール2277は、クラウドOCR60のインタフェースをラッピングし、クラウドOCR60を他のプロセスモジュールと同様に利用可能とするためのプロセスモジュールである。例えば、クラウドOCRモジュール2277は、OCRモジュール2271と同じインタフェースを有してもよい。このように、サービス提供装置20の外部のコンピュータシステム等と連携し、当該コンピュータシステムにプロセスタスクを実行させる場合、当該コンピュータシステムのインタフェースをラッピングし、プロセスモジュールとして共通化されたインタフェースを提供するプログラムモジュールが、例えば、サービス提供装置20に実装される。
サーバストレージ237は、ローカルストレージ40及びクラウドストレージ50と並んで、ワークフローにおいて、ワークフローに対するデータの入力元、又はワークフローから出力されるデータの出力先の候補となる、データの記憶装置である。
なお、図5に示される各ソフトウェア及び各記憶部の分類形態は、一例であり、本実施の形態を実施するために、サービス提供装置20の各ソフトウェア及び各記憶部が、図5に示されるような階層で分類されていることは必須ではない。すなわち、機器10等が、サーバアプリ210と連携可能であれば、サービス提供装置20におけるソフトウェア及び記憶部の階層関係等は、特定のものに限定されない。
図6は、本発明の実施の形態における機器の機能構成例を示す図である。図6において、機器10は、機器制御部121、機器認証部122、通信部123、及び表示制御部124等を有する。これら各部は、機器10にインストールされた一以上のプログラムが、機器10のCPUに実行させる処理により実現される。
機器制御部121は、機器10のハードウェアの制御を行う。機器認証部122は、機器10の操作者を認証するための処理を実行する。通信部123は、ネットワークを介した通信を制御する。表示制御部124は、操作パネル15等の表示装置に対する画面の表示等を行う。
図6には、また、ワークフロー機器アプリ125が破線によって示されている。ワークフロー機器アプリ125は、機器アプリの一つであり、ワークフローサービスにおいて、機器10をサービス提供装置20と連携させるために機器10にインストールされる。なお、機器アプリは、機器10にインストール可能なものであればよく、サーバアプリとしても機能可能なアプリケーションプログラムが機器アプリとして機器10にインストールされてもよい。
本実施の形態においてワークフロー機器アプリ125は、当初から機器10にインストールされているのではなく、ワークフローサービスを利用するための準備作業において機器10にインストールされる。ワークフロー機器アプリ125が破線によって示されているのは、斯かる事情を表現したものである。但し、ワークフロー機器アプリ125は、当初から機器10にインストールされていてもよい。
以下、情報処理システム1において実行される処理手順について説明する。ユーザ環境E1において、ワークフローサービスを利用可能とするためには、サービス提供装置20に対するユーザ環境E1に関する各種情報の登録や、及びワークフロー機器アプリ125の画像形成装置10aへの導入等といった準備作業が必要とされる。そこで、まず、準備作業に伴って実行される処理手順について説明する。なお、準備作業は、ユーザ環境E1における管理者(以下、単に「管理者」という。)によって管理者端末30を利用して行われる。
図7は、準備作業に伴って実行される処理手順の一例を説明するための図である。
ステップS101において、管理者端末30は、管理者より入力される指示に応じ、組織登録要求をサービス提供装置20に送信する。組織登録要求とは、サービス提供装置20が提供するサービスを利用する組織に関する情報の登録要求をいう。例えば、一つの企業が一つの組織となりうる。また、一つの企業を構成する一つの部署が、一つの組織であってもよい。すなわち、一つの企業内に、複数の組織が存在してもよい。本実施の形態では、一つのユーザ環境E1が、一つの組織であってもよい。また、組織は、企業に関する組織でなくてもよく、任意の団体又はサークル等であってもよい。また、一人が構成する組織であってもよい。
組織登録要求の指示は、例えば、次のような画面を介して入力される。
図8は、準備作業時に管理者端末に表示される画面の遷移例を示す図である。準備作業の開始時において、管理者端末30には、図8に示されるポータル画面510が表示されている。ポータル画面510は、サービス提供装置20が提供するサービスへの窓口としての画面である。なお、図8に示される各種画面は、例えば、サービス提供装置20より提供されるHTMLデータ等を含むWebページに基づいて表示される。すなわち、以下においては、便宜上省略されているが、各画面への遷移時には、管理者端末30とサービス提供装置20との間でHTTP(HyperText Transfer Protocol)通信が行われる。
ポータル画面510は、新規アカウント作成ボタン511、ログイン情報入力領域512、及びログインボタン513等を含む。
組織登録を行う場合、管理者は、新規アカウント作成ボタン511を押下する。新規アカウント作成ボタン511が押下されると、新規アカウント申し込み画面520が管理者端末30に表示される。なお、図8において、或る画面のボタンから他の画面への矢印は、当該ボタンが押下されることにより、表示対象が当該他の画面へ遷移することを示す。
新規アカウント申し込み画面520において、管理者のユーザ名、パスワード、及びメールアドレスが入力されて申し込みボタン521が押下されると、管理者端末30は、当該ユーザ名、パスワード及びメールアドレス等を含む組織登録要求をサービス提供装置20に送信する(S101)。
サービス提供装置20において組織登録要求が受信されると、設定登録部221は、ユーザ情報記憶部231に対して、組織登録要求に含まれている情報等を登録する(S102)。
図9は、ユーザ情報記憶部の構成例を示す図である。図9において、ユーザ情報記憶部231の各レコードは、組織ID、ユーザ名、パスワード、ロール、カードID、ストレージアカウント情報、購入アプリ、及び購入プロセス等の項目を含む。
組織IDは、ユーザ環境E1ごと、すなわち、サービス提供装置20が提供するサービスを利用する企業ユーザ等の組織ごとに割り当てられる識別子である。ユーザ名、パスワード、ロール、及びカードIDは、組織IDに係る組織の構成員である各個人のユーザ(以下、「構成員ユーザ」という。)のユーザ名、パスワード、ロール、及びカードIDである。
ロールは、構成員ユーザの中で管理者を識別するための項目である。すなわち、管理者である構成員ユーザには、「管理者」が登録され、管理者以外の構成員ユーザには、「利用者」が登録される。カードIDは、構成員ユーザが、機器10にログインする際に利用する、ICカードの識別子である。ストレージアカウント情報は、組織IDに係る組織が利用するクラウドストレージ50に対するアカウント情報である。当該アカウント情報は、機器10においてスキャンされた画像データをクラウドストレージ50に保存する際に、クラウドストレージ50に提示される認証情報として利用される。購入アプリは、組織IDに係る組織において購入されているアプリケーションの識別情報(以下、「アプリID」という。)の一覧である。購入プロセスは、組織IDに係る組織において購入されているプロセスモジュールの識別情報(以下、「モジュールID」という。)の一覧である。なお、図9では、アプリIDやモジュールIDに関して、便宜上、アプリケーションの名前、又はプロセスモジュールの名前等が記載されているが、アプリID又はモジュールIDは、数字やアルファベットの羅列等であってもよい。
なお、ユーザ情報記憶部231において、ユーザ名が記憶されていないレコードは、組織(ユーザ環境E1)に対応するレコード(以下、「組織レコード」という。)である。ユーザ名が記憶されているレコードは、構成員ユーザに対応するレコード(以下、「構成員レコード」という。)である。本実施の形態において、ストレージアカウント情報、購入アプリ、及び購入プロセスは、組織レコードにおいて有効な項目である。但し、ストレージアカウント情報に関しては、構成員レコードにおいて有効とされてもよい。なお、構成員レコードの中で、ロールが管理者であるレコードを、以下「管理者レコード」といい。ロールが利用者であるレコードを、以下「利用者レコード」という。
ステップS102では、1つの組織レコードと、1つの管理者レコードとが生成される。組織レコードには、組織IDが登録される。すなわち、組織レコードの生成に伴って、組織IDが割り当てられる。また、管理者レコードには、組織ID、ユーザ名、パスワード、及びロール等が登録される。管理者レコードの組織IDには、生成された組織レコードの組織IDと同じ値が登録される。ユーザ名及びパスワードには、組織登録要求に含まれているユーザ名又はパスワードが登録される。ロールには、「管理者」が登録される。
組織レコード及び管理者レコードの他の項目や、利用者レコード等については、後述の処理において登録又は生成が行われる。
続いて、設定登録部221は、例えば、組織登録が正常に行われたことを通知する電子メール(以下、「登録通知メール」という。)を、組織登録要求に含まれているメールアドレス宛に送信する。登録通知メールには、例えば、割り当てられた組織IDが含まれている。但し、組織登録が正常に行われたことは、例えば、組織登録要求を含むHTTPリクエストに対するHTTPレスポンスに含まれていてもよい。また、組織IDは、新規アカウント申し込み画面520において、ユーザによって指定されてもよい。
組織登録が正常に終了すると、管理者は、ポータル画面510におけるログイン情報入力領域512に対して、登録された組織ID、ユーザ名、及びパスワードを入力し、ログインボタン513を押下する。ログインボタン513の押下に応じ、管理者端末30は、ログイン要求をサービス提供装置20に送信する(S103)。ログイン要求には、ログイン情報入力領域512に入力された組織ID、ユーザ名、及びパスワードが含まれている。
ログイン要求に応じ、サービス提供装置20の認証処理部223は、ログイン要求に含まれているログインID、ユーザ名、及びパスワードを含み、ロールの値が「管理者」であるレコードがユーザ情報記憶部231に記憶されているか否かに基づいて、ログイン要求に係るユーザの認証を行う。該当するレコードが記憶されている場合、認証は成功する(S104)。該当するレコードが記憶されていない場合、認証は失敗する。認証が成功した場合、設定登録部221は、ログイン要求に含まれているユーザ名に係る管理者専用のポータル画面(以下、「管理者ポータル画面530」という。)を表示させるWebページを返信する。以下、ログインした管理者を、「ログイン管理者」という。
管理者端末30は、返信されたWebページに基づいて管理者ポータル画面530を表示させる。図8に示されるように、管理者ポータル画面530は、連携ボタン531、マーケットプレースボタン532、ワークフロー作成ボタン537、プロファイル設定ボタン533、機器登録領域534、及び利用者登録領域535等を含む。
ここでは、管理者は、機器登録領域534のテキストボックス534tに、ワークフローサービスに連携させる各機器10に関する情報(以下、「機器情報という。」という。)が記述されたファイル(以下、「機器情報ファイル」という。)のファイル名を入力し、登録ボタン534bを押下する。
一台の機器10に関する機器情報は、例えば、機体番号、機体名、機体種類、設置場所、及び能力情報等の項目を含む。これらの項目の値が、例えば、図10に示されるような形式で機器情報ファイルに記述されている。
図10は、機器情報ファイルにおける機器情報の記述例を示す図である。図10では、各項目の値が、カンマによって区切られた、CSV(Comma Separated Values)形式によって、機器情報が記述された例が示されている。但し、機器情報ファイルにおける機器情報の記述形式は、CSV形式に限定されない。XML(eXtensible Markup Language)形式であってもよいし、他の形式であってもよい。
なお、機体番号とは、各機器10の機体(個体)の識別情報である。例えば、製造番号又はシリアル番号が機体番号として用いられてもよい。機体名は、機種名とほぼ同義である。機体種類は、機種名に係る機種の機能を端的に示す情報である。設置場所は、ユーザ環境E1において機器10が設置されている場所である。能力情報については後述される。
機器情報ファイルのファイル名がテキストボックス534tに入力され、登録ボタン534bが押下されると、管理者端末30は、機器情報ファイルに記述されている機器情報を含む機器登録要求を、サービス提供装置20に送信する(S105)。
サービス提供装置20の設定登録部221は、機器登録要求の受信に応じ、機器登録要求に含まれている機器情報を、ログイン管理者に係る組織IDに対応付けて、機器情報記憶部232に登録する(S106)。
図11は、機器情報記憶部の構成例を示す図である。図11において、機器情報記憶部232は、機器10ごとにレコードを記憶する。各レコードは、組織ID、機体番号、機体名、機体種類、設置場所、及び能力情報等の項目を含む。機器情報記憶部232によって、各機器10と組織との関連付けが保持される。
能力情報は、入力タスク、プロセスタスク、及び出力タスクに関して、当該機器10が有する能力を示す情報である。例えば、図11において、機体番号が「12345」の機器10は、入力タスクとして「スキャン」の実行能力を有し、プロセスタスクとして「OCR」の実行能力を有し、出力タスクとして「プリント」の実行能力を有することが示されている。また、機体番号が「67890」の機器10は、出力タスクとして「プリント」の実行能力を有することが示されている。
なお、「スキャン」、「OCR」、及び「プリント」の後に「:」によって区切られて続く<詳細情報>は、スキャン、OCR、又はプリントの能力に関する詳細情報を示す。例えば、スキャンの詳細情報については、設定可能なスキャン属性(解像度、原稿サイズ、及びカラーモード等)や、出力データのデータ形式等が挙げられる。OCRの詳細情報については、対応可能な言語、入力データとして対応可能なデータ形式、出力データのデータ形式等が挙げられる。プリントの詳細情報については、設定可能な印刷属性(カラーモード、用紙サイズ、両面の可否、集約の可否等)や、入力データのデータ形式等が挙げられる。
なお、ステップS105における機器情報の登録は、当該機器情報に係る機器10によって行われてもよい。
続いて、管理者は、ワークフローサービスを受けるために、機器10にインストールする必要のある機器アプリであるワークフロー機器アプリ125や、ワークフローに利用するプロセスタスクに対応するプロセスモジュール等を購入すべく、管理者ポータル画面530(図8)のマーケットプレースボタン532を押下する。マーケットプレースボタン532の押下に応じ、管理者端末30には、マーケットプレース画面540が表示される。
図8に示されるように、マーケットプレース画面540は、機器アプリ記憶部233に記憶されている機器アプリごと及びプロセスモジュールごとに、選択ボタン(又はアイコン等)を含む。図8では、機器アプリ選択領域541に三つの機器アプリに対応するボタン541a〜541cが含まれている例が示されている。このうち、選択ボタン541aは、ワークフロー機器アプリ125に対応する選択ボタンである。また、プロセスモジュール選択領域542には、図5に示される各プロセスモジュールに対応する選択ボタン542a〜542gが含まれている例が示されている。
ここでは、ワークフロー機器アプリ125が購入対象であるため、選択ボタン541が管理者によって選択される。また、これから作成されるワークフローに必要なプロセスモジュールに対応する選択ボタンが選択される。本実施の形態において、選択ボタンは、複数同時に選択可能である。
選択ボタンの選択後、OKボタン543が押下されると、管理者端末30は、ワークフロー機器アプリ125のアプリID、及びプロセスモジュール選択領域542において選択された選択ボタンに対応するプロセスモジュールのモジュールID等を含むプログラム購入要求を、サービス提供装置20に送信する(S107)。
サービス提供装置20の設定登録部221は、プログラム購入要求の受信に応じ、当該要求に含まれているアプリID及びモジュールIDを、ユーザ情報記憶部231において、ログイン管理者に係る組織IDに対応する組織レコードの購入アプリの項目に記憶する(S108)。例えば、図9において、組織ID=123に対応する組織レコードの購入アプリの項目における「ワークフロー機器アプリ」や、当該組織レコードの購入プロセスの項目における「OCR」及び「翻訳」等は、このタイミングで登録される。
続いて、機器通信部222は、プログラム購入要求に含まれているアプリIDに対応するワークフロー機器アプリ125を機器アプリ記憶部233より取得し、プログラム購入要求元のログイン管理者に係る組織IDに属する機器10に配信する(S109)。当該組織IDに属する機器10とは、機器情報記憶部232において当該組織IDに対応付けられている機器10である。
なお、ユーザ環境E1にはファイアーウォールF1が設置されているため、サービス提供装置20からユーザ環境E1内の各機器10に対して、ワークフロー機器アプリ125を送り付けることはできない。そこで、例えば、機器10の通信部123からのポーリングに対する応答において、ワークフロー機器アプリ125が返信されてもよい。
すなわち、各機器10には、サービス提供装置20との連携のために、サービス提供装置20のIPアドレスや、機器通信部222に対するポート番号等が設定されている。各機器10の通信部123は、例えば、定期的に当該IPアドレス及び当該ポート番号宛に、何らかの事象の発生の有無を問い合わせるためのポーリングを行う。当該問い合わせには、例えば、機体番号が含まれる。サービス提供装置20の機器通信部222は、当該問い合わせに指定されている機体番号が、ワークフロー機器アプリ125の購入元の組織IDに対応付いている機体番号であれば、ワークフロー機器アプリ125を返信する。
但し、ユーザ環境E1とサービス提供装置20との間にファイアーウォールF1が存在しない場合、機器通信部222が、各機器10に対してワークフロー機器アプリ125を送り付けてもよい。この場合、機器情報記憶部232に記憶される機器情報には、機器10のIPアドレス及びポート番号等が含まれるようにしてもよい。
なお、プロセスモジュールについては、配信は行われない。本実施の形態において、プロセスモジュールは、サービス提供装置20に処理を実行させるプログラムであるからである。したがって、プロセスモジュールの購入は、プロセスモジュールのライセンス(利用権限)の購入に相当する。
ワークフロー機器アプリ125を受信した各機器10は、ワークフロー機器アプリ125を機器10内に配置(インストール)する(S110)。
なお、マーケットプレース画面540のOKボタン543の押下に応じて、マーケットプレース画面540は非表示となり、管理者端末30には、管理者ポータル画面530が表示される。
続いて、管理者は、ワークフローサービスにおいて連携するクラウドストレージ50に対するアカウント情報を登録すべく、管理者ポータル画面530の連携ボタン531を押下する。連携ボタン531の押下に応じ、管理者端末30は、ストレージ連携画面610を表示させる。
図12は、連携先のストレージのアカウント情報を登録させるための画面の遷移例を示す図である。
図12において、ストレージ連携画面610は、連携先ストレージ表示領域611、連携先入力領域612、ストレージ種別選択領域614、及び追加ボタン613等を含む。連携先ストレージ表示領域611は、連携先として選択されたストレージの名前(以下、「ストレージ名」という。)が表示される領域である。既に、連携先として選択されているストレージが有る場合、当該ストレージのストレージ名が表示される。連携先入力領域612は、連携先とするストレージ(以下、「連携先ストレージ」という。)のストレージ名を入力させるための領域である。
ストレージ種別選択領域614は、連携先とするストレージの種別を、例えば、ラジオボタンによって選択させるための領域である。本実施の形態では、一例として、「クラウドストレージ」、「SMB」、及び「FTP」が、連携先のストレージの種別の選択肢とされている。本実施の形態において、クラウドストレージ50は、「クラウドストレージ」に属する。すなわち、「クラウドストレージ」は、ユーザ環境E1の外部のストレージである。「SMB」は、SMBによってアクセス可能なローカルストレージである。「FTP」は、FTPによってアクセス可能なローカルストレージである。ローカルストレージ40は、「SMB」又は「FTP」に属する。
管理者によって、ストレージ種別として「クラウドストレージ」が選択され、連携先入力領域612にストレージ名(「StorageA」)が入力された後、追加ボタン613が押下されると、管理者端末30は、アカウント入力画面620を表示させる。管理者端末30は、アカウント入力画面620を介して、連携先ストレージに対するアカウント情報(例えば、メールアドレス等のID及びパスワード)の入力を、管理者より受け付ける。当該アカウント情報は、事前に、連携先ストレージに対するユーザ登録等によって作成されているものである。アカウント入力画面620においてID及びパスワードが入力され、ログインボタン621が押下されると、管理者端末30は、当該ID及びパスワードに基づいて、連携先ストレージ(「StorageA」)に対してログインを行う。なお、ストレージ名に対応付けて、連携先ストレージへのログイン要求先のURL(Uniform Resource Locator)が予め管理者端末30に保存されていてもよいし、連携先入力領域612に対して当該URLが入力されるようにしてもよい。
ログインに成功すると、管理者端末30は、アクセス許否選択画面630を表示させる。アクセス許否選択画面630は、サービス提供装置20による連携先ストレージへのアクセスを許可するか否かを選択させる画面である。ボタン632(「許可しない」)が押下されると、管理者端末30における表示画面は、管理者ポータル画面530に遷移する。ボタン631(「アクセス許可」)が押下されると、管理者端末30は、連携先ストレージのアカウント登録要求をサービス提供装置20に送信する(S111)。当該アカウント登録要求には、ストレージ連携画面610に入力されたストレージ名、及びアカウント入力画面620に入力されたアカウント情報(ID及びパスワード)が含まれる。
サービス提供装置20の設定登録部221は、アカウント登録要求に応じ、ユーザ情報記憶部231(図9)において、ログイン管理者に係る組織IDに対応する組織レコードのストレージアカウント情報に、当該要求に含まれているストレージ名、ID、及びパスワードを登録する(S112)。図9には、組織ID=123に係る組織レコードに対して、StorageAのストレージ名と、StorageAに対するID及びパスワードが登録された例が示されている。
一方、ストレージ連携画面610において、ストレージ種別として「SMB」が選択された場合、画面遷移は、例えば、図13に示されるようになる。
図13は、連携先のストレージのアカウント情報を登録させるための画面の第二の遷移例を示す図である。なお、図13に示されるストレージ連携画面610では、既に、連携先ストレージの一つとして、「StorageA」が登録された後の状態が示されている。
ストレージ連携画面610において、ストレージ種別として「SMB」が選択され、連携先入力領域612にストレージ名(例えば、「SMB_1」)が入力された後、追加ボタン613が押下されると、管理者端末30は、図13に示される、SMB用アカウント入力画面620aを表示させる。
SMB用アカウント入力画面620aでは、保存先、ドメイン名、アカウント名、及びパスワードの入力が可能とされている。保存先は、SMBによってアクセスするローカルストレージの識別情報である。当該識別情報は、例えば、ホスト名又はIPアドレス等、SMBにおいて、保存先を特定可能な情報であればよい。ドメイン名、アカウント名、及びパスワードは、当該ローカルストレージ40に対するアクセスにおいて必要とされる、アカウント情報である。なお、ストレージ種別選択領域614において、「FTP」が選択された場合、SMB用アカウント入力画面620aの代わりに、FTP用アカウント入力画面が表示される。FTP用アカウント入力画面では、FTPによってアクセスするローカルストレージ40のIPアドレスと、当該ローカルストレージに対するアクセスに必要とされるアカウント情報の入力が可能とされる。
SMB用アカウント入力画面620aに対して、IPアドレス、ドメイン名、アカウント名、及びパスワードが入力され、追加ボタン621aが押下されると、管理者端末30は、連携先ストレージのアカウント登録要求をサービス提供装置20に送信する(S111)。当該アカウント登録要求には、ストレージ連携画面610に入力されたストレージ名、及びSMB用アカウント入力画面620aに入力されたアカウント情報(IPアドレス、ドメイン名、アカウント名、及びパスワード等)が含まれる。
サービス提供装置20の設定登録部221は、アカウント登録要求に応じ、ユーザ情報記憶部231(図9)において、ログイン管理者に係る組織IDに対応する組織レコードのストレージアカウント情報に、当該要求に含まれているストレージ名、IPアドレス、ドメイン名、アカウント名、及びパスワード等を登録する(S112)。
図14は、ユーザ情報記憶部へのストレージアカウント情報の追加例を示す図である。図14では、組織レコードのストレージアカウント情報の2行目に、「SMB_1」に対するアカウント情報が追加された例が示されている。
なお、連携先ストレージ及び連携先ストレージに対するアカウント情報が、ユーザごとに設定可能とされてもよい。この場合、例えば、ストレージ連携画面610又はアカウント入力画面620において、一以上のユーザ名を入力可能な領域が設けられてもよい。当該領域に入力されたユーザ名は、アカウント登録要求に含まれてサービス提供装置20に送信される。サービス提供装置20の設定登録部221は、アカウント登録要求に含まれているユーザ名に対応する構成員レコードのストレージアカウント情報に、当該要求に含まれているストレージ名、ID、及びパスワードを登録する。
アカウント登録要求に応じたサービス提供装置20における登録処理が成功すると、管理者端末30には、ストレージ連携画面610a(図12又は図13)が表示される。ストレージ連携画面610aの連携先ストレージ表示領域611には、連携先ストレージのストレージ名が表示される。
続いて、管理者は、ユーザ環境E1において、ワークフローサービスの利用を許可する構成員ユーザの登録を行う。具体的には、管理者は、管理者ポータル画面530(図8)の利用者登録領域535のテキストボックス535tに、当該構成員ユーザに関する情報(以下「ユーザ情報」という。)が記述されたファイル(以下、「ユーザ情報ファイル」という。)のファイル名を入力し、登録ボタン535bを押下する。
一人の構成員ユーザに関するユーザ情報は、例えば、ユーザ名、パスワード、及びカードID等の項目を含む。これらの項目の値が、例えば、図15に示されるような形式でユーザ情報ファイルに記述されている。
図15は、ユーザ情報ファイルにおけるユーザ情報の記述例を示す図である。図15では、各項目の値が、カンマによって区切られた、CSV形式によって、ユーザ情報が記述された例が示されている。但し、ユーザ情報ファイルにおけるユーザ情報の記述形式は、CSV形式に限定されない。XML(eXtensible Markup Language)形式であってもよいし、他の形式であってもよい。
ユーザ情報ファイルのファイル名がテキストボックス535tに入力され、登録ボタン535bが押下されると、管理者端末30は、ユーザ情報ファイルに記述されているユーザ情報を含むユーザ登録要求を、サービス提供装置20に送信する(S113)。
サービス提供装置20の設定登録部221は、ユーザ登録要求に含まれているユーザ情報を、ログイン管理者に係る組織IDに対応付けて、ユーザ情報記憶部231に登録する(S114)。すなわち、ユーザ情報ごとに新たな利用者レコードが生成され、各利用者レコードに対して、一つのユーザ情報が登録される。図9の例では、ユーザ名が、B、C、又はDのレコードがステップS114において登録される。なお、管理者に関するユーザ情報が、ユーザ登録要求に含まれていてもよい。管理者に関するユーザ情報とは、ユーザ名が、管理者レコードのユーザ名と一致するユーザ情報をいう。この場合、ユーザ登録要求に含まれているユーザ情報によって、管理者レコードの内容が更新されてもよい。例えば、管理者のカードIDが、このタイミングで登録されてもよい。
続いて、管理者は、ワークフローの定義の作成を行う。管理者ポータル画面530(図8)において、ワークフロー作成ボタン537が押下されると、管理者端末30には、ワークフロー作成画面が表示される。
図16は、ワークフロー作成画面の一例を示す図である。図16において、ワークフロー作成画面570は、フロー名設定領域574、入力タスク設定領域571、プロセスタスク設定領域572、及び出力タスク設定領域573等を有する。
フロー名設定領域574は、ワークフローの名前(以下、「フロー名」という。)を設定させる領域である。図16では、フロー名として、「スキャンToストレージ」が設定された例が示されている。
入力タスク設定領域571は、入力タスクに関するタスク名、入力方法、及び入力元等を設定させるための領域である。タスク名は、各タスクを識別するための名前であり、管理者の任意による値が設定可能である。入力方法は、データの入力方法をいい、例えば、「スキャン」及び「アップロード」のいずれかの選択が可能である。「スキャン」は、スキャナによる読み取りにより、データを入力することを示す。「アップロード」は、ネットワークを介したアップロード(サービス提供装置20から見た場合、ネットワークを介した受信)により、データを入力することを示す。入力元は、データの入力元をいい、例えば、「機器」、「ストレージ」、「Web」、「HTTP POST」、及び「メール」等のいずれかの選択が可能である。「機器」は、入力方法が「スキャン」である場合に有効な選択肢である。スキャンを実行可能なのは、機器10(画像形成装置10a)に限られるからである。「ストレージ」、「Web」、「HTTP POST」、及び「メール」は、入力方法が「アップロード」である場合に有効な選択肢である。「ストレージ」は、ローカルストレージ40、クラウドストレージ50、又はサーバストレージ237のうちのいずれかのストレージを示す。入力元として「ストレージ」が選択された場合、ローカルストレージ40、クラウドストレージ50、又はサーバストレージ237のうちのいずれかのストレージの所定のフォルダにアップロードされたデータが入力対象となる。「Web」は、サービス提供装置20によって提供されるWebページを介した、所定のURLに対するデータのアップロードをいう。「HTTP POST」は、所定のURLへのHTTP POSTによるデータのアップロードを示す。「HTTP POST」におけるアップロード先のURLは、「Web」におけるアップロード先と同じでもよい。この場合、「HTTP POST」GUI(Graphical User Interface)であるWebページを必要としない点において、「Web」と異なる。このことは、「HTTP POST」によれば、ユーザによる対話的な操作を必要としない、自動的なアップロードが可能であることを意味する。例えば、「HTTP POST」の利用例として、PC10hが、当該PC10hのファイルシステムの所定のフォルダを監視し、当該フォルダに対して、デジタルカメラ10e又は携帯端末10gより転送されたデータを、当該PC10hが、HTTP POSTによってアップロードする例が挙げられる。「メール」は、所定のメールアドレス宛の電子メールによるデータのアップロードを示す。
なお、入力元が「Web」、「HTTP POST」、及び「メール」である場合、これらの通信手段によってデータを送信する機器10等には、機器アプリ等、本実施の形態に固有のプログラムをインストールする必要はない。データの送信元の機器10には、これらの通信手段に応じた通信プロトコルに対応したプログラムがインストールされていればよい。
プロセスタスク設定領域572は、プロセスタスクに関するタスク名、前段タスク、及びプロセス名を設定させるための領域である。プロセス名の意味は、入力タスクと同じである。前段タスクは、当該プロセスタスク設定領域572において設定対象とされているプロセスタスクの前段又は入力側に接続されるタスクのタスク名である。図16では、前段タスクとして「入力1」が設定された例が示されている。したがって、当該プロセスタスク設定領域572において設定対象とされているプロセスタスクは、タスク名が「入力1」である入力タスクの次に実行されることになる。プロセス名は、当該プロセスタスク設定領域572において設定対象とされているプロセスタスクにおいて実行されるプロセスの名前である。プロセス名の選択肢は、ログイン管理者に係る組織IDに対応付けられてユーザ情報記憶部231(図9)の「購入プロセス」に記憶されているモジュールIDに対応するプロセス名、又は当該組織IDに対応付けられて機器情報記憶部232(図11)に記憶されている、プロセスタスクに関する能力情報に含まれているプロセス名である。本実施の形態では、「OCR」及び「翻訳」の中からいずれか一つを選択可能である。なお、モジュールIDに対応するプロセス名は、例えば、補助記憶装置202に記憶されているプロセスモジュールごとの属性情報に基づいて特定されてもよい。すなわち、当該属性情報には、プロセスモジュールのモジュールID、プロセス名、並びに入力情報及び出力情報等のインタフェース情報等が含まれている。
プロセスタスク設定領域572は、更に、追加ボタン5721を含む。追加ボタン5721が押下されると、管理者端末30は、新たなプロセスタスク設定領域572を、例えば、押下された追加ボタン5721を含むプロセスタスク設定領域572の下に追加する。したがって、複数のプロセスタスクを含むワークフローの作成が可能である。
出力タスク設定領域573は、出力タスクに関するタスク名、前段タスク、及び出力先を設定させるための領域である。タスク名及び前段タスクについては、上記した通りである。出力先は、出力タスクにおける出力先である。出力先の選択肢としては、例えば、「機器」及び「ストレージ」等が挙げられる。
出力タスク設定領域573は、更に、追加ボタン5731を含む。追加ボタン5731が押下されると、管理者端末30は、新たな出力タスク設定領域573を、例えば、押下された追加ボタン5731を含む出力タスク設定領域573の下に追加する。したがって、複数の出力タスクを含むワークフローの作成が可能である。
ワークフロー作成画面570において必要な編集が完了し、登録ボタン575が押下されると、管理者端末30は、ワークフロー作成画面570における編集内容を含むワークフロー登録要求をサービス提供装置20に送信する(S115)。サービス提供装置20の設定登録部221は、ワークフロー登録要求に応じ、当該登録要求に含まれている情報を、ワークフロー定義記憶部236に登録する(S116)。
図17は、ワークフロー定義記憶部の構成例を示す図である。図17において、ワークフロー定義記憶部236は、ワークフローの定義ごとに、組織ID、フロー名、及びワークフロー情報等を記憶する。
組織IDは、当該ワークフローの定義が属する組織の組織IDである。フロー名は、当該ワークフローのフロー名である。ワークフロー情報は、当該ワークフローの定義内容を示す情報である。ステップS116において、組織IDには、ログイン管理者に係る組織IDが記憶される。フロー名には、ワークフロー作成画面570のフロー名設定領域574に設定された値が記憶される。ワークフロー情報については、図18を用いて説明する。
図18は、ワークフロー情報の構成例を示す図である。図18には、一つのワークフローに対するワークフロー情報が含まれている。また、図18に示されるワークフロー情報は、図16のワークフロー作成画面570における設定内容に対応する。
図18において、ワークフロー情報は、フロー定義テーブルTw1、入力タスクテーブルTw2、プロセスタスクテーブルTw3、及び出力タスクテーブルTw4等を含む。
フロー定義テーブルTw1は、ワークフローを構成するタスク間の接続関係(すなわち、実行順の順序関係)を示す情報を記憶する。タスク間は、「イベント」と呼ばれる概念によって接続される。なお、「イベント」とは、タスク間の接続関係を識別するための識別情報であればよく、必ずしも具体的な事象を示すものでなくてよい。
すなわち、フロー定義テーブルTw1においては、各タスクのタスク名に対して、当該タスクの入力イベント及び出力イベントが対応付けられている。入力イベントは、入力側の識別情報である。出力イベントは、出力側の識別情報である。入力イベントの値が他のタスクの出力イベントの値と一致するタスクは、当該他のタスクに続いて実行されることを示す。
例えば、タスク名が「入力1」であるタスク(以下、「タスク[入力1]」といい、他のタスクの呼び名についても同じ命名規則に従う。)について、入力イベントは、「イベントS」であり、出力イベントは、「イベント1」である。タスク[プロセス1]の入力イベントは、「イベント1」であり、出力イベントは、「イベント2」である。タスク[出力1]の入力イベントは、「イベント2」であり、出力イベントは、「イベントE」である。ここで、タスク[プロセス1]の入力イベントは、タスク[入力1]の出力イベントに一致する。したがって、タスク[プロセス1]は、タスク[入力1]に続いて実行されることが分かる。また、タスク[出力1]の入力イベントは、タスク[プロセス1]の出力イベントに一致する。したがって、タスク[出力1]は、タスク[プロセス1]に続いて実行されることが分かる。以上より、フロー定義テーブルTw1は、タスク[入力1]→タスク[プロセス1]→タスク[出力1]の順で、タスクが実行されることを示す。なお、「イベントS」は、ワークフローの開始を示すイベントである。また、「イベントE」は、ワークフローの終了を示すイベントである。
フロー定義テーブルTw1の内容は、ワークフロー作成画面570においてタスクごとに設定されるタスク名と、プロセスタスク設定領域572及び出力タスク設定領域573において設定される「前段タスク」とに基づいて記憶される。イベントの名前は、例えば、設定登録部221によって自動的に生成される。
入力タスクテーブルTw2は、入力タスクであるタスク[入力1]のタスク名、タスク種別、入力方法、及び入力元を記憶する。入力タスクテーブルTw2の内容は、ワークフロー作成画面570の入力タスク設定領域571における設定内容に基づいて記憶される。
プロセスタスクテーブルTw3は、プロセスタスクであるタスク[プロセス1]ののタスク名及びプロセス名を記憶する。プロセスタスクテーブルTw2の内容は、ワークフロー作成画面570のプロセスタスク設定領域572における設定内容に基づいて記憶される。
出力タスクテーブルTw4は、出力タスクであるタスク[出力1]ののタスク名及び出力先を記憶する。出力タスクテーブルTw4の内容は、ワークフロー作成画面570の出力タスク設定領域573における設定内容に基づいて記憶される。
なお、ステップS115及びS116が繰り返し実行されることにより、複数のワークフローの定義がワークフロー定義記憶部236に記憶されてもよい。
続いて、管理者は、ワークフローサービスの利用に際して、各機器10の表示装置(例えば、画像形成装置10aの操作パネル15)に表示される操作画面の構成情報であるプロファイルの編集作業等を行う。本実施の形態におけるプロファイルは、ワークフロー機器アプリ125の操作画面に関する情報であり、画面上のボタンのレイアウトや、ボタンごとに、ワークフローに対する設定情報に関する情報を含む。
図19は、プロファイルの概念モデルを説明するための図である。図19に示されるように、各機器10は、一つのプロファイルを有する。但し、機器10ごとに異なるプロファイルが設定されてもよいし、例えば、ユーザごとに異なるプロファイルが一つの機器10に設定されてもよい。
プロファイルは、一以上のグループを含む。グループとは、操作画面において、例えば、タブウィンドウに対応する概念である。図19では、グループの具体例として、「営業」及び「開発」が示されている。これらは、それぞれ営業タブウィンドウ又は開発タブウィンドウを示す。
一つのグループは、一以上のプロジェクト及び画面レイアウト情報を含む。プロジェクトは、例えば、タブウィンドウ上に配置されるボタン等の操作部品に対応する概念である。図19では、プロジェクトの具体例として「伝票」、「日報」、「商品情報」及び「顧客情報」等が示されている。これらは、例えば、営業タブウィンドウに配置される各ボタンのラベルを示す。
画面レイアウト情報は、一つのタブウィンドウ内における操作部品(ボタン)の配置位置や大きさ等を示す情報である。
一つのプロジェクトは、一つのワークフローに関連付けられる。すなわち、ボタンの選択により、実行対象のワークフローが選択される。
管理者ポータル画面530(図8)において、プロファイル設定ボタン533が押下されると、管理者端末30には、プロファイル設定画面550が表示される。図8に示されるように、プロファイル設定画面550は、プロファイル編集ボタン551及び機器設定ボタン552を含む。管理者によって、プロファイル編集ボタン551が選択されると、管理者端末30には、プロファイル設定画面550上に、プロファイル編集画面710が表示される。
図20は、プロファイル編集画面の表示例を示す図である。図20において、プロファイル編集画面710は、プロファイル名入力領域711、編集対象画面表示領域712、ワークフロー設定領域713、編集ボタン714〜717、及び登録ボタン718等を含む。
プロファイル名入力領域711は、プロファイル名の入力を受け付ける領域である。編集対象画面表示領域712は、編集対象とされている画面(ワークフロー機器アプリ125の操作画面)が表示される領域である。図20では、図19に示した概念モデルに対応した画面例が表示されている。すなわち、営業タブウィンドウ及び開発タブウィンドウを含み、営業タブウィンドウ内に、日報ボタン、顧客情報ボタン、商品情報ボタン、及び伝票ボタン等を含む画面が編集対象とされた例が示されている。
編集ボタン714〜717は、新たなタブウィンドウの追加、編集対象とされているタブウィンドウの削除、編集対象とされているタブウィンドウに対するボタンの追加、編集対象とされているタブウィンドウにおいて選択されているボタンの削除等を行わせるためのボタンである。
なお、編集対象画面表示領域712の初期状態は、一つのタブウィンドウに一つのボタンが配置された状態であってもよいし、予め雛型として作成されているプロファイルに基づく状態であってもよい。
編集対象画面表示領域712において、選択されたボタン(以下、「対象ボタン」という。)は、削除ボタン717、又はワークフロー設定領域713の編集対象となる。ワークフロー設定領域713は、リストボックス7131、及びリストボックス7131において選択されたフロー名に係るワークフローを構成するタスクごとのボタン7132〜7134等を含む。
リストボックス713には、ログイン管理者に係る組織IDに対応付けられてワークフロー定義記憶部236に記憶されているフロー名の一覧が選択肢として表示される。リストボックス713における選択に応じて、選択されたフロー名に係るワークフロー(以下、「対象ワークフロー」という。)を構成するタスクごとに、ボタンが表示される。図20では、フロー名として、「スキャンToストレージ」が選択された例が示されている。したがって、当該フロー名に係るワークフローを構成するタスク[入力1]、タスク[プロセス1]、タスク[出力1]ごとに、ボタン7132〜7134が表示された例が示されている。
ボタン7132〜7134のいずれかが選択されると、当該ボタンに対応するタスクに対するタスク設定画面が表示される。どのようなタスク設定画面が表示されるかについては、各タスクに対して、ワークフロー作成画面570において設定された内容に応じて異なりうる。
例えば、入力タスクに関しては、対象ワークフローに対する入力タスクテーブルTw2(図18)に記憶されている入力方法及び入力元に基づいて、入力タスク設定画面が表示される。入力方法が「スキャン」であり、入力元が「機器」である場合、例えば、図21に示されるような入力タスク設定画面が表示される。
図21は、入力タスク設定画面の一例を示す図である。図21において、入力タスク設定画面720は、リストボックス721及びスキャン設定領域722等を含む。
リストボックス720は、入力元とする機器10、すなわち、入力タスクを実行させる具体的な機器10を選択させるための表示部品である。リストボックス721には、ログイン管理者に係る組織IDに対応付けられて、機器情報記憶部232に記憶されている機器情報のうち、入力タスクに関する能力情報に「スキャン」が含まれている機器情報に係る機体番号が選択肢として表示される。機体番号以外の文字列であって、当該機体番号に係る機器10を識別可能な文字列が表示されてもよい。
スキャン設定領域722には、スキャンに関する設定項目に対する設定値を受け付けるための領域である。スキャン設定領域722の表示内容は、リストボックス721における選択結果に応じて変化する。すなわち、選択された機器10の能力情報に対応した設定項目が、スキャン設定領域722に表示される。
入力タスク設定画面720において必要事項が設定され、OKボタン723が押下されると、管理者端末30は、入力タスク設定画面720における設定情報を、対象ワークフローに対する設定情報(以下、「ワークフロー設定情報」)の一部を構成する入力タスク設定情報として、当該入力タスクのタスク名に関連付けて、メモリに記憶する。
なお、入力タスクの入力方法が「アップロード」であり、入力元が「ストレージ」である場合、特定のストレージの特定のフォルダを設定させるための画面が、入力タスク設定画面として表示される。
また、入力タスクの入力方法が「アップロード」であり、入力元が「Web」、「HTTP POST」、又は「メール」である場合、アップロード先のURL又はメールアドレスを設定させるための画面が、入力タスク設定画面として表示される。但し、当該URL又はメールアドレスは、設定登録部221によって自動生成されてもよい。例えば、ワークフローに対応付けられるプロジェクトは、組織ID、プロファイル名、グループ名、及びプロジェクト名によって一意な値となる。したがって、組織ID、プロファイル名、グループ名、及びプロジェクト名を接続した値等が、URL又はメールアドレスに含まれてもよい。設定又は生成されたURL又はメールアドレスは、入力タスク設定情報として、ワークフロー設定情報の一部を構成してもよい。
プロセスタスクに関しては、当該プロセスタスクの実行場所を選択させるためのプロセス設定画面が表示される。プロセス名が「OCR」であるプロセスタスクに関しては、例えば、図22に示されるようなプロセスタスク設定画面が表示される。
図22は、プロセスタスク設定画面の一例を示す図である。図22において、プロセスタスク設定画面730は、リストボックス731及び設定領域732等を含む。
リストボックス731は、プロセスタスクを実行させる機器10又は装置を選択させるための表示部品である。リストボックス731には、機器情報記憶部232に記憶されている機器情報のうち、プロセスタスクに関する能力情報に「OCR」が含まれている機器情報に係る機体番号が選択肢として表示される。また、ログイン管理者に係る組織IDに対応付けられて、ユーザ情報記憶部231の購入プロセスに記憶されているモジュールIDの中に、OCRモジュール2271のモジュールIDが含まれている場合、「サーバ」もリストボックス731の選択肢に追加される。「サーバ」は、サービス提供装置20を示すキーワードである。更に、ログイン管理者に係る組織IDに対応付けられて、ユーザ情報記憶部231の購入プロセスに記憶されているモジュールIDの中に、クラウドOCRモジュール2277のモジュールIDが含まれている場合、「クラウド」もリストボックス731の選択肢に追加される。図22では、「サーバ」が選択された例が示されている。
設定領域732では、OCR処理に関する設定項目に対する設定値を受け付けるための領域である。設定領域722の表示内容は、リストボックス721における選択結果に応じて変化する。例えば、リストボックス721において、機器10の機体番号が選択された場合、当該機体番号に対応付けられて機器情報記憶部232に記憶されている機器情報に含まれている、OCRに関する詳細情報に基づいた設定項目が判定され、当該設定項目が表示される。また、リストボックス721において、「サーバ」又は「クラウド」が選択された場合、OCRモジュール2271又はクラウドOCRモジュール2277に関連付けられて、補助記憶装置202等に記憶されているOCRモジュール2271又はクラウドOCRモジュール2277の属性情報に基づいて、設定項目が表示される。
プロセスタスク設定画面730において必要事項が設定され、OKボタン733が押下されると、管理者端末30は、プロセスタスク設定画面730における設定情報を、対象ワークフローに対するワークフロー設定情報の一部を構成するプロセスタスク設定情報として、当該プロセスタスクのタスク名に関連付けて、メモリに記憶する。
なお、図22では、OCR処理に関するプロセスタスク設定画面730の例を示したが、他の処理に関するプロセスタスクに関しても、同様のプロセスタスク設定画面が用いられてもよい。
出力タスクに関しては、対象ワークフローに対する出力タスクテーブルTw3(図18)に記憶されている出力先に基づいて、出力タスク設定画面が表示される。出力先が「ストレージ」である場合、例えば、図23に示されるような出力タスク設定画面が表示される。
図23は、出力タスク設定画面の一例を示す図である。図23において、出力タスク設定画面740は、リストボックス741及びテキストボックス742等を含む。
リストボックス741は、出力先とする具体的なストレージを選択させるための表示部品である。リストボックス741には、ログイン管理者に係る組織IDに対応付けられて、ユーザ情報記憶部231に記憶されているストレージアカウント情報に含まれているストレージ名と、「サーバストレージ」とが、選択肢として表示される。「サーバストレージ」は、サーバストレージ237を示すキーワードである。
テキストボックス742は、リストボックス741において選択されたストレージにおいて、データの保存先とするフォルダのフォルダ名を入力させるための表示部品である。
出力タスク設定画面740において必要事項が設定され、OKボタン743が押下されると、管理者端末30は、出力タスク設定画面740における設定情報を、対象ワークフローに対するワークフロー設定情報の一部を構成する出力タスク設定情報として、当該出力タスクのタスク名に関連付けて、メモリに記憶する。
なお、出力タスクの出力先が「機器」である場合は、例えば、機体番号を選択させるためのリストボックスと、当該リストボックスにおいて選択された機体番号に対応付けられて、機器情報記憶部232に記憶されている出力タスクに関する能力情報に含まれている詳細情報に基づく設定項目等を含む画面が、出力タスク設定画面として表示されてもよい。例えば、出力タスクとして「プリント」を実行可能な機器10がリストボックスにおいて選択された場合、「プリント」に関する詳細情報に基づく設定項目が表示されてもよい。
プロファイル編集画面710において必要な編集が完了し、登録ボタン718が押下されると、管理者端末30は、プロファイル編集画面710における編集内容を含むプロファイル登録要求をサービス提供装置20に送信する(S117)。当該編集内容には、プロファイル編集画面710のリストボックス713において選択されたフロー名、及びワークフロー設定情報等も含まれる。フロー名及びワークフロー設定情報は、プロジェクトごとに設定可能であるため、複数のフロー名及びワークフロー設定情報が、当該編集内容に含まれうる。
サービス提供装置20の設定登録部221は、プロファイル登録要求に応じ、当該登録要求に含まれている情報を、ログイン管理者に係る組織IDに対応付けて、プロファイル記憶部234に登録する(S118)。入力タスクの入力方法が「アップロード」であり、入力元が「Web」、「HTTP POST」、又は「メール」である場合であって、アップロード先のURL又はメールアドレスが自動生成される場合、この時点において、設定登録部221によって、URL又はメールアドレスが自動生成されてもよい。
図24は、プロファイル記憶部の構成例を示す図である。プロファイル記憶部234は、プロファイルごとに、組織ID、プロファイル名、グループ、及びプロジェクト等の項目を有する。
組織IDは、プロファイルが属する組織の組織IDである。プロファイル名は、プロファイルの名前である。グループは、プロファイルに含まれるグループである。一つのプロファイルに対するレコード内に、グループごとのレコード(以下、「グループレコード」という。)が形成される。プロジェクトは、グループに含まれるプロジェクトである。一つのグループレコード内に、プロジェクトごとのレコード(以下、「プロジェクトレコード」という。)が形成される。
一つのグループレコードは、グループ名及びレイアウト情報及び1以上のプロジェクトレコードを含む。グループ名は、グループの識別名であり、グループに対応するタブウィンドウのタブに表示されるラベルでもある。レイアウト情報は、グループに対応するタブウィンドウ内における各ボタンの配置情報である。
一つのプロジェクトレコードは、プロジェクト名、フロー名、及びワークフロー設定情報等を含む。プロジェクト名は、プロジェクトの識別名であり、プロジェクトが対応するボタンのラベルでもある。フロー名及びワークフロー設定情報には、当該プロジェクトに関して、プロファイル編集画面710(図20)において設定された内容が記憶される。
続いて、管理者によって、プロファイル設定画面550(図8)の機器設定ボタン552が押下されると、管理者端末30には、プロファイル機器設定画面750が表示される。
図25は、プロファイル機器設定画面の表示例を示す図である。プロファイル機器設定画面750は、プロファイルと各機器10との対応付けを設定させるための画面である。図25に示されるように、プロファイル機器設定画面750には、ログイン管理者に係る組織IDに対応付けられて機器情報記憶部232に機器情報が記憶されている機器10ごとに、機器情報及びプロファイル名入力領域751が表示される。管理者は、プロファイル名入力領域751に対して、各機器10に対応付ける(各機器10において利用される)プロファイルのプロファイル名を入力し、登録ボタン752を押下する。
登録ボタン752の押下に応じ、管理者端末30は、プロファイル機器設定画面750における設定内容(例えば、機体番号とプロファイル名との組み合わせ)を含む登録要求をサービス提供装置20に送信する。サービス提供装置20の設定登録部221は、当該登録要求に含まれている情報を、プロファイル機器対応記憶部235に登録する。
図26は、プロファイル機器対応記憶部の構成例を示す図である。プロファイル機器対応記憶部235は、機体番号、プロファイル名、及び機器アプリのアプリIDを対応付けて記憶する。対応付けられるアプリIDは、マーケットプレース画面540(図8)において選択された機器アプリのアプリIDである。すなわち、設定登録部221は、当該機器アプリのアプリIDを、ログイン管理者に対応付けてメモリ装置203等に記憶しておき、プロファイル機器設定画面750における設定内容の登録要求に応じ、当該アプリIDを当該設定内容に対応付けてプロファイル機器対応記憶部235に記憶する。
続いて、管理者ポータル画面530(図8)のログアウトボタン536が押下されると(S119)、管理者端末30は、サービス提供装置20に対してログアウト要求を送信する。ログアウト要求の受信に応じ、サービス提供装置20は、ログイン管理者のログイン状態を解除する。
以上でワークフローサービスを利用するための管理者による準備作業は完了する。続いて、構成員ユーザによって、ワークフローサービスが利用される際に、情報処理システム1において実行される処理手順について説明する。
図27は、本発明の実施の形態におけるワークフローサービス利用時の処理手順の一例を説明するためのシーケンス図である。図27の説明においては、画像形成装置10aが操作対象とされる。画像形成装置10aを操作する或る構成員ユーザを、単に「ユーザ」という。また、図27の処理の開始時において、画像形成装置10aには、いずれのユーザもログインしていない状態であるとする。
ユーザが、画像形成装置10aにログインすべく、画像形成装置10aの非図示のカードリーダにICカードを翳すと、機器認証部122は、カードリーダを介して当該ICカードよりカードIDを取得する(S201)。続いて、機器認証部122は、カードIDを含む認証要求をサービス提供装置20に送信する(S202)。
サービス提供装置20の認証処理部223は、認証要求の受信に応じ、認証要求に含まれているカードIDについて認証を行う。例えば、当該カードIDを含むレコードがユーザ情報記憶部231に記憶されていれば認証は成功したと判定されてもよい。または、画像形成装置10aからカードIDと共に組織ID及び機体番号が送信されてもよい。この場合、組織ID、機体番号、及びカードIDの組み合わせに矛盾が無ければ、認証は成功したと判定されてもよい。認証が成功した場合、セッション管理部224は、画像形成装置10aとの間のセッションを開設する。セッション管理部224は、ユーザ情報記憶部231において、当該カードIDに対応付けられている組織ID及びユーザ名を、当該セッションに対応付けてメモリ装置203に記憶する。セッション管理部224は、また、当該セッションの識別情報であるトークン(例えば、cookie)を生成する。認証処理部223は、当該トークンを認証の成功を示す応答に含めて画像形成装置10aの機器認証部122に返信する(S203)。
機器認証部122は、認証成功の応答の受信に応じ、当該応答に含まれているトークンを、RAM112に記憶する。機器認証部122は、また、ユーザの操作を可能とするため、操作パネル15に対する利用制限(ロック)を解除する(S204)。利用制限が解除されることにより、ユーザは、操作パネル15を介して画像形成装置10aの操作が可能となる。
続いて、機器認証部122は、画像形成装置10a内で起動している各アプリケーションに対して、ログインの成功を通知する。本実施の形態では、ワークフロー機器アプリ125にもログインの成功が通知される(S205)。ログインの成功の通知には、トークンが添付される。したがって、ワークフロー機器アプリ125は、当該通知を介してトークンを入手する。
続いて、ユーザによる操作パネル15を介した操作によって、ワークフロー機器アプリ125が利用対象として選択されると、ワークフロー機器アプリ125は、自らのアプリID、トークン、及び画像形成装置10a(自機)の機体番号等を指定して、プロファイルの取得要求を、サービス提供装置20のワークフローサーバアプリ211宛に送信する(S206)。サービス提供装置20のセッション管理部224は、当該取得要求を中継する。中継に際し、セッション管理部224は、当該取得要求に含まれているトークンを、当該トークンによって識別されるセッションの組織ID及びユーザ名に変換して、当該取得要求をワークフローサーバアプリ211に転送する(S207)。なお、セッション管理部224は、不正なトークンを含む要求については、拒絶する。
続いて、ワークフローサーバアプリ211は、当該取得要求に指定されているアプリID及び機体番号に対応付いているプロファイル名を、プロファイル機器対応記憶部235(図26)を参照して特定する。ワークフローサーバアプリ211は、また、特定されたプロファイル名、及びトークンから変換された組織IDによって識別されるプロファイルを、プロファイル記憶部234(図24)より取得する。ワークフローサーバアプリ211は、更に、当該組織IDに対応付けられているワークフロー定義情報(図17、図18)の一覧をワークフロー定義記憶部236より取得する。ワークフローサーバアプリ211は、取得されたプロファイル及びワークフロー定義情報の一覧を、ワークフロー機器アプリ125に返信する(S208)。
ワークフロー機器アプリ125は、返信されたプロファイルに基づいて、操作画面を生成する(S209)。続いて、ワークフロー機器アプリ125は、当該操作画面を操作パネル15に表示させる(S210)。なお、厳密には、プロファイルに基づく操作画面の生成及び操作パネル15への表示は、表示制御部124によって実行される。
図28は、ワークフロー機器アプリの操作画面の表示例を示す図である。図28に示される操作画面810は、図20の編集対象画面表示領域712に示されている画面と同じである。
続いて、ユーザによって、操作画面810のボタンの中から、ユーザの業務に適したボタンが選択される(S211)。例えば、日報をスキャン対象とする場合、ボタン811が選択される。操作パネル15によってボタンの選択が通知されると(S212)、ワークフロー機器アプリ125は、選択されたボタン811(「日報」)に対応するグループ名、プロジェクト名、ワークフロー設定情報、及びワークフロー定義情報(図17、図18)を、処理対象としてプロファイル及びワークフロー定義情報の一覧より抽出し、RAM112に記憶する(S213)。当該ワークフロー設定情報等は、操作画面810の生成に用いられたプロファイルに含まれている。また、選択されたボタン811に対応するワークフロー定義情報は、当該ボタンに対応するプロジェクトに対応付けられているフロー名に基づいて特定可能である。なお、ここで処理対象とされたワークフロー定義情報は、図18に例示されている、タスク[入力1]→タスク[プロセス1]→タスク[出力1]の順でタスクを実行するワークフローに関するワークフロー定義情報であるとする。
ワークフロー機器アプリ125は、処理対象のワークフロー定義情報のフロー定義テーブルTw1に基づいて、タスク[入力1]が入力タスクであることを認識する。また、入力タスクテーブルTw2に基づいて、「スキャン」を実行すべきことを認識する。また、処理対象のワークフロー設定情報を構成する入力タスク設定情報に含まれている機体番号が、当該画像形成装置10aの機体番号であることに基づき、当該画像形成装置10aにおいて入力タスクであるタスク[入力1]を実行すべきことを認識する。そこで、ワークフロー機器アプリ125は、スキャンの実行を促すメッセージを、操作パネル15に表示させる。
続いて、ユーザによって、スキャン対象とされる日報の原稿が画像形成装置10aにセットされ、操作パネル15上のスタートボタンが押下されると(S214)、操作パネル15は、ワークフロー機器アプリ125に対してスタートボタンの押下を通知する(S215)。スタートボタンの押下の通知に応じ、ワークフロー機器アプリ125は、機器制御部121を介して原稿のスキャンジョブを画像形成装置10aに実行させる(S216)。すなわち、スキャナ12によって原稿から画像データが読み取られる。この際、読み取り条件は、処理対象のワークフロー設定情報を構成する入力タスク設定情報に基づく。したがって、日報のスキャンに適した読み取り条件によって、原稿のスキャンが実行され、画像データが生成される。
続いて、ワークフロー機器アプリ125は、当該画像データを、自らのアプリID、機体番号、選択されたボタンのグループ名及びプロジェクト名、実行済みのタスク[入力1]のタスク名(「入力1」)、並びにトークン等と共にワークフローサーバアプリ211に送信する(S217)。セッション管理部224は、当該トークンを組織ID及びユーザ名に変換し、変換結果、アプリID、機体番号、グループ名及びプロジェクト名、実行済みタスク名、及び当該画像データをワークフローサーバアプリ211に転送する(S218)。
ワークフローサーバアプリ211は、転送されたアプリID及び機体番号に対応するプロファイルを、プロファイル機器対応記憶部235及びプロファイル記憶部234に基づいて特定し、当該プロファイルにおいて、転送されたグループ名及びプロジェクト名に対応するフロー名及びワークフロー設定情報を特定する。更に、ワークフローサーバアプリ211は、当該フロー名に係るワークフロー定義情報を、ワークフロー定義記憶部236より取得する。
ワークフローサーバアプリ211は、取得されたワークフロー定義情報のブロー定義テーブルTw1と、実行済みタスク名とに基づいて、次に実行すべきタスクは、タスク[プロセス1]であることを認識する。また、ワークフローサーバアプリ211は、プロセスタスクテーブルTw3(図18)に基づいて、タスク[プロセス1]は、OCR処理であることを認識する。
そこで、ワークフローサーバアプリ211は、OCR処理に係るジョブ(以下、「ジョブA」という。)の実行要求をジョブ処理部225に投入する(S219)。当該実行要求には、タスク[プロセス1]に対するプロセスタスク設定情報、及びスキャンされた画像データ等が関連付けられる。なお、ジョブの実行要求は、RAM112に形成されているジョブキューに蓄積される。ジョブの実行は、ジョブの実行要求とは非同期に実行される。但し、ジョブの実行要求と同期的にジョブが実行されてもよい。
続いて、ジョブ処理部225は、ジョブキューよりジョブAを取り出すと、ジョブAに係る画像形成装置に対する、ジョブAに係るプロセスタスク設定情報に基づくOCR処理を、OCRモジュール2271に要求する(S220)。OCRモジュール2271は、画像データに関してOCR処理を実行し、処理結果としてのテキストデータを出力する(S221)。ジョブ処理部225は、当該テキストデータを、ワークフローサーバアプリ211に出力する(S222)。
続いて、ワークフローサーバアプリ211は、ワークフロー定義情報のフロー定義テーブルTw1に基づいて、出力タスクであるタスク[出力1]を実行すべきことを認識する。また、ワークフローサーバアプリ211は、出力タスクテーブルTw4に基づいて、出力先は、「ストレージ」であることを認識する。更に、ワークフローサーバアプリ211は、タスク[出力1]に対する出力タスク設定情報に基づいて、出力先のストレージは、「StorageA」のストレージ名によって識別されるクラウドストレージ50におけるフォルダ名が「AAA」のフォルダであることを認識する(図23参照)。
そこで、ワークフローサーバアプリ211は、出力されたテキストデータと、組織ID、ユーザ名、ストレージ名(「StorageA」)、及びフォルダ名等を指定して、当該テキストデータの保存を、ストレージ連携部226に要求する(S223)。
なお、出力先のストレージが、「サーバストレージ237」である場合、ワークフローサーバアプリ211は、サーバストレージ237に対して、テキストデータの保存を行う。
ストレージ連携部226は、指定されたストレージ名に係るクラウドストレージ50に対するログインを認証処理部223に要求する(S224)。ストレージ連携部226は、アップロード要求に指定された組織ID及びストレージ名を当該ログイン要求に指定する。認証処理部223は、当該組織IDに対応する組織レコードをユーザ情報記憶部231より取得し、当該組織レコードのストレージアカウント情報において、アップロード要求に係るストレージ名に対応付けられているアカウント情報(ID及びパスワード)を取得する。認証処理部223は、取得されたアカウント情報を用いて、例えば、StorageAに係るクラウドストレージ50(以下、単に「StorageA」という。)に対して認証要求を送信する(S225)。
StorageAは、当該認証要求に指定されたアカウント情報について認証に成功すると、StorageAへのアクセス用のトークンを返信する(S226)。認証処理部223は、返信されたトークンを、ストレージ連携部226に返却する(S227)。
続いて、ストレージ連携部226は、当該トークンを指定して、保存要求に係るテキストデータについて、保存要求において指定されたストレージ名(「StorageA」)によって特定されるクラウドストレージ50に対して保存要求を送信する(S228)。この際、保存要求に指定されたフォルダ名(/日報)が保存先のフォルダとして指定される。
その結果、StorageAの/日報に対して、当該テキストデータが保存される。続いて、ストレージ連携部226は、テキストデータの保存の成否等を示す保存結果を含む応答を、ワークフローサーバアプリ211に返信する(S229)。ワークフローサーバアプリ211は、ワークフロー定義情報のフロー定義テーブルTw1に基づいて、タスク[出力1]によってワークフローが終了することを認識し、当該ワークフローを終了させる。
なお、ワークフローの実行ごとに、識別情報が付加されて、例えば、ワークフローを構成する各タスクの実行結果等を含むログ情報が、ワークフローサーバアプリ211によって、補助記憶装置202等に記憶されてもよい。当該ログ情報は、ワークフローの終了時に一括して記憶されてもよいし、タスクが終了するたびに記憶されてもよい。タスクが終了するたびに記憶されることにより、例えば、実行完了まで長時間を要するワークフローについて、現在の進捗状況の確認等に用いることができる。
また、上記では、入力元が「機器」であり、入力方法が「スキャン」である例を示したが、入力元が「アップロード」であり、入力方法が「Web」、「HTTP POST」、又は「メール」である場合、ワークフローサーバアプリ211は、例えば、次のような処理を実行する。
HTTPリクエスト又は電子メールによってデータが受信されると、ワークフローサーバアプリ211は、当該HTTPリクエストの宛先のURL又は当該電子メールの宛先メールアドレスに対応するプロジェクトを、処理対象のプロジェクトとしてプロファイル記憶部234より検索する。URL又は宛先メールアドレスに対応するプロジェクトとは、当該プロジェクトのワークフロー設定情報に含まれている入力タスク設定情報に、当該URL又は宛先メールアドレスが含まれているプロジェクトをいう。
続いて、ワークフローサーバアプリ211は、検索されたプロジェクトに対応するフロー名に係るワークフロー定義情報を、ワークフロー定義記憶部236より取得する。
続いて、ワークフローサーバアプリ211は、取得されたワークフロー定義情報と、処理対象のプロジェクトに対応するワークフロー設定情報とに基づいて、アップロードされたデータに関してワークフローの実行を制御する。例えば、プロセスタスク及び出力タスクが、図27において説明したものと同じであれば、当該データに関して、ステップS219以降が実行される。
続いて、本実施の形態の仕組みを利用することにより実現可能な他のワークフローの例について具体的なユースケースに基づいて説明する。
図29は、第一のユースケースに対応したワークフローの例を示す図である。図29では、何らかのサービス(以下、「サービスA」という。)の提供者が、ワークフローサービスのユーザであり、サービスAの窓口担当者が、顧客から顧客情報の変更に関する申請書を受け付けた場合に利用されるワークフロー(以下、「ワークフローA」という。)が示されている。当該申請書は、例えば、住所変更等の申請書であってもよい。
窓口担当者による操作指示に応じ、画像形成装置10aは、入力タスクとして、申請書のスキャンを行う(S301)。続いて、画像形成装置10aは、申請書からスキャンされた画像データに対して、プロセスタスクとして、OCR処理を実行する(S302)。画像形成装置10aは、OCR処理の結果として出力されるテキストデータをサービス提供装置20に送信する。なお、上記の実施形態において説明したように、OCR処理は、サービス提供装置20において実行されてもよい。
サービス提供装置20は、出力タスクとして、クラウドストレージ50に対し、テキストデータを保存する(S303)。サービス提供装置20は、また、プロセスタスクとして、テキストデータに基づいて、顧客情報の更新処理を、顧客情報管理システムに対して実行する(S304)。すなわち、ステップS302のOCR処理の後において、ワークフローAは、クラウドストレージ50に対する出力タスクと、顧客情報更新処理に関するプロセスタスクとに分岐する。なお、顧客情報更新処理に関するプロセスタスクは、顧客情報更新処理を実行するプロセスモジュールを追加し、当該プロセスモジュールに実行させてもよい。顧客情報更新処理が終了すると、サービス提供装置20は、申請書の受領通知を顧客のPCに、例えば、電子メールで送信する(S305)。当該受領通知は、例えば、報告モジュール2275が実行してもよい。
図30は、第二のユースケースに対応したワークフローの例を示す図である。図30では、文書を翻訳して関係者に配信するためのワークフローが示されている。
画像形成装置10aは、入力タスクとして、文書のスキャンを行う(S311)。画像形成装置10aは、スキャンされた画像データを、サービス提供装置20に送信する。
サービス提供装置20は、プロセスタスクとして、当該画像データに対してOCR処理を実行する(S312)。続いて、サービス提供装置20は、プロセスタスクとして、OCR処理の結果として出力されるテキストデータに対して翻訳処理を実行する(S313)。当該翻訳処理は、翻訳モジュール2272が実行してもよい。続いて、サービス提供装置20は、プロセスタスクとして、翻訳結果のテキストデータをPDFデータに変換する(S314)。当該変換処理は、変換モジュール2274が実行してもよい。続いて、サービス提供装置20は、出力タスクとして、PDFデータをクラウドストレージ50に保存する(S315)。サービス提供装置20は、また、プロセスタスクとして、PDFデータについて、関係者への配信(例えば、メール送信)を実行する(S316)。
図31は、第三のユースケースに対応したワークフローの例を示す図である。図31では、ファクス受信が行われた際に実行されるワークフローが示されている。
画像形成装置10aは、入力タスクとしてファクスを受信すると、受信された文書の電子データ(以下、「文書データ」という。)をサービス提供装置20に送信する(S321)。なお、画像形成装置10aは、受信された文書の印刷は行わない。
サービス提供装置20は、プロセスタスクとして、文書データを印刷データに変換する(S322)。当該変換は、例えば、変換モジュール2274が実行してもよい。続いて、サービス提供装置20は、出力タスクとして、変換結果の印刷データを、プリントサーバに送信する。ここで、印刷データは、直ちには印刷されず、画像形成装置10aから印刷データの取得要求が有るまで、プリントサーバに保存される。
サービス提供装置20は、また、プロセスタスクとして、例えば、ユーザの携帯端末10gに、ファクス受信の通知メールを送信する(S324)。当該通知メールの送信は、報告モジュール2275が実行してもよい。
その後、当該通知メールを確認したユーザは、画像形成装置10aを操作して、プリントサーバに保存されている印刷データを画像形成装置10aに引き取らせ、印刷を実行させる。
このようなワークフローによれば、ファクス受信に応じて文書が直ちに印刷されてしまう場合に比べて、当該文書が放置され、他人の目に晒される可能性を低減することができる。したがって、ファクス受信の安全性を向上させることができる。
図32は、第四のユースケースに対応したワークフローの例を示す図である。図32では、議事録を簡単に配布するためのワークフローが示されている。
例えば、ユーザは、会議中にホワイトボードに記載されたメモ等を、デジタルカメラ10eで撮像し、撮像された画像データを、サービス提供装置20にアップロード(例えば、HTTP POST又はメール送信)する(S331)。アップロードは、デジタルカメラ10eから直接行われなくてもよい。一度、PC等に保存され、PC等からアップロードされてもよい。
なお、当該ワークフローの入力タスクの入力方法は「アップロード」であり、入力元は、「Web」、「HTTP POST」又は「メール」とされてもよい。この場合、サービス提供装置20(のワークフローサーバアプリ211)は、アップロードの宛先とされたURL又はメールアドレスに対応するワークフロー定義情報及びワークフロー設定情報に基づいて、ワークフローを制御する。
例えば、サービス提供装置20は、出力タスクとして、アップロードされた画像データを、クラウドストレージ50に保存する(S332)。サービス提供装置20は、また、プロセスタスクとして、アップロードされた画像データに対してOCR処理を実行する(S333)。続いて、サービス提供装置20は、プロセスタスクとして、OCR処理の結果であるテキストデータについて、例えば、電子メールによる各メンバへの配信を実行する(S334)。当該配信は、例えば、配信モジュール2276が実行してもよい。なお、配信前に、ユーザによるテキストデータの編集作業が行われるようにしてもよい。
上述したように、本発明の実施の形態において、サービス提供装置20によって提供されるワークフローサービスは、その処理手順を、タスク単位で任意に設定可能である。また、ワークフローを構成する各タスクの実行場所についても、ネットワークを介して通信可能な各機器10やサービス提供装置20、又はその他の装置に実行させることができる。したがって、サービス提供装置20によって提供されるサービスの柔軟性を向上させることができる。
また、各タスクを実行させる機器10の選択においては、機器10の能力情報に基づいて、選択可能な機器10が絞り込まれる。したがって、タスクに対応した機能を有さない機器10に対して当該タスクが割り当てられるといった事態が発生する可能性を低減させることができると共に、ワークフローの作成の作業負担を軽減することができる。
なお、本実施の形態において、サービス提供装置20は、情報処理装置及び処理装置の一例である。機器10は、処理装置の一例である。ワークフロー定義情報は、順序情報の一例である。ワークフロー設定情報は、関連付け情報の一例である。ワークフロー定義記憶部236は、順序情報記憶部の一例である。プロファイル記憶部234は、関連情報記憶部の一例である。設定登録部221は、設定部の一例である。ワークフローサーバアプリ211は、順序制御部の一例である。機器情報記憶部232は、能力情報記憶部の一例である。
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。