[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2015225479A - Information processing system, information processing apparatus, information processing method and computer program - Google Patents

Information processing system, information processing apparatus, information processing method and computer program Download PDF

Info

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
Application number
JP2014109628A
Other languages
Japanese (ja)
Inventor
宗主 山本
Muneyuki Yamamoto
宗主 山本
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 JP2014109628A priority Critical patent/JP2015225479A/en
Publication of JP2015225479A publication Critical patent/JP2015225479A/en
Pending legal-status Critical Current

Links

Landscapes

  • Facsimiles In General (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a method of correctly determining an access token even in a case where an authentication request is re-transmitted from upper service to intermediate service, and an information processing system.SOLUTION: Intermediate service comprises storage means, means for acquiring first time at which an authentication request is received, a function for acquiring a first access token from authentication service, and a function for storing the first access token in the storage means in association with the first time. At the time of storage, when a second access token for the same authentication request is already stored in the storage means, the intermediate service compares the first time and time stored in association with the second access token, and updates the access token and time information of the storage means only in a case where the first time is newer.

Description

本発明は、情報処理システム、情報処理装置、認証方法、及びコンピュータプログラムに関する。   The present invention relates to an information processing system, an information processing apparatus, an authentication method, and a computer program.

近年、USB、Ethernet(登録商標)、無線LAN等の様々なインタフェースを利用して、情報処理装置に周辺装置を接続した周辺装置制御システムが、自宅、オフィス等、様々な場面で有効に活用されている。周辺装置の例としては、プリンタ、複写機、ファクシミリ、スキャナ、デジタルカメラ、これらの複合機等が挙げられる。   In recent years, peripheral device control systems in which peripheral devices are connected to information processing devices using various interfaces such as USB, Ethernet (registered trademark), and wireless LAN have been effectively used in various situations such as homes and offices. ing. Examples of the peripheral device include a printer, a copier, a facsimile machine, a scanner, a digital camera, and a complex machine of these.

周辺装置のうちのプリンタや複合機に対応する周辺装置制御システムの例として、Google社からGoogle Cloud Print(登録商標であり、以下、GCPと略す。)と呼ばれるクラウド印刷サービスが提供されている。クラウド印刷サービスの利用によって、ユーザは、パーソナルコンピュータ(以下、PCと略す。)やモバイルデバイスから文書作成用のアプリケーション等を起動(利用)し、インターネットを介して文書をプリンタや複合機で印刷することが可能である。GCPを利用した印刷の手順は、次のようなものである。   As an example of a peripheral device control system corresponding to a printer or a multifunction peripheral among peripheral devices, a cloud printing service called Google Cloud Print (registered trademark, hereinafter abbreviated as GCP) is provided by Google. By using the cloud printing service, a user activates (uses) a document creation application from a personal computer (hereinafter abbreviated as a PC) or a mobile device, and prints the document with a printer or multifunction device via the Internet. It is possible. The printing procedure using GCP is as follows.

(1)ユーザが、PCに設けられた文書作成用のアプリケーションを利用してある文書を開く操作を行う。   (1) A user performs an operation of opening a document using a document creation application provided in the PC.

(2)ユーザが、その文書をあるプリンタで印刷するために、印刷ダイアログを開いてそのプリンタを選択し、印刷を実行する操作を行う。   (2) In order to print the document with a printer, the user opens a print dialog, selects the printer, and performs an operation to execute printing.

(3)文書作成用のアプリケーションが印刷画像をPDFファイルとして生成する。   (3) A document creation application generates a print image as a PDF file.

(4)GCPが印刷ダイアログで選択された印刷設定値と、前記PDFファイルから印刷ジョブを生成し、GCP内でそのプリンタに割り当られたプリントキューに印刷ジョブを格納し、プリンタに印刷ジョブ通知を送信する。   (4) GCP generates a print job from the print setting value selected in the print dialog and the PDF file, stores the print job in a print queue assigned to the printer in GCP, and notifies the printer of the print job Send.

(5)プリンタは、前記印刷ジョブ通知を受信すると、前記印刷ジョブを取得して、前記印刷設定値に従って、前記PDFファイルの印刷画像を印刷する。   (5) Upon receiving the print job notification, the printer acquires the print job and prints the print image of the PDF file according to the print setting value.

例えば、PDFファイルをレンダリングすることができるプリンタや複合機である場合、プリンタや複合機は、前記手順に従ってGCPを利用して印刷することができる。しかしながら、PDFファイルをレンダリングすることができない廉価版のプリンタや複合機である場合、廉価版のプリンタや複合機は、(5)においてPDFファイルの印刷画像を印刷することができない。   For example, in the case of a printer or multifunction device capable of rendering a PDF file, the printer or multifunction device can print using GCP according to the above procedure. However, in the case of a low-priced printer or multifunction peripheral that cannot render a PDF file, the low-priced printer or multifunction peripheral cannot print the print image of the PDF file in (5).

このような廉価版のプリンタや複合機でGCPを利用して印刷するために、Webサービス(画像変換サービス)用のアプリケーションが存在する。画像変換サービスアプリケーションは、PDFファイルを、例えばJPEGファイル等の廉価版のプリンタや複合機で印刷できる画像フォーマットに変換する。また、画像変換サービスアプリケーションを利用して、PDFファイルをJPEGファイルに変換し、廉価版のプリンタや複合機で印刷するような情報処理システムが提案されている。   There is an application for a Web service (image conversion service) in order to perform printing using GCP with such an inexpensive printer or multifunction machine. The image conversion service application converts the PDF file into an image format that can be printed by a low-priced printer or multifunction device such as a JPEG file. In addition, an information processing system has been proposed in which a PDF file is converted into a JPEG file using an image conversion service application and printed by a low-priced printer or multifunction device.

上述したような情報処理システムにおいて、各Webサービスアプリケーションが提供するWebサービスAPIを各Webサービスアプリケーション間で利用する際に、頻繁な通信が発生すると、ネットワーク上のトラフィックが増える。その為、各サービス間の通信で費やす時間がシステム全体の処理時間に大きな影響を及ぼすという問題がある。   In the information processing system as described above, when frequent communication occurs when the web service API provided by each web service application is used between the web service applications, traffic on the network increases. Therefore, there is a problem that the time spent for communication between services greatly affects the processing time of the entire system.

上述した問題を解決するための先行技術として特許文献1がある。特許文献1に記載のシステムでは、ジョブの実行時に上位のWebサービスアプリケーションからの認証要求と処理実行要求とを受け付ける中間サービスにおいて、認証要求を受け付けると認証要求を認証サービスに送信し、認証サービスから受信したアクセストークンをジョブと関連づけて保存する。次に、同ジョブに対する処理実行要求を受け付けた時に保存しておいたアクセストークンと比較し、一致する場合のみ処理実行要求を実行する。これにより中間サービスが認証サービスにアクセスする通信頻度および通信量を抑えることが出来る。   There exists patent document 1 as a prior art for solving the problem mentioned above. In the system described in Patent Document 1, in an intermediate service that accepts an authentication request and a process execution request from a higher-level Web service application at the time of job execution, when the authentication request is accepted, the authentication request is transmitted to the authentication service. Store the received access token in association with the job. Next, it compares with the access token stored when the processing execution request for the same job is received, and executes the processing execution request only when they match. Accordingly, it is possible to suppress the communication frequency and communication amount for the intermediate service to access the authentication service.

特開2013−117748号公報JP2013-117748A

しかしながら、特許文献1に記載の情報処理システムでは以下のような問題がある。一般的なWebサービスアプリケーションでは、WebサービスAPIをコールしてから一定時間応答がない場合、タイムアウトして同じWebサービスAPIを再度コールするリトライ処理を行う。前述した中間サービスが上位のWebサービスアプリケーションより認証要求を受け付ける処理においても、中間サービスが認証サービスからアクセストークンを受信する処理に時間がかかってしまう場合に、上位のWebサービスアプリケーションは中間サービスに対し認証要求のリトライ処理を行うことが想定される。この時中間サービスは同一ジョブに対して認証サービスから2つのアクセストークンを取得することになる。   However, the information processing system described in Patent Document 1 has the following problems. In a general Web service application, when there is no response for a certain period of time after calling the Web service API, a retry process is performed to time out and call the same Web service API again. Even in the above-described process in which the intermediate service receives an authentication request from a higher-level Web service application, if the intermediate service takes time to receive an access token from the authentication service, the higher-level Web service application It is assumed that the authentication request is retried. At this time, the intermediate service acquires two access tokens from the authentication service for the same job.

上位サービスはリトライ処理の認証要求の応答で受け取るアクセストークンを使用して処理実行要求を送信するため、中間サービスはリトライ処理にて取得したアクセストークンを対象ジョブと関連づけて保存する必要がある。しかしながら、初回に上位サービスより受け付けた認証要求に対して中間サービスが認証サービスからアクセストークンの取得を完了するのがリトライ処理にて中間サービスが認証サービスからアクセストークンの取得を完了するよりも後になる場合、中間サービスが対象ジョブと関連づけて保存するアクセストークンが、上位サービスが処理実行要求のリクエストで使用するアクセストークンと異なってしまい、処理実行要求にて正しく認証がなされないという問題がある。   Since the upper service uses the access token received in response to the authentication request for the retry process to transmit a process execution request, the intermediate service needs to store the access token acquired in the retry process in association with the target job. However, the intermediate service completes the acquisition of the access token from the authentication service for the authentication request received from the host service for the first time after the intermediate service completes the acquisition of the access token from the authentication service in the retry process. In this case, the access token stored by the intermediate service in association with the target job is different from the access token used by the upper service in the request for the process execution request, and there is a problem that authentication is not correctly performed in the process execution request.

そこで、本発明に係る情報処理システムは、前述の中間サービスが、認証サービスからアクセストークンの取得を開始する前の時刻情報を取得し、取得したアクセストークンをジョブに関連づけて保存する際に、前記時刻情報も関連づけて保存する。さらに、アクセストークンの保存の際に既に同一ジョブに関連づけられたアクセストークンが保存されている場合には、取得した前記時刻情報とアクセストークンに関連づけて保存された時刻情報を比較し、取得した時刻情報の方が新しい場合にのみ保存されたアクセストークンと時刻情報を更新することを特徴とする。   Therefore, in the information processing system according to the present invention, when the above-described intermediate service acquires time information before starting acquisition of an access token from the authentication service, and stores the acquired access token in association with a job, The time information is also stored in association. Further, when an access token associated with the same job is already stored when the access token is stored, the acquired time information is compared with the time information stored in association with the access token, and the acquired time The stored access token and time information are updated only when the information is newer.

また、本発明は、システム、記憶媒体などとしてもよい。   The present invention may be a system, a storage medium, and the like.

本発明によれば、次に示すような効果を得ることができる。すなわち、特許文献1の構成の情報処理システムにおいて、上位サービスが中間サービスへの認証要求をリトライし、複数のアクセストークンを認証サービスから取得した場合においても、正しく上位サービスが処理実行要求リクエストで使用するアクセストークンを中間サービスで保存することが出来る。   According to the present invention, the following effects can be obtained. That is, in the information processing system having the configuration of Patent Document 1, even when the upper service retries an authentication request to the intermediate service and acquires a plurality of access tokens from the authentication service, the upper service correctly uses the processing execution request. Access tokens can be stored by intermediate services.

情報処理システムの構成の一例を示す図である。It is a figure which shows an example of a structure of an information processing system. PC及びMFPのハードウェアの構成の一例を示す図である。2 is a diagram illustrating an example of a hardware configuration of a PC and an MFP. FIG. PCのソフトウェアの構成の一例を示す図である。It is a figure which shows an example of a structure of the software of PC. Webブラウザの一例を示す図である。It is a figure which shows an example of a web browser. 印刷ダイアログの一例を示す図である。It is a figure which shows an example of a print dialog. 情報処理システムの処理に係るフローチャートの一例である。It is an example of the flowchart which concerns on the process of information processing system. 情報処理システムの処理に係るフローチャートの一例である。It is an example of the flowchart which concerns on the process of information processing system. 情報処理システムの処理に係るフローチャートの一例である。It is an example of the flowchart which concerns on the process of information processing system. プロキシAPPの処理に係るフローチャートの一例である。It is an example of the flowchart which concerns on the process of proxy APP. 画像変換APPの処理に係るフローチャートの一例である。It is an example of the flowchart which concerns on the process of image conversion APP. 画像変換APPの処理に係るフローチャートの一例である。It is an example of the flowchart which concerns on the process of image conversion APP. 画像変換APPの処理に係るフローチャートの一例である。It is an example of the flowchart which concerns on the process of image conversion APP. コーリングシーケンスの一例である。It is an example of a calling sequence. 画像変換APPの処理に係るフローチャートの一例である。It is an example of the flowchart which concerns on the process of image conversion APP. 画像変換APPの処理に係るフローチャートの一例である。It is an example of the flowchart which concerns on the process of image conversion APP.

複数のプリンタを管理し、GCPを利用してユーザが所望する印刷サービスを提供する情報処理システムが考えられる。この情報処理システムは、GCPが提供するサービスに関する中継処理を行うプロキシアプリケーションを備えることが必要である。また、この情報処理システムにおいては、プロキシサービスアプリケーションと画像変換サービスアプリケーションとが連携して印刷ジョブを処理する。GCPから発行された印刷ジョブに含まれるPDFファイルを画像変換サービスアプリケーションがJPEGファイルに変換する。これにより、廉価版のプリンタや複合機で印刷することができる。   An information processing system that manages a plurality of printers and provides a print service desired by a user using GCP is conceivable. This information processing system needs to include a proxy application that performs relay processing related to a service provided by GCP. In this information processing system, the proxy service application and the image conversion service application cooperate to process a print job. An image conversion service application converts a PDF file included in a print job issued from GCP into a JPEG file. As a result, it is possible to print with a low-priced printer or multifunction peripheral.

このような情報処理システムにおいて、例えば、プロキシサービスアプリケーションが画像変換サービスアプリケーションを利用する際に、認証サービスアプリケーションを利用した認証システムを用いてセキュリティを確保することが考えられる。例えば、プロキシサービスアプリケーションは、自分が管理する各プリンタに対して、ユーザIDとそのユーザIDを認証するためのパスワードを割り当てる。そして、認証サービスアプリケーションが前記ユーザIDとパスワードをもとにユーザ認証を行い、そのユーザID(プリンタ)に対して画像変換サービスアプリケーションを利用するためのアクセストークンを発行する。   In such an information processing system, for example, when a proxy service application uses an image conversion service application, it is conceivable to secure security using an authentication system using an authentication service application. For example, the proxy service application assigns a user ID and a password for authenticating the user ID to each printer managed by the proxy service application. Then, the authentication service application performs user authentication based on the user ID and password, and issues an access token for using the image conversion service application to the user ID (printer).

プロキシサービスアプリケーションは、そのアクセストークンを使って画像変換サービスアプリケーションにアクセスする。また、画像変換サービスアプリケーションは、前記ユーザIDが割り当てられているプリンタの印刷ジョブに含まれるPDFファイルをJPEGファイルに変換し、前記プリンタはそのJPEGファイルを印刷することができる。   The proxy service application uses the access token to access the image conversion service application. Further, the image conversion service application converts a PDF file included in a print job of a printer to which the user ID is assigned into a JPEG file, and the printer can print the JPEG file.

一般的に、画像変換サービスアプリケーションは、プロキシサービスアプリケーションに対して複数のWebサービスAPIをエクスポートしている。そして、プロキシサービスアプリケーションは、画像変換サービスアプリケーションがエクスポートしているそれぞれのWebサービスAPIをシーケンシャルにコールする。画像変換サービスアプリケーションは、プロキシサービスアプリケーションが順にコールする各WebサービスAPIにおける処理を実行する。画像変換サービスアプリケーションは、その処理において印刷ジョブに含まれるPDFファイルをJPEGファイルに変換し、プリンタでの印刷が完了した後、不要となったJPEGファイル(印刷画像)を削除する。   Generally, the image conversion service application exports a plurality of Web service APIs to the proxy service application. Then, the proxy service application sequentially calls each Web service API exported by the image conversion service application. The image conversion service application executes processing in each Web service API that the proxy service application calls in order. The image conversion service application converts the PDF file included in the print job into a JPEG file in the processing, and deletes the unnecessary JPEG file (printed image) after the printing on the printer is completed.

プロキシサービスアプリケーションは、画像変換サービスアプリケーションがエクスポートしている各WebサービスAPIをシーケンシャルにコールする際に、その都度、前記アクセストークンの妥当性や有効期限を問合せる。すなわち、プロキシサービスアプリケーションは、認証サービスアプリケーションがエクスポートしているWebサービスAPIの内の、アクセストークン妥当性確認APIやアクセストークン有効期限確認APIをコールする。   Each time the proxy service application calls each Web service API exported by the image conversion service application sequentially, it inquires about the validity and expiration date of the access token. That is, the proxy service application calls the access token validity confirmation API and the access token expiration date confirmation API among the Web service APIs exported by the authentication service application.

上述の各サービス間のインタフェース、及び各サービスと廉価版のプリンタや複合機間のインタフェースは、WebサービスAPIで規定され、通常はSSL通信で暗号化されたHTTPSのPOSTメソッドやGETメソッドが利用されている。このように暗号化された通信により、セキュリティが確保されている。   The interface between the services described above, and the interface between each service and a low-priced printer or multifunction peripheral is defined by the Web service API, and usually uses the HTTPS POST method and GET method encrypted by SSL communication. ing. Security is ensured by such encrypted communication.

この場合、各WebサービスAPIを利用する時に、情報の送信時の暗号化や情報の受信時の復号化に非常に時間を要する。また、通信処理の負荷が大きくなるので、クラウドを利用したときにシステムの構築やアプリケーションの実装に支障をきたすという問題がある。   In this case, when each Web service API is used, much time is required for encryption at the time of transmitting information and decryption at the time of receiving information. In addition, since the load of communication processing increases, there is a problem in that when the cloud is used, system construction and application implementation are hindered.

各Webサービスアプリケーション、廉価版のプリンタや複合機は、各処理の度にその都度認証サービスアプリケーションにアクセスし、アクセストークンの妥当性や有効期限を問合せる。しかしながら、アクセストークン妥当性確認APIやアクセストークン有効期限確認APIをコールして、アクセストークンの妥当性や有効期限を問合せると、認証サービスアプリケーションの負荷が増大する。その結果、パフォーマンスの低下や認証サービスアプリケーションの許容量がオーバーする。これらを回避する為に、認証サービスアプリケーションのシステムの規模を増大する必要がある。その場合、認証サービスアプリケーションのシステム構成が複雑になり、運用コストが増大する等、様々な課題がある。   Each Web service application, low-priced printer, or multifunction device accesses the authentication service application for each process and inquires about the validity and expiration date of the access token. However, if the access token validity confirmation API or the access token validity period confirmation API is called to inquire about the validity or validity period of the access token, the load of the authentication service application increases. As a result, performance degradation and authentication service application tolerances are exceeded. In order to avoid these problems, it is necessary to increase the scale of the authentication service application system. In this case, there are various problems such as a complicated system configuration of the authentication service application and an increase in operation cost.

さらに、各Webサービスアプリケーションが、アクセストークンの妥当性や有効期限を認証サービスアプリケーションに問合せて検証する情報処理システムが考えられる。しかしながら、この情報処理システムでは、上位のWebサービスアプリケーションが誤動作しているよう状況下では、アクセストークンが妥当であると判定される可能性がある。アクセストークンが妥当であると判定されると、該当しない処理やジョブ(例えば、他人の印刷ジョブ)等が誤って処理されてしまう、という問題がある。また、このようなケースでは、対象となるWebサービスアプリケーションに対して、例えば、上位のサービスになりすましたなりすましプログラムからのアクセスのような、攻撃を受ける可能性もある。そのため、そのWebサービスアプリケーションが誤動作したり、情報が漏えいするという課題もある。   Further, an information processing system in which each Web service application inquires and verifies the validity and expiration date of the access token from the authentication service application is conceivable. However, in this information processing system, there is a possibility that the access token is determined to be valid under a situation where the upper Web service application is malfunctioning. If it is determined that the access token is valid, there is a problem that an unsuitable process or job (for example, another person's print job) is erroneously processed. In such a case, the target Web service application may be attacked, for example, by an access from a spoofing program pretending to be a higher-level service. Therefore, there is a problem that the Web service application malfunctions or information is leaked.

以下説明する本実施形態の情報処理システムによれば、上述した課題を解決することができる。すなわち、本実施形態の情報処理システムによれば、各Webサービスアプリケーション装置間の通信頻度及びデータ通信量を抑えるとともに、特定のWebサービスアプリケーションの負荷を減らすことができる。また、本実施形態の情報処理システムによれば、なりすましアクセスのような攻撃がある場合において、誤動作したり情報が漏洩したりすることを防止することができる。   According to the information processing system of this embodiment described below, the above-described problems can be solved. That is, according to the information processing system of the present embodiment, it is possible to suppress the communication frequency and the data communication amount between each Web service application device and reduce the load of a specific Web service application. Further, according to the information processing system of the present embodiment, it is possible to prevent malfunctions and information leaks when there is an attack such as spoofing access.

以下、本実施形態について図面に基づいて説明する。なお、本実施形態は、本発明を限定するものではなく、また、実施形態で説明されている全ての構成が本発明の課題を解決するための手段に必須であるとは限らない。   Hereinafter, the present embodiment will be described with reference to the drawings. In addition, this embodiment does not limit this invention, and all the structures demonstrated by embodiment are not necessarily essential to the means for solving the subject of this invention.

以下において、WebサービスAPIにSSL通信で暗号化されたHTTPSのPOSTメソッド(通信方式の一例)を利用している場合があるが、このPOSTメソッドに関しては一般に公開されている情報であるので、ここではその詳細な説明を省略する。また、以下において、WebサービスAPIにHTTPのGETメソッド(通信方式の一例)を利用している場合があるが、このGETメソッドに関しては一般に公開されている情報であるので、ここではその詳細な説明を省略する。また、以下において、WebサービスAPIにSSL通信で暗号化されたHTTPSのGETメソッド(通信方式の一例)を利用している場合があるが、このGETメソッドに関しては一般に公開されている情報であるので、ここではその詳細な説明を省略する。   In the following, there is a case where an HTTPS POST method (an example of a communication method) encrypted by SSL communication is used for the Web service API. However, since this POST method is publicly available information, here Then, the detailed description is abbreviate | omitted. In the following, an HTTP GET method (an example of a communication method) may be used for the Web service API. Since this GET method is publicly available information, a detailed description thereof will be given here. Is omitted. In the following, an HTTPS GET method (an example of a communication method) encrypted by SSL communication may be used for the Web service API. However, since this GET method is publicly available information. Detailed description thereof is omitted here.

また、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)に示すハードウェアを含んで構成される。
HTTP is an abbreviation for Hyper Text Transfer Protocol and is a well-known unencrypted communication protocol, and therefore, detailed description thereof is omitted here. HTTPS is an abbreviation for Hyper Text Transfer Protocol over Secure Socket Layer, and is a well-known encrypted communication protocol, and therefore detailed description thereof is omitted here. SSL is an abbreviation for Secure Socket Layer, and is a known method for encrypting and transmitting / receiving data on the Internet, and therefore detailed description thereof is omitted here. In addition, since the description regarding Google Cloud Print (GCP) is disclosed on the following site, the detailed description thereof is omitted here. Internet URL: http: // code. Google. com / apis / cloudprint / docs / overview. html
FIG. 1 shows a configuration example of an information processing system according to the present embodiment. The information processing system shown in FIG. 1 includes PC1, PC2, PC5, PC147, PC7, MFP3, MFP103, and a router (Router) 13. Each of PC1, PC2, PC5, PC147, and PC7 is an example of an information processing apparatus (computer), and is, for example, a general personal computer. Each of PC1, PC2, PC5, PC147, and PC7 includes the hardware shown in FIG.

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にも接続されている。   An OS equivalent to Chrome (registered trademark) manufactured by Google Inc. is installed in the PC 1 as an operating system (hereinafter abbreviated as OS). Each of the PC2, PC147, and PC5 is installed with a Windows (registered trademark) Server OS manufactured by Microsoft Corporation, and the PC 7 is installed with an OS equivalent to Linux (registered trademark). PC 1, PC 2, PC 5, PC 147, and PC 7 are connected to networks 4, 8, 10, and 6 that are configured by interfaces (I / F) such as Ethernet (registered trademark), and are also connected to the Internet 12. .

マルチファンクションプリンタ(以下、MFPと略す。)3、103は、カラーインクジェットプリンタ、カラーファクシミリ、カラースキャナ、フラッシュメモリ用の外部ストレージ等を含んで構成され、周辺装置(コンピュータ)の一例である。MFP3、103は、ABC社製のKmmnというモデル名のMFPである。なお、周辺装置としては、プリンタ、複写機、ファクシミリ、スキャナ、デジタルカメラ、及びこれらの複合機能を備える装置等であってもよい。   Multifunction printers (hereinafter abbreviated as MFPs) 3 and 103 are configured to include a color inkjet printer, a color facsimile, a color scanner, an external storage for flash memory, and the like, and are examples of peripheral devices (computers). MFPs 3 and 103 are MFPs having a model name of Kmmn manufactured by ABC. The peripheral device may be a printer, a copier, a facsimile machine, a scanner, a digital camera, a device having a composite function thereof, or the like.

MFP3、及びMFP103の各々は、図2(B)に示すハードウェアを含んで構成される。また、MFP3は、Ethernet(登録商標)で構成されるネットワーク11に接続され、インターネット12にも接続されている。MFP103は、Ethernet(登録商標)で構成されるネットワーク104に接続され、インターネット12にも接続されている。   Each of the MFP 3 and the MFP 103 is configured to include hardware shown in FIG. The MFP 3 is connected to a network 11 configured by Ethernet (registered trademark) and is also connected to the Internet 12. The MFP 103 is connected to a network 104 composed of Ethernet (registered trademark), and is also connected to the Internet 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にインストールされている。   The router (Router) 13 is a broadband router (Wi-Fi BB Router) equipped with a Wi-Fi (registered trademark) wireless LAN, and is connected to the Internet 12. The mobile device (Mobile Device) 14 is a mobile phone, a mobile information terminal, or the like. The mobile device 14 is connected to the router 13 and is also connected to the Internet 12 via the router 13. The PC 1, PC 2, PC 5, PC 147, PC 7, mobile device 14, MFP 3, and MFP 103 are capable of bidirectional communication with each other via the Internet 12 (connected to be communicable). A Web browser (Web Browser) 9 is installed on the PC 1, and the Web browser 15 is installed on the mobile device 14.

アプリケーション(Application)145は、Webサービスを利用した文書作成用のアプリケーションであり、以下では、文書作成APP145と称する。アプリケーション(Application)146は、Webサービスを利用したクラウド印刷サービスを提供するアプリケーションであり、以下では、クラウド印刷APP146と称する。クラウド印刷APP146は、例えば、Google社が提供するGCPと同等の機能を有する。このクラウド印刷サービスを利用することで、PC1内のWebブラウザ9やモバイルデバイス内のWebブラウザ15から、文書作成APP145を実行し、ある文書を開き、その文書をMFP3やMFP103で印刷することができるようになる。   The application (Application) 145 is an application for creating a document using a Web service, and is hereinafter referred to as a document creation APP 145. The application (Application) 146 is an application that provides a cloud print service using a Web service, and is hereinafter referred to as a cloud print APP 146. The cloud printing APP 146 has a function equivalent to, for example, GCP provided by Google. By using this cloud printing service, the document creation APP 145 can be executed from the Web browser 9 in the PC 1 or the Web browser 15 in the mobile device, a certain document can be opened, and the document can be printed by the MFP 3 or the MFP 103. It becomes like this.

例えば、ユーザが、開いている文書を印刷する場合、図4に示す印刷メニュー401を選択すると、クラウド印刷APP146により図5に示す印刷ダイアログ142が表示される。ユーザが印刷ダイアログ142でプリンタを選択し、印刷ボタン534を押して印刷の実行を指示すると、文書作成APP145は、印刷画像をPDFファイルとして生成する。そして、クラウド印刷APP146は、この印刷画像(PDFファイル)と印刷ダイアログ142で選択されている印刷設定値とから印刷ジョブを生成し、クラウド印刷サービス内の選択されたプリンタ用のプリントキューにその印刷ジョブを格納する。また、クラウド印刷APP146は、そのプリンタ(後述する本実施形態の例ではプロキシAPP143)に対して印刷ジョブ通知を送信する。   For example, when the user prints an open document, when the print menu 401 shown in FIG. 4 is selected, the cloud printing APP 146 displays a print dialog 142 shown in FIG. When the user selects a printer in the print dialog 142 and presses the print button 534 to instruct execution of printing, the document creation APP 145 generates a print image as a PDF file. The cloud print APP 146 generates a print job from the print image (PDF file) and the print setting value selected in the print dialog 142, and prints the print job in the print queue for the selected printer in the cloud print service. Store the job. Further, the cloud print APP 146 transmits a print job notification to the printer (in the example of the present embodiment described later, proxy APP 143).

プリンタやMFPがPDFファイルをレンダリングする機能を備えている場合、プリンタやMFPは、プリントキューに格納されている印刷ジョブを印刷することができる。しかしながら、多くの廉価版のインクジェットプリンタやMFPにおいては、プリンタやMFPがPDFファイルをレンダリングする機能を備えていない。故に、このようなプリンタ等でプリントキューに格納されている印刷ジョブを印刷する場合、PDFファイルの印刷画像を、JPEGファイル等、廉価版のプリンタ等でレンダリングできるタイプの画像フォーマットに変換すること(前処理の一例)が必要となる。   When the printer or MFP has a function of rendering a PDF file, the printer or MFP can print a print job stored in the print queue. However, many inexpensive inkjet printers and MFPs do not have a function for rendering PDF files by the printer or MFP. Therefore, when printing a print job stored in the print queue with such a printer, the print image of the PDF file is converted into an image format of a type that can be rendered with a low-priced printer such as a JPEG file ( An example of pre-processing) is required.

アプリケーション(Application)143は、MFP3及びMFP103をクラウド印刷APP146が提供するクラウド印刷サービスに対応させるためのクラウド印刷プロキシサービスを提供するアプリケーションである。アプリケーション(Application)143は、MFP3及びMFP103とクラウド印刷APP146との中継処理を行う中継サービス装置であり、以下では、プロキシAPP143と称する。PC2にインストールされているプロキシAPP143は、5000台のプリンタやMFPを一度に管理し、それぞれのプリンタやMFPをクラウド印刷APP146が提供するクラウド印刷サービスに対応させることができる。   The application (Application) 143 is an application that provides a cloud print proxy service for causing the MFP 3 and the MFP 103 to correspond to the cloud print service provided by the cloud print APP 146. The application 143 is a relay service device that performs relay processing between the MFP 3 and the MFP 103 and the cloud print APP 146, and is hereinafter referred to as a proxy APP 143. The proxy APP 143 installed on the PC 2 can manage 5000 printers and MFPs at a time, and can make each printer and MFP correspond to a cloud printing service provided by the cloud printing APP 146.

アプリケーション(Application)144は、PDFファイルをJPEGファイルに変換する画像変換サービスを提供するアプリケーションである。アプリケーション(Application)144はプロキシAPP143と通信し、クラウド印刷サービスに関する関連処理を行う中間サービス装置として機能し、以下では、画像変換APP144と称する。   The application 144 is an application that provides an image conversion service for converting a PDF file into a JPEG file. An application 144 communicates with the proxy APP 143 and functions as an intermediate service device that performs related processing related to the cloud print service. Hereinafter, the application 144 is referred to as an image conversion APP 144.

アプリケーション(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に読み出されて実行される。
The application 148 is an application that provides an authentication service that issues an access token, and is hereinafter referred to as an authentication APP 148. The authentication APP 148 issues an access token for performing authentication when the proxy APP 143 uses the image conversion APP 144. If the cloud printing service 146 is a GCP, for example, the vendor is different. Therefore, the authentication processing service provided by the authentication APP 148 is different from the authentication system and the authentication service used by the cloud printing APP 146. As will be described later, the cloud printing APP 146 issues an access token for performing authentication when the image conversion APP 144 uses the cloud printing APP 146. The access token issued by the cloud printing APP 146 may be issued by a cloud printing service provided by the cloud printing APP 146. The authentication APP 148 exports the following Web service API.
-Login function-Logout function-User registration function-User authentication function-Access token generation function-Access token validity check function-Access token expiration date check function For these functions, the HTTPS POST method encrypted by SSL communication Is being used. A program related to these processes is incorporated in the PC 147, stored in the HDD 202 shown in FIG.

ここで、クラウド印刷APP146が提供するクラウド印刷サービスを利用するために、ユーザアカウントとパスワードとを用いたログインが必要となる。そして、クラウド印刷APP146は、印刷に利用可能なプリンタやMFPをクラウド印刷サービスに登録する際に、まず、そのユーザアカウントとパスワードとを使って、クラウド印刷サービスを利用する際のアクセストークンを取得する。そして、クラウド印刷APP146は、取得したアクセストークンを利用し、そのユーザアカウントにプリンタやMFPを関連付けて登録する。   Here, in order to use the cloud printing service provided by the cloud printing APP 146, login using a user account and a password is required. Then, when registering a printer or MFP that can be used for printing in the cloud printing service, the cloud printing APP 146 first acquires an access token for using the cloud printing service by using the user account and password. . Then, the cloud printing APP 146 uses the acquired access token to register the printer or MFP in association with the user account.

また、クラウド印刷APP146は、プリンタやMFPの登録の際に、各プリンタやMFPに対して一意の値で表わされるプリンタIDを発行して割り当て、プリンタIDを登録の対象のプリンタ等に通知する。なお、プリンタ等の登録に関する処理に関しては、その詳細な説明を省略する。   In addition, when registering a printer or MFP, the cloud printing APP 146 issues and assigns a printer ID represented by a unique value to each printer or MFP, and notifies the printer or the like to be registered of the printer ID. A detailed description of the processing related to the registration of the printer or the like is omitted.

図2は、PC及びMFPのハードウェアの構成の一例を示す図である。PC1、PC2、PC5、PC147、及びPC7の各々は、図2(A)に示すハードウェアを含んで構成されている。図2(A)では、PC2を例に挙げて説明する。PC2は、ランダムアクセスメモリ部(RAM201)、ハードディスクドライブ部(HDD202)、キーボード部(KBD203)、CPU204、表示用ディスプレイ(LCD205)、ネットワークボード(NB207)を有する。また、PC2は、上述の構成要素を互いに接続するバス206を有する。   FIG. 2 is a diagram illustrating an example of a hardware configuration of the PC and the MFP. Each of PC1, PC2, PC5, PC147, and PC7 is configured to include the hardware shown in FIG. In FIG. 2A, description will be given by taking PC2 as an example. The PC 2 includes a random access memory unit (RAM 201), a hard disk drive unit (HDD 202), a keyboard unit (KBD 203), a CPU 204, a display for display (LCD 205), and a network board (NB 207). The PC 2 includes a bus 206 that connects the above-described components to each other.

なお、HDD202は、記憶部の一例である。記憶部は、可搬性CD−ROMまたは内部に据付のROM等であってもよい。KBD203は、入力部の一例である。CPU204は、制御部の一例である。LCD205は、表示部の一例である。NB207は、通信制御部の一例である。   The HDD 202 is an example of a storage unit. The storage unit may be a portable CD-ROM or a ROM installed therein. The KBD 203 is an example of an input unit. The CPU 204 is an example of a control unit. The LCD 205 is an example of a display unit. The NB 207 is an example of a communication control unit.

プロキシAPP143、図3に示す各モジュール(ソフトウェア)等のプログラムは、HDD202に記憶され、CPU204により必要に応じてRAM201に読み出されて実行される。これにより、プロキシAPP143の機能、図3に示す各モジュール(ソフトウェア)の機能などが実現される。また、各種のデータベース(DB)は、HDD202に設けられ、データベースの情報は、CPU204により必要に応じてRAM201に読み出される。   Programs such as the proxy APP 143 and each module (software) shown in FIG. 3 are stored in the HDD 202, and are read into the RAM 201 and executed by the CPU 204 as necessary. Thereby, the function of the proxy APP 143, the function of each module (software) shown in FIG. 3, and the like are realized. Various databases (DB) are provided in the HDD 202, and database information is read by the CPU 204 to the RAM 201 as necessary.

MFP3及びMFP103の各々は、図2(B)に示すハードウェアを含んで構成されている。図2(B)では、MFP3を例に挙げて説明する。CPU25は、マイクロプロセッサ等から構成される。CPU25は、MFP3の中央処理装置として、ROM16に記憶されているプログラムに従って、RAM17、通信部18、記録部19、操作部20、表示部21、読取り部22、ファクシミリ制御部23、及び外部ストレージ制御部24を制御する。   Each of the MFP 3 and the MFP 103 is configured to include hardware shown in FIG. In FIG. 2B, the MFP 3 will be described as an example. The CPU 25 is composed of a microprocessor or the like. As a central processing unit of the MFP 3, the CPU 25 is a RAM 17, a communication unit 18, a recording unit 19, an operation unit 20, a display unit 21, a reading unit 22, a facsimile control unit 23, and an external storage control according to a program stored in the ROM 16. The unit 24 is controlled.

ROM16には、プリンタドライバ(図示は省略)による制御に従ってMFP3が行う記録(印刷)処理、印刷動作の状態をPCへ通知する処理などを実行するプログラムが記憶されている。また、ROM16には、FAXドライバ(図示は省略)による制御に従ってMFP3がファクシミリの送信処理または受信処理、ファクシミリ動作(送信または受信)の状態をPCへ通知する処理を実行するプログラムが記憶されている。更に、ROM16には、WIAドライバ(不図示)やTWAINドライバ(不図示)による制御に従ってMFP3が行う画像の読取り処理、読取り動作の状態をPCへ通知する処理を実行するプログラムが記憶されている。   The ROM 16 stores a program for executing a recording (printing) process performed by the MFP 3 in accordance with control by a printer driver (not shown), a process for notifying the PC of the status of the printing operation, and the like. The ROM 16 stores a program for executing processing for the MFP 3 to perform facsimile transmission processing or reception processing and processing for notifying the PC of the status of facsimile operation (transmission or reception) according to control by a FAX driver (not shown). . Further, the ROM 16 stores a program for executing an image reading process performed by the MFP 3 according to control by a WIA driver (not shown) or a TWAIN driver (not shown) and a process for notifying the PC of the state of the reading operation.

RAM17には、印字データが一時的に記憶される。印字データは、主にPCから送られ、印字データをもとに記録部19によって印刷される。また、RAM17には、読取り部22で読取られた画像データ、PCから送られてきたファクシミリの送信データ、ファクシミリ制御部23で受信されたファクシミリの受信データ等も一時的に記憶される。   The RAM 17 temporarily stores print data. The print data is mainly sent from the PC and printed by the recording unit 19 based on the print data. The RAM 17 also temporarily stores image data read by the reading unit 22, facsimile transmission data sent from the PC, facsimile reception data received by the facsimile control unit 23, and the like.

通信部18には、ネットワーク4用の接続ポート、アナログ電話回線用の接続ポート等が含まれており、Ethernet(登録商標)、ファクシミリのアナログ通信を制御する。記録部19は、インクジェット方式の記録ヘッド、各カラーインク、キャリッジ、記録紙搬送機構等から構成される記録ユニットと、印字データをもとに記録ヘッドにて印字用パルスを発生させるためのASIC等から構成される電気回路とを含んで構成される。   The communication unit 18 includes a connection port for the network 4, an analog telephone line connection port, and the like, and controls Ethernet (registered trademark) and facsimile analog communication. The recording unit 19 includes an inkjet recording head, a recording unit including each color ink, a carriage, a recording paper conveyance mechanism, and the like, an ASIC for generating a printing pulse in the recording head based on the printing data, and the like. And an electric circuit composed of

例えば、印刷可能なアプリケーション上での印刷操作、又はファクシミリの送信操作によって、アプリケーションで開かれているファイルの表示内容(画像データ)が、EMF形式のスプールファイルとしてPC2のHDD202に一時的に格納される。そして、スプールファイルは、プリンタドライバ、又はFAXドライバを介してMFP3制御用コマンドを含む印字データ、又はファクシミリの送信データに変換された後、インターネットを介してMFP3に送られる。   For example, the display contents (image data) of a file opened in the application by a printing operation on a printable application or a facsimile transmission operation are temporarily stored in the HDD 202 of the PC 2 as an EMF format spool file. The The spool file is converted into print data including an MFP3 control command or facsimile transmission data via a printer driver or FAX driver, and then sent to the MFP 3 via the Internet.

MFP3にて受信された印字データは、記録部19で印字用パルスに変換され、記録紙上に印刷される。また、MFP3にて受信されたファクシミリの送信データは、ファクシミリ制御部23でファクシミリの通信プロトコルに変換され、アナログ電話回線を介して相手先のファクシミリ装置に送信される。   The print data received by the MFP 3 is converted into print pulses by the recording unit 19 and printed on the recording paper. The facsimile transmission data received by the MFP 3 is converted into a facsimile communication protocol by the facsimile control unit 23 and transmitted to the facsimile machine of the other party via an analog telephone line.

操作部20は、電源ボタン、リセットボタン等の各種ボタンから構成され、MFP3に対する操作を受け付ける。表示部21は、タッチパネルの液晶ディスプレイで構成され、MFP3の状態の表示、各種の設定情報や電話番号の表示、入力等を行うことができる。読取り部22は、カラーイメージセンサや画像処理用のASIC等から構成される電気回路を含んで構成され、スキャナ機能を制御する。   The operation unit 20 includes various buttons such as a power button and a reset button, and accepts operations on the MFP 3. The display unit 21 is configured by a liquid crystal display of a touch panel, and can display the status of the MFP 3, display various setting information and telephone numbers, input, and the like. The reading unit 22 includes an electric circuit including a color image sensor, an ASIC for image processing, and the like, and controls the scanner function.

ファクシミリ制御部23は、ファクシミリ用のモデム、アナログ通信回路等から構成され、ファクシミリの通信プロトコルに従ってファクシミリの送信および受信を制御する。外部ストレージ制御部24は、フラッシュメモリの装着用のスロット、ストレージ用のインタフェース回路等から構成され、装着されたフラッシュメモリを制御する。   The facsimile control unit 23 includes a facsimile modem, an analog communication circuit, and the like, and controls facsimile transmission and reception according to a facsimile communication protocol. The external storage control unit 24 includes a slot for installing a flash memory, an interface circuit for storage, and the like, and controls the installed flash memory.

図3は、PCのソフトウェアの構成の一例を示す図である。図3では、PC2を例に挙げて説明する。I/F92は、Ethernet(登録商標)等のI/Fを制御するI/F制御スタックである。IP Network91は、IP Networkを制御するIP Network制御スタックである。   FIG. 3 is a diagram illustrating an example of a software configuration of the PC. In FIG. 3, the description will be given by taking the PC 2 as an example. The I / F 92 is an I / F control stack that controls an I / F such as Ethernet (registered trademark). The IP network 91 is an IP network control stack that controls the 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等から構成される。   The Internet Information Services (IIS) 90 is an IIS control unit that controls IIS, and the application 150 provides a Web service by using the Web server function of the IIS control unit. JAVA (registered trademark) Virtual Machine (Java (registered trademark) VM) 89 is software that converts Java (registered trademark) bytecode into platform native code and executes it, and proxy APP143 is JAVA (registered trademark) VM89. Run on. Applications 82 are an application group, and are composed of a proxy APP 143, an application 150, and the like.

図4は、PC1の文書作成APP145が提供するWebブラウザ9の一例を示す図である。図4は、ある文書を開いている状態を表す。印刷メニュー401は、印刷に関する各種の操作を受け付ける。例えば、ユーザがKBD203等の入力部を操作(ユーザ操作)し、開いている文書を印刷するときに印刷メニュー401を押下すると、図5に示す印刷ダイアログ142が表示される。   FIG. 4 is a diagram illustrating an example of the Web browser 9 provided by the document creation APP 145 of the PC 1. FIG. 4 shows a state in which a certain document is opened. A print menu 401 accepts various operations related to printing. For example, when the user operates the input unit such as KBD 203 (user operation) and presses the print menu 401 when printing an open document, a print dialog 142 shown in FIG. 5 is displayed.

図5は、印刷ダイアログ142の一例を示す図である。印刷ダイアログ142は、ユーザに対するMFP3、103用の印刷設定画面として、クラウド印刷APP146により制御される。また、印刷ダイアログ142は、Webブラウザ9、15を利用して、そのWebブラウザ上に表示される。   FIG. 5 is a diagram illustrating an example of the print dialog 142. The print dialog 142 is controlled by the cloud print APP 146 as a print setting screen for the MFPs 3 and 103 for the user. The print dialog 142 is displayed on the Web browser using the Web browsers 9 and 15.

プリンタ選択肢535、536、537の各々は、選択可能なプリンタの選択肢である。プリンタ選択肢535、536、537は、それぞれ、GHI社製のAkbNmbというモデル名のプリンタ、ABC社製のKmmnというモデル名のMFP(MFP3)、DEF社製のXyzというモデル名のプリンタに該当する選択肢を表す。図5では、MFP3を表すプリンタ選択肢536が選択されている状態が示されている。   Each of the printer options 535, 536, and 537 is a selectable printer option. The printer options 535, 536, and 537 are options corresponding to a printer having a model name of AkbNmb manufactured by GHI, an MFP (MFP3) having a model name of Kmmn manufactured by ABC, and a printer having a model name of Xyz manufactured by DEF, respectively. Represents. FIG. 5 shows a state where the printer option 536 representing the MFP 3 is selected.

用紙サイズ選択部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を閉じる。
The paper size selection unit 530 selects a paper size to be printed by the MFP 3 from the following options according to a user operation. FIG. 5 shows a state in which Letter is selected.
Paper size options: A5, A4, B5, Letter
A paper type selection unit 531 selects a paper type to be printed by the MFP 3 from the following options according to a user operation. FIG. 5 shows a state in which Plain Paper is selected.
Paper type choices: Plain Paper, Photo Paper, Postcard
The print quality selection unit 532 selects a print quality to be printed by the MFP 3 from the following options according to a user operation. FIG. 5 shows a state where Standard is selected.
Print quality options: High, Standard, Fast
A color / density selection unit 533 selects a color or density to be printed by the MFP 3 from the following options according to a user operation. FIG. 5 shows a state where Auto is selected.
Print quality options: Auto, Manual
The print button 534 receives an instruction to start printing. When the print button 534 is pressed by a user operation, the cloud print APP 146 generates a print job for the MFP 3 associated with the printer option 536. A close button 538 receives an instruction to close the print dialog 142. When the close button 538 is pressed by a user operation, the cloud print APP 146 closes the print dialog 142.

図6、図7、図8は、本周辺装置制御システム全体の処理に係るフローチャートの一例を示す図である。これらのフローチャートに係るプログラムは、PCまたはMFP内に組み込まれている。PC上で動作するアプリケーションのプログラムは、HDD202に記憶されており、CPU204によりRAM201に読み出されて実行される。MFP上で動作するアプリケーションのプログラムは、ROM16に記憶されており、RAM17に読み出され、CPU25により実行される。   6, 7, and 8 are diagrams illustrating examples of flowcharts related to processing of the entire peripheral device control system. The programs according to these flowcharts are incorporated in the PC or MFP. A program of an application operating on the PC is stored in the HDD 202, and is read out and executed by the CPU 204 in the RAM 201. A program of an application operating on the MFP is stored in the ROM 16, read out to the RAM 17, and executed by the CPU 25.

これらのフローチャートにおいて、縦の列が処理の実行元を表す。本実施形態では図面の左側から、ユーザ(Webブラウザ9)、文書作成APP145、クラウド印刷APP146、プロキシAPP143、画像変換APP144、認証APP148、およびMFP3を記す。以下では、ユーザがPC1を使ってドキュメントの印刷をMFP3で行うケース(ドキュメントの印刷に係る一連の処理)を例に挙げて通信制御方法について説明する。   In these flowcharts, the vertical column represents the execution source of the process. In this embodiment, a user (Web browser 9), a document creation APP 145, a cloud print APP 146, a proxy APP 143, an image conversion APP 144, an authentication APP 148, and an MFP 3 are described from the left side of the drawing. Hereinafter, the communication control method will be described by taking as an example a case where a user prints a document with the MFP 3 using the PC 1 (a series of processes related to document printing).

まず、MFP3が印刷ジョブをポーリングする構成についてS617〜S621を用いて説明する。図6において、S617は、便宜的にMFP3側から見たドキュメントの印刷の開始を表すステップである。なお、このステップは、MFP3内の処理の実行には一切影響を与えるものではなく、単にこのフローチャートの開始を表すものである。   First, a configuration in which the MFP 3 polls a print job will be described using S617 to S621. In FIG. 6, step S617 is a step representing the start of document printing as viewed from the MFP 3 for convenience. Note that this step does not affect the execution of processing in the MFP 3 at all, but merely represents the start of this flowchart.

S618では、MFP3は、プロキシAPP143がエクスポートしているWebサービスAPIのCheckPrintJob関数をコールする。S618において、MFP3がこの関数をコールするときに、HTTPのGET要求のクエリパラメータとしてプロキシAPP143に渡す情報(確認情報の一例)は、次に示すような情報である。
・クラウド印刷APP146が発行したプリンタID
・ランダムコード
また、CheckPrintJob関数をコールするタイミングは任意であり、定常的にコールするポーリングの形態とするが、この形態に限られるものではない。例えば、ユーザから指定されたときにコールする形態であってもよい。更に、クエリパラメータに含まれる確認情報もプリンタID、ランダムコードに限られるものではない。
In step S <b> 618, the MFP 3 calls the CheckPrintJob function of the Web service API exported by the proxy APP 143. Information (an example of confirmation information) to be passed to the proxy APP 143 as the query parameter of the HTTP GET request when the MFP 3 calls this function in S618 is the following information.
・ Printer ID issued by Cloud Print APP146
-Random code In addition, the timing of calling the CheckPrintJob function is arbitrary, and is a form of polling that calls regularly, but is not limited to this form. For example, it may be configured to call when specified by the user. Further, the confirmation information included in the query parameter is not limited to the printer ID and the random code.

ランダムコードは、MFP3が生成した任意の32ビットの値である。プロキシAPP143は、CheckPrintJob関数がコールされると、図9(A)で後述するCheckPrintJob関数の処理を実行し、そのレスポンス(応答情報の一例)をMFP3に返す(S619)。   The random code is an arbitrary 32-bit value generated by the MFP 3. When the CheckPrintJob function is called, the proxy APP 143 executes processing of the CheckPrintJob function described later with reference to FIG. 9A and returns a response (an example of response information) to the MFP 3 (S619).

続いて、MFP3は、プロキシAPP143からのCheckPrintJob関数のレスポンスを受信すると、レスポンス内の応答メッセージに含まれている情報(「印刷ジョブ有り応答」又は「印刷ジョブ無し応答」)を確認する(S620)。S620において、MFP3は、「印刷ジョブ有り応答」を受信したと判断した場合、図7のS708に処理を移し、他方、「印刷ジョブ無し応答」を受信したと判断した場合、S621に処理を移す。   Subsequently, when receiving the response of the CheckPrintJob function from the proxy APP 143, the MFP 3 confirms the information (“response with print job” or “response without print job”) included in the response message (S620). . In S620, if the MFP 3 determines that the “print job present response” has been received, the process proceeds to S708 in FIG. 7. On the other hand, if the MFP 3 determines that the “print job absent response” is received, the process proceeds to S621. .

S621では、MFP3は、一定の時間(本実施形態では1分間)待った後、S618に処理を移す。このように、MFP3は、プロキシAPP143がエクスポートしているCheckPrintJob関数を一定の時間間隔で(定期的に)ポーリングする。   In S621, the MFP 3 waits for a certain time (1 minute in the present embodiment), and then moves the process to S618. In this way, the MFP 3 polls the CheckPrintJob function exported by the proxy APP 143 at regular time intervals (periodically).

次に、ドキュメントの印刷処理について説明する。ここで、S601は、便宜的にユーザ側から見た場合のドキュメントの印刷の開始を表すステップである。なお、このステップは、ユーザ操作やアプリケーションの実行には一切影響を与えるものではなく、単にこのフローチャートの開始を表すものである。   Next, document printing processing will be described. Here, step S601 is a step representing the start of document printing when viewed from the user side for convenience. This step does not affect the user operation or the execution of the application at all, but merely represents the start of this flowchart.

まず、ユーザは、Webブラウザ9を起動して文書作成APP145のURLにアクセスしてログインする。そして、ユーザは、ある文書を指定してその文書を開く指示を行うと、Webブラウザ9は、その文書を入力パラメータとして、文書作成APP145がエクスポートしているWebサービスAPIのOpenDocument関数をコールする(S602)。   First, the user activates the Web browser 9, accesses the URL of the document creation APP 145, and logs in. When the user designates a certain document and gives an instruction to open the document, the Web browser 9 calls the OpenDocument function of the Web service API exported by the document creation APP 145 using the document as an input parameter ( S602).

文書作成APP145は、OpenDocument関数がコールされると、入力パラメータで指定された文書を開いてその情報をWebブラウザ9に送信する(S603)。例えば、図4に示すように、Webブラウザ9上で文書作成APP145を介して当該文書が開かれた状態となる。   When the OpenDocument function is called, the document creation APP 145 opens the document specified by the input parameter and transmits the information to the Web browser 9 (S603). For example, as shown in FIG. 4, the document is opened on the Web browser 9 via the document creation APP 145.

ユーザ操作により、当該文書を印刷するために印刷メニュー401が押下されると、Webブラウザ9を介してその情報が文書作成APP145に通知される(S604)。文書作成APP145は、この通知を受け取ると、クラウド印刷APP146がエクスポートしているWebサービスAPIのPrintDialog関数をコールする(S605)。   When the user presses the print menu 401 to print the document, the information is notified to the document creation APP 145 via the Web browser 9 (S604). Upon receiving this notification, the document creation APP 145 calls the Print Dialog function of the Web service API exported by the cloud print APP 146 (S605).

クラウド印刷APP146は、PrintDialog関数がコールされると、印刷ダイアログ142を開いて、その情報をWebブラウザ9に送信する(S606)。例えば、図5に示すように、Webブラウザ9上に印刷ダイアログ142が表示される。   When the Print Dialog function is called, the cloud print APP 146 opens the print dialog 142 and transmits the information to the Web browser 9 (S606). For example, as shown in FIG. 5, a print dialog 142 is displayed on the Web browser 9.

ユーザは、入力部を操作して、複数のプリンタ選択肢の中から印刷するプリンタ(図5の例ではMFP3に関連付けられているプリンタ選択肢536)を選択し、各印刷設定値の中から希望する設定値を選択し、印刷ボタン534を押下する。印刷ボタン534が押下されると、Webブラウザ9を介してそのユーザからの印刷開始要求を示す情報と印刷設定値に関する情報とが文書作成APP145に通知される(S607)。   The user operates the input unit to select a printer for printing from among a plurality of printer options (the printer option 536 associated with the MFP 3 in the example of FIG. 5), and the desired setting from each print setting value. A value is selected and the print button 534 is pressed. When the print button 534 is pressed, the document creation APP 145 is notified of information indicating a print start request from the user and information regarding the print setting value via the Web browser 9 (S607).

印刷設定値に関する情報は、例えば、ユーザが選択した印刷設定値が記されている印刷設定ファイル(XMLファイル)が格納されているURLである。文書作成APP145は、この通知を受け取ると、印刷画像をPDFファイルとして生成する。そして、文書作成APP145は、生成したPDFファイル、印刷設定値に関する情報等を入力パラメータとして、クラウド印刷APP146がエクスポートしているWebサービスAPIのSubmitPrintJob関数をコールする(S608)。   The information regarding the print setting value is, for example, a URL in which a print setting file (XML file) in which the print setting value selected by the user is written is stored. Upon receiving this notification, the document creation APP 145 generates a print image as a PDF file. Then, the document creation APP 145 calls the SubmitPrintJob function of the Web service API exported by the cloud print APP 146 using the generated PDF file, information on the print setting value, and the like as input parameters (S608).

クラウド印刷APP146は、SubmitPrintJob関数がコールされると、入力パラメータで指定されたPDFファイル、印刷設定値に関する情報等をもとに印刷ジョブを生成する。そして、クラウド印刷APP146は、選択されているプリンタ選択肢に関連付けられているプリンタ(本例では、画像フォーマットの変換が必要なMFP3であるのでプロキシAPP143)に印刷ジョブ通知を送信する(S609)。   When the SubmitPrintJob function is called, the cloud print APP 146 generates a print job based on the PDF file specified by the input parameter, information on the print setting value, and the like. Then, the cloud print APP 146 transmits a print job notification to the printer associated with the selected printer option (in this example, the proxy APP 143 because the MFP 3 requires image format conversion) (S609).

また、印刷ジョブには、少なくとも次に示すような情報(以下では、印刷ジョブ情報と称する。)が含まれている。
・クラウド印刷APP146が発行した印刷ジョブID
・クラウド印刷APP146が発行したプリンタID
・クラウド印刷APP146が提供するクラウド印刷サービスを利用するためのアクセストークン
・印刷設定値が記されている印刷設定ファイル(XMLファイル)が格納されているURL
・印刷画像(PDFファイル)の格納先のURL
・タイムスタンプ
プロキシAPP143は、印刷ジョブ通知を受信すると、クラウド印刷APP146がエクスポートしているWebサービスAPIのFetchPrintJob関数をコールする(S610)。クラウド印刷APP146は、FetchPrintJob関数がコールされると、S609で生成した印刷ジョブに含まれている情報(印刷ジョブ情報)をプロキシAPP143に送信する(S611)。
The print job includes at least the following information (hereinafter referred to as print job information).
-Print job ID issued by cloud print APP146
・ Printer ID issued by Cloud Print APP146
-Access token for using the cloud print service provided by the cloud print APP 146-URL where the print setting file (XML file) in which the print setting value is written is stored
-URL for storing the print image (PDF file)
Time stamp When the proxy APP 143 receives the print job notification, the proxy APP 143 calls the FetchPrintJob function of the Web service API exported by the cloud print APP 146 (S610). When the FetchPrintJob function is called, the cloud print APP 146 transmits information (print job information) included in the print job generated in S609 to the proxy APP 143 (S611).

プロキシAPP143は、印刷ジョブ情報を受信すると、印刷ジョブ情報の中から必要な情報を取得し、取得した情報とその他の制御で必要な情報とを印刷ジョブ管理データベースに保存する(S622)。そして、プロキシAPP143は、画像変換APP144がエクスポートしているWebサービスAPIのRegisterAndAuth関数をコールする(S622)。   When the proxy APP 143 receives the print job information, the proxy APP 143 acquires necessary information from the print job information, and stores the acquired information and information necessary for other control in the print job management database (S622). Then, the proxy APP 143 calls the RegisterAndAuth function of the Web service API exported by the image conversion APP 144 (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が自動的に生成する。
At this time, the CPU 204 of the proxy APP 143 functions as a transmission unit, and transmits an authentication request and a process execution request to the image conversion APP 144. Specifically, when the proxy APP 143 calls this function, information (an example of pre-processing information) to be passed to the image conversion APP 144 as an input parameter of the HTTPS POST request is information as shown below.
・ Administrator ID using authentication APP148
・ Administrator password using authentication APP148 ・ User ID using image conversion APP144
User password for using image conversion APP 144 Service ID
・ Printer ID issued by Cloud Print APP146
-Print job ID issued by cloud print APP146
Here, the service ID represents an ID for identifying each cloud printing service. For example, the following ID can be designated. The parentheses () are the outline of each cloud printing service.
GCP Consumer (GCP for consumers)
GCP Enterprise (Enterprise GCP)
Email Print Consumer (Email printing for consumers)
Email Print Enterprise (Email printing for enterprises)
ABC Cloud Print (Cloud printing provided by ABC)
“Administrator ID using authentication APP 148” is identification information of the proxy APP 143 and is registered in advance in the proxy APP 143. The “administrator password using the authentication APP 148” is a password for authenticating the proxy APP 143 ID, and is registered in the proxy APP 143 in advance. The “user ID using the image conversion APP 144” is identification information uniquely assigned to each MFP managed by the proxy APP 143. “User password using image conversion APP 144” is a password for authenticating the user ID. The proxy APP 143 automatically generates the “user ID using the image conversion APP 144” and the “user password using the image conversion APP 144”.

画像変換APP144は、認証要求と処理実行要求を受け付ける受付手段として機能し、RegisterAndAuth関数がコールされると、図14で後述するRegisterAndAuth関数の処理を実行する。そして、画像変換APP144は、そのレスポンスをプロキシAPP143に返す(S623)。このレスポンスには、認証APP148が発行した、画像変換APP144を利用するためのアクセストークンが含まれている。   The image conversion APP 144 functions as a reception unit that receives an authentication request and a process execution request. When the RegisterAndAuth function is called, the RegisterAndAuth function described later with reference to FIG. 14 is executed. Then, the image conversion APP 144 returns the response to the proxy APP 143 (S623). This response includes an access token issued by the authentication APP 148 for using the image conversion APP 144.

プロキシAPP143は、画像変換APP144からのRegisterAndAuth関数のレスポンスを受信する。レスポンスを受信したプロキシAPP143は、画像変換APP144がエクスポートしているWebサービスAPIのCreatePrintJobSet関数をコールする(S612)。   The proxy APP 143 receives the response of the RegisterAndAuth function from the image conversion APP 144. The proxy APP 143 that has received the response calls the CreatePrintJobSet function of the Web service API exported by the image conversion APP 144 (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」をセットする。
In S612, when the proxy APP 143 calls this function, information (an example of pre-processing information) to be passed to the image conversion APP 144 as an input parameter of the HTTPS POST request is the following information.
・ Service ID
・ Printer ID issued by Cloud Print APP146
-Print job ID issued by cloud print APP146
-Access token for using the image conversion APP 144-Access token for using the cloud printing service-URL for storing the print image (PDF file)
In S622, the following information is stored in the print job management database of the proxy APP 143.
[Print Job Management Database]
Search key: Print job ID issued by cloud print APP 146
・ Service ID
・ Printer ID issued by Cloud Print APP146
-Access token for using the image conversion APP 144-Access token for using the cloud printing service-URL of the storage location of the print setting file (XML file)
-URL for storing the print image (PDF file)
Access token for image conversion APP 144 Print job access URL (URL of JPEG file storage destination)
-The total number of pages of the print image (JPEG file)-Print job preparation complete (PrintJobReady) (0: incomplete, 1: complete)
At this time, the proxy APP 143 sets “0” as an initial value indicating that the print job preparation is not completed in the print job preparation completion (PrintJobReady). Further, the proxy APP 143 sets an initial value “0” to the total number of pages of the print image (JPEG file).

画像変換APP144は、CreatePrintJobSet関数がコールされると、図10(A)で後述するCreatePrintJobSet関数の処理を実行し、そのレスポンスをプロキシAPP143に返す(S613)。このレスポンスには、画像変換APP144が発行したセッションIDが含まれている。   When the CreatePrintJobSet function is called, the image conversion APP 144 executes the process of the CreatePrintJobSet function, which will be described later with reference to FIG. 10A, and returns the response to the proxy APP 143 (S613). This response includes the session ID issued by the image conversion APP 144.

プロキシAPP143は、画像変換APP144からのCreatePrintJobSet関数のレスポンスを受信すると、画像変換APP144がエクスポートしているWebサービスAPIのConfirmProgress関数をコールする(S614)。S614において、プロキシAPP143が、この関数をコールするときに、HTTPのGET要求のクエリパラメータとして画像変換APP144に渡す情報(確認情報の一例)は、次に示すような情報である。
・セッションID
・シーケンス
セッションIDは、CreatePrintJobSet関数のレスポンスの中に含まれている情報であり、シーケンスは、プロキシAPP143が生成した任意の番号である。
When the proxy APP 143 receives the response of the CreatePrintJobSet function from the image conversion APP 144, the proxy APP 143 calls the Confirm Progress function of the Web service API exported by the image conversion APP 144 (S614). In S614, when the proxy APP 143 calls this function, information (an example of confirmation information) to be passed to the image conversion APP 144 as a query parameter of the HTTP GET request is the following information.
・ Session ID
Sequence The session ID is information included in the response of the CreatePrintJobSet function, and the sequence is an arbitrary number generated by the proxy APP 143.

画像変換APP144は、ConfirmProgress関数がコールされると、図11(A)で後述するConfirmProgress関数の処理を実行し、そのレスポンス(応答情報の一例)をプロキシAPP143に返す(S615)。プロキシAPP143は、画像変換APP144からのConfirmProgress関数のレスポンスを受信すると、そのレスポンス内の応答メッセージに含まれている内容(「処理中応答」、「処理完了応答」、又は「エラー応答」)を確認する(S616)。S616において、プロキシAPP143が「処理完了応答」を受信したと判断した場合、図7のS701に処理を移し、他方、「処理中応答」を受信したと判断した場合、S614に処理を移す。   When the ConfirmProgress function is called, the image conversion APP 144 executes the process of the ConfirmProgress function, which will be described later with reference to FIG. 11A, and returns a response (an example of response information) to the proxy APP 143 (S615). When the proxy APP 143 receives the response of the ConfirmProgress function from the image conversion APP 144, the proxy APP 143 confirms the content (“processing response”, “processing completion response”, or “error response”) included in the response message in the response. (S616). If it is determined in S616 that the proxy APP 143 has received the “processing completion response”, the process proceeds to S701 in FIG. 7. If it is determined that the “response in process” has been received, the process proceeds to S614.

なお、図10(B)で後述する画像変換APP144のダウンロード・画像変換スレッドの処理でエラーが発生した場合、S616において、プロキシAPP143が「エラー応答」を受信して印刷処理を中止する。しかしながら、中止するケースに関しては、本実施形態の本質から外れるので、その詳細な説明を省略する。よって、S616以降では、プロキシAPP143が「処理完了応答」または「処理中応答」を受信した場合を中心に説明する。   If an error has occurred in the download / image conversion thread processing of the image conversion APP 144, which will be described later with reference to FIG. 10B, the proxy APP 143 receives an “error response” and stops the printing processing in S616. However, since the case to be canceled is out of the essence of the present embodiment, the detailed description thereof is omitted. Therefore, in and after S616, the case where the proxy APP 143 receives the “processing completion response” or the “processing response” will be mainly described.

図7に示すように、S701では、プロキシAPP143は、画像変換APP144がエクスポートしているWebサービスAPIのCreatePrintJobResult関数をコールする。S701において、プロキシAPP143が、この関数をコールするときに、HTTPSのPOST要求の入力パラメータとして画像変換APP144に渡す情報(所在取得情報の一例)は、次に示すような情報である。
・クラウド印刷APP146が発行したプリンタID
・クラウド印刷APP146が発行した印刷ジョブID
画像変換APP144は、CreatePrintJobResult関数がコールされると、図12で後述するCreatePrintJobResult関数の処理を実行し、そのレスポンスをプロキシAPP143に返す(S702)。
As shown in FIG. 7, in S701, the proxy APP 143 calls the CreatePrintJobResult function of the Web service API exported by the image conversion APP 144. In S701, when the proxy APP 143 calls this function, information (an example of location acquisition information) passed to the image conversion APP 144 as an input parameter of the HTTPS POST request is the following information.
・ Printer ID issued by Cloud Print APP146
-Print job ID issued by cloud print APP146
When the CreatePrintJobResult function is called, the image conversion APP 144 executes the process of the CreatePrintJobResult function described later with reference to FIG. 12, and returns the response to the proxy APP 143 (S702).

プロキシAPP143は、画像変換APP144からのCreatePrintJobResult関数のレスポンスを受信すると、PrintJobReadyに「1」をセットする(S703)。そして、プロキシAPP143は、印刷ジョブ管理データベースの印刷ジョブ準備完了(PrintJobReady)に、印刷ジョブ準備完了を表す「1」をセットする(S703)。これにより、MFP3における印刷待ち状態となる(S704)。   When the proxy APP 143 receives the CreatePrintJobResult function response from the image conversion APP 144, the proxy APP 143 sets “1” to PrintJobReady (S <b> 703). Then, the proxy APP 143 sets “1” representing the print job preparation completion to the print job preparation completion (PrintJobReady) of the print job management database (S703). As a result, the MFP 3 enters a print waiting state (S704).

図6のS618〜S621で前述したように、MFP3は、プロキシAPP143がエクスポートしているCheckPrintJob関数を、一定の時間間隔でポーリングし、S705は、S618と同等な処理を表す。S704でMFP3における印刷待ち状態となっているとき、S705において、MFP3が、プロキシAPP143がエクスポートしているCheckPrintJob関数をコールした場合について説明する。プロキシAPP143は、CheckPrintJob関数がコールされると、図9(A)で後述するCheckPrintJob関数の処理を実行し、そのレスポンスをMFP3に返す(S706)。   As described above with reference to S618 to S621 in FIG. 6, the MFP 3 polls the CheckPrintJob function exported by the proxy APP 143 at regular intervals, and S705 represents processing equivalent to S618. A case will be described in which when the MFP 3 is in a print waiting state in S704, the MFP 3 calls the CheckPrintJob function exported by the proxy APP 143 in S705. When the CheckPrintJob function is called, the proxy APP 143 executes processing of the CheckPrintJob function described later with reference to FIG. 9A, and returns a response to the MFP 3 (S706).

MFP3は、プロキシAPP143からのCheckPrintJob関数のレスポンスを受信すると、そのレスポンス内の応答メッセージに含まれている内容(「印刷ジョブ有り応答」又は「印刷ジョブ無し応答」)を確認する(S707)。S707において、MFP3が「印刷ジョブ有り応答」を受信したと判断した場合、S708に処理を移し、他方、「印刷ジョブ無し応答」を受信したと判断した場合、S621に処理を移す。   When the MFP 3 receives the response of the CheckPrintJob function from the proxy APP 143, the MFP 3 confirms the content (“response with print job” or “response without print job”) included in the response message (S707). If it is determined in S707 that the MFP 3 has received a “print job present response”, the process proceeds to S708. On the other hand, if it is determined that a “print job absent response” has been received, the process proceeds to 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)。
In S708, the MFP 3 calls the GetPrintJob function of the Web service API exported by the proxy APP 143. In S708, when the MFP 3 calls this function, information (an example of acquired information) to be passed to the proxy APP 143 as a query parameter of the HTTPS GET request is the following information.
・ Printer ID issued by Cloud Print APP146
When the GetPrintJob function is called, the proxy APP 143 executes processing of the GetPrintJob function described later with reference to FIG. 9B, and returns a response to the MFP 3 (S709). Upon receiving the GetPrintJob function response from the proxy APP 143, the MFP 3 transmits a print image acquisition request to the image conversion APP 144 based on the content included in the response message in the response (S710).

ここで、レスポンス内の応答メッセージに含まれている内容は、印刷ジョブアクセスURL(印刷画像(JPEGファイル)の格納先のURL)、印刷画像(JPEGファイル)の総ページ数、及び画像変換APP144へのアクセストークンである。また、印刷画像取得要求は、画像変換APP144から各ページの印刷画像(JPEGファイル)を取得するための要求である。   Here, the contents included in the response message in the response include the print job access URL (the URL where the print image (JPEG file) is stored), the total number of pages of the print image (JPEG file), and the image conversion APP 144. Access token. The print image acquisition request is a request for acquiring a print image (JPEG file) of each page from the image conversion APP 144.

本実施形態では、印刷ジョブアクセスURLは、画像変換App144を有するPC5の格納先URLとするが、それ以外のPCの格納先URLであってもよい。また、例えば、印刷ジョブアクセスURLについては、直接PC5から送信する形態であってもよい。また、例えば、指定されたページの印刷画像を、App143を有するPC2がPC5から取得し、取得した印刷画像をPC2がMFP3に送信する形態であってもよい。また、例えば、PC2が、取得した印刷画像の格納先のURLをMFP3に送ってもよい。   In this embodiment, the print job access URL is the storage destination URL of the PC 5 having the image conversion App 144, but may be the storage destination URL of other PCs. For example, the print job access URL may be transmitted directly from the PC 5. Further, for example, the PC 2 having the App 143 may acquire the print image of the designated page from the PC 5, and the PC 2 may transmit the acquired print image to the MFP 3. Further, for example, the PC 2 may send the URL of the storage location of the acquired print image to the MFP 3.

画像変換APP144は、MFP3からの印刷画像取得要求を受信すると、指定されたページの印刷画像(JPEGファイル)に対するMFP3からのアクセスを許可し、その印刷画像をMFP3に送信する(S711)。MFP3は、画像変換APP144から送信された印刷画像を受信すると、その印刷画像を印刷する(S712)。続いて、MFP3は、印刷画像(JPEGファイル)の総ページ数をもとに、次ページの有無を確認する(S713)。このとき、MFP3は、次ページが有ると判断した場合、S710に処理を移し、次ページの印刷画像を取得するための印刷画像取得要求を画像変換APP144に送信する。他方、MFP3は、次ページが無いと判断した場合、図8のS801に処理を移す。   When the image conversion APP 144 receives the print image acquisition request from the MFP 3, the image conversion APP 144 permits access from the MFP 3 to the print image (JPEG file) of the specified page, and transmits the print image to the MFP 3 (S711). Upon receiving the print image transmitted from the image conversion APP 144, the MFP 3 prints the print image (S712). Subsequently, the MFP 3 confirms the presence / absence of the next page based on the total number of pages of the print image (JPEG file) (S713). At this time, if the MFP 3 determines that there is a next page, the process proceeds to S710, and a print image acquisition request for acquiring the print image of the next page is transmitted to the image conversion APP 144. On the other hand, if the MFP 3 determines that there is no next page, the process proceeds to S801 in FIG.

S710〜S712における印刷画像(JPEGファイル)の取得処理に関しては、SSL通信で暗号化されたHTTPSのGETメソッドが利用される。   For the print image (JPEG file) acquisition process in S710 to S712, an HTTPS GET method encrypted by SSL communication is used.

図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)。
As shown in FIG. 8, in S801, the MFP 3 calls an EndPrintJob function of the Web service API exported by the proxy APP 143. For the call of the EndPrintJob function, an HTTPS GET method encrypted by SSL communication is used. In S801, when the MFP 3 calls this function, information (an example of end information) to be passed to the proxy APP 143 as a query parameter of the HTTPS GET request is the following information.
・ Printer ID issued by Cloud Print APP146
-Print job ID issued by cloud print APP146
When the EndPrintJob function is called (S802), the proxy APP 143 calls the JobCompleted function of the Web service API exported by the image conversion APP 144 (S803). In S803, when the proxy APP 143 calls this function, information (an example of job processing end information) to be passed to the image conversion APP 144 as an input parameter of the HTTPS POST request is the following information.
・ Printer ID issued by Cloud Print APP146
-Print job ID issued by cloud print APP146
When the JobCompleted function is called, the image conversion APP 144 executes processing of the JobCompleted function described later with reference to FIG. 11B, and returns a response to the proxy APP 143 (S804). When the proxy APP 143 receives the response of the JobCompleted function from the image conversion APP 144, the proxy APP 143 deletes information related to the print job from the print job management database, and updates the print job management database (S805). Then, the proxy APP 143 ends the document printing process (S806).

次に、プロキシAPP143がエクスポートするWebサービスAPIの処理について図9を用いて説明する。図9(A)は、CheckPrintJob関数の処理に係るフローチャートの一例を示す図である。図9(B)は、GetPrintJob関数の処理に係るフローチャートの一例を示す図である。CheckPrintJob関数については、HTTPのGETメソッドが利用されている。GetPrintJob関数については、SSL通信で暗号化されたHTTPSのGETメソッドが利用されている。これらのフローチャートに係るプログラムは、PC2に組み込まれ、HDD202に記憶されており、CPU204によりRAM201に読み出されて実行される。   Next, Web service API processing exported by the proxy APP 143 will be described with reference to FIG. FIG. 9A is a diagram illustrating an example of a flowchart relating to processing of the CheckPrintJob function. FIG. 9B is a diagram illustrating an example of a flowchart relating to the processing of the GetPrintJob function. For the CheckPrintJob function, the HTTP GET method is used. As for the GetPrintJob function, an HTTPS GET method encrypted by SSL communication is used. The programs according to these flowcharts are incorporated in the PC 2, stored in the HDD 202, read out to the RAM 201 by the CPU 204 and executed.

図6のS618、図7のS705において、MFP3がCheckPrintJob関数をコールすると、プロキシAPP143が図9(A)に示すCheckPrintJob関数の処理を実行する。   In S618 of FIG. 6 and S705 of FIG. 7, when the MFP 3 calls the CheckPrintJob function, the proxy APP 143 executes processing of the CheckPrintJob function shown in FIG.

図9(A)に示すように、プロキシAPP143は、CheckPrintJob関数の処理を開始すると(S901)、印刷ジョブ管理データベースの印刷ジョブ準備完了(PrintJobReady)を確認する(S902)。S901において、HTTPのGET要求のクエリパラメータとして、クラウド印刷APP146が発行したプリンタIDとランダムコードとがMFP3から渡される。   As shown in FIG. 9A, when the proxy APP 143 starts the processing of the CheckPrintJob function (S901), the proxy APP143 confirms the completion of print job preparation (PrintJobReady) in the print job management database (S902). In step S <b> 901, the printer ID and random code issued by the cloud print APP 146 are passed from the MFP 3 as query parameters of the HTTP GET request.

プロキシAPP143は、印刷ジョブ準備完了(PrintJobReady)に印刷ジョブ準備が完了していることを表す「1」がセットされている、即ちMFP3の印刷ジョブが存在すると判断した場合(S903でYESの場合)、S904に処理を移す。他方、プロキシAPP143は、印刷ジョブの準備が未完了であることを表す「0」がセットされている、即ちMFP3の印刷ジョブが存在しないと判断した場合(S903でNOの場合)、S905に処理を移す。   When the proxy APP 143 determines that “1” indicating that the print job preparation is completed is set in the print job preparation completion (PrintJobReady), that is, the MFP 3 has a print job (YES in step S903). , The process is moved to S904. On the other hand, if the proxy APP 143 determines that “0” indicating that the print job preparation has not been completed is set, that is, the MFP 3 print job does not exist (NO in S903), the process proceeds to S905. Move.

S904では、プロキシAPP143は、HTTPのGET要求に対するレスポンスのBODYに含める応答メッセージに「印刷ジョブ有り応答」をセットし、S906に処理を移す。S905では、プロキシAPP143は、HTTPのGET要求に対するレスポンスのBODYに含める応答メッセージに「印刷ジョブ無し応答」をセットし、S906に処理を移す。S906では、プロキシAPP143は、GET要求の発行元(本例ではMFP3)に対して応答メッセージを送信し、CheckPrintJob関数の処理を終了する(S907)。   In S904, the proxy APP 143 sets “response with print job” to the response message included in the BODY of the response to the HTTP GET request, and moves the process to S906. In step S905, the proxy APP 143 sets “no print job response” in the response message included in the BODY of the response to the HTTP GET request, and the process proceeds to step S906. In step S906, the proxy APP 143 transmits a response message to the GET request issuer (MFP3 in this example), and ends the CheckPrintJob function processing (S907).

ここで、「印刷ジョブ有り応答」と「印刷ジョブ無し応答」との詳細を説明する。印刷ジョブ有りの状態を表す情報、及び印刷ジョブ無しの状態を表す情報は、それぞれ「10101010」、「01010101」である。「印刷ジョブ有り応答」及び「印刷ジョブ無し応答」は、それぞれ、ランダムコードとこれらの状態を表す情報とを用いて演算された結果であり、例えば、次に示す情報を文字列に変換した文字列情報で構成される。
「印刷ジョブ有り応答」 = ランダムコード XOR 10101010
「印刷ジョブ無し応答」 = ランダムコード XOR 01010101
このように、プロキシAPP143はHTTPのGET要求に対するレスポンスとしてXMLを使って定義した可視的な情報は用いない。プロキシAPP143は、一般には意味がわからない文字列情報を用いる。これによりWebサービスAPIに対する適切でないアクセスによる誤動作や適切でない制御を防止することができる。なお、このような適切でないアクセスを防止する構成は、この例に限られるものではなく、ハッシュ化等、より複雑な演算を組み合わせてもよい。
Details of the “print job presence response” and the “print job absence response” will be described here. The information indicating the presence of a print job and the information indicating the absence of a print job are “10101010” and “01010101”, respectively. “Print job presence response” and “Print job absence response” are the results calculated using random codes and information indicating these states, respectively. For example, the following information is converted into a character string. Consists of column information.
“Response with print job” = Random code XOR 10101010
“No print job response” = Random code XOR 01010101
As described above, the proxy APP 143 does not use the visible information defined using XML as a response to the HTTP GET request. The proxy APP 143 uses character string information whose meaning is generally unknown. As a result, it is possible to prevent malfunction or inappropriate control due to inappropriate access to the Web service API. Note that the configuration for preventing such inappropriate access is not limited to this example, and more complicated operations such as hashing may be combined.

また、図7のS708において、MFP3がGetPrintJob関数をコールすると、プロキシAPP143は、図9(B)に示すGetPrintJob関数の処理を実行する。図9(B)に示すように、プロキシAPP143は、GetPrintJob関数の処理を開始する(S911)。そして、プロキシAPP143は、HTTPSのGET要求に対するレスポンスのBODYに含める応答メッセージに、印刷画像(JPEGファイル)の格納先のURLをセットし(S912)、S913に処理を移す。   When the MFP 3 calls the GetPrintJob function in S708 of FIG. 7, the proxy APP 143 executes the process of the GetPrintJob function shown in FIG. 9B. As shown in FIG. 9B, the proxy APP 143 starts processing of the GetPrintJob function (S911). Then, the proxy APP 143 sets the URL of the storage destination of the print image (JPEG file) in the response message included in the BODY of the response to the HTTPS GET request (S912), and moves the process to S913.

S913では、プロキシAPP143は、HTTPSのGET要求に対するレスポンスのBODYに含める応答メッセージに、印刷画像(JPEGファイル)の総ページ数をセットし、S914に処理を移す。S914では、プロキシAPP143は、HTTPSのGET要求に対するレスポンスのBODYに含める応答メッセージに、画像変換APP144へのアクセストークンをセットし、S915に処理を移す。   In S913, the proxy APP 143 sets the total number of pages of the print image (JPEG file) in the response message included in the BODY of the response to the HTTPS GET request, and moves the process to S914. In S914, the proxy APP 143 sets the access token to the image conversion APP 144 in the response message included in the BODY of the response to the HTTPS GET request, and moves the process to S915.

S915では、プロキシAPP143は、GET要求の発行元(本例ではMFP3)に対して応答メッセージを送信し、GetPrintJob関数の処理を終了する(S916)。   In S915, the proxy APP 143 transmits a response message to the GET request issuer (MFP3 in this example), and ends the processing of the GetPrintJob function (S916).

次に、画像変換APP144がエクスポートするWebサービスAPIとスレッド関数の処理とについて図10を用いて説明する。図10(A)は、CreatePrintJobSet関数の処理に係るフローチャートの一例を示す図である。図10(B)は、ダウンロード・画像変換スレッド関数の処理に係るフローチャートの一例を示す図である。CreatePrintJobSet関数については、SSL通信で暗号化されたHTTPSのPOSTメソッドが利用されている。   Next, the Web service API exported by the image conversion APP 144 and the thread function processing will be described with reference to FIG. FIG. 10A is a diagram illustrating an example of a flowchart relating to processing of the CreatePrintJobSet function. FIG. 10B is a diagram illustrating an example of a flowchart relating to processing of the download / image conversion thread function. As for the CreatePrintJobSet function, an HTTPS POST method encrypted by SSL communication is used.

これらのフローチャートに係るプログラムは、PC5に組み込まれ、HDD202に記憶されており、CPU204によりRAM201に読み出されて実行される。   The programs according to these flowcharts are incorporated in the PC 5 and stored in the HDD 202, and are read into the RAM 201 by the CPU 204 and executed.

図6のS612において、プロキシAPP143がCreatePrintJobSet関数をコールすると、画像変換APP144は、図10(A)に示すCreatePrintJobSet関数の処理を実行する。   When the proxy APP 143 calls the CreatePrintJobSet function in S612 of FIG. 6, the image conversion APP 144 executes the process of the CreatePrintJobSet function shown in FIG.

図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とをセッション管理データベースに保存する。
As shown in FIG. 10A, the image conversion APP 144 starts processing of the CreatePrintJobSet function (S1001), and executes access token confirmation processing described later in FIG. 15 (S1018). At this time, the following information is passed as an argument of this process (subroutine function).
・ Service ID
・ Printer ID issued by Cloud Print APP146
-Print job ID issued by cloud print APP146
Access token for using the image conversion APP 144 Then, the image conversion APP 144 generates a session ID, stores it in the session management database (S1002), and shifts the processing to S1003. The session management database stores the following information.
[Session Management Database]
Search key: Session ID issued by the image conversion APP 144
・ Service ID
・ Printer ID issued by Cloud Print APP146
-Print job ID issued by cloud print APP146
-Access token for using the cloud printing service-URL for storing the print image (PDF file)
Access token for using the image conversion APP 144 Print job access URL (JPEG file storage destination URL)
・ Progress status indicating progress of processing (Progress)
Here, the image conversion APP 144 acquires the printer ID and print job ID issued by the cloud print APP 146 from the input parameters of the CreatePrintJobSet function. Then, the image conversion APP 144 stores the printer ID and print job ID issued by the cloud print APP 146 in the session management database.

また、画像変換APP144は、CreatePrintJobSet関数の入力パラメータの中からクラウド印刷サービスを利用するためのアクセストークンを取得する。そして、画像変換APP144は、クラウド印刷サービスを利用するためのアクセストークンをセッション管理データベースに保存する。   Also, the image conversion APP 144 acquires an access token for using the cloud print service from the input parameters of the CreatePrintJobSet function. Then, the image conversion APP 144 stores an access token for using the cloud printing service in the session management database.

さらに、画像変換APP144は、CreatePrintJobSet関数の入力パラメータの中から印刷画像(PDFファイル)の格納先のURLを取得し、印刷画像(PDFファイル)の格納先のURLをセッション管理データベースに保存する。   Furthermore, the image conversion APP 144 acquires the URL of the storage location of the print image (PDF file) from the input parameters of the CreatePrintJobSet function, and stores the URL of the storage location of the print image (PDF file) in the session management database.

続いて、画像変換APP144は、セッション管理データベース内の処理の進捗を表す進捗状況(Progress)に処理中を表す「1」をセットし(S1003)、S1004に処理を移す。S1004では、画像変換APP144は、ダウンロード・画像変換スレッドを生成し、S1005に処理を移す。なお、ダウンロード・画像変換スレッドの処理に関しては、図10(B)で後述する。   Subsequently, the image conversion APP 144 sets “1” indicating that the process is in progress to the progress status (Progress) indicating the progress of the process in the session management database (S1003), and moves the process to S1004. In S1004, the image conversion APP 144 generates a download / image conversion thread, and the process proceeds to S1005. The processing of the download / image conversion thread will be described later with reference to FIG.

続いて、画像変換APP144は、HTTPSのPOST要求に対するレスポンスのBODYに含める応答メッセージに、この関数が成功して正常終了したことを表すSUCCESSとS1002で生成したセッションIDとをセットする(S1005)。そして、画像変換APP144は、POST要求の発行元(本例ではプロキシAPP143)に対して応答メッセージを送信する(S1005)。そして、画像変換APP144は、CreatePrintJobSet関数の処理を終了する(S1006)。   Subsequently, the image conversion APP 144 sets, in the response message included in the BODY of the response to the HTTPS POST request, SUCCESS indicating that this function has been successfully completed and the session ID generated in S1002 (S1005). Then, the image conversion APP 144 transmits a response message to the POST request issuer (in this example, the proxy APP 143) (S1005). Then, the image conversion APP 144 ends the process of the CreatePrintJobSet function (S1006).

また、S1004において画像変換APP144がダウンロード・画像変換スレッドを生成すると、CreatePrintJobSet関数とは別のスレッドが起動される。そして、このスレッドの中で図10(B)に示すダウンロード・画像変換スレッドの処理が実行される。   When the image conversion APP 144 generates a download / image conversion thread in S1004, a thread different from the CreatePrintJobSet function is activated. In this thread, the download / image conversion thread process shown in FIG. 10B is executed.

図10(B)に示すように、画像変換APP144は、ダウンロード・画像変換スレッドの処理を開始する(S1011)。そして、画像変換APP144は、クラウド印刷サービスを利用するためのアクセストークンを利用し、SSL通信で暗号化されたHTTPSのGETメソッドにて印刷画像(PDFファイル)の格納先のURLにアクセスする。即ち、画像変換APP144は、クラウド印刷サービスから印刷画像(PDFファイル)をダウンロードして一時的にRAM201に保存する(S1012)。   As shown in FIG. 10B, the image conversion APP 144 starts the processing of the download / image conversion thread (S1011). Then, the image conversion APP 144 uses the access token for using the cloud print service, and accesses the URL of the storage location of the print image (PDF file) using the HTTPS GET method encrypted by SSL communication. That is, the image conversion APP 144 downloads a print image (PDF file) from the cloud print service and temporarily stores it in the RAM 201 (S1012).

また、画像変換APP144は、ダウンロードを完了した後、印刷画像(PDFファイル)をMFP3で印刷可能な形式であるJPEGファイルに変換する。なお、PC5のHDD202には、プリンタやMFP毎に、印刷可能な形式を示す設定情報が予め記憶されている。そして、画像変換APP144は、クラウド印刷APP146が発行したプリンタIDと印刷ジョブIDとから構成されるフォルダにそのJPEGファイルを保存する(S1013)。   Further, after completing the download, the image conversion APP 144 converts the print image (PDF file) into a JPEG file that can be printed by the MFP 3. Note that setting information indicating a printable format is stored in advance in the HDD 202 of the PC 5 for each printer or MFP. Then, the image conversion APP 144 stores the JPEG file in a folder composed of the printer ID issued by the cloud printing APP 146 and the print job ID (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から削除する。
In S1013, the image conversion APP 144 sets the access token to the image conversion APP 144 in the access token to the image conversion APP 144 in the session management database. The access token for the image conversion APP 144 is an access token for the printer or MFP (MFP 3 in this example) associated with the printer ID issued by the cloud print APP 146 to access the print image (JPEG file). In step S <b> 1013, the image conversion APP 144 sets the URL (first page) where the print image (JPEG file) is stored in the print job access URL in the session management database.
[Example]
Printer ID: abcde
Print job ID: 1234
Total number of pages of print image (JPEG file): 3 pages Data storage in PC2:
C: ¥ abcde1234 ¥
p1. jpg
p2. jpg
p3. jpg
URL: http: // www. abc. xxx / printdata /? pi = abcde & ji = 1234 & p = 1
Since this URL represents the JPEG file (p1.jpg) of the first page, the MFP 3 obtains the page number to be acquired in the query parameter “p” that represents the page number when acquiring the print image of each page. specify. In step S <b> 1013, the image conversion APP 144 converts the print image (PDF file) and deletes the print image (PDF file) downloaded in step S <b> 1012 from the RAM 201 after the conversion of the print image (JPEG file) of all pages is completed. .

続いて、画像変換APP144は、S1011〜S1013の何れかの処理においてエラーを検出したか否かを判断する(S1014)。このとき、画像変換APP144は、エラーを検出したと判断した場合、S1016に処理を移し、他方、エラーを検出しなかったと判断した場合、正常終了と判断してS1015に処理を移す。   Subsequently, the image conversion APP 144 determines whether an error has been detected in any of the processes of S1011 to S1013 (S1014). At this time, if it is determined that an error has been detected, the image conversion APP 144 proceeds to S1016. If it is determined that no error has been detected, the image conversion APP 144 determines that the error has ended normally and proceeds to S1015.

S1015では、画像変換APP144は、セッション管理データベース内の進??状況(Progress)に正常終了を表す「0」をセットし、ダウンロード・画像変換スレッドの処理を終了する(S1017)。S1016では、画像変換APP144は、セッション管理データベース内の進??状況(Progress)にエラー終了を表す「2」をセットし、ダウンロード・画像変換スレッドの処理を終了する(S1017)。S1017において、画像変換APP144は、セッション管理データベースからこの印刷ジョブに関する情報を削除し、セッション管理データベースを更新する。   In step S1015, the image conversion APP 144 determines whether the progress in the session management database is correct. ? “0” representing normal termination is set in the status (Progress), and the processing of the download / image conversion thread is terminated (S1017). In step S1016, the image conversion APP 144 determines whether the progress in the session management database is correct. ? “2” indicating an error end is set in the status (Progress), and the processing of the download / image conversion thread is ended (S1017). In step S1017, the image conversion APP 144 deletes information related to the print job from the session management database, and updates the session management database.

次に、画像変換APP144がエクスポートするWebサービスAPIの処理について図11を用いて説明する。図11(A)は、ConfirmProgress関数の処理に係るフローチャートの一例を示す図である。図11(B)は、JobCompleted関数の処理に係るフローチャートの一例を示す図である。   Next, Web service API processing exported by the image conversion APP 144 will be described with reference to FIG. FIG. 11A is a diagram illustrating an example of a flowchart relating to the process of the ConfirmProgress function. FIG. 11B is a diagram illustrating an example of a flowchart relating to processing of the JobCompleted function.

ここで、ConfirmProgress関数については、HTTPのGETメソッドが利用されている。JobCompleted関数については、SSL通信で暗号化されたHTTPSのPOSTメソッドが利用されている。これらのフローチャートに係るプログラムは、PC5に組み込まれ、HDD202に記憶されており、CPU204によりRAM201に読み出されて実行される。   Here, for the ConfirmProgress function, the HTTP GET method is used. For the JobCompleted function, the HTTPS POST method encrypted by SSL communication is used. The programs according to these flowcharts are incorporated in the PC 5 and stored in the HDD 202, and are read into the RAM 201 by the CPU 204 and executed.

図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)が生成する任意の番号である。
In S614 of FIG. 6, when the proxy APP 143 calls the Confirm Progress function, the image conversion APP 144 executes the process of the Confirm Progress function shown in FIG. As shown in FIG. 11A, the image conversion APP 144 starts the process of the Confirm Progress function (S1101), and executes the access token confirmation process described later in FIG. 15 (S1125). At this time, the following information is passed as an argument of this process (subroutine function).
・ Service ID
・ Printer ID issued by Cloud Print APP146
-Print job ID issued by cloud print APP146
Access token for using the image conversion APP 144 At this time, the HTTP GET request for the Confirm Progress function includes a session ID and a sequence as query parameters. The sequence is an arbitrary number generated by a GET request issuer (proxy APP 143 in this example).

続いて、画像変換APP144は、クエリパラメータに含まれているセッションIDを検索キーとして、セッション管理データベース内の進??状況(Progress)を確認する(S1102)。続いて、画像変換APP144は、進??状況(Progress)に正常終了を表す「0」がセットされていると判断した場合(S1103でYESの場合)、S1104に処理を移す。他方、画像変換APP144は、「0」以外(「1」または「2」)がセットされていると判断した場合(S1103でNOの場合)、S1105に処理を移す。   Subsequently, the image conversion APP 144 uses the session ID included in the query parameter as a search key to determine the progress in the session management database. ? The status (Progress) is confirmed (S1102). Subsequently, the image conversion APP 144 is a progress? ? If it is determined that “0” indicating normal termination is set in the status (Progress) (YES in S1103), the process proceeds to S1104. On the other hand, if the image conversion APP 144 determines that anything other than “0” (“1” or “2”) is set (NO in S1103), the process proceeds to S1105.

S1104では、画像変換APP144は、HTTPのGET要求に対するレスポンスのBODYに含める応答メッセージに「処理完了応答」をセットし、S1108に処理を移す。S1105では、画像変換APP144は、進??状況(Progress)を確認する。このとき、画像変換APP144は、進??状況(Progress)に処理中を表す「1」がセットされていると判断した場合、S1106に処理を移し、他方、「1」以外(「2」)がセットされている判断した場合、S1107に処理を移す。   In step S1104, the image conversion APP 144 sets “processing completion response” in the response message included in the BODY of the response to the HTTP GET request, and the process proceeds to step S1108. In step S1105, the image conversion APP 144 determines whether it is a progress? ? Check the status (Progress). At this time, the image conversion APP 144 is a progress? ? If it is determined that “1” indicating that processing is in progress (Progress) is set, the process proceeds to S1106. On the other hand, if it is determined that other than “1” (“2”) is set, the process proceeds to S1107. Move processing.

S1106では、画像変換APP144は、HTTPのGET要求に対するレスポンスのBODYに含める応答メッセージに「処理中応答」をセットし、S1108に処理を移す。S1107では、画像変換APP144は、HTTPのGET要求に対するレスポンスのBODYに含める応答メッセージに「エラー応答」をセットし、S1108に処理を移す。   In step S1106, the image conversion APP 144 sets “response in process” in the response message included in the BODY of the response to the HTTP GET request, and the process proceeds to step S1108. In S1107, the image conversion APP 144 sets “error response” in the response message included in the BODY of the response to the HTTP GET request, and moves the process to S1108.

S1108では、画像変換APP144は、GET要求の発行元(本例ではプロキシAPP143)に対して応答メッセージを送信し、ConfirmProgress関数の処理を終了する(S1109)。   In step S1108, the image conversion APP 144 transmits a response message to the GET request issuer (proxy APP 143 in this example), and ends the process of the ConfirmProgress function (S1109).

ここで、「処理完了応答」、「処理中応答」、及び「エラー応答」の詳細について説明する。これらの応答は、それぞれ、S1101においてGET要求のクエリパラメータに含まれていたシーケンスを用いて演算された結果であり、例えば、次に示す情報を文字列に変換した文字列情報で構成される。
「処理完了応答」 = シーケンス
「処理中応答」 = シーケンス+1
「エラー応答」 = シーケンス+2
このように、画像変換APP144は、HTTPのGET要求に対するレスポンスとしてXMLを使って定義した可視的な情報等ではなく一般には意味がわからない文字列情報を用いる。WebサービスAPIに対する適切でないアクセスによる誤動作や適切でない制御を防止することができる。なお、このような適切でないアクセスを防止する構成は、この例に限られるものではなく、ハッシュ化等、より複雑な演算を組み合わせてもよい。また、図8のS803において、プロキシAPP143がJobCompleted関数をコールすると、画像変換APP144が図11(B)に示すJobCompleted関数の処理を実行する。
Here, details of the “processing completion response”, “processing response”, and “error response” will be described. Each of these responses is a result calculated using the sequence included in the query parameter of the GET request in S1101, and is composed of, for example, character string information obtained by converting the following information into a character string.
"Processing completion response" = Sequence "Processing response" = Sequence + 1
"Error response" = Sequence + 2
As described above, the image conversion APP 144 uses character string information that does not generally have a meaning, rather than visible information defined using XML as a response to the HTTP GET request. It is possible to prevent malfunction or inappropriate control due to inappropriate access to the Web service API. Note that the configuration for preventing such inappropriate access is not limited to this example, and more complicated operations such as hashing may be combined. In S803 of FIG. 8, when the proxy APP 143 calls the JobCompleted function, the image conversion APP 144 executes the processing of the JobCompleted function shown in FIG.

図11(B)に示すように、画像変換APP144は、JobCompleted関数の処理を開始すると(S1121)、図15で後述するアクセストークンの確認処理を実行する(S1126)。このとき、次に示す情報をこの処理(サブルーチン関数)の引数として渡す。
・サービスID
・クラウド印刷APP146が発行したプリンタID
・クラウド印刷APP146が発行した印刷ジョブID
・画像変換APP144を利用するためのアクセストークン
そして、印刷画像(JPEGファイル)を削除し(S1122)、S1123に処理を移す。
As shown in FIG. 11B, when the image conversion APP 144 starts processing of the JobCompleted function (S1121), the image conversion APP 144 executes access token confirmation processing described later in FIG. 15 (S1126). At this time, the following information is passed as an argument of this process (subroutine function).
・ Service ID
・ Printer ID issued by Cloud Print APP146
-Print job ID issued by cloud print APP146
The access token for using the image conversion APP 144 and the print image (JPEG file) are deleted (S1122), and the process proceeds to S1123.

S1123では、画像変換APP144は、HTTPSのPOST要求に対するレスポンスのBODYに含める応答メッセージに、正常終了したことを表すSUCCESSをセットする。また、S1123では、画像変換APP144は、POST要求の発行元(本例ではプロキシAPP143)に対して応答メッセージを送信する。そして、画像変換APP144は、JobCompleted関数の処理を終了する(S1124)。   In step S <b> 1123, the image conversion APP 144 sets SUCCESS indicating the normal end in the response message included in the BODY of the response to the HTTPS POST request. In step S1123, the image conversion APP 144 transmits a response message to the POST request issuing source (the proxy APP 143 in this example). Then, the image conversion APP 144 ends the processing of the JobCompleted function (S1124).

次に、画像変換APP144がエクスポートするWebサービスAPIの処理について図12を用いて説明する。図12は、CreatePrintJobResult関数の処理に係るフローチャートの一例を示す図である。   Next, processing of the Web service API exported by the image conversion APP 144 will be described with reference to FIG. FIG. 12 is a diagram illustrating an example of a flowchart according to the process of the CreatePrintJobResult function.

CreatePrintJobResult関数については、SSL通信で暗号化されたHTTPSのPOSTメソッドが利用されている。このフローチャートに係るプログラムは、PC5に組み込まれ、HDD202に記憶されており、CPU204によりRAM201に読み出されて実行される。   As for the CreatePrintJobResult function, an HTTPS POST method encrypted by SSL communication is used. The program according to this flowchart is incorporated in the PC 5, stored in the HDD 202, read out to the RAM 201 by the CPU 204 and executed.

図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に処理を移す。
In S701 of FIG. 7, when the proxy APP 143 calls the CreatePrintJobResult function, the image conversion APP 144 executes processing of the CreatePrintJobResult function shown in FIG. As shown in FIG. 12, the image conversion APP 144 starts processing of the CreatePrintJobResult function (S1201), and executes access token confirmation processing described later in FIG. 15 (S1207). At this time, the following information is passed as an argument of this process (subroutine function).
・ Service ID
・ Printer ID issued by Cloud Print APP146
-Print job ID issued by cloud print APP146
Access token for using the image conversion APP 144 Subsequently, the image conversion APP 144 sets an access token for using the image conversion APP 144 in the response message included in the BODY of the response to the POST request of HTTPS (S1202). , Processing proceeds to S1203.

S1203では、画像変換APP144は、POST要求に対するレスポンスのBODYに含める応答メッセージに、印刷ジョブアクセスURL(JPEGファイルの格納先のURL)をセットし、S1204に処理を移す。S1204では、画像変換APP144は、POST要求に対するレスポンスのBODYに含める応答メッセージに、印刷画像(JPEGファイル)の総ページ数をセットし、S1205に処理を移す。S1205では、画像変換APP144は、POST要求の発行元(本例ではプロキシAPP143)に対して応答メッセージを送信し、CreatePrintJobResult関数の処理を終了する(S1206)。   In step S1203, the image conversion APP 144 sets the print job access URL (URL of the storage location of the JPEG file) in the response message included in the BODY of the response to the POST request, and the process proceeds to step S1204. In step S1204, the image conversion APP 144 sets the total number of pages of the print image (JPEG file) in the response message included in the BODY of the response to the POST request, and the process proceeds to step S1205. In step S1205, the image conversion APP 144 transmits a response message to the POST request issuer (proxy APP 143 in this example), and ends the process of the CreatePrintJobResult function (S1206).

図13は、WebサービスAPIのコーリングシーケンスの一例を示す図である。図13(A)は、プロキシAPP143とMFP3との間のコーリングシーケンスの一例を示す図である。図13(B)は、プロキシAPP143と画像変換APP144との間のコーリングシーケンスの一例を示す図である。   FIG. 13 is a diagram illustrating an example of a calling sequence of the Web service API. FIG. 13A is a diagram illustrating an example of a calling sequence between the proxy APP 143 and the MFP 3. FIG. 13B is a diagram illustrating an example of a calling sequence between the proxy APP 143 and the image conversion APP 144.

図13(A)に示すように、プロキシAPP143とMFP3との間では、MFP3は、プロキシAPP143がエクスポートしているWebサービスAPIをコールしている。即ち、CheckPrintJob関数、GetPrintJob関数、EndPrintJob関数の順で、プロキシAPP143がエクスポートしているWebサービスAPIがコールされる。   As shown in FIG. 13A, between the proxy APP 143 and the MFP 3, the MFP 3 calls the Web service API exported by the proxy APP 143. That is, the Web service API exported by the proxy APP 143 is called in the order of CheckPrintJob function, GetPrintJob function, and EndPrintJob function.

ここで、CheckPrintJob関数については(ポーリング処理だけが)、暗号化されていないHPPTのGETメソッドが利用され、それ以外の関数については全てSSL通信で暗号化されたHTTPSのGETメソッドが利用されている。このように、印刷ジョブの有無を確認するだけのためのポーリングに、暗号化されていないHTTPメソッドを利用することで、ポーリングに要する時間が低減され、ユーザの操作性に優れた周辺装置制御システムを実現することができる。また、ポーリングにかかる負荷を低減することができるので、例えば負荷に対応するための構成が必要なくなるので、システムの構築やプリンタやMFPのファームウェアの実装が容易となり、開発コストを削減できる。   Here, for the CheckPrintJob function (only the polling process), the unencrypted HPPT GET method is used, and for all other functions, the HTTPS GET method encrypted by SSL communication is used. . In this way, by using an unencrypted HTTP method for polling only for confirming the presence or absence of a print job, the peripheral device control system that reduces the time required for polling and is excellent in user operability Can be realized. Further, since the load on polling can be reduced, for example, a configuration for dealing with the load is not required, so that the system construction and the firmware of the printer and MFP can be easily implemented, and the development cost can be reduced.

また、図13(B)に示すように、プロキシAPP143と画像変換APP144との間では、プロキシAPP143は、画像変換APP144がエクスポートしているWebサービスAPIをコールしている。即ち、CreatePrintJobSet関数、ConfirmProgress関数、CreatePrintJobResult関数、JobCompleted関数の順で画像変換APP144がエクスポートしているWebサービスAPIがコールされる。   As shown in FIG. 13B, between the proxy APP 143 and the image conversion APP 144, the proxy APP 143 calls a Web service API exported by the image conversion APP 144. That is, the Web service API exported by the image conversion APP 144 is called in the order of CreatePrintJobSet function, ConfirmProgress function, CreatePrintJobResult function, and JobCompleted function.

ここで、ConfirmProgress関数については(ポーリング処理だけが)、暗号化されていないHPPTのGETメソッドが利用され、それ以外の関数については全てSSL通信で暗号化されたHTTPSのPOSTメソッドが利用されている。   Here, for the ConfirmProgress function (only the polling process), the unencrypted HPPT GET method is used, and for all other functions, the HTTPS POST method encrypted by SSL communication is used. .

このように、処理の進捗状況を確認するだけのためのポーリングに、暗号化されていないHTTPメソッドを利用することで、ポーリングに要する時間が低減され、ユーザの操作性に優れた周辺装置制御システムを実現することができる。また、ポーリングにかかる負荷を低減することができるので、例えば負荷に対応するための構成が必要なくなるので、システムの構築やアプリケーションの実装が容易となり、開発や運用コストを削減できる。   In this way, by using an unencrypted HTTP method for polling only for confirming the progress of processing, a peripheral device control system that reduces time required for polling and has excellent user operability. Can be realized. Further, since the load applied to polling can be reduced, for example, a configuration for dealing with the load is not required, so that the system construction and the application implementation are facilitated, and the development and operation costs can be reduced.

次に、画像変換APP144がエクスポートするWebサービスAPIの処理について図14を用いて説明する。図14は、RegisterAndAuth関数の処理に係るフローチャートの一例を示す図である。RegisterAndAuth関数については、SSL通信で暗号化されたHTTPSのPOSTメソッドが利用されている。このフローチャートに係るプログラムは、PC5に組み込まれ、HDD202に記憶されており、CPU204によりRAM201に読み出されて実行される。   Next, processing of the Web service API exported by the image conversion APP 144 will be described with reference to FIG. FIG. 14 is a diagram illustrating an example of a flowchart relating to processing of the RegisterAndAuth function. For the RegisterAndAuth function, the HTTPS POST method encrypted by SSL communication is used. The program according to this flowchart is incorporated in the PC 5, stored in the HDD 202, read out to the RAM 201 by the CPU 204 and executed.

図14では、エラーケースに関する処理を省略し、正常ケースだけを示す。図6のS622において、プロキシAPP143がRegisterAndAuth関数をコールすると、画像変換APP144のCPU204が図14に示すRegisterAndAuth関数の処理を実行する。S1401において、画像変換APP144は、RegisterAndAuth関数の処理を開始する。   In FIG. 14, processing related to error cases is omitted, and only normal cases are shown. In S622 of FIG. 6, when the proxy APP 143 calls the RegisterAndAuth function, the CPU 204 of the image conversion APP 144 executes the processing of the RegisterAndAuth function shown in FIG. In step S1401, the image conversion APP 144 starts processing of the RegisterAndAuth function.

S1407において、画像変換APP144は、RegisterAndAuth関数の処理開始時の時刻を取得する。S1402において、画像変換APP144は、プロキシAPP143から入力パラメータを含む前処理情報を受け取る。画像変換APP144は、入力パラメータとして「画像変換APP144を利用するユーザID」と「画像変換APP144を利用するユーザパスワード」を使用してユーザ認証を行う。ここでは、画像変換APP144は、該入力パラメータを使って、認証APP148がエクスポートするWebサービスAPIの1つであるユーザ認証関数をコールして、ユーザ認証を行う。認証APP148のHDD202はユーザの認証情報を保持する保持手段として機能し、認証APP148のCPU204は、ユーザが存在する場合にユーザ認証を行う。   In step S <b> 1407, the image conversion APP 144 acquires the time when the processing of the RegisterAndAuth function starts. In step S <b> 1402, the image conversion APP 144 receives preprocessing information including input parameters from the proxy APP 143. The image conversion APP 144 performs user authentication using “user ID using the image conversion APP 144” and “user password using the image conversion APP 144” as input parameters. Here, the image conversion APP 144 uses the input parameters to call a user authentication function that is one of the Web service APIs exported by the authentication APP 148 to perform user authentication. The HDD 202 of the authentication APP 148 functions as a holding unit that holds user authentication information, and the CPU 204 of the authentication APP 148 performs user authentication when a user exists.

例えば、ユーザ認証が初回の場合、認証APP148にはユーザが存在しない。また、記憶手段として機能するHDD202の記憶容量に起因して、上述の入力パラメータが古いとユーザが存在しない場合がある。上述の状況下では、S1402において、画像変換APP144はユーザ認証に失敗する。ユーザ認証に失敗した場合、画像変換APP144は、プロキシAPP143から入力パラメータとして「認証APP148を利用する管理者ID」と「認証APP148を利用する管理者パスワード」を使用する。ここでは、認証APP148がエクスポートするWebサービスAPIの1つであるログイン関数をコールしてログインする。   For example, when user authentication is the first time, there is no user in the authentication APP 148. Further, due to the storage capacity of the HDD 202 functioning as a storage unit, there may be a case where the user does not exist when the above input parameters are old. Under the above-described situation, the image conversion APP 144 fails in user authentication in S1402. When the user authentication fails, the image conversion APP 144 uses “an administrator ID using the authentication APP 148” and “an administrator password using the authentication APP 148” as input parameters from the proxy APP 143. Here, login is performed by calling a login function which is one of the Web service APIs exported by the authentication APP 148.

ログイン後、画像変換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で取得した時刻情報
ただし、セッション管理データベースへの保存時に既に同一の検索キーを持つ情報が保存されている場合は保存しない。
After login, the image conversion APP 144 performs new user registration using the “user ID that uses the image conversion APP 144” and the “user password that uses the image conversion APP 144”. Here, the image conversion APP 144 calls a user registration function that is one of the Web service APIs exported by the authentication APP 148. The image conversion APP 144 performs user authentication after new user registration or simultaneously with the registration process. When the user authentication is successful, the CPU 204 of the image conversion APP 144 calls an access token generation function that is one of Web service APIs exported by the authentication APP 148. Thereby, the CPU 204 of the image conversion APP 144 acquires an access token for using the image conversion APP 144 (S1403). The image conversion APP 144 stores an access token for using the image conversion APP 144 as a first access token in the session management database of the HDD 202 (S1404). In other words, the CPU 204 of the image conversion APP 144 functions as an acquisition unit that transmits an authentication request to the authentication APP 148 and acquires the first access token from the authentication APP 148. In addition, the session management database functions as a storage unit and stores the following information.
[Session Management Database]
Search key: Value generated by combining service ID, printer ID issued by cloud print APP 146, and print job ID issued by cloud print APP 146 Access token for using image conversion APP 144 Acquired in S1407 However, if information with the same search key is already saved when saved in the session management database, it is not saved.

S1404において、セッション管理データベースに検索キーが同一の情報が既に保存されていた場合は、プロキシAPP143がコールしたRegisterAndAuth関数の応答が一定時間経過しても受け取れなかったため、プロキシAPP143がRegisterAndAuth関数をリトライで再度コールしたと判断できる。プロキシAPP143はRegisterAndAuth関数をリトライでコールする際、入力パラメータはすべて初回のコール時と同じパラメータを設定する。従って、セッション管理データベースに情報を保存する際の検索キーが初回コール時とリトライコール時で同じ値となる。また、プロキシAPP143がWebサービスAPIのリトライを行った場合、プロキシAPP143は初回にコールしたRegisterAndAuth関数の応答は受け付けない。そして、リトライ処理でコールしたRegisterAndAuth関数の応答より取得したアクセストークンを、画像変換APP144にアクセスするためのアクセストークンとしてCreatePrintJobSet関数の入力パラメータとしてコールする。従って、セッション管理データベースには、リトライ処理で取得されたアクセストークンが保存されていなければならない。   In S1404, if the information with the same search key is already stored in the session management database, the response of the RegisterAndAuth function called by the proxy APP143 has not been received even after a predetermined time has passed, so the proxy APP143 retries the RegisterAndAuth function. It can be determined that the call has been made again. When the proxy APP 143 calls the RegisterAndAuth function by retry, the input parameters are all set to the same parameters as in the first call. Therefore, the search key for storing information in the session management database has the same value for the first call and for the retry call. Further, when the proxy APP 143 retries the Web service API, the proxy APP 143 does not accept the response of the RegisterAndAuth function that is called for the first time. Then, the access token obtained from the response of the RegisterAndAuth function called in the retry process is called as an input parameter of the CreatePrintJobSet function as an access token for accessing the image conversion APP 144. Therefore, the access token acquired by the retry process must be stored in the session management database.

S1408において、画像変換APP144は、S1404でセッション管理データベースへの保存時に同じ検索キーの情報が既に保存されていたかを判断する。同じ検索キーの情報が保存されていない場合は、S1404にてアクセストークンがセッション管理データベースに保存されている。既にセッション管理データベースに同じ検索キーの情報が保存されている場合は、保存されている時刻情報と、S1407で取得した時刻情報とを比較する(S1409)。   In step S1408, the image conversion APP 144 determines whether the same search key information has been stored in the session management database in step S1404. If the same search key information is not stored, the access token is stored in the session management database in S1404. If the same search key information is already stored in the session management database, the stored time information is compared with the time information acquired in S1407 (S1409).

比較結果がS1407で取得した時刻情報の方が新しい場合は、セッション管理データベースに保存されたアクセストークンを取得したRegisterAndAuth関数よりも、現在処理中のRegisterAndAuth関数の方が後でコールされたリトライ処理であると判断できる。よって、セッション管理データベースに保存されたアクセストークンと時刻情報を、それぞれS1403で取得したアクセストークンと、S1407で取得した時刻情報で更新する(S1410)。   If the time information acquired in S1407 is newer than the RegisterAndAuth function that has acquired the access token stored in the session management database, the RegisterAndAuth function that is currently being processed is a retry process that is called later. It can be judged that there is. Therefore, the access token and time information stored in the session management database are updated with the access token acquired in S1403 and the time information acquired in S1407, respectively (S1410).

比較結果がS1407で取得した時刻情報の方が古い、もしくは同じ場合には、逆にセッション管理データベースに保存されたアクセストークンを取得したRegisterAndAuth関数の方が、現在処理中のRegisterAndAuth関数よりも後でコールされたリトライ処理であると判断できる。よってセッション管理データベースを更新しない。これにより、セッション管理データベースにはリトライ処理でコールされたRegisterAndAuth関数の処理で取得されたアクセストークンが常に保存されることが保証される。また、リトライ処理が複数回発生した場合においても、必ず最後にコールされたリトライのRegisterAndAuth関数で取得されたアクセストークンが保存されることも保証される。   If the time information acquired in S1407 is older or the same as the comparison result, the RegisterAndAuth function that acquired the access token stored in the session management database is later than the RegisterAndAuth function that is currently being processed. It can be determined that the called retry processing has been performed. Therefore, the session management database is not updated. As a result, it is guaranteed that the access token acquired by the process of the RegisterAndAuth function called by the retry process is always stored in the session management database. Also, even when retry processing occurs a plurality of times, it is guaranteed that the access token acquired by the RegisterAndAuth function of the last called retry is saved.

S1405において、画像変換APP144は、HTTPSのPOST要求に対するレスポンスのBODYに含める応答メッセージを作成する。具体的には、画像変換APP144は、RegisterAndAuth関数が正常終了したことを表すSUCCESSとS1403で取得した画像変換APP144を利用するためのアクセストークンとをセットする。そして、画像変換APP144は、POST要求の発行元(本例ではプロキシAPP143)に対して応答メッセージを送信する(S1405)。S1406において、画像変換APP144は、RegisterAndAuth関数の処理を終了する。   In step S <b> 1405, the image conversion APP 144 creates a response message to be included in the BODY of the response to the HTTPS POST request. Specifically, the image conversion APP 144 sets SUCCESS indicating that the RegisterAndAuth function has been normally completed and an access token for using the image conversion APP 144 acquired in S1403. Then, the image conversion APP 144 transmits a response message to the POST request issuer (proxy APP 143 in this example) (S1405). In step S1406, the image conversion APP 144 ends the processing of the RegisterAndAuth function.

図15は、画像変換APP144のアクセストークンの確認処理に係るフローチャートの一例を示す図である。このフローチャートに係るプログラムは、PC5に組み込まれ、HDD202に記憶されており、CPU204によりRAM201に読み出されて実行される。   FIG. 15 is a diagram illustrating an example of a flowchart relating to the access token confirmation processing of the image conversion APP 144. The program according to this flowchart is incorporated in the PC 5, stored in the HDD 202, read out to the RAM 201 by the CPU 204 and executed.

アクセストークンの確認処理は、画像変換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は、この検索キーを使ってセッション管理データベースを検索する。
The access token confirmation process is a subroutine function in the image conversion APP 144, and the following information is passed as an argument of the subroutine function.
・ Service ID
・ Printer ID issued by Cloud Print APP146
-Print job ID issued by cloud print APP146
The access token image conversion APP 144 for using the image conversion APP 144 executes access token confirmation processing in S1018 of FIG. 10, S1125 of FIG. 11A, S1126 of FIG. 11B, and S1207 of FIG. . As shown in FIG. 15, the image conversion APP 144 starts an access token confirmation process in S1501. The image conversion APP 144 generates a search key by combining the service ID, the printer ID issued by the cloud print APP 146, and the print job ID issued by the cloud print APP 146 (S1502). In S1503, the image conversion APP 144 searches the session management database using this search key.

S1504において、画像変換APP144は、この検索キーに関連付けられた情報をセッション管理データベース内に発見した場合S1505に処理を移し、見つからなかった場合S1509に処理を移す。画像変換APP144のCPU204は、画像変換APP144を利用するためのアクセストークン(第2のアクセストークン)と、セッション管理データベースに保存されているアクセストークンが、一致するか否かを比較する。すなわち、画像変換APP144のCPU204は、第1のアクセストークンと第2のアクセストークンを比較する比較手段として機能する。S1506において、画像変換APP144は、一致すると判断した場合S1507へ進み、不一致と判断した場合S1509へ進む。   In step S1504, if the image conversion APP 144 finds information associated with the search key in the session management database, the image conversion APP 144 proceeds to step S1505. If not found, the image conversion APP 144 proceeds to step S1509. The CPU 204 of the image conversion APP 144 compares whether or not the access token (second access token) for using the image conversion APP 144 matches the access token stored in the session management database. That is, the CPU 204 of the image conversion APP 144 functions as a comparison unit that compares the first access token and the second access token. In step S1506, the image conversion APP 144 proceeds to step S1507 if it is determined that they match, and proceeds to step S1509 if it determines that they do not match.

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のアクセストークンが一致すると判定した場合は処理を実行し、一致しないと判定した場合は処理を中止する処理実行手段として機能する。   In step S1507, the image conversion APP 144 sets Success indicating success to a return value. Then, the image conversion APP 144 returns to the caller of this subroutine function (S1508). In step S1509, the image conversion APP 144 sets Failure indicating failure to a return value. Then, the image conversion APP 144 creates a response message in response to an HTTP POST request of the Web service API exported by the image conversion APP 144 that is the caller of this subroutine function. The CPU 204 of the image conversion APP 144 sets FAILURE indicating that the API has succeeded and ended in failure to the response message included in the response BODY, and stops the processing (S1509). Then, the image conversion APP 144 transmits a response message to the POST request issuer (in this example, the proxy APP 143) (S1510). Then, the image conversion APP 144 ends the subroutine function and the API processing (S1511). That is, here, the CPU 204 of the image conversion APP 144 functions as a process execution unit that executes a process when it is determined that the first access token and the second access token match, and stops the process when it is determined that they do not match. To do.

S1505において、画像変換APP144は比較処理を行う。具体的には、このサブルーチン関数の引数として渡された画像変換APP144を利用するためのアクセストークンと、セッション管理データベースに保存されている画像変換APP144を利用するためのアクセストークンを比較する。アクセストークンが一致するか否かを比較することにより、画像変換APPは、認証APP148がエクスポートするアクセストークン妥当性確認関数を利用することなくアクセストークンの妥当性を判断する。従って、プロキシAPP143が、画像変換APP144に対してコールする度に、画像変換APP144が、認証APP148がエクスポートするWebサービスAPIのアクセストークン妥当性確認関数をコールする必要が無い。その結果、パフォーマンスを向上することができる。   In step S1505, the image conversion APP 144 performs comparison processing. Specifically, the access token for using the image conversion APP 144 passed as an argument of the subroutine function is compared with the access token for using the image conversion APP 144 stored in the session management database. By comparing whether or not the access tokens match, the image conversion APP determines the validity of the access token without using the access token validation function exported by the authentication APP 148. Therefore, every time the proxy APP 143 calls the image conversion APP 144, the image conversion APP 144 does not need to call the access token validation function of the Web service API exported by the authentication APP 148. As a result, performance can be improved.

また、認証APP148のシステムの規模を小さくすることができ、構成を簡素化することができる。これにより、運用コストを下げることもできる。さらに、上位サービスであるプロキシAPP143になりすましたなりすましプログラムによる攻撃に対しても有効である。なりすましプログラムからのアクセスのような攻撃による誤動作や情報漏洩を防止することもできる。   Further, the scale of the system of the authentication APP 148 can be reduced, and the configuration can be simplified. Thereby, the operation cost can be lowered. Furthermore, it is also effective against an attack by a spoofing program impersonating the proxy APP 143, which is a higher-level service. It is also possible to prevent malfunctions and information leaks due to attacks such as access from spoofing programs.

さらに、上位サービスであるプロキシAPP143が誤動作した場合に、例えば、ある印刷ジョブに付与されたアクセストークンが、前記誤動作に伴って他の印刷ジョブに関連付けられてしまう可能性がある。このようなケースにおいても、画像変換APP144はその印刷ジョブを処理せずに、印刷を中止することができるので、誤印刷を防止することもできる。   Furthermore, when the proxy APP 143, which is a higher-level service, malfunctions, for example, an access token given to a certain print job may be associated with another print job due to the malfunction. Even in such a case, the image conversion APP 144 can stop printing without processing the print job, so that erroneous printing can be prevented.

さらに、認証APP143にユーザが存在しない場合は、画像変換APP144が新規ユーザ登録を行う。これによりユーザ自身がユーザ登録を行う必要がなく、ユーザビリティーが向上する。   Further, when there is no user in the authentication APP 143, the image conversion APP 144 performs new user registration. This eliminates the need for the user to perform user registration, and improves usability.

上述した本実施形態の情報処理システムは、以下に示す効果を奏することができる。本実施形態の情報処理システムは、画像変換APPを利用するためのアクセストークンの比較処理結果に基づいて、当該アクセストークンの妥当性を判断する。従って、本実施形態の情報処理システムによれば、Webサービスアプリケーションが提供するWebサービスAPIの多数コールを抑制し、パフォーマンスを向上することができる。また、Webサービスアプリケーションのシステムの規模を小さくすることができ、構成を簡素化することができる。また、構成を簡素化することにより、運用コストを下げることができる。   The information processing system of the present embodiment described above can achieve the following effects. The information processing system according to the present embodiment determines the validity of the access token based on the comparison processing result of the access token for using the image conversion APP. Therefore, according to the information processing system of the present embodiment, it is possible to suppress a large number of calls of the Web service API provided by the Web service application and improve performance. In addition, the scale of the Web service application system can be reduced, and the configuration can be simplified. Further, the operation cost can be reduced by simplifying the configuration.

また、本実施形態の情報処理システムによれば、Webサービスアプリケーションになりすましたなりすましプログラムによる攻撃時における誤動作や情報漏洩を防止することができる。また、Webサービスアプリケーションが誤動作した場合に、該当しない処理やジョブ(例えば、他人の印刷ジョブ)等を誤って処理することがないようにすることができる。   Further, according to the information processing system of the present embodiment, it is possible to prevent malfunction and information leakage at the time of an attack by a spoofing program impersonating a Web service application. In addition, when a Web service application malfunctions, it is possible to prevent erroneous processing of a non-applicable process or job (for example, another person's print job).

また、本実施形態の情報処理システムによれば、ポーリングによる画像変換処理の進捗状況の確認処理や、ポーリングによる印刷ジョブの有無の確認処理に時間を要することがなくなり、ユーザの操作性を向上することができる。さらに、MFP3のような性能の低い廉価版のプリンタや複合機のファームウェアの実装にも支障をきたすことなく、各処理に時間を要することもなくなるため、ユーザの操作性を向上することができる。   Further, according to the information processing system of the present embodiment, time is not required for the confirmation process of the progress status of the image conversion process by polling and the confirmation process of the presence / absence of a print job by polling, thereby improving user operability. be able to. Furthermore, since it does not hinder the implementation of firmware of a low-cost printer or multifunction machine having a low performance like the MFP 3 and each process does not take time, the operability for the user can be improved.

また、本実施形態の情報処理システムによれば、認証サービスより画像変換APPを利用する為のアクセストークンを取得する処理に遅延が生じ、上位サービスから認証要求のリトライ処理が実行された場合でも、正しく上位サービスが処理実行要求の送信時に使用するアクセストークンの妥当性を判断することが出来る。   In addition, according to the information processing system of the present embodiment, a delay occurs in the process of acquiring an access token for using the image conversion APP from the authentication service, and even when the retry process of the authentication request is executed from the upper service, It is possible to correctly determine the validity of the access token used by the upper service when transmitting the process execution request.

上述した実施形態では、情報処理装置としてパーソナルコンピュータを想定した。しかしながら、この例に限られるものではなく、例えばDVDプレーヤー、ゲーム、セットトップボックス、インターネット家電等、同様な使用方法が可能な任意の情報処理装置(端末)に対して適用することができる。   In the embodiment described above, a personal computer is assumed as the information processing apparatus. However, the present invention is not limited to this example, and can be applied to any information processing apparatus (terminal) that can be used in a similar manner, such as a DVD player, a game, a set-top box, and an Internet home appliance.

また、上述した実施形態では、周辺装置としてMFPを例示した。しかしながら、周辺装置として他に、複写機、ファクシミリ、スキャナ、デジタルカメラ、及びこれらの複合機能を備える装置等の何れかであってもよい。   In the above-described embodiment, the MFP is exemplified as the peripheral device. However, the peripheral device may be any one of a copying machine, a facsimile, a scanner, a digital camera, and a device having a composite function thereof.

また、上述した実施形態では、OSに例としてWindows(登録商標)と同等のOSを使用したが、このOSに限られるものではなく、任意のOSを使用することができる。また、上述した実施形態では、ネットワーク4の構成例としてEthernet(登録商標)を用いたが、この例に限られるものではなく、他の任意のネットワーク構成であってもよい。   In the above-described embodiment, an OS equivalent to Windows (registered trademark) is used as an example of the OS. However, the present invention is not limited to this OS, and an arbitrary OS can be used. In the above-described embodiment, Ethernet (registered trademark) is used as a configuration example of the network 4. However, the configuration is not limited to this example, and any other network configuration may be used.

また、上述した実施形態では、PC1、PC2、PC5、PC7とMFP3、MFP103との間のインタフェースとして、Ethernet(登録商標)を採用した。しかしながら、このインタフェースに限られることなく、例えば、無線LAN、IEEE1394、Bluetooth(登録商標)、USB等の任意のインタフェースを用いるようにしてもよい。また、各種のアプリケーション(ファームウェア)における機能、上述したフローチャートに係る処理の一部、又は全部を専用のハードウェアを用いて構成してもよい。   In the embodiment described above, Ethernet (registered trademark) is used as an interface between the PC 1, PC 2, PC 5, PC 7 and the MFP 3, MFP 103. However, the present invention is not limited to this interface, and any interface such as a wireless LAN, IEEE 1394, Bluetooth (registered trademark), USB, or the like may be used. Moreover, you may comprise the function in various applications (firmware), a part of the process which concerns on the flowchart mentioned above, or all using dedicated hardware.

(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、プロキシAPP143が、RegisterAndAuth関数をリトライでコールする際に、画像変換APP144がセッション管理データベースに情報を保存する際に検索キーの生成に用いるサービスIDやプリンタID、印刷ジョブIDを初回にコールしたRegisterAndAuth関数の設定値とは異なる値を設定する。これにより、リトライによるRegisterAndAuth関数の再コールが発生しても、セッション管理データベースに同じ検索キーで情報を保存することがなくなる。
(Other examples)
The present invention can also be realized by executing the following processing. That is, when the proxy APP 143 calls the RegisterAndAuth function by retry, the image conversion APP 144 first calls the service ID, printer ID, and print job ID used to generate the search key when storing information in the session management database. A value different from the setting value of the RegisterAndAuth function is set. This prevents information from being stored in the session management database with the same search key even if the RegisterAndAuth function is recalled due to a retry.

また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(コンピュータプログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そしてそのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。   The present invention can also be realized by executing the following processing. That is, software (computer program) that realizes the functions of the above-described embodiments is supplied to a system or apparatus via a network or various storage media. Then, the computer (or CPU, MPU, etc.) of the system or apparatus reads out and executes the program. In this case, the program and the storage medium storing the program constitute the present invention.

143 プロキシAPP、144 画像変換APP、148 認証APP
143 Proxy APP, 144 Image Conversion APP, 148 Authentication 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)ことを特徴とする情報処理システム。
A relay service device (143) that performs relay processing related to a service provided to a user by a providing device (3, 103) via a network, and an intermediate service device that communicates with the relay service device and performs related processing regarding the service (148) (144) and an authentication service device that receives an authentication request from the intermediate service device and performs an authentication process,
The relay service device
Transmission means (S622, S612) for transmitting an authentication request and a process execution request to the intermediate service device;
The intermediate service device is:
Acquisition means (S1407) for acquiring a first time at which the authentication request from the relay service device is received;
Obtaining means (S1402, S1403) for transmitting the authentication request from the relay service device to the authentication service device and obtaining a first access token from the authentication service device that has been successfully authenticated;
Storage means for storing the first access token in association with the first time (S1404);
A comparison unit (S1505) for comparing a first access token stored in the storage unit with a second access token included in the processing execution request when the processing execution request is received;
If the comparing means determines that the first access token and the second access token match, the processing received from the intermediate service device is executed (S1507), and the first access token and the second access token are executed. If it is determined that the access tokens do not match, the processing is not executed (S1509),
The storage means is further stored in association with the first time and the third access token when the third access token has already been saved by the storage means (S1408). Comparing means (S1409) for comparing with a second time, and updating the third access token to the first access token only when the first time is newer than the second time. An information processing system characterized by storing (S1410).
前記送信手段は、ユーザの認証情報と前記中継サービス装置の認証情報とを含めた認証要求を前記中間サービス装置に送信し、
前記取得手段は、前記認証サービスが前記ユーザの認証情報を用いて前記認証に成功しなかった場合は、前記中継サービス装置の認証情報を用いて前記ユーザの認証情報を前記認証サービス装置に登録する登録処理を実行することを特徴とする請求項1に記載の情報処理システム。
The transmitting means transmits an authentication request including authentication information of a user and authentication information of the relay service device to the intermediate service device,
If the authentication service has not succeeded in the authentication using the user authentication information, the acquisition unit registers the user authentication information in the authentication service device using the authentication information of the relay service device. The information processing system according to claim 1, wherein registration processing is executed.
前記認証サービスは前記ユーザの認証情報を保持する保持手段を備え、
前記取得手段は、前記認証サービスが前記ユーザの認証情報に対応する認証情報を保持している場合に、前記認証サービス装置が発行する前記第1のアクセストークンを取得することを特徴とする請求項1又は請求項2に記載の情報処理システム。
The authentication service includes holding means for holding authentication information of the user,
The acquisition means acquires the first access token issued by the authentication service device when the authentication service holds authentication information corresponding to the authentication information of the user. The information processing system according to claim 1 or 2.
前記中間サービスは、前記中継サービス装置から受け取ったPDFファイルをJPEGファイルに変換する画像変換サービスであることを特徴とする請求項1乃至請求項3の何れか一項に記載の情報処理システム。   The information processing system according to any one of claims 1 to 3, wherein the intermediate service is an image conversion service that converts a PDF file received from the relay service apparatus into a JPEG file. ネットワークを介して提供装置がユーザに提供するサービスに関する中継処理を行う中継サービス装置と通信し、認証サービス装置に対して認証要求を行う中間サービス装置であって、
前記中継サービス装置から認証要求と処理実行要求とを受け付ける受付手段と、
前記中継サービス装置からの前記認証要求を受け付けた第1の時刻を取得する取得手段と、
前記認証要求を前記認証サービス装置に送信し、認証に成功した前記認証サービス装置から第1のアクセストークンを取得する取得手段と、
前記第1のアクセストークンを前記第1の時刻と関連づけて保存する記憶手段と、
前記処理実行要求を受け付けた時に、前記記憶手段に保存されている第1のアクセストークンと前記処理実行要求に含まれる第2のアクセストークンを比較する比較手段と、
前記比較手段が前記第1のアクセストークンと前記第2のアクセストークンが一致すると判定した場合、前記中間サービス装置から受け付けた処理を実行し、前記第1のアクセストークンと前記第2のアクセストークンが一致しないと判定した場合、前記処理を実行しない処理実行手段とを備え、
前記記憶手段はさらに、前記記憶手段によって既に第3のアクセストークンが保存されている場合には、前記第1の時刻と、前記第3のアクセストークンに関連づけられて保存されている第2の時刻とを比較する比較手段を備え、前記第1の時刻が前記第2の時刻よりも新しい場合にのみ前記第3のアクセストークンを前記第1のアクセストークンに更新して保存することを特徴とする中間サービス装置。
An intermediate service device that communicates with a relay service device that performs relay processing related to a service provided to a user by a providing device via a network, and makes an authentication request to the authentication service device,
Receiving means for receiving an authentication request and a process execution request from the relay service device;
Obtaining means for obtaining a first time at which the authentication request from the relay service device is received;
Obtaining means for sending the authentication request to the authentication service device and obtaining a first access token from the authentication service device that has been successfully authenticated;
Storage means for storing the first access token in association with the first time;
A comparison unit that compares a first access token stored in the storage unit with a second access token included in the processing execution request when the processing execution request is received;
When the comparing means determines that the first access token and the second access token match, the processing received from the intermediate service device is executed, and the first access token and the second access token are When it is determined that they do not match, a process execution unit that does not execute the process is provided,
The storage means further includes a first time and a second time stored in association with the third access token when the third access token is already stored by the storage means. And the third access token is updated to the first access token and stored only when the first time is newer than the second time. Intermediate service device.
ネットワークを介して提供装置がユーザに提供するサービスに関する中継処理を行う中継サービス装置と、前記中継サービス装置と通信し前記サービスに関する関連処理を行う中間サービス装置と、前記中間サービス装置からの認証要求を受け付けて認証処理を行う認証サービス装置とを備える情報処理システムにおける認証方法であって、
前記中継サービス装置が、前記中間サービス装置に認証要求を行う要求工程と、
前記中間サービス装置が、前記中継サービス装置から前記認証要求を受け付けた第1の時刻を取得する取得工程と、
前記中継サービス装置から前記認証要求を受け付け、認証に成功した前記認証サービス装置から第1のアクセストークンを取得する取得工程と、
前記中間サービス装置が、前記第1のアクセストークンを前記第1の時刻と関連づけて保存する記憶工程と、
前記中間サービス装置が、前記処理実行要求を受け付けた時に、前記記憶手段に保存されている第1のアクセストークンと前記処理実行要求に含まれる第2のアクセストークンを比較する比較工程と、
前記中間サービス装置が、前記第1のアクセストークンと前記第2のアクセストークンが一致すると判定した場合、前記中間サービス装置から受け付けた処理を実行し、前記第1のアクセストークンと前記第2のアクセストークンが一致しないと判定した場合、前記処理を実行しない処理実行工程とを含み、
前記記憶工程はさらに、前記記憶工程によって既に第3のアクセストークンが保存されている場合には、前記第1の時刻と、前記第3のアクセストークンに関連づけられて保存されている第2の時刻とを比較する比較工程を備え、前記第1の時刻が前記第2の時刻よりも新しい場合にのみ前記第3のアクセストークンを前記第1のアクセストークンに更新して保存することを特徴とする認証方法。
A relay service device that performs relay processing related to a service provided by a providing device to a user via a network; an intermediate service device that communicates with the relay service device and performs related processing related to the service; and an authentication request from the intermediate service device. An authentication method in an information processing system including an authentication service device that receives and performs authentication processing,
A request step in which the relay service device makes an authentication request to the intermediate service device;
An acquisition step in which the intermediate service device acquires a first time at which the authentication request is received from the relay service device;
Receiving the authentication request from the relay service device and obtaining a first access token from the authentication service device that has been successfully authenticated;
A storage step in which the intermediate service device stores the first access token in association with the first time;
A comparison step of comparing the first access token stored in the storage unit with the second access token included in the process execution request when the intermediate service device receives the process execution request;
When the intermediate service device determines that the first access token and the second access token match, the intermediate service device executes a process received from the intermediate service device, and executes the first access token and the second access token. If it is determined that the tokens do not match, a process execution step that does not execute the process,
In the storage step, when the third access token is already stored by the storage step, the first time and the second time stored in association with the third access token are stored. And the third access token is updated and stored in the first access token only when the first time is newer than the second time. Authentication method.
請求項6に記載の認証方法をコンピュータに実行させることを特徴とするコンピュータプログラム。
A computer program for causing a computer to execute the authentication method according to claim 6.
JP2014109628A 2014-05-28 2014-05-28 Information processing system, information processing apparatus, information processing method and computer program Pending JP2015225479A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014109628A JP2015225479A (en) 2014-05-28 2014-05-28 Information processing system, information processing apparatus, information processing method and computer program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014109628A JP2015225479A (en) 2014-05-28 2014-05-28 Information processing system, information processing apparatus, information processing method and computer program

Publications (1)

Publication Number Publication Date
JP2015225479A true JP2015225479A (en) 2015-12-14

Family

ID=54842178

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014109628A Pending JP2015225479A (en) 2014-05-28 2014-05-28 Information processing system, information processing apparatus, information processing method and computer program

Country Status (1)

Country Link
JP (1) JP2015225479A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107241725A (en) * 2017-07-14 2017-10-10 上海斐讯数据通信技术有限公司 WAP, wireless terminal connect the authentication method of WAP
JP2018075826A (en) * 2016-08-31 2018-05-17 京セラドキュメントソリューションズ株式会社 Image processing and error handling system as well as method for printing linearized and non-linearized portable document format (pdf) file

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018075826A (en) * 2016-08-31 2018-05-17 京セラドキュメントソリューションズ株式会社 Image processing and error handling system as well as method for printing linearized and non-linearized portable document format (pdf) file
CN107241725A (en) * 2017-07-14 2017-10-10 上海斐讯数据通信技术有限公司 WAP, wireless terminal connect the authentication method of WAP

Similar Documents

Publication Publication Date Title
JP5875351B2 (en) Information processing system, information processing apparatus, authentication method, and computer program
US10628099B2 (en) Multifunctional image processing apparatus with user registration features
JP5843605B2 (en) PRINT CONTROL DEVICE, PRINT CONTROL METHOD, INFORMATION PROCESSING SYSTEM, INFORMATION PROCESSING DEVICE, INFORMATION PROCESSING METHOD, AND COMPUTER PROGRAM
JP4690449B2 (en) Print control system, print control server, image forming apparatus, processing method thereof, and program
JP5887860B2 (en) Image forming apparatus, image forming system, control method, and program.
JP2010020712A (en) Information processing apparatus, method for controlling information processing apparatus, storage medium, and program
JP4958118B2 (en) Image forming apparatus, information processing system, processing method thereof, and program
JP6873642B2 (en) Image forming apparatus, its image communication method, and a program
JP4615498B2 (en) Image processing apparatus, image processing apparatus control system, image processing apparatus control method, program, and computer-readable recording medium
JP6790797B2 (en) Image processing systems, image forming devices, application execution methods, and computer programs
JP6813784B2 (en) Image processing device and its processing method and program
JP6282081B2 (en) Image processing apparatus, image processing apparatus control method, and program
JP5442418B2 (en) MFP, MFP control system, program and recording medium
JP4846830B2 (en) Image forming apparatus and information processing method and program thereof
JP2008211747A (en) Image processing apparatus, server apparatus, task processing method, storage medium, and program
JP2015225479A (en) Information processing system, information processing apparatus, information processing method and computer program
JP6813783B2 (en) Image processing device and its processing method and program
JP7022519B2 (en) Mobile terminals, their control methods, and storage media
JP5943761B2 (en) Peripheral device, information processing device, communication control method, and program
JP5694495B2 (en) Compound machine
JP2020005204A (en) Image processing system and control method and program thereof
JP5376546B2 (en) Image forming apparatus, information processing system, processing method thereof, and program
JP2007087399A (en) Method for display adjustment of image generation device
JP2024007023A (en) Image processing system, relay server, and program
JP2023050546A (en) Image forming apparatus