JP2015225479A - 情報処理システム、情報処理装置、情報処理方法、及びコンピュータプログラム - Google Patents
情報処理システム、情報処理装置、情報処理方法、及びコンピュータプログラム Download PDFInfo
- Publication number
- JP2015225479A JP2015225479A JP2014109628A JP2014109628A JP2015225479A JP 2015225479 A JP2015225479 A JP 2015225479A JP 2014109628 A JP2014109628 A JP 2014109628A JP 2014109628 A JP2014109628 A JP 2014109628A JP 2015225479 A JP2015225479 A JP 2015225479A
- Authority
- JP
- Japan
- Prior art keywords
- access token
- authentication
- app
- service device
- image conversion
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Facsimiles In General (AREA)
- Accessory Devices And Overall Control Thereof (AREA)
Abstract
【課題】上位サービスから中間サービスに対して認証要求が再送信された場合でも正しくアクセストークンの判定が行う方法を情報処理システムを提供する。
【解決手段】中間サービスは、記憶手段と、認証要求を受け付けた第1の時刻を取得する手段と、認証サービスから第1のアクセストークンを取得する機能と、第1のアクセストークンを第1の時刻と関連づけて前記記憶手段に保存する機能を備える。保存の際に、同じ認証要求に対する第2のアクセストークンが既に前記記憶手段に保存済みの場合は、第1の時刻と、第2のアクセストークンに関連づけて保存されている時刻を比較し、第1の時刻の方が新しい場合にのみ前記記憶手段のアクセストークンと時刻情報を更新する。
【選択図】図1
【解決手段】中間サービスは、記憶手段と、認証要求を受け付けた第1の時刻を取得する手段と、認証サービスから第1のアクセストークンを取得する機能と、第1のアクセストークンを第1の時刻と関連づけて前記記憶手段に保存する機能を備える。保存の際に、同じ認証要求に対する第2のアクセストークンが既に前記記憶手段に保存済みの場合は、第1の時刻と、第2のアクセストークンに関連づけて保存されている時刻を比較し、第1の時刻の方が新しい場合にのみ前記記憶手段のアクセストークンと時刻情報を更新する。
【選択図】図1
Description
本発明は、情報処理システム、情報処理装置、認証方法、及びコンピュータプログラムに関する。
近年、USB、Ethernet(登録商標)、無線LAN等の様々なインタフェースを利用して、情報処理装置に周辺装置を接続した周辺装置制御システムが、自宅、オフィス等、様々な場面で有効に活用されている。周辺装置の例としては、プリンタ、複写機、ファクシミリ、スキャナ、デジタルカメラ、これらの複合機等が挙げられる。
周辺装置のうちのプリンタや複合機に対応する周辺装置制御システムの例として、Google社からGoogle Cloud Print(登録商標であり、以下、GCPと略す。)と呼ばれるクラウド印刷サービスが提供されている。クラウド印刷サービスの利用によって、ユーザは、パーソナルコンピュータ(以下、PCと略す。)やモバイルデバイスから文書作成用のアプリケーション等を起動(利用)し、インターネットを介して文書をプリンタや複合機で印刷することが可能である。GCPを利用した印刷の手順は、次のようなものである。
(1)ユーザが、PCに設けられた文書作成用のアプリケーションを利用してある文書を開く操作を行う。
(2)ユーザが、その文書をあるプリンタで印刷するために、印刷ダイアログを開いてそのプリンタを選択し、印刷を実行する操作を行う。
(3)文書作成用のアプリケーションが印刷画像をPDFファイルとして生成する。
(4)GCPが印刷ダイアログで選択された印刷設定値と、前記PDFファイルから印刷ジョブを生成し、GCP内でそのプリンタに割り当られたプリントキューに印刷ジョブを格納し、プリンタに印刷ジョブ通知を送信する。
(5)プリンタは、前記印刷ジョブ通知を受信すると、前記印刷ジョブを取得して、前記印刷設定値に従って、前記PDFファイルの印刷画像を印刷する。
例えば、PDFファイルをレンダリングすることができるプリンタや複合機である場合、プリンタや複合機は、前記手順に従ってGCPを利用して印刷することができる。しかしながら、PDFファイルをレンダリングすることができない廉価版のプリンタや複合機である場合、廉価版のプリンタや複合機は、(5)においてPDFファイルの印刷画像を印刷することができない。
このような廉価版のプリンタや複合機でGCPを利用して印刷するために、Webサービス(画像変換サービス)用のアプリケーションが存在する。画像変換サービスアプリケーションは、PDFファイルを、例えばJPEGファイル等の廉価版のプリンタや複合機で印刷できる画像フォーマットに変換する。また、画像変換サービスアプリケーションを利用して、PDFファイルをJPEGファイルに変換し、廉価版のプリンタや複合機で印刷するような情報処理システムが提案されている。
上述したような情報処理システムにおいて、各Webサービスアプリケーションが提供するWebサービスAPIを各Webサービスアプリケーション間で利用する際に、頻繁な通信が発生すると、ネットワーク上のトラフィックが増える。その為、各サービス間の通信で費やす時間がシステム全体の処理時間に大きな影響を及ぼすという問題がある。
上述した問題を解決するための先行技術として特許文献1がある。特許文献1に記載のシステムでは、ジョブの実行時に上位のWebサービスアプリケーションからの認証要求と処理実行要求とを受け付ける中間サービスにおいて、認証要求を受け付けると認証要求を認証サービスに送信し、認証サービスから受信したアクセストークンをジョブと関連づけて保存する。次に、同ジョブに対する処理実行要求を受け付けた時に保存しておいたアクセストークンと比較し、一致する場合のみ処理実行要求を実行する。これにより中間サービスが認証サービスにアクセスする通信頻度および通信量を抑えることが出来る。
しかしながら、特許文献1に記載の情報処理システムでは以下のような問題がある。一般的なWebサービスアプリケーションでは、WebサービスAPIをコールしてから一定時間応答がない場合、タイムアウトして同じWebサービスAPIを再度コールするリトライ処理を行う。前述した中間サービスが上位のWebサービスアプリケーションより認証要求を受け付ける処理においても、中間サービスが認証サービスからアクセストークンを受信する処理に時間がかかってしまう場合に、上位のWebサービスアプリケーションは中間サービスに対し認証要求のリトライ処理を行うことが想定される。この時中間サービスは同一ジョブに対して認証サービスから2つのアクセストークンを取得することになる。
上位サービスはリトライ処理の認証要求の応答で受け取るアクセストークンを使用して処理実行要求を送信するため、中間サービスはリトライ処理にて取得したアクセストークンを対象ジョブと関連づけて保存する必要がある。しかしながら、初回に上位サービスより受け付けた認証要求に対して中間サービスが認証サービスからアクセストークンの取得を完了するのがリトライ処理にて中間サービスが認証サービスからアクセストークンの取得を完了するよりも後になる場合、中間サービスが対象ジョブと関連づけて保存するアクセストークンが、上位サービスが処理実行要求のリクエストで使用するアクセストークンと異なってしまい、処理実行要求にて正しく認証がなされないという問題がある。
そこで、本発明に係る情報処理システムは、前述の中間サービスが、認証サービスからアクセストークンの取得を開始する前の時刻情報を取得し、取得したアクセストークンをジョブに関連づけて保存する際に、前記時刻情報も関連づけて保存する。さらに、アクセストークンの保存の際に既に同一ジョブに関連づけられたアクセストークンが保存されている場合には、取得した前記時刻情報とアクセストークンに関連づけて保存された時刻情報を比較し、取得した時刻情報の方が新しい場合にのみ保存されたアクセストークンと時刻情報を更新することを特徴とする。
また、本発明は、システム、記憶媒体などとしてもよい。
本発明によれば、次に示すような効果を得ることができる。すなわち、特許文献1の構成の情報処理システムにおいて、上位サービスが中間サービスへの認証要求をリトライし、複数のアクセストークンを認証サービスから取得した場合においても、正しく上位サービスが処理実行要求リクエストで使用するアクセストークンを中間サービスで保存することが出来る。
複数のプリンタを管理し、GCPを利用してユーザが所望する印刷サービスを提供する情報処理システムが考えられる。この情報処理システムは、GCPが提供するサービスに関する中継処理を行うプロキシアプリケーションを備えることが必要である。また、この情報処理システムにおいては、プロキシサービスアプリケーションと画像変換サービスアプリケーションとが連携して印刷ジョブを処理する。GCPから発行された印刷ジョブに含まれるPDFファイルを画像変換サービスアプリケーションがJPEGファイルに変換する。これにより、廉価版のプリンタや複合機で印刷することができる。
このような情報処理システムにおいて、例えば、プロキシサービスアプリケーションが画像変換サービスアプリケーションを利用する際に、認証サービスアプリケーションを利用した認証システムを用いてセキュリティを確保することが考えられる。例えば、プロキシサービスアプリケーションは、自分が管理する各プリンタに対して、ユーザIDとそのユーザIDを認証するためのパスワードを割り当てる。そして、認証サービスアプリケーションが前記ユーザIDとパスワードをもとにユーザ認証を行い、そのユーザID(プリンタ)に対して画像変換サービスアプリケーションを利用するためのアクセストークンを発行する。
プロキシサービスアプリケーションは、そのアクセストークンを使って画像変換サービスアプリケーションにアクセスする。また、画像変換サービスアプリケーションは、前記ユーザIDが割り当てられているプリンタの印刷ジョブに含まれるPDFファイルをJPEGファイルに変換し、前記プリンタはそのJPEGファイルを印刷することができる。
一般的に、画像変換サービスアプリケーションは、プロキシサービスアプリケーションに対して複数のWebサービスAPIをエクスポートしている。そして、プロキシサービスアプリケーションは、画像変換サービスアプリケーションがエクスポートしているそれぞれのWebサービスAPIをシーケンシャルにコールする。画像変換サービスアプリケーションは、プロキシサービスアプリケーションが順にコールする各WebサービスAPIにおける処理を実行する。画像変換サービスアプリケーションは、その処理において印刷ジョブに含まれるPDFファイルをJPEGファイルに変換し、プリンタでの印刷が完了した後、不要となったJPEGファイル(印刷画像)を削除する。
プロキシサービスアプリケーションは、画像変換サービスアプリケーションがエクスポートしている各WebサービスAPIをシーケンシャルにコールする際に、その都度、前記アクセストークンの妥当性や有効期限を問合せる。すなわち、プロキシサービスアプリケーションは、認証サービスアプリケーションがエクスポートしているWebサービスAPIの内の、アクセストークン妥当性確認APIやアクセストークン有効期限確認APIをコールする。
上述の各サービス間のインタフェース、及び各サービスと廉価版のプリンタや複合機間のインタフェースは、WebサービスAPIで規定され、通常はSSL通信で暗号化されたHTTPSのPOSTメソッドやGETメソッドが利用されている。このように暗号化された通信により、セキュリティが確保されている。
この場合、各WebサービスAPIを利用する時に、情報の送信時の暗号化や情報の受信時の復号化に非常に時間を要する。また、通信処理の負荷が大きくなるので、クラウドを利用したときにシステムの構築やアプリケーションの実装に支障をきたすという問題がある。
各Webサービスアプリケーション、廉価版のプリンタや複合機は、各処理の度にその都度認証サービスアプリケーションにアクセスし、アクセストークンの妥当性や有効期限を問合せる。しかしながら、アクセストークン妥当性確認APIやアクセストークン有効期限確認APIをコールして、アクセストークンの妥当性や有効期限を問合せると、認証サービスアプリケーションの負荷が増大する。その結果、パフォーマンスの低下や認証サービスアプリケーションの許容量がオーバーする。これらを回避する為に、認証サービスアプリケーションのシステムの規模を増大する必要がある。その場合、認証サービスアプリケーションのシステム構成が複雑になり、運用コストが増大する等、様々な課題がある。
さらに、各Webサービスアプリケーションが、アクセストークンの妥当性や有効期限を認証サービスアプリケーションに問合せて検証する情報処理システムが考えられる。しかしながら、この情報処理システムでは、上位のWebサービスアプリケーションが誤動作しているよう状況下では、アクセストークンが妥当であると判定される可能性がある。アクセストークンが妥当であると判定されると、該当しない処理やジョブ(例えば、他人の印刷ジョブ)等が誤って処理されてしまう、という問題がある。また、このようなケースでは、対象となるWebサービスアプリケーションに対して、例えば、上位のサービスになりすましたなりすましプログラムからのアクセスのような、攻撃を受ける可能性もある。そのため、そのWebサービスアプリケーションが誤動作したり、情報が漏えいするという課題もある。
以下説明する本実施形態の情報処理システムによれば、上述した課題を解決することができる。すなわち、本実施形態の情報処理システムによれば、各Webサービスアプリケーション装置間の通信頻度及びデータ通信量を抑えるとともに、特定のWebサービスアプリケーションの負荷を減らすことができる。また、本実施形態の情報処理システムによれば、なりすましアクセスのような攻撃がある場合において、誤動作したり情報が漏洩したりすることを防止することができる。
以下、本実施形態について図面に基づいて説明する。なお、本実施形態は、本発明を限定するものではなく、また、実施形態で説明されている全ての構成が本発明の課題を解決するための手段に必須であるとは限らない。
以下において、WebサービスAPIにSSL通信で暗号化されたHTTPSのPOSTメソッド(通信方式の一例)を利用している場合があるが、このPOSTメソッドに関しては一般に公開されている情報であるので、ここではその詳細な説明を省略する。また、以下において、WebサービスAPIにHTTPのGETメソッド(通信方式の一例)を利用している場合があるが、このGETメソッドに関しては一般に公開されている情報であるので、ここではその詳細な説明を省略する。また、以下において、WebサービスAPIにSSL通信で暗号化されたHTTPSのGETメソッド(通信方式の一例)を利用している場合があるが、このGETメソッドに関しては一般に公開されている情報であるので、ここではその詳細な説明を省略する。
また、HTTPは、Hyper Text Transfer Protocolの略であり、暗号化されていない公知の通信プロトコルであるので、ここではその詳細な説明を省略する。また、HTTPSは、Hyper Text Transfer Protocol over Secure Socket Layerの略であり、暗号化された公知の通信プロトコルであるので、ここではその詳細な説明を省略する。また、SSLは、Secure Socket Layerの略であり、インターネット上でデータを暗号化して送受信する公知の方法であるので、ここではその詳細な説明を省略する。また、Google Cloud Print(GCP)に関する説明は、次に示すサイトで公開されているので、ここではその詳細な説明を省略する。インターネットURL:http://code.google.com/apis/cloudprint/docs/overview.html
図1は、本実施形態の情報処理システムの構成例を示す。図1に示す情報処理システムは、PC1、PC2、PC5、PC147、PC7、MFP3、MFP103、およびルーター(Router)13を備える。PC1、PC2、PC5、PC147、及びPC7の各々は、情報処理装置(コンピュータ)の一例であり、例えば、一般的なパーソナルコンピュータである。PC1、PC2、PC5、PC147、及びPC7の各々は、図2(A)に示すハードウェアを含んで構成される。
図1は、本実施形態の情報処理システムの構成例を示す。図1に示す情報処理システムは、PC1、PC2、PC5、PC147、PC7、MFP3、MFP103、およびルーター(Router)13を備える。PC1、PC2、PC5、PC147、及びPC7の各々は、情報処理装置(コンピュータ)の一例であり、例えば、一般的なパーソナルコンピュータである。PC1、PC2、PC5、PC147、及びPC7の各々は、図2(A)に示すハードウェアを含んで構成される。
PC1には、Operating System(以下、OSと略す。)としてGoogle社製のChrome(登録商標)と同等のOSがインストールされている。また、PC2、PC147、及びPC5の各々には、マイクロソフト社製のWindows(登録商標)のServer用のOSがインストールされ、PC7には、Linux(登録商標)と同等のOSがインストールされている。PC1、PC2、PC5、PC147、及びPC7は、それぞれEthernet(登録商標)等のインタフェース(I/F)で構成されるネットワーク4、8、10、6に接続され、インターネット12にも接続されている。
マルチファンクションプリンタ(以下、MFPと略す。)3、103は、カラーインクジェットプリンタ、カラーファクシミリ、カラースキャナ、フラッシュメモリ用の外部ストレージ等を含んで構成され、周辺装置(コンピュータ)の一例である。MFP3、103は、ABC社製のKmmnというモデル名のMFPである。なお、周辺装置としては、プリンタ、複写機、ファクシミリ、スキャナ、デジタルカメラ、及びこれらの複合機能を備える装置等であってもよい。
MFP3、及びMFP103の各々は、図2(B)に示すハードウェアを含んで構成される。また、MFP3は、Ethernet(登録商標)で構成されるネットワーク11に接続され、インターネット12にも接続されている。MFP103は、Ethernet(登録商標)で構成されるネットワーク104に接続され、インターネット12にも接続されている。
ルーター(Router)13は、Wi−Fi(登録商標)の無線LANを備えるブロードバンドルーター(Wi−Fi BB Router)等であり、インターネット12に接続されている。モバイルデバイス(MobileDevece)14は、携帯電話、携帯情報端末等である。モバイルデバイス14は、ルーター13と接続され、ルーター13を介してインターネット12にも接続されている。PC1、PC2、PC5、PC147、PC7、モバイルデバイス14、MFP3、及びMFP103は、インターネット12を介して互いに双方向通信が可能である(通信可能に接続されている)。Webブラウザ(Web Browser)9は、PC1にインストールされ、Webブラウザ15は、モバイルデバイス14にインストールされている。
アプリケーション(Application)145は、Webサービスを利用した文書作成用のアプリケーションであり、以下では、文書作成APP145と称する。アプリケーション(Application)146は、Webサービスを利用したクラウド印刷サービスを提供するアプリケーションであり、以下では、クラウド印刷APP146と称する。クラウド印刷APP146は、例えば、Google社が提供するGCPと同等の機能を有する。このクラウド印刷サービスを利用することで、PC1内のWebブラウザ9やモバイルデバイス内のWebブラウザ15から、文書作成APP145を実行し、ある文書を開き、その文書をMFP3やMFP103で印刷することができるようになる。
例えば、ユーザが、開いている文書を印刷する場合、図4に示す印刷メニュー401を選択すると、クラウド印刷APP146により図5に示す印刷ダイアログ142が表示される。ユーザが印刷ダイアログ142でプリンタを選択し、印刷ボタン534を押して印刷の実行を指示すると、文書作成APP145は、印刷画像をPDFファイルとして生成する。そして、クラウド印刷APP146は、この印刷画像(PDFファイル)と印刷ダイアログ142で選択されている印刷設定値とから印刷ジョブを生成し、クラウド印刷サービス内の選択されたプリンタ用のプリントキューにその印刷ジョブを格納する。また、クラウド印刷APP146は、そのプリンタ(後述する本実施形態の例ではプロキシAPP143)に対して印刷ジョブ通知を送信する。
プリンタやMFPがPDFファイルをレンダリングする機能を備えている場合、プリンタやMFPは、プリントキューに格納されている印刷ジョブを印刷することができる。しかしながら、多くの廉価版のインクジェットプリンタやMFPにおいては、プリンタやMFPがPDFファイルをレンダリングする機能を備えていない。故に、このようなプリンタ等でプリントキューに格納されている印刷ジョブを印刷する場合、PDFファイルの印刷画像を、JPEGファイル等、廉価版のプリンタ等でレンダリングできるタイプの画像フォーマットに変換すること(前処理の一例)が必要となる。
アプリケーション(Application)143は、MFP3及びMFP103をクラウド印刷APP146が提供するクラウド印刷サービスに対応させるためのクラウド印刷プロキシサービスを提供するアプリケーションである。アプリケーション(Application)143は、MFP3及びMFP103とクラウド印刷APP146との中継処理を行う中継サービス装置であり、以下では、プロキシAPP143と称する。PC2にインストールされているプロキシAPP143は、5000台のプリンタやMFPを一度に管理し、それぞれのプリンタやMFPをクラウド印刷APP146が提供するクラウド印刷サービスに対応させることができる。
アプリケーション(Application)144は、PDFファイルをJPEGファイルに変換する画像変換サービスを提供するアプリケーションである。アプリケーション(Application)144はプロキシAPP143と通信し、クラウド印刷サービスに関する関連処理を行う中間サービス装置として機能し、以下では、画像変換APP144と称する。
アプリケーション(Application)148は、アクセストークンを発行する認証サービスを提供するアプリケーションであり、以下では、認証APP148と称する。認証APP148は、プロキシAPP143が画像変換APP144を利用する際に認証を行うためのアクセストークンを発行する。クラウド印刷サービス146が、例えばGCPであればベンダーが異なるため、認証APP148が提供する認証処理サービスは、クラウド印刷APP146が使用している認証システムや認証サービスとは異なる。クラウド印刷APP146は、後述するように、画像変換APP144がクラウド印刷APP146を利用する際に認証を行うためのアクセストークンを発行する。なお、クラウド印刷APP146が発行するアクセストークンは、クラウド印刷APP146が提供するクラウド印刷サービスが発行してもよい。認証APP148は、次に示すWebサービスAPIをエクスポートしている。
・ログイン関数
・ログアウト関数
・ユーザ登録関数
・ユーザ認証関数
・アクセストークン生成関数
・アクセストークン妥当性確認関数
・アクセストークン有効期限確認関数
これらの関数については、SSL通信で暗号化されたHTTPSのPOSTメソッドが利用されている。これらの処理に係るプログラムは、PC147に組み込まれ、後述する図2(A)に示すHDD202に記憶されており、CPU204によりRAM201に読み出されて実行される。
・ログイン関数
・ログアウト関数
・ユーザ登録関数
・ユーザ認証関数
・アクセストークン生成関数
・アクセストークン妥当性確認関数
・アクセストークン有効期限確認関数
これらの関数については、SSL通信で暗号化されたHTTPSのPOSTメソッドが利用されている。これらの処理に係るプログラムは、PC147に組み込まれ、後述する図2(A)に示すHDD202に記憶されており、CPU204によりRAM201に読み出されて実行される。
ここで、クラウド印刷APP146が提供するクラウド印刷サービスを利用するために、ユーザアカウントとパスワードとを用いたログインが必要となる。そして、クラウド印刷APP146は、印刷に利用可能なプリンタやMFPをクラウド印刷サービスに登録する際に、まず、そのユーザアカウントとパスワードとを使って、クラウド印刷サービスを利用する際のアクセストークンを取得する。そして、クラウド印刷APP146は、取得したアクセストークンを利用し、そのユーザアカウントにプリンタやMFPを関連付けて登録する。
また、クラウド印刷APP146は、プリンタやMFPの登録の際に、各プリンタやMFPに対して一意の値で表わされるプリンタIDを発行して割り当て、プリンタIDを登録の対象のプリンタ等に通知する。なお、プリンタ等の登録に関する処理に関しては、その詳細な説明を省略する。
図2は、PC及びMFPのハードウェアの構成の一例を示す図である。PC1、PC2、PC5、PC147、及びPC7の各々は、図2(A)に示すハードウェアを含んで構成されている。図2(A)では、PC2を例に挙げて説明する。PC2は、ランダムアクセスメモリ部(RAM201)、ハードディスクドライブ部(HDD202)、キーボード部(KBD203)、CPU204、表示用ディスプレイ(LCD205)、ネットワークボード(NB207)を有する。また、PC2は、上述の構成要素を互いに接続するバス206を有する。
なお、HDD202は、記憶部の一例である。記憶部は、可搬性CD−ROMまたは内部に据付のROM等であってもよい。KBD203は、入力部の一例である。CPU204は、制御部の一例である。LCD205は、表示部の一例である。NB207は、通信制御部の一例である。
プロキシAPP143、図3に示す各モジュール(ソフトウェア)等のプログラムは、HDD202に記憶され、CPU204により必要に応じてRAM201に読み出されて実行される。これにより、プロキシAPP143の機能、図3に示す各モジュール(ソフトウェア)の機能などが実現される。また、各種のデータベース(DB)は、HDD202に設けられ、データベースの情報は、CPU204により必要に応じてRAM201に読み出される。
MFP3及びMFP103の各々は、図2(B)に示すハードウェアを含んで構成されている。図2(B)では、MFP3を例に挙げて説明する。CPU25は、マイクロプロセッサ等から構成される。CPU25は、MFP3の中央処理装置として、ROM16に記憶されているプログラムに従って、RAM17、通信部18、記録部19、操作部20、表示部21、読取り部22、ファクシミリ制御部23、及び外部ストレージ制御部24を制御する。
ROM16には、プリンタドライバ(図示は省略)による制御に従ってMFP3が行う記録(印刷)処理、印刷動作の状態をPCへ通知する処理などを実行するプログラムが記憶されている。また、ROM16には、FAXドライバ(図示は省略)による制御に従ってMFP3がファクシミリの送信処理または受信処理、ファクシミリ動作(送信または受信)の状態をPCへ通知する処理を実行するプログラムが記憶されている。更に、ROM16には、WIAドライバ(不図示)やTWAINドライバ(不図示)による制御に従ってMFP3が行う画像の読取り処理、読取り動作の状態をPCへ通知する処理を実行するプログラムが記憶されている。
RAM17には、印字データが一時的に記憶される。印字データは、主にPCから送られ、印字データをもとに記録部19によって印刷される。また、RAM17には、読取り部22で読取られた画像データ、PCから送られてきたファクシミリの送信データ、ファクシミリ制御部23で受信されたファクシミリの受信データ等も一時的に記憶される。
通信部18には、ネットワーク4用の接続ポート、アナログ電話回線用の接続ポート等が含まれており、Ethernet(登録商標)、ファクシミリのアナログ通信を制御する。記録部19は、インクジェット方式の記録ヘッド、各カラーインク、キャリッジ、記録紙搬送機構等から構成される記録ユニットと、印字データをもとに記録ヘッドにて印字用パルスを発生させるためのASIC等から構成される電気回路とを含んで構成される。
例えば、印刷可能なアプリケーション上での印刷操作、又はファクシミリの送信操作によって、アプリケーションで開かれているファイルの表示内容(画像データ)が、EMF形式のスプールファイルとしてPC2のHDD202に一時的に格納される。そして、スプールファイルは、プリンタドライバ、又はFAXドライバを介してMFP3制御用コマンドを含む印字データ、又はファクシミリの送信データに変換された後、インターネットを介してMFP3に送られる。
MFP3にて受信された印字データは、記録部19で印字用パルスに変換され、記録紙上に印刷される。また、MFP3にて受信されたファクシミリの送信データは、ファクシミリ制御部23でファクシミリの通信プロトコルに変換され、アナログ電話回線を介して相手先のファクシミリ装置に送信される。
操作部20は、電源ボタン、リセットボタン等の各種ボタンから構成され、MFP3に対する操作を受け付ける。表示部21は、タッチパネルの液晶ディスプレイで構成され、MFP3の状態の表示、各種の設定情報や電話番号の表示、入力等を行うことができる。読取り部22は、カラーイメージセンサや画像処理用のASIC等から構成される電気回路を含んで構成され、スキャナ機能を制御する。
ファクシミリ制御部23は、ファクシミリ用のモデム、アナログ通信回路等から構成され、ファクシミリの通信プロトコルに従ってファクシミリの送信および受信を制御する。外部ストレージ制御部24は、フラッシュメモリの装着用のスロット、ストレージ用のインタフェース回路等から構成され、装着されたフラッシュメモリを制御する。
図3は、PCのソフトウェアの構成の一例を示す図である。図3では、PC2を例に挙げて説明する。I/F92は、Ethernet(登録商標)等のI/Fを制御するI/F制御スタックである。IP Network91は、IP Networkを制御するIP Network制御スタックである。
Internet Information Services(IIS)90は、IISを制御するIIS制御部であり、アプリケーション150は、このIIS制御部のWebサーバ機能を利用してWebサービスを提供する。JAVA(登録商標) Virtual Machine(Java(登録商標) VM)89は、Java(登録商標)バイトコードをプラットフォームのネイティブコードに変換して実行するソフトウェアであり、プロキシAPP143は、JAVA(登録商標) VM89上で実行される。Applications82は、アプリケーション群であり、プロキシAPP143、アプリケーション150等から構成される。
図4は、PC1の文書作成APP145が提供するWebブラウザ9の一例を示す図である。図4は、ある文書を開いている状態を表す。印刷メニュー401は、印刷に関する各種の操作を受け付ける。例えば、ユーザがKBD203等の入力部を操作(ユーザ操作)し、開いている文書を印刷するときに印刷メニュー401を押下すると、図5に示す印刷ダイアログ142が表示される。
図5は、印刷ダイアログ142の一例を示す図である。印刷ダイアログ142は、ユーザに対するMFP3、103用の印刷設定画面として、クラウド印刷APP146により制御される。また、印刷ダイアログ142は、Webブラウザ9、15を利用して、そのWebブラウザ上に表示される。
プリンタ選択肢535、536、537の各々は、選択可能なプリンタの選択肢である。プリンタ選択肢535、536、537は、それぞれ、GHI社製のAkbNmbというモデル名のプリンタ、ABC社製のKmmnというモデル名のMFP(MFP3)、DEF社製のXyzというモデル名のプリンタに該当する選択肢を表す。図5では、MFP3を表すプリンタ選択肢536が選択されている状態が示されている。
用紙サイズ選択部530では、次に示す選択肢の中からMFP3で印刷する用紙のサイズがユーザ操作に応じて選択される。図5では、Letterが選択されている状態が示されている。
用紙サイズの選択肢:A5、A4、B5、Letter
用紙の種類選択部531では、次に示す選択肢の中からMFP3で印刷する用紙の種類がユーザ操作に応じて選択される。図5では、Plain Paperが選択されている状態が示されている。
用紙の種類の選択肢:Plain Paper、Photo Paper、Postcard
印刷品位選択部532では、次に示す選択肢の中からMFP3で印刷する印刷品位がユーザ操作に応じて選択される。図5では、Standardが選択されている状態が示されている。
印刷品位の選択肢:High、Standard、Fast
色/濃度選択部533では、次に示す選択肢の中からMFP3で印刷する色や濃度がユーザ操作に応じて選択される。図5では、Autoが選択されている状態が示されている。
印刷品位の選択肢:Auto、Manual
印刷ボタン534は、印刷の開始の指示を受け付ける。ユーザ操作により印刷ボタン534が押下されると、クラウド印刷APP146は、プリンタ選択肢536に関連付けられているMFP3用の印刷ジョブを生成する。クローズボタン538は、印刷ダイアログ142を閉じる指示を受け付ける。ユーザ操作によりクローズボタン538が押下されると、クラウド印刷APP146は、印刷ダイアログ142を閉じる。
用紙サイズの選択肢:A5、A4、B5、Letter
用紙の種類選択部531では、次に示す選択肢の中からMFP3で印刷する用紙の種類がユーザ操作に応じて選択される。図5では、Plain Paperが選択されている状態が示されている。
用紙の種類の選択肢:Plain Paper、Photo Paper、Postcard
印刷品位選択部532では、次に示す選択肢の中からMFP3で印刷する印刷品位がユーザ操作に応じて選択される。図5では、Standardが選択されている状態が示されている。
印刷品位の選択肢:High、Standard、Fast
色/濃度選択部533では、次に示す選択肢の中からMFP3で印刷する色や濃度がユーザ操作に応じて選択される。図5では、Autoが選択されている状態が示されている。
印刷品位の選択肢:Auto、Manual
印刷ボタン534は、印刷の開始の指示を受け付ける。ユーザ操作により印刷ボタン534が押下されると、クラウド印刷APP146は、プリンタ選択肢536に関連付けられているMFP3用の印刷ジョブを生成する。クローズボタン538は、印刷ダイアログ142を閉じる指示を受け付ける。ユーザ操作によりクローズボタン538が押下されると、クラウド印刷APP146は、印刷ダイアログ142を閉じる。
図6、図7、図8は、本周辺装置制御システム全体の処理に係るフローチャートの一例を示す図である。これらのフローチャートに係るプログラムは、PCまたはMFP内に組み込まれている。PC上で動作するアプリケーションのプログラムは、HDD202に記憶されており、CPU204によりRAM201に読み出されて実行される。MFP上で動作するアプリケーションのプログラムは、ROM16に記憶されており、RAM17に読み出され、CPU25により実行される。
これらのフローチャートにおいて、縦の列が処理の実行元を表す。本実施形態では図面の左側から、ユーザ(Webブラウザ9)、文書作成APP145、クラウド印刷APP146、プロキシAPP143、画像変換APP144、認証APP148、およびMFP3を記す。以下では、ユーザがPC1を使ってドキュメントの印刷をMFP3で行うケース(ドキュメントの印刷に係る一連の処理)を例に挙げて通信制御方法について説明する。
まず、MFP3が印刷ジョブをポーリングする構成についてS617〜S621を用いて説明する。図6において、S617は、便宜的にMFP3側から見たドキュメントの印刷の開始を表すステップである。なお、このステップは、MFP3内の処理の実行には一切影響を与えるものではなく、単にこのフローチャートの開始を表すものである。
S618では、MFP3は、プロキシAPP143がエクスポートしているWebサービスAPIのCheckPrintJob関数をコールする。S618において、MFP3がこの関数をコールするときに、HTTPのGET要求のクエリパラメータとしてプロキシAPP143に渡す情報(確認情報の一例)は、次に示すような情報である。
・クラウド印刷APP146が発行したプリンタID
・ランダムコード
また、CheckPrintJob関数をコールするタイミングは任意であり、定常的にコールするポーリングの形態とするが、この形態に限られるものではない。例えば、ユーザから指定されたときにコールする形態であってもよい。更に、クエリパラメータに含まれる確認情報もプリンタID、ランダムコードに限られるものではない。
・クラウド印刷APP146が発行したプリンタID
・ランダムコード
また、CheckPrintJob関数をコールするタイミングは任意であり、定常的にコールするポーリングの形態とするが、この形態に限られるものではない。例えば、ユーザから指定されたときにコールする形態であってもよい。更に、クエリパラメータに含まれる確認情報もプリンタID、ランダムコードに限られるものではない。
ランダムコードは、MFP3が生成した任意の32ビットの値である。プロキシAPP143は、CheckPrintJob関数がコールされると、図9(A)で後述するCheckPrintJob関数の処理を実行し、そのレスポンス(応答情報の一例)をMFP3に返す(S619)。
続いて、MFP3は、プロキシAPP143からのCheckPrintJob関数のレスポンスを受信すると、レスポンス内の応答メッセージに含まれている情報(「印刷ジョブ有り応答」又は「印刷ジョブ無し応答」)を確認する(S620)。S620において、MFP3は、「印刷ジョブ有り応答」を受信したと判断した場合、図7のS708に処理を移し、他方、「印刷ジョブ無し応答」を受信したと判断した場合、S621に処理を移す。
S621では、MFP3は、一定の時間(本実施形態では1分間)待った後、S618に処理を移す。このように、MFP3は、プロキシAPP143がエクスポートしているCheckPrintJob関数を一定の時間間隔で(定期的に)ポーリングする。
次に、ドキュメントの印刷処理について説明する。ここで、S601は、便宜的にユーザ側から見た場合のドキュメントの印刷の開始を表すステップである。なお、このステップは、ユーザ操作やアプリケーションの実行には一切影響を与えるものではなく、単にこのフローチャートの開始を表すものである。
まず、ユーザは、Webブラウザ9を起動して文書作成APP145のURLにアクセスしてログインする。そして、ユーザは、ある文書を指定してその文書を開く指示を行うと、Webブラウザ9は、その文書を入力パラメータとして、文書作成APP145がエクスポートしているWebサービスAPIのOpenDocument関数をコールする(S602)。
文書作成APP145は、OpenDocument関数がコールされると、入力パラメータで指定された文書を開いてその情報をWebブラウザ9に送信する(S603)。例えば、図4に示すように、Webブラウザ9上で文書作成APP145を介して当該文書が開かれた状態となる。
ユーザ操作により、当該文書を印刷するために印刷メニュー401が押下されると、Webブラウザ9を介してその情報が文書作成APP145に通知される(S604)。文書作成APP145は、この通知を受け取ると、クラウド印刷APP146がエクスポートしているWebサービスAPIのPrintDialog関数をコールする(S605)。
クラウド印刷APP146は、PrintDialog関数がコールされると、印刷ダイアログ142を開いて、その情報をWebブラウザ9に送信する(S606)。例えば、図5に示すように、Webブラウザ9上に印刷ダイアログ142が表示される。
ユーザは、入力部を操作して、複数のプリンタ選択肢の中から印刷するプリンタ(図5の例ではMFP3に関連付けられているプリンタ選択肢536)を選択し、各印刷設定値の中から希望する設定値を選択し、印刷ボタン534を押下する。印刷ボタン534が押下されると、Webブラウザ9を介してそのユーザからの印刷開始要求を示す情報と印刷設定値に関する情報とが文書作成APP145に通知される(S607)。
印刷設定値に関する情報は、例えば、ユーザが選択した印刷設定値が記されている印刷設定ファイル(XMLファイル)が格納されているURLである。文書作成APP145は、この通知を受け取ると、印刷画像をPDFファイルとして生成する。そして、文書作成APP145は、生成したPDFファイル、印刷設定値に関する情報等を入力パラメータとして、クラウド印刷APP146がエクスポートしているWebサービスAPIのSubmitPrintJob関数をコールする(S608)。
クラウド印刷APP146は、SubmitPrintJob関数がコールされると、入力パラメータで指定されたPDFファイル、印刷設定値に関する情報等をもとに印刷ジョブを生成する。そして、クラウド印刷APP146は、選択されているプリンタ選択肢に関連付けられているプリンタ(本例では、画像フォーマットの変換が必要なMFP3であるのでプロキシAPP143)に印刷ジョブ通知を送信する(S609)。
また、印刷ジョブには、少なくとも次に示すような情報(以下では、印刷ジョブ情報と称する。)が含まれている。
・クラウド印刷APP146が発行した印刷ジョブID
・クラウド印刷APP146が発行したプリンタID
・クラウド印刷APP146が提供するクラウド印刷サービスを利用するためのアクセストークン
・印刷設定値が記されている印刷設定ファイル(XMLファイル)が格納されているURL
・印刷画像(PDFファイル)の格納先のURL
・タイムスタンプ
プロキシAPP143は、印刷ジョブ通知を受信すると、クラウド印刷APP146がエクスポートしているWebサービスAPIのFetchPrintJob関数をコールする(S610)。クラウド印刷APP146は、FetchPrintJob関数がコールされると、S609で生成した印刷ジョブに含まれている情報(印刷ジョブ情報)をプロキシAPP143に送信する(S611)。
・クラウド印刷APP146が発行した印刷ジョブID
・クラウド印刷APP146が発行したプリンタID
・クラウド印刷APP146が提供するクラウド印刷サービスを利用するためのアクセストークン
・印刷設定値が記されている印刷設定ファイル(XMLファイル)が格納されているURL
・印刷画像(PDFファイル)の格納先のURL
・タイムスタンプ
プロキシAPP143は、印刷ジョブ通知を受信すると、クラウド印刷APP146がエクスポートしているWebサービスAPIのFetchPrintJob関数をコールする(S610)。クラウド印刷APP146は、FetchPrintJob関数がコールされると、S609で生成した印刷ジョブに含まれている情報(印刷ジョブ情報)をプロキシAPP143に送信する(S611)。
プロキシAPP143は、印刷ジョブ情報を受信すると、印刷ジョブ情報の中から必要な情報を取得し、取得した情報とその他の制御で必要な情報とを印刷ジョブ管理データベースに保存する(S622)。そして、プロキシAPP143は、画像変換APP144がエクスポートしているWebサービスAPIのRegisterAndAuth関数をコールする(S622)。
このとき、プロキシAPP143のCPU204は送信手段として機能し、画像変換APP144に認証要求と、処理実行要求とを送信する。具体的には、プロキシAPP143が、この関数をコールするときに、HTTPSのPOST要求の入力パラメータとして画像変換APP144に渡す情報(前処理情報の一例)は、次に示すような情報である。
・認証APP148を利用する管理者ID
・認証APP148を利用する管理者パスワード
・画像変換APP144を利用するユーザID
・画像変換APP144を利用するユーザパスワード
・サービスID
・クラウド印刷APP146が発行したプリンタID
・クラウド印刷APP146が発行した印刷ジョブID
ここで、サービスIDは、各クラウド印刷サービスを特定するIDを表し、例えば、次に示すようなIDを指定可能である。尚、カッコ( )内は各クラウド印刷サービスの概要である。
GCP Consumer (コンシューマ用GCP)
GCP Enterprise (エンタープライズ用GCP)
Email Print Consumer (コンシューマ用Email印刷)
Email Print Enterprise (エンタープライズ用Email印刷)
ABC Cloud Print (ABC社が提供するクラウド印刷)
「認証APP148を利用する管理者ID」は、プロキシAPP143の識別情報であり、プロキシAPP143内に予め登録されている。「認証APP148を利用する管理者パスワード」は、そのプロキシAPP143IDを認証するためのパスワードであり、プロキシAPP143内に予め登録されている。また、「画像変換APP144を利用するユーザID」は、プロキシAPP143が管理する各MFPに対してそれぞれユニークに割り当てた識別情報である。「画像変換APP144を利用するユーザパスワード」はそのユーザIDを認証するためのパスワードである。「画像変換APP144を利用するユーザID」と「画像変換APP144を利用するユーザパスワード」は、プロキシAPP143が自動的に生成する。
・認証APP148を利用する管理者ID
・認証APP148を利用する管理者パスワード
・画像変換APP144を利用するユーザID
・画像変換APP144を利用するユーザパスワード
・サービスID
・クラウド印刷APP146が発行したプリンタID
・クラウド印刷APP146が発行した印刷ジョブID
ここで、サービスIDは、各クラウド印刷サービスを特定するIDを表し、例えば、次に示すようなIDを指定可能である。尚、カッコ( )内は各クラウド印刷サービスの概要である。
GCP Consumer (コンシューマ用GCP)
GCP Enterprise (エンタープライズ用GCP)
Email Print Consumer (コンシューマ用Email印刷)
Email Print Enterprise (エンタープライズ用Email印刷)
ABC Cloud Print (ABC社が提供するクラウド印刷)
「認証APP148を利用する管理者ID」は、プロキシAPP143の識別情報であり、プロキシAPP143内に予め登録されている。「認証APP148を利用する管理者パスワード」は、そのプロキシAPP143IDを認証するためのパスワードであり、プロキシAPP143内に予め登録されている。また、「画像変換APP144を利用するユーザID」は、プロキシAPP143が管理する各MFPに対してそれぞれユニークに割り当てた識別情報である。「画像変換APP144を利用するユーザパスワード」はそのユーザIDを認証するためのパスワードである。「画像変換APP144を利用するユーザID」と「画像変換APP144を利用するユーザパスワード」は、プロキシAPP143が自動的に生成する。
画像変換APP144は、認証要求と処理実行要求を受け付ける受付手段として機能し、RegisterAndAuth関数がコールされると、図14で後述するRegisterAndAuth関数の処理を実行する。そして、画像変換APP144は、そのレスポンスをプロキシAPP143に返す(S623)。このレスポンスには、認証APP148が発行した、画像変換APP144を利用するためのアクセストークンが含まれている。
プロキシAPP143は、画像変換APP144からのRegisterAndAuth関数のレスポンスを受信する。レスポンスを受信したプロキシAPP143は、画像変換APP144がエクスポートしているWebサービスAPIのCreatePrintJobSet関数をコールする(S612)。
S612において、プロキシAPP143が、この関数をコールするときに、HTTPSのPOST要求の入力パラメータとして画像変換APP144に渡す情報(前処理情報の一例)は、次に示すような情報である。
・サービスID
・クラウド印刷APP146が発行したプリンタID
・クラウド印刷APP146が発行した印刷ジョブID
・画像変換APP144を利用するためのアクセストークン
・クラウド印刷サービスを利用するためのアクセストークン
・印刷画像(PDFファイル)の格納先のURL
また、S622において、プロキシAPP143の印刷ジョブ管理データベースには、次に示すような情報が保存される。
[印刷ジョブ管理データベース]
・検索キー:クラウド印刷APP146が発行した印刷ジョブID
・サービスID
・クラウド印刷APP146が発行したプリンタID
・画像変換APP144を利用するためのアクセストークン
・クラウド印刷サービスを利用するためのアクセストークン
・印刷設定ファイル(XMLファイル)の格納先のURL
・印刷画像(PDFファイル)の格納先のURL
・画像変換APP144へのアクセストークン
・印刷ジョブアクセスURL(JPEGファイルの格納先のURL)
・印刷画像(JPEGファイル)の総ページ数
・印刷ジョブ準備完了(PrintJobReady)(0:未完了、1:完了)
このとき、プロキシAPP143は、印刷ジョブ準備完了(PrintJobReady)に、印刷ジョブ準備が未完了であることを表す初期値として「0」をセットする。また、プロキシAPP143は、印刷画像(JPEGファイル)の総ページ数に初期値「0」をセットする。
・サービスID
・クラウド印刷APP146が発行したプリンタID
・クラウド印刷APP146が発行した印刷ジョブID
・画像変換APP144を利用するためのアクセストークン
・クラウド印刷サービスを利用するためのアクセストークン
・印刷画像(PDFファイル)の格納先のURL
また、S622において、プロキシAPP143の印刷ジョブ管理データベースには、次に示すような情報が保存される。
[印刷ジョブ管理データベース]
・検索キー:クラウド印刷APP146が発行した印刷ジョブID
・サービスID
・クラウド印刷APP146が発行したプリンタID
・画像変換APP144を利用するためのアクセストークン
・クラウド印刷サービスを利用するためのアクセストークン
・印刷設定ファイル(XMLファイル)の格納先のURL
・印刷画像(PDFファイル)の格納先のURL
・画像変換APP144へのアクセストークン
・印刷ジョブアクセスURL(JPEGファイルの格納先のURL)
・印刷画像(JPEGファイル)の総ページ数
・印刷ジョブ準備完了(PrintJobReady)(0:未完了、1:完了)
このとき、プロキシAPP143は、印刷ジョブ準備完了(PrintJobReady)に、印刷ジョブ準備が未完了であることを表す初期値として「0」をセットする。また、プロキシAPP143は、印刷画像(JPEGファイル)の総ページ数に初期値「0」をセットする。
画像変換APP144は、CreatePrintJobSet関数がコールされると、図10(A)で後述するCreatePrintJobSet関数の処理を実行し、そのレスポンスをプロキシAPP143に返す(S613)。このレスポンスには、画像変換APP144が発行したセッションIDが含まれている。
プロキシAPP143は、画像変換APP144からのCreatePrintJobSet関数のレスポンスを受信すると、画像変換APP144がエクスポートしているWebサービスAPIのConfirmProgress関数をコールする(S614)。S614において、プロキシAPP143が、この関数をコールするときに、HTTPのGET要求のクエリパラメータとして画像変換APP144に渡す情報(確認情報の一例)は、次に示すような情報である。
・セッションID
・シーケンス
セッションIDは、CreatePrintJobSet関数のレスポンスの中に含まれている情報であり、シーケンスは、プロキシAPP143が生成した任意の番号である。
・セッションID
・シーケンス
セッションIDは、CreatePrintJobSet関数のレスポンスの中に含まれている情報であり、シーケンスは、プロキシAPP143が生成した任意の番号である。
画像変換APP144は、ConfirmProgress関数がコールされると、図11(A)で後述するConfirmProgress関数の処理を実行し、そのレスポンス(応答情報の一例)をプロキシAPP143に返す(S615)。プロキシAPP143は、画像変換APP144からのConfirmProgress関数のレスポンスを受信すると、そのレスポンス内の応答メッセージに含まれている内容(「処理中応答」、「処理完了応答」、又は「エラー応答」)を確認する(S616)。S616において、プロキシAPP143が「処理完了応答」を受信したと判断した場合、図7のS701に処理を移し、他方、「処理中応答」を受信したと判断した場合、S614に処理を移す。
なお、図10(B)で後述する画像変換APP144のダウンロード・画像変換スレッドの処理でエラーが発生した場合、S616において、プロキシAPP143が「エラー応答」を受信して印刷処理を中止する。しかしながら、中止するケースに関しては、本実施形態の本質から外れるので、その詳細な説明を省略する。よって、S616以降では、プロキシAPP143が「処理完了応答」または「処理中応答」を受信した場合を中心に説明する。
図7に示すように、S701では、プロキシAPP143は、画像変換APP144がエクスポートしているWebサービスAPIのCreatePrintJobResult関数をコールする。S701において、プロキシAPP143が、この関数をコールするときに、HTTPSのPOST要求の入力パラメータとして画像変換APP144に渡す情報(所在取得情報の一例)は、次に示すような情報である。
・クラウド印刷APP146が発行したプリンタID
・クラウド印刷APP146が発行した印刷ジョブID
画像変換APP144は、CreatePrintJobResult関数がコールされると、図12で後述するCreatePrintJobResult関数の処理を実行し、そのレスポンスをプロキシAPP143に返す(S702)。
・クラウド印刷APP146が発行したプリンタID
・クラウド印刷APP146が発行した印刷ジョブID
画像変換APP144は、CreatePrintJobResult関数がコールされると、図12で後述するCreatePrintJobResult関数の処理を実行し、そのレスポンスをプロキシAPP143に返す(S702)。
プロキシAPP143は、画像変換APP144からのCreatePrintJobResult関数のレスポンスを受信すると、PrintJobReadyに「1」をセットする(S703)。そして、プロキシAPP143は、印刷ジョブ管理データベースの印刷ジョブ準備完了(PrintJobReady)に、印刷ジョブ準備完了を表す「1」をセットする(S703)。これにより、MFP3における印刷待ち状態となる(S704)。
図6のS618〜S621で前述したように、MFP3は、プロキシAPP143がエクスポートしているCheckPrintJob関数を、一定の時間間隔でポーリングし、S705は、S618と同等な処理を表す。S704でMFP3における印刷待ち状態となっているとき、S705において、MFP3が、プロキシAPP143がエクスポートしているCheckPrintJob関数をコールした場合について説明する。プロキシAPP143は、CheckPrintJob関数がコールされると、図9(A)で後述するCheckPrintJob関数の処理を実行し、そのレスポンスをMFP3に返す(S706)。
MFP3は、プロキシAPP143からのCheckPrintJob関数のレスポンスを受信すると、そのレスポンス内の応答メッセージに含まれている内容(「印刷ジョブ有り応答」又は「印刷ジョブ無し応答」)を確認する(S707)。S707において、MFP3が「印刷ジョブ有り応答」を受信したと判断した場合、S708に処理を移し、他方、「印刷ジョブ無し応答」を受信したと判断した場合、S621に処理を移す。
S708では、MFP3は、プロキシAPP143がエクスポートしているWebサービスAPIのGetPrintJob関数をコールする。S708において、MFP3が、この関数をコールするときに、HTTPSのGET要求のクエリパラメータとしてプロキシAPP143に渡す情報(取得情報の一例)は、次に示すような情報である。
・クラウド印刷APP146が発行したプリンタID
プロキシAPP143は、GetPrintJob関数がコールされると、図9(B)で後述するGetPrintJob関数の処理を実行し、そのレスポンスをMFP3に返す(S709)。MFP3は、プロキシAPP143からのGetPrintJob関数のレスポンスを受信すると、レスポンス内の応答メッセージに含まれている内容をもとに、印刷画像取得要求を画像変換APP144に送信する(S710)。
・クラウド印刷APP146が発行したプリンタID
プロキシAPP143は、GetPrintJob関数がコールされると、図9(B)で後述するGetPrintJob関数の処理を実行し、そのレスポンスをMFP3に返す(S709)。MFP3は、プロキシAPP143からのGetPrintJob関数のレスポンスを受信すると、レスポンス内の応答メッセージに含まれている内容をもとに、印刷画像取得要求を画像変換APP144に送信する(S710)。
ここで、レスポンス内の応答メッセージに含まれている内容は、印刷ジョブアクセスURL(印刷画像(JPEGファイル)の格納先のURL)、印刷画像(JPEGファイル)の総ページ数、及び画像変換APP144へのアクセストークンである。また、印刷画像取得要求は、画像変換APP144から各ページの印刷画像(JPEGファイル)を取得するための要求である。
本実施形態では、印刷ジョブアクセスURLは、画像変換App144を有するPC5の格納先URLとするが、それ以外のPCの格納先URLであってもよい。また、例えば、印刷ジョブアクセスURLについては、直接PC5から送信する形態であってもよい。また、例えば、指定されたページの印刷画像を、App143を有するPC2がPC5から取得し、取得した印刷画像をPC2がMFP3に送信する形態であってもよい。また、例えば、PC2が、取得した印刷画像の格納先のURLをMFP3に送ってもよい。
画像変換APP144は、MFP3からの印刷画像取得要求を受信すると、指定されたページの印刷画像(JPEGファイル)に対するMFP3からのアクセスを許可し、その印刷画像をMFP3に送信する(S711)。MFP3は、画像変換APP144から送信された印刷画像を受信すると、その印刷画像を印刷する(S712)。続いて、MFP3は、印刷画像(JPEGファイル)の総ページ数をもとに、次ページの有無を確認する(S713)。このとき、MFP3は、次ページが有ると判断した場合、S710に処理を移し、次ページの印刷画像を取得するための印刷画像取得要求を画像変換APP144に送信する。他方、MFP3は、次ページが無いと判断した場合、図8のS801に処理を移す。
S710〜S712における印刷画像(JPEGファイル)の取得処理に関しては、SSL通信で暗号化されたHTTPSのGETメソッドが利用される。
図8に示すように、S801では、MFP3は、プロキシAPP143がエクスポートしているWebサービスAPIのEndPrintJob関数をコールする。EndPrintJob関数のコールについては、SSL通信で暗号化されたHTTPSのGETメソッドが利用されている。S801において、MFP3が、この関数をコールするときに、HTTPSのGET要求のクエリパラメータとしてプロキシAPP143に渡す情報(終了情報の一例)は、次に示すような情報である。
・クラウド印刷APP146が発行したプリンタID
・クラウド印刷APP146が発行した印刷ジョブID
プロキシAPP143は、EndPrintJob関数がコールされると(S802)、画像変換APP144がエクスポートしているWebサービスAPIのJobCompleted関数をコールする(S803)。S803において、プロキシAPP143が、この関数をコールするときに、HTTPSのPOST要求の入力パラメータとして画像変換APP144に渡す情報(ジョブ処理終了情報の一例)は、次に示すような情報である。
・クラウド印刷APP146が発行したプリンタID
・クラウド印刷APP146が発行した印刷ジョブID
画像変換APP144は、JobCompleted関数がコールされると、図11(B)で後述するJobCompleted関数の処理を実行し、そのレスポンスをプロキシAPP143に返す(S804)。プロキシAPP143は、画像変換APP144からのJobCompleted関数のレスポンスを受信すると、印刷ジョブ管理データベースからこの印刷ジョブに関する情報を削除して、印刷ジョブ管理データベースを更新する(S805)。そして、プロキシAPP143は、ドキュメントの印刷処理を終了する(S806)。
・クラウド印刷APP146が発行したプリンタID
・クラウド印刷APP146が発行した印刷ジョブID
プロキシAPP143は、EndPrintJob関数がコールされると(S802)、画像変換APP144がエクスポートしているWebサービスAPIのJobCompleted関数をコールする(S803)。S803において、プロキシAPP143が、この関数をコールするときに、HTTPSのPOST要求の入力パラメータとして画像変換APP144に渡す情報(ジョブ処理終了情報の一例)は、次に示すような情報である。
・クラウド印刷APP146が発行したプリンタID
・クラウド印刷APP146が発行した印刷ジョブID
画像変換APP144は、JobCompleted関数がコールされると、図11(B)で後述するJobCompleted関数の処理を実行し、そのレスポンスをプロキシAPP143に返す(S804)。プロキシAPP143は、画像変換APP144からのJobCompleted関数のレスポンスを受信すると、印刷ジョブ管理データベースからこの印刷ジョブに関する情報を削除して、印刷ジョブ管理データベースを更新する(S805)。そして、プロキシAPP143は、ドキュメントの印刷処理を終了する(S806)。
次に、プロキシAPP143がエクスポートするWebサービスAPIの処理について図9を用いて説明する。図9(A)は、CheckPrintJob関数の処理に係るフローチャートの一例を示す図である。図9(B)は、GetPrintJob関数の処理に係るフローチャートの一例を示す図である。CheckPrintJob関数については、HTTPのGETメソッドが利用されている。GetPrintJob関数については、SSL通信で暗号化されたHTTPSのGETメソッドが利用されている。これらのフローチャートに係るプログラムは、PC2に組み込まれ、HDD202に記憶されており、CPU204によりRAM201に読み出されて実行される。
図6のS618、図7のS705において、MFP3がCheckPrintJob関数をコールすると、プロキシAPP143が図9(A)に示すCheckPrintJob関数の処理を実行する。
図9(A)に示すように、プロキシAPP143は、CheckPrintJob関数の処理を開始すると(S901)、印刷ジョブ管理データベースの印刷ジョブ準備完了(PrintJobReady)を確認する(S902)。S901において、HTTPのGET要求のクエリパラメータとして、クラウド印刷APP146が発行したプリンタIDとランダムコードとがMFP3から渡される。
プロキシAPP143は、印刷ジョブ準備完了(PrintJobReady)に印刷ジョブ準備が完了していることを表す「1」がセットされている、即ちMFP3の印刷ジョブが存在すると判断した場合(S903でYESの場合)、S904に処理を移す。他方、プロキシAPP143は、印刷ジョブの準備が未完了であることを表す「0」がセットされている、即ちMFP3の印刷ジョブが存在しないと判断した場合(S903でNOの場合)、S905に処理を移す。
S904では、プロキシAPP143は、HTTPのGET要求に対するレスポンスのBODYに含める応答メッセージに「印刷ジョブ有り応答」をセットし、S906に処理を移す。S905では、プロキシAPP143は、HTTPのGET要求に対するレスポンスのBODYに含める応答メッセージに「印刷ジョブ無し応答」をセットし、S906に処理を移す。S906では、プロキシAPP143は、GET要求の発行元(本例ではMFP3)に対して応答メッセージを送信し、CheckPrintJob関数の処理を終了する(S907)。
ここで、「印刷ジョブ有り応答」と「印刷ジョブ無し応答」との詳細を説明する。印刷ジョブ有りの状態を表す情報、及び印刷ジョブ無しの状態を表す情報は、それぞれ「10101010」、「01010101」である。「印刷ジョブ有り応答」及び「印刷ジョブ無し応答」は、それぞれ、ランダムコードとこれらの状態を表す情報とを用いて演算された結果であり、例えば、次に示す情報を文字列に変換した文字列情報で構成される。
「印刷ジョブ有り応答」 = ランダムコード XOR 10101010
「印刷ジョブ無し応答」 = ランダムコード XOR 01010101
このように、プロキシAPP143はHTTPのGET要求に対するレスポンスとしてXMLを使って定義した可視的な情報は用いない。プロキシAPP143は、一般には意味がわからない文字列情報を用いる。これによりWebサービスAPIに対する適切でないアクセスによる誤動作や適切でない制御を防止することができる。なお、このような適切でないアクセスを防止する構成は、この例に限られるものではなく、ハッシュ化等、より複雑な演算を組み合わせてもよい。
「印刷ジョブ有り応答」 = ランダムコード XOR 10101010
「印刷ジョブ無し応答」 = ランダムコード XOR 01010101
このように、プロキシAPP143はHTTPのGET要求に対するレスポンスとしてXMLを使って定義した可視的な情報は用いない。プロキシAPP143は、一般には意味がわからない文字列情報を用いる。これによりWebサービスAPIに対する適切でないアクセスによる誤動作や適切でない制御を防止することができる。なお、このような適切でないアクセスを防止する構成は、この例に限られるものではなく、ハッシュ化等、より複雑な演算を組み合わせてもよい。
また、図7のS708において、MFP3がGetPrintJob関数をコールすると、プロキシAPP143は、図9(B)に示すGetPrintJob関数の処理を実行する。図9(B)に示すように、プロキシAPP143は、GetPrintJob関数の処理を開始する(S911)。そして、プロキシAPP143は、HTTPSのGET要求に対するレスポンスのBODYに含める応答メッセージに、印刷画像(JPEGファイル)の格納先のURLをセットし(S912)、S913に処理を移す。
S913では、プロキシAPP143は、HTTPSのGET要求に対するレスポンスのBODYに含める応答メッセージに、印刷画像(JPEGファイル)の総ページ数をセットし、S914に処理を移す。S914では、プロキシAPP143は、HTTPSのGET要求に対するレスポンスのBODYに含める応答メッセージに、画像変換APP144へのアクセストークンをセットし、S915に処理を移す。
S915では、プロキシAPP143は、GET要求の発行元(本例ではMFP3)に対して応答メッセージを送信し、GetPrintJob関数の処理を終了する(S916)。
次に、画像変換APP144がエクスポートするWebサービスAPIとスレッド関数の処理とについて図10を用いて説明する。図10(A)は、CreatePrintJobSet関数の処理に係るフローチャートの一例を示す図である。図10(B)は、ダウンロード・画像変換スレッド関数の処理に係るフローチャートの一例を示す図である。CreatePrintJobSet関数については、SSL通信で暗号化されたHTTPSのPOSTメソッドが利用されている。
これらのフローチャートに係るプログラムは、PC5に組み込まれ、HDD202に記憶されており、CPU204によりRAM201に読み出されて実行される。
図6のS612において、プロキシAPP143がCreatePrintJobSet関数をコールすると、画像変換APP144は、図10(A)に示すCreatePrintJobSet関数の処理を実行する。
図10(A)に示すように、画像変換APP144は、CreatePrintJobSet関数の処理を開始し(S1001)、図15で後述するアクセストークンの確認処理を実行する(S1018)。このとき、次に示す情報をこの処理(サブルーチン関数)の引数として渡す。
・サービスID
・クラウド印刷APP146が発行したプリンタID
・クラウド印刷APP146が発行した印刷ジョブID
・画像変換APP144を利用するためのアクセストークン
そして、画像変換APP144は、セッションIDを生成し、セッション管理データベースに保存し(S1002)、S1003に処理を移す。セッション管理データベースには、次に示すような情報が保存される。
[セッション管理データベース]
・検索キー:画像変換APP144が発行したセッションID
・サービスID
・クラウド印刷APP146が発行したプリンタID
・クラウド印刷APP146が発行した印刷ジョブID
・クラウド印刷サービスを利用するためのアクセストークン
・印刷画像(PDFファイル)の格納先のURL
・画像変換APP144を利用するためのアクセストークン
・印刷ジョブアクセスURL(JPEGファイルの格納先のURL)
・処理の進捗を表す進捗状況(Progress)
ここで、画像変換APP144は、CreatePrintJobSet関数の入力パラメータの中からクラウド印刷APP146が発行したプリンタIDと印刷ジョブIDとを取得する。そして、画像変換APP144は、クラウド印刷APP146が発行したプリンタIDと印刷ジョブIDとをセッション管理データベースに保存する。
・サービスID
・クラウド印刷APP146が発行したプリンタID
・クラウド印刷APP146が発行した印刷ジョブID
・画像変換APP144を利用するためのアクセストークン
そして、画像変換APP144は、セッションIDを生成し、セッション管理データベースに保存し(S1002)、S1003に処理を移す。セッション管理データベースには、次に示すような情報が保存される。
[セッション管理データベース]
・検索キー:画像変換APP144が発行したセッションID
・サービスID
・クラウド印刷APP146が発行したプリンタID
・クラウド印刷APP146が発行した印刷ジョブID
・クラウド印刷サービスを利用するためのアクセストークン
・印刷画像(PDFファイル)の格納先のURL
・画像変換APP144を利用するためのアクセストークン
・印刷ジョブアクセスURL(JPEGファイルの格納先のURL)
・処理の進捗を表す進捗状況(Progress)
ここで、画像変換APP144は、CreatePrintJobSet関数の入力パラメータの中からクラウド印刷APP146が発行したプリンタIDと印刷ジョブIDとを取得する。そして、画像変換APP144は、クラウド印刷APP146が発行したプリンタIDと印刷ジョブIDとをセッション管理データベースに保存する。
また、画像変換APP144は、CreatePrintJobSet関数の入力パラメータの中からクラウド印刷サービスを利用するためのアクセストークンを取得する。そして、画像変換APP144は、クラウド印刷サービスを利用するためのアクセストークンをセッション管理データベースに保存する。
さらに、画像変換APP144は、CreatePrintJobSet関数の入力パラメータの中から印刷画像(PDFファイル)の格納先のURLを取得し、印刷画像(PDFファイル)の格納先のURLをセッション管理データベースに保存する。
続いて、画像変換APP144は、セッション管理データベース内の処理の進捗を表す進捗状況(Progress)に処理中を表す「1」をセットし(S1003)、S1004に処理を移す。S1004では、画像変換APP144は、ダウンロード・画像変換スレッドを生成し、S1005に処理を移す。なお、ダウンロード・画像変換スレッドの処理に関しては、図10(B)で後述する。
続いて、画像変換APP144は、HTTPSのPOST要求に対するレスポンスのBODYに含める応答メッセージに、この関数が成功して正常終了したことを表すSUCCESSとS1002で生成したセッションIDとをセットする(S1005)。そして、画像変換APP144は、POST要求の発行元(本例ではプロキシAPP143)に対して応答メッセージを送信する(S1005)。そして、画像変換APP144は、CreatePrintJobSet関数の処理を終了する(S1006)。
また、S1004において画像変換APP144がダウンロード・画像変換スレッドを生成すると、CreatePrintJobSet関数とは別のスレッドが起動される。そして、このスレッドの中で図10(B)に示すダウンロード・画像変換スレッドの処理が実行される。
図10(B)に示すように、画像変換APP144は、ダウンロード・画像変換スレッドの処理を開始する(S1011)。そして、画像変換APP144は、クラウド印刷サービスを利用するためのアクセストークンを利用し、SSL通信で暗号化されたHTTPSのGETメソッドにて印刷画像(PDFファイル)の格納先のURLにアクセスする。即ち、画像変換APP144は、クラウド印刷サービスから印刷画像(PDFファイル)をダウンロードして一時的にRAM201に保存する(S1012)。
また、画像変換APP144は、ダウンロードを完了した後、印刷画像(PDFファイル)をMFP3で印刷可能な形式であるJPEGファイルに変換する。なお、PC5のHDD202には、プリンタやMFP毎に、印刷可能な形式を示す設定情報が予め記憶されている。そして、画像変換APP144は、クラウド印刷APP146が発行したプリンタIDと印刷ジョブIDとから構成されるフォルダにそのJPEGファイルを保存する(S1013)。
また、S1013において、画像変換APP144は、セッション管理データベース内の画像変換APP144へのアクセストークンに、画像変換APP144へのアクセストークンをセットする。画像変換APP144へのアクセストークンは、クラウド印刷APP146が発行したプリンタIDが関連付けられているプリンタやMFP(本例ではMFP3)が印刷画像(JPEGファイル)にアクセスするためのアクセストークンである。さらに、S1013において、画像変換APP144は、セッション管理データベース内の印刷ジョブアクセスURLに、印刷画像(JPEGファイル)の格納先のURL(1ページ目)をセットする。
[例]
プリンタID:abcde
印刷ジョブID:1234
印刷画像(JPEGファイル)の総ページ数:3ページ
PC2内のデータストレージ:
C:¥abcde1234¥
p1.jpg
p2.jpg
p3.jpg
URL:http://www.abc.xxx/printdata/?pi=abcde&ji=1234&p=1
このURLは、1ページ目のJPEGファイル(p1.jpg)を表すので、MFP3は、各ページの印刷画像を取得するときは、ページ番号を表すクエリパラエータ「p」に、取得するページ番号を指定する。S1013において、画像変換APP144は、印刷画像(PDFファイル)を変換し、全てのページの印刷画像(JPEGファイル)の変換が完了した後、S1012でダウンロードした印刷画像(PDFファイル)をRAM201から削除する。
[例]
プリンタID:abcde
印刷ジョブID:1234
印刷画像(JPEGファイル)の総ページ数:3ページ
PC2内のデータストレージ:
C:¥abcde1234¥
p1.jpg
p2.jpg
p3.jpg
URL:http://www.abc.xxx/printdata/?pi=abcde&ji=1234&p=1
このURLは、1ページ目のJPEGファイル(p1.jpg)を表すので、MFP3は、各ページの印刷画像を取得するときは、ページ番号を表すクエリパラエータ「p」に、取得するページ番号を指定する。S1013において、画像変換APP144は、印刷画像(PDFファイル)を変換し、全てのページの印刷画像(JPEGファイル)の変換が完了した後、S1012でダウンロードした印刷画像(PDFファイル)をRAM201から削除する。
続いて、画像変換APP144は、S1011〜S1013の何れかの処理においてエラーを検出したか否かを判断する(S1014)。このとき、画像変換APP144は、エラーを検出したと判断した場合、S1016に処理を移し、他方、エラーを検出しなかったと判断した場合、正常終了と判断してS1015に処理を移す。
S1015では、画像変換APP144は、セッション管理データベース内の進??状況(Progress)に正常終了を表す「0」をセットし、ダウンロード・画像変換スレッドの処理を終了する(S1017)。S1016では、画像変換APP144は、セッション管理データベース内の進??状況(Progress)にエラー終了を表す「2」をセットし、ダウンロード・画像変換スレッドの処理を終了する(S1017)。S1017において、画像変換APP144は、セッション管理データベースからこの印刷ジョブに関する情報を削除し、セッション管理データベースを更新する。
次に、画像変換APP144がエクスポートするWebサービスAPIの処理について図11を用いて説明する。図11(A)は、ConfirmProgress関数の処理に係るフローチャートの一例を示す図である。図11(B)は、JobCompleted関数の処理に係るフローチャートの一例を示す図である。
ここで、ConfirmProgress関数については、HTTPのGETメソッドが利用されている。JobCompleted関数については、SSL通信で暗号化されたHTTPSのPOSTメソッドが利用されている。これらのフローチャートに係るプログラムは、PC5に組み込まれ、HDD202に記憶されており、CPU204によりRAM201に読み出されて実行される。
図6のS614において、プロキシAPP143がConfirmProgress関数をコールすると、画像変換APP144が図11(A)に示すConfirmProgress関数の処理を実行する。図11(A)に示すように、画像変換APP144は、ConfirmProgress関数の処理を開始し(S1101)、図15で後述するアクセストークンの確認処理を実行する(S1125)。このとき、次に示す情報をこの処理(サブルーチン関数)の引数として渡す。
・サービスID
・クラウド印刷APP146が発行したプリンタID
・クラウド印刷APP146が発行した印刷ジョブID
・画像変換APP144を利用するためのアクセストークン
このとき、ConfirmProgress関数に対するHTTPのGET要求には、クエリパラメータとしてセッションIDとシーケンスとが含まれている。シーケンスは、GET要求の発行元(本例ではプロキシAPP143)が生成する任意の番号である。
・サービスID
・クラウド印刷APP146が発行したプリンタID
・クラウド印刷APP146が発行した印刷ジョブID
・画像変換APP144を利用するためのアクセストークン
このとき、ConfirmProgress関数に対するHTTPのGET要求には、クエリパラメータとしてセッションIDとシーケンスとが含まれている。シーケンスは、GET要求の発行元(本例ではプロキシAPP143)が生成する任意の番号である。
続いて、画像変換APP144は、クエリパラメータに含まれているセッションIDを検索キーとして、セッション管理データベース内の進??状況(Progress)を確認する(S1102)。続いて、画像変換APP144は、進??状況(Progress)に正常終了を表す「0」がセットされていると判断した場合(S1103でYESの場合)、S1104に処理を移す。他方、画像変換APP144は、「0」以外(「1」または「2」)がセットされていると判断した場合(S1103でNOの場合)、S1105に処理を移す。
S1104では、画像変換APP144は、HTTPのGET要求に対するレスポンスのBODYに含める応答メッセージに「処理完了応答」をセットし、S1108に処理を移す。S1105では、画像変換APP144は、進??状況(Progress)を確認する。このとき、画像変換APP144は、進??状況(Progress)に処理中を表す「1」がセットされていると判断した場合、S1106に処理を移し、他方、「1」以外(「2」)がセットされている判断した場合、S1107に処理を移す。
S1106では、画像変換APP144は、HTTPのGET要求に対するレスポンスのBODYに含める応答メッセージに「処理中応答」をセットし、S1108に処理を移す。S1107では、画像変換APP144は、HTTPのGET要求に対するレスポンスのBODYに含める応答メッセージに「エラー応答」をセットし、S1108に処理を移す。
S1108では、画像変換APP144は、GET要求の発行元(本例ではプロキシAPP143)に対して応答メッセージを送信し、ConfirmProgress関数の処理を終了する(S1109)。
ここで、「処理完了応答」、「処理中応答」、及び「エラー応答」の詳細について説明する。これらの応答は、それぞれ、S1101においてGET要求のクエリパラメータに含まれていたシーケンスを用いて演算された結果であり、例えば、次に示す情報を文字列に変換した文字列情報で構成される。
「処理完了応答」 = シーケンス
「処理中応答」 = シーケンス+1
「エラー応答」 = シーケンス+2
このように、画像変換APP144は、HTTPのGET要求に対するレスポンスとしてXMLを使って定義した可視的な情報等ではなく一般には意味がわからない文字列情報を用いる。WebサービスAPIに対する適切でないアクセスによる誤動作や適切でない制御を防止することができる。なお、このような適切でないアクセスを防止する構成は、この例に限られるものではなく、ハッシュ化等、より複雑な演算を組み合わせてもよい。また、図8のS803において、プロキシAPP143がJobCompleted関数をコールすると、画像変換APP144が図11(B)に示すJobCompleted関数の処理を実行する。
「処理完了応答」 = シーケンス
「処理中応答」 = シーケンス+1
「エラー応答」 = シーケンス+2
このように、画像変換APP144は、HTTPのGET要求に対するレスポンスとしてXMLを使って定義した可視的な情報等ではなく一般には意味がわからない文字列情報を用いる。WebサービスAPIに対する適切でないアクセスによる誤動作や適切でない制御を防止することができる。なお、このような適切でないアクセスを防止する構成は、この例に限られるものではなく、ハッシュ化等、より複雑な演算を組み合わせてもよい。また、図8のS803において、プロキシAPP143がJobCompleted関数をコールすると、画像変換APP144が図11(B)に示すJobCompleted関数の処理を実行する。
図11(B)に示すように、画像変換APP144は、JobCompleted関数の処理を開始すると(S1121)、図15で後述するアクセストークンの確認処理を実行する(S1126)。このとき、次に示す情報をこの処理(サブルーチン関数)の引数として渡す。
・サービスID
・クラウド印刷APP146が発行したプリンタID
・クラウド印刷APP146が発行した印刷ジョブID
・画像変換APP144を利用するためのアクセストークン
そして、印刷画像(JPEGファイル)を削除し(S1122)、S1123に処理を移す。
・サービスID
・クラウド印刷APP146が発行したプリンタID
・クラウド印刷APP146が発行した印刷ジョブID
・画像変換APP144を利用するためのアクセストークン
そして、印刷画像(JPEGファイル)を削除し(S1122)、S1123に処理を移す。
S1123では、画像変換APP144は、HTTPSのPOST要求に対するレスポンスのBODYに含める応答メッセージに、正常終了したことを表すSUCCESSをセットする。また、S1123では、画像変換APP144は、POST要求の発行元(本例ではプロキシAPP143)に対して応答メッセージを送信する。そして、画像変換APP144は、JobCompleted関数の処理を終了する(S1124)。
次に、画像変換APP144がエクスポートするWebサービスAPIの処理について図12を用いて説明する。図12は、CreatePrintJobResult関数の処理に係るフローチャートの一例を示す図である。
CreatePrintJobResult関数については、SSL通信で暗号化されたHTTPSのPOSTメソッドが利用されている。このフローチャートに係るプログラムは、PC5に組み込まれ、HDD202に記憶されており、CPU204によりRAM201に読み出されて実行される。
図7のS701において、プロキシAPP143がCreatePrintJobResult関数をコールすると、画像変換APP144が図12に示すCreatePrintJobResult関数の処理を実行する。図12に示すように、画像変換APP144は、CreatePrintJobResult関数の処理を開始し(S1201)、図15で後述するアクセストークンの確認処理を実行する(S1207)。このとき、次に示す情報をこの処理(サブルーチン関数)の引数として渡す。
・サービスID
・クラウド印刷APP146が発行したプリンタID
・クラウド印刷APP146が発行した印刷ジョブID
・画像変換APP144を利用するためのアクセストークン
続いて、画像変換APP144は、HTTPSのPOST要求に対するレスポンスのBODYに含める応答メッセージに、画像変換APP144を利用するためへのアクセストークンをセットし(S1202)、S1203に処理を移す。
・サービスID
・クラウド印刷APP146が発行したプリンタID
・クラウド印刷APP146が発行した印刷ジョブID
・画像変換APP144を利用するためのアクセストークン
続いて、画像変換APP144は、HTTPSのPOST要求に対するレスポンスのBODYに含める応答メッセージに、画像変換APP144を利用するためへのアクセストークンをセットし(S1202)、S1203に処理を移す。
S1203では、画像変換APP144は、POST要求に対するレスポンスのBODYに含める応答メッセージに、印刷ジョブアクセスURL(JPEGファイルの格納先のURL)をセットし、S1204に処理を移す。S1204では、画像変換APP144は、POST要求に対するレスポンスのBODYに含める応答メッセージに、印刷画像(JPEGファイル)の総ページ数をセットし、S1205に処理を移す。S1205では、画像変換APP144は、POST要求の発行元(本例ではプロキシAPP143)に対して応答メッセージを送信し、CreatePrintJobResult関数の処理を終了する(S1206)。
図13は、WebサービスAPIのコーリングシーケンスの一例を示す図である。図13(A)は、プロキシAPP143とMFP3との間のコーリングシーケンスの一例を示す図である。図13(B)は、プロキシAPP143と画像変換APP144との間のコーリングシーケンスの一例を示す図である。
図13(A)に示すように、プロキシAPP143とMFP3との間では、MFP3は、プロキシAPP143がエクスポートしているWebサービスAPIをコールしている。即ち、CheckPrintJob関数、GetPrintJob関数、EndPrintJob関数の順で、プロキシAPP143がエクスポートしているWebサービスAPIがコールされる。
ここで、CheckPrintJob関数については(ポーリング処理だけが)、暗号化されていないHPPTのGETメソッドが利用され、それ以外の関数については全てSSL通信で暗号化されたHTTPSのGETメソッドが利用されている。このように、印刷ジョブの有無を確認するだけのためのポーリングに、暗号化されていないHTTPメソッドを利用することで、ポーリングに要する時間が低減され、ユーザの操作性に優れた周辺装置制御システムを実現することができる。また、ポーリングにかかる負荷を低減することができるので、例えば負荷に対応するための構成が必要なくなるので、システムの構築やプリンタやMFPのファームウェアの実装が容易となり、開発コストを削減できる。
また、図13(B)に示すように、プロキシAPP143と画像変換APP144との間では、プロキシAPP143は、画像変換APP144がエクスポートしているWebサービスAPIをコールしている。即ち、CreatePrintJobSet関数、ConfirmProgress関数、CreatePrintJobResult関数、JobCompleted関数の順で画像変換APP144がエクスポートしているWebサービスAPIがコールされる。
ここで、ConfirmProgress関数については(ポーリング処理だけが)、暗号化されていないHPPTのGETメソッドが利用され、それ以外の関数については全てSSL通信で暗号化されたHTTPSのPOSTメソッドが利用されている。
このように、処理の進捗状況を確認するだけのためのポーリングに、暗号化されていないHTTPメソッドを利用することで、ポーリングに要する時間が低減され、ユーザの操作性に優れた周辺装置制御システムを実現することができる。また、ポーリングにかかる負荷を低減することができるので、例えば負荷に対応するための構成が必要なくなるので、システムの構築やアプリケーションの実装が容易となり、開発や運用コストを削減できる。
次に、画像変換APP144がエクスポートするWebサービスAPIの処理について図14を用いて説明する。図14は、RegisterAndAuth関数の処理に係るフローチャートの一例を示す図である。RegisterAndAuth関数については、SSL通信で暗号化されたHTTPSのPOSTメソッドが利用されている。このフローチャートに係るプログラムは、PC5に組み込まれ、HDD202に記憶されており、CPU204によりRAM201に読み出されて実行される。
図14では、エラーケースに関する処理を省略し、正常ケースだけを示す。図6のS622において、プロキシAPP143がRegisterAndAuth関数をコールすると、画像変換APP144のCPU204が図14に示すRegisterAndAuth関数の処理を実行する。S1401において、画像変換APP144は、RegisterAndAuth関数の処理を開始する。
S1407において、画像変換APP144は、RegisterAndAuth関数の処理開始時の時刻を取得する。S1402において、画像変換APP144は、プロキシAPP143から入力パラメータを含む前処理情報を受け取る。画像変換APP144は、入力パラメータとして「画像変換APP144を利用するユーザID」と「画像変換APP144を利用するユーザパスワード」を使用してユーザ認証を行う。ここでは、画像変換APP144は、該入力パラメータを使って、認証APP148がエクスポートするWebサービスAPIの1つであるユーザ認証関数をコールして、ユーザ認証を行う。認証APP148のHDD202はユーザの認証情報を保持する保持手段として機能し、認証APP148のCPU204は、ユーザが存在する場合にユーザ認証を行う。
例えば、ユーザ認証が初回の場合、認証APP148にはユーザが存在しない。また、記憶手段として機能するHDD202の記憶容量に起因して、上述の入力パラメータが古いとユーザが存在しない場合がある。上述の状況下では、S1402において、画像変換APP144はユーザ認証に失敗する。ユーザ認証に失敗した場合、画像変換APP144は、プロキシAPP143から入力パラメータとして「認証APP148を利用する管理者ID」と「認証APP148を利用する管理者パスワード」を使用する。ここでは、認証APP148がエクスポートするWebサービスAPIの1つであるログイン関数をコールしてログインする。
ログイン後、画像変換APP144は、「画像変換APP144を利用するユーザID」と「画像変換APP144を利用するユーザパスワード」を使って新規ユーザ登録を行う。ここでは、画像変換APP144は、認証APP148がエクスポートするWebサービスAPIの1つであるユーザ登録関数をコールする。画像変換APP144は、新規ユーザ登録を行った後、または登録処理と同時にユーザ認証を行う。画像変換APP144のCPU204は、ユーザ認証に成功すると、認証APP148がエクスポートするWebサービスAPIの1つであるアクセストークン生成関数をコールする。これにより、画像変換APP144のCPU204は、画像変換APP144を利用するためのアクセストークンを取得する(S1403)。画像変換APP144は、この画像変換APP144を利用するためのアクセストークンを第1のアクセストークンとしてHDD202のセッション管理データベースに保存する(S1404)。すなわち、画像変換APP144のCPU204は認証要求を認証APP148に送信し、認証APP148から第1のアクセストークンを取得する取得手段として機能する。また、セッション管理データベースは記憶手段として機能し、次に示すような情報を保存する。
[セッション管理データベース]
・検索キー:サービスIDと、クラウド印刷APP146が発行したプリンタIDと、クラウド印刷APP146が発行した印刷ジョブIDとを組合せて生成された値
・画像変換APP144を利用するためのアクセストークン
・S1407で取得した時刻情報
ただし、セッション管理データベースへの保存時に既に同一の検索キーを持つ情報が保存されている場合は保存しない。
[セッション管理データベース]
・検索キー:サービスIDと、クラウド印刷APP146が発行したプリンタIDと、クラウド印刷APP146が発行した印刷ジョブIDとを組合せて生成された値
・画像変換APP144を利用するためのアクセストークン
・S1407で取得した時刻情報
ただし、セッション管理データベースへの保存時に既に同一の検索キーを持つ情報が保存されている場合は保存しない。
S1404において、セッション管理データベースに検索キーが同一の情報が既に保存されていた場合は、プロキシAPP143がコールしたRegisterAndAuth関数の応答が一定時間経過しても受け取れなかったため、プロキシAPP143がRegisterAndAuth関数をリトライで再度コールしたと判断できる。プロキシAPP143はRegisterAndAuth関数をリトライでコールする際、入力パラメータはすべて初回のコール時と同じパラメータを設定する。従って、セッション管理データベースに情報を保存する際の検索キーが初回コール時とリトライコール時で同じ値となる。また、プロキシAPP143がWebサービスAPIのリトライを行った場合、プロキシAPP143は初回にコールしたRegisterAndAuth関数の応答は受け付けない。そして、リトライ処理でコールしたRegisterAndAuth関数の応答より取得したアクセストークンを、画像変換APP144にアクセスするためのアクセストークンとしてCreatePrintJobSet関数の入力パラメータとしてコールする。従って、セッション管理データベースには、リトライ処理で取得されたアクセストークンが保存されていなければならない。
S1408において、画像変換APP144は、S1404でセッション管理データベースへの保存時に同じ検索キーの情報が既に保存されていたかを判断する。同じ検索キーの情報が保存されていない場合は、S1404にてアクセストークンがセッション管理データベースに保存されている。既にセッション管理データベースに同じ検索キーの情報が保存されている場合は、保存されている時刻情報と、S1407で取得した時刻情報とを比較する(S1409)。
比較結果がS1407で取得した時刻情報の方が新しい場合は、セッション管理データベースに保存されたアクセストークンを取得したRegisterAndAuth関数よりも、現在処理中のRegisterAndAuth関数の方が後でコールされたリトライ処理であると判断できる。よって、セッション管理データベースに保存されたアクセストークンと時刻情報を、それぞれS1403で取得したアクセストークンと、S1407で取得した時刻情報で更新する(S1410)。
比較結果がS1407で取得した時刻情報の方が古い、もしくは同じ場合には、逆にセッション管理データベースに保存されたアクセストークンを取得したRegisterAndAuth関数の方が、現在処理中のRegisterAndAuth関数よりも後でコールされたリトライ処理であると判断できる。よってセッション管理データベースを更新しない。これにより、セッション管理データベースにはリトライ処理でコールされたRegisterAndAuth関数の処理で取得されたアクセストークンが常に保存されることが保証される。また、リトライ処理が複数回発生した場合においても、必ず最後にコールされたリトライのRegisterAndAuth関数で取得されたアクセストークンが保存されることも保証される。
S1405において、画像変換APP144は、HTTPSのPOST要求に対するレスポンスのBODYに含める応答メッセージを作成する。具体的には、画像変換APP144は、RegisterAndAuth関数が正常終了したことを表すSUCCESSとS1403で取得した画像変換APP144を利用するためのアクセストークンとをセットする。そして、画像変換APP144は、POST要求の発行元(本例ではプロキシAPP143)に対して応答メッセージを送信する(S1405)。S1406において、画像変換APP144は、RegisterAndAuth関数の処理を終了する。
図15は、画像変換APP144のアクセストークンの確認処理に係るフローチャートの一例を示す図である。このフローチャートに係るプログラムは、PC5に組み込まれ、HDD202に記憶されており、CPU204によりRAM201に読み出されて実行される。
アクセストークンの確認処理は、画像変換APP144内のサブルーチン関数であり、次に示す情報がこのサブルーチン関数の引数として渡される。
・サービスID
・クラウド印刷APP146が発行したプリンタID
・クラウド印刷APP146が発行した印刷ジョブID
画像変換APP144を利用するためのアクセストークン
画像変換APP144は、図10のS1018、図11(A)のS1125、図11(B)のS1126、図12のS1207において、アクセストークンの確認処理を実行する。画像変換APP144は、図15に示すように、S1501においてアクセストークンの確認処理を開始する。画像変換APP144は、サービスIDと、クラウド印刷APP146が発行したプリンタIDと、クラウド印刷APP146が発行した印刷ジョブIDとを組合せて検索キーを生成する(S1502)。S1503において、画像変換APP144は、この検索キーを使ってセッション管理データベースを検索する。
・サービスID
・クラウド印刷APP146が発行したプリンタID
・クラウド印刷APP146が発行した印刷ジョブID
画像変換APP144を利用するためのアクセストークン
画像変換APP144は、図10のS1018、図11(A)のS1125、図11(B)のS1126、図12のS1207において、アクセストークンの確認処理を実行する。画像変換APP144は、図15に示すように、S1501においてアクセストークンの確認処理を開始する。画像変換APP144は、サービスIDと、クラウド印刷APP146が発行したプリンタIDと、クラウド印刷APP146が発行した印刷ジョブIDとを組合せて検索キーを生成する(S1502)。S1503において、画像変換APP144は、この検索キーを使ってセッション管理データベースを検索する。
S1504において、画像変換APP144は、この検索キーに関連付けられた情報をセッション管理データベース内に発見した場合S1505に処理を移し、見つからなかった場合S1509に処理を移す。画像変換APP144のCPU204は、画像変換APP144を利用するためのアクセストークン(第2のアクセストークン)と、セッション管理データベースに保存されているアクセストークンが、一致するか否かを比較する。すなわち、画像変換APP144のCPU204は、第1のアクセストークンと第2のアクセストークンを比較する比較手段として機能する。S1506において、画像変換APP144は、一致すると判断した場合S1507へ進み、不一致と判断した場合S1509へ進む。
S1507において、画像変換APP144は、成功を表すSuccessを戻り値にセットする。そして、画像変換APP144は、このサブルーチン関数の呼び出し元へ戻る(S1508)。S1509では、画像変換APP144は、失敗を表すFailureを戻り値にセットする。そして、画像変換APP144は、このサブルーチン関数の呼び出し元である、画像変換APP144がエクスポートするWebサービスAPIのHTTPのPOST要求に対し応答メッセージを作成する。画像変換APP144のCPU204は、レスポンスのBODYに含める応答メッセージに、そのAPIが成功して失敗終了したことを表すFAILUREをセットし、処理を中止する(S1509)。そして、画像変換APP144は、POST要求の発行元(本例ではプロキシAPP143)に対して応答メッセージを送信する(S1510)。そして、画像変換APP144は、このサブルーチン関数と前記APIの処理を終了する(S1511)。すなわち、ここでは画像変換APP144のCPU204は、第1のアクセストークンと第2のアクセストークンが一致すると判定した場合は処理を実行し、一致しないと判定した場合は処理を中止する処理実行手段として機能する。
S1505において、画像変換APP144は比較処理を行う。具体的には、このサブルーチン関数の引数として渡された画像変換APP144を利用するためのアクセストークンと、セッション管理データベースに保存されている画像変換APP144を利用するためのアクセストークンを比較する。アクセストークンが一致するか否かを比較することにより、画像変換APPは、認証APP148がエクスポートするアクセストークン妥当性確認関数を利用することなくアクセストークンの妥当性を判断する。従って、プロキシAPP143が、画像変換APP144に対してコールする度に、画像変換APP144が、認証APP148がエクスポートするWebサービスAPIのアクセストークン妥当性確認関数をコールする必要が無い。その結果、パフォーマンスを向上することができる。
また、認証APP148のシステムの規模を小さくすることができ、構成を簡素化することができる。これにより、運用コストを下げることもできる。さらに、上位サービスであるプロキシAPP143になりすましたなりすましプログラムによる攻撃に対しても有効である。なりすましプログラムからのアクセスのような攻撃による誤動作や情報漏洩を防止することもできる。
さらに、上位サービスであるプロキシAPP143が誤動作した場合に、例えば、ある印刷ジョブに付与されたアクセストークンが、前記誤動作に伴って他の印刷ジョブに関連付けられてしまう可能性がある。このようなケースにおいても、画像変換APP144はその印刷ジョブを処理せずに、印刷を中止することができるので、誤印刷を防止することもできる。
さらに、認証APP143にユーザが存在しない場合は、画像変換APP144が新規ユーザ登録を行う。これによりユーザ自身がユーザ登録を行う必要がなく、ユーザビリティーが向上する。
上述した本実施形態の情報処理システムは、以下に示す効果を奏することができる。本実施形態の情報処理システムは、画像変換APPを利用するためのアクセストークンの比較処理結果に基づいて、当該アクセストークンの妥当性を判断する。従って、本実施形態の情報処理システムによれば、Webサービスアプリケーションが提供するWebサービスAPIの多数コールを抑制し、パフォーマンスを向上することができる。また、Webサービスアプリケーションのシステムの規模を小さくすることができ、構成を簡素化することができる。また、構成を簡素化することにより、運用コストを下げることができる。
また、本実施形態の情報処理システムによれば、Webサービスアプリケーションになりすましたなりすましプログラムによる攻撃時における誤動作や情報漏洩を防止することができる。また、Webサービスアプリケーションが誤動作した場合に、該当しない処理やジョブ(例えば、他人の印刷ジョブ)等を誤って処理することがないようにすることができる。
また、本実施形態の情報処理システムによれば、ポーリングによる画像変換処理の進捗状況の確認処理や、ポーリングによる印刷ジョブの有無の確認処理に時間を要することがなくなり、ユーザの操作性を向上することができる。さらに、MFP3のような性能の低い廉価版のプリンタや複合機のファームウェアの実装にも支障をきたすことなく、各処理に時間を要することもなくなるため、ユーザの操作性を向上することができる。
また、本実施形態の情報処理システムによれば、認証サービスより画像変換APPを利用する為のアクセストークンを取得する処理に遅延が生じ、上位サービスから認証要求のリトライ処理が実行された場合でも、正しく上位サービスが処理実行要求の送信時に使用するアクセストークンの妥当性を判断することが出来る。
上述した実施形態では、情報処理装置としてパーソナルコンピュータを想定した。しかしながら、この例に限られるものではなく、例えばDVDプレーヤー、ゲーム、セットトップボックス、インターネット家電等、同様な使用方法が可能な任意の情報処理装置(端末)に対して適用することができる。
また、上述した実施形態では、周辺装置としてMFPを例示した。しかしながら、周辺装置として他に、複写機、ファクシミリ、スキャナ、デジタルカメラ、及びこれらの複合機能を備える装置等の何れかであってもよい。
また、上述した実施形態では、OSに例としてWindows(登録商標)と同等のOSを使用したが、このOSに限られるものではなく、任意のOSを使用することができる。また、上述した実施形態では、ネットワーク4の構成例としてEthernet(登録商標)を用いたが、この例に限られるものではなく、他の任意のネットワーク構成であってもよい。
また、上述した実施形態では、PC1、PC2、PC5、PC7とMFP3、MFP103との間のインタフェースとして、Ethernet(登録商標)を採用した。しかしながら、このインタフェースに限られることなく、例えば、無線LAN、IEEE1394、Bluetooth(登録商標)、USB等の任意のインタフェースを用いるようにしてもよい。また、各種のアプリケーション(ファームウェア)における機能、上述したフローチャートに係る処理の一部、又は全部を専用のハードウェアを用いて構成してもよい。
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、プロキシAPP143が、RegisterAndAuth関数をリトライでコールする際に、画像変換APP144がセッション管理データベースに情報を保存する際に検索キーの生成に用いるサービスIDやプリンタID、印刷ジョブIDを初回にコールしたRegisterAndAuth関数の設定値とは異なる値を設定する。これにより、リトライによるRegisterAndAuth関数の再コールが発生しても、セッション管理データベースに同じ検索キーで情報を保存することがなくなる。
また、本発明は、以下の処理を実行することによっても実現される。即ち、プロキシAPP143が、RegisterAndAuth関数をリトライでコールする際に、画像変換APP144がセッション管理データベースに情報を保存する際に検索キーの生成に用いるサービスIDやプリンタID、印刷ジョブIDを初回にコールしたRegisterAndAuth関数の設定値とは異なる値を設定する。これにより、リトライによるRegisterAndAuth関数の再コールが発生しても、セッション管理データベースに同じ検索キーで情報を保存することがなくなる。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(コンピュータプログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そしてそのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
143 プロキシAPP、144 画像変換APP、148 認証APP
Claims (7)
- ネットワークを介して提供装置(3、103)がユーザに提供するサービスに関する中継処理を行う中継サービス装置(143)と、前記中継サービス装置と通信し前記サービス(148)に関する関連処理を行う中間サービス装置(144)と、前記中間サービス装置からの認証要求を受け付けて認証処理を行う認証サービス装置とを備える情報処理システムであって、
前記中継サービス装置は、
前記中間サービス装置に認証要求と、処理実行要求とを送信する送信手段(S622、S612)を備え、
前記中間サービス装置は、
前記中継サービス装置からの前記認証要求を受け付けた第1の時刻を取得する取得手段(S1407)と、
前記中継サービス装置からの前記認証要求を前記認証サービス装置に送信し、認証に成功した前記認証サービス装置から第1のアクセストークンを取得する取得手段(S1402,S1403)と、
前記第1のアクセストークンを前記第1の時刻と関連づけて保存する記憶手段(S1404)と、
前記処理実行要求を受け付けた時に、前記記憶手段に保存されている第1のアクセストークンと前記処理実行要求に含まれる第2のアクセストークンを比較する比較手段(S1505)と、
前記比較手段が前記第1のアクセストークンと前記第2のアクセストークンが一致すると判定した場合、前記中間サービス装置から受け付けた処理を実行し(S1507)、前記第1のアクセストークンと前記第2のアクセストークンが一致しないと判定した場合、前記処理を実行しない(S1509)処理実行手段とを備え、
前記記憶手段はさらに、既に前記記憶手段によって既に第3のアクセストークンが保存されている場合(S1408)には、前記第1の時刻と、前記第3のアクセストークンに関連づけられて保存されている第2の時刻とを比較する比較手段(S1409)を備え、前記第1の時刻が前記第2の時刻よりも新しい場合にのみ前記第3のアクセストークンを前記第1のアクセストークンに更新して保存する(S1410)ことを特徴とする情報処理システム。 - 前記送信手段は、ユーザの認証情報と前記中継サービス装置の認証情報とを含めた認証要求を前記中間サービス装置に送信し、
前記取得手段は、前記認証サービスが前記ユーザの認証情報を用いて前記認証に成功しなかった場合は、前記中継サービス装置の認証情報を用いて前記ユーザの認証情報を前記認証サービス装置に登録する登録処理を実行することを特徴とする請求項1に記載の情報処理システム。 - 前記認証サービスは前記ユーザの認証情報を保持する保持手段を備え、
前記取得手段は、前記認証サービスが前記ユーザの認証情報に対応する認証情報を保持している場合に、前記認証サービス装置が発行する前記第1のアクセストークンを取得することを特徴とする請求項1又は請求項2に記載の情報処理システム。 - 前記中間サービスは、前記中継サービス装置から受け取ったPDFファイルをJPEGファイルに変換する画像変換サービスであることを特徴とする請求項1乃至請求項3の何れか一項に記載の情報処理システム。
- ネットワークを介して提供装置がユーザに提供するサービスに関する中継処理を行う中継サービス装置と通信し、認証サービス装置に対して認証要求を行う中間サービス装置であって、
前記中継サービス装置から認証要求と処理実行要求とを受け付ける受付手段と、
前記中継サービス装置からの前記認証要求を受け付けた第1の時刻を取得する取得手段と、
前記認証要求を前記認証サービス装置に送信し、認証に成功した前記認証サービス装置から第1のアクセストークンを取得する取得手段と、
前記第1のアクセストークンを前記第1の時刻と関連づけて保存する記憶手段と、
前記処理実行要求を受け付けた時に、前記記憶手段に保存されている第1のアクセストークンと前記処理実行要求に含まれる第2のアクセストークンを比較する比較手段と、
前記比較手段が前記第1のアクセストークンと前記第2のアクセストークンが一致すると判定した場合、前記中間サービス装置から受け付けた処理を実行し、前記第1のアクセストークンと前記第2のアクセストークンが一致しないと判定した場合、前記処理を実行しない処理実行手段とを備え、
前記記憶手段はさらに、前記記憶手段によって既に第3のアクセストークンが保存されている場合には、前記第1の時刻と、前記第3のアクセストークンに関連づけられて保存されている第2の時刻とを比較する比較手段を備え、前記第1の時刻が前記第2の時刻よりも新しい場合にのみ前記第3のアクセストークンを前記第1のアクセストークンに更新して保存することを特徴とする中間サービス装置。 - ネットワークを介して提供装置がユーザに提供するサービスに関する中継処理を行う中継サービス装置と、前記中継サービス装置と通信し前記サービスに関する関連処理を行う中間サービス装置と、前記中間サービス装置からの認証要求を受け付けて認証処理を行う認証サービス装置とを備える情報処理システムにおける認証方法であって、
前記中継サービス装置が、前記中間サービス装置に認証要求を行う要求工程と、
前記中間サービス装置が、前記中継サービス装置から前記認証要求を受け付けた第1の時刻を取得する取得工程と、
前記中継サービス装置から前記認証要求を受け付け、認証に成功した前記認証サービス装置から第1のアクセストークンを取得する取得工程と、
前記中間サービス装置が、前記第1のアクセストークンを前記第1の時刻と関連づけて保存する記憶工程と、
前記中間サービス装置が、前記処理実行要求を受け付けた時に、前記記憶手段に保存されている第1のアクセストークンと前記処理実行要求に含まれる第2のアクセストークンを比較する比較工程と、
前記中間サービス装置が、前記第1のアクセストークンと前記第2のアクセストークンが一致すると判定した場合、前記中間サービス装置から受け付けた処理を実行し、前記第1のアクセストークンと前記第2のアクセストークンが一致しないと判定した場合、前記処理を実行しない処理実行工程とを含み、
前記記憶工程はさらに、前記記憶工程によって既に第3のアクセストークンが保存されている場合には、前記第1の時刻と、前記第3のアクセストークンに関連づけられて保存されている第2の時刻とを比較する比較工程を備え、前記第1の時刻が前記第2の時刻よりも新しい場合にのみ前記第3のアクセストークンを前記第1のアクセストークンに更新して保存することを特徴とする認証方法。 - 請求項6に記載の認証方法をコンピュータに実行させることを特徴とするコンピュータプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014109628A JP2015225479A (ja) | 2014-05-28 | 2014-05-28 | 情報処理システム、情報処理装置、情報処理方法、及びコンピュータプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014109628A JP2015225479A (ja) | 2014-05-28 | 2014-05-28 | 情報処理システム、情報処理装置、情報処理方法、及びコンピュータプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015225479A true JP2015225479A (ja) | 2015-12-14 |
Family
ID=54842178
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014109628A Pending JP2015225479A (ja) | 2014-05-28 | 2014-05-28 | 情報処理システム、情報処理装置、情報処理方法、及びコンピュータプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2015225479A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107241725A (zh) * | 2017-07-14 | 2017-10-10 | 上海斐讯数据通信技术有限公司 | 无线接入点、无线终端连接无线接入点的认证方法 |
JP2018075826A (ja) * | 2016-08-31 | 2018-05-17 | 京セラドキュメントソリューションズ株式会社 | 画像処理及びエラー対処システム並びにリニアライズド及び非リニアライズド・ポータブル・ドキュメント・フォーマット(Pdf)ファイルの印刷方法 |
-
2014
- 2014-05-28 JP JP2014109628A patent/JP2015225479A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018075826A (ja) * | 2016-08-31 | 2018-05-17 | 京セラドキュメントソリューションズ株式会社 | 画像処理及びエラー対処システム並びにリニアライズド及び非リニアライズド・ポータブル・ドキュメント・フォーマット(Pdf)ファイルの印刷方法 |
CN107241725A (zh) * | 2017-07-14 | 2017-10-10 | 上海斐讯数据通信技术有限公司 | 无线接入点、无线终端连接无线接入点的认证方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5875351B2 (ja) | 情報処理システム、情報処理装置、認証方法、及びコンピュータプログラム | |
US10628099B2 (en) | Multifunctional image processing apparatus with user registration features | |
JP5843605B2 (ja) | 印刷制御装置、印刷制御方法、情報処理システム、情報処理装置、情報処理方法およびコンピュータプログラム | |
JP4690449B2 (ja) | 印刷制御システム、印刷制御サーバ、画像形成装置と、その処理方法及びプログラム | |
JP5887860B2 (ja) | 画像形成装置、画像形成システム、制御方法、およびプログラム。 | |
CN102547019B (zh) | 终端装置、服务器、画面控制方法和画面转换方法 | |
JP2010020712A (ja) | 情報処理装置、情報処理装置の制御方法、記憶媒体及びプログラム | |
JP4958118B2 (ja) | 画像形成装置、情報処理システムと、その処理方法およびプログラム | |
JP6873642B2 (ja) | 画像形成装置及びその画像通信方法、並びにプログラム | |
JP4615498B2 (ja) | 画像処理装置、画像処理装置の制御システム、画像処理装置の制御方法、プログラム、およびコンピュータ読み取り可能な記録媒体 | |
JP2018098741A (ja) | 画像処理システム、画像形成装置、アプリケーション実行方法、およびコンピュータプログラム | |
US10582073B2 (en) | Computer-readable medium and information processing device for preventing erroneous recognition of authentication result | |
JP6813784B2 (ja) | 画像処理装置とその処理方法及びプログラム | |
JP6282081B2 (ja) | 画像処理装置、画像処理装置の制御方法及びプログラム | |
JP5442418B2 (ja) | 複合機、複合機制御システム、プログラムおよび記録媒体 | |
JP4846830B2 (ja) | 画像形成装置とその情報処理方法及びプログラム | |
JP2008211747A (ja) | 画像処理装置、サーバ装置、タスク処理方法、記憶媒体、プログラム | |
JP2015225479A (ja) | 情報処理システム、情報処理装置、情報処理方法、及びコンピュータプログラム | |
JP6813783B2 (ja) | 画像処理装置とその処理方法及びプログラム | |
JP5943761B2 (ja) | 周辺装置、情報処理装置、通信制御方法、及びプログラム | |
JP5694495B2 (ja) | 複合機 | |
JP2007087399A (ja) | 画像形成装置の表示調整方法 | |
JP2019149132A (ja) | アプリケーションプログラム | |
JP2024007023A (ja) | 画像処理システム、中継サーバ、およびプログラム | |
JP2025005665A (ja) | 通信システムおよび情報処理装置 |