以下、図面に基づいて本発明の実施の形態を説明する。図1に示される情報処理システム1において、サービス提供環境E2とユーザ環境E1とは、インターネット等の広域的なネットワークを介して通信可能とされている。また、サービス提供装置20と仲介装置50とは、LAN(Local Area Network)又はインターネット等のネットワークを介して通信可能とされている。更に、サービス提供装置20及び仲介装置50と、オンラインストレージシステム40とは、LAN又はインターネット等のネットワークを介して通信可能とされている。
サービス提供環境E2は、ネットワークを介してクラウドサービスを提供する組織におけるシステム環境である。なお、本実施の形態では、クラウドサービスを具体例に採用して説明するが、ASP(Application Service Provider)によって提供されるサービスやWebサービス等、ネットワークを介して提供されるサービスに関して、本実施の形態が適用されてもよい。
サービス提供環境E2は、サービス提供装置20を有する。サービス提供装置20は、ネットワークを介して所定のサービスを提供する。サービス提供装置20が提供するサービスの一つとして、「ScanToStorageサービス」が有る。本実施の形態では、ScanToStorageサービスに関して説明する。ScanToStorageサービスとは、ユーザ環境E1の機器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によって提供されるScanToStorageサービスにおいて、画像データの保存先の候補となる。
仲介装置50は、サービス提供装置20による、オンラインストレージシステム40へのデータのアップロードを仲介するコンピュータである。具体的には、各仲介装置50は、オンラインストレージシステム40ごとに固有又は個別のインタフェース(例えば、API(Application Program Interface))の違いを吸収し、共通化されたインタフェース(例えば、API)を、サービス提供装置20に提供する。その結果、サービス提供装置20は、各オンラインストレージシステム40に固有のインタフェースを知らなくても、仲介装置50を介して、各オンラインストレージシステム40にデータをアップロードすることができる。なお、各仲介装置50は、連携又は対応するオンラインストレージシステム40が相互に異なる。但し、仲介装置50間において、連携するオンラインストレージシステム40が重複していてもよい。例えば、同一のオンラインストレージシステム40にデータをアップロードする仲介装置50が、ScanToStorageサービスを利用するユーザ(組織)ごとに設けられてもよい。このような形態は、例えば、データのアップロードに際して、ユーザごとに固有の処理を仲介装置50において実行させたい場合に有効である。
なお、一つの仲介装置50が、複数のオンラインストレージシステム40と連携してもよい。また、仲介装置50とサービス提供装置20とは、一つのコンピュータ又は一つのコンピュータシステムによって実現されてもよい。また、仲介装置50は、サーバ環境E2又はユーザ環境E1に設置されてもよい。また、仲介装置50は、サービス提供装置20と異なる国に設置されてもよい。そうすることにより、サービス提供装置20が、国ごとや地域ごとに設置される場合であっても、複数のサービス提供装置20が、或る国に設置された仲介装置50を共用することができる。
図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が実行する処理は、複数のコンピュータに分散されて実行されてもよい。また、仲介装置50についても、図2に示されるようなハードウェアを有していても良いし、図2に示されるようなハードウェアを有する複数のコンピュータによって構成されてもよい。
図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は、サーバアプリ210及びプラットフォーム220等のソフトウェアを含む。これらは、サービス提供装置20にインストールされる一以上のプログラムによって構成され、CPU204に所定の処理を実行させる。
サービス提供装置20は、また、ユーザ情報記憶部231、機器情報記憶部232、機器アプリ記憶部233、プロファイル記憶部234、プロファイル機器対応記憶部235、及びアップロード情報記憶部236等を利用する。これら各記憶部は、補助記憶装置202、又はサービス提供装置20にネットワークを介して接続される記憶装置等を用いて実現可能である。
サーバアプリ210は、サービス提供装置20が提供するサービスを実現するアプリケーションプログラムである。但し、サーバアプリ210単独では、サービスは完結されないこととする。サーバアプリ210と機器10との連携によって、サービスは完結される。更に、オンラインストレージ等、他のクラウドサービス等との連携によって、完結されるサービスもある。なお、「サーバアプリ」という用語は、サービス提供装置20側のアプリケーションプログラムを、サーバアプリ210と連携するために機器10側にインストールされる必要の有るアプリケーションプログラム(例えば、後述されるスキャン機器アプリ125)と区別するために便宜上用いた用語である。
図4では、サーバアプリ210の一例として、スキャンサーバアプリ211が示されている。スキャンサーバアプリ211は、ScanToStorageサービスに関する処理を実行するサーバアプリ210である。
プラットフォーム220は、複数のサーバアプリ210に共通する機能、又は複数のサーバアプリ210から利用される基本機能等を含む。図4において、プラットフォーム220は、設定登録部221、機器通信部222、認証処理部223、セッション管理部224、ジョブ処理部225、OCR処理部226、アップロード処理部227、ストレージ連携部228、及び連携元判定部229等を含む。これら各部の機能は、プラットフォームAPI240を介してサーバアプリ210に公開されている。換言すれば、サーバアプリ210は、プラットフォームAPI240によって公開されている範囲においてこれら各部の機能を利用可能である。
設定登録部221は、ScanToStorageサービス等、サービス提供装置20が提供するサービスの利用開始時に必要とされる設定登録処理を実行する。設定登録部221によって、ユーザ情報記憶部231、機器情報記憶部232、プロファイル記憶部234、プロファイル機器対応記憶部235に対して情報が登録される。
ユーザ情報記憶部231は、サービス提供装置20が提供するサービスのユーザに関する情報を記憶する。機器情報記憶部232は、ユーザにおけるシステム環境(すなわち、ユーザ環境E1)において、サービス提供装置20が提供するサービスと連携させる機器10に関する情報を記憶する。すなわち、ScanToStorageサービス等、サービス提供装置20によって提供されるサービスは、ユーザ環境E1における機器10との連携によって実現される。
機器アプリ記憶部233は、サーバアプリ210と機器10とを連携させるために、機器10にインストールされる必要の有るアプリケーションプログラム(以下、「機器アプリ」という。)を記憶する。プロファイル記憶部234は、プロファイルを記憶する。プロファイルには、機器アプリの操作画面の構成情報や、操作画面に対する操作に応じて実行される処理に関する情報等が含まれる。プロファイル機器対応記憶部235は、プロファイルと機器10との対応情報を記憶する。すなわち、同一の機器アプリに対する操作画面に関して、機器10ごとに異なるプロファイルを対応付けることができる。
機器通信部222は、機器10との通信を制御する。認証処理部223は、管理者端末30のユーザ又は機器10のユーザの認証等を行う。また、認証処理部223は、例えば、ScanToStorageサービスの実行時において、オンラインストレージシステム40に対するログイン処理を代行する。セッション管理部224は、サービス提供装置20と機器10との連携時において、両者の通信のセッションを管理する。
ジョブ処理部225は、例えば、OCR処理部226やアップロード処理部227等を利用して、サーバアプリ210から要求されるジョブの実行を制御する。OCR処理部226は、サーバアプリ210から要求されるジョブがOCR処理である場合に、処理対象の画像データに対してOCR処理を実行する。アップロード処理部227は、サーバアプリ210から要求されるジョブがネットワークを介したデータのアップロードある場合に、当該アップロードを実行する。オンラインストレージシステム40へのデータの保存は、アップロードの一形態である。アップロード情報記憶部236は、オンラインストレージシステム40等へアップロードされたデータごとに、アップロード先における識別情報等を記憶する。当該識別情報は、当該識別情報に係るデータの、アップロード先における状態を確認するために用いられる。
ストレージ連携部228は、オンラインストレージシステム40に対するアクセス等を行う。連携元判定部229は、ScanToStorageサービスの実行単位ごとに、オンラインストレージシステム40へのデータのアップロード元が、サービス提供装置20であるか仲介装置50であるかを判定する。すなわち、本実施の形態では、オンラインストレージシステム40へのデータのアップロード形態として、サービス提供装置20がアップロードする形態と、仲介装置50を経由してアップロードされる形態とが有る。
図5は、第一の実施の形態における機器の機能構成例を示す図である。図5において、機器10は、機器制御部121、機器認証部122、通信部123、及び表示制御部124等を有する。これら各部は、機器10にインストールされた一以上のプログラムが、CPU111に実行させる処理により実現される。
機器制御部121は、機器10のハードウェアの制御を行う。機器認証部122は、機器10の操作者を認証するための処理を実行する。通信部123は、ネットワークを介した通信を制御する。表示制御部124は、操作パネル15に対する画面の表示等を行う。
図5には、また、スキャン機器アプリ125が破線によって示されている。スキャン機器アプリ125は、機器アプリの一つであり、ScanToStorageサービスにおいて、機器10をサービス提供装置20と連携させるために機器10にインストールされる。なお、機器アプリは、機器10にインストール可能なものであればよく、サーバアプリとしても機能可能なアプリケーションプログラムが機器アプリとして機器10にインストールされてもよい。
本実施の形態においてスキャン機器アプリ125は、当初から機器10にインストールされているのではなく、ScanToStorageサービスを利用するための準備作業において機器10にインストールされる。スキャン機器アプリ125が破線によって示されているのは、斯かる事情を表現したものである。但し、スキャン機器アプリ125は、当初から機器10にインストールされていてもよい。
図6は、第一の実施の形態における仲介装置の機能構成例を示す図である。図6において、仲介装置50は、連携仲介部511、状態管理部512、認証処理部513、及びメタ情報生成部514等を有する。これら各部は、仲介装置50にインストールされたプログラムが、仲介装置50のCPUに実行させる処理により実現される。仲介装置50は、また、状態情報記憶部521、連携情報記憶部522、組織認証情報記憶部523、及びメタ情報記憶部524等を利用する。これら各部は、仲介装置50が有する補助記憶装置、又は仲介装置50にネットワークを介して接続される記憶装置等を用いて実現可能である。
連携仲介部511は、サービス提供装置20とオンラインストレージシステム40との連携を仲介する。具体的には、連携仲介部511は、サービス提供装置20からの要求を、仲介装置50間において共通化されたAPIである仲介API53を介して受信する。連携仲介部511は、当該要求を、当該仲介装置50が連携するオンラインストレージシステム40に固有のAPIに対応した形式の要求に変換し、変換後の要求をオンラインストレージシステム40に送信する。連携仲介部511は、また、オンラインストレージシステム40からの応答を、仲介API53に則した形式の応答に変換し、変換後の応答を、サービス提供装置20に返信する。
なお、仲介API53は、例えば、HTTP(HyperText Transfer Protocol)ベースのAPI(例えば、REST(Representational State Transfer))であってもよいし、SOAP(Simple Object Access Protocol)等のRPC(Remote Procedure Call)を利用したAPIであってもよい。または、他の形式のAPIであってもよい。
連携情報記憶部522は、当該仲介装置50の連携先のオンラインストレージシステム40を示す情報、すなわち、仲介装置50とオンラインストレージシステム40との対応関係を示す情報を記憶する。
状態管理部512は、当該仲介装置50の状態を判定する。当該仲介装置50の状態の一例として、稼働中及び更新中等が挙げられる。稼働中とは、仲介装置50の機能を正常に提供可能な状態である。更新中とは、例えば、仲介装置50に対して新たな機能を実装中(例えば、新たなプログラムのインストール中)である状態をいい、仲介装置50の機能を正常に提供できない状態をいう。状態情報記憶部521は、当該仲介装置50の状態を示す情報を記憶する。
認証処理部513は、仲介API53の呼び出し権限を与えるための認証処理を実行する。組織認証情報記憶部523は、認証処理部513が、仲介API53の呼び出し元を認証するための情報を記憶する。
メタ情報生成部514は、与えられたテキスト情報を、所定のフォーマットのメタ情報ファイルに整形する。メタ情報記憶部524は、メタ情報生成部514によって生成されるメタ情報ファイルを記憶する。
なお、破線の矩形Aによって囲まれた部分は、各仲介装置50が有する部分である。但し、当該部分の実装内容は、連携先のオンラインストレージシステム40等に応じて異なりうる。一方、破線の矩形Bによって囲まれた部分は、当該仲介装置50を利用するユーザ(組織)に固有の部分である。すなわち、図6に示される仲介装置50は、機器10においてスキャンされた画像データよりOCRによって抽出されたテキストデータから、メタ情報を生成するといった処理を実行させたいといったユーザのニーズに対応した仲介装置50である。
以下、情報処理システム1において実行される処理手順について説明する。ユーザ環境E1において、ScanToStorageサービスを利用可能とするためには、サービス提供装置20に対するユーザ環境E1に関する各種情報の登録や、及びスキャン機器アプリ125の機器10への導入等といった準備作業が必要とされる。そこで、まず、準備作業に伴って実行される処理手順について説明する。なお、準備作業は、ユーザ環境E1における機器10の管理者(以下、単に「管理者」という。)によって管理者端末30を利用して行われる。
図7は、準備作業に伴って実行される処理手順の一例を説明するための図である。
ステップS101において、管理者端末30は、管理者より入力される指示に応じ、組織登録要求をサービス提供装置20に送信する。組織登録要求とは、サービス提供装置20が提供するサービスを利用する組織に関する情報の登録要求をいう。組織登録要求の指示は、例えば、次のような画面を介して入力される。
図8は、準備作業時に管理者端末に表示される画面の遷移例を示す図である。準備作業の開始時において、管理者端末30には、図8に示されるポータル画面560が表示されている。ポータル画面560は、サービス提供装置20が提供するサービスへの窓口としての画面である。なお、図8に示される各種画面は、例えば、サービス提供装置20より提供されるHTMLデータ等を含むWebページに基づいて表示される。すなわち、以下においては、便宜上省略されているが、各画面への遷移時には、管理者端末30とサービス提供装置20との間でHTTP(HyperText Transfer Protocol)通信が行われる。
ポータル画面560は、新規アカウント作成ボタン561、ログイン情報入力領域562、及びログインボタン563等を含む。
組織登録を行う場合、管理者は、新規アカウント作成ボタン561を押下する。新規アカウント作成ボタン561が押下されると、新規アカウント申し込み画面570が管理者端末30に表示される。なお、図8において、或る画面のボタンから他の画面への矢印は、当該ボタンが押下されることにより、表示対象が当該他の画面へ遷移することを示す。
新規アカウント申し込み画面570において、管理者のユーザ名、パスワード、及びメールアドレスが入力されて申し込みボタン571が押下されると、管理者端末30は、当該ユーザ名、パスワード及びメールアドレス等を含む組織登録要求をサービス提供装置20に送信する。
サービス提供装置20において組織登録要求が受信されると、設定登録部221は、ユーザ情報記憶部231に対して、組織登録要求に含まれている情報等を登録する(S102)。
図9は、ユーザ情報記憶部の構成例を示す図である。図9において、ユーザ情報記憶部231の各レコードは、組織ID、ユーザ名、パスワード、ロール、カードID、ストレージアカウント情報、及び購入アプリ等の項目を含む。
組織IDは、ユーザ環境E1ごと、すなわち、サービス提供装置20が提供するサービスを利用する企業ユーザ等の組織ごとに割り当てられる識別子である。ユーザ名、パスワード、ロール、及びカードIDは、組織IDに係る組織の構成員である各個人のユーザ(以下、「構成員ユーザ」という。)のユーザ名、パスワード、ロール、及びカードIDである。
ロールは、構成員ユーザの中で管理者を識別するための項目である。すなわち、管理者である構成員ユーザには、「管理者」が登録され、管理者以外の構成員ユーザには、「利用者」が登録される。カードIDは、構成員ユーザが、機器10にログインする際に利用する、ICカードの識別子である。ストレージアカウント情報は、組織IDに係る組織が利用するオンラインストレージに対するアカウント情報である。当該アカウント情報は、機器10においてスキャンされた画像データをオンラインストレージシステム40に保存する際に、オンラインストレージシステム40に提示される認証情報として利用される。購入アプリは、組織IDに係る組織において購入されているアプリケーションの識別子(以下、「アプリID」という。)の一覧である。図9では、便宜上、アプリケーションの名前が記載されているが、アプリIDは、数字やアルファベットの羅列等であってもよい。
なお、ユーザ情報記憶部231において、ユーザ名が記憶されていないレコードは、組織(ユーザ環境E1)に対応するレコード(以下、「組織レコード」という。)である。ユーザ名が記憶されているレコードは、構成員ユーザに対応するレコード(以下、「構成員レコード」という。)である。構成員レコードの中で、ロールが管理者であるレコードを、以下「管理者レコード」といい。ロールが利用者であるレコードを、以下「利用者レコード」という。なお、本実施の形態において、ストレージアカウント情報及び購入アプリは、組織レコードにおいて有効な項目である。但し、ストレージアカウント情報に関しては、構成員レコードにおいて有効とされてもよい。例えば、管理者レコードに対してストレージアカウント情報が設定可能とされてもよいし、利用者レコードごとに、ストレージアカウント情報が設定可能とされてもよい。
ステップS101では、1つの組織レコードと、1つの管理者レコードとが生成される。組織レコードには、組織IDが登録される。すなわち、組織レコードの生成に伴って、組織IDが割り当てられる。また、管理者レコードには、組織ID、ユーザ名、パスワード、及びロール等が登録される。管理者レコードの組織IDには、生成された組織レコードの組織IDと同じ値が登録される。ユーザ名及びパスワードには、組織登録要求に含まれているユーザ名又はパスワードが登録される。ロールには、「管理者」が登録される。
組織レコード及び管理者レコードの他の項目や、利用者レコード等については、後述の処理において登録又は生成が行われる。
続いて、設定登録部221は、例えば、組織登録が正常に行われたことを通知する電子メール(以下、「登録通知メール」という。)を、組織登録要求に含まれているメールアドレス宛に送信する。登録通知メールには、例えば、割り当てられた組織IDが含まれている。但し、組織登録が正常に行われたことは、例えば、組織登録要求を含むHTTPリクエストに対するHTTPレスポンスに含まれていてもよい。また、組織IDは、新規アカウント申し込み画面570において、ユーザによって指定されてもよい。
組織登録が正常に終了すると、管理者は、ポータル画面560におけるログイン情報入力領域562に対して、登録された組織ID、ユーザ名、及びパスワードを入力し、ログインボタン563を押下する。ログインボタン563の押下に応じ、管理者端末30は、ログイン要求をサービス提供装置20に送信する(S103)。ログイン要求には、ログイン情報入力領域562に入力された組織ID、ユーザ名、及びパスワードが含まれている。
ログイン要求に応じ、サービス提供装置20の認証処理部223は、ログイン要求に含まれているログインID、ユーザ名、及びパスワードを含み、ロールの値が「管理者」であるレコードがユーザ情報記憶部231に記憶されているか否かに基づいて、ログイン要求に係るユーザの認証を行う。該当するレコードが記憶されている場合、認証は成功する(S104)。該当するレコードが記憶されていない場合、認証は失敗する。認証が成功した場合、設定登録部221は、ログイン要求に含まれているユーザ名に係る管理者専用のポータル画面(以下、「管理者ポータル画面530」という。)を表示させるWebページを返信する。以下、ログインした管理者を、「ログイン管理者」という。
管理者端末30は、返信されたWebページに基づいて管理者ポータル画面530を表示させる。図8に示されるように、管理者ポータル画面530は、連携ボタン531、マーケットプレースボタン532、プロファイル設定ボタン533、機器登録領域534、及び利用者登録領域535等を含む。
ここでは、管理者は、機器登録領域534のテキストボックス534tに、ScanToStorageサービスに連携させる各機器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と組織との関連付けが保持される。
続いて、管理者は、ScanToStorageサービスを受けるために、機器10にインストールする必要のある機器アプリであるスキャン機器アプリ125を購入すべく、管理者ポータル画面530(図8)のマーケットプレースボタン532を押下する。マーケットプレースボタン532の押下に応じ、管理者端末30には、マーケットプレース画面540が表示される。
図8に示されるように、マーケットプレース画面540は、機器アプリ記憶部233に記憶されている機器アプリごとに、ボタンを含む。図8では、三つの機器アプリに対応するボタン541〜543が含まれている例が示されている。このうち、ボタン541は、スキャン機器アプリ125に対応するボタンである。
ここでは、スキャン機器アプリ125が購入対象であるため、ボタン541が管理者によって押下される。ボタン541の押下に応じ、管理者端末30は、スキャン機器アプリ125のアプリIDを含むアプリ購入要求を、サービス提供装置20に送信する(S107)。
サービス提供装置20の設定登録部221は、アプリ購入要求の受信に応じ、当該要求に含まれているアプリIDを、ユーザ情報記憶部231において、ログイン管理者に係る組織IDに対応する組織レコードの購入アプリの項目に記憶する(S108)。例えば、図9において、組織ID=123に対応する組織レコードの購入アプリの項目における「スキャン機器アプリ」は、このタイミングで登録される。
続いて、機器通信部222は、アプリ購入要求に含まれているアプリIDに対応するスキャン機器アプリ125を機器アプリ記憶部233より取得し、アプリ購入要求元のログイン管理者に係る組織IDに属する機器10に配信する(S109)。当該組織IDに属する機器10とは、機器情報記憶部232において当該組織IDに対応付けられている機器10である。
なお、通常、ユーザ環境E1にはファイアウォールが設置されているため、サービス提供装置20からユーザ環境E1内の各機器10に対して、スキャン機器アプリ125を送り付けることはできない。そこで、例えば、機器10の通信部123からのポーリングに対する応答において、スキャン機器アプリ125が返信されてもよい。
すなわち、各機器10には、サービス提供装置20との連携のために、サービス提供装置20のIPアドレスや、機器通信部222に対するポート番号等が設定されている。各機器10の通信部123は、例えば、定期的に当該IPアドレス及び当該ポート番号宛に、何らかの事象の発生の有無を問い合わせるためのポーリングを行う。当該問い合わせには、例えば、機体番号が含まれる。サービス提供装置20の機器通信部222は、当該問い合わせに指定されている機体番号が、スキャン機器アプリ125の購入元の組織IDに対応付いている機体番号であれば、スキャン機器アプリ125を返信する。
但し、ユーザ環境E1とサービス提供装置20との間にファイアウォールが存在しない場合、機器通信部222が、各機器10に対してスキャン機器アプリ125を送り付けてもよい。この場合、機器情報記憶部232に記憶される機器情報には、機器10のIPアドレス及びポート番号等が含まれるようにしてもよい。
スキャン機器アプリ125を受信した各機器10は、スキャン機器アプリ125を機器10内に配置(インストール)する(S110)。
続いて、管理者端末30において、マーケットプレース画面540の戻るボタンが管理者によって押下されると、マーケットプレース画面540は非表示となり、管理者端末30には、管理者ポータル画面530が表示される。
なお、ステップS103〜S110に代えて、以下のような作業及び処理が実行されてもよい。
例えば、スキャン機器アプリ125は、図7の処理手順とは非同期に購入され、機器10にインストールされる。スキャン機器アプリ125の購入は、所定のWebサイト等を利用して行われてもよい。
スキャン機器アプリ125のインストール先の機器10の起動時において、スキャン機器アプリ125が起動されると、スキャン機器アプリ125は、自動的に、組織ID、管理者のユーザ名及びパスワード、当該機器10の機器情報、並びに当該スキャン機器アプリ125のアプリID等が指定された登録要求(以下、「自動登録要求」という。)を、サービス提供装置20に送信する。なお、組織ID、管理者のユーザ名、及びパスワードは、例えば、管理者端末30において入力され、ネットワークを介して機器10に設定されている。サービス提供装置20の設定登録部221は、自動登録要求を受信すると、自動登録要求に指定された組織ID、管理者のユーザ名、及びパスワードについて認証を行う。認証処理は、ステップS103に関して説明した処理と同様でよい。認証に成功すると、設定登録部221は、自動登録要求に指定された組織IDと機器情報とを対応付けて、機器情報記憶部232に登録する。また、設定登録部221は、自動登録要求に指定された組織IDに対応付けて、自動登録要求に指定されたアプリIDを、ユーザ情報記憶部231の購入アプリの項目に記憶する。このような手順によっても、組織IDと機器情報、及び組織IDとアプリIDとの対応付けを形成することができる。
また、自動登録要求は、ステップS101の組織登録要求を兼ねてもよい。すなわち、自動登録要求に応じて、組織レコード及び管理レコード等が、ユーザ情報記憶部231に記憶されてもよい。
続いて、管理者は、ScanToStorageサービスにおいて、サービス提供装置20が直接的に連携するオンラインストレージシステム40に対するアカウント情報を登録すべく、管理者ポータル画面530の連携ボタン531を押下する。連携ボタン531の押下に応じ、管理者端末30は、ストレージ連携画面610を表示させる。「直接的に連携する」とは、仲介装置50を介さずに、という意味である。
図12は、連携先のオンラインストレージシステムのアカウント情報を登録させるための画面の遷移例を示す図である。
図12において、ストレージ連携画面610は、連携先ストレージ表示領域611、連携先入力領域612、及び追加ボタン613等を含む。連携先ストレージ表示領域611には、連携先として選択されたオンラインストレージシステム40の名前(以下、「ストレージ名」という。)が表示される領域である。既に、連携先として選択されているオンラインストレージシステム40が有る場合、当該オンラインストレージシステム40のストレージ名が表示される。連携先入力領域612は、サービス提供装置20が直接的に連携先とするオンラインストレージシステム40(以下、「連携先ストレージ」という。)のストレージ名を入力させるための領域である。
管理者によって、連携先入力領域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又はアカウント入力画面620において、一以上のユーザ名を入力可能な領域が設けられてもよい。当該領域に入力されたユーザ名は、アカウント登録要求に含まれてサービス提供装置20に送信される。サービス提供装置20の設定登録部221は、アカウント登録要求に含まれているユーザ名に対応する構成員レコードのストレージアカウント情報に、当該要求に含まれているストレージ名、ID、及びパスワードを登録する。
アカウント登録要に応じたサービス提供装置20における登録処理が成功すると、管理者端末30には、ストレージ連携画面610aが表示される。ストレージ連携画面610aの連携先ストレージ表示領域611には、連携先ストレージのストレージ名が表示される。なお、続けて他のオンラインストレージに関するアカウント情報の登録等が行われてもよい。すなわち、一つの組織レコード又は構成員レコードに対して、複数のオンラインストレージに対するアカウント情報が登録されてもよい。
続いて、管理者は、ユーザ環境E1において、ScanToStorageサービスの利用を許可する構成員ユーザの登録を行う。具体的には、管理者は、管理者ポータル画面530(図8)の利用者登録領域535のテキストボックス535tに、当該構成員ユーザに関する情報(以下「ユーザ情報」という。)が記述されたファイル(以下、「ユーザ情報ファイル」という。)のファイル名を入力し、登録ボタン535bを押下する。
一人の構成員ユーザに関するユーザ情報は、例えば、ユーザ名、パスワード、及びカードID等の項目を含む。これらの項目の値が、例えば、図13に示されるような形式でユーザ情報ファイルに記述されている。
図13は、ユーザ情報ファイルにおけるユーザ情報の記述例を示す図である。図13では、各項目の値が、カンマによって区切られた、CSV形式によって、ユーザ情報が記述された例が示されている。但し、ユーザ情報ファイルにおけるユーザ情報の記述形式は、CSV形式に限定されない。XML(eXtensible Markup Language)形式であってもよいし、他の形式であってもよい。
ユーザ情報ファイルのファイル名がテキストボックス535tに入力され、登録ボタン535bが押下されると、管理者端末30は、ユーザ情報ファイルに記述されているユーザ情報を含むユーザ登録要求を、サービス提供装置20に送信する(S113)。
サービス提供装置20の設定登録部221は、ユーザ登録要求に含まれているユーザ情報を、ログイン管理者に係る組織IDに対応付けて、ユーザ情報記憶部231に登録する(S114)。すなわち、ユーザ情報ごとに新たな利用者レコードが生成され、各利用者レコードに対して、一つのユーザ情報が登録される。図9の例では、ユーザ名が、B、C、又はDのレコードがステップS114において登録される。なお、管理者に関するユーザ情報が、ユーザ登録要求に含まれていてもよい。この場合、管理者に関するユーザ情報とは、ユーザ名が、管理者レコードのユーザ名と一致するユーザ情報をいう。この場合、ユーザ登録要求に含まれているユーザ情報によって、管理者レコードの内容が更新されてもよい。そうすることにより、例えば、管理者のカードIDが、このタイミングで登録されてもよい。
続いて、管理者は、ScanToStorageサービスの利用に際して、各機器10の操作パネル15に表示される操作画面の構成情報であるプロファイルの編集作業等を行う。本実施の形態におけるプロファイルは、スキャン機器アプリ125の操作画面に関する情報であり、画面上のボタンのレイアウトや、ボタンごとに、スキャンの読み取り条件、スキャンされた画像データに対する加工処理、及び保存先(配信先)とするストレージ等に関する情報を含む。
図14は、プロファイルの概念モデルを説明するための図である。図14に示されるように、各機器10は、一つのプロファイルを有する。但し、機器10ごとに異なるプロファイルが設定されてもよいし、例えば、ユーザごとに異なるプロファイルが一つの機器10に設定されてもよい。
プロファイルは、一以上のグループを含む。グループとは、操作画面において、例えば、タブウィンドウに対応する概念である。図14では、グループの具体例として、「営業」及び「開発」が示されている。これらは、それぞれ営業タブウィンドウ又は開発タブウィンドウを示す。
一つのグループは、一以上のプロジェクト、画面レイアウト情報、及び0以上の仲介情報を含む。プロジェクトは、例えば、タブウィンドウ上に配置されるボタン等の操作部品に対応する概念である。図14では、プロジェクトの具体例として「伝票」、「日報」、「商品情報」、「顧客情報」、及び「納品情報」等が示されている。これらは、例えば、営業タブウィンドウに配置される各ボタンのラベルを示す。
画面レイアウト情報は、一つのタブウィンドウ内における操作部品(ボタン)の配置位置や大きさ等を示す情報である。但し、画面レイアウト情報は、プロファイルに対して一対一に関連付いてもよい。この場合、同一のプロファイルに属する各グルーブに対応する画面レイアウト(操作部品の配置等)は、共通のものとなる。
仲介情報は、当該グループに属する各プロジェクトにおいて、オンラインストレージシステム40への仲介先として選択可能な仲介装置50に関する情報である。具体的には、仲介情報は、仲介装置50のアドレス及び仲介装置50にアクセスするためのパスワード等を含む。
一つのプロジェクトは、読み取り条件、ストレージ連携情報、加工情報、及びストレージ連携元等を有する、又はこれらの情報に対応付けられる。読み取り条件は、スキャン時の読み取り条件である。ストレージ連携情報とは、スキャンされた画像データに関して、いずれのオンラインストレージシステム40のいずれのフォルダを保存先とするか等を示す情報である。加工情報は、スキャンされた画像データに関して、保存前に行われる加工処理(画像処理)に関する情報である。ストレージ連携元は、オンラインストレージシステム40へのデータのアップロード元となる装置を識別する情報である。具体的には、ストレージ連携元は、サービス提供装置20を示す情報又は特定の仲介装置50を示す情報である。
管理者ポータル画面530(図8)において、プロファイル設定ボタン533が押下されると、管理者端末30には、プロファイル設定画面550が表示される。図8に示されるように、プロファイル設定画面550は、プロファイル編集ボタン551及び機器設定ボタン552を含む。管理者によって、プロファイル編集ボタン551が選択されると、管理者端末30には、プロファイル設定画面550上に、プロファイル編集画面710が表示される。
図15は、プロファイル編集画面の表示例を示す図である。図15において、プロファイル編集画面710は、プロファイル名入力領域711、編集対象画面表示領域712、ボタン編集領域713、タブ追加ボタン714、タブ削除ボタン715、ボタン追加ボタン716、ボタン削除ボタン717、仲介情報編集ボタン718、及び登録ボタン719等を含む。
プロファイル名入力領域711は、プロファイル名の入力を受け付ける領域である。編集対象画面表示領域712は、編集対象とされている画面(スキャン機器アプリ125の操作画面)が表示される領域である。図15では、図14に示した概念モデルに対応した画面例が表示されている。すなわち、営業タブウィンドウ及び開発タブウィンドウを含み、営業タブウィンドウ内に、日報ボタン、顧客情報ボタン、商品情報ボタン、伝票ボタン、及び納品情報ボタン等を含む画面が編集対象とされた例が示されている。
タブ追加ボタン714、タブ削除ボタン715、ボタン追加ボタン716、ボタン削除ボタン717は、新たなタブウィンドウの追加、編集対象とされているタブウィンドウの削除、編集対象とされているタブウィンドウに対するボタンの追加、当該ボタンの削除等を行わせるためのボタンである。編集対象画面表示領域712の初期状態は、一つのタブウィンドウに一つのボタンが配置された状態であってもよいし、予め雛型として作成されているプロファイルに基づく状態であってもよい。
仲介情報編集ボタン718は、編集対象とされているタブウィンドウに対応するグループへの、仲介情報の追加又は削除を受け付けるためのボタンである。例えば、仲介情報編集ボタン718が押下されると、仲介情報設定画面が表示される。
図16は、仲介情報設定画面の表示例を示す図である。図16において、仲介情報設定画面730は、仲介情報設定領域731−1及び731−2(以下、それぞれを区別しない場合「仲介情報設定領域731」という。)、追加ボタン732、削除ボタン733、OKボタン734、及びキャンセルボタン735等を含む。
仲介情報設定領域731は、編集対象のグループに属するプロジェクトに対して選択可能とする仲介装置50ごとに、アドレス及びパスワードを設定させるための領域である。アドレスは、特定の仲介装置50のIPアドレス又はホスト名等、特定の仲介装置50を識別するための情報である。パスワードは、特定の仲介装置50にアクセスするためのパスワードである。図16では、二つの仲介情報設定領域731が含まれている。したがって、編集対象のグループに属するプロジェクトについては、二つの仲介装置50のいずれかを、オンラインストレージシステム40への仲介先として選択することができる。
追加ボタン732が押下されると、仲介情報設定領域731が新たに追加される。すなわち、図16は、追加ボタン732が2回押下された状態が示されている。
削除ボタン733が押下されると、チェックボタン736がチェックされている仲介情報設定領域731が削除される。キャンセルボタン735が押下されると、仲介情報設定画面730における編集内容はキャンセルされて、仲介情報設定画面730がクローズするOK734が押下されると、仲介情報設定画面730における編集内容が保持された状態で、仲介情報設定画面730がクローズする。なお、仲介情報設定画面730がクローズすると、プロファイル編集画面710が再び前面に表示された状態となる。
なお、各仲介情報設定領域731から他の領域にフォーカスが移動したタイミング、又はOKボタン734が押下されたタイミングで、管理者端末30は、仲介情報設定領域731に設定されたアドレス及びパスワードを含む接続確認要求を、サービス提供装置20に送信してもよい。サービス提供装置20のストレージ連携部228は、当該接続確認要求に応じ、当該接続確認要求に含まれているアドレス宛に、ログイン管理者に係る組織ID及び当該接続確認要求に含まれているパスワードに基づく認証要求を送信し、仲介装置50との接続の成否を確認してもよい。ストレージ連携部228は、サービス提供装置20と仲介装置50との接続の成否を管理者端末30に返信する。管理者端末30は、接続に失敗した場合、その旨を示すメッセージを表示させ、仲介情報の再設定をユーザに要求してもよい。
プロファイル編集画面710の編集対象画面表示領域712において、選択されたボタン(以下、「対象ボタン」という。)は、ボタン削除ボタン717、又はボタン編集領域713の編集対象となる。ボタン編集領域713は、例えば、読み取り条件設定領域7131、加工情報設定領域7132、及びストレージ連携情報設定領域7133等を含む。
読み取り条件設定領域7131は、対象ボタンが押下された場合に実行されるスキャンに関する読み取り条件の設定を受け付ける領域である。図15では、両面、解像度、及びファイル形式が設定項目の一例として示されているが、カラーモード等、他の項目の設定が可能とされてもよい。
加工情報設定領域7132は、対象ボタンの押下に応じてスキャンされた画像データに対して実行する加工処理の設定を受け付ける領域である。図15では、OCR(Optical Character Recognition)が設定された例が示されている。この場合、OCRの結果が保存対象とされる。OCRの他に、OCR結果の翻訳、画像データのデータ形式の変換等が加工処理として設定されてもよい。また、複数の加工処理の組み合わせの設定が可能とされてもよい。
ストレージ連携情報設定領域7133は、対象ボタンの押下に応じて、スキャンされ、必要に応じて加工処理が施されたデータの保存先に関する設定を受け付けるための領域である。図15では、保存先とするオンラインストレージのストレージ名、及び当該オンラインストレージにおけるフォルダ名が設定可能とされた例が示されている。なお、保存先として選択可能なストレージ名は、ログイン管理者に係る組織IDに対応する組織レコード(図9)のストレージアカウント情報に登録されているストレージ名、及び編集対象のグループに対して設定された各仲介情報に係る仲介装置50の連携先のオンラインストレージシステム40のストレージ名である。
図17は、ストレージ連携情報を構成する保存先の選択肢の表示例を示す図である。図17では、保存先のリストボックスが展開されることにより表示されるリストに、選択可能なオンラインストレージシステム40のストレージ名の一覧が表示された状態が示されている。当該リストにおいて、<<サービス提供装置>>の下に表示されているストレージ名は、ログイン管理者に係る組織IDに対応する組織レコード(図9)のストレージアカウント情報に登録されているストレージ名である。すなわち、当該ストレージ名は、サービス提供装置20が直接的に連携するオンラインストレージシステム40のストレージ名である。一方、<<仲介装置1>>又は<<仲介装置2>>の下に表示されているストレージ名は、仲介情報設定画面730において設定された仲介情報に係る各仲介装置50の連携先のオンラインストレージシステム40のストレージ名である。当該ストレージ名は、「<ストレージ名>(<状態>)」の形式で表示されている。括弧内の<状態>は、<ストレージ名>に係るオンラインストレージシステム40の状態である。仲介装置50の連携先のオンラインストレージシステム40のストレージ名及び状態は、例えば、リストボックスの展開時において、サービス提供装置20の設定登録部221経由で、各仲介装置50に問い合わせることによって取得される。この点については、図21において詳述される。
また、図15におけるストレージ連携情報設定領域7133において、フォルダ名は、対象ボタンのボタン名(ラベル)となる。すなわち、フォルダ名が変更されると、対象ボタンのボタン名は変更される。但し、ボタン名とフォルダ名とは必ずしも一致していなくてもよい。
プロファイル編集画面710において必要な編集が完了し、登録ボタン719が押下されると、管理者端末30は、プロファイル編集画面710及び仲介情報設定画面730等における設定内容を示す情報を含むプロファイル登録要求をサービス提供装置20に送信する(S115)。サービス提供装置20の設定登録部221は、プロファイル登録要求に含まれている情報のうち、仲介情報設定画面730に対する設定内容に含まれている、仲介装置50ごとのアドレスに基づいて、当該アドレスに係る仲介装置50に対して接続確認の要求を送信する(S116)。当該仲介装置50は、当該要求に応じ、当該仲介装置50のサーバ証明書を返信する(S117)。ステップS116及びS117は、仲介情報設定画面730に対して設定されたアドレスごとに行われる。
続いて、設定登録部221は、ステップS115における登録要求に含まれている情報を、ログイン管理者に係る組織IDに対応付けて、プロファイル記憶部234に登録する(S118)。この際、仲介情報については、ステップS117において正当なサーバ証明書が返信された仲介装置50に係る仲介情報が、有効なものとしてプロファイル記憶部234に登録される。
図18は、プロファイル記憶部の構成例を示す図である。プロファイル記憶部234は、プロファイルごとに、組織ID、プロファイル名、グループ、及びプロジェクト等の項目を有する。
組織IDは、プロファイルが属する組織の組織IDである。プロファイル名は、プロファイルの名前である。グループは、プロファイルに含まれるグループである。一つのプロファイルに対するレコード内に、グループごとのレコード(以下、「グループレコード」という。)が形成される。プロジェクトは、グループに含まれるプロジェクトである。一つのグループレコード内に、プロジェクトごとのレコード(以下、「プロジェクトレコード」という。)が形成される。
一つのグループレコードは、グループ名、レイアウト情報、仲介情報、及び1以上のプロジェクトレコードを含む。グループ名は、グループの識別名であり、グループに対応するタブウィンドウのタブに表示されるラベルでもある。レイアウト情報は、グループに対応するタブウィンドウ内における各ボタンの配置情報である。なお、図14において説明したプロファイルの概念モデルにおいて、画面レイアウト情報が、プロファイルに一対一に関連付く場合、図18において、レイアウト情報は、例えば、プロファイル名の横の項目であって、同一のプロファイルに属する複数のグループレコードに跨る項目に(すなわち、グループレコードの外側に)記憶されるようにしてもよい。
仲介情報は、仲介情報設定画面730における設定内容が記憶される項目である。図18における仲介情報は、図16における設定内容に対応する。したがって、二つの仲介装置50に関して、アドレス及びパスワードが記憶されている。
一つのプロジェクトレコードは、プロジェクト名、読み取り条件、加工情報、ストレージ連携情報、及びストレージ連携元等の項目を含む。プロジェクト名は、プロジェクトの識別名であり、プロジェクトが対応するボタンのラベルでもある。本実施の形態において、プロジェクト名は、ストレージ連携情報のフォルダ名に一致する。他の項目については、プロファイル編集画面710(図15)において説明した通りである。ストレージ連携元には、プロファイル編集画面710(図15)のストレージ連携情報設定領域7133のリストボックスにおいて、<<サービス提供装置>>に属するストレージ名が選択されたプロジェクトには、「サービス提供装置」が登録される。一方、当該リストボックスにおいて、<<仲介装置N>>(図15の例では、Nは「1」又は「2」)に属するストレージ名が選択されたプロジェクトには、「仲介装置N」が登録される。なお、「サービス提供装置」及び「仲介装置N」は、サービス提供装置20又は仲介装置50の識別情報を、便宜的にこのような文字列によって表現したものである。
続いて、管理者によって、プロファイル設定画面550(図8)の機器設定ボタン551が押下されると、管理者端末30には、プロファイル機器設定画面720が表示される。
図19は、プロファイル機器設定画面の表示例を示す図である。プロファイル機器設定画面720は、プロファイルと各機器10との対応付けを設定させるための画面である。図19に示されるように、プロファイル機器設定画面720には、ログイン管理者に係る組織IDに対応付けられて機器情報記憶部232に機器情報が記憶されている機器10ごとに、機器情報及びプロファイル名入力領域721が表示される。管理者は、プロファイル名入力領域721に対して、各機器10に対応付ける(各機器10において利用される)プロファイルのプロファイル名を入力し、登録ボタン722を押下する。
登録ボタン722の押下に応じ、管理者端末30は、プロファイル機器設定画面720における設定内容(例えば、機体番号とプロファイル名との組み合わせ)を含む登録要求をサービス提供装置20に送信する。サービス提供装置20の設定登録部221は、当該登録要求に含まれている情報を、プロファイル機器対応記憶部235に登録する。
図20は、プロファイル機器対応記憶部の構成例を示す図である。プロファイル機器対応記憶部235は、機体番号、プロファイル名、及び機器アプリのアプリIDを対応付けて記憶する。対応付けられるアプリIDは、マーケットプレース画面540(図8)において選択された機器アプリのアプリIDである。すなわち、設定登録部221は、当該機器アプリのアプリIDを、ログイン管理者に対応付けてメモリ装置203等に記憶しておき、プロファイル機器設定画面720における設定内容の登録要求に応じ、当該アプリIDを当該設定内容に対応付けてプロファイル機器対応記憶部235に記憶する。
続いて、管理者ポータル画面530(図8)のログアウトボタン536が押下されると(S119)、管理者端末30は、サービス提供装置20に対してログアウト要求を送信する。ログアウト要求の受信に応じ、サービス提供装置20は、ログイン管理者のログイン状態を解除する。
続いて、図17に示されるプロファイル編集画面710のストレージ連携情報設定領域7133において、データの保存先(アップロード先)を選択させるリストボックスの展開が指示された際に実行される処理について説明する。
図21は、データの保存先を選択させるリストボックスの展開時に実行される処理手順の一例を説明するためのフローチャートである。なお、図21は、仲介情報設定画面730においてアドレス及びパスワードが設定された一つの仲介装置50に関して実行される処理を示す。したがって、仲介情報設定画面730において、複数の仲介装置50に対するアドレス及びパスワードが設定された場合、各仲介装置50に関して、図21の処理が実行される。以下、処理対象の仲介装置50を、「対象仲介装置50」という。
リストボックスの展開が指示されると、管理者端末30は、組織IDと、対象仲介装置50に対して設定されたアドレス及びパスワードとを指定して、対象仲介装置50の連携先のオンラインストレージシステム40のストレージ名の一覧の取得要求を、サービス提供装置20に送信する(S131)。
サービス提供装置20の設定登録部221は、当該取得要求に指定されたアドレス宛に、状態の確認要求を送信する(S132)。当該要求には、ステップS131において受信された組織ID及びパスワードが指定される。状態の確認要求の送信は、仲介API53の一つのインタフェースの呼び出しに相当する。したがって、当該要求は、当該アドレスに係る対象仲介装置50の連携仲介部511によって受信される。
ここで、当該要求に指定された組織ID及びパスワードについて認証が行われ、認証に成功した場合に、ステップS133が実行される。ステップS133において、対象仲介装置50の状態管理部512は、状態情報記憶部521に記憶されている状態情報を取得する。
図22は、状態情報の構成例を示す図である。図22に示されるように、状態情報は、状態及び復旧予定等を含む。本実施の形態において、状態の値は、「稼働中」又は「更新中」である。復旧予定は、状態の値が「更新中」の場合に有効な値であり、更新作業からの復旧予定の時期を示す情報である。状態管理部512は、当該仲介装置50の状態の変化に応じて、状態情報記憶部521の記憶内容を更新する。
続いて、連携仲介部511は、取得された状態情報を、設定登録部221に返信する(S134)。設定登録部221は、状態情報の値が、「稼働中」であるか否かを判定する(S135)。状態情報の値が、「稼働中」でない場合(S135でNo)、設定登録部221は、例えば、エラーを示す応答を返信する(S136)。
一方、当該状態情報の値が、「稼働中」である場合(S135でYes)、設定登録部221は、連携先のオンラインストレージシステム40の一覧の取得要求を、対象仲介装置50のアドレス宛に送信する(S137)。当該要求には、ステップS131において受信された組織ID及びパスワードが指定される。当該要求の送信は、仲介API53の一つのインタフェースの呼び出しに相当する。したがって、当該要求は、対象仲介装置50の連携仲介部511によって受信される。
ここで、当該要求に指定された組織ID及びパスワードについて認証が行われ、認証に成功した場合に、ステップS138が実行される。ステップS138において、連携仲介部511は、対象仲介装置50が連携するオンラインストレージシステム40のストレージ名の一覧を、連携情報記憶部522から取得する。
図23は、連携情報記憶部の構成例を示す図である。図23において、連携情報記憶部522は、組織IDに対応付けてストレージ名を記憶する。図23に示されるように、組織IDごとに、連携先のオンラインストレージシステム40が異なっていてもよいし、一つの仲介装置50について、連携先のオンラインストレージシステム40は、全ての組織IDに対して共通であってもよい。
ステップS138では、受信された組織IDに対応付いているストレージ名の一覧が取得される。続いて、連携仲介部511は、取得されたストレージ名の一覧を、設定登録部221に返信する(S139)。
続いて、設定登録部221は、返信された一覧に含まれるストレージ名に係る各オンラインストレージシステム40の稼動状態の取得要求を、対象仲介装置50のアドレス宛に送信する(S140)。当該要求には、ステップS131において受信された組織ID及びパスワードと、ストレージ名とが指定される。ストレージ名は、一回の要求において一つのみ指定可能であってもよいし、複数指定可能であってもよい。一つのみ指定可能な場合、ステップS140は、ストレージ名の一覧に含まれるストレージ名の数だけ繰り返されればよい。オンラインストレージシステム40の状態の取得要求の送信は、仲介API53の一つのインタフェースの呼び出しに相当する。したがって、当該要求は、当該アドレスに係る対象仲介装置50の連携仲介部511によって受信される。
ここで、当該要求に指定された組織ID及びパスワードについて認証が行われ、認証に成功した場合に、ステップS142が実行される。ステップS142において、連携仲介部511は、当該要求に指定されたストレージ名に係るオンラインストレージシステム40に対して、その稼動状態を問い合わせる。続いて、連携仲介部511は、問い合わせに応じて返信される稼動状態を示す情報を、設定登録部221に返信する(S142)。
続いて、設定登録部221は、ステップS139において返信された一覧に含まれるストレージ名ごとに、当該ストレージ名に係るオンラインストレージシステム40の稼動状態を示す値が付与された情報を含む応答を、管理者端末30に返信する(S143)。
管理者端末30は、ステップS136又はS143において返信された応答を受信する(S143)。ここで、ステップS143において返信された応答に含まれている情報に基づいて、管理者端末30は、展開されたリスト内に、仲介装置50ごとに、連携先のストレージ名及びその状態を表示させることができる。
以上でScanToStorageサービスを利用するための管理者による準備作業は完了する。続いて、構成員ユーザによって、ScanToStorageサービスが利用される際に、情報処理システム1において実行される処理手順について説明する。
図24は、ScanToStorageサービスの利用時の処理手順の第一の例を説明するためのシーケンス図である。図24の説明において、操作対象とされる機器10を、単に「機器10」といい、機器10を操作する或る構成員ユーザを、単に「ユーザ」という。また、図24の処理の開始時において、機器10には、いずれのユーザもログインしていない状態であるとする。
ユーザが、機器10にログインすべく、機器10の非図示のカードリーダにICカードを翳すと、機器認証部122は、カードリーダを介して当該ICカードよりカードIDを取得する(S210)。続いて、機器認証部122は、カードIDを含む認証要求をサービス提供装置20に送信する(S220)。
サービス提供装置20の認証処理部223は、認証要求の受信に応じ、認証要求に含まれているカードIDについて認証を行う。例えば、当該カードIDを含むレコードがユーザ情報記憶部231に記憶されていれば認証は成功したとされてもよい。または、機器10からカードIDと共に組織ID及び機体番号が送信されてもよい。この場合、組織ID、機体番号、及びカードIDの組み合わせに矛盾が無ければ、認証は成功したとされてもよい。認証が成功した場合、セッション管理部224は、機器10との間のセッションを開設する。セッション管理部224は、ユーザ情報記憶部231において、当該カードIDに対応付けられている組織ID及びユーザ名を、当該セッションに対応付けてメモリ装置203に記憶する。セッション管理部224は、また、当該セッションの識別情報であるトークン(cookie)を生成する。認証処理部223は、当該トークンを認証の成功を示す応答に含めて機器10の機器認証部122に返信する(S230)。
機器認証部122は、認証成功の応答の受信に応じ、当該応答に含まれているトークンを、RAM112に記憶する。機器認証部122は、また、ユーザの操作を可能とするため、操作パネル15に対する利用制限(ロック)を解除する(S240)。利用制限が解除されることにより、ユーザは、操作パネル15を介して機器10の操作が可能となる。
続いて、機器認証部122は、機器10内で起動している各アプリケーションに対して、ログインの成功を通知する。本実施の形態では、スキャン機器アプリ125にもログインの成功が通知される(S250)。ログインの成功の通知には、トークンが添付される。したがって、スキャン機器アプリ125は、当該通知を介してトークンを入手する。
続いて、ユーザによる操作パネル15を介した操作によって、スキャン機器アプリ125が利用対象として選択されると、スキャン機器アプリ125は、自らのアプリID、トークン、及び機器10(自機)の機体番号等を指定して、プロファイルの取得要求を、サービス提供装置20のスキャンサーバアプリ211宛に送信する(S260)。サービス提供装置20のセッション管理部224は、当該取得要求を中継する。中継に際し、セッション管理部224は、当該取得要求に含まれているトークンを、当該トークンによって識別されるセッションの組織ID及びユーザ名に変換して、当該取得要求をスキャンサーバアプリ211に転送する(S270)。なお、セッション管理部224は、不正なトークンを含む要求については、拒絶する。
続いて、スキャンサーバアプリ211は、当該取得要求に指定されているアプリID及び機体番号に対応付いているプロファイル名を、プロファイル機器対応記憶部235(図20)を参照して特定する。スキャンサーバアプリ211は、更に、特定されたプロファイル名、及びトークンから変換された組織IDによって識別されるプロファイルを、プロファイル記憶部234(図18)より取得し、取得されたプロファイルを、スキャン機器アプリ125に返信する(S280)。
スキャン機器アプリ125は、返信されたプロファイルに基づいて、操作画面を生成する(S290)。続いて、スキャン機器アプリ125は、当該操作画面を操作パネル15に表示させる(S300)。なお、厳密には、プロファイルに基づく操作画面の生成及び操作パネル15への表示は、表示制御部124によって実行される。
図25は、スキャン機器アプリの操作画面の表示例を示す図である。図25に示される操作画面810は、図15の編集対象画面表示領域712に示されている画面と同じである。
続いて、ユーザによって、操作画面810のボタンの中から、ユーザの業務に適したボタンが選択される(S310)。例えば、日報をスキャン対象とする場合、ボタン811が選択される。操作パネル15によってボタンの選択が通知されると(S320)、スキャン機器アプリ125は、選択されたボタン811(「日報」)に対応するグループ名(以下、「対象グループ名」という。)及びプロジェクト名(以下、「対象プロジェクト名」という。)と、読み込み条件とをRAM112に記憶する(S330)。当該読み込み条件は、操作画面810の生成に用いられたプロファイルにおいて、対象グループ名及び対象プロジェクト名に対応付けられているものである。
続いて、ユーザによって、スキャン対象とされる原稿(例えば、日報)が機器10にセットされ、操作パネル15上のスタートボタンが押下されると(S340)、操作パネル15は、スキャン機器アプリ125に対してスタートボタンの押下を通知する(S350)。スタートボタンの押下の通知に応じ、スキャン機器アプリ125は、機器制御部121を介して原稿のスキャンジョブを機器10に実行させる(S360)。すなわち、スキャナ12によって原稿から画像データが読み取られる。この際、読み取り条件は、ステップS330においてRAM112に記憶されたものが用いられる。したがって、日報のスキャンに適した読み取り条件によって、原稿のスキャンが実行され、画像データが生成される。
続いて、スキャン機器アプリ125は、当該画像データを、自らのアプリID、機体番号、対象グループ名及び対象プロジェクト名、並びにトークンと共にスキャンサーバアプリ211に送信(アップロード)する(S370)。セッション管理部224は、当該トークンを組織ID及びユーザ名に変換し、変換結果、アプリID、機体番号、対象グループ名及び対象プロジェクト名、並びに当該画像データをスキャンサーバアプリ211に転送する(S380)。
続いて、スキャンサーバアプリ211は、転送されたアプリID及び機体番号に対応するプロファイルを、プロファイル機器対応記憶部235及びプロファイル記憶部234に基づいて特定し、当該プロファイル(以下、「対象プロファイル」という。)のプロファイル名(以下、「対象プロファイル名」という。)、対象グループ名、及び対象プロジェクト名を指定して、連携元判定部229に対して、ストレージ連携元を問い合わせる(S381)。連携元判定部229は、プロファイル記憶部234に記憶されている対象プロファイルにおいて、対象グループ名及び対象プロジェクト名に対応するストレージ連携元の値を取得する。連携元判定部229は、取得された値を、スキャンサーバアプリ211に返信する(S382)。図24では、「サービス提供装置」が返信されたこととする。なお、スキャンサーバアプリ211が対象プロファイルを参照することにより、ストレージ連携元を判定してもよい。
続いて、スキャンサーバアプリ211は、対象プロファイルにおいて、対象グループ名及び対象プロジェクト名に対応する加工情報及びストレージ連携情報を特定する。
スキャンサーバアプリ211は、当該加工情報及び当該ストレージ連携情報に応じた処理を示すジョブ(以下、「ジョブA」という。)の実行要求をジョブ処理部225に投入する(S390)。ここでは、加工情報は、OCR処理を実行することを示し、ストレージ情報は、StorageAの「/日報」フォルダへ保存(アップロード)することを示すこととする。また、ジョブには、機器10に係る組織ID、ユーザ名、対象プロファイル名、対象グループ名、対象プロジェクト名、及びスキャンされた画像データが関連付けられる。なお、ジョブの実行要求は、RAM112に形成されているジョブキューに蓄積される。ジョブの実行は、ジョブの実行要求とは非同期に実行される。但し、ジョブの実行要求と同期的にジョブが実行されてもよい。
続いて、ジョブ処理部225は、ジョブキューよりジョブAを取り出すと、ジョブAに係る加工情報に基づいて、OCR処理をOCR処理部226に要求する(S400)。OCR処理部226は、画像データに関してOCR処理を実行し、処理結果としてのテキストデータを出力する(S410)。
続いて、ジョブ処理部225は、当該テキストデータと、ストレージ連携情報が示すストレージ名及びフォルダ名と、ジョブAに係る組織ID及びユーザ名と、ジョブAに係るプロファイル名、グループ名、及びプロジェクト名とを指定して、アップロードの実行をアップロード処理部227に要求する(S420)。アップロード処理部227は、当該アップロードの実行を、ストレージ連携部228に要求する(S430)。
ストレージ連携部228は、指定されたストレージ名に係るオンラインストレージシステム40に対するログインを認証処理部223に要求する(S440)。ストレージ連携部228は、アップロード要求に指定された組織ID及びストレージ名を当該ログイン要求に指定する。認証処理部223は、当該組織IDに対応する組織レコードをユーザ情報記憶部231より取得し、当該組織レコードのストレージアカウント情報において、アップロード要求に係るストレージ名に対応付けられているアカウント情報(ID及びパスワード)を取得する。認証処理部223は、取得されたアカウント情報を用いて、例えば、StorageAに係るオンラインストレージシステム40(以下、単に「StorageA」という。)に対して認証要求を送信する(S450)。
StorageAは、当該認証要求に指定されたアカウント情報について認証に成功すると、StorageAへのアクセス用のトークンを返信する(S460)。認証処理部223は、返信されたトークンを、ストレージ連携部228に返却する(S470)。
続いて、ストレージ連携部228は、ステップS430において指定されたプロファイル名、グループ名、及びプロジェクト名を指定して、連携元判定部229に対して、ストレージ連携元を問い合わせる(S471)。連携元判定部229は、プロファイル記憶部234に記憶されている、当該プロジェクト名に係るプロファイルにおいて、当該グループ名及び当該プロジェクト名に対応するストレージ連携元の値を取得する。連携元判定部229は、取得された値を、スキャンサーバアプリ211に返信する(S472)。図24では、「サービス提供装置」が返信されたこととする。なお、ステップS382における判定結果が、ジョブに関連付けられて保持されてもよい。この場合、ストレージ連携部228は、ステップS471を実行する代わりに、ジョブに関連付けられている判定結果に基づいて、ストレージ連携元を特定してもよい。
ストレージ連携元が「サービス提供装置」であることに応じ、ストレージ連携部228は、自らがアップロードを実行すべきことを認識する。そこで、ストレージ連携部228は、ステップS470において取得されたトークンを指定して、OCR処理によって得られたテキストデータについて、アップロード要求に指定されたストレージ名によって特定されるオンラインストレージ(StorageA)に対して保存要求を送信する(S480)。この際、アップロード要求に指定されたフォルダ名(/日報)が保存先のフォルダとして指定される。
その結果、StorageAの/日報に対して、当該テキストデータが保存される。
続いて、仲介装置50を介してデータがアップロードされる例について説明する。
図26は、ScanToStorageサービスの利用時の処理手順の第二の例を説明するためのシーケンス図である。図26中、図24と同一ステップには同一ステップ番号を付し、その説明は省略する。
図26では、ステップS310〜S330が、ステップS310a〜S330aに置き換えられている。すなわち、ステップS310aでは、操作画面810(図25)において、ボタン812(「納品情報」)が選択される。したがって、ステップS330aでは、ボタン812に対応するグループ名(以下、「対象グループ名」という。)及びプロジェクト名(以下、「対象プロジェクト名」という。)と、読み込み条件とがRAM112に記憶される。
ここで、図18より明らかなように、対象プロジェクト名が「納品情報」であるプロジェクトのストレージ連携元は、「仲介装置1」である。したがって、ステップS382aにおいて、連携元判定部229は、「仲介装置1」を、スキャンサーバアプリ211に返信する。
続いて、スキャンサーバアプリ211は、「仲介装置1」のアドレス宛に、状態確認要求を送信する(S383)。状態確認要求の送信は、仲介API53の一つのインタフェースの呼び出しに相当する。したがって、当該状態確認要求は、当該仲介装置50の連携仲介部511によって受信される。なお、状態確認要求には、組織IDと、「仲介装置1」に対するパスワードとが指定される。「仲介装置1」に対するアドレス及びパスワードは、プロファイルにおいて、対象グループ名に対応付けられている仲介情報に含まれている。
連携仲介部511は、状態確認要求を受信すると、当該状態確認要求に指定されている組織ID及びパスワードの認証を、認証処理部513に要求する(S384)。認証処理部513は、当該組織ID及びパスワードの組が、組織認証情報記憶部523に記憶されているか否かに基づいて、当該組織ID及びパスワードの認証を行う。
図27は、仲介装置が有する組織認証情報記憶部の構成例を示す図である。図27において、組織認証情報記憶部523は、当該仲介装置50の利用が許可される各組織の組織ID及びパスワードを記憶する。認証処理部513は、状態確認要求に指定された組織ID及びパスワードの組が、組織認証情報記憶部523に記憶されていれば、認証の成功を認証結果として判定し、当該組が、組織認証情報記憶部523に記憶されていなければ、認証の失敗を認証結果として判定する。認証処理部513は、認証結果を連携仲介部511に返信する(S385)。
認証結果が認証の失敗を示す場合、連携仲介部511は、状態確認要求に対してエラーを返信する。この場合、ステップS390以降の実行は中止される。認証結果が認証の成功を示す場合、連携仲介部511は、状態管理部512に対して、当該仲介装置50の状態を問い合わせる(S386)。状態管理部512は、状態情報記憶部521(図22)に記憶されている状態情報を、連携仲介部511に返信する(S387)。
ステップS387では、「稼働中」を示す状態情報が返信されたこととする。そこで、連携仲介部511は、「稼働中」を示す状態情報を、サービス提供装置20のスキャンサーバアプリ211に返信する(S388)。スキャンサーバアプリ211は、仲介装置50の状態が「稼働中」であること(すなわち、仲介装置50を正常に利用可能であること)に応じ、ジョブ(以下、「ジョブB」という。)の実行要求をジョブ処理部225に投入する(S390)。
ステップS400〜S472aにおいては、図24のステップS400〜S472と同様の処理が実行される。但し、図24と図26とでは、選択されたプロジェクトが異なるため、例えば、アップロード先のストレージ名及びフォルダ名等が、図24と異なる。また、ステップS472aにおいて、連携元判定部229は、ストレージ連携元として、「仲介装置1」をストレージ連携部228に返信する。
ステップS490において、ストレージ連携部228は、ストレージ連携元が仲介装置50であることに基づき、組織ID、パスワード、トークン、ストレージ名、及びフォルダ名を指定して、OCR処理の結果のテキストデータのアップロード要求を、「仲介装置1」のアドレス宛にネットワークを介して送信する。アップロード要求の送信は、仲介API53の一つのインタフェースの呼び出しに相当する。したがって、当該アップロード要求は、当該アドレスに係る仲介装置50の連携仲介部511によって受信される。
連携仲介部511は、アップロード要求を受信すると、当該アップロード要求に指定されている組織ID及びパスワードの認証を、認証処理部513に要求する(S491)。認証処理部513は、ステップS384に応じた場合と同様の処理を行い、当該組織ID及びパスワードの認証結果を、連携仲介部511に返信する(S492)。
認証に成功すると、連携仲介部511は、アップロードされたテキストデータからのメタ情報の生成を、メタ情報生成部514に要求する(S493)。メタ情報生成部514は、当該テキストデータから所定の項目の値を示す文字列を抽出し、抽出された文字列に基づいて、メタ情報を生成する。メタ情報は、例えば、CSV(Comma Separated Values)形式で生成される。但し、XML(eXtensible Markup Language)形式等、他の形式によってメタ情報が生成されてもよい。メタ情報生成部514は、生成されたメタ情報を、連携仲介部511に返信する(S494)。
図28は、メタ情報の一例を示す図である。図28では、「顧客情報」という項目について、「山田太郎」が、「注文日」という項目について、「2013/08/13」が、それぞれテキストデータから抽出され、図28に示されるような形式に整形された例が示されている。なお、メタ情報の生成に関する処理は、当該仲介装置50に固有の処理の一例である。例えば、テキストデータが示す文章の翻訳や、テキストデータを所定のデータ形式への変換等、仲介装置50ごとに、他の処理が実行されてもよい。
続いて、連携仲介部511は、ステップS490において受信されたアップロード要求に指定されたストレージ名に係るオンラインストレージシステム40に対し、テキストデータの保存要求を送信する(S495)。この際、当該アップロード要求に指定されたフォルダ名(/納品情報)が保存先のフォルダとして指定される。
続いて、オンラインストレージシステム40は、アップロードされたデータを、当該オンラインストレージシステム40において識別するための情報(以下、「ファイルID」という。)を、アップロード要求に対する応答に含めて返信する(S496)。
続くステップS497及びS498では、メタ情報のアップロード及びメタ情報に対するファイルIDの返信が行われる。
続いて、連携仲介部511は、オンラインストレージシステム40から返信されたファイルIDを、サービス提供装置20のストレージ連携部228に返信する(S499)。ここでは、テキストデータに対するファイルIDと、メタ情報に対するファイルIDとが返信される。又は、テキストデータに対するファイルIDのみが返信されてもよい。
続いて、ストレージ連携部228は、返信されたファイルIDを、当該ファイルIDに係るデータのアップロードに係るジョブに関する情報に関連付けて、アップロード情報記憶部236に記憶する(S500)。
図29は、アップロード情報記憶部の構成例を示す図である。図29において、アップロード情報記憶部236は、アップロードされたデータごとに、組織ID、ストレージ名、ファイルパス、アドレス、パスワード、アップロード日時、及びファイルID等を記憶する。
組織IDは、データのアップロードのジョブに係る組織IDである。ストレージ名は、データのアップロード先のオンラインストレージシステム40のストレージ名である。ファイルパスは、アップロード先のファイルパスである。なお、ファイルパスに含まれるファイル名を、サービス提供装置20側で特定できない場合、ファイル名は、ファイルIDと共に、ステップS498において返信されてもよい。アドレスは、アップロードに利用した仲介装置50のアドレスである。パスワードは、当該仲介装置50に対するパスワードである。アップロード日時は、アップロードが行われた日時である。例えば、当該レコードが、アップロード情報記憶部236に登録された日時が、アップロード日時とされてもよい。ファイルIDは、アップロード先のオンラインストレージシステム40から返信されたファイルIDである。なお、組織ID、ストレージ名、及びファイルパスは、アップロードのジョブ関連付いている情報に基づいて特定可能である。
続いて、ステップS493のメタ情報の生成要求に応じて、メタ情報生成部514が実行する処理手順の詳細について説明する。図30は、メタ情報の生成処理の処理手順の一例を説明するためのフローチャートである。
ステップS601において、メタ情報生成部514は、テキストデータから、「お客様の名前:xxx yyy」の形式に合致する文字列を検索し、検索された文字列から「xxx yyy」の部分(すなわち、氏名の部分)を抽出する。すなわち、「納品情報」に係るプロジェクトでは、このような文字列を含む原稿が、機器10においてスキャン対象とされることが予定されている。
続いて、メタ情報生成部514は、「顧客名,xxx yyy」の形式で、抽出された部分を含む文字列を、メタ情報を格納するファイルに書き出す(S602)。
続いて、メタ情報生成部514は、テキストデータから、「注文日:yyyy/mm/dd」の形式に合致する文字列を検索し、検索された文字列から「yyyy/mm/dd」の部分(すなわち、年月日の部分)を抽出する(S603)。すなわち、「納品情報」に係るプロジェクトでは、このような文字列を含む原稿が、機器10においてスキャン対象とされることが予定されている。
続いて、メタ情報生成部514は、「注文日,yyyy/mm/dd」の形式で、抽出された部分を含む文字列を、メタ情報を格納するファイルに書き出す(S604)。
以上の処理手順によって、図28に示したメタ情報が生成される。
続いて、ストレージ連携元の仲介装置50の状態が「更新中」である場合、すなわち、当該仲介装置50を利用できない場合について説明する。
図31は、ScanToStorageサービスの利用時の処理手順の第三の例を説明するためのシーケンス図である。図31中、図26と同一ステップには同一ステップ番号を付し、その説明は省略する。
図31では、仲介装置50の状態情報記憶部521に記憶されている状態情報が、図22の(2)の通りであるとする。したがって、ステップS387aでは、当該状態情報が、状態管理部512から連携仲介部511に返信される。また、ステップS388aでは、当該状態情報が、連携仲介部511からスキャンサーバアプリ211に返信される。
スキャンサーバアプリ211は、仲介装置50の状態が「更新中」であること(すなわち、仲介装置50を利用できないこと)に応じ、機器10のスキャン機器アプリ125に対し、仲介装置50が更新中であり、2013/8/11の11:00まで利用できないことを示す応答を返信する(S511)。当該応答に応じ、スキャン機器アプリ125は、仲介装置50の斯かる状態を通知するための警告画面を生成し(S512)、当該警告画面を操作パネル15に表示させる。ユーザは、警告画面を参照することにより、2013/8/11の11:00までは、ステップS310aにおいて選択したボタンに対応するプロジェクトは利用できないことを認識する。
続いて、アップロードしたデータの状態(以下、「アップロード状態」という。)の確認要求をユーザから入力された場合に実行される処理手順について説明する。
図32は、アップロード状態の確認処理の処理手順の一例を説明するためのシーケンス図である。
ステップS701では、例えば、スキャン機器アプリ125が操作パネル15に表示させているジョブ管理画面に含まれている、アップロードされたデータの一覧の中から、状態確認の対象とされるデータが選択される。ジョブ管理画面には、例えば、アップロード情報記憶部236に記憶されているレコードの中で、操作対象の機器10が属する組織の組織IDを含むレコードのストレージ名及びファイルパスの一覧が表示される。
続いて、スキャン機器アプリ125は、選択されたストレージ名及びファイルパスと、組織IDとが指定された、アップロード状態の確認要求を、スキャンサーバアプリ211に送信する(S702)。スキャンサーバアプリ211は、状態確認要求を受信すると、当該状態確認要求に指定されている組織ID、ストレージ名、及びファイルパスに対応付いているアドレス、パスワード、アップロード日時、及びファイルIDを、アップロード情報記憶部236より取得する(S703)。
続いて、スキャンサーバアプリ211は、組織ID、ストレージ名、アドレス、パスワード、アップロード日時、及びファイルIDを指定して、アップロード状態の確認をストレージ連携部228に要求する(S704)。アドレス、パスワード、アップロード日時、及びファイルIDは、ステップS703において取得されたものである。
続くステップS705〜S708では、図24のステップS430〜S470と同様の処理が実行される。その結果、ストレージ連携部228は、状態の確認要求に指定されたストレージ名に係るオンラインストレージシステム40に対するトークンを入手する。
続いて、ストレージ連携部228は、組織ID、パスワード、トークン、ストレージ名、アップロード日時、及びファイルIDを指定して、アップロード状態の確認要求を、ステップS704において指定されたアドレス宛に送信する(S709)。アップロード状態の確認要求の送信は、仲介API53の一つのインタフェースの呼び出しに相当する。したがって、当該アップロード状態の確認要求は、当該アドレスに係る仲介装置50の連携仲介部511によって受信される。
ステップS710及びS711では、図26のステップS384及びS385と同様に、組織ID及びパスワードについて認証が行われる。認証に成功すると、連携仲介部511は、ステップS709において指定されたトークンを指定して、ステップS709において指定されたストレージ名に係るオンラインストレージシステム40に対して、ファイル一覧の取得要求を送信する(S712)。ファイルの一覧の取得対象は、所定のフォルダ以下(例えば、ステップS709において指定された組織IDに対応するフォルダ以下)の階層のファイルに限定されてもよい。オンラインストレージシステム40は、ファイル一覧の取得要求に応じ、当該オンラインストレージシステム40に保存されているファイルのファイルIDの一覧を返信する(S713)。
続いて、連携仲介部511は、アップロード状態の確認対象として選択されたデータのアップロード状態を判定する(S714)。具体的には、当該データに対応するファイルIDが、ステップS713において受信されたファイルIDの一覧の中に含まれている場合、連携仲介部511は、対象ファイルIDに係るデータのアップロード状態は、「完了」であると判定する。対象ファイルIDが、受信されたファイルIDの一覧の中に含まれていない場合、連携仲介部511は、アップロード日時から現時点までの経過時間に応じて、アップロード状態を区別する。例えば、アップロード日時からの経過時間が所定時間以内である場合、連携仲介部511は、対象ファイルIDに係るデータのアップロード状態は、「アップロード中」であると判定する。アップロード日時からの経過時間が所定時間を超える場合、連携仲介部511は、対象ファイルIDに係るデータのアップロード状態は、「失敗」であると判定する。
なお、ステップS712〜S714におけるアップロード状態の判定方法は、アップロード先のオンラインストレージシステム40が公開するAPI等に依存する。例えば、アップロード先のオンラインストレージシステム40が、「指定されたファイルIDのアップロード状態を返信する」といったAPIを有する場合、連携仲介部511は、当該APIを一回呼び出すことで、アップロード状態を知ることができる。
続いて、連携仲介部511は、アップロード状態の判定結果を、ストレージ連携部228に返信する(S715)。ストレージ連携部228は、当該アップロード状態を示す情報(以下、「アップロード状態情報」という。)を、スキャンサーバアプリ211に返信する(S716)。スキャンサーバアプリ211は、当該アップロード状態情報を、スキャン機器アプリ125に返信する(S717)。
スキャン機器アプリ125は、当該アップロード状態情報を表示させるための画面を生成し(S718)、当該画面を操作パネル15に表示させる(S719)。ユーザは、当該画面を参照して、指定したデータのアップロード状態を確認することができる。
上述したように、第一の実施の形態によれば、機器10からサービス提供装置20に送信される画像データ又は当該画像データに基づいて生成されるデータについて、オンラインストレージシステム40への送信(アップロード)は、仲介装置50によって仲介されうる。すなわち、サービス提供装置20は、仲介装置50によって提供される共通化されたインタフェースである仲介API53を利用して、相互に異なるインタフェースを有する各オンラインストレージシステム40へのデータの送信を行うことができる。その結果、機器10から送信される画像データ又は当該画像データに基づいて生成されるデータの保存先への送信について、柔軟性を向上させることができる。
したがって、新たなオンラインストレージシステム40を保存先の候補として追加する場合、当該オンラインストレージシステム40に対応した仲介装置50を用意したり、又は既存の仲介装置50を更新したりすればよく、サービス提供装置20に新たな実装を追加する必要性を低減させることができる。その結果、サービス提供装置20を停止させる頻度を低下させることができる。
また、一つの仲介装置50は、複数のオンラインストレージシステム40に対応(連携)可能である。したがって、仲介装置50とオンラインストレージシステム40との対応関係が1対1である場合に比べて、新たなオンラインストレージシステム40に対応するためのコストを低下させることができる。
但し、一つの仲介装置50がオンラインストレージシステム40に対応可能である場合、既存の仲介装置50を新たなオンラインストレージシステム40に対応させるために、当該仲介装置50に関して更新作業が必要とされる。この場合、更新期間中においては、当該仲介装置50を利用したデータのアップロードを行えない可能性が有る。しかし、例えば、仲介装置50を、ユーザごと(組織IDごと)に用意することで、或る仲介装置50に更新に伴う影響範囲を、特定のユーザに限定することができる。
なお、本実施の形態では、便宜上、仲介装置50の連携先は、オンラインストレージシステム40である例を説明したが、他のコンピュータシステムが仲介装置50の連携先とされてもよい。
次に、第二の実施の形態について説明する。第二の実施の形態では、第一の実施の形態と異なる点について説明する。したがって、特に明記されない点については、第一の実施の形態と同様でもよい。
図33は、第二の実施の形態における情報処理システムの構成例を示す図である。図33において、認証装置60は、LAN(Local Area Network)又はインターネット等のネットワークを介して仲介装置50と通信可能に接続されている。
認証装置60は、各仲介装置50(仲介API53)の利用権限を与えるための認証を、一元的に実行するコンピュータである。すなわち、第一の実施の形態では、各仲介装置50が、当該仲介装置50の利用について認証を行っていた。このことは、仲介装置50ごとに、組織認証情報記憶部523に対する登録作業等が必要とされることを意味する。特に、仲介装置50が分散されて配置される場合、斯かる作業は煩雑となる。
そこで、第二の実施の形態においては、各仲介装置50の利用権限を与えるための認証が、認証装置60によって一元的に代行される。したがって、第二の実施の形態において、各仲介装置50は、認証処理部513及び組織認証情報記憶部523を有していなくてもよい。
図34は、認証装置の機能構成例を示す図である。図34において、認証装置60は、認証処理部61及び組織認証情報記憶部62等を有する。
認証処理部61は、仲介API53の呼び出し権限を与えるための認証処理を実行する。組織認証情報記憶部62は、認証処理部61が、仲介API53へのアクセス要求元を認証するための情報を記憶する。
図35は、ScanToStorageサービスの利用時の処理手順の第四の例を説明するためのシーケンス図である。図35中、図26と同一ステップには同一ステップ番号を付し、その説明は省略する。
図35では、ステップS384及びS385が、ステップS384a又はS385aに置き換えられている。また、ステップS491及びS492が、ステップS491a又はS492aに置き換えられている。
すなわち、ステップS384aにおいて、連携仲介部511は、受信された状態確認要求に指定されている組織ID及びパスワードの認証要求を、認証装置60の認証処理部61に送信する。当該認証要求には、組織ID及びパスワードに加え、当該仲介装置50のアドレスが、当該仲介装置50の識別情報として指定される。アドレス以外が、各仲介装置50の識別情報として利用されてもよい。
認証装置60の認証処理部61は、認証要求に指定されたアドレス、組織ID、及びパスワードの組が、組織認証情報記憶部62に記憶されているか否かに基づいて、当該組織ID及びパスワードの認証を行う。
図36は、認証装置が有する組織認証情報記憶部の構成例を示す図である。図36において、組織認証情報記憶部62は、アドレスごとに、当該アドレスに係る仲介装置50の利用が許可される各組織の組織ID及びパスワードを記憶する。認証処理部61は、認証要求に指定されたアドレス、組織ID、及びパスワードの組が、組織認証情報記憶部62に記憶されていれば、認証の成功を認証結果として判定し、当該組が、組織認証情報記憶部62に記憶されていなければ、認証の失敗を認証結果として判定する。認証処理部61は、認証結果を連携仲介部511に返信する(S385a)。
ステップS491a及びS492aの処理内容は、ステップS384a及びS385aの処理内容と同様である。
上述したように、第二の実施の形態によれば、仲介装置50の利用権限を与えるための認証のために管理が必要とされる情報が、認証装置60の組織認証情報記憶部62に集約される。したがって、当該情報に関する保守作業の負担を軽減することができる。
なお、上記各実施の形態においては、画像データの入力元がスキャナであるScanToStorageサービスについて説明したが、画像データの入力元は、スキャナ以外であってもよい。画像データの入力元としては、例えば、デジタルカメラ(デジタルカメラ機能付きの携帯端末等を含む)、ホワイトボード等が挙げられる。デジタルカメラであれば、デジタルカメラによって撮像された画像データが入力対象となる。ホワイトボードであればホワイトボードに対する書き込みが読み取られた画像データが入力対象となる。
更に、画像データ以外の電子データが入力対象とされてもよい。例えば、ICレコーダにおいて録音された音声データや、PC(Personal Computer)等において作成された文書データが、入力対象とされてもよい。
したがって、サービス提供装置20には、図4に示されるように、機器10以外に、携帯端末、PC、会議システム、画像投影装置、及びICレコーダや、その他の新規デバイス等がネットワークを介して接続されてもよい。
なお、本実施の形態において、サービス提供装置20及び仲介装置50は、情報処理システムの一例である。スキャンサーバアプリ211は、受信部の一例である。プロファイルに関するグループ名及びプロジェクト名は、特定情報の一例である。グループ名及びプロジェクト名に対応付いているストレージ連携情報やストレージ連携元に基づいて、オンラインストレージシステム40及び仲介装置50を特定可能であるからである。連携仲介部511は、仲介部の一例である。ストレージ連携部228は、要求部の一例である。サービス提供装置20は、第一の情報処理装置の一例である。仲介装置50は、第二の情報処理装置及び外部装置の一例である。
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。