JP5875351B2 - 情報処理システム、情報処理装置、認証方法、及びコンピュータプログラム - Google Patents

情報処理システム、情報処理装置、認証方法、及びコンピュータプログラム Download PDF

Info

Publication number
JP5875351B2
JP5875351B2 JP2011263571A JP2011263571A JP5875351B2 JP 5875351 B2 JP5875351 B2 JP 5875351B2 JP 2011263571 A JP2011263571 A JP 2011263571A JP 2011263571 A JP2011263571 A JP 2011263571A JP 5875351 B2 JP5875351 B2 JP 5875351B2
Authority
JP
Japan
Prior art keywords
authentication
service device
app
access token
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.)
Active
Application number
JP2011263571A
Other languages
English (en)
Other versions
JP2013117748A5 (ja
JP2013117748A (ja
Inventor
安部 孝一
孝一 安部
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2011263571A priority Critical patent/JP5875351B2/ja
Priority to US13/661,152 priority patent/US8850551B2/en
Priority to CN2012105100488A priority patent/CN103218187A/zh
Publication of JP2013117748A publication Critical patent/JP2013117748A/ja
Publication of JP2013117748A5 publication Critical patent/JP2013117748A5/ja
Application granted granted Critical
Publication of JP5875351B2 publication Critical patent/JP5875351B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • G06F21/608Secure printing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Facsimiles In General (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)

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サービスに関するその他の技術として特許文献1がある。特許文献1に記載のプリントサービスでは、以下の方法を用いて任意の場所に設置されたプリンタでの印刷を実現している。それは、各地に配備された印刷環境共用サービス間で印刷予約やデータ、印刷可能なアプリケーション情報を交換し、ユーザに印刷可能な印刷場所を提示する方法によって実現している。特許文献1により、ユーザは、遠隔地にある任意の場所に設置されたプリンタで印刷が可能となる。
特開2005−100340号公報
上述したGCPを利用した周辺装置制御システムでは、複数のプリンタを管理し、GCPに対応させるためのクラウド印刷プロキシサービスを提供するWebサービス、例えばプロキシサービス用のWebアプリケーションが必要となる。
また、この周辺装置制御システムでは、例えば、プロキシサービスアプリケーションと画像変換サービスアプリケーションが連携して印刷ジョブを処理する。すなわち、画像変換サービスアプリケーションが、GCPから発行された印刷ジョブに含まれるPDFファイルをJPEGファイルに変換する。これにより、廉価版のプリンタや複合機で印刷することができる。
このような周辺装置制御システムに代表される情報処理システムにおいて、例えば、各Webサービスアプリケーションがインターネットを介さずにローカルエリアネットワーク内に存在する場合がある。そして、各Webアプリケーションサービス間の通信にHTTPSではなくHTTPのPOSTメソッドやGETメソッドが利用される場合がある。このような場合、各Webサービスアプリケーションが提供するWebサービスAPIを各Webサービスアプリケーション間で利用する際に、頻繁な通信が発生すると、ネットワーク上のトラフィックが増える。その為、各サービス間の通信で費やす時間がシステム全体の処理時間に大きな影響を及ぼすという問題がある。また、WebサービスAPIのコールを受ける特定のWebアプリケーションの負荷が過大になるという問題もある。
本発明は、各Webサービスアプリケーション装置間の通信頻度及びデータ通信量を抑えることにより、特定のWebサービスアプリケーションの負荷を減らすことを可能とする情報処理システムの提供を目的とする。
本発明の一実施形態の情報処理システムは、ネットワークを介して提供装置がユーザに提供するサービスに関する中継処理を行う中継サービス装置と、前記中継サービス装置と通信し前記サービスに関する関連処理を行う中間サービス装置と、前記中間サービス装置からの認証要求を受け付けて認証処理を行う認証サービス装置とを備える情報処理システムである。前記中継サービス装置は、前記中間サービス装置に認証要求と、処理実行要求とを送信する送信手段を備える。また、前記中間サービス装置は、前記中継サービス装置からの前記認証要求を前記認証サービス装置に送信し、認証に成功することで発行される第1のアクセストークンを前記認証サービス装置から取得する取得手段と、前記第1のアクセストークンを保存する記憶手段と、前記処理実行要求を受け付けた時に、前記記憶手段に保存されている第1のアクセストークンと前記処理実行要求と共に送信される第2のアクセストークンが一致する場合、前記中継サービス装置から受け付けた処理を実行し、前記第1のアクセストークンと前記第2のアクセストークンが一致しない場合、前記処理を実行しない処理実行手段とを備える。
本発明の情報処理システムによれば、各Webサービスアプリケーション装置間の通信頻度及びデータ通信量を抑えることにより、特定のWebサービスアプリケーションの負荷を減らすことが可能となる。
情報処理システムの構成の一例を示す図である。 PC及びMFPのハードウェアの構成の一例を示す図である。 PCのソフトウェアの構成の一例を示す図である。 Webブラウザの一例を示す図である。 印刷ダイアログの一例を示す図である。 情報処理システムの処理に係るフローチャートの一例である。 情報処理システムの処理に係るフローチャートの一例である。 情報処理システムの処理に係るフローチャートの一例である。 プロキシAPPの処理に係るフローチャートの一例である。 画像変換APPの処理に係るフローチャートの一例である。 画像変換APPの処理に係るフローチャートの一例である。 画像変換APPの処理に係るフローチャートの一例である。 コーリングシーケンスの一例である。 画像変換APPの処理に係るフローチャートの一例である。 画像変換APPの処理に係るフローチャートの一例である。
複数のプリンタを管理し、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.***.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)に示すハードウェアを含んで構成される。
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に読み出されて実行される。
ここで、クラウド印刷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を閉じる。
図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、ランダムコードに限られるものではない。
ランダムコードは、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)。
プロキシ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が自動的に生成する。
画像変換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」をセットする。
画像変換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が生成した任意の番号である。
画像変換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)。
プロキシ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)。
ここで、レスポンス内の応答メッセージに含まれている内容は、印刷ジョブアクセス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)。
次に、プロキシ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に対する不正なアクセスによる誤動作や不正な制御を防止することができる。なお、このような不正なアクセスを防止する構成は、この例に限られるものではなく、ハッシュ化等、より複雑な演算を組み合わせてもよい。
また、図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とをセッション管理データベースに保存する。
また、画像変換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から削除する。
続いて、画像変換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)が生成する任意の番号である。
続いて、画像変換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関数の処理を実行する。
図11(B)に示すように、画像変換APP144は、JobCompleted関数の処理を開始すると(S1121)、図15で後述するアクセストークンの確認処理を実行する(S1126)。このとき、次に示す情報をこの処理(サブルーチン関数)の引数として渡す。
・サービス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に処理を移す。
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関数の処理を開始する。
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を利用するためのアクセストークン
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は、この検索キーを使ってセッション管理データベースを検索する。
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のような性能の低い廉価版のプリンタや複合機のファームウェアの実装にも支障をきたすことなく、各処理に時間を要することもなくなるため、ユーザの操作性を向上することができる。
上述した実施形態では、情報処理装置としてパーソナルコンピュータを想定した。しかしながら、この例に限られるものではなく、例えばDVDプレーヤー、ゲーム、セットトップボックス、インターネット家電等、同様な使用方法が可能な任意の情報処理装置(端末)に対して適用することができる。
また、上述した実施形態では、周辺装置としてMFPを例示した。しかしながら、周辺装置として他に、複写機、ファクシミリ、スキャナ、デジタルカメラ、及びこれらの複合機能を備える装置等の何れかであってもよい。
また、上述した実施形態では、OSに例としてWindows(登録商標)と同等のOSを使用したが、このOSに限られるものではなく、任意のOSを使用することができる。また、上述した実施形態では、ネットワーク4の構成例としてEthernet(登録商標)を用いたが、この例に限られるものではなく、他の任意のネットワーク構成であってもよい。
また、上述した実施形態では、PC1、PC2、PC5、PC7とMFP3、MFP103との間のインタフェースとして、Ethernet(登録商標)を採用した。しかしながら、このインタフェースに限られることなく、例えば、無線LAN、IEEE1394、Bluetooth(登録商標)、USB等の任意のインタフェースを用いるようにしてもよい。また、各種のアプリケーション(ファームウェア)における機能、上述したフローチャートに係る処理の一部、又は全部を専用のハードウェアを用いて構成してもよい。
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(コンピュータプログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そしてそのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
143 プロキシAPP
144 画像変換APP
148 認証APP

Claims (13)

  1. ネットワークを介して提供装置がユーザに提供するサービスに関する中継処理を行う中継サービス装置と、前記中継サービス装置と通信し前記サービスに関する関連処理を行う中間サービス装置と、前記中間サービス装置からの認証要求を受け付けて認証処理を行う認証サービス装置とを備える情報処理システムであって、
    前記中継サービス装置は、
    前記中間サービス装置に認証要求と、処理実行要求とを送信する送信手段を備え、
    前記中間サービス装置は、
    前記中継サービス装置からの前記認証要求を前記認証サービス装置に送信し、認証に成功することで発行される第1のアクセストークンを前記認証サービス装置から取得する取得手段と
    前記第1のアクセストークンを保存する記憶手段と、
    前記処理実行要求を受け付けた時に、前記記憶手段に保存されている第1のアクセストークンと前記処理実行要求と共に送信される第2のアクセストークンが一致する場合、前記中継サービス装置から受け付けた処理を実行し、前記第1のアクセストークンと前記第2のアクセストークンが一致しない場合、前記処理を実行しない処理実行手段とを備えることを特徴とする情報処理システム。
  2. 前記送信手段は、ユーザの認証情報と前記中継サービス装置の認証情報とを含めた認証要求を前記中間サービス装置に送信し、
    前記取得手段は、前記認証サービス装置において前記ユーザの認証情報を用いて前記認証に成功しなかった場合は、前記中継サービス装置の認証情報を用いて前記ユーザの認証情報を前記認証サービス装置に登録する登録処理を実行することを特徴とする請求項1に記載の情報処理システム。
  3. 前記認証サービス装置は前記ユーザの認証情報を保持する保持手段を備え、
    前記取得手段は、前記認証サービス装置が前記ユーザの認証情報に対応する認証情報を保持している場合に、前記認証サービス装置が発行する前記第1のアクセストークンを取得することを特徴とする請求項1または請求項2に記載の情報処理システム。
  4. 前記中間サービスは、前記中継サービス装置から受け取ったPDFファイルをJPEGファイルに変換する画像変換サービスであることを特徴とする請求項1乃至請求項3のいずれか一項に記載の情報処理システム。
  5. ネットワークを介して提供装置がユーザに提供するサービスに関する中継処理を行う中継サービス装置と通信し、認証サービス装置に対して認証要求を行う中間サービス装置であって、
    前記中継サービス装置から認証要求と処理実行要求とを受け付ける受付手段と、
    前記認証要求を前記認証サービス装置に送信し、認証に成功することで発行される第1のアクセストークンを前記認証サービス装置から取得する取得手段と、
    前記第1のアクセストークンを保存する記憶手段と、
    前記処理実行要求を受け付けた時に、前記記憶手段に保存されている第1のアクセストークンと前記処理実行要求と共に送信される第2のアクセストークンが一致する場合、前記中継サービス装置から受け付けた処理を実行し、前記第1のアクセストークンと前記第2のアクセストークンが一致しない場合、前記処理を実行しない処理実行手段とを備えることを特徴とする中間サービス装置。
  6. 印刷ジョブに含まれるデータを印刷装置が印刷可能なデータに変換する変換手段を更に備えることを特徴とする請求項5に記載の中間サービス装置。
  7. 前記印刷可能なデータが不要となった場合、前記印刷可能なデータを削除する削除手段を更に備えることを特徴とする請求項6に記載の中間サービス装置。
  8. ネットワークを介して提供装置がユーザに提供するサービスに関する中継処理を行う中継サービス装置と、前記中継サービス装置と通信し前記サービスに関する関連処理を行う中間サービス装置と、前記中間サービス装置からの認証要求を受け付けて認証処理を行う認証サービス装置とを備える情報処理システムにおける認証方法であって、
    前記中継サービス装置が、前記中間サービス装置に認証要求を行う要求工程と、
    前記中間サービス装置が、前記中継サービス装置からの前記認証要求を前記認証サービス装置に送信し、認証に成功することで発行される第1のアクセストークンを前記認証サービス装置から取得する取得工程と、
    前記中間サービス装置が、前記第1のアクセストークンを記憶手段に保存する保存工程と、
    前記中間サービス装置が、前記中継サービス装置から処理実行要求を受け付けた時に、前記記憶手段に保存されている第1のアクセストークンと前記処理実行要求と共に送信される第2のアクセストークンが一致する場合、前記中継サービス装置から受け付けた処理を実行し、前記第1のアクセストークンと前記第2のアクセストークンが一致しない場合、前記処理を実行しない処理実行工程とを有することを特徴とする認証方法。
  9. 前記要求工程では、ユーザの認証情報と前記中継サービス装置の認証情報とを含めた認証要求を前記中間サービス装置に送信し、
    前記取得工程では、前記認証サービス装置において前記ユーザの認証情報を用いて前記認証に成功しなかった場合は、前記中継サービス装置の認証情報を用いて前記ユーザの認証情報を前記認証サービス装置に登録する登録処理を実行することを特徴とする請求項に記載の認証方法。
  10. 前記認証サービス装置は前記ユーザの認証情報を保持する保持手段を備えており、
    前記取得工程では、前記認証サービス装置が前記ユーザの認証情報に対応する認証情報を保持している場合に、前記認証サービス装置が発行する前記第1のアクセストークンを取得することを特徴とする請求項または請求項に記載の認証方法。
  11. ネットワークを介して提供装置がユーザに提供するサービスに関する中継処理を行う中継サービス装置と通信し、認証サービス装置に対して認証要求を行う中間サービス装置が備えるコンピュータに実行させるコンピュータプログラムであって、
    前記コンピュータに、
    前記中継サービス装置から認証要求と処理実行要求とを受け付ける受付処理と、
    前記認証要求を前記認証サービス装置に送信し、認証に成功することで発行される第1のアクセストークンを前記認証サービス装置から取得する取得処理と、
    前記第1のアクセストークンを記憶手段に保存する保存処理と、
    前記処理実行要求を受け付けた時に、前記記憶手段に保存されている第1のアクセストークンと前記処理実行要求と共に送信される第2のアクセストークンが一致する場合、前記中継サービス装置から受け付けた処理を実行し、前記第1のアクセストークンと前記第2のアクセストークンが一致しない場合、前記処理を実行しない制御処理とを実行させることを特徴とするコンピュータプログラム。
  12. 前記コンピュータに、
    印刷ジョブに含まれるデータを印刷装置が印刷可能なデータに変換する変換処理をさらに実行させることを特徴とする請求項11に記載のコンピュータプログラム。
  13. 前記コンピュータに、
    前記印刷可能なデータが不要となった場合、前記印刷可能なデータを削除する削除処理をさらに実行させることを特徴とする請求項12に記載のコンピュータプログラム。
JP2011263571A 2011-12-01 2011-12-01 情報処理システム、情報処理装置、認証方法、及びコンピュータプログラム Active JP5875351B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2011263571A JP5875351B2 (ja) 2011-12-01 2011-12-01 情報処理システム、情報処理装置、認証方法、及びコンピュータプログラム
US13/661,152 US8850551B2 (en) 2011-12-01 2012-10-26 Information processing system control method, intermediate service device, authentication method, and storage medium
CN2012105100488A CN103218187A (zh) 2011-12-01 2012-11-28 信息处理***控制方法、中间服务设备以及验证方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011263571A JP5875351B2 (ja) 2011-12-01 2011-12-01 情報処理システム、情報処理装置、認証方法、及びコンピュータプログラム

Publications (3)

Publication Number Publication Date
JP2013117748A JP2013117748A (ja) 2013-06-13
JP2013117748A5 JP2013117748A5 (ja) 2015-01-22
JP5875351B2 true JP5875351B2 (ja) 2016-03-02

Family

ID=48712303

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011263571A Active JP5875351B2 (ja) 2011-12-01 2011-12-01 情報処理システム、情報処理装置、認証方法、及びコンピュータプログラム

Country Status (3)

Country Link
US (1) US8850551B2 (ja)
JP (1) JP5875351B2 (ja)
CN (1) CN103218187A (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6098396B2 (ja) * 2013-06-28 2017-03-22 ブラザー工業株式会社 端末装置とプリンタ
JP6070466B2 (ja) 2013-07-31 2017-02-01 ブラザー工業株式会社 端末装置とプリンタ
JP6357989B2 (ja) * 2013-09-17 2018-07-18 株式会社リコー 情報処理システム、情報処理装置、及び情報処理方法
JP6354132B2 (ja) * 2013-10-09 2018-07-11 富士ゼロックス株式会社 中継装置、中継システム及びプログラム
JP6451053B2 (ja) 2014-01-22 2019-01-16 ブラザー工業株式会社 情報処理プログラム、情報処理装置、および情報処理装置の制御方法
US9160724B2 (en) * 2014-01-27 2015-10-13 Canon Kabushiki Kaisha Devices, systems, and methods for device provisioning
JP2015150706A (ja) * 2014-02-10 2015-08-24 キヤノン株式会社 画像形成装置、制御方法およびプログラム、並びに、画像形成システム
JP6551510B2 (ja) 2015-03-09 2019-07-31 富士通クライアントコンピューティング株式会社 情報処理装置、機器連携認証プログラム及び機器連携認証方法
US10162583B2 (en) * 2015-07-02 2018-12-25 Canon Information And Imaging Solutions, Inc. System and method for printing
JP6672910B2 (ja) * 2016-03-11 2020-03-25 株式会社リコー 遠隔コミュニケーションシステム、通信端末、拡張機能提供方法および拡張機能提供プログラム
US10484382B2 (en) 2016-08-31 2019-11-19 Oracle International Corporation Data management for a multi-tenant identity cloud service
US10846390B2 (en) 2016-09-14 2020-11-24 Oracle International Corporation Single sign-on functionality for a multi-tenant identity and data security management cloud service
US10594684B2 (en) * 2016-09-14 2020-03-17 Oracle International Corporation Generating derived credentials for a multi-tenant identity cloud service
WO2018053258A1 (en) 2016-09-16 2018-03-22 Oracle International Corporation Tenant and service management for a multi-tenant identity and data security management cloud service
US10445395B2 (en) 2016-09-16 2019-10-15 Oracle International Corporation Cookie based state propagation for a multi-tenant identity cloud service
US10904074B2 (en) 2016-09-17 2021-01-26 Oracle International Corporation Composite event handler for a multi-tenant identity cloud service
US10541992B2 (en) * 2016-12-30 2020-01-21 Google Llc Two-token based authenticated session management
US10462124B2 (en) 2016-12-30 2019-10-29 Google Llc Authenticated session management across multiple electronic devices using a virtual session manager
JP6949585B2 (ja) * 2017-06-30 2021-10-13 キヤノン株式会社 管理サーバ、サービス提供サーバ、システム、制御方法、および、プログラム
US10831789B2 (en) 2017-09-27 2020-11-10 Oracle International Corporation Reference attribute query processing for a multi-tenant cloud service
US10705823B2 (en) 2017-09-29 2020-07-07 Oracle International Corporation Application templates and upgrade framework for a multi-tenant identity cloud service
US10715564B2 (en) 2018-01-29 2020-07-14 Oracle International Corporation Dynamic client registration for an identity cloud service
US11792226B2 (en) 2019-02-25 2023-10-17 Oracle International Corporation Automatic api document generation from scim metadata
US11423111B2 (en) 2019-02-25 2022-08-23 Oracle International Corporation Client API for rest based endpoints for a multi-tenant identify cloud service
US11477294B2 (en) 2019-04-26 2022-10-18 Hewlett-Packard Development Company, L.P. Spatial-temporal limited user sessions
US11233784B2 (en) 2019-05-06 2022-01-25 Blackberry Limited Systems and methods for managing access to shared network resources
US11687378B2 (en) 2019-09-13 2023-06-27 Oracle International Corporation Multi-tenant identity cloud service with on-premise authentication integration and bridge high availability
US11870770B2 (en) 2019-09-13 2024-01-09 Oracle International Corporation Multi-tenant identity cloud service with on-premise authentication integration

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4681826B2 (ja) 2003-06-20 2011-05-11 株式会社リコー 印刷環境共用サービス提供方法、印刷環境共用サービス提供プログラム、記録媒体及び印刷環境共用サービス提供装置
JP4039632B2 (ja) * 2003-08-14 2008-01-30 インターナショナル・ビジネス・マシーンズ・コーポレーション 認証システム、サーバおよび認証方法並びにプログラム
US20070245414A1 (en) * 2006-04-14 2007-10-18 Microsoft Corporation Proxy Authentication and Indirect Certificate Chaining
TW200842691A (en) * 2007-04-27 2008-11-01 Lite On Technology Corp Universal printing method and universal printer driver module for printing non-image file documents, and electronic device having the driver module
JP5132378B2 (ja) * 2008-03-21 2013-01-30 日本電信電話株式会社 サービス管理方法及びサービス管理システム
JP4569682B2 (ja) * 2008-07-22 2010-10-27 ソニー株式会社 情報処理装置、端末装置、およびプログラム
JP2010225108A (ja) * 2009-03-25 2010-10-07 Hitachi Ltd 業務処理装置、認証システム、同システムにおける認証方法、およびプログラム
JP5257273B2 (ja) * 2009-06-30 2013-08-07 富士通株式会社 移動端末の認証方法およびその方法に用いられる装置
JP5024404B2 (ja) * 2010-03-03 2012-09-12 コニカミノルタビジネステクノロジーズ株式会社 画像処理システム、情報処理装置、プログラムおよびジョブ実行方法
US8676979B2 (en) * 2010-05-18 2014-03-18 Salesforce.Com, Inc. Methods and systems for efficient API integrated login in a multi-tenant database environment
US9021586B2 (en) * 2010-07-20 2015-04-28 At&T Intellectual Property I, L.P. Apparatus and methods for preventing cross-site request forgery
GB2482903A (en) * 2010-08-19 2012-02-22 Software Imaging Technology Ltd A print engine
CN101951385B (zh) * 2010-09-30 2013-01-09 西本新干线电子商务有限公司 电子交易平台服务切换方法
US8730504B2 (en) * 2010-10-20 2014-05-20 Marvell World Trade Ltd. Image acquisition using cloud services
US9110608B2 (en) * 2011-09-30 2015-08-18 Verizon Patent And Licensing Inc. Method and system for secure mobile printing

Also Published As

Publication number Publication date
US8850551B2 (en) 2014-09-30
CN103218187A (zh) 2013-07-24
JP2013117748A (ja) 2013-06-13
US20130179961A1 (en) 2013-07-11

Similar Documents

Publication Publication Date Title
JP5875351B2 (ja) 情報処理システム、情報処理装置、認証方法、及びコンピュータプログラム
JP5843605B2 (ja) 印刷制御装置、印刷制御方法、情報処理システム、情報処理装置、情報処理方法およびコンピュータプログラム
JP5346059B2 (ja) 多機能画像形成装置
JP4690449B2 (ja) 印刷制御システム、印刷制御サーバ、画像形成装置と、その処理方法及びプログラム
JP5231620B2 (ja) サーバ装置
JP5887860B2 (ja) 画像形成装置、画像形成システム、制御方法、およびプログラム。
JP4198719B2 (ja) 複合機、複合機の制御方法、複合機制御システム、プログラムおよび記録媒体
US20100011424A1 (en) Information processing apparatus, method for controlling information processing apparatus, recording medium, and program
JP4615498B2 (ja) 画像処理装置、画像処理装置の制御システム、画像処理装置の制御方法、プログラム、およびコンピュータ読み取り可能な記録媒体
JP6873642B2 (ja) 画像形成装置及びその画像通信方法、並びにプログラム
JP6029300B2 (ja) 画像処理装置、画像処理装置の制御方法、及びプログラム
JP4958118B2 (ja) 画像形成装置、情報処理システムと、その処理方法およびプログラム
JP2011087120A (ja) 画像形成装置、ファイル送信システム及び画像形成装置の処理方法とプログラム。
JP6813784B2 (ja) 画像処理装置とその処理方法及びプログラム
JP6282081B2 (ja) 画像処理装置、画像処理装置の制御方法及びプログラム
JP5442418B2 (ja) 複合機、複合機制御システム、プログラムおよび記録媒体
JP4846830B2 (ja) 画像形成装置とその情報処理方法及びプログラム
JP2008211747A (ja) 画像処理装置、サーバ装置、タスク処理方法、記憶媒体、プログラム
JP7022519B2 (ja) 携帯端末とその制御方法、及び記憶媒体
JP2015225479A (ja) 情報処理システム、情報処理装置、情報処理方法、及びコンピュータプログラム
JP5943761B2 (ja) 周辺装置、情報処理装置、通信制御方法、及びプログラム
JP5930945B2 (ja) 画像形成装置、携帯端末、情報処理システム、並びに、それらの方法及びプログラム
JP6813783B2 (ja) 画像処理装置とその処理方法及びプログラム
JP5694495B2 (ja) 複合機
JP2018149811A (ja) 画像形成装置、画像形成装置の制御方法及びプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141201

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141201

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150819

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150924

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151124

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20151222

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160119

R151 Written notification of patent or utility model registration

Ref document number: 5875351

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151