Star CloudPRNT プロトコル開発者ガイド
はじめに
Star CloudPRNT はリモートサーバーからの印刷を可能とするプロトコルです。遠隔地デバイスへの印刷を 可能とするために、ユーザーは CloudPRNT プロトコルに従ったサーバーの用意が必要となります。
CloudPRNT は簡単な実装、可変性、及びセキュリティの確保が可能となるよう設計されています。汎用の http/https を使用することにより、 REST/JSON 及び汎用の印刷ジョブデータフォーマットを渡します。 それはウェブ開発者に良く知られる技術であり、接続のための特定のファイアウォールやポート開放、 トンネリングなどを必要としません。
概要
全ての CloudPRNT 通信は単一の URL を経由して扱われ、あらゆるウェブサーバーによりホストとなること ができます。 http POST メソッドを使用するクライアント(CloudPRNT 対応プリンタ)はデバイスの状態を 更新し、固定間隔においてリクエストを送り、サーバーは印刷可能な印刷ジョブの有無及び詳細を応答します。 クライアントはその後、http GET メソッドを使用し要求されたデータ形式にて印刷ジョブを取得します。 最後にクライアントは DELETE またはサーバーの印刷状態を知らせるエラーコード付き POST を応答します。 POSTに関するネゴシエーションはエンコードされた JSON 情報を使用します。また、http GET (エンコードされた URL パラメータを伴う)を使用し要求されたデータ形式で送信される印刷ジョブ要求および、http DELETE (エンコードされたURL パラメータを伴う)を使用し印刷ジョブに関する通知をする印刷完了通知要求は、JSON情報を使用しません。
CloudPRNTにおけるクライアントからの各リクエストに対する、サーバーからの各レスポンスの設定項目の概要は以下になります。(詳細は各POST、GET、DELETEのページを参照してください。)
メソッド | レスポンスヘッダー | レスポンスBody |
---|---|---|
POST | HTTPステータスコード | CloudPRNTで定義されたJSONデータ |
GET | HTTPステータスコード、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)を発行します。 |