(57)【要約】【課題】トークンを要するリクエストがトークンの有効期間を越えて以降に実施された場合に、クライアントは本来実施したい処理に加え新しいトークンを生成する処理が必要であった。このため、ユーザはその新しいトークン生成処理が加わった処理時間待たされる可能性があった。【解決手段】トークンを必要とするリクエストと非同期で、トークンの取得とキャッシュをトークンの有効期間をもとに行うことで、クライアントは本来実施したい処理の時間で処理できるようにする。【選択図】図６
2016192004.tif 000002
【特許請求の範囲】
【請求項１】
サーバへのアクセスにおいてトークンを必要とするリクエストを行うクライアント情報処理装置において、
前記トークンをキャッシュする手段と、
前記トークンを必要とするリクエストと非同期で前記トークンの取得を行う手段と、
前記トークンをキャッシュする手段でキャッシュしたトークンの有効期間を判断する手段と、
前記トークン取得の前回の時間からの経過時間を判断する手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記トークン取得の前回の時間からの経過時間を判断する手段と、
を有することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記トークン取得ができなかった場合で、かつ、前記トークンの有効期間がある場合にはキャッシュを更新しない手段と、
を有することを特徴とする請求項１又は請求項２に記載の情報処理装置。
【請求項４】
前記トークン取得ができなかった場合で、かつ、前記トークンの有効期間がない場合にはキャッシュをクリアする手段と、
を有することを特徴とする請求項１乃至請求項３の何れか一項に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバ間、または、サーバとクライアント間で連携して処理を行う仕組みにおいて、サーバにアクセスするためにトークンが利用される場合に、そのトークンのキャッシュと再取得をする方法に関する。
【背景技術】
【０００２】
セッションオープン時刻とセッション期間の長さとを含むトークンを生成し、トークンを要するリクエストがされるとセッション期間の長さを延長する手段を持つものがある（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特表２０１０−５１５１４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
トークンを要するリクエストがトークンの有効期間内に実行されず、トークンを要するリクエストがトークンの有効期間を越えて以降に実施された場合に、新しいトークンを生成する処理をリクエスト側が実施しなければならなかった。
【０００５】
このため、トークンの有効期間を越えた場合の処理になった場合は、クライアントは本来実施したい処理に加え新しいトークンを生成する処理が必要となり、ユーザはその新しいトークン生成処理が加わった処理時間待たされる可能性があった。
【０００６】
また、トークンを要するリクエストがされる毎にトークンの有効期間を延長する場合は、トークンがネットワーク経路上で盗まれるなどした場合にトークンの有効期間が伸びているので悪意のあるリクエストを受けるリスクが高くなる可能性があった。
【課題を解決するための手段】
【０００７】
本願の情報処理装置は、サーバへのアクセスにおいてトークンを必要とするリクエストを行うクライアント情報処理装置において、前記トークンをキャッシュする手段と、前記トークンを必要とするリクエストと非同期で前記トークンの取得を行う手段と、前記トークンをキャッシュする手段でキャッシュしたトークンの有効期間を判断する手段と、前記トークン取得の前回の時間からの経過時間を判断する手段と、を有することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、トークンを取得した時刻から一定時間以上経過していて、トークンの残り有効時間が一定時間未満の場合は、トークンを要するリクエストと非同期でトークンの再取得を行う。このようにすることで、トークンを要するリクエストと非同期でトークンは更新されるので、トークンの有効期間と関係なく本来実施したい処理時間で処理を行うことができる。また、トークンを再取得するのでトークンがネットワーク経路上で盗まれるなどしてもリスクを低減できる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施の形態である情報処理装置を利用したシステムの構成例を説明するための図である。
【図２】本発明の実施の形態である情報処理装置の構成例を説明するためのブロック図の一例である。
【図３】従来例と本発明の実施の形態のトークンの時間経過に合わせた状態を示した一例である。
【図４】従来例と本発明の実施の形態のトークンを要するリクエストのフロー図の一例である。
【図５】従来例のトークン取得のフロー図の一例である。
【図６】本発明の実施の形態のトークンを要するリクエストと非同期でトークンをキャッシュするフロー図の一例である。
【図７】本発明の実施の形態のトークン取得のフロー図の一例である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態を図面を参照して説明する。
【００１１】
＜第１の実施形態＞
図１は本発明の第１の実施形態に係る情報処理装置を利用したシステムの構成例を説明するための図である。
【００１２】
図１に示すように、本実施形態の情報処理装置であるユーザ機器１０１はサーバ１０５とネットワーク１０４を介して接続されている。ユーザ機器１０１は、ネットワーク１０４において情報転送が可能な標準プロトコルでサーバ１０５と通信を行うことが可能である。サーバ１０５は、クライアントからのトークン取得リクエストに従ってトークン情報管理１０６でクライアントの認証などを実行し、情報ＤＢ１０７のデータを利用するためのトークンを発行する。サーバ１０５は、クライアントからトークンを要するリクエストがされると、トークンから利用できるデータを情報ＤＢ１０７より参照してリクエストを処理することができる。サーバ１０５にリクエストできるクライアントは複数同時に存在しても良く、また、別のサービスのサーバであっても良いことは言うまでもない。ユーザ機器１０１はサーバ１０５にリクエストできるクライアントの一例である。
【００１３】
図２は本実施形態の情報処理装置の構成例を説明するためのブロック図の一例を示している。
【００１４】
図２に示すように、情報処理装置はＣＲＴディスプレイ２０１、ＶＲＡＭ２０２、ＢＭＵ２０３、キーボード２０４、ＰＤ２０５、ＣＰＵ２０６、ＲＯＭ２０７、ＲＡＭ２０８、ＨＤＤ２０９、フレキシブルディスク２１０、ネットワークＩ／Ｆ２１１、バス２１２を有する。
【００１５】
ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）ディスプレイ２０１には、例えば情報処理装置の管理を行う、アイコン、メッセージ、メニューその他のユーザインタフェース情報が表示される。ＶＲＡＭ２０２には、ＣＲＴディスプレイ２０１に表示するための画像が描画される。このＶＲＡＭ２０２に生成された画像データは、所定の規定に従ってＣＲＴディスプレイ２０１に転送され、これによりＣＲＴディスプレイ２０１に画像が表示される。
【００１６】
ＢＭＵ（ビットムーブユニット）２０３は、例えば、メモリ間（例えば、ＶＲＡＭ２０２と他のメモリとの間）のデータ転送や、メモリと各Ｉ／Ｏデバイス（例えば、ネットワークＩ／Ｆ２１１）との間のデータ転送を制御する。キーボード２０４は、文字等を入力するための各種キーを有する。ＰＤ（ポインティングデバイス）２０５は、例えば、ＣＲＴディスプレイ２０１に表示されたアイコン、メニューその他のコンテンツを指示またはオブジェクトのドラッグドロップのために使用される。
【００１７】
ＣＰＵ２０６は、ＲＯＭ２０７、ＨＤＤ２０９又はフレキシブルディスク２１０に格納されたＯＳや後述する連携を行うプログラム等の制御プログラムに基づいて、各デバイスを制御する。
【００１８】
ＲＯＭ２０７は、各種制御プログラムやデータを保存する。ＲＡＭ２０８は、ＣＰＵ２０６のワーク領域、エラー処理時のデータの退避領域、制御プログラムのロード領域等を有する。ＨＤＤ２０９は、情報処理装置内で実行される各制御プログラムや一時保管したデータ等のデータを格納する。ネットワークＩ／Ｆ２１１は、他の情報処理装置やプリンタ等とネットワークを介して通信を行う。バス２１２は、アドレスバス、データバス及びコントロールバスを含む。
【００１９】
ＣＰＵ２０６に対する制御プログラムの提供は、ＲＯＭ２０７、ＨＤＤ２０９、フレキシブルディスク２１０から行うこともできるし、ネットワークＩ／Ｆ２１１を介してネットワーク経由で他の情報処理装置等から行うこともできる。
【００２０】
なお、ユーザ機器１０１に示すような携帯デバイスの場合には、キーボード２０４、ＰＤ２０５などがタッチパネルなどで代用されるなど構成が変わっても良いことは言うまでもない。
【００２１】
図３は従来例と本発明の実施の形態のトークンの時間経過に合わせた状態の一例を示している。図３（ａ）はユーザ機器１０１における従来例のトークンの状態の一例を示している。
【００２２】
３０１、３０２、３０３は、サーバ１０５から取得したトークンの有効期間を示している。この様に、トークンが有効な時間は連続ではなく切れる。例えばトークン３０１の有効期間を越えていてトークンを要するリクエストを実施する場合は、本来実施したい処理に加え新しいトークン３０２生成する処理が必要となり、ユーザはその新しいトークン生成処理が加わった処理時間待たされる可能性があった。
【００２３】
図３（ｂ）はユーザ機器１０１における本発明の実施の形態のトークンの状態の一例を示している。３０４、３０５、３０６は、サーバ１０５から取得したトークンの有効期間を示している。この様に、トークン３０４の有効期間内にトークン３０５を取得し、トークン３０５の有効期間内にトークン３０６を取得することで、個々のトークンの有効期間に関係なく見掛け上期限のない有効な状態でトークンを使うことができる。なお、トークン３０４、トークン３０５の破線は、トークンの有効期間内であるが利用しない状態であることを示している。
【００２４】
図３（ｃ）はユーザ機器１０１における本発明の実施の形態の異常時のトークンの状態の一例を示している。３０７、３１１は、サーバ１０５から取得したトークンの有効期間を示している。３０８、３０９、３１０は、サーバ１０５から次のトークンの取得を実行したことを示している。３０８、３０９は、サーバ１０５から次のトークンの取得に失敗したことを示している。このとき、トークン３０７はトークンの有効期間内のためトークンは有効であり、そのままトークンとして利用することができる。
【００２５】
このようにすることで、次のトークンの取得に失敗しても、前のトークンが有効なため有効なトークンが切れることがない。
【００２６】
なお、例えば、ＴＣＰコネクション維持を行うために間欠的にリクエストを行って維持する仕組みがあるが、このような仕組みでないため、一度リクエストに失敗するとコネクション維持をすることはできない。
【００２７】
図４は従来例と本発明の実施の形態のトークンを要するリクエストのフロー図の一例である。
【００２８】
ステップＳ４０１にてユーザ機器１０１は、キャッシュしているトークンを取得する。トークンが取得できた場合はステップＳ４０２に処理を進る。トークンが取得できなかった場合はステップＳ４０４に処理を進める。
【００２９】
ステップＳ４０２にてユーザ機器１０１は、ステップＳ４０１で取得したトークンを使ってトークンを要するリクエストをサーバ１０５へ送信する。
【００３０】
ステップＳ４０３にてユーザ機器１０１は、ステップＳ４０２のリクエスト結果がトークン有効期限切れエラーかどうかを確認する。トークン有効期限切れエラーの場合はステップＳ４０４に処理を進める。トークン有効期限切れエラーでない場合はリクエストの後処理を行い処理を終了する。
【００３１】
ステップＳ４０４にてユーザ機器１０１は、後術するフローにてトークンの更新処理を行い、ステップ４０１へ処理を戻す。
【００３２】
このようにすることで、本発明であってもトークンを要するリクエストでトークンが取得されていない場合、または、トークン有効期限切れの場合にトークンをその処理内で取得することができる。
【００３３】
このように従来例と本発明の実施の形態では、トークンを要するリクエストの処理は同じでありトークンを要するリクエスト毎に本発明の実施による対応を要しない。
【００３４】
図５は従来例のトークン取得のフロー図の一例である。ステップＳ４０４にてユーザ機器１０１は、トークンの更新処理として本フローの処理を行う。
【００３５】
ステップＳ５０１にてユーザ機器１０１は、トークンのキャッシュ取得処理中フラグの設定を排他制御で行う。キャッシュ取得中の場合は別スレッドでキャッシュの取得を行っているので処理を終了する。キャッシュ取得中でない場合はキャッシュ取得処理中にフラグを設定して、ステップＳ５０２に処理を進める。
【００３６】
ステップＳ５０２にてユーザ機器１０１は、トークン取得リクエストをサーバ１０５へ送信する。トークン取得リクエストが、成功の場合はステップＳ５０３に処理を進める。トークン取得リクエストが、エラーの場合はステップＳ５０４に処理を進める。
【００３７】
ステップＳ５０３にてユーザ機器１０１は、ステップＳ５０２で取得したトークンをキャッシュする。
【００３８】
ステップＳ５０４にてユーザ機器１０１は、トークンのキャッシュ取得処理中フラグの解除を排他制御で行い処理を終了する。
【００３９】
このように従来は、トークン有効期限切れの場合にトークンをその処理内で取得するようになっている。
【００４０】
図６は本発明の実施の形態のトークンを要するリクエストと非同期でトークンをキャッシュするフロー図の一例である。ユーザ機器１０１は、トークンを要するリクエストと非同期でバッチなどにより定期的に本フローの処理を行う。
【００４１】
ステップＳ６０１にてユーザ機器１０１は、キャッシュしているトークンを取得する。トークンが取得できた場合はステップＳ６０２に処理を進る。トークンが取得できなかった場合はステップＳ６０４に処理を進める。
【００４２】
ステップＳ６０２にてユーザ機器１０１は、キャッシュしているトークンのキャッシュ時間を取得して、トークンの残り有効期間を求める。トークンの残り有効期間が規定値以上の場合は処理を終了する。トークンの残り有効期間が規定値未満の場合はステップＳ６０３に処理を進める。トークンの残り有効期間と比較する規定値は、トークンの有効期間の半分の期間あるいは１／３の期間など対応するトークンの有効期間に合わせて調整しても良いことは言うまでもない。
【００４３】
このようにすることで、トークンの残り有効期間が十分にある場合はトークンの再取得リクエストを行わないようにすることができる。
【００４４】
ステップＳ６０３にてユーザ機器１０１は、前回トークンの取得リクエストを行った時間から現在までの経過時間を求める。経過時間が規定値を経過していないの場合は処理を終了する。
経過時間が規定値を経過している場合はステップＳ６０４に処理を進める。
【００４５】
このようにすることで、トークンの残り有効期間がまだある場合はトークン取得リクエストを規定時間の経過毎にすることができる。例えば、図３（ｃ）３０８、３０９、３１０のようにリクエスト間隔をあけることができる。
【００４６】
上記により、前回のトークン取得リクエストがエラーだった場合に連続してリクエストを行ってもエラーとなる可能性が高いが、次のリクエスト間隔をあけることでエラーとなる確立を減らすことができる。
【００４７】
ステップＳ６０４にてユーザ機器１０１は、後術するフローにてトークンの更新処理を行い処理を終了する。
【００４８】
このように、キャッシュしているトークンの有無、トークンの残り有効期間、前回トークン取得リクエストからの経過時間でトークン取得リクエストを制御することで、非同期で実施するバッチ処理は一定の短い間隔で実行することができる。
【００４９】
図７は本発明の実施の形態のトークン取得のフロー図の一例である。ステップＳ４０４、または、ステップＳ６０４にてユーザ機器１０１は、トークンの更新処理として本フローの処理を行う。
【００５０】
ステップＳ７０１にてユーザ機器１０１は、トークンのキャッシュ取得処理中フラグの設定を排他制御で行う。キャッシュ取得中の場合は別スレッドでキャッシュの取得を行っているので処理を終了する。キャッシュ取得中でない場合はキャッシュ取得処理中にフラグを設定して、ステップＳ７０２に処理を進める。
【００５１】
ステップＳ７０２にてユーザ機器１０１は、トークンの取得リクエスト時間を記録する。
【００５２】
ステップＳ７０３にてユーザ機器１０１は、トークン取得リクエストをサーバ１０５へ送信する。トークン取得リクエストが、成功の場合はステップＳ７０４に処理を進める。トークン取得リクエストが、エラーの場合はステップＳ７０７に処理を進める。
【００５３】
ステップＳ７０４にてユーザ機器１０１は、ステップＳ７０３で取得したトークンをキャッシュする。
【００５４】
ステップＳ７０５にてユーザ機器１０１は、トークンのキャッシュ時間を記録する。
【００５５】
ステップＳ７０６にてユーザ機器１０１は、トークンのキャッシュ取得処理中フラグの解除を排他制御で行い処理を終了する。
【００５６】
ステップＳ７０７にてユーザ機器１０１は、キャッシュしているトークンを取得する。トークンが取得できた場合はステップＳ７０８に処理を進める。トークンが取得できなかった場合はステップＳ７０６に処理を進める。
【００５７】
ステップＳ７０８にてユーザ機器１０１は、キャッシュしているトークンのキャッシュ時間を取得してトークンの有効期間を確認する。トークンの有効期間内の場合はステップＳ７０６に処理を進め、トークンの有効期限切れの場合はステップＳ７０９に処理を進める。
【００５８】
ステップＳ７０９にてユーザ機器１０１は、キャッシュしているトークンをクリアする。
【００５９】
このようにすることで、正常にトークンを取得できればキャッシュをし、トークンが取得できない場合でも前回のトークンが有効期間内であればキャッシュを維持することができる。また、キャッシュしているトークンが有効期限切れの場合にはキャッシュをクリアすることでステップＳ４０４、または、ステップＳ６０４からのどちらかの処理であっても即時トークンの取得が実行される。
【００６０】
以上、本発明をその好適な実施形態に基づいて詳述してきたが、本発明はこれら特定の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。上述の実施形態の一部を適宜組み合わせてもよい。
【００６１】
また、上述の実施形態の機能を実現するソフトウェアのプログラムを、記録媒体から直接、或いは有線／無線通信を用いてプログラムを実行可能なコンピュータを有するシステム又は装置に供給し、そのプログラムを実行する場合も本発明に含む。
【００６２】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータに供給、インストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明の機能処理を実現するためのコンピュータプログラム自体も本発明に含まれる。
【００６３】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【００６４】
プログラムを供給するための記録媒体としては、例えば、ハードディスク、磁気テープ等の磁気記録媒体、光／光磁気記憶媒体、不揮発性の半導体メモリでもよい。
【００６５】
また、プログラムの供給方法としては、コンピュータネットワーク上のサーバに本発明を形成するコンピュータプログラムを記憶し、接続のあったクライアントコンピュータはがコンピュータプログラムをダウンロードしてプログラムするような方法も考えられる。
【符号の説明】
【００６６】
１０１  ユーザ機器、１０４  ネットワーク、１０５  サーバ、
１０６  トークン情報管理、１０７  情報ＤＢ
【図１】
2016192004.tif 000003
【図２】
2016192004.tif 000004
【図３】
2016192004.tif 000005
【図４】
2016192004.tif 000006
【図５】
2016192004.tif 000007
【図６】
2016192004.tif 000008
【図７】
2016192004.tif 000009