(57)【要約】【課題】サーバ装置を起点とする要求をファイアーウォールを介してクライアント装置へ送信可能なネットワーク接続を確立する際に、要求の実現に使用するアプリケーションの分だけ接続を張る情報処理システムを提供する。【解決手段】画像形成装置１０１が、プリントサーバ１２３を起点として発行される要求をファイアーウォール１０３を介して画像形成装置１０１へ送信することを可能とするネットワークプロトコルによる第１のネットワーク接続を確立し、プリントサーバ１２３が、第１のネットワーク接続が確立された後、画像形成装置１０１にインストールされたアプリケーションに対応する第２のネットワーク接続を確立するための指示を第１のネットワーク接続を介して送信する。そして、画像形成装置１０１が、プリントサーバ１２３から送信される上記指示に従い第２のネットワーク接続を確立する。【選択図】図１
2014021794.tif 000002
【特許請求の範囲】
【請求項１】
クライアント装置とサーバ装置とがファイアーウォールを介して通信を行うシステムであって、
前記クライアント装置は、
前記ファイアーウォールの外部に配置された前記サーバ装置を起点として発行される要求を前記ファイアーウォールを介して前記クライアント装置へ送信することを可能とするネットワークプロトコルによるネットワーク接続を確立する確立手段を備え、
前記サーバ装置は、
前記クライアント装置にインストールされたアプリケーションに対応するネットワーク接続を確立するための指示を送信する送信手段を備え、
前記クライアント装置は、前記確立手段により第１のネットワーク接続が確立された後、前記第１のネットワーク接続を介して前記サーバ装置から送信される前記指示を受信し、受信された前記指示に従い前記確立手段により第２のネットワーク接続が確立されることを特徴とする情報処理システム。
【請求項２】
前記クライアント装置が備える前記確立手段は、第１のネットワークプロトコルを接続することを通じて前記第１のネットワーク接続を確立し、第２のネットワークプロトコルを接続することを通じて前記第２のネットワーク接続を確立し、
前記第２のネットワークプロトコルは、前記サーバ装置と前記アプリケーションとの間での、前記サーバ装置を起点として発行される要求に応じた処理の実行に必要な情報の通信に用いられ、
前記第１のネットワークプロトコルは、前記第２のネットワークプロトコルの接続／切断タイミングを制御することを特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記クライアント装置が備える前記確立手段は、
前記クライアント装置が起動したことを契機として前記第１のネットワークプロトコルによる前記第１のネットワーク接続を確立し、
前記クライアント装置にインストールされたアプリケーションのうち、前記サーバ装置を起点として発行された要求に応じた処理を実行するアプリケーションの起動通知を前記第１のネットワークプロトコルを通じて前記サーバ装置から受けたことを契機として、前記起動通知に対応するアプリケーションに対応する前記第２のネットワークプロトコルによる前記第２のネットワーク接続を確立することを特徴とする請求項１または請求項２に記載の情報処理システム。
【請求項４】
前記サーバ装置は、前記サーバ装置を起点として発行される要求に応じた処理の実行が完了した時に、前記第２のネットワークプロトコルを切断する切断手段をさらに備えることを特徴とする請求項１乃至４のいずれか１項に記載の情報処理システム。
【請求項５】
前記サーバ装置は、外部装置から特定の要求または通知を受けた場合に、前記サーバ装置を起点とした前記要求を発行し、発行した要求を、前記確立された第２のネットワーク接続を通じて、該要求に応じた処理を実行するアプリケーションに対して送信する発行手段をさらに備える
ことを特徴とする請求項１乃至４のいずれか１項に記載の情報処理システム。
【請求項６】
前記サーバ装置が備える前記送信手段は、前記サーバ装置が前記外部装置から印刷要求を受けた場合に、印刷ジョブを実行するアプリケーションの起動通知を、該アプリケーションに対応する前記第２のネットワーク接続を確立するための指示として前記第１のネットワークプロトコルを通じて前記クライアント装置に対して行い、
前記クライアント装置が備える前記確立手段は、前記印刷ジョブを実行するアプリケーションの前記起動通知を前記送信手段から受けたことを契機として、前記印刷ジョブを実行するアプリケーションに対応する前記第２のネットワークプロトコルを接続して前記第２のネットワーク接続を確立することを特徴とする請求項５に記載の情報処理システム。
【請求項７】
前記サーバ装置は、さらに、前記印刷要求の指示に用いられる画面データであって、前記第１のネットワークプロトコルが接続された前記クライアント装置の表示情報を含む画面データを前記外部装置に対して提供する提供手段を備える
ことを特徴とする請求項６に記載の情報処理システム。
【請求項８】
前記外部装置は、前記クライアント装置を含む複数のクライアント装置であり、
前記サーバ装置が備える前記送信手段は、前記サーバ装置が第１のクライアント装置から前記第１のクライアント装置が有するアドレス帳の変更通知を受けた場合に、前記アドレス帳が有する情報を第２のクライアント装置に反映させる処理を実行するアプリケーションの起動通知を、該アプリケーションに対応する前記第２のネットワーク接続を確立するための指示として前記第１のネットワークプロトコルを通じて第２のクライアント装置に対して行い、
前記第２のクライアント装置が備える前記確立手段は、前記アドレス帳が有する情報を反映させる処理を実行するアプリケーションの起動通知を前記送信手段から受けたことを契機として、該アプリケーションに対応する前記第２のネットワークプロトコルを接続して前記第２のネットワーク接続を確立することを特徴とする請求項５に記載の情報処理システム。
【請求項９】
前記サーバ装置が備える前記送信手段は、
前記第１のネットワークプロトコルが接続されていないクライアント装置については、前記クライアント装置が前記第１のネットワークプロトコルに接続された時点で前記クライアント装置に対して前記変更通知されたアドレス帳を配信済みであるかを判断し、
前記クライアント装置に対して変更通知されたアドレス帳を配信済みでない場合に、前記アドレス帳が有する情報を反映させる処理を実行するアプリケーションの起動通知を前記クライアント装置に対して行うことを特徴とする請求項７に記載の情報処理システム。
【請求項１０】
前記ネットワークプロトコルは、ＷｅｂＳｏｃｋｅｔである
ことを特徴とする請求項１乃至９のいずれか１項に記載の情報処理システム。
【請求項１１】
ファイアーウォールの外部に配置され、クライアント装置と前記ファイアーウォールを介して通信を行うサーバ装置であって、
前記クライアント装置において、前記サーバ装置を起点として発行される要求を前記ファイアーウォールを介して前記クライアント装置へ送信することを可能とするネットワークプロトコルによる第１のネットワーク接続が確立された後、前記クライアント装置にインストールされたアプリケーションに対応する第２のネットワーク接続を確立するための指示を、前記第１のネットワーク接続を介して前記クライアント装置に送信する送信手段を備え、
前記クライアント装置において、前記送信された前記指示に従い前記第２のネットワーク接続が確立されることを特徴とするサーバ装置。
【請求項１２】
ファイアーウォールの外部に配置されたサーバ装置と前記ファイアーウォールを介して通信を行うクライアント装置であって、
前記サーバ装置を起点として発行される要求を前記ファイアーウォールを介して前記クライアント装置へ送信することを可能とするネットワークプロトコルによる第１のネットワーク接続を確立する確立手段と、
前記確立手段により第１のネットワーク接続が確立された後に前記第１のネットワーク接続を介して前記サーバ装置から送信される、前記クライアント装置にインストールされたアプリケーションに対応する第２のネットワーク接続を確立するための指示を、前記サーバ装置から受信する受信手段とを備え、
前記確立手段は、前記受信された前記指示に従い前記第２のネットワーク接続を確立することを特徴とするクライアント装置。
【請求項１３】
クライアント装置とサーバ装置とがファイアーウォールを介して通信を行うシステムの制御方法であって、
前記クライアント装置が、前記ファイアーウォールの外部に配置された前記サーバ装置を起点として発行される要求を前記ファイアーウォールを介して前記クライアント装置へ送信することを可能とするネットワークプロトコルによる第１のネットワーク接続を確立する工程と、
前記サーバ装置が、前記第１のネットワーク接続が確立された後、前記クライアント装置にインストールされたアプリケーションに対応する第２のネットワーク接続を確立するための指示を前記第１のネットワーク接続を介して送信する工程と、
前記クライアント装置が、前記サーバ装置から送信される前記指示を受信し、受信された前記指示に従い前記第２のネットワーク接続を確立する工程とを有することを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、サーバ装置、クライアント装置および制御方法に関する。
【背景技術】
【０００２】
企業のイントラネット内にある端末から、インターネット上にある各種サービスを利用することを可能とするシステムが提案されている。このシステムでは、イントラネットとインターネットの境界に、ファイアーウォールを設置することが一般的である。ファイアーウォールは、イントラネット側からインターネット側への接続は許可するが、インターネット側からイントラネット内への接続は拒否するように設定されている。これにより、インターネット側の端末からイントラネット内へのアクセスが制限される。このような背景もあり、従来のＷｅｂを使用した通信システムにおいては、クライアントがサーバに対して情報取得の要求を行い、サーバが情報を返すというＰＵＬＬ型通信が一般的であった。
【０００３】
しかし、近年、サーバ側からクライアントに対して情報を送信する、ＰＵＳＨ型通信の技術開発が進められている。ＰＵＳＨ型通信技術の例としては、ＣｏｍｅｔやＷｅｂＳｏｃｋｅｔといったものが挙げられる。Ｃｏｍｅｔにおいては、クライアントがサーバにＨＴＴＰのリクエストを送信すると、サーバはすぐにレスポンスを返さずにそのリクエストを保持しておく。その後、サーバ側からクライアントに送信すべき情報が発生した時点で、保持しておいたリクエストに対するレスポンスとして情報を送信する。
【０００４】
ＷｅｂＳｏｃｋｅｔは、インターネットの標準化団体であるＷ３ＣやＩＥＴＦが作成した双方向通信のための技術である。ＨＴＴＰではなくＴＣＰの接続を確立して維持することにより、ＣｏｍｅｔのようにＨＴＴＰプロトコルにマッピングする必要がなく、クライアント／サーバどちらからでも自由なタイミングで通信を行うことができる。
【０００５】
このように、ＰＵＳＨ型通信技術においては、イントラネット内のクライアントから接続を確立しそれを維持することで、ファイアーウォールが存在する環境でも、サーバがその接続を使用して情報を送信することを可能にしている。
【０００６】
そこで、近年、ＰＵＳＨ型通信を使用する印刷システムが提案されている。ＰＵＳＨ型印刷システムは、イントラネット内のクライアント装置（プリンタ）がサーバ装置（プリントサーバ）に対して接続を確立し、その接続を常時維持する。これにより、プリントサーバが、プリントサーバを起点として発行される要求（印刷ジョブの実行要求）をファイアーウォールを介して任意のタイミングでプリンタに送信することを可能とする。特許文献１は、外部ネットワーク内の外部ホストが、ファイアーウォールによってアクセスが制限される内部ホストへの通信路を維持するための通信路維持データを内部ホストに送信する通信システムを提案している。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００８−１４０２７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ＷｅｂＳｏｃｋｅｔを利用したＰＵＳＨ型通信システムにおいては、継続的にシステム開発を進める場合、アプリケーションの追加に従い、ＷｅｂＳｏｃｋｅｔ接続の追加を行う。つまり、プリンタ毎ではなく、プリンタにインストールされたアプリケーション毎にＷｅｂＳｏｃｋｅｔ接続が必要になる。
【０００９】
アプリケーション毎にＷｅｂＳｏｃｋｅｔ接続を行う場合、アプリケーションの数が増えると、プリントサーバにとって、アプリケーションの数に応じた常時接続を管理するための処理負荷が高くなってしまう。その結果、プリントサーバとしての動作が不安定になったり、適切な処理ができなくなったりしてしまうという課題がある。またその他の課題として、ＷｅｂＳｏｃｋｅｔを利用したＰＵＳＨ型通信システムでは、プリンタは、起動時に、予めインストールされているアプリケーションの数の分だけＷｅｂＳｏｃｋｅｔ接続を張る必要がある。したがって、プリントサーバが発行する要求の実現に利用されないアプリケーションに対応するＷｅｂＳｏｃｋｅｔ接続が、無駄なリソースとなってしまうという課題がある。
【００１０】
本発明は、上記の課題の少なくとも一つを解決するためになされたものである。本発明は、サーバ装置を起点とする要求をファイアーウォールを介してクライアント装置へ送信可能なネットワーク接続を確立する際に、要求の実現に使用するアプリケーションの分だけ接続を張る情報処理システムの提供を目的とする。
【課題を解決するための手段】
【００１１】
本発明の一実施形態の情報処理システムは、クライアント装置とサーバ装置とがファイアーウォールを介して通信を行うシステムである。前記クライアント装置は、前記ファイアーウォールの外部に配置された前記サーバ装置を起点として発行される要求を前記ファイアーウォールを介して前記クライアント装置へ送信することを可能とするネットワークプロトコルによるネットワーク接続を確立する確立手段を備える。前記サーバ装置は、前記クライアント装置にインストールされたアプリケーションに対応するネットワーク接続を確立するための指示を送信する送信手段を備える。また、前記クライアント装置は、前記確立手段により第１のネットワーク接続が確立された後、前記第１のネットワーク接続を介して前記サーバ装置から送信される前記指示を受信し、受信された前記指示に従い前記確立手段により第２のネットワーク接続が確立される。
【発明の効果】
【００１２】
本発明の情報処理システムによれば、サーバ装置を起点とする要求をファイアーウォールを介してクライアント装置へ送信することを可能とするネットワーク接続を確立する際に、以下の効果を奏することができる。すなわち、上記要求の実現に使用するアプリケーションの分だけ接続を張ることができる。その結果、アプリケーションの数が増えた場合であっても、ネットワークの接続管理に関するサーバ装置の負荷を抑えることができ、かつ、リソースの無駄を防止することができる。
【図面の簡単な説明】
【００１３】
【図１】実施例１のシステム構成例を示す図である。
【図２】画像形成装置のハードウェア構成例を示す図である。
【図３】ＰＣとプリントサーバを実現するコンピュータのハードウェア構成例を示す図である。
【図４】基本的なＷｅＳｏｃｋｅｔのシーケンスの例を示す図である。
【図５】画像形成装置の機能ブロック図の例である。
【図６】ＰＣの機能ブロック図の例である。
【図７】プリントサーバの機能ブロック図の例である。
【図８】コネクション情報管理テーブルの一例を示す図である。
【図９】デバイステーブルの一例を示す図である。
【図１０】通信システムにおける印刷処理の例を説明するシーケンス図である。
【図１１】プリンタ選択画面の例である。
【図１２】画像形成装置とプリントサーバとの間で送受信されるメッセージの例である。
【図１３】画像形成装置が備えるコネクション制御部の動作処理の例を説明するフローチャートである。
【図１４】プリントサーバが備えるコネクション制御部の動作処理の例を説明するフローチャートである。
【図１５】通信システムにおけるアドレス帳配信処理の例を説明するシーケンス図である。
【図１６】画像形成装置とプリントサーバとの間で送受信されるメッセージの例である。
【発明を実施するための形態】
【００１４】
（実施例１）
図１は、実施例１のシステム構成例を示す図である。本実施例の情報処理システムは、プリントサーバ１２３、ＰＣ（Personal Computer）１２２、画像形成装置１０１、１０２を備える通信システムとして構成される。本実施例の制御方法は、図１に示す通信システムが備える各装置の機能によって実現される。
【００１５】
イントラネット１０と、ＰＣ１２２と、プリントサーバ１２３とは、ネットワーク（図１ではインターネット１２１）を介して接続されている。なお、図１においてイントラネット１０は一つだけしか図示していないが、イントラネット１０と同様の構成を持つイントラネットが複数存在してもよい。
【００１６】
イントラネット１０には、画像形成装置１０１、１０２が、ネットワーク１０４を介して接続され、インターネット１２１との境界にはファイアーウォール１０３が配置されている。プリントサーバ１２３は、ファイアーウォール１０３の外部に配置されている。本実施例では、画像形成装置１０１、１０２と、プリントサーバ１２３とは、ファイアーウォール１０３を介して通信を行う。通信システムが備える画像形成装置の数は、２個に限定されるものではなく、通信システムは、任意の数の画像形成装置を備えてもよい。
【００１７】
画像形成装置１０１、１０２は、クライアント装置として機能する。具体的には、画像形成装置１０１、１０２は、サーバ装置であるプリントサーバ１２３から印刷ジョブを受信して印刷する機能を持つ。また、画像形成装置１０１は、自装置で持つアドレス帳をプリントサーバ１２３に送信する機能、プリントサーバ１２３からアドレス帳を受信して更新する機能を持つ。画像形成装置１０１と画像形成装置１０２とは、同様の構成を有する。以下では、画像形成装置を代表して、符号１０１を使用する。
【００１８】
ＰＣ１２２は、ユーザの操作に応じて、ユーザが所望する画像形成装置への印刷を指示する情報処理装置である。プリントサーバ１２３は、通信システム全体を制御し、ＰＣ１２２からの印刷要求処理、印刷ジョブ管理、画像形成装置１０１へのアドレス帳送信といったさまざまな処理を行う。
【００１９】
図２は、画像形成装置のハードウェア構成例を示す図である。図２では、画像形成装置１０１が複写機である場合の構成を例にとって説明する。画像形成装置１０１は、ＣＰＵ２０１、ＲＡＭ２０２、ＲＯＭ２０３、操作パネル２０５、ＬＡＮコントローラ２０６、印刷インタフェース２０７、ＤＫＣ２０８、不揮発性メモリ２０９を備える。ＣＰＵは、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔの略称である。ＲＡＭ２０２は、Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙの略称である。ＲＯＭは、Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙの略称である。ＬＡＮは、Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋの略称である。ＤＫＣは、Ｄｉｓｋ  Ｃｏｎｔｒｏｌｌｅｒの略称である。また、画像形成装置１０１は、プリントエンジン２１０、外部記憶装置２１１、読取インタフェース２１２、スキャナ２１３を備える。
【００２０】
ＣＰＵ２０１は、ＲＯＭ２０３が有するプログラム用ＲＯＭまたは外部記憶装置２１１に記憶された制御プログラムに基づいて、システムバス２０４に接続される各種のデバイスとのアクセスを総括的に制御する。また、ＣＰＵ２０１は、印刷インタフェース２０７を介して接続される印刷部（プリンタエンジン）２１０に対して、出力情報としての画像信号を出力する。また、ＣＰＵ２０１は、読取インタフェース２１２を介して接続される読取部（スキャナ）２１３から入力される画像信号を制御する。また、ＣＰＵ２０１は、ＬＡＮコントローラ２０６を介して、ネットワーク上のＰＣや画像形成装置との通信処理を実行する。
【００２１】
ＲＯＭ２０３が有するプログラム用ＲＯＭには、ＣＰＵ２０１が実行可能な制御プログラム等が予め記憶される。さらに、ＲＯＭ２０３が有するフォント用ＲＯＭには、上記出力情報を生成する際に使用するフォントデータ（アウトラインフォントデータを含む）等が、予め記憶される。また、ＲＯＭ２０３のデータ用ＲＯＭには、ＰＣ１２２上で利用される情報等が、予め記憶されている。
【００２２】
ＲＡＭ２０１は、主としてＣＰＵ２０１の主メモリ，ワークエリア等として機能し、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。なお、ＲＡＭ２０２は、出力情報展開領域，環境データ格納領域等に用いられる。外部記憶装置２１１は、例えば、ハードディスク（ＨＤＤ）、ＩＣカード等である。外部記憶装置２１１は、ディスクコントローラ（ＤＫＣ）２０８によりアクセスが制御される。
【００２３】
ハードディスクは、アプリケーションプログラム、フォントデータ、フォームデータ等を記憶したり、プリントジョブを一時的にスプールし、スプールされたジョブを外部から制御したりするためのジョブ格納領域として使用される。また、ハードディスクは、スキャナ２１３から読み取った画像データやプリントジョブの画像データをＢＯＸデータとして保持し、ネットワークから参照したり、印刷を行ったりするためのＢＯＸデータ格納領域としても使用される。本実施例においては、外部記憶装置２１１としてＨＤＤを使用するものとし、ジョブログ、画像ログ等各種ログを保持する。画像形成装置１０１は、外部記憶装置２１１を１個に限らず、少なくとも１個以上備える。そして、外部記憶装置２１１は、内蔵フォントに加えてオプションフォントカード，言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていてもよい。
【００２４】
操作パネル２０５は、ユーザの操作に応じた情報を入力する。ユーザは、操作パネル上のソフトウェアキーから各種情報を入力することが可能である。不揮発性メモリ２０９は、操作パネル２０５から設定される各種設定情報を記憶する。
【００２５】
また、図示していないが、画像形成装置１０１には、さらにオプションで、ステープルやソート機能を行うフィニッシャや、両面印刷機能を実現するための両面装置など各種拡張装置を装着することが可能となっており、それらの動作はＣＰＵ２０１から制御される。
【００２６】
図３は、ＰＣとプリントサーバを実現するコンピュータのハードウェア構成例を示す図である。図３に示すコンピュータは、ＣＰＵ３０１、ＲＯＭ３０２、ＲＡＭ３０３、ＫＢＣ３０５、ＣＲＴＣ３０６、ＤＫＣ３０７、ＮＩＣ３０８を備える。ＫＢＣは、Ｋｅｙｂｏａｒｄ  Ｃｏｎｔｒｏｌｌｅｒの略称である。ＣＲＴＣは、Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ  Ｃｏｎｔｒｏｌｌｅｒの略称である。ＮＩＣは、Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄの略称である。
【００２７】
また、図３に示すコンピュータは、ＰＤ３０９、ＫＢ３１０、ＣＲＴ３１１、ＨＤＤ３１２、ＦＤ３１３を備える。ＰＤは、Ｐｏｉｎｔｉｎｇ  Ｄｅｖｉｃｅの略称である。ＫＢは、Ｋｅｙｂｏａｒｄの略称である。ＣＲＴは、Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅの略称である。ＨＤＤは、Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅの略称である。ＦＤは、Ｆｌｏｐｐｙ（登録商標）  Ｄｉｓｋの略称である。
【００２８】
ＣＰＵ３０１は、システムバス３０４に接続された各種デバイスの制御を行う。ＲＯＭ３０２には、ＢＩＯＳやブートプログラムが予め記憶される。ＲＡＭ３０３は、ＣＰＵ３０１の主記憶装置として使用される。ＫＢＣ３０５は、マウス（登録商標）等のＰＤ３０９、ＫＢ３１０からの情報を入力する。ＣＲＴＣ３０６は、内部にビデオメモリを有し、ＣＰＵ３０１からの指示に従ってそのビデオメモリに描画すると共に、ビデオメモリに描画されたイメージデータをビデオ信号としてＣＲＴ３１１に出力する。ＣＲＴは表示装置である。本実施例では、液晶表示装置等、任意の種類の表示装置を適用することができる。
【００２９】
ＤＫＣ３０７は、ＨＤＤ３１２、ＦＤ３１３へのアクセスを行う。ＮＩＣ３０８は、ネットワークに接続し、ネットワークを介した情報通信を行う。なお、ＨＤＤ３１２には、ＯＳやＯＳ上で動作する各種アプリケーションプログラム等が格納される。図３に示すコンピュータの電源がＯＮになると、ＣＰＵ３０１が、ＲＯＭ３０２に格納されたブートプログラムに従って、ＨＤＤ３１２からＯＳをＲＡＭ３０３に読み込み、情報処理装置として機能する。
【００３０】
本実施例では、画像形成装置１０１とプリントサーバ１２３とが、ＷｅｂＳｏｃｋｅｔによるネットワーク接続を確立した上で通信を行う。ＷｅｂＳｏｃｋｅｔは、双方向通信用の通信規格の一つであって、コネクションを維持し続けるための仕組みを持つネットワークプロトコルである。また、Ｗｅｂｓｏｃｋｅｔは、Ｗ３Ｃによって策定されたＨＴＭＬ５の基本仕様の１つである。Ｗ３Ｃは、Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ  Ｃｏｎｓｏｒｕｔｉｕｍの略称である。ＨＴＭＬ５は、Ｈｐｅｒ  Ｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ  ５の略称である。ＷｅｂＳｏｃｋｅｔによれば、クライアントとサーバとの間に持続的接続を確立することができ、この接続を通じて、どちらの側からでも、いつでもデータの送信を開始できる。即ち、従来のサーバ・クライアントシステムとは異なり、サーバ装置はクライアント装置からのリクエストを受けてからデータ送信を行う受動的な処理のみならず、リクエストを受けずともデータ送信を行う能動的な処理も行える。Ｗｅｂｓｏｃｋｅｔは、サーバ装置を起点としたクライアント装置へのデータ送信に対応しているのである。以下では、ＷｅｂＳｏｃｋｅｔによるネットワーク接続をＷｅｂＳｏｃｋｅｔ接続と記述する。
【００３１】
図４は、基本的なＷｅＳｏｃｋｅｔ接続のシーケンスの例を示す図である。
図４のステップＳ１６０１において、画像形成装置１０１が、図１２（Ａ）のようなＷｅｂＳｏｃｋｅｔ接続メッセージを送信する。ステップＳ１６０２において、プリントサーバ１２３が、図１２（Ｂ）のようなＷｅｂＳｏｃｋｅｔ接続応答メッセージを返す。ステップＳ１６０３、Ｓ１６０４において、画像形成装置１０１とプリントサーバ１２３とが、定期的にＴＣＰのＫｅｅｐ−Ａｌｉｖｅを送受信することで、ＷｅｂＳｏｃｋｅｔ接続を維持する。なお、接続を維持するためには、定期的にパケットの送受信を行えばよいので、Ｐｉｎｇ、Ｐｏｎｇを定期的に送受信してもよい。ステップＳ１６０５において、プリントサーバ１２３が、ＷｅｂＳｏｃｋｅｔ接続を利用して、図１２（Ｄ）のような印刷ジョブを画像形成装置１０１に送信する。画像形成装置１０１とプリントサーバ１２３の間にファイアーウォールが存在する場合でも、ＷｅｂＳｏｃｋｅｔ接続を利用することで、ファイアーウォール外からのＰｕｓｈ送信が可能となる。
【００３２】
図５は、画像形成装置の機能ブロック図の例である。画像形成装置１０１は、コネクション制御部４０１、コネクション情報管理部４０２、通信部４０３、印刷アプリ部４０４、印刷処理部４０５、アドレス帳アプリ部４０６、アドレス帳管理部４０７を備える。
【００３３】
コネクション制御部４０１は、通信部４０３、印刷アプリ部４０４、アドレス帳アプリ部４０６からの指示を受信し、ＷｅｂＳｏｃｋｅｔの接続、切断を制御する。すなわち、コネクション制御部４０１は、プリントサーバ１２３を起点として発行される要求をファイアーウォール１０３を介して画像形成装置１０１へ送信することを可能とするネットワークプロトコルによるネットワーク接続を確立する。本実施例では、コネクション制御部４０１は、画像形成装置１０１が起動したことを契機として、制御用ＷｅｂＳｏｃｋｅｔを接続することで第１のネットワーク接続を確立する。制御用ＷｅｂＳｏｃｋｅｔは、アプリ用ＷｅｂＳｏｃｋｅｔの接続／切断タイミングを制御するネットワークプロトコル（第１のネットワークプロトコル）である。アプリ用ＷｅｂＳｏｃｋｅｔは、画像形成装置１０１にインストールされている各々のアプリケーションに対応するネットワークプロトコル（第２のネットワークプロトコル）である。アプリ用ＷｅｂＳｏｃｋｅｔは、プリントサーバ１２３とアプリケーションとの間での、プリントサーバ１２３が発行した要求に応じた処理の実行に必要な情報（例えば、印刷ジョブ等のアプリデータ）の通信に用いられる。
【００３４】
第１のネットワーク接続が確立された後、コネクション制御部４０１は、第１のネットワーク接続を介してプリントサーバ１２３から送信されるアプリ起動通知を受信する。アプリ起動通知は、画像形成装置１０１にインストールされたアプリケーションの起動を指示する通知である。本実施例では、アプリ起動通知は、上記アプリケーションに対応するアプリ用ＷｅｂＳｏｃｋｅｔによるネットワーク接続を確立するための指示として機能する。コネクション制御部４０１は、アプリ起動通知に従い、以下の処理を実行する。コネクション制御部４０１は、画像形成装置１０１にインストールされたアプリケーションのうち、プリントサーバ１２３を起点として発行された要求に応じた処理を実行するアプリケーションに対応するアプリ用ＷｅｂＳｏｃｋｅｔを接続する。これにより、第２のネットワーク接続が確立される。
【００３５】
コネクション情報管理部４０２は、コネクション情報１３０１を管理する。通信部４０３は、コネクション制御部４０１から送信指示を受けてパケットの送信を行う。また、通信部４０３は、外部装置からパケットを受信し、コネクション制御部４０１にパケットを渡す。印刷アプリ部４０４は、プリントサーバ１２３から印刷ジョブを受信し、印刷処理部４０５に渡す印刷アプリケーション（印刷アプリ）として機能する。印刷処理部４０５は、印刷ジョブを解析してビットマップに展開し、用紙への印刷を行う。アドレス帳アプリ部４０６は、アドレス帳の送受信を行い、アドレス帳管理部４０７へ指示を行うアドレス帳アプリケーション（アドレス帳アプリ）として機能する。アドレス帳は、ネットワーク上の連絡先のリストである。アドレス帳には、例えば、データや指示等の送信頻度が高い送信宛のネットワークアドレスを含む。アドレス帳管理部４０７は、アドレス帳アプリ部４０６の指示を受けて、アドレス帳を変更、保存する。
【００３６】
図６は、ＰＣの機能ブロック図の例である。ＰＣ１２２は、Ｗｅｂブラウザ部５０１を備える。Ｗｅｂブラウザ部５０１は、プリントサーバ１２３から操作画面情報を取得して操作画面を表示し、操作画面上でのユーザの操作に応じて画像形成装置の指定や印刷指示を行う。
【００３７】
図７は、プリントサーバの機能ブロック図の例である。プリントサーバ１２３は、コネクション制御部６０１、コネクション情報管理部６０２、通信部６０３、印刷アプリ部６０４、文書管理部６０５、Ｗｅｂサーバ部６０６、アドレス帳アプリ部６０７、アドレス帳管理部６０８、デバイステーブル管理部６０９を備える。
【００３８】
コネクション制御部６０１は、通信部６０３、印刷アプリ部６０４、アドレス帳アプリ部６０７からの指示を受信し、制御用ＷｅｂＳｏｃｋｅｔを通じてアプリ起動通知やアプリ停止通知を送信する。ＷｅｂＳｏｃｋｅｔを通じて送信するとは、接続したＷｅｂＳｏｃｋｅｔコネクションを使用して、ペイロードデータとして送信することである。
【００３９】
また、アプリ停止通知は、画像形成装置１０１に対する、アプリ用ＷｅｂＳｏｃｋｅｔを切断する指示である。本実施例では、プリントサーバ１２３が画像形成装置１０１に対して発行する印刷ジョブの実行が完了した時に、コネクション制御部６０１がアプリ停止通知を画像形成装置１０１に対して送信する。
【００４０】
コネクション情報管理部４０２は、コネクション情報管理テーブルを保持し、コネクション情報管理テーブルに設定されたコネクション情報を管理する。
【００４１】
図８は、コネクション情報管理テーブルの一例を示す図である。
コネクション情報テーブル１３０１は、アプリ名１３０２、パス１３０３、ポート番号１３０４、プロトコル名１３０５といったデータ項目を有する。アプリ名１３０２は、アプリケーションを識別する名前である。パス１３０３は、プリントサーバ１２３へアプリ用ＷｅｂＳｏｃｋｅｔを接続する際のパスである。ポート番号１３０４は、プリントサーバ１２３へアプリ用ＷｅｂＳｏｃｋｅｔを接続する際のポート番号である。プロトコル名１３０５は、Ｓｅｃ−ＷｅｂＳｏｃｋｅｔ−Ｐｒｏｔｏｃｏｌヘッダとして利用され、どのアプリ用のＷｅｂＳｏｃｋｅｔであるかを示す。
【００４２】
図７に戻って、通信部６０３は、コネクション制御部６０１から送信指示を受けてパケットの送信を行う。また、通信部６０３は、外部装置からパケットを受信し、コネクション制御部４０１にパケットを渡す。Ｗｅｂサーバ部６０６は、ＰＣ１２２に対するＵＩを提供し、文書管理部６０５が管理する文書情報を返したり、ユーザからの印刷指示を受信したりする。Ｗｅｂサーバ部６０６が印刷指示を受信すると、印刷アプリ部６０４は、印刷指示により指定された画像形成装置に適した印刷ジョブを生成し、アプリ用ＷｅｂＳｏｃｋｅｔを通じて送信する印刷アプリケーション（印刷アプリ）として機能する。アプリ用ＷｅｂＳｏｃｋｅｔは、印刷アプリ部６０４と画像形成装置１０１の印刷アプリ部４０４が印刷処理のために必要とする情報の送受信に用いられる。すなわち、印刷アプリ部６０４は、外部装置であるＰＣ１２２から特定の要求を受けた場合に、以下の処理を実行する発行手段として機能する。印刷アプリ部６０４は、プリントサーバ１２３を起点とした印刷ジョブの実行要求を発行し、発行した印刷ジョブの実行要求を、画像形成装置１０１の印刷アプリ４０４に対応するアプリ用ＷｅｂＳｏｃｋｅｔを通じて、印刷アプリ部４０４に対して送信する。
【００４３】
アドレス帳アプリ部６０７は、画像形成装置１０１からアドレス帳を受信して、アドレス帳管理部６０８に保存するアドレス帳アプリケーション（アドレス帳アプリ）として機能する。また、アドレス帳アプリ部６０７は、変更されたアドレス帳をアプリ用ＷｅｂＳｏｃｋｅｔを通じて画像形成装置１０１に対して配信する。アドレス帳管理部６０８は、画像形成装置１０１に配信するアドレス帳を管理する。デバイステーブル管理部６０９は、デバイステーブルを管理する。デバイステーブルは、画像形成装置１０１に関する情報（デバイス情報）を含む。デバイステーブルは、予め管理者によって作成される。
【００４４】
図９は、デバイステーブルの一例を示す図である。デバイステーブル７０１は、デバイス名７０２、ＭＡＣアドレス７０３、接続状態７０４、設置場所７０５といったデータ項目を有する。すなわち、デバイス名７０２乃至設置場所７０５に設定された情報が、デバイス情報である。
【００４５】
デバイス名７０２は、画像形成装置を識別する名前である。ＭＡＣアドレス７０３は、画像形成装置のＮＩＣが保持する固有の識別子である。接続状態７０４は、画像形成装置１０１がネットワークに接続された状態か否かを示す。接続状態７０４に設定された「オンライン」は、画像形成装置１０１がネットワークに接続された状態であることを示す。また、接続状態７０４に設定された「オフライン」は、画像形成装置１０１がネットワークに接続されていない状態であることを示す。制御用ＷｅｂＳｏｃｋｅｔが接続されている場合、デバイステーブル管理部６０９が、画像形成装置１０１がネットワークに接続された状態であると判断して、接続状態７０４に「オンライン」を設定する。また、制御用ＷｅｂＳｏｃｋｅｔが切断された場合、デバイステーブル管理部６０９が、画像形成装置１０１がネットワークに接続されていない状態となったと判断して、接続状態７０４に「オフライン」を設定する。設置場所７０５は、画像形成装置１０１の設置場所である。設置場所７０５に設定された情報は、ユーザが印刷を行う画像形成装置を選択する際の参考情報として使用される。
【００４６】
図１０は、通信システムにおける印刷処理の例を説明するシーケンス図である。図９を参照して説明する印刷処理を実現する画像形成装置１０１のプログラムは、画像形成装置１０１のＨＤＤ２１１に格納されており、ＲＡＭ２０２に読み出されＣＰＵ２０１によって実行される。また上記印刷処理を実現するプリントサーバ１２３、ＰＣ１２２の各プログラムは、各機器のＨＤＤ３１２に格納されており、ＲＡＭ３０３に読み出されＣＰＵ３０１によって実行される。
【００４７】
まず、画像形成装置１０１が、ユーザの操作で起動する（ステップＳ９０１）。続いて、画像形成装置１０１が、アプリ情報の登録を行う（ステップＳ９０２）。そして、画像形成装置１０１が、プリントサーバ１２３に対して、図１２（Ａ）に示すようなメッセージを送信して、制御用ＷｅｂＳｏｃｋｅｔ接続を行う。
【００４８】
プリントサーバ１２３が、図１２（Ａ）に示すようなメッセージで、制御用ＷｅｂＳｏｃｋｅｔ接続応答を画像形成装置１０１に返す（ステップＳ９０４）。
【００４９】
次に、プリントサーバ１２３が、接続状態の変更を行う（ステップＳ９０５）。具体的には、デバイステーブル管理部６０９が、デバイステーブル７０１の上記画像形成装置１０１に対応する接続状態７０４を、「オンライン」に設定する。
【００５０】
次に、ＰＣ１２２が、ユーザの操作にしたがって、プリントサーバ１２３に対して印刷画面取得要求を送信する（ステップＳ９０６）。続いて、プリントサーバ１２３が、ＰＣ１２２に印刷画面を返す（ステップＳ９０７）。印刷画面（不図示）上でのユーザ操作にしたがって、ＰＣが備えるＷｅｂブラウザ部５０１が、プリンタ選択画面を表示する。
【００５１】
図１１はプリンタ選択画面の例である。プリンタ選択画面には、ユーザが使用可能なプリンタの一覧が表示され、ユーザが、所望のプリンタのチェックボックス８０１にチェックしボタン８０２を押下すると、印刷を実行するプリンタが選択される。ＰＣ１２２は、印刷画面の取得の際に、プリンタ選択画面データもプリントサーバ１２３から取得し、プリンタ選択画面データに基づいてプリンタ選択画面を表示する。プリンタ選択画面データは、印刷要求の指示時のプリンタ選択に用いられる画面データである。このために、プリントサーバ１２３が備えるＷｅｂサーバ部６０６が、前述した図９に示すデバイステーブル７０１からデバイス情報を取得し、このデバイス情報に基づいて、プリンタ選択画面データを生成して、ＰＣ１２２に提供する。
【００５２】
ユーザが、プリンタ選択画面上の印刷ボタン８０２を押し下げすると、印刷出力する画像形成装置１０１が設定される。続いて、印刷画面上でユーザが印刷対象の文書を指定すると、ＰＣ１２２が、印刷要求をプリントサーバ１２３に送信する（ステップＳ９０８）。
【００５３】
Ｗｅｂサーバ部６０６が、デバイステーブル７０１において接続状態が「オンライン」である画像形成装置、つまり制御用ＷｅｂＳｏｃｋｅｔが接続済みの画像形成装置のデバイス情報を表示情報として含むプリンタ選択画面データをＰＣ１２２に送信してもよい。これにより、ＰＣ１２２において、制御用ＷｅｂＳｏｃｋｅｔが接続された画像形成装置がプリンタ選択画面上に表示される。
【００５４】
次に、プリントサーバ１２３が、印刷要求応答をＰＣ１２２に返す（ステップＳ９０９）。続いて、プリントサーバ１２３が、制御用ＷｅｂＳｏｃｋｅｔを通じて、ファイアーウォール外からのＰｕｓｈ送信で、図１２（Ｃ）に示すようなアプリ起動通知を画像形成装置１０１に送信する（ステップＳ９１０）。すなわち、プリントサーバ１２３が備えるコネクション制御部６０１は、ＰＣ１２２から印刷要求を受けた場合に、制御用ＷｅｂＳｏｃｋｅｔを通じて、以下の処理を実行する。コネクション制御部６０１は、印刷ジョブを実行するアプリケーションの起動通知を、該アプリケーションに対応する第２のネットワーク接続を確立するための指示として画像形成装置１０１に対して行う。
【００５５】
プリントサーバ１２３は、アプリ起動通知を、ステップＳ９０５からＳ９０９の間であれば、いつ送信してもよいが、アプリ用ＷｅｂＳｏｃｋｅｔの接続時間を短くするためには、送信するタイミングは遅い方がよい。したがって、図１０に示す例では、プリントサーバ１２３は、印刷ジョブを送信した後にアプリ起動通知を送信することで、アプリ用ＷｅｂＳｏｃｋｅｔの接続タイミングを印刷ジョブの送信終了時としている。
【００５６】
次に、画像形成装置１０１が、プリントサーバ１２３に対して、図１２（Ａ）に示すようなメッセージを送信することを通じて、アプリ用ＷｅｂＳｏｃｋｅｔ接続を行う（ステップＳ９１１）。続いて、プリントサーバ１２３が、画像形成装置１０１に対して、図１２（Ｂ）に示すようなメッセージで、アプリ用ＷｅｂＳｏｃｋｅｔ接続応答を返す（ステップＳ９１２）。そして、プリントサーバ１２３が、アプリ用ＷｅｂＳｏｃｋｅｔを通じて、Ｐｕｓｈ送信で、図１２（Ｄ）に示すような印刷ジョブを画像形成装置１０１に送信する。
【００５７】
次に、画像形成装置１０１が、印刷処理を実行する（ステップＳ９１４）。続いて、画像形成装置１０１が、、ジョブ終了通知を、アプリ用ＷｅｂＳｏｃｋｅｔを通じてプリントサーバ１２３に送信する（ステップＳ９１５）。続いて、プリントサーバ１２３が、、アプリ停止通知を、アプリ用ＷｅｂＳｏｃｋｅｔを通じて画像形成装置１０１に送信する（ステップＳ９１６）。なお、プリントサーバ１２３は、アプリ停止通知を、ステップＳ９１５からＳ９２０の間であればいつ送信してもよいが、アプリ用ＷｅｂＳｏｃｋｅｔの接続時間を短くするためには、送信するタイミングは早い方がよい。図１０に示す例では、プリントサーバ１２３は、アプリ停止通知を、画像形成装置１０１からジョブ終了通知を受けた時に送信することで、アプリ用ＷｅｂＳｏｃｋｅｔの切断タイミングを印刷ジョブの実行終了時としている。
【００５８】
次に、画像形成装置１０１が、アプリ用ＷｅｂＳｏｃｋｅｔ切断をプリントサーバ１２３に送信する（ステップＳ９１７）。続いて、プリントサーバ１２３が、アプリ用ＷｅｂＳｏｃｋｅｔ切断応答を画像形成装置１０１に返す（ステップＳ９１８）。その後、画像形成装置１０１が、ユーザ操作でシャットダウンを検知し、シャットダウンを実行する前の処理を行う（ステップＳ９１９）。
【００５９】
次に、画像形成装置１０１が、制御用ＷｅｂＳｏｃｋｅｔ切断をプリントサーバ１２３に送信する（ステップＳ９２０）。プリントサーバ１２３が、制御用ＷｅｂＳｏｃｋｅｔ切断応答を画像形成装置１０１に返す（ステップＳ９２１）。続いて、画像形成装置１０１が、シャットダウンを実行する（ステップＳ９２２）。そして、プリントサーバ１２３が、画像形成装置１０１の制御用ＷｅｂＳｏｃｋｅｔが切断されたので、接続状態の変更を行う（ステップＳ９２３）。具体的には、デバイステーブル管理部６０９が、デバイステーブル７０１の画像形成装置１０１に対応する接続状態７０４を、「オフライン」に設定する。
【００６０】
図１２は、実施例１において画像形成装置とプリントサーバとの間で送受信されるメッセージの例である。図１２（Ａ）は、ＷｅｂＳｏｃｋｅｔ接続時に送信するメッセージの例である。ＨＴＴＰヘッダと異なり、ＷｅｂＳｏｃｋｅｔヘッダでは、Ｕｐｇｒａｄｅヘッダにｗｅｂｓｏｃｋｅｔと記載されて、ＣｏｎｎｅｃｔｉｏｎヘッダにＵｐｇｒａｄｅと記載される。Ｓｅｃ−ＷｅｂＳｏｃｋｅｔ−Ｐｒｏｔｏｃｏｌヘッダは、このＷｅｂＳｏｃｋｅｔが何用として利用されるかを示す。本実施例では、制御用ＷｅｂＳｏｃｋｅｔであることを示すｃｏｎｔｒｏｌや印刷アプリ用ＷｅｂＳｏｃｋｅｔであることを示すｐｒｉｎｔが記載される。本メッセージは、図１０のステップＳ９０３、Ｓ９１１、図１３のステップＳ１１０５、Ｓ１１１１で送信され、受信したプリントサーバ１２３は、図１２（Ｂ）に示すような応答メッセージを返す。
【００６１】
図１２（Ｂ）は、図１２（Ａ）に示すメッセージに対する応答メッセージの例である。Ｕｐｇｒａｄｅヘッダにｗｅｂｓｏｃｋｅｔと記載されて、ＣｏｎｎｅｃｔｉｏｎヘッダにＵｐｇｒａｄｅと記載される。Ｓｅｃ−ＷｅｂＳｏｃｋｅｔ−Ｐｒｏｔｏｃｏｌヘッダは、このＷｅｂＳｏｃｋｅｔが何用として利用されるかを示す。本メッセージは、図１０のステップＳ９０４、Ｓ９１２、図１４のステップＳ１２０８、Ｓ１２１０で送信され、画像形成装置１０１とプリントサーバ１２３の間でＷｅｂＳｏｃｋｅｔコネクションが確立される。
【００６２】
図１２（Ｃ）は、制御用ＷｅｂＳｏｃｋｅｔを通じてアプリ用ＷｅｂＳｏｃｋｅｔの接続を指示するメッセージの例である。＜ＷｅｂＳｏｃｋｅｔＣｏｎｔｒｏｌ＞タグは、ＷｅｂＳｏｃｋｔの制御に使われることを示す。＜ＡｐｐＮａｍｅ＞タグはアプリケーション名を示し、どのアプリ用ＷｅｂＳｏｃｋｅｔに対する指示なのかを示す。＜Ｓｔａｔｕｓ＞タグは、接続指示か切断指示を示す。本実施例では、＜Ｓｔａｔｕｓ＞タグがｏｐｅｎの場合に接続指示を示し、Ｃｌｏｓｅの場合に切断指示を示す。本メッセージは、図１０のステップＳ９１０、図１４のステップＳ１２０５で送信され、受信した画像形成装置１０１は、アプリ用ＷｅｂＳｏｃｋｅｔ接続をプリントサーバ１２３に送信する。
【００６３】
図１２（Ｄ）は、アプリ用ＷｅｂＳｏｃｋｅｔを通じて印刷ジョブを送信するメッセージの例である。＜ＰｒｉｎｔＪｏｂＲｅｑｕｅｓｔ＞タグで印刷要求であることを示し、＜Ｊｏｂ＞タグで印刷ジョブの情報が示される。＜Ｕｓｅｒ＞タグは、印刷を実行したユーザ名、＜ＪｏｂＮａｍｅ＞タグは文書名である。本実施例では、＜ＰｒｉｎｔＪｏｂＲｅｑｕｅｓｔ＞タグの後に印刷ジョブのデータが付与される。本メッセージは、図１０のステップＳ９１３、図１４のステップＳ１２０６で送信され、受信した画像形成装置１０１は、印刷処理を実行する。
【００６４】
図１３は、画像形成装置が備えるコネクション制御部の動作処理の例を説明するフローチャートである。本フローにしたがう処理を実現するプログラムは、画像形成装置１０１のＨＤＤ２１１に格納されており、ＲＡＭ２０２に読み出されＣＰＵ２０１によって実行される。
【００６５】
コネクション制御部４０１が、指示を受信したかを判断する（ステップＳ１１０１）。コネクション制御部４０１が、指示を受信していないと判断した場合は、ステップＳ１１０１に戻る。コネクション制御部４０１が、指示を受信したと判断した場合は、ステップＳ１１０２に進む。
【００６６】
次に、コネクション制御部４０１が、アプリ部（印刷アプリ部４０４、アドレス帳アプリ部４０６）と通信部４０３のうち、いずれから指示（通知）を受信したかを判断する（ステップＳ１１０２）。コネクション制御部４０１が、アプリ部から指示を受信したと判断した場合は、ステップＳ１１０３に進む。
【００６７】
ステップＳ１１０３において、コネクション制御部４０１が、指示の種別を判断する。指示が情報登録の指示である場合は、ステップＳ１１０４に進む。そして、コネクション制御部４０１が、コネクション情報をコネクション情報管理部４０２へ保存し（ステップＳ１１０４）、ステップＳ１１０１に戻る。コネクション情報は、アプリ名、パス、ポート番号、プロトコル名を含む。  指示が、画像形成装置１０１が起動したことを示すデバイス起動通知である場合は、ステップＳ１１０５に進む。そして、コネクション制御部４０１が、図１２（Ａ）に示すようなメッセージで、制御用ＷｅｂＳｏｃｋｅｔ接続を送信するように通信部４０３へ指示する（ステップＳ１１０５）。ＷｅｂＳｏｃｋｅｔ接続を送信することは、図１２（Ａ）のようなメッセージで、ＷｅｂＳｏｃｋｅｔ接続時に必要な情報を送信することである。通信部４０３が、図１２（Ａ）に示すメッセージを含む実際のパケットを送信する。
【００６８】
指示が、画像形成装置１０１がシャットダウンすることを示すデバイスシャットダウン通知である場合は、ステップＳ１１０６に進む。そして、コネクション制御部４０１が、制御用ＷｅｂＳｏｃｋｅｔ切断を送信するように通信部４０３へ指示する（ステップＳ１１０６）。
【００６９】
指示が、アプリデータである場合は、ステップＳ１１０７に進む。そして、コネクション制御部４０１が、アプリ用ＷｅｂＳｏｃｋｅｔでアプリデータを送信するように通信部４０３へ指示する（ステップＳ１１０７）。
【００７０】
ステップＳ１１０２の判断処理で、コネクション制御部４０１が、通信部４０３から通知を受信したと判断した場合は、ステップＳ１１０８に進む。そして、コネクション制御部４０１が、通知の種別を判断する（ステップＳ１１０８）。コネクション制御部４０１が、通知がアプリ起動／停止通知であると判断した場合は、ステップＳ１１０９に進む。そして、コネクション制御部４０１が、受信した通知情報からアプリ情報を取り出し、そのアプリ名が、コネクション情報管理テーブル１３０１（図８）に存在するかを判断する（ステップＳ１１０９）。
【００７１】
アプリ名がコネクション情報管理テーブル１３０１に存在しない場合は、Ｓ１１０１に戻る。アプリ名がコネクション情報管理テーブル１３０１に存在する場合は、ステップＳ１１１０に進む。続いて、コネクション制御部４０１が、画像形成装置１０１でジャムなどのエラーが発生しているかを判断する（ステップＳ１１１０）。コネクション制御部４０１が、画像形成装置１０１でジャムなどのエラーが発生していると判断した場合は、ステップＳ１１１１に進む。そして、コネクション制御部４０１が、アプリ用ＷｅｂＳｏｃｋｅｔ接続／切断を送信するように通信部４０３へ指示する（ステップＳ１１１１）。なお、コネクション制御部４０１は、アプリ用ＷｅｂＳｏｃｋｅｔ接続を、図１２（Ａ）に示すようなメッセージでプリントサーバ１２３に対して送信する。
【００７２】
コネクション制御部４０１が、画像形成装置１０１でジャムなどのエラーが発生していないと判断した場合は、ステップＳ１１１２に進む。そして、コネクション制御部４０１が、制御用ＷｅｂＳｏｃｋｅｔでエラー通知を行うように通信部４０３へ指示する（ステップＳ１１１２）。なお、コネクション制御部４０１は、エラー通知を、アプリ用ＷｅｂＳｏｃｋｅｔを接続した後に、アプリ用ＷｅｂＳｏｃｋｅｔを通じてエラー通知を送信してもよい。コネクション制御部４０１は、エラー通知を送信した後は、アプリ用ＷｅｂＳｏｃｋｅｔを切断する。
【００７３】
上記ステップＳ１１０８の判断処理で、コネクション制御部４０１が、受信した通知がアプリデータであると判断した場合は、ステップＳ１１１３に進む。そして、コネクション制御部４０１が、どのアプリ用ＷｅｂＳｏｃｋｅｔを通じて受信したアプリデータであるかを判断して、該当するアプリ部へアプリデータを送信する。例えば、アプリデータが、印刷アプリ用ＷｅｂＳｏｃｋｅｔを通じて受信した印刷ジョブである場合には、コネクション制御部４０１は、印刷アプリ部４０４へ印刷ジョブを送信する。
【００７４】
図１４は、プリントサーバが備えるコネクション制御部の動作処理の例を説明するフローチャートである。本フローにしたがう処理を実現するプログラムは、プリントサーバ１２３のＨＤＤ３１２に格納されており、ＲＡＭ３０３に読み出されＣＰＵ３０１によって実行される。
【００７５】
コネクション制御部６０１が、指示を受信したかを判断する（ステップＳ１２０１）。コネクション制御部６０１が、指示を受信していないと判断した場合は、ステップＳ１２０１に戻る。コネクション制御部４０１が、指示を受信したと判断した場合は、ステップＳ１２０２に進む。
【００７６】
次に、コネクション制御部６０１が、アプリ部（印刷アプリ部６０４、アドレス帳アプリ部６０７）と通信部６０３のうち、いずれから指示（通知）を受信したかを判断する（ステップＳ１２０２）。コネクション制御部６０１が、アプリ部から指示を受信したと判断した場合は、ステップＳ１２０３に進む。
【００７７】
ステップＳ１２０３において、コネクション制御部６０１が、指示の種別を判断する。指示が情報登録の指示である場合は、ステップＳ１２０４に進む。そして、コネクション制御部６０１が、コネクション情報をコネクション情報管理部６０２へ保存し（ステップＳ１２０４）、ステップＳ１２０１に戻る。コネクション情報は、アプリ名、パス、ポート番号、プロトコル名を含む。
【００７８】
指示が、画像形成装置１０１が起動したことを示すデバイス起動通知である場合は、ステップＳ１１０５に進む。そして、コネクション制御部４０１が、図１２（Ａ）に示すようなメッセージで、制御用ＷｅｂＳｏｃｋｅｔ接続を送信するように通信部４０３へ指示する（ステップＳ１１０５）。ＷｅｂＳｏｃｋｅｔ接続を送信することは、図１２（Ａ）のようなメッセージで、ＷｅｂＳｏｃｋｅｔ接続時に必要な情報を送信することである。通信部４０３が、図１２（Ａ）に示すメッセージを含む実際のパケットを送信する。
【００７９】
指示が、アプリ起動／停止通知である場合は、ステップＳ１２０５に進む。そして、コネクション制御部６０１が、制御用ＷｅｂＳｏｃｋｅｔでアプリ起動／停止通知を行うように通信部６０３へ指示する（ステップＳ１２０５）。コネクション制御部６０１は、アプリ起動通知を、図１２（Ｃ）に示すようなメッセージで送信する。
【００８０】
指示が、アプリデータである場合は、ステップＳ１２０６に進む。そして、コネクション制御部４０１が、アプリ用ＷｅｂＳｏｃｋｅｔでアプリデータを送信するように通信部６０３へ指示する（ステップＳ１２０６）。具体的には、コネクション制御部６０１は、アプリ用ＷｅｂＳｏｃｋｅｔで、図１２（Ｄ）に示すようなアプリデータを送信するように通信部６０３へ指示する。
【００８１】
ステップＳ１２０２の判断処理で、コネクション制御部６０１が、通信部６０３から通知を受信したと判断した場合は、ステップＳ１２０７に進む。そして、コネクション制御部６０１が、通知の種別を判断する（ステップＳ１２０７）。
【００８２】
コネクション制御部６０１が、通知が制御用ＷｅｂＳｏｃｋｅｔ接続である判断した場合は、ステップＳ１２０８に進む。そして、コネクション制御部４０１が、例えば図１２（Ｂ）に示すようなメッセージで、制御用ＷｅｂＳｏｃｋｅｔ接続応答を送信するように通信部６０３へ指示する（ステップＳ１２０８）。そして、コネクション制御部６０１が、接続状態の変更を行って（ステップＳ１２０９）、ステップＳ１２０１に戻る。
【００８３】
コネクション制御部６０１が、通知がアプリ用ＷｅｂＳｏｃｋｅｔ接続であると判断した場合は、ステップＳ１２１０に進む。そして、コネクション制御部６０１が、例えば図１２（Ｂ）に示すようなメッセージで、アプリ用ＷｅｂＳｏｃｋｅｔ接続応答を送信するように通信部６０３へ指示する（ステップＳ１２１０）。
【００８４】
コネクション制御部６０１が、通知がアプリ用ＷｅｂＳｏｃｋｅｔ切断であると判断した場合は、ステップＳ１２１１に進む。そして、コネクション制御部６０１が、アプリ用ＷｅｂＳｏｃｋｅｔ切断応答を送信するように通信部６０３へ指示する（ステップＳ１２１１）。
【００８５】
コネクション制御部６０１が、通知が制御用ＷｅｂＳｏｃｋｅｔ切断である判断した場合は、ステップＳ１２１２に進む。そして、コネクション制御部６０１が、制御用ＷｅｂＳｏｃｋｅｔ切断応答を送信するように通信部６０３へ指示する（ステップＳ１２１２）。そして、コネクション制御部６０１が、接続状態の変更を行う（ステップＳ１２１３）。
【００８６】
コネクション制御部６０１が、通知がアプリデータであると判断した場合は、ステップＳ１２１４に進む。そして、コネクション制御部６０１が、アプリデータをアプリ部へ送信する（ステップＳ１２１４）。
【００８７】
実施例１の通信システムによれば、プリントサーバ１２３を起点とする印刷要求をファイアーウォールを介してクライアント装置へ送信することを可能とするネットワーク接続を確立する際に、以下の効果を奏することができる。すなわち、実施例１の通信システムは、１本の制御用ＷｅｂＳｏｃｋｅｔを接続した上で、この制御用ＷｅｂＳｏｃｋｅｔを通じて印刷アプリ用のＷｅｂＳｏｃｋｅｔの接続および切断を制御する。したがって、プリンタにおいてアプリケーションの数が増えた場合であっても、ネットワークの接続管理に関するプリントサーバ１２３の負荷を抑えることができる。また、実施例１の通信システムによれば、プリンタが、起動時に全てのアプリケーションについてのアプリケーション用ＷｅｂＳｏｃｋｅｔを接続する必要がなくなるので、プリンタのリソースの無駄を防止できる。
【００８８】
（実施例２）
実施例２の通信システムは、制御用ＷｅｂＳｏｃｋｅｔを適用することによるアドレス帳アプリによるアドレス帳配信を実現する。実施例２のシステム構成は、図１に示すシステム構成と同様である。なお、本実施例においては、実施例１と同一部分に関する説明は省略し、その差異についてのみ説明する。
【００８９】
図１５は、通信システムにおけるアドレス帳配信処理の例を説明するシーケンス図である。図１５を参照して説明するアドレス帳配信処理を実現する画像形成装置１０１、１０２のプログラムは、画像形成装置１０１、１０２のＨＤＤ２１１に格納されており、ＲＡＭ２０２に読み出されＣＰＵ２０１によって実行される。また上記アドレス帳配信処理を実現するプリントサーバ１２３のプログラムは、ＨＤＤ３１２に格納されており、ＲＡＭ３０３に読み出されＣＰＵ３０１によって実行される。以下の説明では、画像形成装置１０２が第１のクライアント装置、画像形成装置１０１が第２のクライアント装置として機能する。
【００９０】
実施例２の通信システムは、ステップＳ１４０１の処理の前に、実施例１の通信システムと同様に、図１０のステップＳ９０１乃至Ｓ９０５の処理（図１５では不図示）を実行する。
【００９１】
ステップＳ１４０１において、画像形成装置１０２が、ユーザの操作を受け付け、アドレス帳を変更する。具体的には、アドレス帳アプリ部４０６（図５）が、アドレス帳管理部４０７が管理しているアドレス帳が有する連絡先を変更する。続いて、画像形成装置１０２が、アドレス帳変更通知をプリントサーバ１２３に送信する（ステップＳ１４０２）。アドレス帳変更通知は、イントラネットからファイアーウォール外への送信であるので、ＷｅｂＳｏｃｋｅｔで送信する必要はなく、ＨＴＴＰで送信する。
【００９２】
次に、プリントサーバ１２３が、受信したアドレス帳変更通知に従い、プリントサーバ１２３内のアドレス帳を変更する（ステップＳ１４０３）。続いて、プリントサーバ１２３が、制御用ＷｅｂＳｏｃｋｅｔを通じて、ファイアーウォール外からのＰｕｓｈ送信で、図１６（Ｃ）に示すようなアプリ起動通知を画像形成装置１０１、１０２に送信する（ステップＳ１４０４）。すなわち、プリントサーバ１２３が備えるコネクション制御部６０１は、変更通知されたアドレス帳が有する情報を画像形成装置１０１に反映させる処理を実行するアドレス帳アプリ部４０６の起動通知を画像形成装置１０１に対して行う。
【００９３】
なお、プリントサーバ１２３は、アプリ起動通知を、ステップＳ１４０１からＳ１４０３の間であればいつ送信してもよいが、アプリ用ＷｅｂＳｏｃｋｅｔの接続時間を短くするためには、送信するタイミングは遅い方がよい。したがって、図１５に示す例では、プリントサーバ１２３は、アプリ起動通知を、アドレス帳変更時に送信することで、アプリ用ＷｅｂＳｏｃｋｅｔの接続タイミングをアドレス帳変更時としている。プリントサーバ１２３が、アドレス帳変更通知を送信した画像形成装置が画像形成装置１０２であると判断して、アプリ起動通知を画像形成装置１０１にのみ送信してもよい。
【００９４】
画像形成装置１０１、１０２は、プリントサーバ１２３に図１６（Ａ）に示すようなメッセージで、アプリ用ＷｅｂＳｏｃｋｅｔ接続を行う（ステップＳ１４０５）。続いて、プリントサーバ１２３が、画像形成装置１０１、１０２に対して、図１６（Ｂ）に示すのようなメッセージで、アプリ用ＷｅｂＳｏｃｋｅｔ接続応答を返す（ステップＳ１４０６）。そして、プリントサーバ１２３が、アプリ用ＷｅｂＳｏｃｋｅｔを通じて、Ｐｕｓｈ送信で図１６（Ｄ）のようなアドレス帳を画像形成装置１０１、１０２に配信する（ステップＳ１４０７）。
【００９５】
次に、画像形成装置１０１、１０２が、受信したアドレス帳の内容に従い、アドレス帳を変更する（ステップＳ１４０８）。プリントサーバ１２３は、上記ステップＳ１４０７で配信されたアドレス帳データを全て送信した時点で、アプリ用ＷｅｂＳｏｃｋｅｔを通じて、アプリ停止通知を画像形成装置１０１、１０２に送信する（ステップＳ１４０９）。なお、プリントサーバ１２３は、アプリ停止通知を、上記ステップＳ１４０８の後であればいつ送信してもよいが、アプリ用ＷｅｂＳｏｃｋｅｔの接続時間を短くするためには、送信するタイミングは早い方がよい。図１５に示す例では、プリントサーバ１２３が、アドレス帳を配信した後にアプリ停止通知を画像形成装置１０１、１０２に送信することで、アプリ用ＷｅｂＳｏｃｋｅｔの切断タイミングをアドレス帳配信終了時としている。画像形成装置１０１、１０２が、アプリ停止通知を、アプリ用ＷｅｂＳｏｃｋｅｔを通じてプリントサーバ１２３に送信するようにしてもよい。
【００９６】
次に、画像形成装置１０１、１０２が、アプリ用ＷｅｂＳｏｃｋｅｔ切断をプリントサーバ１２３に送信する（ステップＳ１４１０）。そして、プリントサーバ１２３が、アプリ用ＷｅｂＳｏｃｋｅｔ切断応答を画像形成装置１０１、１０２に返す（ステップＳ１４１１）。ステップＳ１４１１より後の処理は、図１０のステップＳ９１９からＳ９２２までの処理と同様である。なお、プリントサーバ１２３は、制御用ＷｅｂＳｏｃｋｅｔが接続されていない画像形成装置に対しては、その画像形成装置が接続された時点で以下の処理を実行してもよい。プリントサーバ１２３は、その画像形成装置にアドレス帳を配信済みであるかを判断し、アドレス帳を配信済みである場合に、その画像形成装置に対してアプリ起動通知を送信する。
【００９７】
図１６は、実施例２において画像形成装置とプリントサーバとの間で送受信されるメッセージの例である。図１６（Ａ）は、ＷｅｂＳｏｃｋｅｔ接続時に送信するメッセージの例である。Ｓｅｃ−ＷｅｂＳｏｃｋｅｔ−Ｐｒｏｔｏｃｏｌヘッダは、このＷｅｂＳｏｃｋｅｔが何用として利用されるかを示す。本実施例では、制御用ＷｅｂＳｏｃｋｅｔであることを示すｃｏｎｔｒｏｌやアドレス帳アプリ用ＷｅｂＳｏｃｋｅｔであることを示すａｄｄｒｅｓｓが記載される。本メッセージは、図１５のステップＳ１４０５で送信され、受信したプリントサーバ１２３は、図１６（Ｂ）に示すような応答メッセージを返す。
【００９８】
図１６（Ｂ）は、図１６（Ａ）のメッセージに対しする応答メッセージの例である。Ｓｅｃ−ＷｅｂＳｏｃｋｅｔ−Ｐｒｏｔｏｃｏｌヘッダは、このＷｅｂＳｏｃｋｅｔが何用として利用されるかを示す。本メッセージは、図１５のステップＳ１４０６で送信され、画像形成装置１０１、１０２とプリントサーバ１２３の間でＷｅｂＳｏｃｋｅｔコネクションが確立される。
【００９９】
図１６（Ｃ）は、制御用ＷｅｂＳｏｃｋｅｔを通じてアプリ用ＷｅｂＳｏｃｋｅｔの接続を指示するメッセージの例である。＜ＷｅｂＳｏｃｋｅｔＣｏｎｔｒｏｌ＞タグは、ＷｅｂＳｏｃｋｔの制御に使われることを示す。＜ＡｐｐＮａｍｅ＞タグはアプリケーション名を示し、どのアプリ用ＷｅｂＳｏｃｋｅｔに対する指示なのかを示す。本実施例では、アドレス帳アプリであることを示すａｄｄｒｅｓｓが記載される。＜Ｓｔａｔｕｓ＞タグは、接続指示か切断指示を示す。本実施例では、＜Ｓｔａｔｕｓ＞タグがｏｐｅｎの場合に接続指示を示し、Ｃｌｏｓｅの場合に切断指示を示す。本メッセージは、図１５のステップＳ１４０４で送信され、受信した画像形成装置１０１、１０２は、アプリ用ＷｅｂＳｏｃｋｅｔ接続をプリントサーバ１２３に送信する。
【０１００】
図１６（Ｄ）は、アプリ用ＷｅｂＳｏｃｋｅｔを通じてアドレス帳を送信するメッセージの例である。＜ＡｄｄｒｅｓｓＢｏｏｋ＞タグでアドレス帳配信であることを示し、＜ｅｍａｉｌ＞タグでメールアドレス情報が示される。＜Ｕｓｅｒ＞タグの中に個別のメールアドレス情報が設定される。本メッセージは、図１５のステップＳ１４０７で送信され、受信した画像形成装置１０１は、アドレス帳を変更する。
【０１０１】
実施例２の通信システムによれば、プリントサーバ１２３を起点とするアドレス帳配信をファイアーウォールを介してクライアント装置へ送信することを可能とするネットワーク接続を確立する際に、以下の効果を奏することができる。すなわち、実施例１の通信システムは、１本の制御用ＷｅｂＳｏｃｋｅｔを接続した上で、この制御用ＷｅｂＳｏｃｋｅｔを通じてアドレス帳アプリ用のＷｅｂＳｏｃｋｅｔの接続および切断を管理する。したがって、プリンタにおいてアプリケーションの数が増えた場合であっても、ネットワークの接続管理に関するプリントサーバ１２３の負荷を抑えることができる。また、実施例１の通信システムによれば、プリンタが、起動時に全てのアプリケーションについてのアプリケーション用ＷｅｂＳｏｃｋｅｔを接続する必要がなくなるので、プリンタのリソースの無駄を防止できる。
【０１０２】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
【符号の説明】
【０１０３】
１０  イントラネット
１０１  画像形成装置
１０２  画像形成装置
１０３  ファイアーウォール
１０４  ネットワーク
１２１  インターネット
１２２  ＰＣ
１２３  プリントサーバ
【図１】
2014021794.tif 000003
【図２】
2014021794.tif 000004
【図３】
2014021794.tif 000005
【図４】
2014021794.tif 000006
【図５】
2014021794.tif 000007
【図６】
2014021794.tif 000008
【図７】
2014021794.tif 000009
【図８】
2014021794.tif 000010
【図９】
2014021794.tif 000011
【図１０】
2014021794.tif 000012
【図１１】
2014021794.tif 000013
【図１２】
2014021794.tif 000014
【図１３】
2014021794.tif 000015
【図１４】
2014021794.tif 000016
【図１５】
2014021794.tif 000017
【図１６】
2014021794.tif 000018