JP6188842B2 - 印刷システム、サーバおよびその制御方法、並びにプログラム - Google Patents

印刷システム、サーバおよびその制御方法、並びにプログラム Download PDF

Info

Publication number
JP6188842B2
JP6188842B2 JP2016021222A JP2016021222A JP6188842B2 JP 6188842 B2 JP6188842 B2 JP 6188842B2 JP 2016021222 A JP2016021222 A JP 2016021222A JP 2016021222 A JP2016021222 A JP 2016021222A JP 6188842 B2 JP6188842 B2 JP 6188842B2
Authority
JP
Japan
Prior art keywords
printer
print
server
print data
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016021222A
Other languages
English (en)
Other versions
JP2016095878A (ja
Inventor
内川 慎一
慎一 内川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2016021222A priority Critical patent/JP6188842B2/ja
Publication of JP2016095878A publication Critical patent/JP2016095878A/ja
Application granted granted Critical
Publication of JP6188842B2 publication Critical patent/JP6188842B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Accessory Devices And Overall Control Thereof (AREA)

Description

本発明は、印刷システム、ーバおよびその制御方法、並びにプログラムに関する。
近年、クラウドサービスとしてインターネット上にサービスを公開することによりビジネス展開がされてきている。プリントサーバもインターネット上のプリントサービスとして機能を提供することが求められてきている。このような背景から、プリントサーバからプリンタがインターネット越しに印刷データを取得し、プルプリントを行うようなクラウドプルプリントシステムが求められている。
インターネット上のプリントサーバを利用してプル型のプリントを行う技術として、JAVAスクリプト(JavaScript:登録商標)を利用したプルプリント方式が存在する。JAVAスクリプトを利用したプルプリント方式とは、プリントサーバが印刷を行うプリンタに対して依頼したいコマンドを送付するJAVAスクリプトを生成し、Webブラウザに送信する。JAVAスクリプトを受信したWebブラウザは、受信したJAVAスクリプトを実行すると、JAVAスクリプトにて指定されたプリンタへのプルプリントのリクエストを送信することで、プリンタに対して印刷を依頼する方式である。このとき、印刷データは、URL等により指定される。なお、指定されたURLから印刷データを取得して印刷を行うプルプリント技術の説明は非特許文献1に記載されている。
特開2007−257481号公報
"Print Service Definition Version 1.0 For Web Services on Devices"、[online]、2007年1月29日、Microsoft、[平成23年6月22日検索]、インターネット<URL:http://msdn.microsoft.com/ja-jp/windows/hardware/gg463146>
イントラネット内にプリントサーバとプリンタが存在する印刷システムでは、プリントサーバから直接プリンタにネットワーク通信を行うことで、依頼した印刷ジョブの状況確認やプリンタで発生したイベントの通知先の登録・削除依頼を行うことができた。
しかし、クラウドサービスのようにインターネット上に展開するプリントサーバからは、プリンタとの間にファイアウォールが配置され、直接プリンタに対してネットワークでアクセスすることができない。そこで、JAVAスクリプトを利用したプルプリント方式では、クラウドサービスを応用してサービス提供するプリントサーバがJAVAスクリプトに印刷要求だけではなく、ジョブ終了通知イベントを送信するコマンドを含める方法がある。プリンタは、ジョブ終了通知イベントを送信するプリントサーバのアドレスをイベント通知先としてメモリ領域に保持しておき、ジョブの終了通知をプリントサーバに送信することで印刷ジョブの状況をプリントサーバに通知することを実現している。
しかしながら、イベントによるジョブ終了通知だけではプリントサーバでジョブの状況が把握できない場合が発生してしまう場合がある。例えば、ジョブ終了イベントは、印刷ジョブが完了した場合にしか通知されない。ここで、イベントが登録された状況でジョブが完了していないのにプリンタが再起動されてしまうと、揮発メモリに保持されたプリントサーバへのイベント通知がクリアされてしまう。その結果、再起動後のプリンタは、プリントサーバに対して情報を送信することができない。このような場合、プリントサーバはプリンタに依頼したジョブの終了通知が送信されない理由がプリンタでジョブが完了していないのか、再起動されたなどの要因により、イベント送信ができない状況なのか判断することができない。その結果、プリントサーバは、印刷を依頼したプリンタにおける依頼中の印刷ジョブの状況を把握することができないため、当該印刷ジョブを管理し続けてしまう。
また、別の課題も存在する。プリンタに対してイベント登録を行った場合、イベント通知が不要になるとプリンタに対してイベント削除依頼を行うことで、プリンタに登録されたイベント情報を削除する必要がある。しかし、上述したように、クラウドサービスのようなインターネット上に展開するプリントサーバからは、ファイアウォール越しに存在するプリンタに対して、直接プリンタに対してイベントの削除依頼を行うことができない。そのため、JAVAスクリプトを利用したプルプリント方式では印刷時の処理を応用し、イベント削除依頼も印刷者のWebブラウザを介してプリンタに通知することでクラウド上のプリントサービスからプリンタに対してイベント削除依頼を行うことが考えられる。
しかし、このイベント削除依頼の手法には課題が存在する。印刷を行う場合、印刷要求を行うクライアントがWebブラウザを用いてプリントサーバに対して接続を行うことで、印刷要求を送信することが可能である。しかし、印刷要求を送信したクライアントが印刷完了後に、再度Webブラウザを用いてプリントサーバに接続することが保障されない。
つまり、クライアントが印刷要求だけ行い、プリントサーバとの接続を切断してしまうと、プリントサーバは、クライアントを介したプリンタへの依頼ができないため、プリンタにおけるイベント通知先の削除を行うことができない。プリンタに登録されたイベントの削除が行われないと、プリンタは登録されたイベント送信先に対して、イベントの送信をし続けたり、不要なイベント送信先情報を保持し続けてしまう。その結果、プリンタのイベント登録数が上限に達してしまい、新規にほかの印刷者がプリンタに対してイベント登録を行うことができなくなる。
このイベントを不適切な宛先に対して送信し続けてしまう課題を解決するために、特許文献1ではイベント送信を行った結果、エラーが返信された場合には、印刷デバイスがそのイベント送信先を宛先から削除するという技術である。しかし、イベント送信先が成功を応答した場合は削除されないため、同一宛先に対する印刷デバイスによるイベントの複数回にわたる配信は継続される。よって、イベントに対するエラーが発生しない場合は、イベント通知先が印刷デバイスにて保持され続けてしまう。
本発明は、上記の課題に鑑みてなされたものである。本発明の目的は、実行されている印刷ジョブの情報、及び、当該印刷ジョブの実行が終了したことを示す情報のいずれも所定の時間が経過するまでに受信されない場合、ユーザは、当該印刷ジョブのステータスが不明であることを履歴で確認できる仕組みを提供することにある。
上記目的を達成するために本願発明の一態様に係る印刷システムは以下のような構成を備える。即ち、印刷装置とサーバを含む印刷システムであって、前記印刷装置は、シートに画像を形成する画像形成手段と、サーバから印刷データを取得する取得手段と、前記取得手段にて取得した印刷データに基づく画像形成ジョブを前記画像形成手段に実行させる実行手段と、前記画像形成ジョブに関する情報を前記サーバに通知する通知手段とを有し、前記サーバは、前記印刷装置に印刷データを送信する送信手段と、前記印刷データに基づく画像形成ジョブが異常終了したことを示す情報を前記印刷装置から取得し、前記印刷データの識別情報に関連付けて第1のステータス情報を記憶する第1の記憶手段と、前記印刷装置との通信が所定期間行われていないことに基づき、前記印刷データの識別情報に関連付けて前記第1のステータス情報と異なる第2のステータス情報を記憶する第2の記憶手段と、を有する。
本願発明により、実行されている印刷ジョブの情報、及び、当該印刷ジョブの実行が終了したことを示す情報のいずれも所定の時間が経過するまでに受信されない場合、ユーザは、当該印刷ジョブのステータスが不明であることを履歴で確認することができる。
印刷システム全体構成図。 印刷システムハードウェア構成図。 印刷システムのサービス構成図。 印刷システムソフトウェア構成図。 印刷システムシーケンス図。 プリントサーバにおける印刷要求受信フローチャート。 プリンタにおけるポーリング登録フローチャート。 プリンタにおけるポーリング処理フローチャート。 プリントサーバにおけるポーリング受信フローチャート。 プリントサーバにおけるポーリング管理フローチャート。 プリントサーバで管理するプリンタリストの構成例を示す図。 プリントサーバで管理する印刷ジョブリストの構成例を示す図。 プリントサーバで管理する印刷履歴の構成例を示す図。 ポーリング登録リクエストの記述例を示す図。 ポーリング登録レスポンスの記述例を示す図。 ポーリングリクエストの記述例を示す図。 ポーリングレスポンスの記述例を示す図。 プリンタで管理するポーリングリストの構成例を示す図。 プリントサーバにおけるイベント受信処理フローチャート。
以下、本発明を実施するための最良の形態について図面を用いて説明する。
[システム構成]
図1は、本実施形態に係る印刷システムの全体構成を示す図である。図1において、クライアント端末101、プリントサーバ100、プリンタ102は、ネットワーク104、105を介して接続されている。ルータ103は外部ネットワークであるネットワーク104と内部ネットワークである105を接続するものである。なお、図1には不図示であるが、ネットワーク104とネットワーク105との間にはファイアウォールが配置され、ネットワーク間の通信はセキュリティ等の観点から制限されている。本実施形態においては、別途示した場合を除いて、ネットワーク105に存在する機器に対し、ネットワーク104に位置する各種機器を起因として、接続を行うことはできないものとする。ネットワーク104の例として、インターネットが挙げられ、またネットワーク105の例として、LAN(Local Area Network)が挙げられる。
クライアント端末101は、例えば、デスクトップパソコン、ノートパソコン、モバイルパソコン、PDA(パーソナルデータアシスタント)等が該当するが、プログラムの実行環境が内蔵された携帯電話であってもよい。クライアント端末101では、本実施形態にて用いられるWebブラウザ(不図示)のプログラムを実行する環境が内蔵されている。
クライアント端末101からプリントサーバ100上の文書をプリンタ102で印刷を行う場合、プリントサーバ100は、クライアント端末101のWebブラウザから送信された印刷リクエストを受信する。
プリントサーバ100は、印刷リクエストを実現するためのJAVAスクリプトを作成し、クライアント端末101のWebブラウザに送信する。クライアント端末101のWebブラウザがJAVAスクリプトを受信し、そのJAVAスクリプトを実行すると印刷を行うプリンタに対してプルプリント要求が送信される。プリンタ102は、クライアント端末101から受信したプルプリント要求に従ってプリントサーバ100から印刷する文書データを取得し、印刷を行う。なお、本願発明においては、クライアント端末101が有するWebブラウザが実行するスクリプト言語として、JAVAスクリプトを用いているがこれに限定するものではない。例えば、Webブラウザが実行可能なスクリプト言語であれば、他の言語を用いて実現しても構わない。
[ハードウェア構成]
図2は、本実施形態に係る印刷システムのクライアント端末101、プリントサーバ100、およびプリンタ102のハードウェア構成図である。なお、本実施形態において、プリントサーバ100とクライアント端末101の構成は同じものとし、ここではクライアント端末101を例にとって説明する。
まず、クライアント端末101の構成について説明する。図2において、CPU202は装置全体の制御を行う。また、CPU202は、ハードディスク(HDD)205等の記憶手段に格納されているアプリケーションプログラム、OS等を実行し、プログラムの実行に必要な情報、ファイル等を一時的にRAM203等に格納する制御を行う。ROM204は、記憶手段として機能し、内部には、基本I/Oプログラム等のプログラム、印刷処理の際に使用する印刷データ、プリンタ情報等の各種データを記憶する。RAM203は、一時記憶手段として機能し、CPU202の主メモリ、ワークエリア等として機能する。HDD205は、外部記憶手段の一つであり、大容量メモリとして機能する。また、HDD205は、Webブラウザ等のアプリケーションプログラム、プリントサーバプログラム、OS、関連プログラム等を格納している。
ディスプレイ206は、表示手段であり、キーボード207から入力したコマンドや、プリンタのステータス等を表示する。外部装置I/F208は、プリンタ、USB機器、周辺機器を接続するためのI/Fである。キーボード207は、ユーザが指示を入力するための指示入力手段である。システムバス201は、印刷システムのプリントサーバ内におけるデータの流れを司る。ネットワークインタフェースカード(NIC)219は、NIC209、各種ネットワークを介して外部装置とのデータのやり取りを行う。なお、上記コンピュータの構成はその一例であり、図2の構成例に限定されるものではない。例えば、データやプログラムの格納先は、その特徴に応じてROM、RAM、HDDなどで変更することも可能である。
次にプリンタ102の構成例について説明する。コントローラ230は、プリンタ102の制御系を司る。CPU210は、装置全体の制御を行い、システムバス218に接続される各種デバイスとのアクセスを統括的に制御する。この制御は、ROM212に記憶された制御プログラム等、あるいはディスクコントローラ(DKC216)を介して接続された外部メモリ223に記憶された制御プログラムやリソースデータ(資源情報)等に基づいて行われる。RAM211は、CPU210の主メモリ、ワークエリア等として機能し、増設ポート(不図示)に接続されるオプションRAMによりメモリ容量を拡張することができるように構成されている。HDD213は、大容量メモリとして機能する外部記憶手段であり、プルプリントアプリケーションプログラム及び関係プログラム等を格納している。
操作パネル(操作部)221は、プルプリントの操作を行うユーザインタフェースやプルプリント切り替えボタンが配置される。また、操作パネル221には、プリンタ102の動作モード等の設定やプリンタ102の動作状況の表示、複写指定等の操作を行うためのボタンおよび液晶パネルやLED214等の表示部も配置される。ネットワークインタフェースカード(NIC)219は、各種ネットワークを介して外部装置とのデータのやり取りを行う。
なお、図2で示したプリントエンジン220は、既知の印刷技術を利用するものであり、好適な実施系として例えば電子写真方式(レーザービーム方式)やインクジェット方式、昇華方(熱転写)方式等が挙げられる。しかし、これに限定するものではない。ラスタコントローラ215は、PDL・PDF形式である印刷データを画像データに変換するコントローラである。機器I/F217は、USB等で接続可能な外部機器との接続I/Fである。また、図2には不図示であるが、各装置内には、時刻を取得する部位があり、各処理部からの要求に応じて、要求を受信した時点での時刻を通知できるものとする。
[モジュール構成]
図3は、本実施形態に係る印刷システムにて提供されるモジュール間の関係を示す構成図である。
プリントサーバ100は、プリンタ管理サービス306を提供する。プリンタ管理サービス306は、印刷を行うプリンタそれぞれの情報を保持するサービスである。プリンタ管理サービス306は、図11に示すようなプリンタリストを保有する。プリンタリストには、プリントサーバ100がプリンタ102を一意に識別するためのプリンタIDやプリンタ名情報、プリンタのIPアドレス情報が含まれる。さらに、プリンタリストには、それらに加え、プリンタ102に依頼したポーリング通知の状況としてポーリングを受信した時間とポーリング間隔時間とが登録されている。なお、これに限定するものではなく、他のプリンタに情報を含んでもよい。例えば、プリンタIPアドレスは、グローバルアドレスとプライベートアドレスとをそれぞれ有してもよいし、どのネットワークに含まれるかを示す情報を更に有してもよい。
プリンタIDは、プリントサーバ内部でプリンタ102を一意に区別するためのID(識別子)である。本実施形態において、ポーリング通知とは、プリンタ102が一定時間間隔でプリントサーバ100に対して印刷ジョブの処理状況を送信する通信を意味する。本実施形態では、このポーリング通知でプリンタ102は、プリントサーバ100に対して処理中のジョブ一覧(処理中ジョブ一覧)を含むデータ(図16)をプリントサーバ100に送信する。ここで送信されるデータの具体的な例は、図16を用いて後述する。
プリントサーバ100は、ポーリング通知の状況として、図11に示すように、各プリンタから前回受信したポーリング時刻(ポーリング受信時間)を保持する。なお、最初のポーリング時刻は、プリンタ102にてポーリング登録が正常に完了した時刻となる。ポーリング間隔は、プリンタ102から指定されたポーリング通知の間隔時間であり、定期的にポーリング通知が行われる際には、この情報にて指定された間隔でポーリングが行われる。
また、プリンタリストに登録された情報に基づいて、プリンタ102からの定期ポーリングの有無の確認も行う。例えば、図11のプリンタID“P003”に示すように、ポーリング通知が行われていないプリンタには、ポーリング受信時間とポーリング間隔時間の情報は設定されていないものとする。
印刷ジョブ管理サービス305は、ユーザから要望された印刷ジョブを管理するサービスであり、文書データ等を印刷データとしてストレージ307に保持し、管理する。また、印刷ジョブ管理サービス305は、図12に示すような印刷ジョブリストを保有し、プリンタ102に対して依頼を行っている印刷ジョブを管理する。
クライアントジョブIDはプリントサーバ内部で印刷ジョブを一意に区別するためのID(識別子)である。プリンタIDは、図11に示すプリンタリストにて示されるプリンタIDに対応しており、どのプリンタに対して印刷ジョブの実行を依頼したかを一意に区別するための情報である。プリンタジョブIDは、印刷ジョブの実行を依頼したプリンタ側で当該印刷ジョブに対して発行されたジョブIDである。プリントサーバ100が、プリンタ102と印刷ジョブの情報をやり取りする場合、プリンタ102が発行したプリンタジョブIDを用いて印刷ジョブを識別する。文書IDとは、プリントサーバ100内のストレージ307に保持された文書を一意に識別する情報であり、印刷している文書を区別するための情報である。
ストレージ307は、プリントサーバ100の情報処理装置に内蔵するHDDまたは、外部接続しているHDD、または、ネットワークストレージ等の記憶装置である。このストレージ307には、印刷ジョブにて印刷を指定される文書データが保持されている。ストレージは例えば、HDD205等にて実現される。
Webアプリケーション302は、クライアント端末101上に動作するWebブラウザ301で表示可能なWebページを作成する。そして、Webアプリケーション302は、クライアント端末101のWebブラウザ301からのリクエストに応答し、作成したWebページを返信する。また、Webアプリケーション302は、クライアント端末101のWebブラウザ301がプリンタに要求を送信するためのJAVAスクリプトを作成し、Webブラウザ301へ送信する。
Webサービス303は、プリンタ102との通信を行うモジュールである。本実施形態において、プリンタ102との通信とは、プリンタ102からの印刷データ取得要求、ポーリング通知、およびイベント通知が挙げられる。Webサービス303は、プリンタ102から送信されたこれらの要求を受信すると、それぞれの要求に従った処理を行う。そして、Webサービス303は、プリンタ102に対して処理結果としての応答を返す。
なお、印刷ジョブ管理サービス305、Webアプリケーション302、Webサービス303はそれぞれ独立したプログラムである。なお、本実施形態では、1のプリントサーバ100にてこれらのモジュールによる機能を実現する構成としたが、別々の情報処理装置に配置することも可能である。つまり、これらのモジュールは、それぞれネットワークに繋がった情報処理装置に配置され、それぞれのモジュール間で通信を行う。
プリンタ102のプルプリントアプリケーション304は、プリンタ102でプルプリントを実行するアプリケーションである。プルプリントアプリケーション304は、印刷ジョブの実行要求に伴って、印刷データのURLを通知されると、そのURLから印刷データを取得して印刷を行うプルプリント機能を備える。さらには、プルプリントアプリケーション304は、登録されたポーリング通知先に対して一定時間間隔で処理中のジョブ一覧を送信するポーリング機能と、プリンタで印刷するジョブが完了した時にイベント通知を行う機能も備える。このときの通知先は、プリントサーバ100となる。
クライアント端末101のWebブラウザ301は、プリントサーバ100から送信されたJAVAスクリプトが実行可能なWebブラウザである。
[ソフトウェア構成]
図4は、本実施形態に係る印刷システムにおける、図3に示した各モジュールの更に詳細なソフトウェア構成図である。まず、図4(A)を用いて、プリントサーバ100の構成について説明する。プリントサーバ100が有する印刷ジョブ管理サービス305の印刷データ管理部401は、印刷データ(文書データ)の管理を行う。ここでの印刷データの管理とは、印刷データ管理部401は、Webサービス303から印刷データの取得要求を受け取ると、ストレージ307から指定の印刷データを取得し、Webサービス303に渡すことである。また、印刷データ管理部401は、必要に応じて、印刷データの追加、削除を行う。
印刷ジョブ情報管理部402は、クライアントからクライアント端末101を介して要求された印刷ジョブ情報や印刷履歴情報を管理する。ここで管理される印刷ジョブ情報は、図12に示す印刷ジョブリストであり、印刷ジョブを一意に識別するID情報や出力するプリンタを特定する情報で構成される。また、印刷履歴情報とは、図13に示す印刷履歴情報であり、ジョブを識別するID情報や印刷結果情報が存在する。この印刷履歴情報に含まれる印刷結果情報は、そのステータスとして本実施形態では、印刷ジョブの「正常終了」、「エラー(終了)」、「不明」を含むものとする。
ここで、「エラー(終了)」ステータスは、プリンタに指示した印刷ジョブであるが、その印刷ジョブが監視できなくなった状態の印刷ジョブに対して設定される。つまり、正常終了の通知を受けないまま、プリンタ側での実行が終了してしまっている印刷ジョブに対して設定される。「不明」ステータスは、ポーリング通知を受信できなくなったプリンタに対して実行を指示した印刷ジョブに対して設定される。ポーリング通知に基づいた履歴情報の設定に関しては、各処理フローを用いて後述する。なお、印刷ジョブリストや印刷履歴情報の構成は図12および図13に示すものに限定するものではなく、更なる情報が含まれていても構わない。
プリンタ管理サービス306のプリンタ情報管理部403では、図11に示すプリンタリストを管理する。また、プリンタ情報管理部403は、プリンタリストに登録されたプリンタのポーリング状況を定期的に確認し、プリンタにて印刷中のジョブに問題が発生していないか確認する。ここでの確認とは、例えば、ポーリング受信時間からポーリング間隔の時間分が経過していないかなどを確認する。
Webアプリケーション302のリクエスト受付部406は、クライアント端末101のWebブラウザ301から、印刷リクエスト等を受けるモジュールである。セッション管理部404は、Webブラウザ301からのリクエストをセッションとして管理する。ページ生成部405は、Webブラウザ301からのリクエストに応じてWeb画面を作成し、生成したWeb画面をWebブラウザ301に返信する。ここで、Webブラウザ301に送信するのはWeb画面だけではなく、ページ生成部405はプリンタ102に送信するリクエストをJAVAスクリプトで生成してWebブラウザ301に返信する場合もある。
Webサービス303のリクエスト受付部409は、プリンタ102のプルプリントアプリケーション304から印刷ジョブ取得要求や、印刷ジョブのステータス通知イベント、ポーリング通知イベントを受信するモジュールである。印刷ジョブ取得部407は、リクエスト受付部409が印刷ジョブ取得要求を受けると印刷ジョブ管理サービス305に印刷データ取得要求を行い、指定された印刷データを取得し、クライアント端末101に対して送信する。
印刷イベント受信部408は、プリンタ102から印刷処理が完了したジョブのステータス情報を受信するモジュールである。印刷イベント受信部408は、プリンタ102からジョブに対する印刷処理の完了のイベントを受信すると、図12に示す印刷ジョブリストから当該ジョブを削除する。そして、印刷イベント受信部408は、当該ジョブを図13に示す印刷履歴情報に指定された最終ステータス情報(印刷結果)とともに登録する。
ポーリング受信処理部400は、プリンタ102から定期的に送信される処理中ジョブ一覧情報から印刷ジョブ情報管理部402が保有する印刷ジョブリストの妥当性を判断するモジュールである。ポーリング受信処理部400は、受信した処理中ジョブ一覧と保持している印刷ジョブリスト(図12)の情報とを比較し、処理中とされるジョブの間に差異がある場合には、差異が発生しないように同期をとる。ここでの処理中であるジョブの同期の取り方については、後述する。
次に、図4(b)を用いて、プリンタ102の構成について述べる。プルプリントアプリケーション304のWebサービス受付部410は、クライアント端末101のWebブラウザ301から、印刷リクエストやイベント登録、ポーリング登録等を受ける。Webサービス送信部411は、プリントサーバ100のWebサービス303に対して、印刷ジョブ取得リクエストや、印刷ジョブの状態変更イベント通知や定期的に処理中のジョブ一覧送信を行うポーリング通知等を行う。
印刷ジョブ取得部412は、プルプリント要求で受信したURLから、Webサービス送信部411を介してプリントサーバ100のWebサービス303から印刷データを取得する。そして、印刷ジョブ取得部412は、取得した印刷データを印刷ジョブ投入部416に送る。印刷ジョブ投入部416は、コントローラ230に印刷データを送信する。その結果、コントローラ230が受信した印刷データを用いて印刷処理を実行する。
印刷制御部415は、印刷ジョブのステータスをコントローラ230から受け取り、ジョブ管理部414に通知する。ジョブ管理部414は、通知された印刷ジョブのステータスがイベント送信条件に合致するかどうかを判断する。そして、条件に合致する場合にはジョブ管理部414は、Webサービス送信部411を介してイベント通知を行う。
またジョブ管理部414は、クライアント端末101からポーリング通知指示を受けた場合、ポーリング通知指示にて指定された宛先に対して定期的に処理中のジョブリストを通知するポーリング通知を行う。ジョブ管理部414は、ポーリング通知に関連して、図18に示すようなポーリング監視リストを備え、どの通知先に対してどのくらいの間隔でどのような内容を送信するかを管理する。ここで、通知内容に指定されたActiveJobIdsは、プリンタが処理中の印刷ジョブのうち、ポーリング通知の宛先にて管理されている印刷ジョブの情報を処理中ジョブ一覧として送信することを示す。この処理中ジョブ一覧には、プリントサーバ100側でジョブを識別できるように、例えば、図12に示すクライアントジョブID、プリンタジョブIDなどが含まれる。プルプリントコントローラ413は、プルプリントアプリケーション304全体の動作管理を行うものであり、各部への動作指示等は、このコントローラ経由で行う。
[処理フロー]
次に、図5を用いて、本願発明に係るJAVAスクリプトを利用したプルプリント印刷方式について説明する。本願発明では、正確にプリンタで処理中のジョブ状況を把握するために、印刷要求時にジョブ完了イベントだけでなく、ポーリング要望を行う。以降、本実施形態の印刷のシーケンスを説明する。
クライアント端末101は、プリントサーバ100のWebアプリケーション302にWebブラウザ301を用いて接続を行い、印刷を行う文書と、出力を行うプリンタとを指定して印刷の実行を指示する(F100)。なお、このとき印刷設定等を指定することも考えられるが、本願発明に直接関係ないため、説明を省略する。
プリントサーバ100のWebアプリケーション302は、クライアント端末101から印刷リクエストを受信するとページ生成部405で、クライアント端末101が印刷を行うプリンタに対してリクエストを送信するためのJAVAスクリプトを生成する。ここで生成されるJAVAスクリプトには、クライアント端末101のWebブラウザ301がプリンタ102に対して以下の処理を要求するための記述が含まれる。
・定期的に、プリントサーバに対して処理中の印刷ジョブ一覧を通知させるポーリング指示(ポーリング通知の実施依頼)
・印刷ジョブのイベント登録指示(ジョブの終了通知の実施依頼)
・プルプリント指示(印刷指示(印刷データの取得要求の実施依頼を含む))
プリントサーバ100は、作成したJAVAスクリプトを、クライアント端末101のWebブラウザ301に対して印刷リクエストの応答として送信する(F101)。
クライアント端末101のWebブラウザ301は、プリントサーバ100から送信されたJAVAスクリプトを受信し、実行する。ここで受信したJAVAスクリプトには、上述した各種依頼を行うための処理が記述されている。Webブラウザ301がこの処理を順番に実行することでクライアント端末101とプリンタ102とが通信を行い、その結果をクライアント端末101は受信する(F102〜F107)。
クライアント端末101のWebブラウザ301が送信するプリンタ102へのポーリング指示のリクエスト(F102)は、例えば図14のようなリクエストである。図14の内容を説明する。まず、PollTo要素の配下のAddress要素にて宛先が指定されている。更に、この宛先に対して、Interval要素に指定された時間の間隔(ここでは秒で指定)でポーリング通知を実施する。このとき通知される情報としては、ClientId要素に指定されたクライアントのジョブに関して、Name要素で指定されたJOB情報(通知内容)をポーリングで通知することを示している。図14に示す例では、通知先“http://10.254.0.27:5357/70da246b-fea1-4ed3-b7ce-195c50ac07e1”に対して、60秒間隔で印刷指示者がCJ200である処理中ジョブ一覧(ActiveJobIds)を送信することを意味している。
プリンタ102からクライアント端末101への、ポーリング指示に対する応答(F103)は、例えば図15のような応答となる。図15の内容を説明する。ここでは、プリンタ102によってポーリング指示が受け付けられたことを示している。ただし、Webブラウザ301により指示したポーリング間隔が“60(秒)”であるのに対して(図14のInterval要素)、プリンタ102からはその応答において、ポーリング間隔は“180(秒)”が指定されている(図15のInterval要素)。ポーリング間隔は、プリンタ102の設定や状況に応じてプリンタ側が主導で決定してもよい。プリンタ側が決定した情報については、クライアント端末101がプリントサーバ100に通知することとなる。
クライアント端末101のWebブラウザ301は、プリンタ102に対してイベントの登録指示を行う(F104)。ここではWebブラウザ301は、プリンタ102が指示を受けた印刷ジョブの実行が完了した際に、プリントサーバ100に対して、その旨を通知するように指示する。そして、プリンタ102は、Webブラウザ301からの指示に対して、登録ができた場合に、その登録情報(イベントID)を、当該要求を受け付けた旨と共に通知する(F105)。
そして、クライアント端末101のWebブラウザ301は、プリンタ102に対して、プルプリント要求を行う。プリンタ102は、受信したプルプリント要求に対して発行したジョブIDを、当該要求を受け付けた旨と共に通知する。
クライアント端末101は、ポーリング指示の結果(F103)、イベント登録指示の結果(F105)、印刷指示の結果(F107)を受信すると、受信した処理結果とプリンタ102から通知されたID情報とをプリントサーバ100に送信する(F108)。なお、何らかの理由により、いずれかの指示が失敗した場合には、プリンタ102はプリントサーバ101にその旨を通知する。
各指示の受付が正常に完了した後、プリンタ102は、印刷指示(F106)のプルプリント要求で指定されたURLから印刷データを取得し(F109、F110)、印刷処理を実行する。
プリンタ102は、F103で指定したポーリング間隔時間毎にプリントサーバ100に対して、ポーリング通知として、処理中ジョブ一覧を定期的に通知する(F111)。例えば、F106にて要求されたプルプリントが完了していない状況でポーリング間隔時間が経過した場合、プリンタ102はプリントサーバ100に対して、F106で受信した処理中のジョブ情報を含めた情報を送信する(F108)。
F106で要求を受け付けたプルプリントが完了後にポーリング間隔時間になると、処理中の印刷ジョブが存在しないため、プリントサーバ100に対して処理中のジョブ情報が存在しない通知を行う(F115)。
プリンタ102からのポーリング通知(F111、F115)は、例えば図16に示すような構成のリクエストデータとなる。ここでは、処理中ジョブ一覧として、ActiveJobIds要素の配下に処理中のJobの数だけJobIdSet要素としてJob情報が記載される。図16に示す例の場合、プリンタジョブIDが“J300”、クライアントジョブIDが“CJ200”のジョブが存在することを通知している。この情報は、プリントサーバ100の印刷ジョブ管理サービス305が管理する印刷ジョブリスト(図12)のプリンタジョブID、クライアントジョブIDに対応する。もし、F115のように処理中のジョブが存在しない場合、JobIdSet情報が存在しないリクエストが送信されることとなる。
プリントサーバ100はプリンタ102からポーリング通知を受信すると、プリンタ102に対してポーリングを継続させるかどうかを判断する。継続させる場合は、プリントサーバ100は、プリンタ102にポーリングの応答としてポーリング通知の継続指示を行い(F112)、終了させる場合は、プリンタ102にポーリング通知の終了指示を行う(F116)。
プリンタ102のポーリングに対するレスポンスの通信(F112、F116)は例えば図17に示すような構成のレスポンスデータとなる。ポーリングレスポンスでは、前述のようにプリントサーバ100からプリンタ102に対してポーリングを継続するか否かの指示が含まれている。図17に示すように、EndPolling要素に“true”と設定されている場合はポーリング終了指示であり、“false”と設定されている場合にはポーリングは継続する指示である。
[印刷要求の登録処理]
図6は、プリントサーバ100がクライアント端末101から印刷要求(F100)を受信した場合にROM204に格納されたプログラムに従って、CPU202が動作するWebアプリケーション302のフローチャートである。
プリントサーバ100は、印刷要求を受信すると、クライアント端末101から指定されたジョブを出力するプリンタのプリンタIDと文書IDとを図12に示す印刷ジョブリストに登録する。そして、プリントサーバ100は、印刷要求を行ったクライアント端末101のクライアントジョブIDを取得する(S001)。
次に、プリントサーバ100は、クライアント端末101がプリンタ102に対して行うリクエストが記述された、当該リクエストを発行させるためのJAVAスクリプトを作成する(S002)。このJAVAスクリプトには、クライアント端末がプリンタに対して実行させるための以下の処理が記載されている。
・プリントサーバへ処理中のジョブ一覧を定期的に通知するポーリング指示
・プリントサーバが指示したジョブの終了をプリントサーバへ通知する指示
・プリントサーバ上のデータをプルプリント(印刷)する指示
ここで記述された処理は、上述した図5に示すF102、F104、F106の指示にそれぞれ対応する。
そして、プリントサーバ100は、作成したJAVAスクリプトを、クライアント端末101の印刷要求に対する応答として送信する(S003)。
クライアント端末101は、プリントサーバ100から受信したJAVAスクリプトを実行し、その結果をプリントサーバ100のWebアプリケーション302に送信する。ここで送信されるJAVAスクリプトの実行結果には、プリンタ102へのポーリング指示、イベント登録指示、印刷要求処理の結果と、プリンタ102からクライアント端末101に対して送信されたID情報などが含まれている。
プリントサーバ100のWebアプリケーション302は、クライアント端末101から送信された情報を受信すると(S004)、プリンタ102への各種リクエストが成功したか否かを判断する(S005)。リクエストが成功した場合(S005にてYES)、プリントサーバ100は、プリンタ102から受信したポーリング間隔時間をプリンタリスト(図11)に含まれるプリンタに対応付けて登録する。さらに、プリントサーバ100は、プリンタリスト(図11)のポーリング受信時間の項目に現在時刻を設定する(S006)。また、プリントサーバ100は、印刷ジョブリスト(図12)には、プリンタ102から受信したプリンタジョブIDとイベントIDとを該当ジョブに対応付けて登録を行う(S007)。そして、本処理フローを終了する。
クライアント端末101からリクエストが失敗したと通知があった場合(S005にてNO)、プリントサーバ100は、印刷ジョブリストから該当ジョブの削除を行う(S008)。そして、プリントサーバ100は、削除したジョブの情報を図13に示す印刷履歴に登録して(S009)、処理を終了する。
[ポーリング通知先の登録処理]
図7は、プリンタ102のROM212に格納されたプログラムに従ってCPU210が動作する処理であり、Webサービス受付部410がポーリング指示(F102)を受信した場合のフローチャートである。
プリンタ102は、図14に示すようなポーリング指示を受信すると、ポーリングの通知先がポーリング監視リスト(図18)に既に登録済みであるかどうかを判断する(S100)。ポーリングの通知先がポーリング監視リストに登録済みである場合(S100にてYES)、プリンタ102は、ポーリング通知先の登録処理は行わず、ポーリング情報登録(S104)に進む。
ポーリング通知先が未登録である場合(S100にてNO)、プリンタ102は、ポーリング通知先がポーリング監視リストに登録可能かを確認する。通知先の登録が可能な場合(S101にてYES)、プリンタ102は、ポーリング監視リストへのポーリング通知先の登録(S102)およびポーリング間隔の決定と登録(S103)を行う。もし、ポーリング通知先の登録数が上限に達しているなどの理由で登録できない場合(S101にてNO)、プリンタ102は、ポーリングの登録の要求者に対してポーリング登録のエラー通知を行う(S106)。そして、本処理フローを終了する。
プリンタ102は、ポーリング通知先をポーリング監視リストに登録後、ポーリング通知情報の登録を行う(S104)。ここでのポーリング通知情報とは、ポーリング通知間隔と、前回、ポーリングを行ってからの経過時間を指す。本実施形態において、ポーリング送信を行うと、経過時間は“0”にリセットされ、その後経過した時間だけこの数字がカウントされていく。
プリンタ102は、ポーリング通知情報を登録した後、ポーリング指示に対するポーリング登録応答として、登録が成功した旨の情報を応答として送信する(S105)。そして、本処理フローを終了する。
[ポーリング処理]
図8は、プリンタ102のROM212に格納されたプログラムに従ってCPU210が動作する処理であり、プルプリントアプリケーション304のジョブ管理部414のポーリング処理を説明するフローチャートである。図5におけるF111やF115に対応する。
プリンタ102が有するプルプリントアプリケーション304のジョブ管理部414は、ポーリング監視リストにおけるポーリング通知先の登録の有無を確認し、ポーリング通知先の存在を検知すると(S110にてYES)、一定時間Wait処理を行う。その後、ジョブ管理部414は、Waitした時間をポーリング監視リスト(図18)にて管理している経過時間に加算する(S111)。
ジョブ管理部414は、登録されたポーリング通知先それぞれに対して、前回のポーリング通知からポーリング間隔時間が経過したかを確認する(S112)。確認した結果、ポーリング間隔に達していない場合(S112にてNO)、ジョブ管理部414は、再度一定時間Wait処理を行う(S111)。経過時間が登録されたポーリング間隔に達している場合(S112にてYES)、ジョブ管理部414は、経過時間を“0”にリセットする(S113)。そして、ジョブ管理部414は、ポーリング通知先の登録時に指定された送信情報を取得して、ポーリングリクエスト(図16)を通知先に対して送信する(S114)。ここでのポーリング通知先の登録時に指定された送信情報とは、ポーリング監視リスト(図18)に示す通知内容が該当する。
そして、ジョブ管理部414は、ポーリングリクエストに応答してポーリング通知先から送信されたレスポンスデータ(図17)を受信する(S115)。ジョブ管理部414は、受信したポーリングデータに、ポーリングの終了が指示されているかどうかを判断する(S116)。ここでは、上述したようにポーリングレスポンス(図17)に含まれるEndPolling要素にて指定された値に基づいて判断する。ポーリングの終了が指示された場合(S116にてYES)、ジョブ管理部414は、ポーリング監視リストから当該ポーリング通知先に対応する情報の削除を行い(S117)、S110に戻る。ポーリングの終了が指定されていない場合(S116にてNO)、再度S111に移行し、ジョブ管理部414はポーリング処理の継続を行う。
[ポーリング受信処理]
図9、はプリントサーバ100におけるROM204に格納されたプログラムに従ってCPU202が動作する処理であり、Webサービス303のポーリング受信処理部400のフローチャートである。本処理は、図5に示すプリンタ102からのポーリング通知(F111、F115)に起因して実行される。
プリントサーバ100が有するWebサービス303のポーリング受信処理部400は、プリンタ102からポーリングを受信すると、プリンタリスト(図11)からポーリングが送信されたプリンタを特定する(S200)。そして、ポーリング受信処理部400は、該当プリンタのポーリング受信時刻を現在時刻で更新する(S201)。このとき、該当プリンタのポーリング受信時刻を現在時刻で更新する理由は、ポーリング間隔時間で正しくポーリング送信が行われているかを確認するためである。
次に、ポーリング受信処理部400は、印刷ジョブリスト(図12)からポーリング通知を行ったプリンタに依頼しているジョブを確認し、その一覧のジョブと、ポーリング通知で受信したジョブ一覧と一致しているかどうかを確認する(S202)。
ここで、プリントサーバ100の印刷ジョブリストと、ポーリングで受信したジョブ一覧とが一致しない場合(S202にてNO)、プリンタ102からポーリングで通知された情報を優先する。具体的には、ポーリング受信処理部400は、プリントサーバ100側の印刷ジョブリストに登録されているが、プリンタ102から処理中と通知されなかったジョブは、印刷ジョブリストから削除する(S204)。そして、ポーリング受信処理部400は、印刷履歴(図13)に印刷結果が「エラー」の印刷ジョブとして登録する(S205)。
次に、ポーリング受信処理部400は、ポーリング通知にて受信した一覧にジョブが存在したかどうかを確認する(S203)。一覧にプリンタ102でポーリング通知を継続するジョブが存在する場合(S203にてYES)、プリントサーバ100はポーリングによる印刷ジョブの監視を継続する。したがって、ポーリング受信処理部400は、ポーリング終了指示(EndPolling要素)を“false”に設定したポーリングレスポンスデータ(図17)を作成する(S208)。このとき、プリンタ102はポーリングデスポンスデータを受信することにより、正常にポーリングがプリントサーバ100に到達していることを確認することができる。
プリンタ102からのポーリングにて受信した一覧にジョブが含まれていない場合(S203にてNO)、プリントサーバ100はポーリングが不要となる。そのため、ポーリング受信処理部400は、ポーリング終了指示(EndPolling要素)を“true”に設定したポーリングレスポンスデータを作成する(S206)。その後、ポーリング受信処理部400は、プリンタリスト(図11)のポーリング受信時間とポーリング間隔情報を消去する(S207)。そしてポーリング受信処理部400は、作成したポーリングレスポンスデータをプリンタ102へ送信する(S209)。
[ポーリング監視処理]
図10は、プリントサーバ100におけるROM204に格納されたプログラムに従って、CPU202が動作するプリンタ管理サービス306のプリンタ情報管理部403のプリンタポーリング監視フローチャートである。本処理は、図5のF108にて、プリンタから情報を受信したのち、ポーリング通知を継続的に監視する際に実行される。
ポーリング監視は、定期的にプリンタリスト(図11)に登録されたポーリング実行中のプリンタから定期的にポーリングが送信されているかどうかを監視して、ポーリングが途絶えた場合に、ポーリングが途絶えたプリンタの印刷中ジョブを終了させるものである。
プリンタ情報管理部403は、プリンタリスト(図11)に登録されたプリンタすべてに対して、ポーリングを実行しているプリンタのポーリング受信時刻にポーリング間隔時間を加算し、ポーリング予定時刻を算出する(S300)。
プリンタ情報管理部403は、プリンタリストに登録されたプリンタ毎に、算出したポーリング受信予定時刻とプリントサーバ100の現在時刻とを比較する(S301)。比較の結果、ポーリング受信予定時刻が現在時刻に達していない場合(S301にてNO)、プリンタ情報管理部403は、特別な処理は行わない。そして、プリンタ情報管理部403は、全てのプリンタに対して時刻の確認をしたかどうかの判断を行う(S305)。未確認のプリンタが有る場合には(S305にてNO)、S301に戻り、プリンタ情報管理部403は未確認のプリンタに対して時刻の確認を行う。
S301における比較の結果、プリンタのポーリング予定時刻が現在時刻に達していた場合(S301にてYES)、プリンタ情報管理部403は、着目プリンタに対する印刷ジョブが印刷ジョブリスト(図11)に存在するかどうかを確認する(S302)。印刷ジョブが存在する場合(S304にてYES)、プリンタ情報管理部403は、着目プリンタに対して発行した印刷ジョブを印刷ジョブリストから削除する(S303)。そして、プリンタ情報管理部403は、削除した印刷ジョブを印刷履歴(図13)に登録し、その印刷結果を「不明」として登録する(S304)。
印刷ジョブが印刷ジョブリストに存在しない場合(S304にてNO)、S305へ進む。S305にて全てのプリンタについて確認が終了したら(S305にてYES)、プリンタ情報管理部403は、一定時間Wait処理を行う(S306)。Waitから復帰すると、プリンタ情報管理部403は、S300へ戻り、再度プリンタリストに登録されたプリンタのポーリング受信予定時間の算出処理を行う。
なお、図8のS115において、プリンタはポーリング通知の応答をプリントサーバから受信しているが、何らかの理由により、応答が受信できなかった場合には、所定回数に渡ってポーリング通知を再送するような構成としても構わない。また、複数回数送信してもポーリングレスポンスを受信できない場合には当該通知先に対するポーリング通知を終了するようにしても構わない。この場合には、プリンタは、図18に示すポーリング監視リストから対象となる通知先を削除することとなる。
また、図10のS302において、プリントサーバは、ポーリング受信予定時刻にポーリング通知が受信できなかった場合に、1回のみの判定で印刷ジョブを印刷ジョブリストから削除しているが、これに限定するものではない。例えば、ポーリング受信予定時刻に受信できなかったプリンタの監視を継続し、所定の経過時間(例えば、次のポーリング受信予定時刻)までにポーリング通知を受信できない場合にジョブを削除する構成としてもよい。また、プリントサーバは、ポーリング通知を受信できなかった回数をカウントし、所定回数以上(所定間隔)にわたってポーリング通知を受信できない場合に当該印刷ジョブを印刷ジョブリストから削除するようにしても構わない。
なお、S303においてリストから削除した後にプリンタからポーリング通知が届いた場合には、プリントサーバは当該ポーリング通知を無視するようにしても構わない。もしくは、印刷ジョブリストに登録されていない印刷ジョブに対するポーリング通知が届いた場合には、例えばエラーとしてその旨を印刷履歴(図13)に追加するように更新しても構わない。
以上により、プリントサーバは、依頼した印刷ジョブの処理状況が監視できなくなった場合でも、無駄な監視を継続し続けることが無くなり、プリンタとの印刷ジョブの管理状況の同期をとることができる。
[登録されたイベントの削除処理]
次に、本実施形態に係るJAVAスクリプトを利用したプルプリント方式における印刷における課題の解決手段について述べる。ここでは、プリンタに登録されたイベント通知(本実施形態では、印刷ジョブの終了通知)に対する登録の確実な削除を行うためのイベント削除処理について説明する。図5のF104ではクライアント端末101がプリンタ102に対して、JAVAスクリプトに従い、イベント登録指示を行っている。ここで、プリントサーバ100がプリンタ102に対して、イベントの削除指示を行わない限り、プリンタ102はイベント通知の実行を継続してしまう。つまり、F104にて登録された終了通知を行うイベントを保持し続けてしまう。しかし、例えば、クライアント端末101のWebブラウザ301が閉じられた場合などは、プリントサーバ100はクライアント端末101を介して、プリンタ102に対してイベントの終了指示を送信できない。その結果、プリンタ102にて登録したイベントの削除ができず、印刷ジョブの終了通知を継続してしまう。
上記課題を解決するための処理を、図19を用いて説明する。図19はプリントサーバ100におけるROM204に格納されたプログラムに従ってCPU202が動作する処理であり、プリントサーバ100が有するWebサービス303の印刷イベント受信部408がイベントを受信した場合の処理フローチャートである。本処理は、図5のジョブの終了通知(F113)を受信した際に実行される。
印刷イベント受信部408は、プリンタ102からジョブ終了イベント通知を受信する(S400)。そして、印刷イベント受信部408は、印刷ジョブリスト(図12)からジョブ終了イベント通知にて通知された印刷ジョブを削除し、印刷履歴(図13)にその印刷ジョブを登録する(S401)。その後、印刷イベント受信部408は、印刷ジョブリスト(図12)に、ジョブ終了イベント通知を送信したプリンタのジョブが、他に存在するかどうかを確認する(S402)。確認の結果、ジョブ終了イベント通知を送信したプリンタのジョブが存在する場合(S402にてYES)、印刷イベント受信部408は、イベント受信応答をプリンタ102へ送信する。確認の結果、イベントを送信したプリンタのジョブが存在しない場合(S402にてNO)、印刷イベント受信部408は、イベント終了指示を含む応答(イベント終了応答)をプリンタ102へ送信する(S403)。
一般的に、イベント通知プロトコル(Web Services Eventing(WS−Eventing)など)では、イベント通知に対してその応答の中で当該イベント通知を終了させる仕組みは存在しない。そのような場合は、例えば、イベント通知を終了させるための応答として、イベント受信エラーを用いることができる。プリントサーバは、イベントに対してその通知を終了させたい場合、イベント受信エラーを応答することで特許文献1を実装したイベントを送信した装置はイベントを削除することができる。なお、イベント受信エラーとは、例えばHTTPのエラーステータスコード(404)などを用いても構わない。
以上により、プリンタは、登録されたイベントの実行を無駄に継続し続けることが無くなる。
以上により、プリントサーバからプリンタに対して直接通信ができない環境下におけるプルプリントシステムにおいて、プリントサーバとプリンタとの間における印刷ジョブ等に関する管理の不整合をなくし、無駄な管理や処理をなくすことができる。
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
100…プリントサーバ、101…クライアント端末、103…ルータ、104、105…ネットワーク

Claims (18)

  1. 印刷装置とサーバを含む印刷システムであって、
    前記印刷装置は、
    シートに画像を形成する画像形成手段と、
    サーバから印刷データを取得する取得手段と、
    前記取得手段にて取得した印刷データに基づく画像形成ジョブを前記画像形成手段に実行させる実行手段と、
    前記画像形成ジョブに関する情報を前記サーバに通知する通知手段と
    を有し、
    前記サーバは、
    前記印刷装置に印刷データを送信する送信手段と、
    前記印刷データに基づく画像形成ジョブが異常終了したことを示す情報を前記印刷装置から取得し、前記印刷データの識別情報に関連付けて第1のステータス情報を記憶する第1の記憶手段と、
    前記印刷装置との通信が所定期間行われていないことに基づき、前記印刷データの識別情報に関連付けて前記第1のステータス情報と異なる第2のステータス情報を記憶する第2の記憶手段と、
    を有することを特徴とする印刷システム。
  2. 前記第1のステータス情報は、エラー状態を示す情報であることを特徴とする請求項1に記載の印刷システム。
  3. 前記第2のステータス情報は、不明状態を示す情報であることを特徴とする請求項1または2に記載の印刷システム。
  4. 前記サーバは更に、前記印刷データに基づく画像形成ジョブが正常終了したことを示す情報を前記印刷装置から取得し、前記印刷データの識別情報に関連付けて第3のステータス情報を記憶する第3の記憶手段を有することを特徴とする請求項1乃至3のいずれか1項に記載の印刷システム。
  5. 前記第3のステータス情報は、正常終了を示す情報であることを特徴とする請求項4に記載の印刷システム。
  6. 前記第2の記憶手段は、前記印刷装置からの前記画像形成ジョブに関する情報を所定の期間取得できていないことに基づき、前記第2のステータス情報を記憶することを特徴とする請求項1乃至5のいずれか一項に記載の印刷システム。
  7. 前記第1のステータス情報および前記第2のステータス情報は、履歴情報格納領域に格納されることを特徴とする請求項1乃至6のいずれか一項に記載の印刷システム。
  8. 前記サーバは更に、前記送信手段によって送信される印刷データの識別情報を前記印刷装置の識別情報に関連付けて識別情報格納領域に格納する格納手段を有することを特徴とする請求項1乃至7のいずれか一項に記載の印刷システム。
  9. 前記サーバは更に、前記印刷データに基づく画像形成ジョブが終了したことを示す情報を前記印刷装置から取得した場合、または、所定の期間において前記印刷装置との間で通信が行われていない場合に、前記識別情報格納領域に格納された前記識別情報を削除する削除手段を有することを特徴とする請求項8に記載の印刷システム。
  10. 前記サーバは更に、関連付く印刷データの識別情報が前記識別情報格納領域に格納されている印刷装置から送信されたジョブステータス通知に対し当該通知の内容に基づいて応答し、関連付く印刷データの識別情報が前記識別情報格納領域に格納されていない印刷装置から送信されたジョブステータス通知に対し応答しない応答手段を有することを特徴とする請求項8または9に記載の印刷システム。
  11. 前記通知手段は、前記画像形成ジョブが処理中であることに基づき、処理中を示すジョブステータス情報を前記サーバに通知し、
    前記応答手段は、関連付く印刷データの識別情報が前記識別情報格納領域に格納されている印刷装置から、処理中を示すジョブステータス情報が通知されたことに基づき通知の継続要求を示す応答を行うことを特徴とする請求項10に記載の印刷システム。
  12. 前記通知手段は、前記サーバから通知の継続要求を取得したことに基づく、所定時間の経過後にジョブステータスを前記サーバに通知することを特徴とする請求項1乃至11のいずれか一項に記載の印刷システム。
  13. 前記通知手段は、一度のジョブステータス通知にて複数の印刷データの識別情報を送信することを特徴とする請求項1乃至12のいずれか一項に記載の印刷システム。
  14. 前記印刷システムは更に、クライアント端末を含み、
    前記クライアント端末は、
    ユーザの指示を受け付けるユーザインターフェースと、
    前記印刷装置と前記サーバが互いの識別情報を登録するように、前記印刷装置および前記サーバと通信を行う通信手段と
    を有することを特徴とする請求項1乃至13のいずれか一項に記載の印刷システム。
  15. 前記クライアント端末は更に、前記サーバから取得したプログラムに基づいて前記サーバの識別情報を前記印刷装置に登録させる指示を行う指示手段を有することを特徴とする請求項14に記載の印刷システム。
  16. 印刷装置と通信可能なサーバであって、
    前記印刷装置に印刷データを送信する送信手段と、
    前記印刷データに基づく画像形成ジョブが異常終了したことを示す情報を前記印刷装置から取得し、前記印刷データの識別情報に関連付けて第1のステータス情報を記憶する第1の記憶手段と、
    前記印刷装置との通信が所定期間行われていないことに基づき、前記印刷データの識別情報に関連付けて前記第1のステータス情報と異なる第2のステータス情報を記憶する第2の記憶手段と
    を有することを特徴とするサーバ。
  17. 印刷装置と通信可能なサーバの制御方法であって、
    前記印刷装置に印刷データを送信する送信工程と、
    前記印刷データに基づく画像形成ジョブが異常終了したことを示す情報を前記印刷装置から取得し、前記印刷データの識別情報に関連付けて第1のステータス情報を記憶する第1の記憶工程と、
    前記印刷装置との通信が所定期間行われていないことに基づき、前記印刷データの識別情報に関連付けて前記第1のステータス情報と異なる第2のステータス情報を記憶する第2の記憶工程と
    を有することを特徴とする制御方法。
  18. 印刷装置と通信可能なサーバに、
    前記印刷装置に印刷データを送信する送信工程と、
    前記印刷データに基づく画像形成ジョブが異常終了したことを示す情報を前記印刷装置から取得し、前記印刷データの識別情報に関連付けて第1のステータス情報を記憶する第1の記憶工程と、
    前記印刷装置との通信が所定期間行われていないことに基づき、前記印刷データの識別情報に関連付けて前記第1のステータス情報と異なる第2のステータス情報を記憶する第2の記憶工程と
    を実行させるためのプログラム。
JP2016021222A 2016-02-05 2016-02-05 印刷システム、サーバおよびその制御方法、並びにプログラム Active JP6188842B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016021222A JP6188842B2 (ja) 2016-02-05 2016-02-05 印刷システム、サーバおよびその制御方法、並びにプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016021222A JP6188842B2 (ja) 2016-02-05 2016-02-05 印刷システム、サーバおよびその制御方法、並びにプログラム

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2011144553A Division JP5885410B2 (ja) 2011-06-29 2011-06-29 プルプリントシステム、プリントサーバおよびその制御方法、並びにプログラム

Publications (2)

Publication Number Publication Date
JP2016095878A JP2016095878A (ja) 2016-05-26
JP6188842B2 true JP6188842B2 (ja) 2017-08-30

Family

ID=56071327

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016021222A Active JP6188842B2 (ja) 2016-02-05 2016-02-05 印刷システム、サーバおよびその制御方法、並びにプログラム

Country Status (1)

Country Link
JP (1) JP6188842B2 (ja)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004171324A (ja) * 2002-11-21 2004-06-17 Seiko Epson Corp ジョブ管理装置
JP2005197949A (ja) * 2004-01-06 2005-07-21 Fuji Xerox Co Ltd 処理実行装置
JP2006309371A (ja) * 2005-04-27 2006-11-09 Seiko Epson Corp 印刷制御装置及びプリンタへ送信したコマンドに対する応答を待つときのタイムアウト時間の可変設定方法
JP2008059020A (ja) * 2006-08-29 2008-03-13 Kyocera Mita Corp プリントシステム

Also Published As

Publication number Publication date
JP2016095878A (ja) 2016-05-26

Similar Documents

Publication Publication Date Title
JP5885410B2 (ja) プルプリントシステム、プリントサーバおよびその制御方法、並びにプログラム
JP6519224B2 (ja) クラウド印刷環境におけるロック印刷
EP2479660B1 (en) Print control server, print controlling method, and print control program
EP2854022B1 (en) Image forming system and image forming apparatus
EP1860547B1 (en) Remote stored print job retrieval
JP5791390B2 (ja) 印刷システム、プリントサーバ、印刷管理方法、およびプログラム
JP5931030B2 (ja) 画像形成装置及び画像形成方法
US20110176162A1 (en) Printer installation at a cloud server
US9417826B2 (en) Image forming apparatus with status control
JP2008097582A (ja) イベント通知装置、イベント通知方法及びイベント通知プログラム
GB2487389A (en) Transfer of print jobs between print servers
JP6277726B2 (ja) 情報処理システム、情報処理装置、情報処理方法、及びプログラム
US20110238784A1 (en) Management apparatus and method therefor
JP2022073284A (ja) 情報処理装置
JP6188842B2 (ja) 印刷システム、サーバおよびその制御方法、並びにプログラム
JP2016053862A (ja) 情報処理装置、プログラム及び制御方法
JP6127586B2 (ja) 情報処理システムおよび情報処理方法
JP2015022682A (ja) 印刷システム、方法、及びプログラム
EP1821193B1 (en) Adaptive configuration of imaging devices
JP2014142735A (ja) 印刷システム、方法、及びプログラム
JP6125074B2 (ja) 画像形成装置及び画像形成方法
JP6477929B2 (ja) 情報処理システム、情報処理装置、情報処理方法、及びプログラム
JP2014160390A (ja) 出力制御装置、出力システム及びプログラム
JP2008269158A (ja) 画像形成装置及びドライバ自動インストール方法、並びに自動更新方法を実行するプログラム
JP2017068619A (ja) 印刷管理サーバー、プリンタードライバー管理システム、プリンタードライバー管理プログラムおよび情報処理装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161212

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170208

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170703

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170801

R151 Written notification of patent or utility model registration

Ref document number: 6188842

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151