Star CloudPRNT プロトコル開発者ガイド
はじめに
Star CloudPRNT はリモートサーバー(以下サーバー)からの印刷を可能とするプロトコルです。 遠隔地プリンターへの印刷を可能とするために、ユーザーは Star CloudPRNT プロトコルに従ったサーバーの用意が必要となります。
Star CloudPRNT は簡単な実装、およびセキュリティの確保が可能となるよう設計されています。汎用の http/https を使用することにより、 REST/JSON および汎用の印刷ジョブデータフォーマットを渡します。 それはウェブ開発者に良く知られる技術であり、接続のための特定のファイアウォールやポート開放、 トンネリングなどを必要としません。
概要
全ての Star CloudPRNT 通信はhttpプロトコルを利用して、任意のWebサーバーを用いることができます。 http POST メソッドを使用するクライアント(Star CloudPRNT 対応プリンター)は一定時間(※1)毎に、 プリンターおよびプリンターに接続されている周辺機器デバイスの最新の状態を読み取り、この情報を含めたリクエストを サーバーに送信します。このリクエストに対して、サーバーは印刷可能な印刷ジョブの有無および詳細を応答します。 クライアントはそのあと、http GET メソッドを使用し要求されたデータ形式にて印刷ジョブを取得します。 最後にクライアントは DELETE またはサーバーの印刷状態を知らせるエラーコード付き POST を応答します。 POSTに関するネゴシエーションはエンコードされた JSON 情報を使用します。また、http GET (エンコードされたURL パラメーターをともなう)を使用し要求されたデータ形式で送信される印刷ジョブ要求および、http DELETE (エンコードされたURL パラメーターをともなう)を使用し印刷ジョブに関する通知をする印刷完了通知要求は、JSON情報を使用しません。
(※1) Web Config UIの設定により時間間隔の調整が可能です。
Star CloudPRNTにおけるクライアントからの各リクエストに対する、サーバーからの各レスポンスの設定項目の概要は以下になります。(詳細は各POST、GET、DELETEのページを参照してください。)
メソッド | レスポンスヘッダー | レスポンスBody |
---|---|---|
POST | HTTPステータスコード | Star CloudPRNTで定義されたJSONデータ |
GET | HTTPステータスコード、Star CloudPRNTで定義されたカスタムヘッダー(オプション) | クライアントから指定されたメディアタイプでエンコードされた印刷ジョブのためのコンテンツデータ (JSONデータは含みません) |
DELETE | HTTPステータスコード | 無し (JSONデータは含みません) |
また、サーバーからの各メソッドのレスポンスに関する各HTTPレスポンスステータスコードを受け取り後のプリンターの動作例は下記となります。
メソッド | ステータスコード | プリンター動作 |
---|---|---|
POST | 200 | サーバーからのレスポンスを解析し、内容に応じて各種リクエストを発行します。 印刷要求がない場合: 特別な処理はせず、サーバーポーリング(POST)を継続します。 印刷要求がある場合: 印刷ジョブリクエスト(GET)を発行します。 clientAction要求がある場合: clientAction要求の実施、および結果を含めたサーバーポーリング(POST)を行います。 |
POST | 200以外 | サーバーからのレスポンスを解析せず、サーバーポーリング(POST)を継続します。 |
GET | 200 | 印刷完了後、codeパラメーターに200 OKを付加して印刷ジョブ完了確認(DELETE)を発行します。 |
GET | 200以外 | codeパラメーターにエラーコード520(もしくは521)を付加して印刷ジョブ完了確認(DELETE)を発行します。 |
DELETE | 200 / 200以外 | サーバーポーリング(POST)を発行します。 |