以下、図面に基づいて第一の実施の形態を説明する。図1に示される情報処理システム1において、サービス提供環境E2、ユーザ環境E1、及び外部システム40等は、インターネット等の広域的なネットワークを介して通信可能とされている。
サービス提供環境E2は、ネットワークを介してクラウドサービスを提供する組織におけるシステム環境である。なお、本実施の形態では、クラウドサービスを具体例に採用して説明するが、ASP(Application Service Provider)によって提供されるサービスやWebサービス等、ネットワークを介して提供されるサービスに関して、本実施の形態が適用されてもよい。
サービス提供環境E2は、サービス提供装置20を有する。サービス提供装置20は、ネットワークを介して所定のサービスを提供する。サービス提供装置20が提供するサービスの一つとして、「クラウド画像処理サービス」が有る。本実施の形態では、クラウド画像処理サービスに関して説明する。クラウド画像処理サービスとは、ユーザ環境E1の機器10において入力された画像データ、又は機器10に保存されている画像データがアップロードされると、当該画像データに対して所定の処理を実行し、当該処理結果としてのデータを、予め設定された配信先に配信するサービスをいう。なお、サービス提供装置20は、ユーザ環境E1に設置されてもよい。すなわち、サービス提供環境E2は、ユーザ環境E1に包含されてもよい。
ユーザ環境E1は、機器10のユーザ企業等の組織におけるシステム環境である。ユーザ環境E1において、一台以上の機器10と管理者端末30とはLAN(Local Area Network)等のネットワークを介して接続されている。
本実施の形態の機器10は、スキャン機能を有する画像形成装置である。スキャン機能以外に、印刷、コピー、又はファクス(FAX)通信等の機能を有する複合機が機器10として用いられてよい。なお、本実施の形態では、機器10においてスキャンされた画像データ(以下、「スキャン画像」という。)が、クラウド画像処理サービスにおいて処理対象とされる。但し、機器10は、画像データの入力機能又は保存機能を有し、画像データをネットワークを介して送信可能な機器であれば、画像形成装置以外の機器であってもよい。例えば、PC、スマートフォン、タブレット型端末、携帯電話、デジタルカメラ、又はその他のデバイスが、機器10として利用されてもよい。
管理者端末30は、ユーザ環境E1における機器10の管理者が使用する端末である。管理者端末30の一例として、PC(Personal Computer)、PDA(Personal Digital Assistance)、タブレット型端末、スマートフォン、又は携帯電話等が挙げられる。
外部システム40は、サービス提供装置20の外部のコンピュータシステムである。外部システム40は、例えば、ネットワークを介してクラウドサービスを提供する。提供されるクラウドサービスの一例として、オンラインストレージが挙げられる。オンラインストレージとは、ストレージの記憶領域を貸し出すサービスである。外部システム40は、サービス提供装置20によって提供されるクラウド画像処理サービスにおいて、スキャン画像又はスキャン画像に対する所定の処理によって生成されるデータの配信先の候補となる。なお、外部システム40は、サービス提供装置20を運営するシステムとは異なる組織によって運営されてもよいし、同じ組織によって運営されてもよい。
図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において、機器10は、コントローラ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に記憶されたプログラムを読み取るために利用される。すなわち、機器10では、ROM113に記憶されたプログラムだけでなく、SDカード80に記憶されたプログラムもRAM112にロードされ、実行されうる。なお、他の記録媒体(例えば、CD−ROM又はUSB(Universal Serial Bus)メモリ等)によってSDカード80が代替されてもよい。すなわち、SDカード80の位置付けに相当する記録媒体の種類は、所定のものに限定されない。この場合、SDカードスロット17は、記録媒体の種類に応じたハードウェアによって代替されればよい。
図4は、第一の実施の形態における情報処理システムの機能構成例を示す図である。図4において、サービス提供装置20は、WebUI部211、データ受信部212、ジョブ実行部213、メタデータ生成部214、ジョブ監視部215、プロファイル管理部216、プロセス実行部217、及び認証部218等を有する。これら各部は、サービス提供装置20にインストールされる一以上のプログラムが、CPU204に実行させる処理により実現される。サービス提供装置20は、また、プロファイル記憶部221、プロファイル機器対応記憶部222、ジョブデータ記憶部223、及びユーザ情報記憶部224等を利用する。これら各記憶部は、補助記憶装置202、又はサービス提供装置20にネットワークを介して接続される記憶装置等を用いて実現可能である。
WebUI部211は、ネットワークを介して、Webページを介したユーザインタフェースを提供する。本実施の形態において、WebUI部211は、管理者端末30に対し、Webページを介したユーザインタフェースを提供する。
データ受信部212は、機器10より送信される(アップロードされる)スキャン画像や、当該スキャン画像に関して、機器10において生成されたメタデータ等を受信する。メタデータとは、スキャン画像の特徴又は属性等を示す書誌情報である。機器10において、スキャン画像に関連付けられるメタデータは、例えば、スキャンに関する設定情報や、スキャン画像そのものの特徴を示す情報である。具体的には、スキャン画像のデータサイズ、解像度、及びページ数等が、機器10においてスキャン画像に関連付けられるメタデータの一例である。
ジョブ実行部213は、データ受信部212によって受信されたスキャン画像に関して、クラウド画像処理サービスに関して、サービス提供装置20おいて実行されるジョブ(以下、「サーバジョブ」という。)の実行を制御する。メタデータ生成部214は、サーバジョブの実行対象とされているスキャン画像に関して、サービス提供装置20に関するメタデータを生成する。サービス提供装置20に関するメタデータの一例として、例えば、スキャン画像の一時的な保存位置を示すURI(Uniform Resource Identifier)やファイルパス名、機器10にスキャン画像をアップロードさせたユーザの認証情報等、スキャン画像に関するファイル管理に必要とされる情報が挙げられる。ジョブ監視部215は、サーバジョブを監視し、サーバジョブの完了を検知する。なお、機器10においてスキャン画像に関連付けられるメタデータと、サービス提供装置20において、スキャン画像等に関連付けられるメタデータとを区別する場合、前者を「クライアントメタデータ」といい、後者を「サーバメタデータ」という。
プロファイル管理部216は、プロファイル記憶部221に対するプロファイルの登録、又はプロファイル記憶部221が記憶するプロファイルの読み出し等を行う。プロファイルとは、スキャンクラウドサービスに関して、予め登録される設定情報である。スキャンクラウドサービスに関して機器10において実行されるジョブ(以下、「クライアントジョブ」という。)やサーバジョブ等は、プロファイルに従って実行される。プロファイルの詳細については後述される。
プロセス実行部217は、サーバジョブを構成する処理単位を実行する。サーバジョブは、プロセス実行部217が実行する1以上の処理単位の組み合わせによって構成される。斯かる処理単位の一例として、スキャン画像に対するOCR(Optical Character Recognition)処理、OCR結果として出力されるテキストデータに対する翻訳処理、スキャン画像又はサーバジョブの途中若しくは最後に生成されるデータの配信処理等が挙げられる。なお、図中において、プロセス実行部217は、一つのブロックによって示されているが、処理単位の種別ごとに、プロセス実行部217が分割されてもよい。
認証部218は、サービス提供装置20にアクセスするクライアント(例えば、機器10やそのユーザ等)に関して認証を行う。認証されたクライアントが、サービス提供装置20に対してサーバジョブ等を実行させることができる。
プロファイル記憶部221は、プロファイルを記憶する。プロファイル機器対応記憶部222は、プロファイルと機器10との対応情報を記憶する。ジョブデータ記憶部223は、クラウド画像処理サービスのジョブにおいて発生するデータを記憶する。斯かるデータの一例として、機器10よりアップロードされたスキャン画像、メタデータ生成部214によって生成されるメタデータ等が挙げられる。ユーザ情報記憶部224は、サービス提供装置20の利用を許可されたユーザごとに、テナントID、ユーザ名、パスワード、及びメールアドレス等を記憶する。
テナントIDは、ユーザが所属するテナントの識別情報である。本実施の形態において「テナント」とは、クラウド画像処理サービスのライセンスを購入した組織をいう。例えば、一つの企業が一つのテナントとなりうる。また、一つの企業を構成する一つの部署が、一つのテナントであってもよい。すなわち、一つの企業内に、複数のテナントが存在してもよい。いずれの場合であっても、テナントは、機器連携サービスを実際に利用する一以上の個人ユーザの集合である。また、組織は、企業に関する組織でなくてもよく、任意の団体又はサークル等であってもよい。また、一人が構成する組織であってもよい。本実施の形態では、一つのユーザ環境E1が、一つのテナントに対応することとする。
機器10は、スキャン制御部121及び通信制御部122等を有する。これら各部は、機器10にインストールされたプログラムが、CPU111に実行させる処理により実現される。
スキャン制御部121及び通信制御部122は、クラウド画像処理サービスにおいて機器10側の処理を実行する。すなわち、スキャン制御部121は、原稿からの画像データのスキャン(読み取り)を制御する。通信制御部122は、サービス提供装置20へのスキャン画像の送信(アップロード)等を行う。
管理者端末30は、ブラウザ部31を有する。ブラウザ部31は、例えば、Webブラウザプログラムが、管理者端末30のCPUに実行させる処理により実現される。ブラウザ部31は、WebUI部211により提供されるWebページの表示や、当該Webページに対する入力に応じた処理等を実行する。
続いて、プロファイルについて説明する。図5は、プロファイルの概念モデルを説明するための図である。図5に示されるように、各機器10は、一つのプロファイルに対応付けられる。但し、1つの機器10に対して複数のプロファイルの設定が可能とされてもよいし、例えば、ユーザごとに異なるプロファイルが一つの機器10に設定されてもよい。
プロファイルは、一以上のグループを含む。グループとは、操作画面において、例えば、タブウィンドウに対応する概念である。図5では、グループの具体例として、「営業」及び「開発」が示されている。これらは、それぞれ営業タブウィンドウ又は開発タブウィンドウに対応する。
一つのグループは、一以上のプロジェクト及び画面レイアウト情報を含む。プロジェクトは、例えば、タブウィンドウ上に配置されるボタン等の操作部品に対応し、クラウド画像処理サービスにおいて実行される処理単位の組み合わせの定義に対応する概念である。図5では、プロジェクトの具体例として「伝票」、「日報」、「商品情報」及び「顧客情報」等が示されている。これらは、例えば、営業タブウィンドウに配置される各ボタンのラベルを示す。
画面レイアウト情報は、一つのタブウィンドウ内における操作部品(ボタン)の配置位置や大きさ等を示す情報である。
一つのプロジェクトは、読み取り条件、外部連携情報、加工情報、及びメタデータ定義等を有する。読み取り条件は、スキャン時の読み取り条件である。外部連携情報とは、スキャンされた画像データに関して、いずれの外部システム40のいずれのフォルダを配信先とするか等を示す情報である。加工情報は、スキャン画像等に対して実行される1以上の処理単位に関する情報である。メタデータ定義は、当該プロジェクトに係るサーバジョブにおいて、スキャン画像等に関連付けられるメタデータの構成を示す定義情報である。すなわち、スキャン画像等に対して、どのようなメタデータが関連付けられるかは、プロジェクトごとに異ならせることができる。但し、プロジェクトの異同を問わず、全てのサーバジョブにおいて、スキャン画像等に関連付けられるメタデータの構成は、共通であってもよい。
以上のような構成を有するプロファイルの実体が、プロファイル記憶部221において、例えば、図6に示されるように記憶される。
図6は、プロファイル記憶部の構成例を示す図である。プロファイル記憶部221は、プロファイルごとに、テナントID、プロファイル名、グループ、及びプロジェクト等の項目を有する。
テナントIDは、プロファイルが属するテナントのテナントIDである。プロファイル名は、プロファイル識別名である。グループは、プロファイルに含まれるグループである。一つのプロファイルに対するレコード内に、グループごとのレコード(以下、「グループレコード」という。)が形成される。プロジェクトは、グループに含まれるプロジェクトである。一つのグループレコード内に、プロジェクトごとのレコード(以下、「プロジェクトレコード」という。)が形成される。
一つのグループレコードは、グループ名及びレイアウト情報及び1以上のプロジェクトレコードを含む。グループ名は、グループの識別名であり、グループに対応するタブウィンドウのタブに表示されるラベルでもある。レイアウト情報は、グループに対応するタブウィンドウ内における各ボタンの配置情報である。
一つのプロジェクトレコードは、プロジェクト名、読み取り条件、加工情報、外部連携情報、及びメタデータ定義等を含む。プロジェクト名は、プロジェクトの識別名であり、プロジェクトが対応するボタンのラベルでもある。本実施の形態において、プロジェクト名は、外部連携情報のフォルダ名に一致する。
読み取り条件は、加工情報、トレージ連携情報、及びメタデータ定義等の意味は、図5において説明した通りである。
また、図5に示される、機器10とプロファイルとの対応付けは、プロファイル機器対応記憶部222において記憶される。
図7は、プロファイル機器対応記憶部の構成例を示す図である。図7に示されるように、プロファイル機器対応記憶部222は、機体番号及びプロファイル名を対応付けて記憶する。機体番号は、機器10の機体(個体)ごとの識別情報である。例えば、製造番号又はシリアル番号が機体番号として用いられてもよい。
なお、プロファイル記憶部221及びプロファイル機器対応記憶部222が記憶する情報は、例えば、クラウド画像処理サービスを利用するテナントにおける管理者による設定作業によって、予め登録される。
以下、第一の実施の形態において、情報処理システム1が実行する処理手順について説明する。図8は、第一の実施の形態におけるプロファイルに対するメタデータ定義の登録処理の処理手順の一例を示す図である。図8は、既存のプロファイルの或るプロジェクトに対して、メタデータ定義を登録する際に実行される処理手順の一例である。例えば、図8の開始時には、プロファイル記憶部221において、メタデータ定義が登録されていないプロジェクトレコードが記憶されていることとする。または、図8の処理は、既にプロファイル記憶部221に登録されているメタデータ定義を更新する際に実行されてもよい。
なお、図8において、管理者は、管理者端末30を操作する。また、管理者は、管理者端末30を介して、サービス提供装置20に対し、テナントID、管理者のユーザ名、及びパスワードを入力することにより、サービス提供装置20にログイン済みであるとする。
ステップS11において、管理者端末30のブラウザ部31は、管理者による操作に応じ、メタデータ定義登録画面の取得要求を、サービス提供装置20のWebUI部211宛に送信する。当該取得要求には、当該要求に応じ、WebUI部211は、メタデータ定義登録画面を表示させるWebページを返信する(S12)。ブラウザ部31は、当該Webページに基づいて、メタデータ定義登録画面を表示させる。
図9は、メタデータ定義登録画面の表示例を示す図である。図9において、メタデータ定義登録画面510は、リストボックス511、512、及び513、テキストボックス514、並びにOKボタン515等を含む。
リストボックス511は、ログインしている管理者のテナントID(以下、「ログインテナントID」という。)に対応付けられてプロファイル記憶部221に記憶されているプロファイル名の一覧を選択肢とする。リストボックス512は、リストボックス511において選択されたプロファイル名に係るプロファイルに属するグループのグループ名の一覧を選択肢とする。リストボックス513は、リストボックス512において選択されたグループ名に係るグループに属するプロジェクトのプロジェクト名の一覧を選択肢とする。
テキストボックス514は、リストボックス513において選択されたプロジェクト名に係るプロジェクトに対するメタデータ定義が入力される領域である。なお、図9に示されるメタデータ定義において、%で囲まれた文字列は、当該%内の文字列によって識別される項目の値によって置き換えられることを示す。たとえば、%size%は、データサイズを示す。
メタデータ定義登録画面510においてOKボタン515が押下されると、ブラウザ部31は、メタデータ定義登録画面510において選択されたプロファイル名、グループ名、及びプロファイル名、並びに入力されたメタデータ定義等を含む登録要求を、WebUI部211宛に送信する(S13)。WebUI部211は、ログインテナントIDを付加して、当該登録要求をプロファイル管理部216に転送する(S14)。プロファイル管理部216は、プロファイル記憶部221(図6)において、当該登録要求指定されたログインテナントID、プロファイル名、グループ名、及びプロジェクト名に基づいて特定されるレコードに対して、当該登録要求に指定されたメタデータ定義を登録する(S15)。
図10は、メタデータ定義の記憶例を示す図である。図10は、例えば、図6における一つのプロジェクトレコードのメタデータ定義の項目に記憶される内容を示す。
図10では、テキストボックス514に入力された内容が、XML(eXtensible Markup Language)形式に変換されて記憶される例が示されている。すなわち、テキストボックス514では、「項目名=値」の形式で記述されていたが、図10では、「<property id="項目名"><value>値</value></<property>」といった形式で記憶されている。なお、メタデータ定義の記憶形式は、XMLに限定されない。例えば、JSON(JavaScript Object Notation)形式又はCSV(Comma Separated Values)形式で記憶されてもよいし、その他の形式で記憶されてもよい。
なお、図8のシーケンス図では、便宜上、プロファイルを構成する項目の中で、メタデータ定義のみが登録される例を示したが、メタデータ定義は、他の項目と共に登録されてもよい。この場合、ステップS12に応じて表示される画面は、他の項目の値も設定可能な構成を有していればよい。
続いて、クラウド画像処理サービスのジョブの実行時において、情報処理システム1が実行する処理手順について説明する。
図11は、第一の実施の形態においてクラウド画像処理サービスのジョブに関して実行される処理手順の一例を説明するためのシーケンス図である。図11において、ユーザは、機器10を操作する。機器10には、ステップS101の前において、当該機器10に対応するプロファイルがダウンロードされていることとする。
ユーザが、プロファイルに基づいて操作パネル15に表示されている操作画面において、実行対象とするプロジェクトを選択し、スキャンの開始指示を入力すると(S101)、選択されたプロジェクトに係るプロファイル名、グループ名、及びプロジェクト名と、スキャンの実行指示とがスキャン制御部121に入力される。プロジェクトの選択は、例えば、プロファイルに基づいて表示される図12に示されるような操作画面を介して行われる。
図12は、プロファイルに基づいて表示される操作画面の一例を示す図である。図12に示される操作画面810は、図6において、プロファイル名が「Adpf」であるプロファイルに対応する。
操作画面810において、タブ811及び812は、それぞれグループに対応する。タブ811の選択時に表示されるボタン813〜816は、タブ811に対応するグループに属するプロジェクトに対応する。操作画面810において、いずれかのボタンが押下されることで、プロジェクトが選択される。
スキャン制御部121は、スキャンの開始指示に応じ、指定されたプロジェクト名に係るプロジェクトにおける読み取り条件に従った原稿のスキャンを、スキャナ12に実行させる。その結果、原稿から画像が読み取られ、当該画像を示す画像データ(スキャン画像)が生成される。
続いて、スキャン制御部121は、スキャン画像の転送を、通信制御部122に要求する(S104)。通信制御部122は、データ受信部212宛に、スキャン画像を転送(アップロード)する(S105)。データ受信部212は、受信されたスキャン画像を、ジョブデータ記憶部223に保存する(S106)。保存に伴って、スキャン画像にはURI(Uniform Resource Identifier)が割り当てられ、当該URI(以下、「画像URI」という。)が、データ受信部212に返信される(S107)。画像URIは、スキャン画像ごとの識別情報であると共に、スキャン画像の保存位置を示す情報でもある。なお、原稿が複数枚であり、複数のスキャン画像がアップロードされた場合、スキャン画像ごとに画像URIが割り当てられる。
続いて、データ受信部212は、当該画像URIを、機器10の通信制御部122に返信する(S108)。通信制御部122は、当該画像URIを、スキャン制御部121に通知する(S109)。続いて、スキャン制御部121は、当該画像URIと、選択されたプロジェクトに係るプロファイル名、グループ名、及びプロジェクト名と、当該プロジェクト名に係るプロジェクトの読み取り条件等を含むクライアントメタデータとを指定して、サーバジョブの実行要求をジョブ実行部213宛に送信する(S110)。以下、プロジェクトを識別するためのプロファイル名、グループ名、及びプロジェクト名の組み合わせを、「プロジェクトID」という。
ジョブ実行部213は、サーバジョブの実行要求に応じ、当該サーバジョブに対する識別情報(以下、「ジョブID」という。)を割り当てる。ジョブ実行部213は、当該ジョブIDと、サーバジョブの実行要求に指定された、画像URI、クライアントメタデータ、及びプロジェクトIDと等を指定して、サーバメタデータの生成を、メタデータ生成部214に要求する(S111)。メタデータ生成部214は、画像URIを含み、プロジェクトIDに係るプロジェクトのメタデータ定義に基づくサーバメタデータを生成する。メタデータ生成部214は、当該サーバメタデータと、クライアントメタデータとを含むメタデータファイルを、ジョブID及びプロジェクトIDに関連付けてジョブデータ記憶部223に保存する(S112)。この際、当該メタデータファイルと、当該メタデータファイルの対象となるスキャン画像とが関連付けられる。斯かる関連付けは、例えば、スキャン画像に対しても、メタデータファイルと同一のジョブIDが関連付けられることにより実現されてもよい。または、メタデータファイルに対して、スキャン画像の識別情報(例えば、画像URI)が記述されることにより実現されてもよい。または、スキャン画像とメタデータファイルとが、同じフォルダに保存されることにより、斯かる関連付けが実現されてもよい。本実施の形態では、メタデータファイルとスキャン画像には、共通のジョブIDが関連付けられることとする。
続いて、ジョブ実行部213は、サーバジョブの実行要求に指定された画像URI及びプロジェクトIDと、ジョブIDとを指定して、処理単位の実行要求を、プロセス実行部217に送信する(S121)。プロセス実行部217は、当該画像URIに係るスキャン画像の複製及び当該スキャン画像に関連付けられているメタデータファイルの複製を、ジョブデータ記憶部223より取得する(S122、S123)。以下において、スキャン画像の複製、メタデータファイルの複製を、単に、スキャン画像、メタデータファイルという。
続いて、プロセス実行部217は、プロジェクトIDに係るプロジェクトの加工情報に従った処理単位を実行する(S124)。例えば、スキャン画像に対して、OCR処理が実行される。なお、複数の加工情報が設定されている場合、複数の処理単位が実行されてもよい。なお、プロセス実行部217によって実行された処理単位に関する書誌情報が、メタデータファイルに追加されてもよい。
続いて、プロセス実行部217は、プロジェクトIDに係るプロジェクトの外部連携情報に指定された外部システム40に対して、例えば、スキャン画像、又はステップS124の処理結果として得られるデータと、メタデータファイルとを配信する(S125)。
斯かるデータ及びメタデータファイルを受信した外部システム40は、当該データに対して処理を実行するに際し、メタデータファイルの内容を解釈し(S126)、メタデータファイルの内容に応じて、当該処理の内容を振り分ける(変化させる)ことができる(S127)。当該処理が完了すると、外部システム40は、処理の完了を示す応答を、プロセス実行部217に返信する(S128)。
続いて、プロセス実行部217は、ジョブデータ記憶部223に記憶されているメタデータファイルに対して、例えば、配信処理の実行結果等を示す情報を追加する(S129)。続いて、プロセス実行部217は、ジョブIDを指定して、当該ジョブIDに係るサーバジョブの完了を、ジョブ監視部215に通知する(S130)。
ステップS130の時点において、メタデータファイルは、例えば、図13及び図14に示されるような記述を含む。
図13及び図14は、メタデータファイルの記述内容の例を示す図である。図13及び図14では、便宜上、1つのメタデータファイルの記述内容が、2つの図面に分割されて示されている。
図13において、記述6100は、機器10よりアップロードされるクライアントメタデータの例を示す。すなわち、記述6100は、読み取り条件等を構成する項目ごとに、property要素を含む。property要素のid属性の値は、項目名を意味する。また、property要素の子要素である、value要素の値は、項目の値を示す。記述6100に含まれる記述6101は、スキャン画像に付与された文書名を示す。記述6102は、スキャン画像の原稿のページ数を示す。記述6103は、スキャンを行った機器10の機体番号を示す。記述6104は、機器10が行ったジョブの種類(スキャン)を示す。記述6105は、どのような描画要素(文字、画像等)に対して適したスキャンを実行したのかを示す。「TEXT」は、文字に対して最適化された状態でスキャンが実行されたことを示す。記述6106は、スキャンの解像度を示す。記述6107は、解像度の単位を示す。記述6108は、スキャン時のグレーの濃さを示す。記述6109は、原稿サイズを示す。記述6110は、入力モード(原稿の載置先がADF(Auto Document Feeder)か又は圧板か)を示す。記述6111は、ADF又は圧板における原稿の向きを示す。記述6112は、スキャン画像の1画素あたりの深さ(ビット数)を示す。記述6113は、原稿の両面のスキャンであるか否かを示す。
図14において、記述6200は、ジョブを実行させたユーザの認証情報(テナントID及びユーザ名等)である。記述6300は、機器10よりアップロードされたスキャン画像ごとに、当該スキャン画像のジョブデータ記憶部223における保存位置を示すURI、ページ番号、及びデータ形式等を示す。記述6301は、1ページ目の原稿のスキャン画像に対応し、記述6302は、2ページ目の原稿のスキャン画像に対応する。記述6400は、図10におけるメタデータ定義に基づく記述である。なお、記述6100、記述6200、記述6300、及び記述6400は、例えば、ステップS112において、メタデータファイルに記録される。
記述6500は、スキャン画像ごとに、配信先のURLを示す。記述6500は、例えば、ステップS129において、メタデータファイルに記録される。
なお、図13及び図14では、メタデータファイルが、XML形式で記述された例を示したが、メタデータファイルは、JSON形式、CSV形式、又は他の形式によって記述されてもよい。
上述したように、第一の実施の形態によれば、機器10において入力されたスキャン画像に係るデータ(当該スキャン画像又は当該スキャン画像に基づいて生成されるデータ)の書誌情報又は当該データに関して実行された処理に関する書誌情報であるメタデータを関連付けることができる。したがって、配信先において、当該メタデータに基づいて動的に処理を変化させることができる。すなわち、機器10において入力された画像データの配信先における処理の柔軟性の確保を可能とすることができる。
次に、第二の実施の形態について説明する。第二の実施の形態では第一の実施の形態と異なる点について説明する。したがって、特に言及されない点については、第一の実施の形態と同様でもよい。
図15は、第二の実施の形態における情報処理システムの構成例を示す図である。図15中、図1と同一部分には同一符号を付し、その説明は省略する。
図15に示される情報処理システム2では、ユーザ端末50が、ネットワークを介してサービス提供装置20と通信可能とされている。ユーザ端末50は、例えば、PC(Personal Computer)、スマートフォン、タブレット型端末、又は携帯電話等である。ユーザ端末50は、ユーザ環境E1内で利用されてもよいし、ユーザ環境E1外で利用されてもよい。
図16は、第二の実施の形態においてクラウド画像処理サービスのジョブに関して実行される処理手順の一例を説明するためのシーケンス図である。図16中、図11と同一ステップには同一ステップ番号を付し、その説明は省略する。
図16では、ステップS125〜S128の代わりにステップS201が実行される。すなわち、図16は、外部連携情報が設定されていないプロジェクトが実行対象として選択された場合に実行される処理手順を示す。
ステップS201において、プロセス実行部217は、例えば、全ての処理単位が実行されることにより最終的に得られるデータを、ジョブデータ記憶部223に保存する。当該データは、ジョブID、スキャン画像、及びメタデータファイルに関連付けられて保存される。
また、図16では、ステップS211〜S215が追加されている。
ステップS130においてジョブの完了通知を受けたジョブ監視部215は、当該ジョブの実行者のユーザ名に関連付けられてユーザ情報記憶部224に記憶されているメールアドレス宛に、例えば、メタデータファイルが添付された電子メール、又はメタデータファイルの記述内容を本文とする電子メールを送信する(S211)。なお、当該電子メールには、サービス提供装置20のログイン画面に対するリンクが含まれている。当該リンクには、当該メタデータファイルに対応するジョブに係るデータ(例えば、スキャン画像又は処理単位の実行結果として出力されるデータ等)のURIが、例えば、引数として含まれている。
ユーザ端末50において、当該電子メールが受信され、ユーザが、ユーザ端末50を利用して、当該電子メールに含まれているリンクにアクセスすると、ユーザ端末50は、ログイン画面を表示させる。ユーザが、ログイン画面に対してテナントID、ユーザ名、及びパスワードを入力し、ログインを指示すると、ユーザ端末50は、入力された情報が指定されたログイン要求を、サービス提供装置20の認証部218宛に送信する(S212)。当該ログイン要求には、電子メールのリンクに含まれていた、データのURIが指定される。
認証部218は、ログイン要求に指定された情報を、ユーザ情報記憶部224に記憶されている情報と照合することにより、ユーザの認証を行う。認証に成功した場合、認証部218は、例えば、ログイン要求に指定されていた、データのURIをアクセス先とするリダイレクト命令を、ユーザ端末50に返信する(S213)。ユーザ端末50は、当該リダイレクト命令に従って、当該URIに係るデータへアクセスする(S214)。例えば、認証部218は、アクセス先のデータを、ユーザ端末50に返信する(S215)。その結果、当該データが、ユーザ端末50にダウンロードされる。ユーザは、ユーザ端末50において、例えば、スキャン画像やジョブの実行結果等を確認することができる。
なお、第二の実施の形態において、ステップS201及びその応答の代わりに、図11のステップS125〜S128が実行されてもよい。すなわち、全ての処理単位が実行されることにより最終的に得られるデータとメタデータとが、外部システム40に対して送信され、保存されてもよい。ステップS211では、当該データ又は当該メタデータの保存先に対するリンクが含まれてもよい。この場合、ユーザが、ユーザ端末50を利用して、当該電子メールに含まれているリンクにアクセスすると、ユーザ端末50は、当該外部システム40に対するログイン画面を表示させる。ユーザが、ログイン画面に対して、当該外部システム40に対するユーザ名、及びパスワードを入力し、ログインを指示すると、ユーザ端末50は、入力された情報が指定されたログイン要求を、当該外部システム40に送信する。当該ログイン要求に応じた認証が当該外部システム40において成功すると、ユーザ端末50は、保存されたデータ又はメタデータにアクセスすることができる。その結果、ユーザは、当該データ又はメタデータを参照することができる。
次に、第三の実施の形態について説明する。第三の実施の形態では第一の実施の形態と異なる点について説明する。したがって、特に言及されない点については、第一の実施の形態と同様でもよい。
図17は、第三の実施の形態における情報処理システムの構成例を示す図である。図17中、図1と同一部分には同一符号を付し、その説明は省略する。
図17に示される情報処理システム3では、外部アプリ装置60が、ネットワークを介してサービス提供装置20及び外部システム40等と通信可能とされている。外部アプリ装置60は、外部システム40ごとに、外部アプリ61を有する。外部アプリ61は、外部システム40ごとに固有のインタフェース(API(Application Program Interface)や通信プロトコル等)をサービス提供装置20から隠蔽し、外部システム40のインタフェースを共通化させるためのアプリケーションプログラムである。すなわち、外部アプリ61は、サービス提供装置20と、当該外部アプリ61が対応する外部システム40との間のやりとりを中継する。
なお、各外部アプリ61は、サービス提供装置20に実装されてもよい。この場合、外部アプリ装置60は、サービス提供装置20とは別個に設置されなくてもよい。
図18は、第三の実施の形態においてクラウド画像処理サービスのジョブに関して実行される処理手順の一例を説明するためのシーケンス図である。図18中、図11又は図16と同一ステップには同一ステップ番号を付し、その説明は省略する。
図18では、ステップS301及びS302と、ステップS304〜S310とが追加されている。
ステップS301は、例えば、外部アプリ61の起動時等に実行される。すなわち、外部アプリ61は、起動されると、サービス提供装置20の認証部218に対して、認証要求を送信する(S301)。認証要求では、外部アプリ61の正当性を示す情報が指定されればよい。斯かる情報は、例えば、電子証明書であってもよい。認証部218は、認証要求に応じて認証処理を実行し、認証の成否を示す情報を返信する(S302)。
認証に成功すると、外部アプリ61は、ジョブ監視部215に対するポーリングを開始する。当該ポーリングには、例えば、外部アプリ61に対応する外部システムの識別情報(例えば、図6における「StorageA」等)が含まれる。
ジョブ監視部215は、ジョブの完了通知を受けた後において(S130)、外部アプリ61からのポーリングを受信すると(S304)、当該ポーリングに指定されている識別情報が、ジョブの完了通知に指定されたジョブIDに係るジョブのプロジェクトの外部連携情報に含まれている識別情報であるか否かを判定する。すなわち、ポーリング元の外部アプリ61が、当該プロジェクトにおいて連携対象(配信先)とされている外部システム40に対応する外部アプリ61であるか否かが判定される。なお、当該ジョブIDに係るプロジェクトは、当該ジョブIDに関連付けられて記憶されているプロジェクトIDに基づいて特定可能である。
ポーリングに指定されている識別情報が、ジョブの完了通知に指定されたジョブIDに係るジョブのプロジェクトの外部連携情報に含まれている場合、ジョブ監視部215は、ポーリングに対して、当該ジョブIDを返信する(S305)。
外部アプリ61は、ジョブIDが返信されると、当該ジョブIDに関連付けられている、スキャン画像又はジョブの実行結果としてのデータと、メタデータファイルとを、ジョブデータ記憶部223より取得する(S306、S307)。また、当該ジョブIDに係るプロジェクトの外部連携情報も取得される。
続いて、外部アプリ61は、当該メタデータファイルに対して、外部アプリ61に固有のメタデータを追加する(S308)。ここで、追加されるメタデータは、外部システム40に関する書誌情報であってもよい。例えば、図14の記述6500が、外部アプリ61によって追加されてもよい。続いて、外部アプリ61は、必要に応じて、取得されたデータに関して独自の処理を実行する(S309)。続いて、外部アプリ61は、例えば、独自の処理の処理結果としてのデータと、メタデータファイルとを、外部連携情報に指定された外部システム40に対して配信する(S310)。
次に、第四の実施の形態について説明する。第四の実施の形態では第三の実施の形態と異なる点について説明する。したがって、特に言及されない点については、第三の実施の形態と同様でもよい。
図19は、第四の実施の形態においてクラウド画像処理サービスのジョブに関して実行される処理手順の一例を説明するためのシーケンス図である。図19中、図18と同一ステップには同一ステップ番号を付し、その説明は省略する。
図19では、ステップS302に続いてステップS401が実行され、ステップS130に続いてステップS402が実行される。一方、ステップS304及びS305は実行されない。
ステップS401において、外部アプリ61は、自らのURI(Uniform Resource Identifier)と、当該外部アプリ61に対応する外部システム40の識別情報とを含む、コールバックの登録要求を、ジョブ監視部215宛に送信する。ジョブ監視部215は、当該URIと識別情報とを、コールバック情報として、例えば、メモリ装置203又は補助記憶装置202に記憶しておく。
ジョブ監視部215は、ジョブの完了通知を受けると(S130)、登録されているコールバック情報のうち、当該完了通知に指定されたジョブIDに係るジョブのプロジェクトの外部連携情報に含まれている識別情報を含むコールバック情報を検索する。該当するコールバック情報が検索された場合、ジョブ監視部215は、当該コールバック情報に含まれているURI宛(すなわち、外部アプリ61宛)に、当該ジョブIDを送信する(S402)。続いて、ステップS306以降が実行される。
なお、上記各実施の形態において、メタデータに含まれる情報は、スキャン画像の特徴又は属性等を示す書誌情報である例について説明したが、メタデータには、外部システム40や外部アプリ61等が、処理制御に利用する専用のパラメータ(外部システム40又は外部アプリ61に固有のパラメータ)が、例えば、プロセス実行部217によって、メタデータに含まれてもよい。また、このようなパラメータが、メタデータ定義登録画面510のテキストボックス514に設定されてもよい。
なお、上記各実施の形態において、データ受信部212は、受信部の一例である。プロセス実行部217は、処理部の一例である。メタデータ生成部214は、生成部の一例である。第一の実施の形態におけるプロセス実行部217は、送信部及び追加部の一例である。第二の実施の形態におけるジョブ監視部215は、送信部の一例である。第三及び第四の実施の形態における外部アプリ61は、送信部の一例である。プロファイル管理部216は、登録部の一例である。メタデータ定義は、第一の書誌情報の構成情報の一例である。プロファイル記憶部221は、第一の記憶部の一例である。ジョブデータ記憶部223は、第二の記憶部の一例である。第二の実施の形態における認証部218は、返信部の一例である。
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。