以下、本発明の実施形態について図面を参照しながら説明する。
[第1の実施形態]
<システム構成>
図1は第1の実施形態に係る情報処理システムの一例の構成図である。図1の情報処理システム1000は、例えばオフィス内ネットワーク等のネットワークN1と、サービス提供システム1021とが、インターネットなどのネットワークN2を介して接続されている。
ネットワークN1は、ファイヤウォールFWの内側にあるプライベートなネットワークである。ファイヤウォールFWは、ネットワークN1とネットワークN2との接点に設置され、不正なアクセスを検出及び遮断する。ネットワークN1にはクライアント端末1011、携帯端末1012、複合機などの画像形成装置1013が接続されている。
クライアント端末1011は端末装置の一例である。クライアント端末1011は一般的なOSなどが搭載された情報処理装置によって実現できる。クライアント端末1011は無線による通信の手段または有線による通信の手段を有する。クライアント端末1011は、デスクトップPC、ノートPCなど、ユーザが操作可能な端末である。
携帯端末1012は端末装置の一例である。携帯端末1012は、無線による通信の手段または有線による通信の手段を有している。携帯端末1012は、スマートフォンや携帯電話、タブレット端末など、ユーザが携帯可能な端末である。
なお、携帯端末1012はオフィス内ネットワーク等のネットワークN1以外に接続されてもよい。図1では携帯端末1012がネットワークN1とネットワークN2とに接続されている例を示している。
画像形成装置1013は複合機などの画像形成機能を有する装置である。画像形成装置1013は無線による通信の手段または有線による通信の手段を有する。画像形成装置1013は複合機、コピー機、スキャナ、プリンタ、レーザプリンタ、プロジェクタ、電子黒板など、画像形成に係る処理を行う装置である。図1では、一例としてクライアント端末1011、携帯端末1012、画像形成装置1013がそれぞれ一台である例を示しているが複数台であってもよい。
また、サービス提供システム1021は、例えばポータルサービス、プリントサービスやスキャンサービス等を後述のように提供する。サービス提供システム1021は一台以上の情報処理装置によって実現される。例えばサービス提供システム1021はSaaS系のサービス提供装置、共通サービス(Network Service Platform)系のサービス提供装置、ストレージ(Storage)系の記憶装置、業務系の管理装置を情報処理装置により実現する。共通サービス系のサービス提供装置はSaaS系のサービス提供装置が共通で使えるサービスを提供する。
<ハードウェア構成>
図1のクライアント端末1011、携帯端末1012は例えば図2に示すようなハードウェア構成のコンピュータにより実現される。また、サービス提供システム1021を実現する情報処理装置も例えば図2に示すようなハードウェア構成のコンピュータにより実現される。
図2はコンピュータの一例のハードウェア構成図である。図2のコンピュータ1500は入力装置1501、表示装置1502、外部I/F1503、RAM1504、ROM1505、CPU1506、通信I/F1507、及びHDD1508などを備え、それぞれがバスBで相互に接続されている。なお、入力装置1501及び表示装置1502は必要なときに接続して利用する形態であってもよい。
入力装置1501はキーボードやマウス、タッチパネルなどを含み、ユーザが各操作信号を入力するのに用いられる。表示装置1502はディスプレイ等を含み、コンピュータ1500による処理結果を表示する。
また、通信I/F1507は、コンピュータ1500を各種ネットワークに接続するインタフェースである。これにより、コンピュータ1500は通信I/F1507を介してデータ通信を行うことができる。
また、HDD1508は、プログラムやデータを格納している不揮発性の記憶装置の一例である。格納されるプログラムやデータには、コンピュータ1500全体を制御する基本ソフトウェアであるOS、及びOS上において各種機能を提供するアプリケーションなどがある。
なお、コンピュータ1500はHDD1508に替え、記憶媒体としてフラッシュメモリを用いるドライブ装置(例えばソリッドステートドライブ:SSD)を利用するものであってもよい。
外部I/F1503は、外部装置とのインタフェースである。外部装置には、記録媒体1503aなどがある。これにより、コンピュータ1500は外部I/F1503を介して記録媒体1503aの読み取り及び/又は書き込みを行うことができる。記録媒体1503aにはフレキシブルディスク、CD、DVD、SDメモリカード、USBメモリなどがある。
ROM1505は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリ(記憶装置)の一例である。ROM1505には、コンピュータ1500の起動時に実行されるBIOS、OS設定、及びネットワーク設定などのプログラムやデータが格納されている。RAM1504はプログラムやデータを一時保持する揮発性の半導体メモリ(記憶装置)の一例である。
CPU1506は、ROM1505やHDD1508などの記憶装置からプログラムやデータをRAM1504上に読み出し、処理を実行することで、コンピュータ1500全体の制御や機能を実現する演算装置である。
クライアント端末1011、携帯端末1012、サービス提供システム1021を実現する情報処理装置は、例えば上記ハードウェア構成のコンピュータ1500上でプログラムを実行することにより、後述するような各種処理を実現できる。なお、図1に示した画像形成装置1013、ファイヤウォールFWのハードウェア構成については、説明を省略する。
<ソフトウェア構成>
《サービス提供システム》
第1の実施形態に係るサービス提供システム1021は、例えば図3に示すような処理ブロックにより実現される。図3は第1の実施形態に係るサービス提供システムの一例の処理ブロック図である。サービス提供システム1021はプログラムを実行することで図3に示すような処理ブロックを実現する。
図3のサービス提供システム1021はアプリケーション1101、固有サービス1102、共通サービス1103、データベース1104、業務サービス1105、プラットフォームAPI1106及び1107を実現している。
アプリケーション1101は、ポータルサービスアプリ1111、スキャンサービスアプリのUI部1112a、プリントサービスアプリのUI部1113aを一例として有している。
ポータルサービスアプリ1111は、ポータルサービスを提供するアプリケーションである。ポータルサービスは、サービス提供システム1021を利用するための入り口となるサービスを提供する。
スキャンサービスアプリのUI部1112aは携帯端末1012や画像形成装置1013などのWebブラウザからのアクセスを受け付ける。プリントサービスアプリのUI部1113aは携帯端末1012や画像形成装置1013などのWebブラウザからのアクセスを受け付ける。
固有サービス1102であるスキャンサービスアプリのロジック部1112bとプリントサービスアプリのロジック部1113bと後述のI/Oサービス部1114とは、携帯端末1012や画像形成装置1013などのWebブラウザ以外のクライアントからのアクセスを受ける。プラットフォームAPI1106及び1107は、アプリケーション1101や固有サービス1102が共通サービス1103を利用するためのインタフェースである。プラットフォームAPI1106及び1107はアプリケーション1101や固有サービス1102からの要求を共通サービス1103が受信するために設けられた予め定義されたインタフェースであり、例えば関数やクラス等により構成される。
プラットフォームAPI1106及び1107は、サービス提供システム1021が複数の情報処理装置で構成される場合、ネットワーク経由で利用可能な例えばWeb APIにより実現できる。
共通サービス1103は、認証・認可部1121、テナント管理部1122、ユーザ管理部1123、ライセンス管理(Wrapper)部1124、機器管理部1125、一時画像保存部1126、データ保管部1127、ログ収集部1128、課金(Wrapper)部1129、画像処理ワークフロー制御部1130を有する。
また、画像処理ワークフロー制御部1130はメッセージキュー1131、1つ以上のワーカー(Worker)1132を有する。ワーカー1132は画像変換や画像送信などの機能を実現する。
認証・認可部1121は、クライアント端末1011や画像形成装置1013などのオフィス機器からのログイン要求に基づいて認証・認可を実行する。オフィス機器はクライアント端末1011、携帯端末1012、画像形成装置1013などの総称である。
認証・認可部1121は、例えば後述するユーザ情報記憶部1143、ライセンス情報記憶部1144などにアクセスしてユーザを認証・認可する。また、認証・認可部1121は例えば後述するテナント情報記憶部1142、ライセンス情報記憶部1144、機器情報記憶部1145などにアクセスして画像形成装置1013などを認証する。
テナント管理部1122は後述するテナント情報記憶部1142に記憶されているテナント情報を管理する。ユーザ管理部1123は、後述するユーザ情報記憶部1143に記憶されているユーザ情報を管理する。
ライセンス管理(Wrapper)部1124は後述するライセンス情報記憶部1144に記憶されているライセンス情報を管理する。機器管理部1125は後述する機器情報記憶部1145に記憶されている機器情報を管理する。一時画像保存部1126は後述する一時画像記憶部1146への一時画像の保存、一時画像記憶部1146からの一時画像の取得を行う。データ保管部1127は後述のジョブ情報記憶部1147などにデータを保管する。
ログ収集部1128は、収集したログ情報を例えば後述するようなログ情報記憶部1141に記憶させる。課金(Wrapper)部1129は課金情報を作成して例えば後述する課金情報記憶部1148に記憶させる。
画像処理ワークフロー制御部1130はアプリケーション1101又は固有サービス1102からの要求に基づいて画像処理に関するワークフローを制御する。メッセージキュー1131は処理の種類に対応するキューを有する。画像処理ワークフロー制御部1130は処理(ジョブ)に係るリクエストのメッセージを、そのジョブの種類に対応するキューに投入する。
ワーカー1132は対応するキューを監視している。キューにメッセージが投入されるとワーカー1132は、対応するジョブの種類に応じた画像変換や画像送信などの処理を行う。なお、キューに投入されたメッセージはワーカー1132が主体的に読み出す(Pull)ようにしてもよいし、キューからワーカー1132に提供する(Push)ようにしてもよい。
また、データベース1104は、ログ情報記憶部1141、テナント情報記憶部1142、ユーザ情報記憶部1143、ライセンス情報記憶部1144、機器情報記憶部1145、一時画像記憶部1146、ジョブ情報記憶部1147、課金情報記憶部1148及びアプリケーション固有の設定情報記憶部1149を有する。
ログ情報記憶部1141はログ情報を記憶する。テナント情報記憶部1142は組織情報を記憶する。ユーザ情報記憶部1143はユーザ情報を記憶する。ライセンス情報記憶部1144は、後述のライセンス情報を記憶する。機器情報記憶部1145は機器情報を記憶する。
一時画像記憶部1146は一時画像を記憶する。一時画像は、例えばワーカー1132が処理するスキャン画像などのファイルやデータである。ジョブ情報記憶部1147は処理(ジョブ)に係るリクエストの情報(ジョブ情報)を記憶する。課金情報記憶部1148は後述の課金情報を記憶する。アプリケーション固有の設定情報記憶部1149はアプリケーション1101に固有の設定情報を記憶する。
業務サービス1105は、ライセンス管理部1151、課金部1152、契約管理部1153、及び、請求部1154を有する。ライセンス管理部1151は後述のライセンス情報を管理する。課金部1152は後述の課金に関する処理を行う。契約管理部1153は契約情報を管理する。請求部1154は後述の請求に関する処理を行う。
サービス提供システム1021は認証・認可や画像処理に関するワークフロー等の共通サービスを提供する統合基盤と、統合基盤の機能を利用してスキャンサービス、プリントサービス等のアプリサービスを提供するサービス群として機能する。図3のサービス提供システム1021はサービス群と統合基盤とを分離した構成により、アプリケーション1101を容易に開発できる。
なお、図3に示したサービス提供システム1021の処理ブロックの分類形態は一例であり、図3に示される階層で分類されていることが必須ではない。第1の実施形態に係るサービス提供システム1021の処理を実施できるのであれば、図3に示される階層関係などは特定のものに限定されない。
図3のサービス提供システム1021は例えば図4に示すようなコンポーネント間の関係を有している。図4はサービス提供システムのコンポーネント間の関係を示す一例の説明図である。
図4において業務サービス1105はプラットフォームとしてグローバルに共通なコンポーネントであるライセンス管理部1151及び課金部1152と、販売地域や販売会社によって異なる契約管理部1153及び請求部1154と、を含む構成である。図4においてライセンス管理部1151及び課金部1152はビジネスサービス1201を構成している。また、契約管理部1153及び請求部1154は販売地域や販売会社によって異なる基幹システム1202に置かれている。さらに、図4では共通サービス1103とビジネスサービス1201とがサービスプラットフォームに置かれている。
図4の構成では、ライセンス情報や課金情報をグローバルに管理できるというメリットがある。なお、販売地域や販売会社でライセンス情報や課金情報を管理できればよいのであれば、販売地域や販売会社の基幹システム1202にビジネスサービス1201を置くようにしてもよい。基幹システム1202にビジネスサービス1201を置くことで販売会社はライセンス情報や課金情報を販売地域外に出さなくても済む。
図4において、アプリケーション1101は共通サービス1103を利用する。ライセンス管理(Wrapper)部1124は業務サービス1105のライセンス管理部1151を利用する。課金(Wrapper)部1129は業務サービス1105の課金部1152を利用する。また、業務サービス1105の契約管理部1153はライセンス管理部1151及び課金部1152を利用する。業務サービス1105の請求部1154は課金部1152を利用する。
図3に示したサービス提供システム1021は前述したライセンス情報記憶部1144にライセンス情報を記憶している。図5はライセンス情報の一例の構成図である。図5のライセンス情報はデータ項目として、サービス種別、ライセンスID、販売地域、国、タイムゾーン、商品コード、数量(台数)、利用開始日、課金開始日、利用終了日、解約予定日、状態などを有する。また、図5のライセンス情報はデータ項目として、親サービス種別、親ライセンスID、登録用コード、機種機番、次ライセンス種別、次ライセンスID、ライセンス種別、ライセンス形態、数量(ユーザ数)などを有する。さらに、図5のライセンス情報はデータ項目として、使用中の台数、使用中のユーザ数、契約形態、課金形態、使用上限、使用上限基準日時、使用可能残度数、使用度数などを有する。
サービス種別はポータル、スキャン、プリントなどのサービスの種別を特定する情報である。ライセンスIDは、ライセンスを識別する識別情報である。ライセンスIDは例えばテナントライセンスの場合にテナントIDとなり、サービスライセンスの場合にサービスIDとなる。販売地域は、ライセンスを販売する地域等を表す情報である。
国はライセンスを使用する国名を表している。タイムゾーンはライセンスを使用する国の標準時を表している。商品コードは、ライセンスに対応する商品を識別する識別情報である。また、数量(台数)はボリュームライセンスの場合などに機器の数などを表す情報である。
利用開始日はライセンスが有効になった日を表す情報である。課金開始日は課金の開始される日を表す情報であり、利用開始日と同日か後日(例えば翌月1日など)である。利用終了日は表示上のライセンス期限を表す情報であり、例えば課金開始日の一年後などである。解約予定日はライセンスが無効化される日を表す情報である。状態はライセンスの状態を表す情報である。ライセンスの状態には、例えば利用開始前を表す仮登録、利用中を表す登録、利用終了を表す解約などがある。
親サービス種別は、サービスライセンスの場合にテナントが設定される。親ライセンスIDはサービスライセンスの場合にテナントIDが設定される。登録用コードは、テナントライセンスの場合に設定される。登録用コードはテナントの開設時に入力するコードである。機種機番はサービスライセンスの場合に設定される。機種機番はライセンスの対象となる機器を特定する情報である。
次ライセンス種別は更新済みのサービスライセンスの場合に設定される。次ライセンス種別はサービス種別と同じ値となる。次ライセンスIDは更新済みのサービスライセンスの場合に設定される。次ライセンスIDは更新済みのサービスライセンスのサービスIDとなる。
ライセンス種別は機器ライセンスやユーザライセンスなどのサービスライセンスの種別を特定する情報である。ライセンス種別はサービスライセンスにより利用の制限の対象である機器やユーザなどを設定する情報である。ライセンス形態は、他の種別のサービスライセンスと組み合わせて利用を許可するか、自身のサービスライセンスのみで利用を許可するか、を表す情報である。
例えばライセンス形態には「機器ライセンスのみ」や「機器ライセンス+ユーザライセンス」のような情報が設定される。ライセンス形態が「機器ライセンスのみ」である場合はライセンス種別が「機器ライセンス」であるサービスライセンスが登録されることによりサービスの利用が許可される。また、ライセンス形態が「機器ライセンス+ユーザライセンス」である場合はライセンス種別が「機器ライセンス」であるサービスライセンスとライセンス種別が「ユーザライセンス」であるサービスライセンスが登録されることによりサービスの利用が許可される。
数量(ユーザ数)はライセンスによりサービスを利用可能とすることができるユーザ数を表す情報である。使用中の台数はライセンスによりサービスが利用可能となっている機器の台数を表す情報である。使用中のユーザ数はライセンスによりサービスが利用可能となっているユーザ数を表す情報である。契約形態は本契約のライセンスか、トライアル契約のライセンス(トライアルライセンス)か、を表す情報である。
課金形態は、定額課金か、プリペイド課金か、従量課金か、を表す情報である。上限付きの定額課金の場合は、基準日時(例えば各月1日の00:00)までに使用上限に達すると、基準日時までサービスを使用できなくなるか、あるいはQoSが劣化する。使用上限はプリペイドライセンスで一時的に上げることができるようにしてもよい。
また、上限付きのプリペイド課金の場合は、プリペイドライセンスによる使用上限に達すると、新たなプリペイドライセンスを購入しない限りサービスを使用できないか、あるいはQoSが劣化する。
また、従量課金の場合は、同じサービス種別において、例えば「従量課金1」「従量課金2」というように複数の異なるパラメータで従量課金するライセンスを選べるようにすることもできる。
使用上限は使用できる度数(ページ数、回数、時間など)の上限である。使用上限基準日時はバッチ処理により使用可能残度数、使用度数をリセットする日時である。使用上限基準日時は基幹システム1202側(契約管理部1153)側からの要求でリセットするようにしてもよいが、ネットワーク障害などでリセットできないリスクが高まるため、サービスプラットフォーム側でバッチ処理によりリセットすることが望ましい。
使用可能残度数は、確定した使用度数と予約済みの度数とを使用上限から引いた度数である。使用度数は確定した使用度数である。なお、どのパラメータに対して従量課金や上限の制限を行うかは、サービス種別によって異なる。したがって、どのパラメータに対して従量課金や上限の制限を行うかの情報は、ライセンス情報として保持しない。
図6はライセンス情報の具体例を示す図である。なお、図6のライセンス情報は第1の実施形態の説明に不要なデータ項目について適宜省略している。ライセンスID「100000000」のライセンスは機器に関連付けられる機器ライセンスの一例である。ライセンスID「100000000」のライセンスはユーザ認証無し、機器認証有りの機器ライセンスの例を示しているため、テナントと関連付けられていない。なお、ライセンスID「100000000」のライセンスは上限付きの定額課金の例を示している。
また、ライセンスID「100000001」のライセンスはテナントに関連付けられるユーザライセンスの一例である。ライセンスID「100000001」のライセンスは従量課金の例を示している。なお、ライセンスID「100000001」のライセンスは機器によらず、テナント内での使用度数に課金するため、ユーザ数の上限を設定していない。
<処理の詳細>
《サービス実行》
第1の実施形態に係るサービス提供システム1021では例えば図7に示す手順によりサービスが実行される。図7はサービス実行処理の一例のシーケンス図である。ステップS11において、アプリケーション1101はテナントに紐付くライセンスのユーザ認証又は機器に紐付くライセンスの機器認証を、認証・認可部1121に要求する。認証に成功すると、アプリケーション1101は認証・認可部1121から認証要求の応答として認証チケットを受け取る。
ステップS12に進み、アプリケーション1101は認証チケットとサービス種別とを付加した実行可否の判断を認証・認可部1121に要求する。なお、実行可否を判断する処理の詳細は後述する。
認証・認可部1121は実行可否の判断を要求されたサービス種別のライセンスが存在すれば、実行可をアプリケーション1101に返す。なお、認証・認可部1121は実行可否の判断を要求されたサービス種別のライセンスに使用上限があれば、使用可能残度数もアプリケーション1101に返す。
実行可を認証・認可部1121から返されたアプリケーション1101は、課金(Wrapper)部1129に対し、度数を登録するパターンの処理か、又は、開始及び終了で指定するパターンの処理を行う。なお、ステップS13〜S15の処理は使用量を度数で登録するパターンの処理である。ステップS16〜S19の処理は、使用量を開始及び終了で指定(通知)するパターンの処理である。
まず、度数を登録するパターンの処理について説明する。アプリケーション1101はステップS13において、認証チケットとサービス種別と度数とを付加した使用の予約を課金(Wrapper)部1129に要求する。なお、使用を予約する処理の詳細は後述する。
課金(Wrapper)部1129は後述する使用履歴のレコードの使用履歴IDと使用可能残度数とをアプリケーション1101に返す。なお、課金(Wrapper)部1129は使用の予約を要求されたサービス種別のライセンスに使用上限があり、付加した度数が使用可能残度数より大きい場合、エラーと使用可能残度数を返す。
ステップS14において、アプリケーション1101はサービス種別に対応する処理を実行する。ステップS15に進み、アプリケーション1101は使用履歴IDと度数とを付加した使用の確定を課金(Wrapper)部1129に要求する。なお、使用を確定する処理の詳細は後述する。課金(Wrapper)部1129は使用可能残度数をアプリケーション1101に返す。
なお、ステップS13〜S15に示した度数を登録するパターンの処理では、サービス種別に対応する処理の実行前に度数が分からない場合、適切な単位で使用の予約を行うようにしてもよい。この場合、アプリケーション1101は使用を予約した度数を使い切る度に課金APIを呼び、ステップS13〜S15の処理を繰り返す。なお、使用上限が無い場合はステップS13の処理を省略してもよい。
また、ステップS15の使用を確定する処理ではステップS13で使用を予約した度数よりも少ない度数で行うようにしてもよい。また、ステップS15の使用を確定する処理はステップS14の処理の実行中に複数回に分けて行ってもよい。そして、課金(Wrapper)部1129は使用を予約した度数を超えて、使用を確定する処理が要求された場合、使用上限を超えていれば使用可能残度数を0とし、エラーをアプリケーション1101に返す。なお、ステップS13の処理を省略した場合、ステップS15の使用を確定する処理では、使用履歴IDではなく認証チケットが付加される。
次に、開始及び終了で指定するパターンの処理について説明する。アプリケーション1101はステップS16において、認証チケットとサービス種別とコールバックURLとを付加した使用の開始を課金(Wrapper)部1129に要求する。なお、使用を開始する処理の詳細は後述する。
課金(Wrapper)部1129は後述する使用履歴のレコードの使用履歴IDと使用可能残度数とをアプリケーション1101に返す。そして、ステップS17においてアプリケーション1101はサービス種別に対応する処理を実行する。なお、課金(Wrapper)部1129は使用の予約を要求されたサービス種別のライセンスに使用上限があり、使用可能残度数が「0」になると、ステップS18に進み、コールバックURLにコールバックを行う。つまり、課金(Wrapper)部1129は使用上限を超えた場合にアプリケーション1101にコールバックする。
サービス種別に対応する処理が終了すると、アプリケーション1101はステップS19において、使用履歴IDを付加した使用の終了を課金(Wrapper)部1129に要求する。なお、使用を終了する処理の詳細は後述する。課金(Wrapper)部1129は使用可能残度数をアプリケーション1101に返す。
このように図7に示すシーケンス図の処理によれば、アプリケーション1101の使用量を課金(Wrapper)部1129に登録させることで、アプリケーション1101の処理に対する課金を行うことができる。したがって、図7に示すシーケンス図の処理によれば、翻訳サービスのアプリケーション1101でのワード単位の課金も可能となる。
図8は実行可否を判断する処理の一例のフローチャートである。ステップS31において認証・認可部1121はアプリケーション1101からの実行可否の判断の要求に付加されていた認証チケットが、ユーザ認証により発行された認証チケット(以下、ユーザ認証チケットという)か否かを判定する。
ユーザ認証チケットであれば認証・認可部1121はステップS32に進む。認証・認可部1121は実行可否の判断の要求に付加されていたサービス種別と一致し、親ライセンスIDがユーザ認証チケットに含まれるテナントIDと等しいライセンス情報をライセンス情報記憶部1144から検索する。ユーザ認証チケットでなければ認証・認可部1121はステップS33に進む。認証・認可部1121は実行可否の判断の要求に付加されていたサービス種別と一致し、機種機番が機器認証チケットに含まれる機種機番と等しいライセンス情報をライセンス情報記憶部1144から検索する。機器認証チケットは機器認証により発行された認証チケットである。
ステップS34において、認証・認可部1121はステップS32又はS33においてライセンス情報記憶部1144から検索されたライセンス情報があるか判定する。検索されたライセンス情報があれば、認証・認可部1121はステップS35に進み、検索されたライセンス情報に使用上限が無いか(設定されていないか)を判定する。
検索されたライセンス情報に使用上限が無ければ、認証・認可部1121はステップS36に進み、実行可否「可」と、使用可否残度数「上限なし」とをアプリケーション1101に返す。
また、検索されたライセンス情報に使用上限があれば認証・認可部1121はステップS37に進み、検索されたライセンス情報に設定されている使用可能残度数が「0」よりも大きいか判定する。使用可能残度数が「0」より大きければ、認証・認可部1121はステップS38に進み、実行可否「可」と、ライセンス情報に設定されている使用可否残度数の値とをアプリケーション1101に返す。
なお、ステップS34においてライセンス情報がないと判定した場合、ステップS37においてライセンス情報に設定されている使用可能残度数が「0」よりも大きくないと判定した場合は、ステップS39に進む。ステップS39において、認証・認可部1121は実行可否「否」と、使用可否残度数「0」とをアプリケーション1101に返す。
図9は使用を予約する処理の一例のフローチャートである。ステップS51において課金(Wrapper)部1129はアプリケーション1101からの使用の予約の要求に付加されていた認証チケットが、ユーザ認証チケットか否かを判定する。
ユーザ認証チケットであれば課金(Wrapper)部1129は、ステップS52に進む。課金(Wrapper)部1129は使用の予約の要求に付加されていたサービス種別と一致し、親ライセンスIDがユーザ認証チケットに含まれるテナントIDと等しいライセンス情報をライセンス情報記憶部1144から検索する。ユーザ認証チケットでなければ課金(Wrapper)部1129はステップS53に進む。課金(Wrapper)部1129は使用の予約の要求に付加されていたサービス種別と一致し、機種機番が機器認証チケットに含まれる機種機番と等しいライセンス情報をライセンス情報記憶部1144から検索する。
ステップS54において、課金(Wrapper)部1129はステップS52又はS53においてライセンス情報記憶部1144から検索されたライセンス情報があるか判定する。検索されたライセンス情報があれば課金(Wrapper)部1129はステップS55に進み、検索されたライセンス情報に使用上限が無いか判定する。
検索されたライセンス情報に使用上限が無ければ、課金(Wrapper)部1129はステップS56に進み、使用履歴のレコードを生成する。図10は使用履歴のレコードの一例の構成図である。なお、図10の使用履歴のレコードはデータ項目として使用履歴ID、状態、ライセンスID、予約度数、開始/予約日時、終了日時、確定度数、コールバックURLを有する。
課金(Wrapper)部1129は使用履歴IDを発行し、その使用履歴IDの使用履歴のレコードを生成する。課金(Wrapper)部1129は生成した使用履歴のレコードの状態に「予約中」を保存する。また、課金(Wrapper)部1129は生成した使用履歴のレコードのライセンスIDに、検索されたライセンス情報のライセンスIDを保存する。また、課金(Wrapper)部1129は生成した使用履歴のレコードの予約度数に、使用の予約の要求に付加されていた度数を保存する。さらに、課金(Wrapper)部1129は生成した使用履歴のレコードの開始/予約日時に、使用の予約の要求があった日時を保存する。
そして、ステップS57に進み、課金(Wrapper)部1129は使用履歴のレコードの使用履歴IDと、使用可否残度数「上限なし」とをアプリケーション1101に返す。
また、検索されたライセンス情報に使用上限があれば課金(Wrapper)部1129はステップS58に進み、検索されたライセンス情報に設定されている使用可能残度数が使用の予約の要求に付加されていた度数(指定した度数)よりも大きいか判定する。
検索されたライセンス情報に設定されている使用可能残度数が指定した度数よりも大きければ課金(Wrapper)部1129はステップS59に進み、ステップS56と同様に使用履歴のレコードを生成する。
ステップS60に進み、課金(Wrapper)部1129は、検索されたライセンス情報の使用可能残度数から、指定した度数を減算する。ステップS61に進み、課金(Wrapper)部1129は、使用履歴のレコードの使用履歴IDと、減算後の使用可否残度数の値とをアプリケーション1101に返す。
検索されたライセンス情報に設定されている使用可能残度数が指定した度数よりも大きくなければ課金(Wrapper)部1129はステップS62に進み、エラー(使用可能残度数不足)と付加情報(使用可能残度数)とをアプリケーション1101に返す。
なお、ステップS54においてライセンス情報がないと判定した場合、課金(Wrapper)部1129はステップS63に進み、アプリケーション1101にエラー(ライセンスなし)を返す。
図11は使用を確定する処理の一例のフローチャートである。ステップS71において課金(Wrapper)部1129はアプリケーション1101からの使用の確定の要求に使用履歴IDの指定がないか判定する。
使用履歴IDの指定がなければ課金(Wrapper)部1129は、ステップS72に進み、ステップS52と同様な手順によりライセンス情報を検索する。課金(Wrapper)部1129はステップS73に進み、使用履歴のレコードを生成する。
使用履歴IDの指定があれば、課金(Wrapper)部1129は使用の確定の要求に付加されていた使用履歴IDで使用履歴のレコードを検索する。また、課金(Wrapper)部1129はステップS75に進み、ライセンスIDが使用履歴のレコードに含まれるライセンスIDと一致するライセンス情報をライセンス情報記憶部1144から検索する。
ステップS73又はS75に続いてステップS76に進み、課金(Wrapper)部1129は使用履歴のレコードに、使用の確定の要求のあった日時を保存する。また、課金(Wrapper)部1129は使用履歴のレコードの確定度数に、使用の確定の要求に付加されていた度数を保存する。さらに、課金(Wrapper)部1129は使用履歴のレコードの状態に「終了」を保存する。
ステップS77に進み、課金(Wrapper)部1129は、検索されたライセンス情報の使用度数に、確定度数を加算する。また、ステップS78に進み、課金(Wrapper)部1129は検索されたライセンス情報に使用上限が無いか判定する。検索されたライセンス情報に使用上限が無ければ、課金(Wrapper)部1129はステップS79に進み、使用可否残度数「上限なし」をアプリケーション1101に返す。
また、検索されたライセンス情報に使用上限があれば課金(Wrapper)部1129はステップS80に進み、使用履歴のレコードの確定度数と予約度数とが等しいかを判定する。
使用履歴のレコードの確定度数と予約度数とが等しければ、課金(Wrapper)部1129はステップS85に進み、検索されたライセンス情報の使用可能残度数をアプリケーション1101に返す。使用履歴のレコードの確定度数と予約度数とが等しくなければ課金(Wrapper)部1129はステップS81に進み、使用履歴のレコードの確定度数が予約度数より小さいかを判定する。
使用履歴のレコードの確定度数が予約度数より小さければ、課金(Wrapper)部1129はステップS82に進み、検索されたライセンス情報の使用可能残度数に、予約度数から確定度数を減算した値を加算する。そして、ステップS85に進み、課金(Wrapper)部1129は、加算後の使用可能残度数の値をアプリケーション1101に返す。
また、使用履歴のレコードの確定度数が予約度数より小さくなければ、課金(Wrapper)部1129はステップS83に進み、検索されたライセンス情報の使用可能残度数から、確定度数から予約度数を減算した値を減算する。
ステップS83に続いてステップS84に進み、課金(Wrapper)部1129は減算後の使用可能残度数の値が「0」以上であるかを判定する。減算後の使用可能残度数の値が「0」以上であれば、ステップS85に進み、課金(Wrapper)部1129は減算後の使用可能残度数の値をアプリケーション1101に返す。減算後の使用可能残度数の値が「0」以上でなければ、課金(Wrapper)部1129はステップS86に進み、ライセンス情報の使用可能残度数の値を「0」に更新する。そして、課金(Wrapper)部1129はステップS86に続いてステップS87に進み、上限オーバのエラーをアプリケーション1101に返す。
図12は使用を開始する処理の一例のフローチャートである。ステップS101において課金(Wrapper)部1129はアプリケーション1101からの使用の開始の要求に付加されていた認証チケットが、ユーザ認証チケットか否かを判定する。
ユーザ認証チケットであれば課金(Wrapper)部1129は、ステップS102に進む。課金(Wrapper)部1129は使用の開始の要求に付加されていたサービス種別と一致し、親ライセンスIDがユーザ認証チケットに含まれるテナントIDと等しいライセンス情報をライセンス情報記憶部1144から検索する。ユーザ認証チケットでなければ課金(Wrapper)部1129はステップS103に進む。課金(Wrapper)部1129は使用の開始の要求に付加されていたサービス種別と一致し、機種機番が機器認証チケットに含まれる機種機番と等しいライセンス情報をライセンス情報記憶部1144から検索する。
ステップS104において、課金(Wrapper)部1129はステップS102又はS103においてライセンス情報記憶部1144から検索されたライセンス情報があるか判定する。検索されたライセンス情報があれば課金(Wrapper)部1129はステップS105に進み、検索されたライセンス情報に使用上限が無いか判定する。
検索されたライセンス情報に使用上限が無ければ、課金(Wrapper)部1129はステップS106に進み、使用履歴IDを発行し、発行した使用履歴IDの使用履歴のレコードを生成する。課金(Wrapper)部1129は生成した使用履歴のレコードの状態に「実行中」を保存する。また、課金(Wrapper)部1129は生成した使用履歴のレコードのライセンスIDに、検索されたライセンス情報のライセンスIDを保存する。さらに、課金(Wrapper)部1129は生成した使用履歴のレコードの開始/予約日時に、使用の開始の要求があった日時を保存する。
そして、ステップS107に進み、課金(Wrapper)部1129は使用履歴のレコードの使用履歴IDと、使用可否残度数「上限なし」とをアプリケーション1101に返す。
また、検索されたライセンス情報に使用上限があれば課金(Wrapper)部1129はステップS108に進み、検索されたライセンス情報に設定されている使用可能残度数が「0」よりも大きいか判定する。
検索されたライセンス情報に設定されている使用可能残度数が「0」よりも大きければ課金(Wrapper)部1129はステップS109に進み、ステップS106と同様に使用履歴のレコードを生成する。そして、ステップS110に進み、課金(Wrapper)部1129は、使用履歴のレコードの使用履歴IDと、使用可否残度数の値とをアプリケーション1101に返す。
検索されたライセンス情報に設定されている使用可能残度数が「0」よりも大きくなければ課金(Wrapper)部1129はステップS111に進み、エラー(使用可能残度数0)をアプリケーション1101に返す。なお、ステップS104においてライセンス情報がないと判定した場合、課金(Wrapper)部1129はステップS112に進み、アプリケーション1101にエラー(ライセンスなし)を返す。
図13は使用を終了する処理の一例のフローチャートである。ステップS121において課金(Wrapper)部1129は使用の終了の要求に付加されていた使用履歴IDで使用履歴のレコードを検索する。また、課金(Wrapper)部1129はステップS122に進み、ライセンスIDが使用履歴のレコードに含まれるライセンスIDと一致するライセンス情報をライセンス情報記憶部1144から検索する。
ステップS123に進み、課金(Wrapper)部1129は検索した使用履歴のレコードに、使用の終了の要求のあった日時を保存する。また、課金(Wrapper)部1129は使用履歴のレコードの確定度数を保存する。また、課金(Wrapper)部1129は使用履歴のレコードの状態に「終了」を保存する。
ステップS124に進み、課金(Wrapper)部1129は、検索されたライセンス情報の使用度数に、確定度数を加算する。また、ステップS125に進み、課金(Wrapper)部1129は検索されたライセンス情報に使用上限が無いか判定する。
検索されたライセンス情報に使用上限が無ければ、課金(Wrapper)部1129はステップS126に進み、使用可否残度数「上限なし」をアプリケーション1101に返す。
また、検索されたライセンス情報に使用上限があれば、課金(Wrapper)部1129はステップS127に進み、使用上限から使用度数を減算して使用可能残度数を算出する。課金(Wrapper)部1129は算出した使用可能残度数をライセンス情報に保存する。
ステップS128に進み、課金(Wrapper)部1129は算出した使用可能残度数の値が「0」以上であるかを判定する。算出した使用可能残度数の値が「0」以上であれば、ステップS129に進み、課金(Wrapper)部1129は算出した使用可能残度数の値をアプリケーション1101に返す。
算出した使用可能残度数の値が「0」以上でなければ、課金(Wrapper)部1129はステップS130に進み、ライセンス情報の使用可能残度数の値を「0」に更新する。そして、課金(Wrapper)部1129はステップS130に続いてステップS131に進み、上限オーバのエラーをアプリケーション1101に返す。
なお、図7のステップS16で入力パラメータとしてコールバックURLを課金(Wrapper)部1129に渡すことで、課金(Wrapper)部1129は使用可能残度数が「0」になったときに、アプリケーション1101にコールバックできる。アプリケーション1101はステップS17の実行を停止できる。
また、図7のステップS16はステップS13と同様に、度数を付加した使用の開始の要求を行うことにより、その度数(予約度数)を消費するとコールバックを行うようにしてもよい。
さらに、使用可能残度数が「0」になったあと、課金(Wrapper)部1129はアプリケーション1101の実行を停止させてもよいし、サービス品質(QoS)を下げて実行を継続させてもよい。
《課金・請求》
第1の実施形態に係るサービス提供システム1021では例えば図14に示す手順により課金・請求が実行される。図14は課金・請求処理の一例のシーケンス図である。図14では、図7のステップS15又はS19の処理と非同期に、使用履歴のテーブルをビジネスサービス1201側に登録(同期)する。
ステップS151において、課金(Wrapper)部1129はビジネスサービス1201の課金部1152に使用履歴のテーブルを登録する。基幹システム1202の契約管理部1153は例えば料金計算の〆日(締め日)にバッチ処理で起動する。
ステップS152において、契約管理部1153はビジネスサービス1201の課金部1152に顧客IDとライセンスIDと料金情報と計算期間とを付加した料金計算を要求する。ステップS153において課金部1152は使用履歴のテーブルを利用して料金を計算する。
ステップS153における料金の計算は、例えば次のように行われる。課金部1152は料金計算の要求に付加されていたライセンスIDと等しく、料金計算の要求に付加されていた計算期間に終了日時が含まれるレコードを使用履歴のテーブルから検索する。課金部1152は検索されたレコード(検索結果のレコード)の確定度数を合計する。
そして、課金部1152は料金計算の要求に付加されていた料金情報に従って料金を計算する。図15は料金情報の一例の説明図である。料金情報には課金方式、単価などが含まれており、課金方式、単価及び度数に応じて料金計算が行われる。図5では料金情報の一例として「一律単価方式」「通過変動方式」「2段階定額方式」及び「階段方式」を表している。
ステップS154に進み、課金部1152は料金の計算結果を図16に示すような計算結果のテーブルに保存する。図16は計算結果のテーブルの一例の構成図である。図16の計算結果のテーブルはライセンスIDごとに料金を計算している。ステップS155において課金部1152は計算した料金を契約管理部1153に返す。
基幹システム1202の請求部1154は例えば顧客ごとの請求日にバッチ処理で起動する。ステップS156において、請求部1154はビジネスサービス1201の課金部1152に顧客IDと期間とを付加した計算結果の取得を要求する。
ステップS157において課金部1152は計算結果の取得の要求に付加されていた顧客IDと等しく、計算結果の取得の要求に付加されていた期間に計算期間(終わり)が含まれるレコードを計算結果のテーブルから検索する。そして、課金部1152は検索されたレコード(計算結果のリスト)を請求部1154に返す。
ステップS159において、請求部1154は課金部1152から受信した計算結果のリストに基づき、請求処理を実行する。このように図14に示すシーケンス図によればアプリケーション1101の処理に対する請求を行うことができる。
《ワーカーの処理に対する課金》
第1の実施形態に係るサービス提供システム1021では例えば図17のワーカー1132の処理に対して課金を行うこともできる。図17はワーカーの処理に対する課金について説明するための図である。
アプリケーション1101は、画像処理ワークフロー制御部1130にジョブ情報の登録を要求する。画像処理ワークフロー制御部1130はジョブ情報をジョブ情報記憶部1147に登録する。画像処理ワークフロー制御部1130は、ジョブ情報に含まれるタイプ(type)から処理の種類(機能)を解析する。画像処理ワークフロー制御部1130は処理の種類に合致するメッセージキュー1131のキューに、ジョブに係るリクエストのメッセージを投入(キューイング)する。
メッセージキュー1131は複数の処理の種類に対応するキューを有している。図17のワーカー1132は1又は複数のキューを担当することができる。また、図17に示すように、キューは1又は複数のワーカー1132に担当されることができる。
例えば図17は、1つのワーカー1132が担当する処理の種類として「doc2XXX」「storage2XXX」「ocr」「pdf2XXX、ocr」を表している。処理の種類「pdf2XXX、ocr」を担当するワーカー1132は複数の処理の種類を担当するワーカー1132の例である。
メッセージキュー1131のキューを監視しているワーカーフレームワーク1133はキューに投入されたジョブに係るリクエストのメッセージを検知する。ワーカーフレームワーク1133はキューに登録されたメッセージを取得する。
ワーカーフレームワーク1133は取得したメッセージに含まれるジョブIDのジョブ情報をジョブ情報記憶部1147から取得する。ワーカーフレームワーク1133は取得したジョブ情報から処理の種類に合致するワーカー1132にジョブ実行を指示する。指示されたジョブを実行したワーカー1132はワーカーフレームワーク1133にジョブの実行結果を返す。
図17に示したように、メッセージキュー1131は例えば1つのサーバ10上で動作する。また、ワーカー1132及びワーカーフレームワーク1133はワーカーサーバ11A及び11B上で動作する。ワーカーサーバ11A及び11Bは、例えばWindows(登録商標)サーバやLinux(登録商標)サーバにより実現される。
図17に示す構成において、ジョブに含まれる各タスク種別に対して例えば図8の実行可否を判断する処理を行うことにより、ワーカー1132の処理に対する課金を行うことができる。例えば実行可否を判断する処理はライセンスなしで動作するタスク種別に対しては実行可否「可」を返す。また、実行可否を判断する処理はライセンスが必要なタスク種別に対してライセンスを検索して判断する。
また、ワーカーフレームワーク1133には図7に示したサービス実行処理の使用量を度数で登録するパターンを実装する。ワーカー1132には入力情報に対して度数を計算する処理や画像処理を実行する処理を実装する。
図18はワーカー処理に対する課金の一例のシーケンス図である。ステップS171において、アプリケーション1101は認証チケットを付加してジョブの登録をメッセージキュー1131に要求する。
ステップS172に進み、メッセージキュー1131は認証チケットを付加し、ジョブで必要となる全てのワーカー1132の実行可否の判断をワーカーフレームワーク1133に要求する。
ステップS173に進み、ワーカーフレームワーク1133は実行に必要なサービス種別のライセンスを取得する。なお、ワーカーフレームワーク1133は実行にライセンスが必要ない場合、メッセージキュー1131に実行可否「可」を返す。
ワーカーフレームワーク1133は実行にライセンスが必要な場合、ステップS174に進み、認証チケットとサービス種別とを付加して実行可否の判断を認証・認可部1121に要求する。認証・認可部1121は、図8に示したように実行可否を判断する処理を行い、実行可否の判断結果として実行可否と使用可能残度数とをワーカーフレームワーク1133に返す。
また、ワーカーフレームワーク1133はステップS175において実行可否の判断結果として実行可否と使用可能残度数とをメッセージキュー1131に返す。ステップS176においてメッセージキュー1131は使用可能残度数をアプリケーション1101に返す。
なお、ステップS176における使用可能残度数は、ジョブで必要な全てのワーカー1132の使用可能残度数のうち、最も少ない使用可能残度数とする。したがって、一つでも実行可否「否」のワーカー1132があれば、メッセージキュー1131はステップS176においてジョブ登録エラーをアプリケーション1101に返す。
ステップS177において、ワーカーフレームワーク1133は、メッセージキュー1131からジョブに含まれるタスクを取得する。ステップS178において、ワーカーフレームワーク1133は入力情報を付加してタスクの度数の計算をワーカー1132に要求する。ワーカー1132はタスクの度数を計算し、ワーカーフレームワーク1133に返す。なお、実行前にタスクの度数が分からない場合、ワーカー1132は実行単位の度数をワーカーフレームワーク1133に返す。
ステップS179に進み、ワーカーフレームワーク1133は認証チケットとサービス種別と度数とを付加した使用の予約を課金(Wrapper)部1129に要求する。課金(Wrapper)部1129は図9に示した使用を予約する処理を行う。
課金(Wrapper)部1129は使用履歴のレコードの使用履歴IDと使用可能残度数とをワーカーフレームワーク1133に返す。ワーカーフレームワーク1133はステップS180において、入力情報と使用可能残度数とを付加して例えば画像処理の実行をワーカー1132に要求する。ワーカー1132はワーカーフレームワーク1133から要求された例えば画像処理を実行する。ワーカー1132は例えば画像処理の実行に要した度数と終了フラグとをワーカーフレームワーク1133に返す。
ステップS181に進み、ワーカーフレームワーク1133は使用履歴IDと度数とを付加した使用の確定を課金(Wrapper)部1129に要求する。課金(Wrapper)部1129は図11に示したように、使用を確定する処理を行う。課金(Wrapper)部1129は使用可能残度数をワーカーフレームワーク1133に返す。
図18のワーカー処理に対する課金を実現するため、ワーカー1132は以下のような度数を計算する処理、画像処理を実行する処理を実装する。ワーカー1132に実装される度数を計算する処理は、各ワーカー1132が実行するタスクの入力パラメータを入力情報とする。例えばOCRワーカーの場合、入力パラメータは入力ファイルのパス、言語や出力形式等である。また、ワーカー1132に実装される度数を計算する処理は、実行に必要となる度数又は適切な実行単位を出力とする。
したがって、度数を計算する処理が実装されたワーカー1132は入力情報に対して実行に必要となる度数を計算して返す。例えばワーカー1132は例えばOCRがページ単位の課金を行うライセンスを必要としている場合、入力ファイルからページ数を取得して度数として返す。
また、度数を計算する処理が実装されたワーカー1132は処理を実行してみないと度数が計算できない場合や、度数を計算するのに長い時間を要する場合に、適切な実行単位を定めて返す。この場合は、最終的に使用可能残度数の範囲でタスクを終了できない可能性がある。
ワーカー1132に実装される画像処理を実行する処理は、ワーカー1132の処理の入力パラメータ、課金(Wrapper)部1129から返された使用可能残度数を入力情報とする。
また、ワーカー1132に実装される画像処理を実行する処理は、ワーカー1132の処理に要した度数と、ワーカー1132のタスクが終了したか否かを示す終了フラグとを出力とする。なお、ワーカーフレームワーク1133は終了フラグが立つまで一連の処理を繰り返す。
したがって、画像処理を実行する処理が実装されたワーカー1132は入力情報に対してワーカー1132の処理を実行する。なお、ワーカー1132は使用可能残度数が設定されている場合、その使用可能残度数を上限として処理を実行する。ワーカー1132はタスクが完了した場合、処理に要した度数と終了フラグ「true」とを返す。タスクが完了しなかった場合、ワーカー1132は処理に要した度数(入力情報の使用可能残度数と一致する)と終了フラグ「true」とを返す。
<システム構成のバリエーション>
図19は第1の実施形態に係る情報処理システムの一例の構成図である。図19の情報処理システム1000Aは図1の情報処理システム1000のサービス提供システム1021にネットワークN3経由で業務システム1022と購買システム1023とが接続された構成である。図19の情報処理システム1000Aは例えば図20に示すように連携して処理を行う。
図20は情報処理システムの連携処理について説明する図である。業務システム1022は業務担当の認証機能と契約情報の入力を受け付ける契約情報入力画面とを有する。購買システム1023は顧客の認証機能とサービスの購入を受け付けるサービス購入画面を有する。基幹システム1202の契約管理部1153はビジネスサービス1201のライセンス管理部1151にライセンスの発行を要求できる。
例えば業務担当は業務担当のユーザデータベースを持つ業務システム1022から契約書(営業が書面で締結)に基づき契約情報を入力する。また、顧客は顧客のユーザデータベースを持つ購買システム1023からユーザの入力に基づき契約を締結する。
基幹システム1202の契約管理部1153は業務システム1022に入力された契約情報や購買システム1023へのユーザの入力の内容に従って、図21に示すような契約情報を生成する。図21は契約情報の一例の構成図である。図21の契約情報はデータ項目として契約番号、顧客ID、商品コード、ライセンスID、課金方法、単価、基準日時などを有する。
基幹システム1202の契約管理部1153は業務システム1022に入力された契約情報や購買システム1023へのユーザの入力の内容に従い、ビジネスサービス1201のライセンス管理部1151にライセンス発行を要求する。基幹システム1202の契約管理部1153はライセンス管理部1151により発行されたライセンスのライセンスIDを図21の契約情報のライセンスIDとして保存する。
このように、図19の情報処理システム1000Aでは基幹システム1202の契約管理部1153からビジネスサービス1201のライセンス管理部1151にライセンス発行を要求できる。
[第2の実施形態]
<システム構成>
図22は第2の実施形態に係る情報処理システムの一例の構成図である。図22の情報処理システム1000Bは図1の情報処理システム1000のネットワークN2に外部ストレージシステム1024が接続された構成である。
外部ストレージシステム1024は、ネットワークN2を介してストレージサービスと呼ばれるクラウドサービスを提供する。ストレージサービスとは、外部ストレージシステム1024のストレージの記憶領域を貸し出すサービスである。
<ソフトウェア構成>
第2の実施形態に係る情報処理システム1000Bは、例えば図23に示されるような処理ブロックにより実現することができる。図23は、第2の実施形態に係る情報処理システムの一例の処理ブロック図である。なお、図23は本実施形態の説明に不要な部分について図示を省略している。
画像形成装置1013はブラウザ1301を有する。画像形成装置1013のユーザはブラウザ1301を介して、サービス提供システム1021により提供されるサービスを利用することができる。
サービス提供システム1021は、サービス処理部1310と、ストレージサービス連携部1320と、ドキュメントサービス部1330とを有する。また、サービス提供システム1021は、アプリ情報記憶部1340を有する。なお、アプリ情報記憶部1340はサービス提供システム1021とネットワークN2を介して接続される記憶装置等により実現されてもよい。
サービス処理部1310は、アプリ管理部1311とロジック処理部1312とデータI/F部1313とを有する。アプリ管理部1311は、アプリ情報記憶部1340に記憶されているアプリ情報1341を管理する。アプリ管理部1311は、ブラウザ1301からの要求に応じて、アプリ情報1341に含まれる画面定義に基づくアプリ画面を返信する。これにより、画像形成装置1013のブラウザ1301には、サービス提供システム1021により提供されるサービスを利用するためのアプリ画面が表示される。アプリ情報1341は、上述したアプリ画面を画像形成装置1013に表示させるための画面定義と、サービスの処理内容とが記述された情報である。
また、アプリ管理部1311は、ロジック処理部1312からの要求に応じて、アプリ情報1341に含まれる処理内容を返信する。処理内容は、スキャン配信サービスやクラウドプリントサービス等を実現するための一連の処理が記述されている。
ロジック処理部1312は、ブラウザ1301からの要求に応じて、アプリ管理部1311から処理内容を取得する。そして、ロジック処理部1312は、取得した処理内容に従ってドキュメントサービス部1330又は/及びストレージサービス連携部1320のファイル処理部1321に対して、処理の実行を要求する。これにより、サービス提供システム1021による各種サービスが、画像形成装置1013に提供される。
データI/F部1313は、ブラウザ1301からの要求に応じて、ストレージサービス連携部1320のデータ処理部1322に対して、例えばフォルダ一覧の取得等を要求する。
ドキュメントサービス部1330は、サービス提供システム1021により提供されるサービスを実現するためのプログラム(モジュール)群である。ドキュメントサービス部1330には、電子ファイルに対してOCR処理を実行するOCR処理や電子ファイルを画像形成装置1013が印刷可能なデータ形式(印刷データ)に変換する印刷変換処理等が含まれる。ドキュメントサービス部1330には例えば電子ファイルの圧縮又は解凍するためのプログラム、電子ファイルのデータ形式を変換(例えばPDF形式に変換)するためのプログラム等、各種の処理を実行するプログラムが含まれていてもよい。
ストレージサービス連携部1320は、ロジック処理部1312及びデータI/F部1313からの要求に応じて、外部ストレージシステム1024に対して、各種処理の実行を要求する。サービス提供システム1021は、外部ストレージシステム1024毎にストレージサービス連携部1320をそれぞれ有する。図23では複数のストレージサービス連携部1320について、各々を区別するときは、上記のように「ストレージサービスA連携部」「ストレージサービスB連携部」等と記載する。
ストレージサービス連携部1320は、ロジック処理部1312からの要求を受け付けるファイル処理部1321と、データI/F部1313からの要求を受け付けるデータ処理部1322とを有する。ファイル処理部1321は、外部ストレージシステム1024に保存されている電子ファイルに対する操作(例えば、取得、保存、編集等)を行うためのAPIが定義された共通I/F及び固有I/Fを有する。
共通I/Fは、複数の外部ストレージシステム1024において共通に利用できるAPIである。一方、固有I/Fは、特定の外部ストレージシステム1024において利用できるAPIである。
一方、データ処理部1322は、外部ストレージシステム1024に保存されている電子ファイルの書誌情報等のメタデータ(例えば、ファイル一覧、フォルダ一覧等)を取得等するためのAPIが定義された共通I/F及び固有I/Fを有する。
以上のように、第2の実施形態に係るサービス提供システム1021は、連携して処理を行う外部ストレージシステム1024毎に、それぞれストレージサービス連携部1320を有する。
図24はロジック処理部の一例の処理ブロック図である。図24のロジック処理部1312はフロー実行部1350と、コンポーネント管理部1360と、コンポーネント群1370と、型変換管理部1380と、型変換群1390とを有する。また、ロジック処理部1312は、型変換テーブル3000を利用する。
フロー実行部1350は、ブラウザ1301からスキャン配信サービス等の処理の実行要求を受け付けると、アプリ管理部1311を介して、アプリ情報1341から処理内容を取得する。そして、フロー実行部1350は、取得した処理内容に従ってコンポーネント群1370のコンポーネントに対して処理の実行を要求する。なお、コンポーネントとは各種処理を実行するためのモジュール等であり、クラスや関数等で定義される。
コンポーネント管理部1360は、フロー実行部1350からの要求に応じて、コンポーネントの生成を行う。なお、コンポーネントの生成とは、例えばクラスで定義されたコンポーネントを、メモリ上に展開することを意味する。
コンポーネント群1370は、コンポーネントの集合である。図24のコンポーネント群1370には、課金準備コンポーネント1374、OCRコンポーネント1373、課金コンポーネント1371、メール配信コンポーネント1372が含まれる。図24のコンポーネント群1370に含まれる各コンポーネントは、コンポーネント共通I/F1375を有する。コンポーネント共通I/F1375は、各コンポーネントに対して共通に定義されたAPIであり、コンポーネントを生成するためのAPIと、コンポーネントに対して処理の実行を要求するためのAPIとが含まれる。
型変換管理部1380は、データ型の型変換を管理する。型変換管理部1380はコンポーネントからの要求に応じて、型変換テーブル3000を参照し、型変換群1390に定義されている型変換1391を生成する。そして、型変換管理部1380は、生成された型変換1391に対して型変換処理の実行を要求する。型変換とは、データ型の型変換処理を実行するためのモジュール等であり、クラスや関数等で定義される。
これらの各型変換1391は、型変換共通I/F1392を有する。型変換共通I/F1392は、各型変換1391に対して共通に定義されたAPIであり、型変換1391を生成するためのAPIと、型変換1391に対して処理の実行を要求するためのAPIとが含まれる。
図24に示すコンポーネント群1370のコンポーネントの処理に対する課金は例えば図25のシーケンス図に示す手順により行うことができる。図25はコンポーネント群のコンポーネントの処理に対する課金の一例のシーケンス図である。
ステップS201において、ブラウザ1301はアプリID、ファイル、宛先を付加してロジック処理部1312のフロー実行部1350に処理実行を要求する。フロー実行部1350は認証チケット、データを付加して課金準備コンポーネント1374に処理実行を要求する。
ステップS203において、課金準備コンポーネント1374は認証チケットとサービス種別とを付加して実行可否の判断を認証・認可部1121に要求する。認証・認可部1121は、図8に示したように実行可否を判断する処理を行い、実行可否の判断結果として実行可否と使用可能残度数とを課金準備コンポーネント1374に返す。
ステップS204に進み、課金準備コンポーネント1374は認証チケットとサービス種別と度数とを付加した使用の予約を課金(Wrapper)部1129に要求する。課金(Wrapper)部1129は図9に示した使用を予約する処理を行う。
課金(Wrapper)部1129は使用履歴のレコードの使用履歴IDと使用可能残度数とを課金準備コンポーネント1374に返す。ステップS205に進み、課金準備コンポーネント1374はデータと使用履歴IDとをフロー実行部1350に返す。
ステップS206においてフロー実行部1350はデータを付加して処理の実行をOCRコンポーネント1373に要求する。OCRコンポーネント1373はフロー実行部1350から要求された処理を実行し、処理後のデータをフロー実行部1350に返す。
ステップS207においてフロー実行部1350は処理後のデータを付加して処理の実行を課金コンポーネント1371に要求する。課金コンポーネント1371は使用履歴IDと度数とを付加した使用の確定を課金(Wrapper)部1129に要求する。
課金(Wrapper)部1129は図11に示したように、使用を確定する処理を行う。課金(Wrapper)部1129は使用可能残度数を課金コンポーネント1371に返す。ステップS209において課金コンポーネント1371は処理後のデータと使用履歴IDとをフロー実行部1350に返す。
ステップS210に進み、フロー実行部1350は宛先と処理後のデータとを付加して処理の実行をメール配信コンポーネント1372に要求する。ステップS211においてメール配信コンポーネント1372は処理度のデータを宛先にメール送信する。ステップS212において、メール配信コンポーネント1372はフロー実行部1350にデータを返す。ステップS213においてフロー実行部1350はブラウザ1301に処理結果を返す。
図25のコンポーネントの処理に対する課金を実現するため、課金準備コンポーネント1374は前述した実行可否の判断を要求する処理と、使用の予約を要求する処理とを実装する。例えば課金準備コンポーネント1374はサービス種別と、課金度数を計算する入力データの属性(ページ数など)及び係数と、を入力パラメータとする。課金準備コンポーネント1374は属性の値×係数から度数を計算する。また、課金準備コンポーネント1374は使用履歴IDを出力パラメータとする。
図25のコンポーネントの処理に対する課金を実現するため、課金コンポーネント1371は前述した使用の確定を要求する処理を実装する。例えば課金コンポーネント1371は課金度数を計算する入力データの属性及び係数と、使用履歴IDとを入力パラメータとする。
第2の実施形態に係る情報処理システム1000Bは図24に示すコンポーネント群1370のコンポーネントの処理に対する課金を、図26に示すようにフローに追加できる課金準備コンポーネント1374と課金コンポーネント1371とにより実現する。
図26は、コンポーネントの処理に対する課金の一例のイメージ図である。例えば図26(A)に示すOCRコンポーネント1373とメール配信コンポーネント1372との処理フローに課金を行うものとする。
第2の実施形態に係る情報処理システム1000Bは図26(B)に示すように、図26(A)の処理フローに課金準備コンポーネント1374及び課金コンポーネント1371の処理を追加することで、コンポーネントの処理に対する課金を実現している。例えば図26(B)の課金コンポーネント1371はOCRコンポーネント1373から出力されるファイルサイズにより課金を行うことができる。
このように、第2の実施形態に係る情報処理システム1000Bによれば、コンポーネント群1370のコンポーネントに入力されるデータや、コンポーネントから出力されるデータに対する課金を行うことができる。
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
例えば、サービス提供システム1021又は図4のサービスプラットフォームは、特許請求の範囲に記載した情報処理システムの一例である。画像形成装置1013は端末装置の一例である。共通サービス1103は共通サービス提供手段の一例である。プラットフォームAPI1106、1107は使用量登録受付手段の一例である。課金部1152は課金手段の一例である。請求部1154は請求手段の一例である。ワーカー1132、OCRコンポーネント1373は処理実行部の一例である。