<システム構成>
図1は、本実施形態に係るシステム10の構成の一例を示す図である。本実施形態に係るシステム10は、少なくとも1つのオフィス内ネットワークシステム11と、クラウドサービスに代表されるサービス提供システム20とを備える。少なくとも1つのオフィス内ネットワークシステム11のそれぞれとサービス提供システム20とは、インターネット等のネットワークを介して接続される。
オフィス内ネットワークシステム11は、ファイアウォール13を有する。ファイアウォール13は、外部からオフィス内ネットワークシステム11内に接続された装置への不正なアクセスを制限する。
サービス提供システム20は、アクセス制御装置21を有する。アクセス制御装置21は、外部からサービス提供システム20内に接続された装置へのアクセスを制御する。
オフィス内ネットワークシステム11は、一例として、端末装置14と、画像形成装置15と、認証装置16と、その他装置17とを有する。端末装置14、画像形成装置15、認証装置16およびその他装置17のそれぞれは、無線または有線による通信手段を有し、ファイアウォール13の内側にあるプライベートなネットワークを介して互いに接続される。
端末装置14は、一般的なOS(オペレーティングシステム)等が搭載された情報処理装置(例えば後述するコンピュータシステム50)によって実現される。端末装置14は、一例として、パーソナルコンピュータ、タブレット型コンピュータ、ノート型コンピュータ、スマートフォンまたは携帯電話機等であり、ユーザが操作可能であればどのような機器であってもよい。
画像形成装置15は、複合機、複写機、スキャナまたはレーザプリンタ等の画像形成機能を有する。認証装置16は、一般的なサーバ用OS等が搭載された情報処理装置(例えば後述するコンピュータシステム50)によって実現される。認証装置16は、端末装置14および画像形成装置15に対してユーザ認証機能を提供する。その他装置17は、例えば、プロジェクタ、電子黒板装置等の電子機器である。なお、オフィス内ネットワークシステム11は、端末装置14、画像形成装置15、認証装置16およびその他装置17をそれぞれ複数有していてもよい。
サービス提供システム20は、ネットワーク上の装置等にクラウドサービスを提供するシステムである。なお、サービス提供システム20は、クラウドサービスに代えて、ASP(Application Service Provider)によって提供されるサービス、または、Webサービス等を、ネットワーク上の装置に提供するシステムであってもよい。
サービス提供システム20内の各装置は、アクセス制御装置21を介してインターネット等のネットワークに接続されている。サービス提供システム20は、アクセス制御装置21と、プリントサービス提供装置22と、配信サービス提供装置23と、ポータルサービス提供装置24と、認証装置25と、データ処理制御装置26と、データ処理実行制御装置27と、データ処理装置28とを有する。これらの装置は、サービス提供システム20内のネットワークを介して接続される。
サービス提供システム20内のそれぞれの装置は、1台以上の情報処理装置(例えば後述するコンピュータシステム50)によって実現される。つまり、1台のコンピュータによって実現してもよいし、複数のコンピュータに分散して実現してもよい。なお、サービス提供システム20内のそれぞれの装置を1台の装置に統合して実現してもよく、サービス提供システム20が何台の情報処理装置で構成され実現されるかが、本発明の適用範囲を制限するものではない。
また、サービス提供システム20の一部あるいは全部が、オフィス内ネットワークシステム11内のプライベートなネットワーク上に設けられていてもよい。つまり、本実施形態に係るシステム10は、あくまで好適な一例を示すものであり、サービス提供システム20と、サービス提供システム20を利用するためにアクセスする各種装置との間にファイアウォール13があるか否かによって、本発明の適用範囲は制限されない。
サービス提供システム20は、各種サービスを提供するためのサービス提供機能を実現する装置群(サービス提供部31)と、各種サービスを利用するときに共通的に利用することのできる共通プラットフォーム機能を実現する装置群(プラットフォーム33)とを有する。サービス提供部31は、一例として、プリントサービス提供装置22、配信サービス提供装置23、および、ポータルサービス提供装置24(サービス特定手段)等を含む。プラットフォーム33は、一例として、認証装置25、並びに、データ処理制御装置26、データ処理実行制御装置27およびデータ処理装置28(実行手段)等を含む。
なお、サービス提供システム20は、サービス提供部31とプラットフォーム33とに大別して捉えることができるが、このような大別の仕方はあくまで、本発明をわかりやすく説明するための概念的な捉え方であり、必ずしもそれぞれの装置がこのような捉え方の基で構成されるサービス提供システム20を実現しなければならないというものではない。
また、サービス提供システム20は、インターネット等のネットワークを介して端末装置14、メールサーバ41およびオンラインストレージ42等が接続されている。端末装置14は、一般的なOS等が搭載された情報処理装置(例えば後述するコンピュータシステム50)によって実現される。端末装置14は、一例として、PC、タブレット型コンピュータ、ノート型コンピュータ、スマートフォンまたは携帯電話等の、ユーザが操作可能な電子機器である。メールサーバ41は、一台以上の情報処理装置によって実現される。メールサーバ41は、電子メールの送信および受信を行うためのサーバである。オンラインストレージ42は、一台以上の情報処理装置によって実現される。オンラインストレージ42とは、ストレージの記憶領域(記憶装置)を貸し出すサービスを提供するサーバである。
<コンピュータシステム50のハードウェア構成>
図2は、本実施形態に係るコンピュータシステム50のハードウェア構成の一例を示す図である。図1に示した端末装置14、認証装置16、および、サービス提供システム20内のそれぞれの装置は、例えば図2に示すハードウェア構成のコンピュータシステム50により実現される。
コンピュータシステム50は、入力装置51、表示装置52、外部I/F53、RAM(Random Access Memory)54、ROM(Read Only Memory)55、CPU(Central Processing Unit)56、通信I/F57、およびHDD(Hard Disk Drive)58などを備え、それぞれがバスで相互に接続されている。
入力装置51は、キーボード、マウスおよびタッチパネル等であり、ユーザが情報を入力するために用いられる。表示装置52は、ディスプレイ等であり、コンピュータシステム50による処理結果を表示する。
通信I/F57は、コンピュータシステム50をネットワークに接続するためのインタフェースである。コンピュータシステム50は、通信I/F57を介して他の装置とデータ通信を行うことができる。
HDD58は、プログラムおよびデータを格納する不揮発性の記憶装置である。HDD58に格納されるプログラムおよびデータには、例えばコンピュータシステム50の全体を制御する基本ソフトウェアであるOS、および、OS上において各種機能を提供するアプリケーションソフトウェア等が含まれる。HDD58は、格納しているプログラムおよびデータを所定のファイルシステムまたはDB(データベース)等により管理する。
外部I/F53は、記録媒体等の外部装置とのインタフェースである。コンピュータシステム50は、外部I/F53を介して記録媒体に対するデータの読み取りおよびデータの書き込みを行うことができる。記録媒体は、一例として、フレキシブルディスク、CD(Compact Disk)、DVD(Digital Versatile Disk)、SDメモリカード、USB(Universal Serial Bus)メモリ等である。
ROM55は、電源を切ってもプログラムおよびデータを保持することができる不揮発性の半導体メモリである。ROM55には、コンピュータシステム50の起動時に実行されるBIOS(Basic Input/Output System)、OS設定、およびネットワーク設定に必要なプログラムおよびデータが格納されている。RAM54は、プログラムおよびデータを一時保持する揮発性の半導体メモリである。
CPU56は、ROM55またはHDD58等の記憶装置からプログラムおよびデータをRAM54上に読み出し、処理を実行することで、コンピュータシステム50全体の制御および機能を実現する。本実施形態に係る端末装置14、認証装置16、および、サービス提供システム20内のそれぞれの装置は、コンピュータシステム50のハードウェア構成により、後述するような各種処理を実現できる。
<サービス提供システム20のソフトウェア機能構成>
図3は、本実施形態に係るサービス提供システム20のソフトウェア機能構成を示す図である。サービス提供システム20は、プログラムを実行することにより、サービス提供部31と、プラットフォームAPI(Application Programming Interface)32と、プラットフォーム33とを実現する。また、サービス提供システム20は、内部に備える記憶装置により管理データ記憶部34を実現する。
サービス提供部31は、各種のサービスアプリ(サービス提供用のアプリケーションプログラム)を実行することにより実現される機能を有する。サービス提供部31は、一例として、ポータルサービスアプリ61、プリントサービスアプリ62、配信サービスアプリ63を有する。
ポータルサービスアプリ61は、ポータルサービス提供装置24がポータルサービス提供用のアプリケーションプログラムを実行することにより実現される。プリントサービスアプリ62は、プリントサービス提供装置22がプリントサービス用のアプリケーションプログラムを実行することにより実現される。配信サービスアプリ63は、配信サービス提供装置23が配信サービス用のアプリケーションプログラムを実行することにより実現される。
ポータルサービスアプリ61は、各種のサービスアプリによるサービスの提供の前提処理として、テナント登録、サービス登録および各種の管理情報の登録処理等を提供する。プリントサービスアプリ62は、印刷データを画像形成装置15に印刷させるプリントサービスを提供する。
配信サービスアプリ63は、データをオンラインストレージ42およびメールサーバ41等のネットワーク上のサーバ(記憶装置)に配信するサービスを提供する。また、この場合において、配信サービスアプリ63は、データに対して1または複数のデータ処理を行い、処理後のデータをネットワーク上のサーバ(記憶装置)に配信してもよい。
なお、サービスアプリは、これらの例に限らず、例えば、記憶した画像データ(投影データ)をプロジェクタに送信するサービス、記憶した画像データ(投影データ)を電子黒板装置に送信するサービス等を提供してもよい。すなわち、サービスアプリは、ユーザが利用する装置に対して何らかのサービスを提供するアプリケーションであればよい。
プラットフォームAPI32は、サービスアプリが、プラットフォーム33と連携して動作するためのインタフェースである。プラットフォームAPI32は、一例として、サービスアプリからの要求をプラットフォーム33が受信するために設けられた予め定義されたインタフェースであり、関数およびクラス等を含む。なお、サービス提供システム20を複数の情報処理装置に分散して構成する場合、プラットフォームAPI32は、例えばネットワーク経由で利用可能な例えばWebAPIであってもよい。
プラットフォーム33は、通信部71と、アクセス制御部72と、設定登録部73と、メール送信部74と、認可設定処理部75と、ライセンス認証部77と、ユーザ認証部78と、ユーザ装置認証部79と、社内連携認証部80と、外部連携認証部81と、データ処理制御部83と、複数の処理キュー84と、複数のデータ処理要求部85と、複数のデータ処理部86とを有する。また、管理データ記憶部34は、管理情報記憶部91(管理情報記憶手段、ワークフロー記憶手段)と、データ処理情報記憶部92と、データ記憶部93とを有する。
通信部71は、ネットワーク上のそれぞれの装置と通信する機能部で、例えばアクセス制御装置21が備える。アクセス制御部72は、ネットワーク上の装置からサービス提供システム20に対して要求される各種のアクセスに応じた制御を実行する機能部で、例えばアクセス制御装置21が備える。
設定登録部73は、管理情報記憶部91に記憶する各種の設定情報を登録する機能部で、例えば認証装置25が備える。メール送信部74は、メールを送信する機能部で、例えば認証装置25が備える。認可設定処理部75は、オンラインストレージ42等の外部サービスに対応する認可設定を行うための機能部で、例えば認証装置25が備える。
ライセンス認証部77は、管理情報記憶部91が記憶するライセンス情報またはテナント情報に基づきライセンスに関する認証を実行する機能部で、例えば認証装置25が備える。ユーザ認証部78は、端末装置14等の装置認証を要さない装置からのログイン要求に基づいてユーザ認証を実行する機能部で、例えば認証装置25が備える。ユーザ装置認証部79は、画像形成装置15等の装置認証を要する装置からのログイン要求に基づいてユーザ認証を実行する機能部で、例えば認証装置25が備える。社内連携認証部80は、ユーザが画像形成装置15等の装置においてオフィス内ネットワークシステム11の認証装置16による認証を行ったときに、認証装置25から取得したユーザ情報を用いてログインする場合のユーザ認証を実行する機能部で、例えば認証装置25が備える。外部連携認証部81は、オンラインストレージ42にログインするための認証処理を実行する機能部で、例えば認証装置25が備える。
データ処理制御部83は、サービスアプリからの要求に基づいて実行するデータ処理を制御する機能部で、例えばデータ処理制御装置26が備える。複数の処理キュー84のそれぞれは、対応する種類のデータ処理に対するサービスアプリからの実行要求情報(メッセージ)を記憶するメッセージキューである。複数の処理キュー84のそれぞれは、データ処理制御部83によりメッセージが登録される。複数の処理キュー84のそれぞれは、例えばデータ処理制御装置26が備える。データ処理要求部85は、自身に割り当てられた処理キュー84を監視し、割り当てられた処理キュー84に登録されたメッセージを取得すると、対応するデータ処理の実行をいずれかのデータ処理部86に要求する機能部で、例えばデータ処理実行制御装置27が備える。
複数のデータ処理部86のそれぞれは、要求に応じたデータ処理を実行する機能部で、例えばデータ処理装置28が備える。データ処理部86は、一例として、サービスアプリから要求されるデータ処理の分割処理、データ形式を変換するデータ形式変換処理(例えば、PDF(Portable Document Format)化する処理)、OCR(Optical Character Recognition)を実行するOCR処理、オンラインストレージ42またはメールサーバ41等にデータを配信(アップロード)する処理等を実行する。なお、データ処理の内容に応じてデータ処理要求部85とデータ処理部86とをデータ処理実行制御装置27が備えるような形態であってもよい。
管理情報記憶部91は、ライセンス情報、テナントID情報、ユーザ情報、装置情報、サービス情報および登録情報等の管理情報を記憶し、例えば認証装置25が備える。データ処理情報記憶部92は、要求されるデータ処理に関する情報を記憶し、例えばデータ処理制御装置26が備える。データ記憶部93は、アプリケーションデータ、印刷データ等およびその他のデータ等を記憶し、例えばデータ処理制御装置26が備える。
<管理情報>
図4は、ライセンス情報のデータ構成例を示す図である。ライセンス情報は、サービス提供システム20に登録されているライセンスを管理するテーブルである。ライセンス情報は、データ項目として、ライセンス種類、ID、登録用コードおよび登録状態等を有する。
ライセンス種類は、ライセンスの種類を表す情報である。ライセンスの種類には、テナント、プリントサービス、配信サービス等がある。IDは、ライセンスのIDであり、ライセンス認証に利用される情報である。登録用コードは、テナントの登録を行う時に利用される情報である。登録状態は、ユーザによるライセンスの登録(IDの登録)が完了している状態か否かを(登録済か未登録かを)示す情報である。
図5は、テナント情報のデータ構成例を示す図である。テナント情報は、サービス提供システム20がサービスを提供することができる組織(グループ、企業、学校等)に関する情報を、組織毎に管理するテーブルである。テナント情報は、データ項目として、テナントID(組織識別情報)、名称、サービスID、サービス種類、有効期限、外部サービスおよびアドレス情報等を有する。
テナントIDは、組織を識別する情報であり、ユーザがテナント登録を行うことで登録される。名称は、企業名または組織名等であり、テナントIDの登録時にユーザ(例えば組織の管理者)により設定される。
サービスIDは、その組織に属するユーザが利用できるサービスを識別する情報であり、テナント登録の後にユーザ(例えば組織の管理者)により設定される。サービス種類は、登録されたサービスの種類を特定する情報である。有効期限は、サービスを利用することができる有効期限であり、例えばそのサービスの利用開始の登録をした時点から有効期限が設定される。外部サービスは、サービス提供システム20と連携してサービスを提供する外部サービスに関する情報である。外部サービスには、例えばオンラインストレージ42によるデータ保存サービス等がある。アドレス情報は、その組織の管理者のメールアドレスであり、テナント登録時に設定される。
図6は、ユーザ情報のデータ構成例を示す図である。ユーザ情報は、サービス提供システム20がサービスを提供することができるユーザに関する情報を、ユーザ毎に管理するテーブルである。ユーザ情報は、データ項目として、テナントID、ログイン用のユーザIDおよびパスワード、社内認証用のユーザID、オンラインストレージ42用のアカウント、パスワード、認可トークン、スコープ、および、アドレス情報等を有する。
テナントIDは、そのユーザの属する組織を識別する情報である。ログイン用のユーザIDおよびパスワードは、サービス提供システム20にログインするためのユーザの識別および認証するための情報である。ログイン用のユーザIDは、ユーザを識別できる情報であればどのような情報であってもよい。
社内認証用のユーザIDは、オフィス内ネットワークシステム11の認証装置16においてユーザを識別および認証するための情報である。社内認証用のユーザIDは、オフィス内ネットワークシステム11の認証装置16においてユーザを識別できるユーザ識別情報であればよく、ユーザが携帯するICカードのカードIDまたは携帯端末の端末ID等であってもよい。
オンラインストレージ42用のアカウントおよびパスワードは、オンラインストレージ42にログインするための識別および認証情報である。認可トークンは、オンラインストレージ42を特定の権限の範囲内で利用するための情報である。スコープは、オンラインストレージ42の利用範囲を特定する情報である。アカウントは、ユーザID、ユーザ名、オンラインストレージ42用のアドレス等であってもよく、ユーザが対象のオンラインストレージ42にログインするときの認証に利用する認証情報であればよい。アドレス情報は、ユーザのメールアドレスである。
なお、オンラインストレージ42は、外部サービスの一例である。アカウント、パスワード、認可トークン、スコープ等の情報は、外部サービスを利用するときに用いられる情報の一例である。また、認可トークンとは、ユーザがサービスを利用するときに、どのサービスを利用するか、どのリソースへのアクセスを許可するか等といったサービスの利用における利用範囲(権限)のことであり、例えばOAuthと呼ばれるAPI認可の標準的技術を利用して認可の設定を行うことができる。サービス提供システム20から、オンラインストレージ42等の外部サービスを利用する視点で見ると、外部サービスは、OAuthのサービスプロバイダの役割を果たし、サービス提供システム20はOAuthのコンシューマの役割を果たす。
図7は、装置情報のデータ構成例を示す図である。装置情報は、サービス提供システム20から提供されるサービスを利用することができる装置に関する情報を管理するテーブルである。装置情報は、データ項目として、テナントID、装置ID、サービスID、サービス種類、利用開始日および利用終了日等を有する。
テナントIDは、その装置が用いられている組織を識別する情報である。装置IDは、装置を識別する情報であり、装置認証に利用される。装置IDは、一例として、装置の機体番号等である。サービスIDおよびサービス種類は、その装置が提供を受けることができるサービスの識別情報および内容である。利用開始日は、その装置に対するサービスの提供の開始日である。利用終了日は、その装置に対するサービスの提供の終了日である。
装置情報に登録された装置は、サービスIDの利用開始日から利用終了日までの間、登録したサービスIDのサービスを利用することができる。なお、サービスの種類またはライセンスの種類によっては有効期限が無期限のもの(実質的に期限の制約がないもの)があってもよい。また、装置情報に登録されていない装置であっても、サービス提供システム20が提供するサービス(機能)を利用することはできる。ただし、サービスが提供する一部の機能については装置認証を行わなければ利用できないものがある。
なお、本実施形態においては、装置情報の登録を要さない装置の一例として端末装置14、登録を要する装置の一例として画像形成装置15が挙げられる。また、端末装置14において利用できる機能の一例として、各種の管理情報の登録、印刷対象データの投入または削除が挙げられ、画像形成装置15において利用できる機能の一例として印刷データの取得、配信データの送信が挙げられる。なお、どのような機能を利用するときに装置認証を要し、どのような機能を利用するときに装置認証を要さないかは、サービスを提供する提供者側が決めればよく、装置認証を要さないサービスがあってもよい。
図8は、外部サービス情報のデータ構成例を示す図である。外部サービス情報は、外部サービスに関する情報を管理するテーブルである。外部サービス情報は、データ項目として、外部サービスID、サービス名、クライアントID、クライアントシークレット、プロダクト名、スコープ、認可先URL(Uniform Resource Locator)、およびリダイレクト先URL等を有する。
外部サービスIDは、外部サービスを特定(識別)する情報である。サービス名は、外部サービスの名称である。クライアントIDは、外部サービスによって発行される、外部サービスがサービス提供システム20を特定する情報である。クライアントシークレットは、クライアントIDの本人性を保証するための秘密情報であり、パスワードのような役割を果たす情報である。プロダクト名は、サービスアプリを特定する情報である。スコープは、外部サービスの利用範囲を特定する情報である。認可先URLは、外部サービスが備える認可システムのURL(例えば外部サービスが備える認可サーバのURL)である。リダイレクト先URLは外部サービスからリダイレクトされるサービス提供システム20のURL(例えば認可設定処理部75の認可クライアントとしての機能のURL)である。
図9は、サービス情報のデータ構成例を示す図である。サービス情報は、サービスに対して追加することが可能なオプションを管理するテーブルである。サービス情報は、データ項目として、サービス名称、サービスIDおよびオプション等を有する。
サービス名は、サービス内容の概略を示す名称である。サービスIDは、サービスを識別する情報である。オプションは、当該サービスのメインのデータ処理に追加をすることが可能なデータ処理の一覧を示す。例えば、図9の例では、配信サービスのオプションとして、ユーザは、文字認識(OCR処理)、ファイル形式の変換(例えばPDF化処理)、画像補正、バーコード読み取り、および、文書情報の抽出等のデータ処理を追加することができる。また、例えば、プリントサービスのオプションとして、ユーザは、上限管理処理(ユーザ毎のプリント可能枚数の上限を管理する処理)を追加することができる。
サービス提供システム20は、このようなサービス情報を管理することにより、そのサービスのメインのデータ処理に他のデータ処理を加えたサービスを提供することができる。
図10は、登録情報のデータ構成例を示す図である。登録情報は、登録済みのサービスを管理するテーブルである。登録情報は、データ項目として、テナントID、サービス名、サービスID、利用可能オプションおよびワークフロー等を有する。
テナントIDは、登録したサービスを利用できる組織を識別する情報である。サービス名は、登録したサービスの名称である。サービスIDは、登録したサービスを識別する情報である。
利用可能オプションは、登録したサービスのメインのデータ処理とともに利用可能なオプションのデータ処理の一覧を示す。この利用可能オプションは、サービスの登録時において、ユーザにより図9のオプションに示されたデータ処理の中から選択される。なお、図10では、利用可能オプションのボックス内の一番上に、メインのデータ処理(配信処理(A))を示し、2番目以降にオプションのデータ処理(OCR処理(B)、PDF化処理(C)、バーコード処理(D)、画像補正処理(E)等)を示している。また、図10の2番目の行の利用可能オプションのボックスに示されるように、オプションのデータ処理として、指定されたフォルダにデータを配信するフォルダ配信(B)が含まれていてもよい。
ワークフローは、利用可能オプションとして選択したデータ処理の実行順序を示す情報である。ワークフローは、例えば、サービスの登録時において、ユーザ(管理者)により、図10の利用可能オプションに示されたデータ処理を組み合わせて作成される。
上述からもわかるように、テナントIDは、ユーザが属する組織(グループ、企業、学校等)を識別する情報である。テナントIDは、サービス提供システム20が提供するサービスと、サービスを利用するユーザと、サービスを利用する装置とに関連付き、サービス提供システム20が、ユーザ、装置、サービスを、組織単位で管理するための情報である。また、テナントIDは、サービス提供システム20が提供できるサービスのうち、どのサービスを、どのユーザに、さらにはどの装置に提供するかといった利用対象を特定する情報(利用対象特定情報)である。
<テナントIDおよびサービス登録時の処理フロー>
図11は、テナントIDおよびサービス登録時の処理フローを示す図である。
まず、テナントIDの登録を行いたいユーザ(例えば、企業や組織の管理者)は、予め、サービス提供システム20のサービス提供者(例えば、サービスの提供販売を行う担当者)からテナントID(第1のサービス識別情報)および登録用コード(登録用情報)を取得する。なお、取得方法は、直接サービス提供者から取得する方法またはサービス提供者が運営する専用サイトに、ユーザの端末装置14がアクセスして取得する方法等が例として挙げられる。その後、ユーザは、端末装置14からサービス提供システム20のポータルサイトにアクセスする(ステップS11)。
サービス提供システム20のアクセス制御部72は、ポータルサイトへのアクセスであることから、アクセスを許可し、端末装置14にポータルサービスアプリ61(第1のサービス)にアクセスをさせる。ポータルサービスアプリ61は、端末装置14の表示装置52にトップ画面を表示させる。ユーザは、端末装置14の入力装置51を操作し、トップ画面から、ログインを要求するか、新規のテナント登録を要求するかを選択できる。ここでは新規のテナント登録を要求したものとして説明を進める。なお、管理情報記憶部91のユーザ情報に登録されたユーザ(管理者またはその他のユーザ)であれば、テナントID、ユーザIDおよびパスワードを入力してログインすることができる。
新規のテナント登録が要求されると(登録依頼)、サービス提供システム20のポータルサービスアプリ61は、テナントIDの仮登録を行うための入力画面を端末装置14の表示装置52に表示する。ユーザは、端末装置14の入力装置51を操作して、テナントIDの仮登録を行うための入力を行った後、仮登録の要求を行う(ステップS12)。
入力画面において入力される情報は、サービスを利用する国または地域に関する情報(利用区域情報と言う場合がある。)の入力、サービスを利用する国または地域に応じて表示される利用規約(約款)に同意することを示す情報、テナントID、登録用コード、メールアドレス、使用言語等である。よって、サービス提供システム20は、利用する国または地域に応じた利用規約(約款)情報を保持しており、ユーザが選択して入力した利用区域情報に応じた利用規約を入力画面に表示する表示制御を行い、利用規約に同意するか否かをユーザに選択させる。
ユーザの端末装置14から仮登録が要求されると、ポータルサービスアプリ61は、入力されたテナントIDおよび登録用コードの正当性の確認処理をライセンス認証部77(ライセンス認証手段)に要求する。要求を受け付けたライセンス認証部77は、ライセンス認証処理を実行し、管理情報記憶部91(ライセンス情報記憶手段)が記憶するライセンス情報に、入力されたテナントIDおよび登録用コードが記憶されているかを判断(照合)する。ライセンス認証部77は、記憶されていた場合に該当するテナントIDの登録状態が「未登録」であれば、入力されたテナントIDおよび登録用コードが正当な情報であると判定する(入力されたテナントID(ライセンス)を認証する。)。
ライセンス認証部77は、ライセンス認証の結果をポータルサービスアプリ61に通知する。ここで、テナントIDおよび登録用コードが正当である場合、ポータルサービスアプリ61は、設定登録部73(登録手段)にテナントIDとメールアドレスと利用区域情報の登録を要求する。設定登録部73は、ポータルサービスアプリ61からの要求に応じて管理情報記憶部91のテナント情報にテナントID、メールアドレスおよび利用区域情報を登録(記憶)する。設定登録部73による登録が行われると、ポータルサービスアプリ61は、本登録用の画面を表示するためのアクセス先である本登録用URLを生成し、本登録用URLが記載されたメールを作成し、メール送信部74にメールの送信を要求する。
メール送信部74は、端末装置14においてユーザにより入力されたメールアドレスを宛先としたメールを送信する。メール送信部74によってメールが送信されると、ポータルサービスアプリ61は、端末装置14の表示装置52にメールを送信した旨の通知画面を表示させる。なお、生成した本登録用URLは、生成時からの有効期限(例えば、一時間等)で管理される。また、メールには、テナントIDおよび登録用コードの内、少なくともいずれかの情報は記載されていないものとする。
次に、ユーザは、端末装置14により受信したメールに記載されている本登録用URLへとアクセスする。なお、このときアクセスする端末装置14は、仮登録時と同一の端末装置14でなくてもよい。アクセス制御部72は、ポータルサービスアプリ61(ポータルサービス提供装置24)へとアクセスさせる。ポータルサービスアプリ61は、本登録用URLへのアクセスが正当かを(生成した本登録用URLへのアクセスであり、かつ有効期限内のアクセスであるかを)確認する。ポータルサービスアプリ61は、正当であれば、本登録画面を端末装置14の表示装置52に表示させる。ユーザは、端末装置14の入力装置51を操作して、テナントIDの本登録を行うための入力を行った後、本登録の要求を行う(ステップS13)。
本登録画面において入力される情報は、テナントID、名称および登録用コード等のテナント情報と、ログイン用のユーザID、パスワードおよびメールアドレス等のユーザ情報である。なお、ポータルサービスアプリ61は、仮登録でユーザが既に入力しているテナントIDまたは登録用コードのいずれかを予め入力した状態で表示してもよい。ただし、テナントIDまたは登録用コードのうち、少なくともユーザに入力させる情報のいずれかは、本登録用URLのメールに記載されていないものとする。
ユーザの端末装置14から本登録が要求されると、ポータルサービスアプリ61は、入力されたテナントIDおよび登録用コードに基づくライセンスの有効化処理(本登録処理)をライセンス認証部77に要求する。要求を受け付けたライセンス認証部77は、ライセンス認証処理を実行する。具体的には、ライセンス認証部77は、管理情報記憶部91が記憶するライセンス情報に、入力されたテナントIDおよび登録用コードが記憶されているかを判断し、記憶されていた場合に該当するテナントIDの登録状態が「未登録」であれば、入力されたテナントIDおよび登録用コードが正当な情報であると判定する。そして、ライセンス認証部77は、テナントIDおよび登録用コードが正当であると判定した場合、設定登録部73に、ライセンス情報の状態変更を要求する。
設定登録部73は、管理情報記憶部91が記憶するライセンス情報における、正当なテナントIDおよび登録用コードに関連付く「状態情報」の値を「登録済」に変更する。有効化処理が完了すると、ポータルサービスアプリ61は、ユーザが端末装置14において入力した名称およびユーザ情報の登録を設定登録部73に要求する。設定登録部73は、管理情報記憶部91が記憶するテナント情報に名称を登録し、ユーザ情報にテナントID、ログイン用のユーザIDおよびパスワード、メールアドレス等を登録する。
設定登録部73による各種情報の設定の登録が完了すると、ポータルサービスアプリ61は、組織登録完了通知が記載されたメールを作成し、メール送信部74にメール送信を要求する。メール送信部74は、ユーザが端末装置14において入力したメールアドレス宛に組織登録完了通知が記載されたメールを送信する。そして、ユーザは、端末装置14の表示装置52に表示した組織登録完了画面を確認する。このようにして、テナントIDとユーザIDおよびパスワードの登録が完了することで、ユーザは、次回からポータルサイトのトップ画面からログインすることができ、ログイン後に、テナントIDに関連付く、テナント情報、ユーザ情報、装置情報の登録処理を行うことができる。
次に、ユーザ(管理者)は、端末装置14の入力装置51を操作し、ポータルサイトのトップ画面からテナントID、ユーザIDおよびパスワードを入力してログインを要求する。要求を受け付けたポータルサービスアプリ61は、ユーザ認証部78にユーザ認証を要求する。ユーザ認証部78は、管理情報記憶部91のユーザ情報において端末装置14から受信したテナントID、ユーザIDおよびパスワードが記憶されているかを判断(照合)し、記憶されている場合にユーザを認証する。ユーザ認証部78によりユーザが認証されると、ポータルサービスアプリ61は、ログインを許可する。
そして、ログインしたユーザは、利用したいサービスのサービス登録を行う(ステップS14)。ユーザは、サービス登録をする場合、端末装置14の入力装置51を操作し、端末装置14の表示装置52に表示されたサービス登録画面からサービスIDを入力してサービス登録を要求する。
ユーザの端末装置14からサービス登録が要求されると、ポータルサービスアプリ61は、管理情報記憶部91のライセンス情報から、受信したサービスIDと一致するライセンスIDに関連付くライセンス種類(サービス種類)を取得する。さらに、ポータルサービスアプリ61は、テナント情報からテナントIDに対応付く利用区域情報を取得する。そして、ポータルサービスアプリ61は、ライセンス種類と利用区域情報に応じた利用規約(約款)を端末装置14の表示装置52に表示し、利用規約に同意するか否かをユーザに選択させる。すなわち、サービス提供システム20は、サービス(ライセンス種類)毎に利用する国または地域に応じた利用規約(約款)情報を保持しており、ユーザが選択して入力した利用区域情報に応じた利用規約を表示する表示制御を行う。
ユーザが端末装置14の入力装置51を操作して利用規約に同意する選択を入力した場合、ポータルサービスアプリ61は、端末装置14から受信したテナントIDおよびサービスIDに基づくサービスの登録処理をライセンス認証部77に要求する。ライセンス認証部77は、管理情報記憶部91のライセンス情報に端末装置14から受信したサービスID(ライセンスID)が記憶されているかを確認(照合)し、記憶されていれば正当なサービスIDと判定する(サービスIDを認証する)。
正当なサービスIDと判定した場合、ライセンス認証部77は、設定登録部73にサービスIDの登録を要求する。設定登録部73は、管理情報記憶部91が記憶するテナント情報に対して、端末装置14から受信したテナントIDに関連付けてサービスIDを登録する。
次に、ユーザは、サービスIDの装置登録を行う(ステップS15)。ユーザは、端末装置14の入力装置51を操作し、端末装置14の表示装置52に表示された装置登録画面からサービスIDと、当該サービスIDによってサービスの利用を可能とさせる装置の装置IDとを入力し、サービスIDの装置登録を要求する。
ユーザの端末装置14からサービスIDの装置登録が要求されると、ポータルサービスアプリ61は、端末装置14から受信したテナントID、サービスIDおよび装置IDに基づくサービスIDの装置登録処理をライセンス認証部77に要求する。ライセンス認証部77は、管理情報記憶部91のテナント情報において、端末装置14から受信したテナントIDおよびサービスIDが記憶されているかを判断(照合)し、記憶されている場合、ライセンス情報において端末装置14から受信したサービスID(ライセンスID)の登録状態が「未登録」であるかを判断する。
登録状態が「未登録」であれば(サービスIDの装置登録が行われていないサービスIDであれば)、ライセンス認証部77は、設定登録部73にサービスIDの装置登録を要求する。設定登録部73は、管理情報記憶部91の装置情報に、端末装置14から受信したテナントID、装置IDおよびサービスIDと、これに基づくライセンス情報と、テナント情報から特定されるサービス種類、利用開始日および利用終了日等の情報とを登録する。
利用開始日には、例えば、装置登録をした日が記憶される。利用終了日には、当該レコードの利用開始日を起点とした場合の、契約情報に含まれているライセンス期間の最終日が記憶される。ただし、ライセンスの利用開始要求において、利用開始日が指定可能とされてもよい。この場合、ライセンスの利用開始要求に指定された利用開始日が、当該レコードの利用開始日に記憶されてもよい。
サービスIDの装置登録が完了すると、設定登録部73は、さらに、装置登録を行ったサービスIDのライセンス情報における登録状態を「登録済」へと変更する。この後、ユーザは、端末装置14の入力装置51を操作し、登録をしたサービスに対して利用可能オプションを登録することができる。
<データ処理機能>
図12は、サービス提供システム20内でのデータ処理時のデータの流れを示す図である。図13は、サービス提供システム20内でのデータ処理のフローを示す図である。
サービス提供システム20において、プラットフォーム33のデータ処理制御部83(データ処理制御手段)、複数の処理キュー84(実行要求記憶手段)、複数のデータ処理要求部85、複数のデータ処理部86(データ処理手段)が、サービスアプリから要求される種々のデータ処理を実行する処理について説明する。なお、複数の処理キュー84は、メッセージキュー102を構成する。
それぞれのサービスアプリは、処理要求部101を有する。まず、サービスアプリの処理要求部101は、処理の対象となるデータ(アプリケーションデータまたは画像データ等の処理対象データ)をデータ記憶部93に記録するとともに、データ処理制御部83に実行要求情報であるデータ処理要求(リクエストと呼ぶ場合もある。)を送信する(ステップS21)。リクエストには、データ処理の処理内容と、処理対象データの記録先の記憶装置の情報(例えばURI等)が含まれている。
データ処理制御部83は、受け取ったリクエストを解析して、メッセージキュー102内の処理内容に応じた処理キュー84にメッセージを登録するとともに、データ処理情報記憶部92にリクエストを登録する(ステップS22)。リクエストには、データの記録先、データ処理の処理内容、リクエストの状態が含まれている。リクエストの状態としては、「受付」、「実行中」、「完了」等がある。リクエストの状態は、データ処理の処理状況を示すステータスを表す。リクエストの状態は、データ処理制御部83が登録した段階では「受付」の状態となっている。
複数のデータ処理要求部85のそれぞれには、1または複数の処理キュー84が割り当てられている。複数のデータ処理要求部85のそれぞれは、割り当てられた処理キュー84を監視し、処理キュー84に登録されたメッセージを取得する(ステップS23)。
図12の例では、第1のデータ処理要求部85−1が「第1の処理キュー84−1」と「第2の処理キュー84−2」とを監視する。また、第2のデータ処理要求部85−2が「第1の処理キュー84−1」と「第2の処理キュー84−2」と「第3の処理キュー84−3」とを監視する。また、第M(Mは2以上の整数)のデータ処理要求部85−Mが「第N(Nは2以上の整数)の処理キュー84−N」を監視する。なお、どのように割り当てるかは適宜設定、変更することが可能である。
複数のデータ処理部86のそれぞれは、データ処理を実行する。複数のデータ処理部86のそれぞれは、他のデータ処理部86と異なるデータ処理を実行してもよいし、同一のデータ処理を実行してもよい。複数のデータ処理要求部85のそれぞれは、割り当てられた処理キュー84から取得したメッセージに基づき、データ処理情報記憶部92からリクエストを取得する。そして、複数のデータ処理要求部85のそれぞれは、要求される処理を、リクエストに示されたデータ処理に対応するデータ処理部86に実行させる(ステップS24)。例えば、複数のデータ処理要求部85のそれぞれは、第1から第L(Lは2以上の整数)のデータ処理部86−1〜86−Lのいずれかにデータ処理を実行させる。
次に、複数のデータ処理要求部85のそれぞれは、データ処理部86が実行した処理の実行結果を受け取る。そして、複数のデータ処理要求部85のそれぞれは、実行結果からリクエストを更新し(メッセージから行った処理を削除し、リクエストの状態に変更があれば変更する等)、更新したリクエストをデータ処理情報記憶部92に登録する。また、複数のデータ処理要求部85のそれぞれは、次に行うデータ処理があれば、対応する処理キュー84にメッセージを登録する(ステップS25)。
なお、取得した処理対象データに対するデータ処理を行ったことで処理前と処理後の処理対象データとが異なるデータとなる場合、データ処理部86は、処理後の処理対象データをデータ記憶部93に記録し、処理後の処理対象データの記録先をリクエストに含める。
ここで、複数のデータ処理部86のそれぞれが実行するデータ処理の具体例をいくつか挙げる。なお、データ処理の内容は、ここに示した具体例に限られない。
データ処理部86は、オンラインストレージ42にデータを送信する配信処理を実行する。また、データ処理部86は、オンラインストレージ42からデータを受信する受信処理を実行する。また、データ処理部86は、メールサーバ41にメールを送信する配信処理を実行する。また、データ処理部86は、メールサーバ41からメールを受信する受信処理を実行する。
また、データ処理部86は、画像データ内の文字を認識してテキストデータを生成する処理(OCR処理)を実行する。また、データ処理部86は、画像データを他のデータ形式に変換する変換処理(例えばPDFデータに変換するPDF化処理)を実行する。また、データ処理部86は、文書データをPDL(Page Description Language)データに変換する変換処理を実行する。また、データ処理部86は、画像データの補正処理を実行する。補正処理は、一例として、傾きの補正、ノイズおよびパンチ穴等の除去、天地識別、解像度変換、白紙の除去等である。また、データ処理部86は、画像データに含まれているバーコードの認識処理、および、バーコードが付いた用紙を仕切りに文書を分割する処理を実行する。また、データ処理部86は、画像データを例えばZip形式等に圧縮するアーカイバー処理を実行する。また、データ処理部86は、条件によって以後に実行する処理または配信先を分岐させるフロー分岐処理を実行する。また、データ処理部86は、画像データの画像形式を変換する画像変換を実行する。また、データ処理部86は、条件に従い書誌情報を置換する文書情報置換を実行する。また、データ処理部86は、書誌情報に含まれるテーブルを条件に従い置換するテーブル置換を実行する。また、データ処理部86は、任意のページのみを選択して配信させるセッション指定入力処理を実行する。また、データ処理部86は、書誌情報の出力形式をXML(Extensible Markup Language)からXSL(Extensible Stylesheet Language)に変換するスタイルシート変換を実行する。
また、データ処理部86は、メールの作成処理を実行する。また、データ処理部86は、データを所定の記憶領域に保存する保存処理を実行する。また、データ処理部86は、オンラインストレージ42の所定のフォルダにデータが格納されたか否かを監視する監視処理を実行する。
また、データ処理部86は、複数の処理キュー84に登録されたメッセージのうち、削除指示がされたリクエストを削除する削除処理を実行する。また、データ処理部86は、複数の処理キュー84に登録されたリクエストのうち、優先指示がされたリクエストを、対応するデータ処理部86に優先して処理させる優先処理を実行する。また、データ処理部86は、リクエストに対するデータ処理が失敗した場合にエラー処理を実行する。
<ユーザ認証および機器認証機能>
図14は、認証処理のシーケンスを示す図である。
ユーザが端末装置14から認証を行う場合、端末装置14は、サービス提供システム20へのログイン用のテナントID、ユーザIDおよびパスワードを入力する入力画面を表示して、ログイン情報を受け付ける(ステップS31)。ログイン情報(ログイン用のテナントID、ユーザIDおよびパスワード)をユーザが入力し、サービス提供システム20へのログインを要求すると、端末装置14は、入力されたログイン情報の認証要求(ユーザ装置認証の要求)をサービス提供システム20に送信する(ステップS32)。そして、サービス提供システム20のアクセス制御部72は、端末装置14からログイン情報を受信し、ユーザ認証部78に認証を要求する。
ユーザ認証部78は、管理情報記憶部91が記憶するユーザ情報に、端末装置14から受信したテナントID、ログイン用のユーザIDおよびパスワードの組合せが存在するかを確認し、存在すればユーザ認証が成功したと判断する(ステップS33)。ユーザ認証部78は、これらの組合せが存在しなければユーザ認証が失敗したと判断する。ユーザ認証が成功した場合、ユーザ認証部78は、サービス提供システム20へのログイン(サービスを利用するためのログイン)を許可する。そして、アクセス制御部72は、認証結果を示すログイン応答を端末装置14に返信する(ステップS34)。
画像形成装置15は、サービス提供システム20へログインを行うために、ログイン用のユーザID(第1のユーザ識別情報)およびパスワード(第1のユーザ認証情報)を利用するか、社内認証用のユーザID(第2のユーザ識別情報)を利用するかの設定を保持する。なお、この設定は、管理者等により適宜変更可能である。また、画像形成装置15は、テナントID(組織認証情報)と装置ID(装置識別情報)とを自身の記憶領域に保持している。
ユーザが画像形成装置15から認証を行う場合であって、ログイン用のユーザID(第1のユーザ識別情報)およびパスワード(第1のユーザ認証情報)を利用する設定の場合、画像形成装置15は、サービス提供システム20へのログイン用のユーザIDおよびパスワードを入力する入力画面を表示して、ログイン情報を受け付ける(ステップS35)。ログイン情報(ログイン用のユーザIDおよびパスワード)をユーザが入力し、サービス提供システム20へのログインを要求すると、画像形成装置15は、入力されたログイン情報、および、保持するテナントIDおよび装置ID(装置認証情報)の認証要求(ユーザ装置認証の要求)をサービス提供システム20に送信する(ステップS36)。そして、サービス提供システム20のアクセス制御部72(認証情報受信手段)は、画像形成装置15からこれらの情報を受信し、ユーザ装置認証部79(認証手段)に認証を要求する。
ユーザ装置認証部79は、管理情報記憶部91が記憶する装置情報に、画像形成装置15から受信したテナントIDおよび装置IDの組合せが存在するかを確認し、存在すれば装置認証が成功したと判断する(ステップS37)。ユーザ装置認証部79は、テナントIDおよび装置IDの組合せが存在しなければ装置認証が失敗したと判断する。また、さらに、ユーザ装置認証部79は、管理情報記憶部91が記憶するユーザ情報に、画像形成装置15から受信したテナントIDおよびログイン用のユーザIDおよびパスワードの組合せが存在するかを確認し、存在すればユーザ認証が成功したと判断する。ユーザ装置認証部79は、テナントID、ログイン用のユーザIDおよびパスワードの組合せが存在しなければユーザ認証が失敗したと判断する。装置認証およびユーザ認証が成功した場合に、ユーザ装置認証部79は、サービス提供システム20へのログイン(サービスを利用するためのログイン)を許可する。そして、アクセス制御部72は、認証結果を示すログイン応答を画像形成装置15に返信する(ステップS38)。
ユーザが画像形成装置15から認証を行う場合であって、社内認証用のユーザID(第2のユーザ識別情報)を利用する設定の場合、ユーザは、画像形成装置15においてユーザ認証を実行する。このユーザ認証は、画像形成装置15を利用する、あるいは画像形成装置15の特定の機能を利用するために実行するユーザ認証である。ここでは、ユーザが携帯するカードIDによるユーザ認証を認証装置25が行う例で説明する。
まず、ユーザは、画像形成装置15と接続するカードリーダにカードIDを読み取らせる(ステップS39)。このとき、ユーザは、パスワード(第2のユーザ認証情報)も合わせて入力してもよい。画像形成装置15は、カードリーダにより読み取られたカードIDを、認証装置25に送信してユーザ認証を要求する(ステップS40)。認証装置25は、カードIDとユーザIDを関連付けたユーザ認証情報を記憶領域に記憶しており、受信したカードIDに関連付くユーザIDおよびパスワードを特定できるかを確認する。認証装置25は、ユーザIDが特定できた場合に、ユーザ認証が成功したと判断する(ステップS41)。認証装置25は、認証成功の認証結果とともに特定したユーザIDを画像形成装置15に送信する(ステップS42)。
次に、ユーザがサービス提供システム20へのログインを要求すると(例えば表示画面からサービス提供システム20へのログインを選択する)、画像形成装置15は、特定したユーザIDと、保持するテナントIDおよび装置ID(装置認証情報)の認証要求(社内連携認証の要求)をサービス提供システム20に送信する(ステップS43)。アクセス制御部72(認証情報受信手段)は、画像形成装置15からこれらの情報を受信し、社内連携認証部80(認証手段)に認証を要求する。
社内連携認証部80は、管理情報記憶部91が記憶する装置情報に、画像形成装置15から受信したテナントIDおよび装置IDの組合せが存在するかを確認し、存在すれば装置認証が成功したと判断する(ステップS44)。社内連携認証部80は、テナントIDおよび装置IDの組合せが存在しなければ装置認証が失敗したと判断する。また、さらに、社内連携認証部80は、管理情報記憶部91が記憶するユーザ情報に、画像形成装置15から受信したテナントIDおよび社内認証用のユーザIDの組合せが存在するかを確認し、存在すればユーザ認証が成功したと判断する。社内連携認証部80は、テナントIDおよび社内認証用のユーザIDの組合せが存在しなければユーザ認証が失敗したと判断する。装置認証およびユーザ認証が成功した場合に、社内連携認証部80は、サービス提供システム20へのログイン(サービスを利用するためのログイン)を許可する。そして、アクセス制御部72は、認証結果を示すログイン応答を画像形成装置15に返信する(ステップS45)。
なお、社内連携認証部80によって、装置認証が成功し、ユーザ認証が成功しなかった場合に、サービス提供システム20は、画像形成装置15に、ログイン用のユーザIDおよびパスワードを入力する画面の画面情報を送信して、入力画面を表示させてもよい。この場合、ユーザがログイン用のユーザIDおよびパスワードを入力して、再度ログインを要求すると、画像形成装置15は、入力されたログイン用のユーザIDおよびパスワードをサービス提供システム20のユーザ装置認証部79に送信し、ログインを要求する。ユーザ装置認証部79は、管理情報記憶部91が記憶するユーザ情報に、画像形成装置15から受信したテナントIDおよびログイン用のユーザIDおよびパスワードの組合せが存在するかを確認し、存在すればユーザ認証が成功したと判断してサービス提供システム20へのログインを許可する。さらに、ログインが成功したことに応じて、設定登録部73は、管理情報記憶部91が記憶するユーザ情報に存在する、画像形成装置15から受信したテナントIDおよびログイン用のユーザIDおよびパスワードに関連付けて、画像形成装置15から受信した社内認証用のユーザIDを登録する。このようにすることで、ユーザは、次回からユーザが画像形成装置15からログインするときには、社内認証用のユーザIDを利用してログインすることが可能となる。
<オンラインストレージ42との連携>
<認可設定>
図15は、オンラインストレージ42に対してアクセスする場合の処理フローを示す図である。
端末装置14の入力装置51を操作してサービス提供システム20にログインした管理者(ユーザ)は、端末装置14の表示装置52に表示された外部サービスの登録画面において、管理情報記憶部91の外部サービス情報に記憶されている外部サービスの一覧から利用したいオンラインストレージ42(外部サービス)を選択する。端末装置14は、ユーザによりいずれかのオンラインストレージ42が選択されると、サービス提供システム20に選択したオンラインストレージ42の登録を要求する。
登録要求を受信したポータルサービスアプリ61は、選択されたオンラインストレージ42の登録を設定登録部73に要求する。設定登録部73は、管理情報記憶部91のテナント情報に、管理者のテナントIDに対応付けて、選択されたオンラインストレージ42を登録する(ステップS51)。
次に、管理者は、ポータルサイトの認可の設定画面において、認可設定を適用させたいユーザのユーザID、認可設定を行う外部サービスID(あるいは外部サービスのサービス名)およびユーザに設定するスコープを選択する。これらの情報が選択されると、端末装置14は、サービス提供システム20に認可設定の登録を要求する。そして、ポータルサービスアプリ61は、認可設定の要求を受信する(ステップS52)。
認可設定の要求を受信したポータルサービスアプリ61は、認可設定処理部75に認可設定を要求する。認可設定処理部75は、管理情報記憶部91の外部サービス情報から認可の設定に必要なパラメータを取得する(ステップS53)。認可の設定に必要なパラメータには、管理者によって選択されたユーザID、外部サービスID、スコープの他に、選択された外部サービスIDに対応付くクライアントID、リダイレクト先URL、セッションを維持するための任意のセッションキー等が含まれる。
認可の設定に必要なパラメータを取得した認可設定処理部75は、管理情報記憶部91の外部サービス情報から選択された外部サービスIDに対応付く認可先URLを取得する。そして、認可設定処理部75は、設定に必要なパラメータを含めたリクエスト(設定に必要なパラメータをGETリクエストのクエリとしたリクエスト)を、端末装置14から認可先URLにリダイレクトさせる(ステップS54)。
なお、リクエストをリダイレクトさせることで、端末装置14とオンラインストレージ42との間で認可設定が行われる。認可設定後、さらにオンラインストレージ42から認可設定処理部75にリダイレクトされる。このため、端末装置14とオンラインストレージ42との間は、HTTPレベルでのセッションが途切れることになる。そこで、端末装置14およびオンラインストレージ42は、同一のセッションを維持するためにセッションキーを利用する。
リダイレクトされたオンラインストレージ42は、端末装置14にログイン画面を表示する。管理者は、端末装置14のログイン画面からオンラインストレージ42へのログインを要求する。ログインが成功すると、オンラインストレージ42は、端末装置14に認可画面を表示する。管理者は、認可画面を確認して、認可を行う場合は、端末装置14を操作して認可を要求する(例えば認可画面に表示されている認可ボタンを押下する)。そして、認可登録の要求を受信したオンラインストレージ42は、認可の登録を行い、認可が認められたことを示す認可コードとセッションキーとを端末装置14からリダイレクト先URLにリダイレクトさせる。このリダイレクトによって、サービス提供システム20の認可設定処理部75は、認可コードを受信する(ステップS55)。なお、オンラインストレージ42へのリダイレクト時に管理者が既にログイン済みであれば、ログイン画面の表示は省略される。
認可コードを受信した認可設定処理部75は、管理情報記憶部91の外部サービス情報から認可トークンの取得に必要なパラメータを取得する(ステップS56)。認可トークンの取得に必要なパラメータは、受信した認可コードである。また、必要なパラメータは、一例として、認可コードを送信したオンラインストレージ42の外部サービスIDに対応付くクライアントID、クライアントシークレット等である。
次に、認可設定処理部75は、取得したクライアントIDおよびクライアントシークレットと、受信した認可コードをオンラインストレージ42に送信し、認可トークンの取得を要求する(ステップS57)。オンラインストレージ42は、受信した認可コードを検証し、認可トークンをサービス提供システム20の認可設定処理部75に送信する。認可トークンを受信した認可設定処理部75は、設定登録部73に認可トークンの登録を要求する(ステップS58)。設定登録部73は、管理情報記憶部91のユーザ情報に、選択されたユーザに対する認可トークンとスコープを登録する。認可トークンの登録が完了すると、認可設定処理部75は、ポータルサービスアプリ61に登録完了を通知する。ポータルサービスアプリ61は、端末装置14に認可設定の設定結果を示す画面を表示する。
なお、オンラインストレージ42は、認可トークンをサービス提供システム20に送信するときに、認可トークンの有効期限、および、有効期限が切れた場合に認可トークンを再発行するためのリフレッシュトークンを併せて送信してもよい。
つぎに、外部サービス(オンラインストレージ42等)との連携処理についてさらに説明する。サービス提供システム20にログインしているユーザが端末装置14または画像形成装置15等から、サービス提供システム20を利用して外部サービスと連携する処理を要求すると、外部連携認証部81は、外部サービスへのログイン処理を行う。
外部連携認証部81は、例えばデータ処理要求部85(またはデータ処理部86)から指定の外部サービス(オンラインストレージ42)へのログイン要求を受信すると、管理情報記憶部91のユーザ情報から、サービス提供システム20にログインしているユーザに関連付く(具体的にはログインしているユーザのテナントID、ログイン用のユーザIDおよびパスワードに関連付く)指定の外部サービス(オンラインストレージ42)のログイン処理に要する情報(第3のユーザ認証情報)を取得する。例えば、図6に示した、オンラインストレージAへのログインであれば、オンラインストレージAのアカウントおよびパスワードを取得し、オンラインストレージBへのログインであれば、オンラインストレージBのアカウントおよび認可トークンを取得する。
連携する外部サービスが、図6に示した、オンラインストレージAのように認可設定がされておらずログイン処理のみを行う外部サービスであれば、外部連携認証部81は、オンラインストレージAに対して取得したアカウントおよびパスワード(外部サービスに対する認証情報)によるログイン要求を送信する。ログイン要求を受信したオンラインストレージAは、受信したアカウントおよびパスワードに対する認証を実行する。ログイン要求を受信したオンラインストレージAは、認証が成功すれば、ログインを許可する旨の応答を、認証が失敗すれば、ログインを許可しない旨の応答を外部連携認証部81に送信する。
外部連携認証部81が、オンラインストレージAからログインを許可する旨の応答を受信することで、サービス提供システム20は、例えばオンラインストレージAへのデータのアップロード(保存)、または、オンラインストレージAからのデータのダウンロード(取得)ができる。
また、連携する外部サービスが、図6に示した、オンラインストレージBのように認可設定がされている外部サービスであれば、外部連携認証部81は、オンラインストレージBに対して取得したアカウント(外部サービスに対する認証情報)によるログイン要求を送信する。ログイン要求を受信したオンラインストレージBは、受信したアカウントおよびパスワードに対する認証を実行し、認証が成功すれば、ログインを許可する旨の応答を、認証が失敗すれば、ログインを許可しない旨の応答を外部連携認証部81に送信する。
外部連携認証部81が、オンラインストレージBからログインを許可する旨の応答を受信することで、サービス提供システム20は認可トークンを用いて、設定されている認可の利用範囲内(権限範囲内)でオンラインストレージBに処理を要求することができる。
<ワークフローの設定処理>
図16は、ワークフローの登録処理のシーケンスを示す図である。画像形成装置15に対してワークフローの登録をする場合、図16に示すシーケンスで処理が進められる。
端末装置14は、サービス提供システム20へのログインを完了した後に、サービス登録画面を表示して、ユーザ(管理者)からのサービスの登録の開始操作を受け付ける(ステップS61)。ユーザがサービス登録画面上でサービスの登録の開始を指示すると、端末装置14は、サービス提供システム20に登録要求を送信する(ステップS62)。
ポータルサービスアプリ61は、端末装置14から登録要求を受け付けると、そのユーザの属する組織のテナントIDに関連付けて管理情報記憶部91に記憶されている、利用可能なサービスの一覧を示す画面を端末装置14に送信する(ステップS63)。端末装置14は、受信したサービスの一覧を示す画面を表示して、ユーザからのサービスの選択操作を受け付ける(ステップS64)。サービスの一覧を示す画面上でユーザがいずれかのサービスを選択すると、端末装置14は、サービスの選択情報をサービス提供システム20に送信する(ステップS65)。
続いて、ポータルサービスアプリ61は、選択されたサービスに関連付けて管理情報記憶部91に記憶されている追加可能なデータ処理の一覧を示す画面を端末装置14に送信する(ステップS66)。端末装置14は、受信したデータ処理の一覧を表示して、ユーザによるワークフローの作成操作を受け付ける(ステップS67)。ここで、追加可能なデータ処理には、例えば、文字認識(OCR処理)、ファイル形式の変換(例えばPDF化処理)、画像補正、バーコード読み取り処理等が含まれる。
ユーザは、端末装置14を操作して、データ処理の実行順序を定義するワークフローを作成する。ワークフローの作成が完了すると、端末装置14は、ワークフローの設定情報をサービス提供システム20に送信する(ステップS68)。ポータルサービスアプリ61は、端末装置14からワークフローの設定情報を受信すると、サービスに関連付けてワークフローの設定情報を管理情報記憶部91に登録する(ステップS69)。
<ワークフローの一例>
図17は、ワークフローの一例を示す図である。サービス提供システム20は、例えば図17に示されるようなワークフローに従って、データ処理を実行する。
サービス提供システム20は、例えば画像形成装置15が取り込んだ画像データを受信すると、第1の処理として、例えばOCR処理を実行する。これにより、サービス提供システム20は、画像データからテキストデータを生成することができる。
続いて、サービス提供システム20は、第2の処理として、PDF化処理を実行する。これにより、サービス提供システム20は、画像データをPDFデータに変換することができる。続いて、サービス提供システム20は、第3の処理として、PDFデータおよびテキストデータを、予め登録されたオンラインストレージ42に配信する。
サービス提供システム20は、このように複数のデータ処理を一括して実行することができるので、作業効率を上げることができる。
<ワークフローの実行時のシーケンス>
図18は、ワークフローの実行時のシーケンスを示す図である。画像形成装置15に対して提供されるいずれかのサービスを利用する場合、まず、ユーザは、画像形成装置15の表示画面を操作して、ワークフローを選択する(ステップS71)。ユーザによりワークフローが選択されると、画像形成装置15は、サービス提供システム20に、選択したワークフローを示す選択情報を送信する(ステップS72)。
サービス提供システム20は、選択情報により指定されるサービスアプリを起動する。ここでは、配信サービスアプリ63が起動される。配信サービスアプリ63は、選択したワークフローに含まれるデータ処理を実行するために必要となる各種の情報の設定画面を画像形成装置15に送信して、画像形成装置15に表示させる(ステップS73)。例えば、配信サービスアプリ63は、データの配信先のオンラインストレージ42のURLを設定するための設定画面を画像形成装置15に表示させる。
続いて、ユーザは、設定画面に対して必要な情報を入力する(ステップS74)。続いて、画像形成装置15は、ユーザにより入力された設定情報(例えば、オンラインストレージ42のURL)をサービス提供システム20に送信する(ステップS75)。配信サービスアプリ63は、設定情報を受信すると、応答画面を画像形成装置15に送信して、画像形成装置15に表示させる(ステップS76)。
続いて、ユーザは、スキャン開始ボタン等を押して、画像形成装置15にスキャンを実行させる(ステップS77)。画像形成装置15は、スキャンを実行すると、スキャンして取得した画像データおよびサービスの利用要求をサービス提供システム20に送信する(ステップS78)。
図19は、図18に続くシーケンスを示す図である。配信サービスアプリ63は、画像形成装置15からサービスの利用要求を受信すると(ステップS78)、選択されたワークフローに定義された複数のデータ処理のそれぞれを、順次に、担当するデータ処理部86に実行させる。
例えば、図17に示されたワークフローが選択された場合には、配信サービスアプリ63は、OCR処理のリクエストをデータ処理制御部83に送信する(ステップS79)。データ処理制御部83は、リクエストを受信すると、リクエストを解析し、対応する処理キュー84にメッセージを登録する(ステップS80)。処理キュー84に登録されたメッセージは一時的に保存される。OCR処理を担当するデータ処理要求部85は、OCR処理を担当するデータ処理部86が処理可能となると、対応する処理キュー84に登録されたメッセージを取得する(ステップS81)。そして、OCR処理を担当するデータ処理要求部85は、取得したメッセージに示されたOCR処理の実行を、OCR処理を担当するデータ処理部86に対して指示する(ステップS82)。OCR処理を担当するデータ処理部86は、実行指示を受信すると、OCR処理を実行する(ステップS83)。OCR処理を担当するデータ処理部86は、処理が完了すると、実行結果を、OCR処理を担当するデータ処理要求部85に返信する(ステップS84)。そして、OCR処理を担当するデータ処理要求部85は、応答メッセージを配信サービスアプリ63に戻す(ステップS85)。
続いて、配信サービスアプリ63は、PDF化処理のリクエストをデータ処理制御部83に送信する(ステップS86)。データ処理制御部83は、リクエストを受信すると、リクエストを解析し、対応する処理キュー84にメッセージを登録する(ステップS87)。処理キュー84に登録されたメッセージは一時的に保存される。PDF化処理を担当するデータ処理要求部85は、PDF化処理を担当するデータ処理部86が処理可能となると、対応する処理キュー84に登録されたメッセージを取得する(ステップS88)。そして、PDF化処理を担当するデータ処理要求部85は、取得したメッセージに示されたPDF化処理の実行を、PDF化処理を担当するデータ処理部86に対して指示する(ステップS89)。PDF化処理を担当するデータ処理部86は、実行指示を受信すると、PDF化処理を実行する(ステップS90)。PDF化処理を担当するデータ処理部86は、処理が完了すると、実行結果を、PDF化処理を担当するデータ処理要求部85に返信する(ステップS91)。そして、PDF化処理を担当するデータ処理要求部85は、応答メッセージを配信サービスアプリ63に戻す(ステップS92)。
続いて、配信サービスアプリ63は、配信処理のリクエストをデータ処理制御部83に送信する(ステップS93)。データ処理制御部83は、リクエストを受信すると、リクエストを解析し、対応する処理キュー84にメッセージを登録する(ステップS94)。処理キュー84に登録されたメッセージは一時的に保存される。配信処理を担当するデータ処理要求部85は、配信処理を担当するデータ処理部86が処理可能となると、対応する処理キュー84に登録されたメッセージを取得する(ステップS95)。そして、配信処理を担当するデータ処理要求部85は、取得したメッセージに示された配信処理の実行を、配信処理を担当するデータ処理部86に対して指示する(ステップS96)。配信処理を担当するデータ処理部86は、実行指示を受信すると、設定されたURLのオンラインストレージ42に対して配信処理を実行する(ステップS97)。そして、配信処理を担当するデータ処理部86は、処理が完了すると、実行結果を、配信処理を担当するデータ処理要求部85に返信する(ステップS98)。そして、配信処理を担当するデータ処理要求部85は、応答メッセージを配信サービスアプリ63に戻す(ステップS99)。
以上のように、サービス提供システム20によれば、クラウド等の不特定多数のユーザが利用する環境下において、ワークフローに従って複数のデータ処理を実行するサービスを、例えば画像形成装置15等の装置に対してネットワークを介して提供することができる。
<時間指定配信サービス>
図20および図21は、時間指定配信サービスの実行時のシーケンスを示す図である。サービス提供システム20は、画像形成装置15でスキャンして得られたデータを、予め指定された時間に指定された記憶装置(例えば、オンラインストレージ42)に配信する時間指定配信サービスを提供することができる。このような時間指定配信サービスを提供する場合、図20および図21に示すシーケンスで処理が進められる。
まず、ユーザは、画像形成装置15の表示画面を操作して、サービスを選択する(ステップS101)。ここでは、配信サービスが選択される。ユーザによりサービスが選択されると、画像形成装置15は、サービス提供システム20に、選択したサービスを示す選択情報を送信する(ステップS102)。
サービス提供システム20は、選択情報に応じたサービスアプリを起動する。ここでは、配信サービスアプリ63が起動される。配信サービスアプリ63は、選択したサービスを実行するために必要となる各種の情報の設定画面を画像形成装置15に送信して、画像形成装置15に表示させる(ステップS103)。本例では、配信サービスアプリ63は、配信時間を設定する項目、および、データの配信先のオンラインストレージ42のURLを設定する項目を含む設定画面を画像形成装置15に表示させる。
続いて、ユーザは、設定画面に対して必要な情報を入力する(ステップS104)。本例では、ユーザは、配信時間およびオンラインストレージ42のURL等を入力する。なお、配信時間の入力方法は、指定された時間を直接入力する方法であってもよいし、予め設定された複数の候補の中から選択する形式であってもよい。
続いて、画像形成装置15は、ユーザにより入力された設定情報をサービス提供システム20に送信する(ステップS105)。配信サービスアプリ63は、設定情報を受信すると、設定完了画面を画像形成装置15に送信して、画像形成装置15に表示させる(ステップS106)。
続いて、設定完了画面が表示されると、ユーザは、スキャン開始ボタンを押して、画像形成装置15にスキャンを実行させる(ステップS107)。画像形成装置15は、スキャンを実行すると、サービスの利用要求をサービス提供システム20に送信する(ステップS108)。このとき、画像形成装置15は、スキャンして取得した画像データもサービス提供システム20に送信する。
画像形成装置15からサービスの利用要求を受信すると(図21のステップS108)、続いて、配信サービスアプリ63は、配信時間が指定されているか否かを判定する(ステップS109)。配信時間が指定されていない場合(ステップS109のNo)、配信サービスアプリ63は、配信処理のリクエストをデータ処理制御部83に送信する(ステップS110)。データ処理制御部83は、リクエストを受信すると、リクエストを解析し、対応する処理キュー84にメッセージを登録する(ステップS111)。処理キュー84に登録されたメッセージは一時的に保存される。
配信処理を担当するデータ処理要求部85は、配信処理を担当するデータ処理部86が処理可能となると、対応する処理キュー84に登録されたメッセージを取得する(ステップS112)。そして、配信処理を担当するデータ処理要求部85は、取得したメッセージに示された配信処理の実行を、配信処理を担当するデータ処理部86に対して指示する(ステップS113)。配信処理を担当するデータ処理部86は、実行指示を受信すると、指定されたオンラインストレージ42に対して、スキャンして取得した画像データを配信する(ステップS114)。
また、配信時間が指定されている場合(ステップS109のYes)、配信サービスアプリ63は、保存処理のリクエストをデータ処理制御部83に送信する(ステップS115)。データ処理制御部83は、リクエストを受信すると、リクエストを解析し、対応する処理キュー84にメッセージを登録する(ステップS116)。
保存処理を担当するデータ処理要求部85は、保存処理を担当するデータ処理部86が処理可能となると、対応する処理キュー84に登録されたメッセージを取得する(ステップS117)。そして、保存処理を担当するデータ処理要求部85は、取得したメッセージに示された保存処理の実行を、保存処理を担当するデータ処理部86に対して指示する(ステップS118)。保存処理を担当するデータ処理部86は、実行指示を受信すると、スキャンして取得した画像データをデータ記憶部93に一時的に保存する(ステップS119)。そして、保存処理を担当するデータ処理部86は、保存した画像データのアドレスを、保存処理を担当するデータ処理要求部85に返信する(ステップS120)。そして、保存処理を担当するデータ処理要求部85は、取得したアドレスを含む応答を配信サービスアプリ63に送信する(ステップS121)。
続いて、配信サービスアプリ63は、指定された配信時間となるまで時間をカウントする(ステップS122)。配信サービスアプリ63は、指定された配信時間となると、配信処理のリクエストをデータ処理制御部83に送信する(ステップS123)。この場合、配信サービスアプリ63は、リクエストに、保存した画像データのアドレスを含める。データ処理制御部83は、リクエストを受信すると、リクエストを解析し、対応する処理キュー84にメッセージを登録する(ステップS124)。
配信処理を担当するデータ処理要求部85は、配信処理を担当するデータ処理部86が処理可能となると、対応する処理キュー84に登録されたメッセージを取得する(ステップS125)。そして、配信処理を担当するデータ処理要求部85は、取得したメッセージに示された配信処理の実行を、配信処理を担当するデータ処理部86に対して指示する(ステップS126)。
配信処理を担当するデータ処理部86は、実行指示を受信すると、データ記憶部93にアクセスして、実行指示に含まれたアドレスから画像データを読み出す(ステップS127、S128)。そして、配信処理を担当するデータ処理部86は、指定されたオンラインストレージ42に対して、スキャンして取得した画像データを配信する(ステップS129)。
以上のように、サービス提供システム20によれば、クラウド等の不特定多数のユーザが利用する環境下において、指定された時間に指定された記憶装置に対してデータを配信するサービスを、ネットワーク上の装置に提供することができる。なお、サービス提供システム20は、指定された時間にデータを配信するサービスを提供する場合、ワークフローにより設定された複数のデータ処理を実行した後に、配信処理を実行してもよい。
なお、本実施形態のサービス提供システム20で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
また、本実施形態のサービス提供システム20で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施形態のサービス提供システム20で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
本実施の形態のサービス提供システム20で実行されるプログラムは、上述した各部(サービス提供部31、プラットフォームAPI32およびプラットフォーム33)の一部または全部を含むモジュール構成となっており、実際のハードウェアとしてはCPU(プロセッサ)が上記記録媒体からプログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、サービス提供部31、プラットフォームAPI32およびプラットフォーム33の一部または全部が主記憶装置上に生成されるようになっている。