以下、図面に基づいて本発明の実施の形態を説明する。図1は、本発明の実施の形態における情報処理システムの構成例を示す図である。図1に示される情報処理システム1において、サービス提供環境E2、ユーザ環境E1、及びオンラインストレージシステム40等は、インターネット等の広域的なネットワークを介して通信可能とされている。
サービス提供環境E2は、ネットワークを介してクラウドサービスを提供する組織におけるシステム環境である。なお、本実施の形態では、クラウドサービスを具体例に採用して説明するが、ASP(Application Service Provider)によって提供されるサービスやWebサービス等、ネットワークを介して提供される他の形態のサービスに関して、本実施の形態が適用されてもよい。
サービス提供環境E2は、サービス提供装置20を有する。サービス提供装置20は、ネットワークを介して所定のサービスを提供する。サービス提供装置20が提供するサービスの一つとして、「クラウドスキャンサービス」が有る。クラウドスキャンサービスとは、機器10においてスキャンされ、機器10より転送された画像データを、所定のストレージに配信するサービスをいう。なお、サービス提供装置20は、ユーザ環境E1に設置されてもよい。すなわち、サービス提供環境E2は、ユーザ環境E1に包含されてもよい。
ユーザ環境E1は、機器10のユーザ企業等の組織におけるシステム環境である。ユーザ環境E1において、一台以上の機器10と管理者端末30とはLAN(Local Area Network)等のネットワークを介して接続されている。本実施の形態の機器10は、スキャン機能を有する画像形成装置である。スキャン機能以外に、印刷、コピー、又はファクス(FAX)通信等の機能を有する複合機が機器10として用いられてよい。
管理者端末30は、ユーザ環境E1における機器10の管理者が使用する端末である。管理者端末30の一例として、PC(Personal Computer)、PDA(Personal Digital Assistance)、タブレット型端末、スマートフォン、又は携帯電話等が挙げられる。
オンラインストレージシステム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において、サービス提供装置20の機能は、アプリケーション層220L、ドメイン固有サービス層230L、共通サービス層240L、及びデータベース層250L等の4つの層(レイヤ)に分類されている。
アプリケーション層220Lは、クラウドスキャンサービスに関するサーバ側のアプリケーション(以下、「サーバアプリ」という。)が実装される層である。図3において、アプリケーション層220Lは、ポータルアプリ221p及びスキャンアプリ222p等を含む。ポータルアプリ221pは、クラウドスキャンサービスのポータルサイトの提供等を行うサーバアプリである。当該ポータルサイトでは、例えば、ユーザ情報の登録や、サーバアプリに対するユーザごとの設定情報の設定等を行うことができる。スキャンアプリ222pは、上述したクラウドスキャンサービスに関してサーバ側の処理を実行するサーバアプリである。なお、クラウドスキャンサービス以外のサービスに関するサーバアプリが追加可能であってもよい。
共通サービス層240Lは、複数のサーバアプリに共通する機能、又は複数のサーバアプリから利用される基本機能等を含む層である。共通サービス層240Lの機能は、プラットフォームAPI280を介して呼び出すことができる。プラットフォームAPI280は、基本的に、アプリケーション層220Lにおけるサーバアプリ又はドメイン固有サービス層230Lから呼び出される。なお、プラットフォームAPI280は、サービス提供装置20の運営者以外のサードベンダ等に対して公開されてもよい。この場合、サーバアプリは、当該サードベンダ等によって実装されてもよい。すなわち、サーバアプリは、プラットフォームAPI280を利用して、適宜開発され、追加される。
図3において、共通サービス層240Lは、認証部241p及びユーザ管理部242p等を含む。認証部241pは、サービス提供装置20にアクセスするユーザ又は機器10に関して認証及び認可等を行う。認可とは、ユーザ又は機器10による、アクセス対象とされたサービスに対するアクセスの可否の判定等をいう。例えば、アクセス対象とされたサービスに対するライセンスの有無等に基づいて認可が行われる。ユーザ管理部242pは、認証されたユーザに関する情報を管理する。
ドメイン固有サービス層230Lは、共通サービス層240Lに比較して、より完結性の高い、粒度の大きい、又は応用度の高いサービスを提供する層である。ドメイン固有サービス層230Lが提供するサービスは、ドメイン固有API290を介して利用可能である。ドメイン固有API290は、プラットフォームAPI280に比べて、より粒度の大きなAPIである。ドメイン固有API290についても、外部に公開されてもよい。ドメイン固有サービス層230Lは、スキャンロジック部231p等を含む。スキャンロジック部231pは、クラウドスキャンサービスのロジック部分を実行する。クラウドスキャンサービスのロジック部分とは、スキャンアプリ222pが有する機能のうち、ユーザインタフェース機能を除いた部分である。ユーザインタフェース機能とは、主として、WebUI(Webページ)の生成及び提供機能をいう。したがって、図3の構成において、スキャンアプリ222pの機能は、スキャンロジック部231pを利用することにより、主として、ユーザインタフェース機能に関するものとなる。
ドメイン固有サービス層230Lが設けられ、ドメイン固有API290が提供されることにより、例えば、他のクラウドサービス等が、クラウドスキャンサービスに連携する際に実装すべきソースコードの量を低減させることができる。すなわち、ドメイン固有API290の一つの関数又はメソッド(以下、「メソッド」で統一する。)は、プラットフォームAPI280の複数のメソッドを呼び出すことにより、サーバアプリに近い機能を提供する。したがって、既製のサービスでも良いから早期に連携を実現させたいといった場合に、ドメイン固有API290は有効である。また、ドメイン固有API290を用いて、複合的な機能を有するサーバアプリの実装が行われてもよい。一方、固有のサーバアプリを実装したい場合には、プラットフォームAPI280を利用するのが好適である。
データベース層250Lは、各種の情報を記憶するデータベースを含む層である。図3において、データベース層250Lは、テナント情報記憶部251p、ユーザ情報記憶部252p、機器情報記憶部253p、プロファイル記憶部254p、ユーザ個別情報記憶部255p、及びプロファイル機器対応記憶部256p等を含む。これら各記憶部は、補助記憶装置202に含まれてもよいし、サービス提供装置20にネットワークを介して接続される外部の記憶装置等に含まれてもよい。一部の記憶部が補助記憶装置202に含まれ、他の記憶部が外部の記憶装置に含まれてもよい。
テナント情報記憶部251pは、サービス提供装置20のテナントごとの属性情報(以下、「テナント情報」という。)を記憶する。テナントとは、クラウドスキャンサービスの利用契約を締結しているユーザ単位(契約組織)をいう。例えば、テナントは、企業又はその他の団体等、一以上のユーザの集合である。本実施の形態では、一つのユーザ環境E1が一つのテナントに対応することとする。テナント情報には、各テナントを識別するためのテナントID等が含まれる。ユーザ情報記憶部252pは、テナントに属する個人ユーザ(以下、単に「ユーザ」という。)ごとの属性情報(以下、「ユーザ情報」という。)を記憶する。ユーザ情報には、各ユーザを識別するためのユーザIDや、各ユーザの認証に用いられるパスワード等が含まれる。また、ユーザが属するテナントIDも、ユーザ情報に含まれる。ユーザIDの一意性は、テナント内で保証されればよいからである。すなわち、本実施の形態において、各ユーザは、テナントID及びユーザIDの組み合わせによって識別される。
機器情報記憶部253pは、テナントにおいて利用される各機器10の属性情報(以下、「機器情報」という。)を、当該テナントのテナントIDに対応付けて記憶する。機器情報には、例えば、各機器10の機体(個体)を識別するための識別情報(以下、「機体番号」という。)等が含まれる。
プロファイル記憶部254pは、プロファイルを記憶する。プロファイルには、機器10に表示させる操作画面の構成情報や、操作画面に対する操作に応じて実行されるクラウドスキャンサービスの処理に関する設定情報等が含まれる。ユーザ個別情報記憶部255pは、プロファイルに対する、ユーザごとに個別のカスタマイズ情報(以下、「ユーザ個別情報」という。)を記憶する。すなわち、プロファイルは、各ユーザに共通の情報であるところ、ユーザ個別情報記憶部255pには、当該共通の情報に対する差分情報又は変更情報が、ユーザ個別情報として、ユーザ別に記憶される。プロファイル機器対応記憶部256pは、プロファイルと機器10との対応情報を記憶する。
図4は、プロファイルの概念モデルを説明するための図である。図4に示されるように、各機器10は、一つのプロファイルに対応付けられる。但し、1つの機器10に対して複数のプロファイルの設定が可能とされてもよいし、例えば、ユーザごとに異なるプロファイルが一つの機器10に設定されてもよい。プロファイルは、属性として認証要否を有する。認証要否は、プロファイルの利用について、ユーザ認証が必要であるか否かを示す属性である。
一つのプロファイルは、一以上のグループを含む。グループとは、操作画面において、例えば、タブウィンドウに対応する概念である。図4では、グループの具体例として、「営業」及び「開発」が示されている。これらは、それぞれ営業タブウィンドウ又は開発タブウィンドウに対応する。
一つのグループは、一以上のプロジェクト及び画面レイアウト情報を含む。プロジェクトは、例えば、タブウィンドウ上に配置されるボタン等の操作部品に対応し、クラウドスキャンサービスにおいて実行される一つの処理フローの定義に対応する概念である。図4では、プロジェクトの具体例として「伝票」、「日報」、「商品情報」及び「顧客情報」等が示されている。これらは、例えば、営業タブウィンドウに配置される各ボタンに対応する。
画面レイアウト情報は、一つのタブウィンドウ内におけるボタンの配置位置や大きさ等を示す情報である。
一つのプロジェクトは、読み取り条件、ファイル名、ストレージ連携情報、加工情報、及び全ユーザアクセス許否等を有する。読み取り条件は、スキャン時の読み取り条件である。ファイル名は、スキャンされた画像データを格納するファイルのファイル名である。ストレージ連携情報は、スキャンされた画像データに関して、いずれのオンラインストレージシステム40のいずれのフォルダを配信先とするか等を示す情報である。加工情報は、スキャンされた画像データに関して、配信前に行われる加工処理(画像処理)に関する情報である。全ユーザアクセス許否は、当該プロジェクトの利用を、全てのユーザに許可するか否かを示す情報である。換言すれば、全ユーザアクセス許否は、当該プロジェクトを利用可能なユーザが限定されるか否かを示す情報である。「全てのユーザ」とは、当該プロファイルが割り当てられた機器10が属するテナントの全てのユーザをいう。
図5は、本発明の実施の形態における機器の機能構成例を示す図である。図5において、機器10は、クライアントアプリ11及びアプリケーションプラットフォーム12等を有する。
クライアントアプリ11は、ドメイン固有API290を利用して、クラウドスキャンサービスをユーザに提供するアプリケーションである。基本的に、クライアントアプリ11は、クラウドスキャンサービスのうち、UI機能(画面の表示機能)と、機器10の制御機能等を実現する。
アプリケーションプラットフォーム12は、機器10を制御するためのAPIを備えると共に、クライアントアプリ11の実行環境を提供する。APIの形態は、例えば、関数であってもよいし、オブジェクト指向のクラス及びクラスのメソッド等であってもよい。例えば、アプリケーションプラットフォーム12は、スキャン機能に関するAPI、印刷機能に関するAPI、コピー機能に関するAPI等をクライアントアプリ11に提供する。なお、アプリケーションプラットフォーム12は、Java(登録商標)VM(Virtual Machine)を含んでいてもよい。この場合、クライアントアプリ11は、Java(登録商標)言語によって実装されてもよい。アプリケーションプラットフォーム12は、また、サービス提供装置20とクライアントアプリ11とを連携させるための機構等をも備える。具体的には、アプリケーションプラットフォーム12は、クライアントアプリ11に対して、サービス提供装置20と通信するための機構を提供する。
以下、情報処理システム1において実行される処理手順について説明する。図6は、プロジェクトの全ユーザアクセス許否に関する設定処理の処理手順の一例を説明するためのシーケンス図である。図6の処理は、テナントIDが「123」であるテナント(以下、「テナント123」という。)における管理者による管理者端末30の操作に応じて実行される。また、図6の処理の開始時において、管理者端末30には、サービス提供装置20のポータルサイトに対するログイン画面が表示されていることとする。
管理者は、ログイン画面に対して、テナントID、当該管理者のユーザID(以下、「管理者ID」という。)、及びパスワードを入力すると、管理者端末30は、入力された情報を含むログイン要求を、サービス提供装置20に送信する(S101)。当該ログイン要求は、ポータルアプリ221pによって受信される。ポータルアプリ221pは、ログイン要求に伴って受信されたテナントID、管理者ID、及びパスワードに基づく認証を、認証部241pに要求する(S102)。
認証部241pは、ユーザ情報記憶部252pを参照して、当該テナントID、当該管理者ID、及び当該パスワードに基づく認証の成否を判定する。
図7は、ユーザ情報記憶部の構成例を示す図である。図7において、ユーザ情報記憶部252pは、テナントに属するユーザごとに、当該テナントのテナントID、当該ユーザのユーザID及びパスワード、並びに当該ユーザのロール等を記憶する。ロールは、ユーザの中で管理者を識別するための項目である。すなわち、ロールには、管理者であるユーザに関して「管理者」が登録され、管理者以外のユーザに関して「利用者」が登録される。
認証部241pは、認証要求に含まれているテナントID、管理者ID、およびパスワードの組がユーザ情報記憶部252pに記憶されていれば、認証は成功であると判定する。認証部241pは、認証結果を示す応答を、ポータルアプリ221pに返信する(S103)。認証部241pからの応答が、認証の成功を示す場合、ステップS104以降が実行される。以下、認証されたテナントID及び管理者IDを、それぞれ、「ログインテナントID」、「ログイン管理者ID」という。
ステップS104において、ポータルアプリ221pは、ログインテナントIDを指定して、ユーザ情報の一覧(以下、「ユーザ一覧」という。)の取得要求を、スキャンロジック部231pに送信する。スキャンロジック部231pは、当該要求を、ユーザ管理部242pに転送する(S105)。ユーザ管理部242pは、ログインテナントIDに対応付けられているユーザ情報の一覧(ユーザ一覧)を、ユーザ情報記憶部252pより取得する(S106、S107)。ユーザ管理部242pは、取得されたユーザ一覧を、スキャンロジック部231pに返信する(S108)。スキャンロジック部231pは、当該ユーザ一覧を、ポータルアプリ221pに返信する(S109)。なお、ユーザ一覧には、各ユーザのユーザIDが含まれていればよい。
続いて、ポータルアプリ221pは、ログインテナントIDを指定して、プロファイル情報の取得要求を、スキャンロジック部231pに送信する(S110)。スキャンロジック部231pは、ログインテナントIDに対応付けられているプロファイル情報を、プロファイル記憶部254pより取得する(S111、S112)。
図8は、プロファイル記憶部の構成例を示す図である。プロファイル記憶部254pは、プロファイルごとに、テナントID、プロファイル名、認証要否、グループ、及びプロジェクト等の項目を有する。なお、プロファイル名ごとの、レコードを、以下「プロファイルレコード」という。
テナントIDは、プロファイルが属するテナントのテナントIDである。プロファイル名は、プロファイルの名前である。認証要否は、プロファイルの利用について、ユーザ認証が必要であるか否かを示す属性である。「要」は、ユーザ認証が必要であること示す。すなわち、「要」は、認証されたユーザのみが、当該プロファイルを利用可能であることを示す。「否」は、ユーザ認証が不要であることを示す。すなわち、「否」は、認証されていないユーザも、当該プロファイルを利用可能であることを示す。
グループは、プロファイルに含まれるグループである。一つのプロファイルに対するレコード内に、グループごとのレコード(以下、「グループレコード」という。)が形成される。プロジェクトは、グループに含まれるプロジェクトである。一つのグループレコード内に、プロジェクトごとのレコード(以下、「プロジェクトレコード」という。)が形成される。
一つのグループレコードは、グループ名及びレイアウト情報及び1以上のプロジェクトレコードを含む。グループ名は、グループの識別名であり、グループに対応するタブウィンドウのタブに表示されるラベルでもある。レイアウト情報は、グループに対応するタブウィンドウ内における各ボタンの配置情報である。
一つのプロジェクトレコードは、プロジェクトID、ラベル、読み取り条件、ファイル名、加工情報、ストレージ連携情報、及び全ユーザアクセス許否等を含む。プロジェクトIDは、プロジェクトごとの識別情報である。本実施の形態において、一つのテナント内におけるプロジェクトIDは、プロファイルを跨いで一意であるとする。したがって、テナントID及びプロジェクトIDの組み合わせによって、一つのプロジェクトが特定される。ラベルは、プロジェクトが対応するボタンのラベルである。本実施の形態において、ラベルは、ストレージ連携情報のフォルダ名に一致する。読み取り条件、ファイル名、加工情報、ストレージ連携情報、及び全ユーザアクセス許否については、図4において説明した通りである。なお、ファイル名には、例えば、固定的な文字列以外に、日時等、動的な値を設定することも可能である。例えば、<日時>は、スキャンされた日時を示す文字列がファイル名とされることを示す。また、全ユーザアクセス許否は、「YES」又は「NO」の値を採りうる。「YES」は、全ユーザによるプロジェクトの利用が許可されること、なわち、プロジェクトを利用可能なユーザが限定されないことを示す。「NO」は、全ユーザによるプロジェクトの利用が許可されないこと、すなわち、プロジェクトを利用可能なユーザが限定されることを示す。
ステップS112では、ログインテナントIDに対応付けられている全てのプロファイルレコードの内容(以下、プロファイルレコードの内容を「プロファイル情報」という。)が取得される。スキャンロジック部231pは、取得されたプロファイル情報を、ポータルアプリ221pに返信する(S113)。
ポータルアプリ221pは、ステップS109において取得されたユーザ一覧と、ステップS113において取得されたプロファイル情報とに基づいて、プロファイルに関する設定画面群を表示させる表示データを生成する。当該表示データは、例えば、HTML(HyperText Markup Language)形式等、汎用的な形式を有するデータであってもよい。ポータルアプリ221pは、生成された表示データを、管理者端末30に返信する(S114)。管理者端末30は、当該表示データに基づいて、プロファイルに関する設定画面群のうちのメイン画面を表示する。
図9は、メイン画面の表示例を示す図である。図9に示されるメイン画面510は、グループ選択領域511及びプロジェクト表示領域512等を含む。
グループ選択領域511には、第一階層のノードにプロファイルが割り当てられ、第二階層のノードに各プロファイルに属するグループが割り当てられたツリー構造が表示される。
例えば、グループ選択領域511において、いずれかのプロファイルに対応するノードが右クリックされると、認証要否の「要」又は「否」を選択肢とするコンテキストメニューが表示される。当該コンテキストメニューの操作によって、プロファイルに対する認証要否の設定が行われる。
プロジェクト表示領域512には、グループ選択領域511において選択されたグループに属するプロジェクトごとに、プロジェクト情報が表形式で表示される。すなわち、当該表における1行は、一つのプロジェクトに対応する。なお、当該表の「順序変更」の列における「▼」又は「▲」を操作することで、行の入れ替えが可能である。行の並び順は、プロジェクトに対応するボタンの表示順に対応する。当該表におけるプロジェクトの並び順は、プロジェクト記憶部におけるプロジェクトレコードの並び順に一致する。
プロジェクト表示領域512において、いずれかのプロジェクトが選択され、所定の操作が行われると、表示対象の画面は、当該プロジェクトを編集対象とするアクセス許可ユーザ選択画面520に遷移する。所定の操作は、例えば、右クリックで表示されるコンテキストメニュー内のメニュー項目の選択であってもよい。または、プロジェクトの選択によって、当該プロジェクトの詳細設定画面が表示され、当該詳細設定画面において、所定の表示部品が操作されるとアクセス許可ユーザ選択画面520が表示されてもよい。
図10は、アクセス許可ユーザ選択画面の表示例を示す図である。図10において、アクセス許可ユーザ選択画面520は、トグルボタン521及びユーザ選択領域522等を含む。トグルボタン521は、編集対象のプロジェクトについて、全ユーザによる利用を許可するか否かを選択させるためのトグルボタンである。すなわち、トグルボタン521の「する」は、全ユーザによる利用を許可する場合に選択される。トグルボタン521の「しない」は、全ユーザによる利用を許可しない場合に選択される。トグルボタン521による設定は、プロジェクトの全ユーザアクセス許否に対応する。
ユーザ選択領域522は、トグルボタン521において「しない」が選択された場合に操作可能となる。ユーザ選択領域522は、リストボックス522a、リストボックス522b、ボタン522c、及びボタン522d等を含む。リストボックス522aは、ステップS109において取得されたユーザ一覧に含まれるユーザIDの一覧が選択候補として表示される。すなわち、リストボックス522aには、ログインテナントIDに係るテナントに属する全ユーザのユーザIDが表示される。リストボックス522aにおいて一以上のユーザIDが選択され、ボタン522cが押下されると、選択されたユーザIDが、リストボックス522bに移動する。リストボックス522bは、編集対象のプロジェクトの利用が許可されるユーザのユーザIDを含む。リストボックス522bに移動されたユーザIDに係るユーザを、以下「アクセス許可ユーザ」という。なお、リストボックス522bにおいて一以上のユーザIDが選択され、ボタン522dが押下されると、選択されたユーザIDが、リストボックス522aに移動する。
トグルボタン521及びユーザ選択領域522における設定が完了し、OKボタン523が押下されると、アクセス許可ユーザ選択画面520における設定内容が保持され、表示対象の画面は、メイン画面510に遷移する。
なお、アクセス許可ユーザ選択画面520以外の画面において、プロジェクトの他の項目の編集が可能とされてもよい。
メイン画面510において、OKボタン513が押下されると、管理者端末30は、メイン画面510及びアクセス許可ユーザ選択画面520等における設定内容を含む、プロファイルの更新要求を、サービス提供装置20に送信する(S115)。当該設定内容には、アクセス許可ユーザ選択画面520のリストボックス522bに含まれているユーザIDの一覧(以下、「アクセス許可ユーザ一覧」という。)も含まれる。ポータルアプリ221pは、当該更新要求を受信すると、当該更新要求を、スキャンロジック部231pに転送する(S116)。
スキャンロジック部231pは、当該更新要求を受信すると、当該更新要求に含まれている設定内容に基づいて、プロファイル記憶部254pに記憶されているプロファイル情報を更新する(S117)。例えば、認証可否の値等が更新される。また、プロジェクトレコードの全ユーザアクセス許否の値が更新される。具体的には、図8は、プロファイル名が「A4pf」であるプロファイルの認証要否が「要」に設定された例に対応する。また、図8は、プロジェクトIDが、「P001」、又は「P003」であるプロジェクトの全ユーザアクセス許否が、「No」に設定された例に対応する。すなわち、図8は、当該プロジェクトに関して、アクセス許可ユーザ選択画面520のトグルボタン521において、「しない」が選択された例に対応する。以下、各プロジェクトを、プロジェクトIDごとに区別する場合、各プロジェクトは、プロジェクト<プロジェクトID>の形式で記載される。例えば、プロジェクトIDが「P001」のプロジェクトは、プロジェクトP001と記載される。
続いて、スキャンロジック部231pは、当該編集結果に含まれているアクセス許可ユーザ一覧に基づいて、ユーザ個別情報記憶部255pの内容を更新する(S118)。
図11は、ユーザ個別情報記憶部の構成例を示す図である。図11において、ユーザ個別情報記憶部255pは、テナントID、プロジェクトID、ユーザID、読み取り条件、及びファイル名等の項目を有する。
テナントIDは、ユーザごとにカスタマイズされるプロジェクトが属するテナントのテナントIDである。プロジェクトIDは、ユーザごとにカスタマイズの対象とされるプロジェクトのプロジェクトIDである。ユーザIDは、プロジェクトIDに係るプロジェクトについて、カスタマイズが行われるユーザのユーザIDである。読み取り条件及びファイル名は、プロジェクトIDに係るプロジェクトについて、ユーザIDに係るユーザに固有の読み取り条件又はファイル名である。なお、図11においては省略されているが、加工情報及びストレージ連携情報等についても、カスタマイズ可能とされてもよい。
ステップS118では、アクセス許可ユーザ選択画面520において編集対象とされたプロジェクトごとに、各アクセス許可ユーザのユーザIDに対応するレコードが、ユーザ個別情報記憶部255pに追加される。更に、追加された各レコードのテナントID、プロジェクトID、及びユーザIDの各項目に値が記憶される。各レコードのテナントIDの項目には、ログインテナントIDが記憶される。プロジェクトIDの項目には、アクセス許可ユーザ選択画面520において編集対象とされた各プロジェクトのプロジェクトIDが記憶される。ユーザIDの項目には、当該プロジェクトに係るアクセス許可ユーザ選択画面520において、リストボックス522bに移動されたユーザIDが記憶される。一方、追加された各レコードの読み取り条件及びファイル名等の項目には、この時点では値は記憶されない。すなわち、アクセス許可ユーザごとのカスタマイズ情報であるユーザ個別情報は、後段の処理において、各アクセス許可ユーザによって登録される。
続いて、ユーザ個別情報の登録処理について説明する。図12は、ユーザ個別情報の登録処理の処理手順の一例を説明するためのシーケンス図である。図12の処理は、テナント123に属するユーザAによる機器10の操作に応じて実行される。ユーザAとは、ユーザIDが「A」であるユーザをいう。他のユーザの呼び方についても、同様の命名規則に従う。
ステップS201において、機器10は、ユーザAによる操作指示に応じてクライアントアプリ11を起動させる。クライアントアプリ11は、起動されると、ユーザ認証の要否の問い合わせを、サービス提供装置20の認証部241pに送信する(S202)。当該問い合わせには、機器10の認証情報として、当該機器10の機体番号及びテナントIDが含められる。なお、当該機体番号及びテナントIDは、例えば、予め機器10に記憶されている。
認証部241pは、当該問い合わせに応じ、当該問い合わせに含まれている機体番号及びテナントIDに基づいて、問い合わせ元の機器10について認証を行う(S203)。当該認証は、例えば、当該機体番号が、当該テナントIDに対応付けられて機器情報記憶部253pに記憶されていれば成功する。認証に成功した場合、ステップS204以降が実行される。以下、ステップS203において認証された機体番号、テナントIDを、それぞれ、対象機体番号、対象テナントIDという。
ステップS204及びS205において、認証部241pは、対象機体番号に対応するプロファイル名を、プロファイル機器対応記憶部256pより取得する。
図13は、プロファイル機器対応記憶部の構成例を示す図である。図13に示されるように、プロファイル機器対応記憶部256pは、機体番号に対応付けてプロファイル名を記憶する。プロファイル機器対応記憶部256pにおける機体番号とプロファイル名との対応付けは、図4における、機器10とプロファイルとの対応関係を実現するものである。
続いて、認証部241pは、取得されたプロファイル名に係るプロファイルの認証要否の項目の値を、プロファイル記憶部254p(図8)より取得する(S206、S207)。なお、本実施の形態では、プロファイル名は、テナントを跨いで一意であるとする。但し、プロファイル名の一意性が、テナント内でのみ保証される場合、ステップS206及びS207では、対象テナントID及び取得されたプロファイル名に係るプロファイルの認証要否の項目の値が取得されればよい。
続いて、認証部241pは、取得された値(「要」又は「否」)を、クライアントアプリ11に返信する(S208)。返信された値が「要」である場合、クライアントアプリ11は、機器10の操作パネルにログイン画面を表示させる(S209)。
ユーザAによって、ログイン画面に対して、ユーザID及びパスワードが入力されると(S210)、クライアントアプリ11は、当該ユーザID及びパスワードと、機器10に記憶されているテナントIDとを含むユーザ認証要求を、認証部241pに送信する(S211)。認証部241pは、ユーザ認証要求に含まれているテナントID、ユーザID、及びパスワードの組が、ユーザ情報記憶部252pに記憶されていれば、ユーザ認証は成功であると判定する。認証に成功した場合、認証部241pは、認証チケットを生成する。生成された認証チケットは、ユーザ管理部242pによって、認証に成功したテナントID及びユーザIDに関連付けられて、例えば、メモリ装置203に記憶される。なお、認証チケットは、認証されたユーザであることを示すデータであり、例えば、Cookieによって実装されてもよい。また、認証チケットは有効期限を有していてもよい。続いて、認証部241pは、認証チケットをクライアントアプリ11に返信する(S212)。認証チケットに対応するユーザIDに係るユーザ(すなわち、認証に成功したユーザ)を、以下「ログインユーザ」という。なお、認証に失敗した場合、認証チケットは生成されず、認証に失敗したことを示す応答が、クライアントアプリ11に返信される。この場合、ステップS213以降は実行されない。
認証チケットが返信されると、クライアントアプリ11は、プロファイル名、認証チケット、及び機体番号を含む、プロファイル情報の取得要求をスキャンロジック部231pに送信する(S213)。なお、プロファイル名は、過去に、当該機器10においてプロファイル情報の取得(ダウンロード)が行われた場合に、プロファイル情報の取得要求に含まれる。したがって、当該機器10において初めてプロファイル情報の取得が行われる場合、プロファイル名は、当該取得要求に含まれない。この場合、当該取得要求を受信したスキャンロジック部231pは、ステップS214の実行前において、当該取得要求に含まれる機体番号に対応付けられているプロファイル名を、プロファイル機器対応記憶部256pより取得する。なお、ステップS213以降におけるクライアントアプリ11からの各要求には、認証チケットが含まれており、当該認証チケットの正当性が、ユーザ管理部242pによって毎回確認されるが、当該確認処理については、便宜上、シーケンス図においては省略されている。当該確認処理では、当該認証チケットに対応付けられてユーザIDがメモリ装置203に記憶されていること、当該認証チケットの有効期限が切れていないこと等が確認される。認証チケットの正当性が確認されない場合、クライアントアプリ11からの要求は拒否される。
続いて、スキャンロジック部231pは、プロファイル情報の取得要求に含まれるプロファイル名に係るプロファイル(以下、「対象プロファイル」という。)に含まれるプロジェクト情報のうち、共通プロジェク情報を、プロファイル記憶部254p(図8)より取得する(S214、S215)。共通プロジェクト情報とは、全ユーザアクセス許否の値が「YES」である(すなわち、全ユーザが利用可能な)プロジェクトの情報である。したがって、図8の例によれば、プロジェクトP002及びプロジェクトP004のプロジェクト情報が、共通プロジェクト情報に該当する。なお、ステップS215において取得される共通プロジェクト情報は、当該共通プロジェクト情報に係るプロジェクトが属するグループの情報(以下、「グループ情報」という。)をも含む。
続いて、スキャンロジック部231pは、ログインユーザのテナントID及びユーザIDの取得要求を、ユーザ管理部242pに送信する(S216)。当該取得要求は、認証チケットを含む。ユーザ管理部242pは、当該取得要求に含まれる認証チケットに対応付けられてメモリ装置203に記憶されているテナントID及びユーザIDを、スキャンロジック部231pに返信する(S217)。
続いて、スキャンロジック部231pは、当該テナントID及びユーザIDに係るユーザ個別情報を、ユーザ個別情報記憶部255p(図11)より取得する(S218、S219)。続いて、スキャンロジック部231pは、対象プロファイルに含まれるプロジェクト情報のうち、ログインユーザが利用可能な限定プロジェク情報を、プロファイル記憶部254p(図8)より取得する(S220、S221)。限定プロジェクト情報とは、全ユーザアクセス許否の値が「NO」である(すなわち、利用可能なユーザが限定される)プロジェクトの情報である。したがって、図8の例によれば、プロジェクトP001及びプロジェクトP003のプロジェクト情報が、限定プロジェクト情報に該当する。また、ログインユーザに利用可能な限定プロジェクト情報とは、当該プロジェクト情報のプロジェクトIDが、ログインユーザのテナントID及びユーザIDに対応付けられてユーザ個別情報記憶部255pに記憶されているプロジェクト情報をいう。なお、ステップS221において取得される限定プロジェクト情報は、当該プロジェクト情報に係るプロジェクトが属するグループのグループ情報をも含む。
続いて、スキャンロジック部231pは、共通プロファイル情報及び限定プロファイル情報を統合し、更に、統合結果に対してユーザ個別情報が上書き(適用)されたプロファイル情報を生成する(S222)。但し、限定プロファイル情報に対してユーザ個別情報が上書きされた結果と、共通プロファイル情報とが統合されることにより、プロファイル情報が生成されてもよい。すなわち、生成されるプロファイル情報の内容が同じであれば、生成手順は問わない。生成されるプロファイル情報のプロファイル名は、対象プロファイルのプロファイル名となる。また、ユーザ個別情報のうち、空欄となっている項目(例えば、図11の読み取り条件)については、限定プロファイル情報の値が有効となる。続いて、スキャンロジック部231pは、生成されたプロファイル情報を、クライアントアプリ11に返信する(S223)。
クライアントアプリ11は、受信されたプロファイル情報に基づいて、クラウドスキャンサービスの操作画面を生成する(S224)。続いて、クライアントアプリ11は、当該操作画面を、機器10の操作パネルに表示させる(S225)。なお、クライアントアプリ11は、当該プロファイル情報を、機器10の記憶装置に記憶しておく。例えば、ここで記憶されたプロファイル情報のプロファイル名が、次回のステップS213におけるプロファイル情報の取得要求に含められる。
図14は、プロファイル情報に基づいて表示される操作画面の一例を示す図である。図14には、図8に示される、プロファイル名が「A4pf」であるプロファイルが対象プロファイルである場合に、ログインユーザがユーザA、ユーザB、又はそれ以外であるかに応じて表示される操作画面の例が示されている。なお、対象プロファイルにおいて、プロジェクトP002及びP004のプロジェクト情報が、共通プロジェクトに該当し、プロジェクトP001及びP003のプロジェクト情報が、限定プロジェクトに該当する。
操作画面610aは、ユーザAがログインユーザである場合に表示される操作画面である。すなわち、図11より、ユーザAが利用可能な限定プロジェクトは、プロジェクトP001及びP003である。したがって、操作画面610aには、対象プロファイルに属する全てのプロジェクトに対応するボタンが表示される。
操作画面610bは、ユーザBがログインユーザである場合に表示される操作画面である。すなわち、図11より、ユーザBが利用可能な限定プロジェクトは、プロジェクトP001である。換言すれば、ユーザBは、プロジェクトP003を利用することはできない。したがって、操作画面610bには、プロジェクトP003を除く各プロジェクト対応するボタンが表示される。
操作画面610cは、ログインユーザが、ユーザA及びユーザBのいずれでもない場合に表示される操作画面である。すなわち、図11より、斯かるログインユーザが利用可能な限定プロジェクトは無い。したがって、操作画面610cには、プロジェクトP001及びプロジェクトP003を除く各プロジェクト対応するボタンが表示される。なお、ここでは、ログインユーザは、ユーザAであるため、操作画面610aが表示される。
操作画面610aにおいて、いずれかのプロジェクトのボタンが選択された状態で、更新ボタン611が押下されると、クライアントアプリ11は、選択されたプロジェクトを編集対象とする設定画面を操作パネルに表示させる。
図15は、設定画面の表示例を示す図である。図15において、設定画面620は、編集対象のプロジェクトの、ストレージ連携情報、ファイル名、及び読み取り条件等を、クラウドスキャンサービスのジョブの実行時に変更可能とするためのユーザインタフェースを有する。設定画面620の初期状態は、受信されたプロファイル情報に従う。詳細ボタン621が押下されると、クライアントアプリ11は、ストレージ連携情報を設定させるための画面を操作パネルに表示させる。また、テキストボックス622には、ファイル名を示す文字列の入力が可能である。また、ボタン623が押下されると、クライアントアプリ11は、読み取り条件を設定させるための画面(以下、「読み取り条件設定画面」という。)を操作パネルに表示させる。
図16は、読み取り条件設定画面の表示例を示す図である。読み取り条件設定画面630では、読み取り条件を構成する各項目の値を設定可能である。読み取り条件設定画面630の初期状態は、受信されたプロファイル情報に従う。一部又は全部の項目の値が変更され、OKボタン630が押下されると、読み取り条件設定画面630における設定内容が、機器10のメモリ内に記憶されて、表示対象の画面が設定画面620に遷移する。
設定画面620において、戻るボタン624が押下されると、表示対象の画面は操作画面610aに遷移する。この状態でジョブが開始されると、今回のジョブに限って、設定画面620及び読み取り条件設定画面630等において設定された情報が、受信されたプロファイル情報に対して優先される。
一方、設定画面620において、登録ボタン625が押下されると(S231)、クライアントアプリ11は、ユーザ個別情報の登録要求を、スキャンロジック部231pに送信する(S232)。当該要求には、認証チケット、ステップS223において受信されたプロファイル情報のプロファイル名、及び設定画面620及び読み取り条件設定画面630等における設定情報が含まれる。
当該登録要求に応じ、スキャンロジック部231pは、ステップS216及びS217と同様に、当該登録要求に含まれる認証チケットに対応するテナントID及びユーザIDを、ユーザ管理部242pより取得する(S233、S234)。続いて、スキャンロジック部231pは、ユーザ個別情報記憶部255pにおいて、取得されたテナントID及びユーザIDに係るレコードに、当該登録要求に含まれる設定情報を記憶する(S235)。
図17は、設定情報が登録されたユーザ個別情報記憶部の例を示す図である。図17では、プロジェクトP001に関して、ユーザAについて読み取り条件が登録された例が示されている。
続いて、クラウドスキャンサービスのジョブの実行時の処理手順について説明する。図18は、クラウドスキャンサービスのジョブの実行時の処理手順の一例を説明するためのシーケンス図である。図18の処理は、ユーザAによる機器10の操作に応じて実行される。また、図18の処理は、図12の処理を実行させたユーザAが、改めて機器10を操作する際に実行される処理であるとする。したがって、ユーザ個別情報記憶部255pは、図17に示した状態であるとする。
まず、図12において説明したステップS201〜S225が実行される。その結果、機器10の操作パネルには、操作画面610aが表示される。なお、図18では、ステップS219において取得されるユーザ個別情報には、プロジェクトP001の読み取り条件に、図17に示される値が記憶されている。したがって、当該値が、プロジェクトP001に係るプロジェクト情報に対して上書きされた結果が、ステップS223においてクライアントアプリ11によって受信される。
ユーザAが、操作画面610aにおいて、プロジェクトP001に対応するボタンを選択した状態で、機器10に原稿をセットし、スキャンの開始指示を入力すると(S301)、クライアントアプリ11は、プロジェクトP001の読み取り条件に従った原稿のスキャンを機器10に実行させる(S302)。ここで、プロジェクトP001の読み取り条件は、ユーザAのユーザ個別情報(図17)によって上書きされている。したがって、ステップS302におけるスキャンは、プロジェクトP001に対するユーザAのユーザ個別情報が示す読み取り条件にしたがって実行される。原稿からスキャンされた画像データを、以下「スキャン画像」という。
続いて、クライアントアプリ11は、スキャン画像を、認証チケット、機体番号、及びプロジェクト情報と共に、スキャンロジック部231pにアップロードする(S303)。プロジェクト情報は、操作画面610aにおいて選択されたプロジェクトP001のプロジェクト情報である。但し、設定画面620等を介して、変更が行われている場合、変更が反映されたプロジェクト情報がアップロードされる。なお、ステップS303において、プロジェクト情報を含むアップロードは、当該プロジェクト情報に含まれるプロジェクトIDに対応した処理の実行要求(処理要求)の一例である。
続いて、スキャンロジック部231pは、アップロードされたスキャン画像に関して、アップロードされたプロジェクト情報に従った処理を実行する(S304)。例えば、当該プロジェクト情報の加工情報においてOCR(Optical Character Recognition)が指定されていれば、スキャン画像に対してOCR処理が実行される。続いて、スキャンロジック部231pは、当該プロジェクト情報に従った処理の結果として生成されるデータを、当該プロジェクト情報のストレージ連携情報に従った配信先に配信する(S305)。該プロジェクト情報に従った処理の結果として生成されるデータとは、例えば、スキャン画像に対してOCR処理が実行された場合は、OCR処理の結果として出力されるテキストデータである。
なお、図18の処理は、同じプロファイルが割り当てられている機器10であれば、いずれの機器10からも同じプロファイル情報に基づいて実行される。プロファイルは、サービス提供装置20において記憶されており、各機器10には、プロファイル機器対応記憶部256pにおいて当該機器10に割り当てられているプロファイル情報がダウンロードされるからである。したがって、ユーザAは、同一のプロファイルが割り当てられた各機器10のいずれを使用した場合も、同一のユーザ個別情報が同様に適用された状態で、ジョブが実行させることができる。したがって、ユーザAは、機器10ごとに、ユーザ個別情報の設定を行う必要はない。この点は、他のユーザについても同様である。
続いて、認証要否が「否」であるプロファイルが割り当てられている機器10が操作対象とされた場合に実行される処理手順について説明する。
図19は、認証が不要なプロファイルが割り当てられた機器に係るクラウドスキャンサービスのジョブの実行時の処理手順の一例を説明するためのシーケンス図である。図19中、図18(図12)と同一又は対応するステップには同一符号を付している。
図19では、ステップS201〜S207が便宜上省略されている。ステップS208において、認証部241pは、認証要否が「否」であることを示す応答を、クライアントアプリ11に返信する。
クライアントアプリ11は、認証が不要であることに応じ、テナントID及び機体番号を含む簡易認証要求を、認証部241pに送信する(S211)。すなわち、認証が不要である場合、ログイン画面の表示、ログイン画面に対するユーザID及びパスワードの入力等は行われない。また、ユーザ認証の代わりに簡易認証が、認証部241pに対して要求される。簡易認証は、実質的に、図12のステップS203において説明した機器認証と同じである。
認証部241pは、簡易認証要求に指定されているテナントID及び機体番号が、機器情報記憶部253pに記憶されていれば、簡易認証は成功であると判定する。簡易認証に成功すると、認証部241pは、簡易認証チケットをクライアントアプリ11に返信する(S212)。なお、ユーザ管理部242pは、簡易認証チケットとテナントID及び機体番号とを対応付けて、例えば、メモリ装置203に記憶しておく。
続いて、クライアントアプリ11は、プロファイル名、簡易認証チケット、及び機体番号を含む、プロファイル情報の取得要求をスキャンロジック部231pに送信する(S213)。続いて、スキャンロジック部231pは、プロファイル情報の取得要求に含まれるプロファイル名に係るプロファイルに含まれるプロジェクト情報のうち、共通プロジェク情報を、プロファイル記憶部254p(図8)より取得する(S214、S215)。
続いて、スキャンロジック部231pは、共通プロジェクト情報が構成するプロファイル情報を、クライアントアプリ11に返信する(S223)。すなわち、スキャンロジック部231pは、プロファイル情報の取得要求に含まれている認証チケットが簡易認証チケットである場合は、ステップS216〜S222は実行せずに、ステップS223を実行する。図12又は図18における認証チケットと簡易認証チケットとの区別は、例えば、それぞれの構成が相互に異なることに基づいて行われてもよい。又は、それぞれの構成が同じである場合、それぞれに対応付いている情報の違いに基づいてそれぞれが区別されてもよい。すなわち、図12又は図18における認証チケットであれば、テナントID及びユーザIDに対応付いている。一方、簡易認証チケットであれば、テナントID及び機体番号に対応付いている。
ステップS224以降は、図12又は図18等において説明した処理手順が実行される。但し、操作画面としては、操作画面610c(図14)が表示される。すなわち、操作画面には、共通プロジェクト情報に係るプロジェクトに対応するボタンが表示される。また、図19では、図12のステップS225以降は実行することはできない。すなわち、認証要否が「否」であるプロファイルに関しては、ユーザ個別情報を登録することはできない。ユーザの認証が行われなければ、サービス提供装置20は、機器10の操作者のユーザIDを特定することができず、当該操作者に対してユーザ個別情報を対応付けることができないからである。
上述したように、本実施の形態によれば、ユーザごとにユーザ個別情報を登録することができる。また、機器10にプロファイル情報がダウンロードされる際には、ログインユーザに係るユーザ個別情報が、プロファイルに対して上書きされる。すなわち、ログインユーザに適したプロファイル情報が、機器10にダウンロードされる。したがって、ユーザに適した処理の実行を可能とすることができる。
なお、ユーザ認証が行われた場合は、ユーザ別に、OCR等の加工処理について、利用制限が行われてもよい。例えば、ユーザごとに、利用可能な加工処理が設定されたり、各加工処理について利用可能な数量が設定されたりしてもよい。利用可能な数量は、例えば、OCR処理であれば、ページ数であってもよい。制限の範囲外の要求が行われた場合、その旨を示すメッセージが、機器10の操作パネルに表示されてもよい。
なお、プロファイル機器対応記憶部256p及びプロファイル記憶部254pと、ユーザ個別情報記憶部255pとは、同一の記憶装置(例えば、補助記憶装置202)に含まれてもよいし、別々の記憶装置に含まれてもよい。また、プロファイル機器対応記憶部256p及びプロファイル記憶部254pと、ユーザ個別情報記憶部255pとは、サービス提供装置20にネットワークを介して接続される外部の記憶装置に含まれてもよい。これらの記憶部が外部の記憶装置に含まれることで、例えば、サービス提供装置20をエリアごと(例えば、国ごと)に設置した場合に、これらの記憶部に記憶される情報について、一元的に管理を行うことができる。又は、プロファイル機器対応記憶部256p及びプロファイル記憶部254pは、補助記憶装置202に含まれ、ユーザ個別情報記憶部255pは、外部の記憶装置に含まれてもよい。この場合、機密性の高いユーザ個別情報を、一元的に管理することができる。
また、本実施の形態では、画像形成装置が機器10の具体例である場合について説明したが、例えば、携帯電話、スマートフォン、タブレット型端末、PC(Personal Computer)、又はデジタルカメラ等が、サービス提供装置20に対する画像データの入力元(送信元)であってもよい。
なお、本実施の形態において、サービス提供装置20は、情報処理装置又は情報処理システムの一例である。機体番号は、機器識別情報の一例である。プロジェクトIDは、処理識別情報の一例である。プロジェクト情報は、設定情報の一例である。プロファイル機器対応記憶部256p及びプロファイル記憶部254pは、第一の記憶部の一例である。ユーザIDは、ユーザ識別情報の一例である。ユーザ個別情報は、変更情報の一例である。ユーザ個別情報記憶部255pは、第二の記憶部の一例である。スキャンロジック部231pは、処理制御部の一例である。テナントIDは、組織識別情報の一例である。機器情報記憶部253pは、第三の記憶部の一例である。プロジェクト情報の全アクセスユーザ許否は、処理識別情報に係る処理を利用可能なユーザが限定されるか否かを示す情報の一例である。テナントは、契約組織の一例である。
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。