(57)【特許請求の範囲】
【請求項１】
所定の機能を実行する機器と、該機能を利用した所定のサービスを提供するアプリケーションとを有する情報処理システムであって、
前記アプリケーションから送信される前記機能の実行要求を受信する受信手段と、
前記受信手段により前記実行要求を受信すると、該実行要求に含まれる認証トークンの種別が、開発中の前記アプリケーションが前記機能を利用するために用いられる認証トークンであることを示す開発用、又は、製品となった前記アプリケーションが前記機能を利用するために用いられる認証トークンであることを示す製品用のいずれであるかを特定する第１の特定手段と、
前記機能を実行する機器の種別が、開発中の前記アプリケーションに前記機能の実行を提供するための機器を示す開発版、又は、製品となった前記アプリケーションに前記機能の実行を提供するための機器を示す製品版のいずれであるかを特定する第２の特定手段と、
前記第１の特定手段により特定された前記認証トークンの種別と、前記第２の特定手段により特定された前記機器の種別とに基づいて、前記認証トークンが有効であるか否かを判定する判定手段と、
前記判定手段により前記認証トークンが有効であると判定された場合、前記実行要求に対応する機能を実行する実行手段と、
を有する情報処理システム。
【請求項２】
前記第１の特定手段は、
前記認証トークンに含まれる所定の情報に基づいて、該認証トークンの種別が前記開発用又は前記製品用のいずれであるかを特定する、請求項１に記載の情報処理システム。
【請求項３】
前記第２の特定手段は、
前記機器に関する情報に基づいて、前記機器の種別が前記開発版又は前記製品版のいずれであるかを特定する、請求項１又は２に記載の情報処理システム。
【請求項４】
前記判定手段は、
前記認証トークンの種別及び前記機器の種別の組み合わせと、前記認証トークンの有効又は無効を示す情報とが関連付けられた判定情報に基づいて、前記認証トークンが有効であるか否かを判定する、請求項１乃至３の何れか一項に記載の情報処理システム。
【請求項５】
アプリケーションからの要求に応じて所定の機能を実行する情報処理装置であって、
前記アプリケーションから送信される前記機能の実行要求を受信する受信手段と、
前記受信手段により前記実行要求を受信すると、該実行要求に含まれる認証トークンの種別が、開発中の前記アプリケーションが前記機能を利用するために用いられる認証トークンであることを示す開発用、又は、製品となった前記アプリケーションが前記機能を利用するために用いられる認証トークンであることを示す製品用のいずれであるかを特定する第１の特定手段と、
前記機能を実行する機器の種別が、開発中の前記アプリケーションに前記機能の実行を提供するための機器を示す開発版、又は、製品となった前記アプリケーションに前記機能の実行を提供するための機器を示す製品版のいずれであるかを特定する第２の特定手段と、
前記第１の特定手段により特定された前記認証トークンの種別と、前記第２の特定手段により特定された前記機器の種別とに基づいて、前記認証トークンが有効であるか否かを判定する判定手段と、
前記判定手段により前記認証トークンが有効であると判定された場合、前記実行要求に対応する機能を実行する実行手段と、
を有する情報処理装置。
【請求項６】
所定の機能を実行する機器と、該機能を利用した所定のサービスを提供するアプリケーションとを有する情報処理システムに用いられる情報処理方法であって、
前記アプリケーションから送信される前記機能の実行要求を受信する受信手順と、
前記受信手順により前記実行要求を受信すると、該実行要求に含まれる認証トークンの種別が、開発中の前記アプリケーションが前記機能を利用するために用いられる認証トークンであることを示す開発用、又は、製品となった前記アプリケーションが前記機能を利用するために用いられる認証トークンであることを示す製品用のいずれであるかを特定する第１の特定手順と、
前記機能を実行する機器の種別が、開発中の前記アプリケーションに前記機能の実行を提供するための機器を示す開発版、又は、製品となった前記アプリケーションに前記機能の実行を提供するための機器を示す製品版のいずれであるかを特定する第２の特定手順と、
前記第１の特定手順により特定された前記認証トークンの種別と、前記第２の特定手順により特定された前記機器の種別とに基づいて、前記認証トークンが有効であるか否かを判定する判定手順と、
前記判定手順により前記認証トークンが有効であると判定された場合、前記実行要求に対応する機能を実行する実行手順と、
を有する情報処理方法。
【請求項７】
アプリケーションからの要求に応じて所定の機能を実行する情報処理装置を、
前記アプリケーションから送信される前記機能の実行要求を受信する受信手段、
前記受信手段により前記実行要求を受信すると、該実行要求に含まれる認証トークンの種別が、開発中の前記アプリケーションが前記機能を利用するために用いられる認証トークンであることを示す開発用、又は、製品となった前記アプリケーションが前記機能を利用するために用いられる認証トークンであることを示す製品用のいずれであるかを特定する第１の特定手段、
前記機能を実行する機器の種別が、開発中の前記アプリケーションに前記機能の実行を提供するための機器を示す開発版、又は、製品となった前記アプリケーションに前記機能の実行を提供するための機器を示す製品版のいずれであるかを特定する第２の特定手段、
前記第１の特定手段により特定された前記認証トークンの種別と、前記第２の特定手段により特定された前記機器の種別とに基づいて、前記認証トークンが有効であるか否かを判定する判定手段、
前記判定手段により前記認証トークンが有効であると判定された場合、前記実行要求に対応する機能を実行する実行手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理装置、情報処理方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、画像形成装置の各種機能を利用するためのＷｅｂＡＰＩ（Application Programming Interface）を公開することで、画像形成装置に搭載されるアプリケーションをサードベンダー等で開発することが行われている。このような場合、サードベンダー等には、画像形成装置の製造元ベンダー等により、開発中のアプリケーションがＷｅｂＡＰＩを利用するための認証用のトークン（開発用トークン）が発行される。また、アプリケーションの開発が完了した場合には、当該アプリケーションがＷｅｂＡＰＩを利用するための認証用のトークン（製品用トークン）が発行される。
【０００３】
また、認証用のトークンを用いて、画像形成装置に搭載されたアプリケーションを利用する技術が知られている（例えば特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ここで、製品用トークンが発行された以降は、当該製品用トークンを用いて、例えば、開発中の他のアプリケーションがＷｅｂＡＰＩを利用することができる場合があった。このため、画像形成装置の製造元ベンダー等が把握していないアプリケーションがサードベンダー等により開発される可能性があった。
【０００５】
本発明の実施の形態は、上記の点に鑑みてなされたもので、トークンの不正利用を防止することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明の実施の形態は、所定の機能を実行する機器と、該機能を利用した所定のサービスを提供するアプリケーションとを有する情報処理システムであって、前記アプリケーションから送信される前記機能の実行要求を受信する受信手段と、前記受信手段により前記実行要求を受信すると、該実行要求に含まれる認証トークンの種別を特定する第１の特定手段と、前記機能を実行する機器の種別を特定する第２の特定手段と、前記第１の特定手段により特定された前記認証トークンの種別と、前記第２の特定手段により特定された前記機器の種別とに基づいて、前記認証トークンが有効であるか否かを判定する判定手段と、前記判定手段により前記認証トークンが有効であると判定された場合、前記実行要求に対応する機能を実行する実行手段と、を有する。
【発明の効果】
【０００７】
本発明の実施の形態によれば、トークンの不正利用を防止することができる。
【図面の簡単な説明】
【０００８】
【図１】本実施形態に係る情報処理システムの一例のシステム構成を示す図である。
【図２】本実施形態に係る端末装置及びサーバ装置の一例のハードウェア構成を示す図である。
【図３】本実施形態に係る画像形成装置の一例のハードウェア構成を示す図である。
【図４】本実施形態に係る情報処理システムの一例の機能構成を示す図である。
【図５】トークンの一例を示す図である。
【図６】機器情報の一例を示す図である。
【図７】開発アプリケーションの実行処理の一例を示すシーケンス図である。
【図８】トークンの有効性判定処理の一例を示すフローチャートである。
【図９】判定テーブルの一例を示す図である。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
【００１０】
＜システム構成＞
まず、本実施形態に係る情報処理システム１のシステム構成について、図１を参照しながら説明する。図１は、本実施形態に係る情報処理システムの一例のシステム構成を示す図である。
【００１１】
図１に示す情報処理システム１は、後述する画像形成装置３０の各種機能を利用するアプリケーションの開発を行うサードベンダー等におけるシステム環境Ｅ１と、画像形成装置３０の製造元ベンダー等におけるシステム環境Ｅ２とが含まれる。また、システム環境Ｅ１及びシステム環境Ｅ２は、インターネット等の広域的なネットワークＮ１を介して通信可能に接続されている。
【００１２】
システム環境Ｅ１は、１台以上の端末装置１０と、１台以上のサーバ装置２０とが、例えばＬＡＮ（Local Area Network）等のネットワークＮ２に接続されている。
【００１３】
端末装置１０は、サードベンダー等におけるアプリケーションの開発者（ユーザ）等が利用するＰＣ（パーソナルコンピュータ）、スマートフォン、タブレット端末等の情報処理装置ある。開発者等は、端末装置１０を用いて、画像形成装置３０の各種機能を利用するアプリケーションの開発作業や開発中のアプリケーションの動作確認作業等を行うことができる。
【００１４】
サーバ装置２０は、サードベンダー等が開発中のアプリケーションを管理するＰＣ等の情報処理装置である。サーバ装置２０は、端末装置１０からの要求に応じて、開発中のアプリケーションを実行することで、画像形成装置３０の各種機能を利用したサービスを提供する。これにより、開発者等は、端末装置１０を用いて、開発中のアプリケーションの動作確認等を行うことができる。
【００１５】
システム環境Ｅ２は、１台以上の画像形成装置３０が、ＬＡＮ等のネットワークＮ３に接続されている。
【００１６】
画像形成装置３０は、プリント機能やスキャン機能、コピー機能、ＦＡＸ通信機能等の各種機能を有するＭＦＰ（Multifunction Peripheral）等の機器である。画像形成装置３０は、ＷｅｂＡＰＩを介して、アプリケーションから要求を受け付けることで、これらの各種機能を当該アプリケーションに提供することができる。
【００１７】
なお、システム環境Ｅ２には、例えば、プロジェクタ、電子黒板、デジタルカメラ、ゲーム機器、カーナビゲーション装置等の各種機器が含まれていても良い。すなわち、本実施形態では、これらの各種機器が、ＷｅｂＡＰＩを介して、アプリケーションから要求を受け付ける場合にも同様に適用することができる。
【００１８】
また、本実施形態では、システム環境Ｅ１に含まれるサーバ装置２０がアプリケーションを実行するものとして説明するが、これに限られない。すなわち、本実施形態は、例えば、端末装置１０にアプリケーションをインストールすること等により、当該端末装置１０上でアプリケーションが実行される場合にも同様に適用することができる。また、本実施形態は、例えば、クラウドサービスやＡＳＰ（Application Service Provider）等の外部サービス上でアプリケーションが実行される場合にも同様に適用することができる。
【００１９】
＜ハードウェア構成＞
次に、本実施形態に係る端末装置１０及びサーバ装置２０のハードウェア構成について、図２を参照しながら説明する。図２は、本実施形態に係る端末装置及びサーバ装置の一例のハードウェア構成を示す図である。なお、端末装置１０及びサーバ装置２０は、同様のハードウェア構成を有しているため、以降では、主に、端末装置１０のハードウェア構成について説明する。
【００２０】
図２に示す端末装置１０は、入力装置１０１と、表示装置１０２と、外部Ｉ／Ｆ１０３と、ＲＡＭ（Random Access Memory）１０４とを有する。また、端末装置１０は、ＲＯＭ（Read Only Memory）１０５と、ＣＰＵ（Central Processing Unit）１０６と、通信Ｉ／Ｆ１０７と、ＨＤＤ（Hard Disk Drive）１０８とを有する。これらの各ハードウェアは、それぞれがバスＢで接続されている。
【００２１】
入力装置１０１は、キーボードやマウス、タッチパネル等を含み、ユーザが各種の操作信号を入力するのに用いられる。表示装置１０２は、ディスプレイ等を含み、端末装置１０による処理結果を表示する。なお、サーバ装置２０は、入力装置１０１及び表示装置１０２の少なくとも一方を、必要なときにバスＢに接続して利用する形態であっても良い。
【００２２】
通信Ｉ／Ｆ１０７は、端末装置１０をネットワークＮ２に接続するためのインタフェースである。これにより、端末装置１０は、通信Ｉ／Ｆ１０７を介して、通信を行うことができる。
【００２３】
ＨＤＤ１０８は、プログラムやデータを格納している不揮発性の記憶装置である。ＨＤＤ１０８に格納されるプログラムやデータには、端末装置１０全体を制御する基本ソフトウェアであるＯＳ（Operating System）、ＯＳ上において各種機能を提供するプログラム等がある。
【００２４】
なお、端末装置１０は、ＨＤＤ１０８に代え、記憶媒体としてフラッシュメモリを用いるドライブ装置（例えばソリッドステートドライブ：ＳＳＤ）を利用するものであっても良い。また、ＨＤＤ１０８は、格納しているプログラムやデータを所定のファイルシステム及び／又はＤＢにより管理している。
【００２５】
外部Ｉ／Ｆ１０３は、外部装置とのインタフェースである。外部装置には、記録媒体１０３ａ等がある。これにより、端末装置１０は、外部Ｉ／Ｆ１０３を介して、記録媒体１０３ａの読み取りや書き込みを行うことができる。記録媒体１０３ａには、例えば、フレキシブルディスク、ＣＤ、ＤＶＤ、ＳＤメモリカード、ＵＳＢメモリ等がある。
【００２６】
ＲＯＭ１０５は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリ（記憶装置）である。ＲＯＭ１０５には、端末装置１０の起動時に実行されるＢＩＯＳ（Basic Input/Output System）、ＯＳ設定、及びネットワーク設定等のプログラムやデータが格納されている。ＲＡＭ１０４は、プログラムやデータを一時保持する揮発性の半導体メモリ（記憶装置）である。
【００２７】
ＣＰＵ１０６は、ＲＯＭ１０５やＨＤＤ１０８等の記憶装置からプログラムやデータをＲＡＭ１０４上に読み出し、処理を実行することで、端末装置１０全体の制御や機能を実現する演算装置である。
【００２８】
本実施形態に係る端末装置１０及びサーバ装置２０は、図２に示すハードウェア構成を有することにより、後述する各種処理を実現することができる。
【００２９】
次に、本実施形態に係る画像形成装置３０のハードウェア構成について、図３を参照しながら説明する。図３は、本実施形態に係る画像形成装置の一例のハードウェア構成を示す図である。
【００３０】
図３に示す画像形成装置３０は、コントローラ２０１と、操作パネル２０２と、外部Ｉ／Ｆ２０３と、通信Ｉ／Ｆ２０４と、画像処理エンジン２０５とを有する。また、コントローラ２０１は、ＣＰＵ２１１と、ＲＡＭ２１２と、ＲＯＭ２１３と、ＮＶＲＡＭ２１４と、ＨＤＤ２１５とを有する。
【００３１】
ＲＯＭ２１３は、各種プログラムやデータを格納している不揮発性の半導体メモリ（記憶装置）である。ＲＡＭ２１２は、プログラムやデータを一時保持する揮発性の半導体メモリ（記憶装置）である。ＮＶＲＡＭ２１４は、例えば設定情報等を格納している半導体メモリ（記憶装置）である。また、ＨＤＤ２１５は、各種プログラムやデータを格納している不揮発性の記憶装置である。
【００３２】
ＣＰＵ２１１は、ＲＯＭ２１３やＮＶＲＡＭ２１４、ＨＤＤ２１５等からプログラムやデータ、設定情報等をＲＡＭ２１２上に読み出し、処理を実行することで、画像形成装置３０全体の制御や機能を実現する演算装置である。
【００３３】
操作パネル２０２は、画像形成装置３０の利用者からの入力を受け付ける入力部と、表示を行う表示部とを備えている。外部Ｉ／Ｆ２０３は、外部装置とのインタフェースである。外部装置には、記録媒体２０３ａ等がある。これにより、画像形成装置３０は、外部Ｉ／Ｆ２０３を介して、記録媒体２０３ａの読み取りや書き込みを行うことができる。記録媒体２０３ａには、例えば、ＩＣカード、フレキシブルディスク、ＣＤ、ＤＶＤ、ＳＤメモリカード、ＵＳＢメモリ等がある。
【００３４】
通信Ｉ／Ｆ２０４は、画像形成装置３０をネットワークＮ３に接続するためのインタフェースである。これにより、画像形成装置３０は、通信Ｉ／Ｆ２０４を介して、通信を行うことができる。
【００３５】
画像処理エンジン２０５は、プリント機能やスキャン機能、コピー機能、ＦＡＸ通信機能等の各種機能を実現するための画像処理を行うハードウェアである。
【００３６】
画像処理エンジン２０５には、例えば、原稿を光学的に読み取って画像データを生成するスキャナ、用紙等のシート材への印刷を行うプロッタ、及びＦＡＸ通信を行うＦＡＸ通信装置等が含まれる。また、画像処理エンジン２０５には、例えば、印刷済みのシート材を仕分けるフィニッシャや原稿を自動給送するＡＤＦ（自動原稿給送装置）等が含まれていても良い。
【００３７】
本実施形態に係る画像形成装置３０は、図３に示すハードウェア構成を有することにより、後述する各種処理を実現することができる。
【００３８】
＜機能構成＞
次に、本実施形態に係る情報処理システム１の機能構成について、図４を参照しながら説明する。図４は、本実施形態に係る情報処理システムの一例の機能構成を示す図である。
【００３９】
図４に示す端末装置１０は、例えばＣＰＵ１０６等により実行されるブラウザ１１を有する。端末装置１０のユーザは、ブラウザ１１を用いて、後述する開発アプリケーション２１の実行（すなわち、例えば、開発アプリケーション２１の動作確認等）を行うことができる。
【００４０】
また、端末装置１０は、トークン記憶部１２を有する。トークン記憶部１２は、例えばＨＤＤ１０８を用いて実現可能である。トークン記憶部１２には、画像形成装置３０の製造元ベンダー等により発行された開発用又は製品用のトークン１２Ｄが記憶されている。端末装置１０のユーザは、ブラウザ１１を介して、トークン１２Ｄを含む要求をアプリケーションに送信することで、当該アプリケーションが画像形成装置３０の各種機能を利用したサービスの提供を受けることができる。
【００４１】
ここで、トークン記憶部１２に記憶されているトークン１２Ｄについて、図５を参照しながら説明する。図５は、トークンの一例を示す図である。
【００４２】
図５に示すように、トークン１２Ｄは、トークン値、有効期限、及び種別フラグ等を有する。トークン値には、認証に用いられる文字列等を示す値が設定される。有効期限には、トークン値を認証に用いることが可能な期限を示す値が設定される。種別フラグには、トークン１２Ｄの種別が開発用又は製品用のいずれであるかを示す値が設定される。
【００４３】
ここで、開発用のトークンとは、開発中のアプリケーション（すなわち、開発アプリケーション２１）が画像形成装置３０の各種機能を利用するための認証用のトークンである。一方、製品用のトークンとは、開発が完了したアプリケーション（すなわち、例えば、製品としてリリースされた製品アプリケーション）が画像形成装置３０の各種機能を利用するための認証用のトークンである。
【００４４】
図４に示すサーバ装置２０は、例えばＣＰＵ１０６等により実行される開発アプリケーション２１を有する。開発アプリケーション２１は、画像形成装置３０の各種機能を利用したサービスを提供するアプリケーションプログラムであり、サードベンダー等により開発中のものである。
【００４５】
図４に示す画像形成装置３０は、当該画像形成装置３０の各種機能を利用したサービスを提供するアプリケーション群３１を有する。開発アプリケーション２１の開発が完了した場合、例えば、サーバ装置２０から画像形成装置３０にダウンロードされて、製品アプリケーション４１がインストールされる。なお、アプリケーション群３１には、例えば、画像形成装置３０のコピー機能を利用したコピーサービスを提供するコピーアプリケーション、プリント機能を利用したプリントサービスを提供するプリントアプリケーション等、各種のアプリケーションが含まれる。ただし、アプリケーション群３１は、複数のアプリケーションが含まれている場合に限られず、１以上のアプリケーションが含まれていれば良い。
【００４６】
また、画像形成装置３０は、ＷｅｂＡＰＩ３２と、判定処理部３３と、機能実行部３４とを有する。これら各部は、画像形成装置３０にインストールされた１以上のプログラムが、ＣＰＵ２１１により実行させる処理により実現される。
【００４７】
さらに、画像形成装置３０は、判定テーブル記憶部３５と、機器情報記憶部３６とを有する。これら各記憶部は、例えばＨＤＤ２１５を用いて実現可能である。なお、判定テーブル記憶部３５及び機器情報記憶部３６の少なくとも一方が、画像形成装置３０とネットワークを介して接続される記憶装置等により実現されていても良い。
【００４８】
ＷｅｂＡＰＩ３２は、開発アプリケーション２１やアプリケーション群３１に含まれる各アプリケーションが画像形成装置３０の各種機能を利用するためのＡＰＩである。開発アプリケーション２１等は、ＨＴＴＰ（Hypertext Transfer Protocol）リクエストの形式でＷｅｂＡＰＩ３２に各種の要求を行うことにより、画像形成装置３０の各種機能（例えば、スキャン機能やＦＡＸ通信機能等）を利用することができる。
【００４９】
すなわち、例えば、開発アプリケーション２１は、ブラウザ１１から受信したＨＴＴＰリクエストに含まれるトークン１２Ｄを用いて、ＷｅｂＡＰＩ３２にＨＴＴＰリクエストを送信する。これにより、後述する判定処理部３３により当該トークン１２Ｄが有効であると判定された場合、開発アプリケーション２１は、画像形成装置３０の各種機能を利用することができる。
【００５０】
判定処理部３３は、開発アプリケーション２１等からＷｅｂＡＰＩ３２を介して受信した要求に含まれるトークン１２Ｄの有効性を判定する。ここで、判定処理部３３は、機器特定部５１と、トークン特定部５２と、有効性判定部５３とを有する。
【００５１】
機器特定部５１は、機器情報記憶部３６から機器情報３６Ｄを取得して、当該機器情報３６Ｄから画像形成装置３０の種別を特定する。画像形成装置３０の種別には、開発アプリケーション２１の動作確認等に用いられる機器（すなわち、例えば、テスト用の機器）であることを示す「開発版」と、製品として販売やリース等される機器であることを示す「製品版」とがある。
【００５２】
トークン特定部５２は、トークン１２Ｄの種別を特定する。トークン１２Ｄの種別には、上述したように、開発アプリケーション２１が用いるトークンであることを示す「開発用」と、製品アプリケーション４１が用いるトークンであることを示す「製品用」とがある。
【００５３】
有効性判定部５３は、判定テーブル記憶部３５から判定テーブル３５Ｄの情報を取得する。そして、有効性判定部５３は、取得した判定テーブル３５Ｄの情報と、機器特定部５１により特定された画像形成装置３０の種別と、トークン特定部５２により特定されたトークン１２Ｄの種別とに基づいて、当該トークン１２Ｄの有効性を判定する。
【００５４】
例えば、有効性判定部５３は、開発アプリケーション２１が製品用のトークン１２Ｄを用いて、開発版の画像形成装置３０の各種機能の利用を要求した場合、当該トークン１２Ｄを無効であると判定する。また、例えば、有効性判定部５３は、開発アプリケーション２１が開発用のトークン１２Ｄを用いて、製品版の画像形成装置３０の各種機能の利用を要求した場合、当該トークン１２Ｄを無効であると判定する。
【００５５】
このように、有効性判定部５３によりトークン１２Ｄの有効性が判定されることで、例えば、製品用のトークン１２Ｄを用いて、開発版の画像形成装置３０の各種機能が利用されてしまう事態を防止することができる。同様に、例えば、開発用のトークン１２Ｄを用いて、製品版の画像形成装置３０の各種機能が利用されてしまう事態を防止することができる。
【００５６】
機能実行部３４は、有効性判定部５３の判定結果に応じて、画像形成装置３０の各種機能を実行する。
【００５７】
判定テーブル記憶部３５は、判定テーブル３５Ｄを記憶する。判定テーブル３５Ｄは、画像形成装置３０の種別と、トークン１２Ｄの種別とに基づいて、当該トークン１２Ｄが有効であるか中を判定するためのテーブルである。なお、判定テーブル３５Ｄの詳細については後述する。
【００５８】
機器情報記憶部３６は、画像形成装置３０に関する各種の情報が含まれる機器情報３６Ｄを記憶する。
【００５９】
ここで、機器情報記憶部３６に記憶されている機器情報３６Ｄについて、図６を参照しながら説明する。図６は、機器情報の一例を示す図である。
【００６０】
図６に示すように、機器情報３６Ｄは、シリアル番号、及びバージョン等を有する。シリアル番号には、画像形成装置３０を一意に識別する識別情報（例えば、製造固有番号等）を示す値が設定される。バージョンには、画像形成装置３０のバージョン番号を示す値が設定される。なお、機器情報３６Ｄには、これら以外にも、例えば、画像形成装置３０の性能情報等の各種の情報が含まれていても良い。
【００６１】
＜処理の詳細＞
次に、本実施形態に係る情報処理システム１の処理の詳細について説明する。以降では、端末装置１０のユーザが開発アプリケーション２１を実行させることで、画像形成装置３０の各種機能を利用したサービスを提供する開発アプリケーション２１の動作確認をする場合について、図７を参照しながら説明する。図７は、開発アプリケーションの実行処理の一例を示すシーケンス図である。
【００６２】
まず、ユーザは、端末装置１０のブラウザ１１を操作して、開発アプリケーション２１を実行させるための操作を行う。すると、端末装置１０のブラウザ１１は、サーバ装置２０の開発アプリケーション２１にアプリの実行要求を送信する（ステップＳ７０１）。ここで、当該実行要求には、トークン１２Ｄが含まれる。なお、ブラウザ１１は、ＨＴＴＰリクエストの形式でアプリの実行要求を送信する。
【００６３】
サーバ装置２０の開発アプリケーション２１は、アプリの実行要求を受信すると、画像形成装置３０のＷｅｂＡＰＩ３２にリクエストＡＰＩを送信する（ステップＳ７０２）。ここで、リクエストＡＰＩは、画像形成装置３０の所定の機能を利用するための要求であり、トークン１２Ｄが含まれる。なお、開発アプリケーション２１は、ＨＴＴＰリクエストの形式でリクエストＡＰＩを送信する。
【００６４】
画像形成装置３０のＷｅｂＡＰＩ３２は、リクエストＡＰＩを受信すると、当該リクエストＡＰＩに含まれるトークン１２Ｄの有効性の判定要求を判定処理部３３に送信する（ステップＳ７０３）。
【００６５】
画像形成装置３０の判定処理部３３は、判定要求を受信すると、トークンの有効性判定処理を実行する（ステップＳ７０４）。すなわち、判定処理部３３は、リクエストＡＰＩに含まれるトークン１２Ｄが有効であるか否かを判定する。なお、トークンの有効性判定処理の詳細については後述する。
【００６６】
ここで、上記のステップＳ７０４において、トークン１２Ｄが無効であると判定された場合、ステップＳ７０５〜ステップＳ７０７の処理が実行される。すなわち、まず、画像形成装置３０の判定処理部３３は、リクエストＡＰＩに含まれるトークン１２Ｄが無効であることを示す判定結果をＷｅｂＡＰＩ３２に送信する（ステップＳ７０５）。
【００６７】
次に、画像形成装置３０のＷｅｂＡＰＩ３２は、トークン１２Ｄが無効であることを示す判定結果を受信すると、トークン１２Ｄが無効であることを示すレスポンスＡＰＩを開発アプリケーション２１に送信する（ステップＳ７０６）。
【００６８】
最後に、サーバ装置２０の開発アプリケーション２１は、トークン１２Ｄが無効であることを示すレスポンスＡＰＩを受信すると、トークン１２Ｄが無効であることを示すアプリの実行応答をブラウザ１１に送信する（ステップＳ７０７）。これにより、端末装置１０の表示装置１０２には、ブラウザ１１により、例えば、画像形成装置３０にアクセスできないことを示す通知等が表示される。
【００６９】
一方で、上記のステップＳ７０４において、トークン１２Ｄが有効であると判定された場合、ステップＳ７０８〜ステップＳ７１２の処理が実行される。すなわち、まず、画像形成装置３０の判定処理部３３は、リクエストＡＰＩに対応する機能の実行要求を機能実行部３４に送信する（ステップＳ７０８）。
【００７０】
次に、画像形成装置３０の機能実行部３４は、機能の実行要求を受信すると、当該実行要求に応じた機能を実行する（ステップＳ７０９）。すなわち、機能実行部３４は、機能の実行要求に応じて、例えば、スキャン機能やコピー機能、ＦＡＸ通信機能等の画像形成装置３０の各種機能を実行する。
【００７１】
次に、画像形成装置３０の機能実行部３４は、上記のステップＳ７０９で実行された機能の実行結果をＷｅｂＡＰＩ３２に送信する（ステップＳ７１０）。なお、機能の実行結果とは、例えば、上記のステップＳ７０９でスキャン機能が実行された場合、当該スキャン機能により原稿を読み取ることで生成された画像データである。
【００７２】
次に、画像形成装置３０のＷｅｂＡＰＩ３２は、機能の実行結果を含むレスポンスＡＰＩを開発アプリケーション２１に送信する（ステップＳ７１１）。
【００７３】
最後に、サーバ装置２０の開発アプリケーション２１は、機能の実行結果を含むレスポンスＡＰＩを受信すると、例えば、当該実行結果に基づく処理を実行した上で、当該処理の処理結果を含むアプリの実行応答をブラウザ１１に送信する（ステップＳ７１２）。なお、ここで実行される処理は、開発アプリケーション２１の固有の処理であり、例えば、スキャン機能により生成された画像データの加工処理等である。
【００７４】
これにより、端末装置１０の表示装置１０２には、ブラウザ１１により、例えば、開発アプリケーション２１による処理結果等が表示される。すなわち、端末装置１０のユーザには、開発アプリケーション２１により、画像形成装置３０の各種機能を利用したサービスが提供される。
【００７５】
なお、図７では、開発アプリケーション２１が画像形成装置３０の各種機能を利用する場合について説明したが、これに限られず、例えば、製品アプリケーション４１が画像形成装置３０の各種機能を利用する場合についても同様に適用することができる。すなわち、例えば、画像形成装置３０又は端末装置１０にインストールされた製品アプリケーション４１がリクエストＡＰＩを送信する場合についても同様に適用することができる。
【００７６】
ここで、以降では、上記のステップＳ７０４におけるトークンの有効性判定処理の詳細について、図６を参照しながら説明する。図６は、トークンの有効性判定処理の一例を示すフローチャートである。以降では、トークン１２Ｄに含まれるトークン値及び有効期限の値は、それぞれ有効（正当）であるものとして説明する。なお、トークン１２Ｄに含まれるトークン値及び有効期限の少なくとも一方の値が無効（不正）である場合には、判定処理部３３は、当該トークン１２Ｄを無効であると判定すれば良い。
【００７７】
まず、判定処理部３３の機器特定部５１は、機器情報記憶部３６から機器情報３６Ｄを取得する（ステップＳ８０１）。
【００７８】
次に、判定処理部３３の機器特定部５１は、ステップＳ８０１で取得した機器情報３６Ｄから画像形成装置３０の種別を特定する（ステップＳ８０２）。
【００７９】
ここで、機器特定部５１は、機器情報３６Ｄに含まれるシリアル番号やバージョンに基づいて、画像形成装置３０の種別を特定（すなわち、当該画像形成装置３０が「開発版」又は「製品版」のいずれであるかを特定）する。
【００８０】
すなわち、機器特定部５１は、例えば、機器情報３６Ｄのシリアル番号に値が設定されていない場合や空値（ＮＵＬＬ値）が設定されている場合、画像形成装置３０を「開発版」と特定する。一方で、機器特定部５１は、例えば、機器情報３６Ｄのシリアル番号に、空値以外の値が設定されている場合、画像形成装置３０を「製品版」と特定する。
【００８１】
また、機器特定部５１は、例えば、機器情報３６Ｄのシリアル番号に設定されている値に応じて、画像形成装置３０が「開発版」又は「製品版」のいずれであるかを特定しても良い。具体的には、機器情報３６Ｄのシリアル番号に設定されている値の最上位桁に所定の文字（例えば、「Ｚ」）が指定されている場合には、画像形成装置３０を「開発版」と特定する。一方で、機器情報３６Ｄのシリアル番号に設定されている値の最上位桁に当該所定の文字以外の文字が指定されている場合には、画像形成装置３０を「製品版」と特定する。
【００８２】
また、機器特定部５１は、例えば、機器情報３６Ｄのバージョンに設定されている値に応じて、画像形成装置３０が「開発版」又は「製品版」のいずれであるかを特定しても良い。具体的には、機器情報３６Ｄのバージョンに設定されている値が１未満（すなわち、例えば、「０．１２」等）である場合には、画像形成装置３０を「開発版」と特定する。一方で、機器情報３６Ｄのバージョンに設定されている値が１以上（すなわち、例えば、「１．００」等）である場合には、画像形成装置３０を「製品版」と特定する。
【００８３】
このように、機器特定部５１は、機器情報３６Ｄに含まれるシリアル番号やバージョン等の種々の情報に基づいて、画像形成装置３０の種別を特定する。
【００８４】
次に、判定処理部３３のトークン特定部５２は、ＷｅｂＡＰＩ３２が受信したリクエストＡＰＩに含まれるトークン１２Ｄの種別を特定する（ステップＳ８０３）。すなわち、トークン特定部５２は、例えば、トークン１２Ｄの種別フラグに設定されている値が「１」の場合、トークン１２Ｄを「製品用」と特定する。一方で、トークン特定部５２は、例えば、トークン１２Ｄの種別フラグに設定されている値が「０」の場合、トークン１２Ｄを「開発用」と特定する。
【００８５】
また、トークン特定部５２は、例えば、製品用のトークン１２Ｄにのみ含まれる所定の情報が、該当のトークン１２Ｄに含まれるか否かにより、トークン１２Ｄの種別を特定しても良い。
【００８６】
このように、トークン特定部５２は、トークン１２Ｄに含まれる種別フラグ等の種々の情報に基づいて、トークン１２Ｄの種別を特定する。
【００８７】
次に、判定処理部３３の有効性判定部５３は、判定テーブル記憶部３５から判定テーブル３５Ｄの情報を取得する（ステップＳ８０４）。
【００８８】
ここで、判定テーブル記憶部３５に記憶されている判定テーブル３５Ｄの詳細について、図９を参照しながら説明する。図９は、判定テーブルの一例を示す図である。
【００８９】
図９に示すように、判定テーブル３５Ｄは、画像形成装置３０の種別と、トークン１２Ｄの種別との組み合わせに応じて、トークン１２Ｄの有効又は無効を示す情報（値）が関連付けられている。
【００９０】
例えば、図９に示す判定テーブル３５Ｄでは、画像形成装置３０の種別が「開発版」、トークン１２Ｄの種別が「開発用」である場合には、トークン１２Ｄが有効と判定されることを示す「有効」が関連付けられている。同様に、例えば、図９に示す判定テーブル３５Ｄでは、画像形成装置３０の種別が「製品版」、トークン１２Ｄの種別が「開発用」である場合には、トークン１２Ｄが無効と判定されることを示す「無効」が関連付けられている。
【００９１】
続いて、判定処理部３３の有効性判定部５３は、ステップＳ８０４で取得した判定テーブル３５Ｄの情報を参照して、画像形成装置３０の種別及びトークン１２Ｄの種別の組み合わせに応じて、当該トークン１２Ｄの有効性を判定する（ステップＳ８０５）。
【００９２】
すなわち、有効性判定部５３は、判定テーブル３５Ｄの情報（値）のうち、ステップＳ８０２で特定した画像形成装置３０の種別と、ステップＳ８０３で特定したトークン１２Ｄの種別との組み合わせに対応する値（「有効」又は「無効」）を参照する。そして、有効性判定部５３は、当該値（「有効」又は「無効」）を判定結果とする。これにより、リクエストＡＰＩに含まれるトークン１２Ｄの有効性（「有効」又は「無効」のいずれであるか）が判定される。
【００９３】
以上のように、本実施形態に係る情報処理システム１では、画像形成装置３０の種別と、トークン１２Ｄの種別との組み合わせに応じて、当該トークン１２Ｄが有効性を判定する。
【００９４】
このため、本実施形態に係る情報処理システム１では、例えば、開発アプリケーション２１が製品用のトークン１２Ｄを用いて、開発版の画像形成装置３０の各種機能を利用するような事態を防止できる。同様に、本実施形態に係る情報処理システム１では、例えば、開発アプリケーション２１が開発用のトークン１２Ｄを用いて、製品版の画像形成装置３０の各種機能を利用するような事態を防止できる。
【００９５】
また、本実施形態に係る情報処理システム１では、例えば、製品アプリケーション４１が開発用のトークン１２Ｄを用いて、製品版の画像形成装置３０の各種機能を利用するような事態を防止できる。同様に、本実施形態に係る情報処理システム１では、例えば、製品アプリケーション４１が製品用のトークン１２Ｄを用いて、開発版の画像形成装置３０の各種機能を利用するような事態を防止できる。
【００９６】
このように、本実施形態に係る情報処理システム１によれば、製品用又は開発用のトークン１２Ｄが不正に利用されるような事態を防止できる。
【００９７】
以上、本発明の実施形態について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００９８】
１        情報処理システム
１０      端末装置
１１      ブラウザ
１２      トークン記憶部
１２Ｄ    トークン
２０      サーバ装置
２１      開発アプリケーション
３０      画像形成装置
３１      アプリケーション群
３２      ＷｅｂＡＰＩ
３３      判定処理部
３４      機能実行部
３５      判定テーブル記憶部
３５Ｄ    判定テーブル
３６      機器情報記憶部
３６Ｄ    機器情報
４１      製品アプリケーション
５１      機器特定部
５２      トークン特定部
５３      有効性判定部
【先行技術文献】
【特許文献】
【００９９】
【特許文献１】特開２０１３−１３４６５５号公報
【図１】
0006707924.tif 000002
【図２】
0006707924.tif 000003
【図３】
0006707924.tif 000004
【図４】
0006707924.tif 000005
【図５】
0006707924.tif 000006
【図６】
0006707924.tif 000007
【図７】
0006707924.tif 000008
【図８】
0006707924.tif 000009
【図９】
0006707924.tif 000010