(57)【要約】      （修正有）【課題】印刷装置からの多量のデータ送信を処理するためのより効率的なリアルタイム通信セッションを構築するシステムと方法を提供する。【解決手段】システムは一次サーバおよび二次サーバを含み、一次サーバは、ユーザーインターフェースを提供するように構成されたアプリケーションを含む。二次サーバは、データ転送プロトコルに従って、一次サーバおよび複数のプリンタ装置と通信するように構成される。プリンタ装置識別子含むリクエストは、制御部により受信され、プリンタ装置識別子に基づいて、対象プリンタ装置は、複数のプリンタ装置から決定される。通信セッションは、一次サーバ、二次サーバ、および対象プリンタ装置間に構築される。また、通信セッションは、データ転送プロトコルに従って、制御部は、通信セッションに基づいて、対象プリンタ装置を制御するように構成される。【選択図】図１
2016128251.tif 000002
【特許請求の範囲】
【請求項１】
システムであって、
ユーザーインターフェースを提供するように構成されたアプリケーションを含む一次サーバと、
データ転送プロトコルに従って、前記一次サーバ、およびファイアウォールの後方に位置している複数のプリンタ装置と、インターネットを介して通信するように構成された二次サーバと、
前記アプリケーションを介して、プリンタ装置識別子を含む通信リクエストを受信し、前記プリンタ装置識別子に基づいて前記複数のプリンタ装置から少なくとも１つの対象プリンタ装置を決定し、前記データ転送プロトコルに従って、前記一次サーバ、前記二次サーバ、および前記少なくとも１つの対象プリンタ装置間の通信セッションを構築し、前記通信セッションに基づいて、前記少なくとも１つの対象プリンタ装置を制御するように構成された制御部と、
を備えるシステム。
【請求項２】
請求項１に記載のシステムであって、
前記制御部はさらに、通信セッション開始時刻と設定情報とを受信するように構成され、前記通信セッションの構築は、前記通信セッション開始時刻であるシステム時刻に応答し、前記通信セッションは、前記設定情報に従って構成されるシステム。
【請求項３】
請求項１に記載のシステムであって、
前記データ転送プロトコルは、ＸＭＰＰ通信プロトコルを備え、前記一次サーバは、前記一次サーバで実行中のＸＭＰＰクライアント・インスタンス、および前記二次サーバで実行中のＸＭＰＰサーバ・インスタンスを介して、前記二次サーバと通信するシステム。
【請求項４】
請求項３に記載のシステムであって、
前記データ転送プロトコルは、さらに、ＢＯＳＨ（ｂｉｄｉｒｅｃｔｉｏｎａｌ  ｓｔｒｅａｍ  ｏｖｅｒ  ｓｙｎｃｈｒｏｎｏｕｓ  ＨＴＴＰ）トランスポート・プロトコルを備え、前記少なくとも１つの対象プリンタ装置は、ＸＭＰＰ・ＢＯＳＨクライアント・インスタンスを実行するシステム。
【請求項５】
請求項１に記載のシステムであって、
前記データ転送プロトコルは、さらにファイアウォール適合プロトコルを備え、前記ファイアウォール適合プロトコルは、前記ファイアウォールを通して、双方向データ転送を提供する操作が可能であるシステム。
【請求項６】
請求項１に記載のシステムであって、
前記一次サーバに関連付けられているデータベースは、前記複数のプリンタ装置とプリンタ装置識別子間の関連リストを格納するように構成され、前記複数のプリンタ装置からの前記少なくとも１つの対象プリンタ装置の決定には、前記一次サーバによる前記データベースからの前記関連リストの検索が含まれるシステム。
【請求項７】
方法であって、
一次サーバにおいて、アプリケーションのユーザーインターフェースを介した通信リクエストを受信する工程であって、前記通信リクエストはプリンタ装置識別子を備え、前記一次サーバは、データ転送プロトコルに従って、ファイアウォールの後方に位置する複数のプリンタ装置、および二次サーバと、インターネットを介して通信するように構成されている工程と、
前記プリンタ装置識別子に基づいて、前記複数のプリンタ装置からの少なくとも１つの対象プリンタ装置を決定する工程と、
前記データ転送プロトコルに従って、前記一次サーバ、前記二次サーバ、および前記少なくとも１つの対象プリンタ装置間の通信セッションを構築する工程と、
前記通信セッションに基づいて、前記少なくとも１つの対象プリンタ装置を制御する工程と、
を備える方法。
【請求項８】
請求項７に記載の方法であって、さらに、
前記通信セッションの構築に応じて、前記少なくとも１つの対象プリンタ装置に関連するステータスをオンライン・ステータスに調整する工程と、
前記通信セッションをクロージングする工程と、
前記通信セッションのクロージングに応じて、前記少なくとも１つの対象プリンタ装置に関連するステータスをオフライン・ステータスに調整する工程と、
を備える方法。
【請求項９】
請求項７に記載の方法であって、さらに、
前記一次サーバによって前記少なくとも１つの対象プリンタ装置に関する情報を受信する工程と、
前記アプリケーションの前記ユーザーインターフェースを介した情報を表示する工程と、
を備える方法。
【請求項１０】
方法であって、
一次サーバにおいて、アプリケーションのユーザーインターフェースを介して通信リクエストを受信する工程であって、前記通信リクエストはプリンタ装置識別子を備え、前記一次サーバは、データ転送プロトコルに従って、ファイアウォールの後方に位置する複数のプリンタ装置、および二次サーバと、インターネットを介して通信するように構成されている工程と、
前記通信リクエストの受信に応じて、前記一次サーバに関連付けられたデータベースからの前記プリンタ装置識別子に関連する情報を検索する工程と、
前記検索された情報に基づいて、前記複数のプリンタ装置から少なくとも１つの対象プリンタ装置を決定する工程と、
前記データ転送プロトコルに従って、前記一次サーバ、前記二次サーバ、および前記少なくとも１つの対象プリンタ装置間の通信セッションを構築する工程と、
前記一次サーバによる前記通信セッションを介した対象プリンタ装置情報の受信に応じて、前記通信セッションを介した前記少なくとも１つの対象プリンタ装置へ少なくとも１つのコマンドを提供する工程と、
前記通信セッションをクロージングする工程と、
を備える方法。
【請求項１１】
請求項１０に記載の方法であって、さらに、
前記通信セッションの構築に応じて、前記少なくとも１つの対象プリンタ装置に関連するステータスをオンライン・ステータスに調整する工程を備える方法。
【請求項１２】
請求項１０に記載の方法であって、さらに、
前記通信セッションのクロージングに応じて、前記少なくとも１つの対象プリンタ装置に関連するステータスをオフライン・ステータスに調整する工程を備える方法。
【請求項１３】
請求項１５に記載の方法であって、さらに、
前記検索された情報に基づいて、前記通信セッション開始時刻を決定する工程と、
設定情報を受信する工程と、
前記通信セッション開始時刻であるシステム時刻に応じて前記通信セッションを構築し、前記通信セッションは、前記設定情報に従って構成される工程とを含む方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷装置に関する。
【背景技術】
【０００２】
プリンタ、複写機、スキャナ、および多機能装置（ＭＦＤ）は、不定期の技術サポートおよびメンテナンスが必要となる可能性がある。技術サポートおよびメンテナンス活動には、エラー（障害コード）に関する情報収集、ファームウェアのアップグレーディング、装置の再起動、および装置の技術的な問題の修正等の課題が含まれる可能性がある。
【０００３】
従来、このような装置の故障の場合、顧客はカスタマー・サポート・センターに技術的な問題を報告したかもしれない。サポート・センターの一次レベルの技術サポート担当者は、顧客からできるだけ多くの情報を収集しようとするかもしれない。初期の情報が集まると、技術サポート担当者は、問題が電話を通して、顧客により修正できるかどうか、もしくはカスタマー・サービスの訪問が必要かどうか、判断するかもしれない。しかし、場合により顧客が印刷装置のメンテナンスに関して限られた技術的スキルしか持たないことが理由で、顧客から収集された初期情報は、不完全なもの、誤解を招く恐れのあるもの、もしくは不十分なものかもしれない。修理担当者による顧客訪問は、特に顧客からの初期情報が誤っている場合、費用がかかり、かつ効率が悪い可能性がある。例えば、修理担当者の検査により、さらなる問題が明らかになる、および／または、交換用部品が必要となると判断する可能性がある。よって、その後の修理訪問が必要となるかもしれない。
【０００４】
より効率的でタイムリーなサービスを提供するため、印刷装置販売業者およびサービススタッフは、インターネットを介した通信セッションをさらに行う可能性がある。しかし、現在のリモート通信方法では、このようなサービスを提供しているものの、ネットワーク・リソースの扱いが非効率かもしれない。このため、印刷装置に、インターネットを通じて、効率的でリモートのリアルタイム通信セッションを構築するシステムと方法が必要とされている。
【発明の概要】
【０００５】
第１の態様におけるシステムを説明する。システムは一次サーバ、二次サーバ、および制御部を備えるのが望ましい。一次サーバはユーザーインターフェースを提供するために構成されたアプリケーションを備える。二次サーバは、データ転送プロトコルに従って、一次サーバおよび複数のプリンタ装置と、インターネットを介して通信するように構成される。複数のプリンタ装置はファイアウォールの後方に位置している。制御部は、アプリケーションを介して、通信リクエストのための依頼を受信するように構成される。通信リクエストには、プリンタ装置識別子が含まれる。制御部はまた、プリンタ装置識別子に基づいて、複数のプリンタ装置から少なくとも１つの対象プリンタ装置を決定するように構成される。制御部は加えて、データ転送プロトコルに従って、一次サーバ、二次サーバ、および少なくとも１つの対象プリンタ装置の間で、通信セッションを構築するように構成される。制御部はさらに、通信セッションに基づいて、少なくとも１つの対象プリンタ装置を制御するように構成される。
【０００６】
第２の態様における方法を説明する。本方法では、アプリケーションのユーザーインターフェースを介して、一次サーバにて、通信リクエストを受信するのが望ましい。通信リクエストには、プリンタ装置識別子が含まれる。一次サーバは、データ転送プロトコルに従って、複数のプリンタ装置および二次サーバと、インターネットを介して通信するように構成される。複数のプリンタ装置は、ファイアウォール後方に位置している。本方法ではまた、プリンタ装置識別子に基づいて、複数のプリンタ装置から、少なくとも１つの対象プリンタ装置を決定する。本方法ではさらに、データ転送プロトコルに従って、一次サーバ、二次サーバ、および少なくとも１つの対象プリンタ装置の間で、通信セッションを構築する。本方法ではまたさらに、通信セッションに基づいて、少なくとも１つの対象プリンタ装置を制御する。
【０００７】
第３の態様における方法を説明する。本方法では、アプリケーションのユーザーインターフェースを介して、一次サーバにて、通信リクエストを受信するのが望ましい。通信リクエストはプリンタ装置識別子を備え、一次サーバはデータ転送プロトコルに従って、複数のプリンタ装置および二次サーバと、インターネットを介して通信するように構成される。本方法ではまた、通信リクエストの受信、つまり一次サーバに関連付けられているデータベースからのプリンタ装置識別子に関連する情報の検索に応答する。本方法ではまたさらに、検索された情報に基づいて、複数のプリンタ装置から少なくとも１つの対象プリンタ装置を決定する。本方法では加えて、データ転送プロトコルに従って、一次サーバ、二次サーバ、および少なくとも１つの対象プリンタ装置の間で、通信セッションを構築する。本方法ではさらに、一次サーバによる、通信セッションを介した対象プリンタ装置情報の受信、つまり通信セッションを介した、少なくとも１つの対象プリンタ装置への少なくとも１つのコマンドの提供に応答する。本方法は、通信セッションを閉じる。
【０００８】
他の態様、実施形態、および実装例は、添付図面を適宜参照しながら以下の詳細な説明を読むことにより当業者にとって明らかとなるであろう。
【図面の簡単な説明】
【０００９】
【図１】例示の実施形態に係るシステムをブロック図にて概略的に示す。
【００１０】
【図２】例示の実施形態に係るシステムをブロック図にて概略的に示す。
【００１１】
【図３Ａ】例示の実施形態に係る方法をフローチャートにて示す。
【００１２】
【図３Ｂ】例示の実施形態に係る方法をフローチャートにて示す。
【００１３】
【図４】例示の実施形態に係る方法をフローチャートにて示す。
【００１４】
【図５】例示の実施形態に係る数個のデータベース登録をブロック図にて概略的に示す。
【実施の形態】
【００１５】
以下に、説明を構成する一部となる添付図面を参照して、詳細な説明をする。図において、同じ符号は、一般的に、他に異なる記載がない限り同じ構成要素とする。詳細な説明に記載された例示の実施の形態、図面、及び請求項は限定することを意図するものではない。他の実施形態も利用可能であり、また開示された主題の範囲を逸脱することなく変更をすることは可能である。全般的に記載されまた図面に示されている本開示の諸態様は、広範囲にわたる様々な構成に再構成し、置換え、連結し、分割し、および設計することができ、そして、それらの全てが本記載の中で明らかに考慮されていることは容易に理解される。
［Ｉ．概要］
【００１６】
本開示は、ネットワークを通じたリアルタイム通信セッションを介して、印刷装置と遠隔的に通信する方法およびシステムに関するものである。具体的には、本発明では、インターネットのようなネットワークを通じて、セントラル・サーバと印刷装置のグループ間の通信プロトコルに従った、双方向の通信セッションを構築する方法およびシステムについて説明する。印刷装置は、ネットワーク・ファイアウォールにより保護されている、１つ以上のローカル・ネットワークと、通信可能に接続されていてもよい。セントラル・サーバは、広域ネットワーク、および／または、公衆インターネットに接続されていてもよい。通信セッションは、ＸＭＰＰのような通信プロトコルを使用して構築することができる。通信セッションは、所定時刻、またはリクエスト後ただちに、実施してもよい。通信セッションは、サービスリクエストに基づいて、および／または、カスタマー・サポート担当者により収集された顧客情報に基づいて、予定を決めてもよい。印刷装置は、通信セッションを介して送信されたコマンドに基づいて制御されてもよい。
【００１７】
ネットワークに接続された印刷装置は、多くの場合遠隔的に制御可能である。しかしながら、このような装置をインターネットに直接接続することは、ファイアウォール設定、および／または、ローカル・ネットワークのセキュリティーポリシーに基づいて、禁止、もしくは制限されているかもしれない。既存のアプローチは、印刷装置がＨＴＴＰを通じたウエブサービスを利用して、セントラル・サーバに接続される場合の方法に基づいているかもしれない。このようなアプローチにおいては、印刷装置は、装置が生成したデータを含むＨＴＴＰリクエストを定期的に送信するかもしれない。これに応じて、印刷装置は、サーバが生成したデータを含むＨＴＴＰレスポンスを検索するかもしれない。この種の接続は、印刷装置により開始される。
【００１８】
連続的なＨＴＴＰリクエストの時間間隔は非常に短い（毎秒、または数ミリ秒）、もしくはより長い（数時間，数日、数週間）可能性がある。この種の接続は、「プーリング」として知られている。プーリング通信は双方向のように思われるが、印刷装置がリクエストを介したＨＴＴＰ接続を起動させているだけで、双方向ではない。つまり、セントラル・サーバは、ネットワーク・ファイアウォールのため、ローカル・ネットワークの外部から、印刷装置とのＨＴＴＰ接続を初期化することはできない。この制限のため、リアルタイム通信では、ネットワーク・ファイアウォールの後方の印刷装置とのプーリング接続はできないかもしれない。
【００１９】
本来であれば、通信セッションは、双方向のリアルタイム通信を備えているかもしれない。つまり、通信セッションは、ネットワーク・ファイアウォールを適合させる一方、双方向のデータの送信、および検索を行う機能を提供する可能性がある。
【００２０】
本開示では、通信セッションを行うため、できる限り短いタイムフレームで、ネットワークを通じた安全な双方向ネットワーク接続を構築する方法およびシステムについて説明する。通信セッションは、情報の収集、ファームウェアのアップグレーディング、トラブルシューティング、報告、および／または、印刷装置のリモート・コントロールを備える可能性がある。
【００２１】
具体的には、印刷装置へのコマンドは、ファイアウォール適合通信プロトコルを使用して、インターネット等のネットワークを通じて、セントラル・サーバから送信することが可能である。例えば、ＸＭＰＰ通信プロトコルを、通信セッションの構築のために使用してもよい。ＸＭＰＰは、ネットワークの２つのエンドポイント（クライアント）間のＸＭＬ要素の交換操作が可能なデータ転送プロトコルである。さらに、ＢＯＳＨ拡張は、例えば、ネットワーク・ファイアウォールを適合させるため、および例えばソケット層の代わりに、ＨＴＴＰトランスポート層を使用するために、利用されるかもしれない。
【００２２】
実施形態によっては、ファイアウォール適合通信セッションは、例えば技術サポートが必要な場合や予定されたメンテナンスなど、所定の時間にのみ、構築する必要がある。例えば、ＸＭＰＰ接続は、一年間のコースを通じて、数分間続くだけかもしれない。このように、ＸＭＰＰ接続は、ネットワーク、サーバ、および印刷装置リソースを保護するため、限られた時間だけ構築する必要がある。
［ＩＩ．システムの例］
【００２３】
図１は、例示の実施形態に係るシステム１００をブロック図にて概略的に示す。システム１００は、一次サーバ１１０およびユーザーインターフェース１１２を備えてもよい。データベース１１４は、一次サーバ１１０と関連付けられてもよい。システム１００は、一次サーバ１１０およびネットワーク１３０を通信可能に接続する二次サーバ１２０を備えている。ネットワーク１３０は、インターネット（例えば、公衆インターネット）、イントラネット、エクストラネット、インターネットワーク、広域ネットワーク（ＷＡＮ）、もしくはローカルエリア・ネットワーク（ＬＡＮ）のような、コンピューター・ネットワークを備えてもよい。印刷装置１５０は、ファイアウォール１４０を通して、ネットワーク１３０に通信可能に接続されてもよい。その他の印刷装置（図示略）も、ファイアウォール１４０もしくは他のファイアウォールを通して、ネットワーク１３０に通信可能に接続されてもよい。
【００２４】
一次サーバ１１０は、ユーザーインターフェース１１２を提供するために構築されたアプリケーションを備えてもよい。二次サーバ１２０は、ネットワーク１３０を介して、一次サーバ１１０およびプリンタ装置１５０と通信を行うために、構築されてもよい。ファイアウォール１４０以外の１つ以上のファイアウォールが、システム１００に備えられてもよい。例えば、ファイアウォールは、一次サーバ１１０およびユーザーインターフェース１１２の間に備えられてもよい。その他のファイアウォールは、システム１００内の、別のネットワークの場所にあってもよい。
【００２５】
データベース１１４は、各プリンタ装置とプリンタ装置識別子間の関連リストを格納するように構築されてもよい。つまり、データベース１１４は、例えば、プリンタ装置とそれに対応するプリンタ装置識別子間の関連を含む参照テーブルを持つ複数のプリンタ装置から、特定の対象プリンタ装置を識別する手段を提供する可能性がある。
【００２６】
印刷装置１５０、二次サーバ１２０、および一次サーバ１１０は、無線、もしくは有線通信回線を介して、通信可能に接続されてもよい。通信回線は、ネットワーク・インターフェース・コントローラ（ＮＩＣ）、ハブ、スイッチ、ルータ、モデム、およびファイアウォールのような各種ネットワーク・ハードウェア装置により、可能になるかもしれない。印刷装置１５０、二次サーバ１２０、および一次サーバ１１０は、データ転送プロトコルを介して通信するように構成されてもよい。
【００２７】
例示の実施形態においては、データ転送プロトコルは、ＸＭＰＰ（ｅｘｔｅｎｓｉｂｌｅ  ｍｅｓｓａｇｉｎｇ  ａｎｄ  ｐｒｅｓｅｎｃｅ  ｐｒｏｔｏｃｏｌ）を備えてもよい。ＸＭＰＰは、クライアント間の準リアルタイム・メッセージングを促進する操作が可能な通信プロトコルである。ＸＭＰＰは、クライアント・サーバー・アーキテクチャを使用する。言い換えれば、ＸＭＰＰサーバは、ＸＭＰＰ通信セッションを使用して、クライアント間のデータ交換を促進する可能性がある。
【００２８】
データ転送プロトコルとして、ＸＭＰＰが使用された場合、一次サーバおよび印刷装置は、ＸＭＰＰクライアント・インスタンスを実行させていてもよい。二次サーバは、ＸＭＰＰサーバ・インスタンスを実行させていてもよい。
【００２９】
データ転送プロトコルは、さらに、ＢＯＳＨ（ｂｉｄｉｒｅｃｔｉｏｎａｌ  ｓｔｒｅａｍ  ｏｖｅｒ  ｓｙｎｃｈｒｏｎｏｕｓ  ＨＴＴＰ）トランスポート・プロトコルを備えてもよい。ＢＯＳＨは、ＸＭＰＰプロトコルを拡張したもので、トランスポート・プロトコルを「ファイアウォール・フレンドリー」にする、もしくはファイアウォールを通した双方向のデータ送信を可能にする。そのような状況では、対象プリンタ装置は、ＸＭＰＰ・ＢＯＳＨクライアント・インスタンスを実行させていてもよい。
【００３０】
その他のデータ転送プロトコルも可能で、本開示の範囲内で検討される。例えば、データ転送プロトコルは、他のファイアウォール適合プロトコルでもよい。このようなファイアウォール適合プロトコルは、ファイアウォール１４０のような、ファイアウォールを通した双方向データ転送を提供する操作が可能でもよい。
【００３１】
ファイアウォール１４０は、ネットワーク・アクセス、およびセキュリティーポリシーを制御する操作が可能なネットワーク装置を備えてもよい。例えば、ファイアウォール１４０は、ユーザ、および／または印刷装置１５０のローカル・ネットワークの外側のコンピューティング・ノードからの印刷装置１５０へのアクセスを規制する可能性がある。実施形態によっては、ファイアウォール１４０は、ネットワーク管理者により採用されたセキュリティーポリシーに従って、構成されてもよい。ファイアウォール１４０はさらに、印刷装置１５０のようなネットワーク・リソースへの不正アクセス、誤用、修正、もしくは攻撃を防止するように、構成されてもよい。
【００３２】
一次サーバ１１０、および／または、二次サーバ１２０は、制御部を備えてもよい。あるいは、制御部は、一次サーバ１１０および二次サーバ１２０からは離れても、少なくとも１つと通信可能に接続されている可能性がある。制御部は、アプリケーションを介して、通信リクエストを受信するように構成してもよい。通信リクエストは、プリンタ装置識別子を含む。制御部はまた、プリンタ装置識別子に基づいて、複数のプリンタ装置から少なくとも１つの対象プリンタ装置を決定するように構成されてもよい。制御部は、データ転送プロトコルに従って、一次サーバ、二次サーバ、および少なくとも１つの対象プリンタ装置の間で、通信セッションを構築するように構成される。制御部はまた、通信セッションに基づいて、少なくとも１つの対象プリンタ装置を制御するように構成されてもよい。
【００３３】
実施形態によっては、制御部は、通信セッション開始時刻を受信するように構成されてもよい。制御部はまた、通信セッションの構成に関する設定情報を受信するように構成されてもよい。設定情報は、アクセス証明書と同様に、一次サーバ、および／または、二次サーバのＵＲＬ（ｕｎｉｆｏｒｍ  ｒｅｓｏｕｒｃｅ  ｌｏｃａｔｏｒ）を含んでもよい。アクセス証明書は、例えば、既知の／信頼できる第三者との間に安全な回線を構築するために、承認、および／または、認証を許可してもよい。制御部は、システム時刻が通信セッション開始時刻の場合、通信セッションを構築してもよい。その上、通信セッションは、設定情報にしたがって構成される。
【００３４】
図２は、例示の実施形態に係るシステム２００をブロック図にて概略的に示す。
システム２００は、一次サーバ２１０、二次サーバ２２０、および印刷装置２３０を備える。一次サーバ２１０は、ウエブ・アプリケーション２１２、データベース２１４、およびＸＭＰＰクライアント・インスタンス２１６を備えてもよい。ウエブ・アプリケーション２１２は、ユーザーインターフェースを提供してもよい。
【００３５】
二次サーバ２２０は、ＸＭＰＰサーバ・インスタンス２２２を備えてもよい。印刷装置２３０は、ファームウェア２３２、およびＸＭＰＰクライアント・インスタンス２３４を備える。一次サーバ２１０は、二次サーバ２２０と通信可能に接続されてもよい。二次サーバ２２０は、公衆インターネットのようなネットワーク２４０と通信可能に接続されてもよい。ネットワーク２４０は、追加で、もしくは代わりに、広域ネットワーク、もしくはローカルエリア・ネットワークのような、異なるタイプのネットワークを備えてもよい。他のタイプのネットワークも可能である。二次サーバ２２０は、データ転送プロトコルに従って、一次サーバ２１０、および印刷装置２３０と通信するように構成されてもよい。印刷装置２３０は、図１に関連して説明および記述されているように、ファイアウォール１４０のようなネットワーク・ファイアウォールの後方に、位置してもよい。
［ＩＩＩ．方法の例］
【００３６】
図３Ａは、例示の実施形態に係る方法３００をフローチャートにて示す。図３Ａは、方法３００を特定の順序のいくつかのブロックを備えているとして示しているが、ブロックは、追加され、取り去られ、および／または、異なる順序で実行される可能性があると理解すべきである。さらに、方法３００のブロックのいくつか、もしくはすべては、図１および図２に関連して記述および説明されているように、システム１００またはシステム２００により、実行されてもよい。
【００３７】
ブロック３０２では、アプリケーションのユーザーインターフェースを介して、通信リクエストを受信する一次サーバを備える。通信リクエストは、プリンタ装置識別子を含む。一次サーバは、データ転送プロトコルに従って、インターネットを介して通信するように構成されている。具体的には、一次サーバは、データ転送プロトコルに従って、インターネットを介して、複数のプリンタ装置、および二次サーバと、通信する可能性がある。複数のプリンタ装置は、１つ以上のファイアウォールの後方に位置している。
【００３８】
データ転送プロトコルは、本記載中、別の場所に説明されているようなＸＭＰＰプロトコルのＢＯＳＨ拡張など、ファイアウォール適合通信プロトコルを備えてもよい。このような状況では、一次サーバ、および複数の印刷装置は、ＸＭＰＰのクライアント・インスタンスを実行するように構成してもよい。二次サーバは、ＸＭＰＰのサーバ・インスタンスを実行するように構成してもよい。その他のファイアウォール適合通信プロトコルも可能である。
【００３９】
ブロック３０４では、プリンタ装置識別子に基づいて、複数のプリンタ装置から少なくとも１つの対象プリンタ装置を決定する。例として、一次サーバ、および／または二次サーバに関連付けられている制御部は、通信リクエストのプリンタ装置識別子は、複数のプリンタ装置のうち、特定のプリンタ装置と対応していると、判断してもよい。制御部は、特定のプリンタ装置を、対象プリンタ装置とみなす可能性がある。
【００４０】
ブロック３０６では、データ転送プロトコルに従って、一次サーバ、二次サーバ、および少なくとも１つの対象プリンタ装置間の通信セッションを構築する。例えば、制御部は、二次サーバを介して、一次サーバと対象プリンタ装置間の通信セッションを構築してもよく、これらすべてが、ＸＭＰＰのようなファイアウォール適合通信プロトコルのインスタンスを、実行していてもよい。
【００４１】
ブロック３０８では、通信セッションに基づいて、少なくとも１つの対象プリンタ装置を制御する。対象プリンタ装置の制御には、対象プリンタ装置からの情報取得、対象プリンタへの少なくとも１つのコマンドの送信、および、対象プリンタによる少なくとも１つのコマンドの実行が含まれてもよい。言い換えると、対象プリンタ装置は、通信セッションを介して、遠隔的に制御されてもよい。
【００４２】
図３Ｂは、例示の実施形態に係る方法３１０を、フローチャートにて示す。図３Ｂは、方法３１０を特定の順序のいくつかのブロックを備えているとして示しているが、ブロックは、追加され、取り去られ、および／または、異なる順序で実行される可能性があると理解すべきである。さらに、方法３１０のブロックのいくつか、もしくはすべては、図１および図２に関連して記述および説明されているように、システム１００またはシステム２００により、実行されてもよい。
【００４３】
方法３１０は、ブロック３０２、３０４、３０６、および３０８のような、方法３００に関連して説明されたブロックを備えてもよい。ブロック３１２はさらに、通信セッションの構築、つまり少なくとも１つの対象プリンタ装置に関連するステータスのオンライン・ステータスへの調整に応答してもよい。本記載中に説明されているように、少なくとも１つの対象プリンタ装置に関連するステータスの調整には、データベースにおける、ステータス情報もしくはネットワークの可用性ステータスの修正、もしくは保存を含む可能性がある。ステータス情報、もしくはネットワークの可用性ステータスは、少なくとも１つの対象プリンタ装置の実際のステータスを反映してもよい。言い換えると、一度、ファイアウォール適合プロトコルを通じて、対象プリンタ装置と通信セッションが確立されると、制御部は、対象プリンタ装置の実際の「オンライン」ステータスを反映するために、データベース内のオンライン／オフライン・ステータス情報を調整する可能性がある。
【００４４】
ブロック３１４では、通信セッションを閉じてもよい。通信セッションは、制御部、もしくはプリンタ装置により、閉じられてもよい。通信セッションはまた、例えば、所定の閾時間を超えた通信セッションに、一人以上の関係者により使用されない場合、タイムアウトにより閉じられる可能性がある。
【００４５】
ブロック３１６では、通信セッションのクロージング、つまり少なくとも１つの対象プリンタ装置に関連するステータスのオフライン・ステータスへの調整に応答する。
【００４６】
図４は、例示の実施形態に係る方法４００を、フローチャートにて示す。図４は、方法４００を特定の順序のいくつかのブロックを備えているとして示しているが、ブロックは、追加され、取り去られ、および／または、異なる順序で実行される可能性があると理解すべきである。さらに、方法４００のブロックのいくつか、もしくはすべては、図１および図２に関連して記述および説明されているように、システム１００またはシステム２００により、実行されてもよい。
【００４７】
ブロック４０２では、一次サーバにて、アプリケーションのユーザーインターフェースを介して、通信リクエストを受信してもよい。通信リクエストはプリンタ装置識別子を含む。一次サーバは、データ転送プロトコルに従って、複数のプリンタ装置および二次サーバと、インターネットを介して通信するように構成される。複数のプリンタ装置は、ファイアウォールの後方に位置している。ブロック４０２は、ブロック３０２と同様、もしくは同一でもよい。
【００４８】
ブロック４０４では、通信リクエストの受信、つまり一次サーバに関連付けられたデータベースからのプリンタ装置識別子に関連する情報の検索に応答する。データベースは、図１に関連して説明されているように、データベース１１４と同様、もしくは同一でもよい。このように、データベースは、各プリンタ装置、およびプリンタ装置識別子間の関連リストを格納するように構成されてもよい。そのような状況では、一次サーバ、および／または二次サーバに関連付けられている制御部は、プリンタ装置識別子に基づいて、データベースに問い合わせをする可能性がある。データベースは、１つ以上のプリンタ装置に対応する、検索された情報を返してもよい。検索された情報は、一次サーバ、二次サーバ、および特定のプリンタ装置間の通信セッションを可能にするため、プリンタ装置のネットワーク・アドレス、および／または、その他の識別情報を含んでもよい。
【００４９】
ブロック４０６では、検索された情報に基づいて、複数のプリンタ装置から、少なくとも１つの対象プリンタ装置を決定する。場合によっては、少なくとも１つの対象プリンタは、プリンタ装置識別子と検索された情報間の対応に基づいて、決定される可能性がある。加えて、もしくは代わりに、少なくとも１つの対象プリンタは、特定のモデルのプリンタ装置、および特定のファイアウォールの後方のプリンタ装置のような、一連のプリンタ装置に対応する、検索された情報に基づいて、決定されてもよい。
【００５０】
ブロック４０８では、データ転送プロトコルに従って、一次サーバ、二次サーバ、および少なくとも１つの対象プリンタ装置間の通信セッションを構築する。例示の実施形態においては、制御部は、例えば、一次サーバと少なくとも１つの対象プリンタ装置間の通信回線を開くことにより、通信セッションを起動する可能性がある。通信回線は、ファイアウォール適合通信プロトコルを使用して、実行してもよい。例示の実施形態においては、ファイアウォール適合通信プロトコルは、ＸＭＰＰ通信プロトコルのＢＯＳＨ拡張を備えてもよい。その他の通信プロトコルでも、ファイアウォールを通して、双方向のデータ転送を提供することが可能である。
【００５１】
ブロック４１０では、一次サーバによる、通信セッションを介した対象プリンタ装置情報の受信、つまり通信セッションを介した少なくとも１つの対象プリンタ装置への少なくとも１つのコマンドの提供に応答する。言い換えると、一次サーバは、当該対象プリンタに関して一次サーバが受信した情報に基づいて、対象プリンタへのコマンドを提供する可能性がある。コマンドは、ファイアウォール適合通信セッションを介して提供される。
【００５２】
例えば、一次サーバは、対象プリンタ装置における、紙詰まりに関する情報を受信してもよい。これに応じて、一次サーバは、問題の解決のために、対象プリンタ装置にコマンドを提供してもよい。そのような状況では、コマンドは、例えば、紙を取り除くために送り機構を反転させる、および／または、対象プリンタ装置と物理的に接触できるスタッフにメッセージを提供するために、提供される可能性がある。
【００５３】
別の例示の実施形態においては、一次サーバは、対象プリンタ装置でファームウェア・アップグレードが必要であると判断する可能性がある。従って、一次サーバは、対象プリンタ装置に新しいファームウェア・バージョンをインストールするコマンドを提供してもよい。
【００５４】
ブロック４１２では、通信セッションを閉じる。例示の実施形態においては、制御部は、一次サーバ、および／または対象プリンタ装置による、通信セッションを終了させる選択に従って、通信セッションを閉じる可能性がある。別の実施形態においては、制御部は、所定の時間（例えば、タイムアウト）、一次サーバと対象プリンタ装置のうち、１つもしくは双方から通信がなければ、通信セッションを閉じる可能性がある。その他のイベントが、通信セッションを閉じるトリガとなってもよい。
【００５５】
方法４００は、その他のブロックを任意に含んでもよい。例えば、方法４００は、通信セッションの構築、つまり少なくとも１つの対象プリンタ装置に関連するステータスの、オンライン・ステータスへの調整に応答してもよい。つまり、通信セッションの起動後、制御部は、対象プリンタ装置に関連するデータベース登録を調整する可能性がある。調整は、データベース内での、対象プリンタ装置のステータスの「オンライン」への変更を含んでもよい。
【００５６】
方法４００は、通信セッションのクロージング、つまり少なくとも１つの対象プリンタ装置に関連するステータスのオフライン・ステータスへの調整に、任意に応答してもよい。前段落と同様に、制御部は、対象プリンタ装置に関連するデータベース登録を調整してもよい。具体的には、対象プリンタのステータスは、データベース内で、「オフライン」に設定されてもよい。
【００５７】
方法４００はまた、検索された情報に基づいて、通信セッション開始時刻を、任意に決定してもよい。実施形態によっては、検索された情報には、明確な通信セッション開始時刻が含まれていてもよい。その他の例示の実施形態においては、通信セッション開始時刻は、検索された情報と同様に、所定のスケジュールから、決定されてもよい。例えば、検索された情報には、プリンタ装置のモデルが含まれている可能性がある。所定のスケジュールには、検索された情報のプリンタ装置の特定のモデルは、所定の日付に、年次のメンテナンスを受けるべきであると示している可能性がある。このような方法で、通信セッション開始時刻は決定されてもよい。
【００５８】
方法４００はまた、通信セッション開始時刻である、システム時刻（例えば、システム・クロック、グローバル・クロック、もしくはその他の計時手段）に従って、通信セッションを構築してもよい。
【００５９】
方法４００は、設定情報を任意に受信してもよい。上述したように、設定情報には、一次サーバ、および／または二次サーバに対し、ＵＲＬと同様、安全な通信セッションを構築するための証明書が含まれてもよい。通信セッションは、設定情報に従って、構成される。
【００６０】
方法４００は、一次サーバによる、少なくとも１つの対象プリンタ装置に関する情報の受信、および、アプリケーションのユーザーインターフェースを介した情報の表示を、任意に備えてもよい。これにより、ユーザーインターフェースのユーザ（例えば、技術サポート担当者）は、対象プリンタ装置に関する情報を受信し、および／または、通信セッションの間、対象プリンタ装置に、コマンド、もしくはその他の情報を提供することができる可能性がある。
【００６１】
方法４００はさらに、複数のプリンタ装置とプリンタ装置識別子間の関連リストを格納するように構築された一次サーバと関連付けられているデータベースを備えてもよい。つまり、データベースは、複数のプリンタ装置に関連する、複数の登録を含んでいる可能性がある。複数の登録は、複数のプリンタ装置とプリンタ装置識別子の間の関連を含んでいる可能性がある。実施形態によっては、複数のプリンタ装置からの少なくとも１つの対象プリンタ装置の決定には、一次サーバによる、データベースからの関連リストの検索が含まれる。
【００６２】
図５は、例示の実施形態に係る数個のデータベース登録をブロック図５００にて概略的に示す。データベース登録には、数個のデータ欄５１０が含まれる可能性がある。例えば、データ欄５１０には、装置ＩＤ、顧客名、装置情報、説明、通信セッション時刻、およびステータスが含まれる可能性がある。その他のデータ欄５１０は、本記載の中で考慮されており、リモート通信、メンテナンス、問題解決、および／またはトラブルシューティングが実施される、何らかの事柄に関係する可能性がある。
【００６３】
エントリ５１２は、装置ＩＤ「ＡＢＣ１２３」に関連してもよい。エントリ５１２のプリンタ装置は、「Ｊｏｈｎ  Ｓｍｉｔｈ」に所有されている、もしそうでない場合は、関連付けられているとしてよい。エントリ５１２には、モデル名、シリアル番号など、さまざまな装置情報が含まれる可能性がある。エントリ５１２には、紙詰まりのようなプリンタ装置の特定の状況についての説明が含まれてもよい。エントリ５１２には、問題もしくは状況が過去に生じたことを示す、過去の日付、および／または時刻が含まれてもよい。エントリ５１２には、「オフライン、完了」のような、現在のステータスが含まれてもよい。つまり、装置ＩＤ「ＡＢＣ１２３」は、オフライン（例えば、通信セッションを介して、一次サーバ、もしくは二次サーバに、現在接続されていない）でもよく、問題は、解決されていてもよい。
【００６４】
エントリ５１４には、「Ｊａｎｅ  Ｄｏｅ」に関連付けられている、プリンタ装置ＩＤ「ＤＥＦ４５６」が含まれる可能性がある。エントリ５１４には、モデル名、シリアル番号など、特定のプリンタ装置に関する情報が含まれてもよい。エントリ５１４には、「トナー・カートリッジが正しく整列されていません」という説明が示されてもよい。さらに、エントリ５１４には、現在の日付／時刻、および「オンライン」ステータスが含まれてもよい。このように、エントリ５１４には、装置ＤＥＦ４５６は、現在、通信セッションを介して、一次サーバ、および二次サーバと接続されていることが示される可能性がある。通信セッションは、正しく整列されていないトナー・カートリッジの問題の解決に関連する可能性がある。従って、例として、トナー・カートリッジの再調整やテスト・ページの印刷のためのコマンドなど、さまざまなコマンドが、プリンタ装置に提供されてもよい。
【００６５】
エントリ５１６には、「ＭｅｔａＣｏｒｐ」に関連付けられている、プリンタ装置ＩＤ「ＧＨＩ７８９」が含まれる可能性がある。エントリ５１６には、エントリ５１２、および５１４と同様に、モデル名、シリアル名などを含む、特定のプリンタ装置に関する情報が含まれてもよい。エントリ５１６には、未来の日付／時刻である、指示された通信セッション時刻における「年次メンテナンス」の説明が示されてもよい。さらに、エントリ５１６には、年次メンテナンスの通信セッションが、未来の日付／時刻に予定されていることを示す、「オフライン、ペンディング」が含まれてもよい。
【００６６】
各データベース登録は、例えば、顧客からのリクエスト、プリンタ装置からのリクエストに従って、もしくは技術サポートスタッフにより、追加されてもよい。各データベース登録は、さまざまなプリンタ装置との通信セッションが構築される、および閉じられるのに伴い、更新されてもよい。さらに、データベース登録によっては、その他の理由で修正される、もしくは除かれても構わない。例えば、技術的な問題によっては、通信セッションなしに取り組まれてもよい。この場合、各登録はデータベースから除かれてもよい、および／または、完了もしくは解決のステータスが備えられてもよい。
【００６７】
様々な例および実施形態が開示されたが、他の例および実施形態も当業者には明白である。開示された様々な例および実施形態は、例示するためであり限定することを意図されてはいない、そして真の範囲と趣旨は以下の請求項により示されている。
【符号の説明】
【００６８】
１００，２００  システム
１１０  一次サーバ
１１２  ユーザーインターフェース
１１４，２１４  データベース
１２０  二次サーバ
１３０，２４０  ネットワーク
１４０  ファイアウォール
１５０  プリンタ装置
２１０  一次サーバ
２１２  ウエブ・アプリケーション
２１６  ＸＭＰＰクライアント・インスタンス
２２０  二次サーバ
２２２  ＸＭＰＰサーバ・インスタンス
２３０  印刷装置
２３２  ファームウェア
２３４  ＸＭＰＰクライアント・インスタンス
【図１】
2016128251.tif 000003
【図２】
2016128251.tif 000004
【図３Ａ】
2016128251.tif 000005
【図３Ｂ】
2016128251.tif 000006
【図４】
2016128251.tif 000007
【図５】
2016128251.tif 000008
【外国語明細書】
TITLE
Collaborative Remote Maintenance of Printing Devices
FIELD
[0001]       The present invention relates to a printing device.
BACKGROUND
[0002]       Printers, copiers, scanners, and multi-function devices (MFDs) may require occasional technical support and maintenance.  Technical support and maintenance activities may include tasks such as collecting information about errors (fault codes), upgrading firmware, restarting devices, and fixing technical problems with the devices.
[0003]       Traditionally, when such devices malfunction, a customer may report a technical issue to a customer support center.  A first-level technical support individual at a support center may try to gather as much information as possible from the customer.  After the initial information is gathered, the technical support person may determine whether the problem may be fixed by the customer over the phone or whether a customer service visit may be necessary.  However, the initial information gathered from the customer may be incomplete, misleading, or insufficient, possibly because the customer may have limited technical skills regarding the maintenance of printing devices.  Customer visits by a repair person may be costly and inefficient, particularly when the initial information from the customer is incorrect.  For example, a repair person’s inspection may uncover further problems and/or determine that replacement parts are needed.  Thus, a subsequent repair visit may be necessary.
[0004]       To provide more efficient and timely service, printing device vendors and service personnel may increasingly conduct communication sessions via the internet.  However, the current remote communication methods may handle network resources inefficiently while providing such services.  Thus, a need exists for a system and a method to establish efficient, remote, real-time communication sessions with printing devices over the internet.
SUMMARY
[0005]       In a first aspect, a system is provided.  The system preferably includes a first server, a second server, and a controller.  The first server includes an application configured to provide a user interface.  The second server is configured to communicate via an internet, according to a data transport protocol, with the first server and a plurality of printer devices.  The plurality of printer devices is located behind a firewall.  The controller is configured to receive, via the application, a request for a communication request.  The communication request includes a printer device identifier.  The controller is also configured to determine at least one target printer device from the plurality of printer devices based on the printer device identifier.  The controller is additionally configured to establish a communication session between the first server, the second server, and the at least one target printer device according to the data transport protocol.  The controller is further configured to control the at least one target printer device based on the communication session.
[0006]       In a second aspect, a method is provided.  The method preferably includes receiving, at a first server, a communication request via a user interface of an application.  The communication request includes a printer device identifier.  The first server is configured to communicate via an internet, according to a data transport protocol, with a plurality of printer devices and a second server.  The plurality of printer devices is located behind a firewall.  The method also includes determining at least one target printer device from the plurality of printer devices based on the printer device identifier.  The method further includes establishing a communication session between the first server, the second server, and the at least one target printer device according to the data transport protocol.  The method yet further includes controlling the at least one target printer device based on the communication session.
[0007]       In a third aspect, a method is provided.  The method preferably includes receiving, at a first server, a communication request via a user interface of an application.  The communication request includes a printer device identifier and the first server is configured to communicate via an internet, according to a data transport protocol, with a plurality of printer devices and a second server.  The method also includes responsive to receiving the communication request, retrieving information related to the printer device identifier from a database associated with the first server.  The method yet further includes determining at least one target printer device from the plurality of printer devices based on the retrieved information.  The method additionally includes establishing a communication session between the first server, the second server, and the at least one target printer device according to the data transport protocol.  The method further includes responsive to the first server receiving target printer device information via the communication session, providing at least one command to the at least one target printer device via the communication session.  The method includes closing the communication session.
[0008]       Other aspects, embodiments, and implementations will become apparent to those of ordinary skill in the art by reading the following detailed description, with reference where appropriate to the accompanying drawings.
BRIEF DESCRIPTION OF THE
FIGURES
[0009]       Figure 1 is a schematic block diagram illustrating a system, according to an example embodiment.
[0010]       Figure 2 is a schematic block diagram illustrating a system, according to an example embodiment.
[0011]       Figure 3A is a flow diagram illustrating a method, according to an example embodiment.
[0012]       Figure 3B is a flow diagram illustrating a method, according to an example embodiment.
[0013]       Figure 4 is a flow diagram illustrating a method, according to an example embodiment.
[0014]       Figure 5 is a schematic block diagram illustrating several database entries, according to an example embodiment.
DETAILED DESCRIPTION
[0015]       In the following detailed description, reference is made to the accompanying figures, which form a part hereof.  In the figures, similar symbols typically identify similar components, unless context dictates otherwise.  The illustrative embodiments described in the detailed description, figures, and claims are not meant to be limiting.  Other embodiments may be utilized, and other changes may be made, without departing from the scope of the subject matter presented herein.  It will be readily understood that the aspects of the present disclosure, as generally described herein, and illustrated in the figures, can be arranged, substituted, combined, separated, and designed in a wide variety of different configurations, all of which are explicitly contemplated herein.
I.     Overview
[0016]       The present disclosure may relate to a method and system of communicating with a printing device remotely via a real time communication session over a network.  Specifically, the present invention describes the method and the system that include establishing a bidirectional communication session according to a communication protocol between a central server and group of printing devices over a network, such as the Internet.  The printing devices may be communicatively coupled to one or more local networks that are protected by a network firewall.  The central server may be connected to a wide-area network and/or the public internet.  A communication session could be established by using a communication protocol such as XMPP.  The communication session may be conducted at a predetermined time or immediately upon request.  The communication session may be scheduled based on a service request and/or based on customer information collected by a customer support person.  The printing devices may be controlled based on commands sent via the communication session.
[0017]       Network-connected printing devices are in many cases remotely-controllable.  However, connecting such devices directly to the Internet may be prohibited or limited based on firewall settings and/or local network security policies.  Existing approaches may be based on methods when printing devices are connected to a central server by utilizing Web Services over HTTP.  In such approaches the printing device may periodically send an HTTP request that contains device-generated data.  In response, the printing device may retrieve HTTP responses that contain server-generated data.  This kind of connection is initiated by the printing device.
[0018]       The time interval between sequential HTTP requests could be very short (every second or number of milliseconds) or much longer (hours, days, weeks).  This type of connection is known as ‘pooling’.  While pooling communications appear to be bi-directional, they are not, because only the printing device may initiate an HTTP connection via a request.  That is, the central server cannot initialize an HTTP connection with a printing device from outside a local network, due to the network firewall.  Due to this limitation, real-time communication may be impossible using pooling connections with a printing device behind a network firewall.
[0019]       Ideally, communication sessions may include bi-directional real time communications.  That is, the communication session may offer the capability to send and retrieve data in both directions while accommodating a network firewall.
[0020]       The present disclosure describes a method and system to establish a secure bidirectional network connection over a network for a possibly short timeframe to conduct a communication session.  The communication session may include gathering information, upgrading firmware, troubleshooting, reporting, and/or remote control of the printing device.
[0021]       Specifically, a command to a printing device could be sent from a central server over a network such as the Internet using a firewall-accommodating communication protocol.  For example, an XMPP communication protocol may be used to establish a communication session.  XMPP is a data transport protocol that may be operable to exchange XML elements between two endpoints (clients) on the network.  Furthermore, a BOSH extension may be used to accommodate a network firewall and in order to utilize the HTTP transport layer instead of a socket layer, for example.
[0022]       In some embodiments, the firewall-accommodating communication session need only be established at predetermined times, e.g. when needed for technical support or scheduled maintenance.  For example, the XMPP connection may only last for several minutes over the course of a year.  Thus, the XMPP connection need only be established a limited time so as to conserve network, server, and printing device resources. 
II.     System
Examples
[0023]       Figure 1 is a schematic block diagram illustrating a system 100, according to an example embodiment.  The system 100 may include a first server 110 and a user interface 112.  Database 114 may be associated with the first server 110.  The system 100 includes a second server 120 communicatively coupled to the first server 110 and a network 130.  The network 130 may include a computer network such as an internet (e.g. the public Internet), an intranet, an extranet, an internetwork, a wide-area network (WAN), or a local area network (LAN).  A printing device 150 may be communicatively coupled to the network 130 through a firewall 140.  Other printing devices (not shown) may also be communicatively coupled to the network 130 through firewall 140 or another firewall.
[0024]       The first server 110 may include an application configured to provide the user interface 112.  The second server 120 may be configured to communicate with the first server 110 and the printing device 150 via the network 130.  One or more firewalls other than firewall 140 may be included in system 100.  For example, a firewall may be included between the first server 110 and the user interface 112.  Other firewalls may be present at other network locations in system 100.
[0025]       The database 114 may be configured to store a list of associations between the respective printer devices and printer device identifiers.  That is, database 114 may provide a means to identify a particular target printer device from a plurality of printer devices with, for example, a look-up table that includes an association between a printer device and its corresponding printer device identifier.
[0026]       The printing device 150, the second server 120, and the first server 110 may be communicatively coupled via wireless or wired communication links.  The communication links may be enabled by various network hardware devices such as network interface controllers (NICs), hubs, switches, routers, modems, and firewalls.  The printing device 150, the second server 120, and the first server 110 may be configured to communicate via a data transport protocol.
[0027]       In an example embodiment, the data transport protocol may include extensible messaging and presence protocol (XMPP).  XMPP is a communication protocol that may be operable to facilitate near real time messaging between clients.  XMPP uses a client-server architecture; in other words, an XMPP server may facilitate data exchange between clients using XMPP communication sessions.
[0028]       In the case where XMPP is used as the data transport protocol, the first server and the printing device may be running XMPP client instances.  The second server may be running an XMPP server instance.
[0029]       The data transport protocol may further include a bidirectional stream over synchronous HTTP (BOSH) transport protocol.  BOSH is an extension to the XMPP protocol, which makes the transport protocol “firewall-friendly”, or permits bi-directional data transmissions through firewalls.  In such a scenario, the target printer device may be running an XMPP BOSH client instance.
[0030]       Other data transport protocols are possible and contemplated within the scope of this disclosure.  For example, the data transport protocol may be another firewall-accommodating protocol.  Such a firewall-accommodating protocol may be operable to provide bidirectional data transport through a firewall, such as firewall 140.
[0031]       The firewall 140 may include a network device operable to control network access and security policies.  For example, the firewall 140 may restrict access to the printing device 150 from users and/or computing nodes outside the local network of the printing device 150.  In some embodiments, firewall 140 may be configured according to security policies adopted by network administrators.  The firewall 140 may further be configured to prevent unauthorized access, misuse, modification, or attacks on network resources, such as the printing device 150.
[0032]       The first server 110 and/or the second server 120 may include a controller.  Alternatively, the controller may be separate from, but still communicatively coupled to at least one of, the first server 110 and the second server 120.  The controller may be configured to receive, via the application, a communication request.  The communication request includes a printer device identifier.  The controller may also be configured to determine at least one target printer device from a plurality of printer devices based on the printer device identifier.  The controller is configured to establish a communication session between the first server, the second server, and the at least one target printer device according to the data transport protocol.  The controller may also be configured to control the at least one target printer device based on the communication session.
[0033]       In some embodiments, the controller may be configured to receive a communication session start time.  The controller may also be configured to receive configuration information regarding the configuration of the communication session.  The configuration information may include a uniform resource locator (URL) of the first server and/or the second server as well as access credentials.  The access credentials may allow authorization and/or authentication in order to establish a secure link with a known/trusted third party, for example.  The controller may establish the communication session when a system time is the communication session start time.  Further, the communication session is configured according to the configuration information.
[0034]       Figure 2 is a schematic block diagram illustrating a system 200, according to an example embodiment.  System 200 includes a first server 210, a second server 220, and a printing device 230.  The first server 210 may include a web application 212, a database 214, and an XMPP client instance 216.  The web application 212 may provide a user interface.
[0035]       The second server 220 may include an XMPP server instance 222.  The printing device 230 includes firmware 232 and an XMPP client instance 234.  The first server 210 may be communicatively coupled to the second server 220.  The second server 220 may be communicatively coupled to a network 240, such as the public Internet.  Network 240 may additionally or alternatively include a different type of network, such as a wide-area network or a local area network.  Other types of networks are possible.  The second server 220 may be configured to communicate with the first server 210 and the printing device 230 according to a data transport protocol.  The printing device 230 may be located behind a network firewall, such as firewall 140 described and illustrated in reference to Figure 1.
III.     Method
Examples
[0036]       Figure 3A is a flow diagram illustrating a method 300, according to an example embodiment.  Although Figure 3A illustrates method 300 as including certain blocks in a particular order, it should be understood that blocks may be added, subtracted, and/or carried out in a different order.  Furthermore some or all of the blocks of method 300 may be carried out by system 100 or system 200 as illustrated and described in reference to Figure 1 and Figure 2.
[0037]       Block 302 includes a first server receiving a communication request via a user interface of an application.  The communication request includes a printer device identifier.  The first server is configured to communicate via an internet, according to a data transport protocol.  Specifically, the first server may communicate with a plurality of printer devices and a second server via the internet, according to the data transport protocol.  The plurality of printer devices is located behind one or more firewalls.
[0038]       The data transport protocol may include a firewall-accommodating communication protocol such as the BOSH extension of the XMPP protocol as described elsewhere herein.  In such a scenario, the first server and a plurality of printing devices may be configured to run a client instance of XMPP.  The second server may be configured to run a server instance of XMPP.  Other firewall-accommodating communication protocols are possible.
[0039]       Block 304 includes determining at least one target printer device from the plurality of printer devices based on the printer device identifier.  As an example, a controller associated with the first server and/or the second server may determine that the printer device identifier from the communication request corresponds to a particular printer device from the plurality of printer devices.  The controller may call the particular printer device a target printer device.
[0040]       Block 306 includes establishing a communication session between the first server, the second server, and the at least one target printer device according to the data transport protocol.  For example, the controller may establish a communication session between the first server and the target printer device via the second server, all of which may be running an instance of a firewall-accommodating communication protocol, such as XMPP.
[0041]       Block 308 includes controlling the at least one target printer device based on the communication session.  Controlling the target printer device may include obtaining information from the target printer device, sending at least one command to the target printer, and the target printer executing the at least one command.  In other words, the target printer device may be controlled remotely via the communication session.
[0042]       Figure 3B is a flow diagram illustrating a method 310, according to an example embodiment.  Although Figure 3B illustrates method 310 as including certain blocks in a particular order, it should be understood that blocks may be added, subtracted, and/or carried out in a different order.  Furthermore some or all of the blocks of method 310 may be carried out by system 100 or system 200 as illustrated and described in reference to Figure 1 and Figure 2.
[0043]       Method 310 may include blocks described in reference to method 300, such as block 302, 304, 306, and 308.  Block 312 may further include responsive to establishing the communication session, adjusting a status related to the at least one target printer device to an online status.  As described herein, adjusting the status related to the at least one target printer device may include modifying or storing, at a database, status information or a network availability status.  The status information or network availability status may reflect an actual status of the at least one target printer device.  In other words, once the communication session is established with the target printer device over a firewall-accommodating protocol, the controller may adjust online/offline status information within a database to reflect the actual “online” status of the target printer device.
[0044]       Block 314 may include closing the communication session.  The communication session may be closed by the controller or the printer device.  The communication session may also be closed by timing out, for instance, if the communication session is unused by one or more parties to the communication session for more than a predetermined threshold time.
[0045]       Block 316 includes responsive to closing the communication session, adjusting a status related to the at least one target printer device to an offline status.
[0046]       Figure 4 is a flow diagram illustrating a method 400, according to an example embodiment.  Although Figure 4 illustrates method 400 as including certain blocks in a particular order, it should be understood that blocks may be added, subtracted, and/or carried out in a different order.  Furthermore, some or all of the blocks of method 400 may be carried out by system 100 or system 200 as illustrated and described in reference to Figure 1 and Figure 2.
[0047]       Block 402 may include receiving, at a first server, a communication request via a user interface of an application.  The communication request includes a printer device identifier.  The first server is configured to communicate via an internet, according to a data transport protocol, with a plurality of printer devices and a second server.  The plurality of printer devices is located behind a firewall.  Block 402 may be similar or identical to block 302.
[0048]       Block 404 includes, responsive to receiving the communication request, retrieving information related to the printer device identifier from a database associated with the first server.  The database may be similar or identical to database 114 as described in reference to Figure 1.  As such, the database may be configured to store a list of associations between the respective printer devices and printer device identifiers.  In such a scenario, a controller associated with the first server and/or the second server may query the database based on the printer device identifier.  The database may return retrieved information corresponding to one or more printer devices.  The retrieved information may include a network address of the printer device and/or other identifying information to enable a communication session between the first server, the second server, and a particular printer device.
[0049]       Block 406 includes determining at least one target printer device from the plurality of printer devices based on the retrieved information.  In some cases, the at least one target printer may be determined based on a correspondence between the printer device identifier and the retrieved information.  Additionally or alternatively, the at least one target printer may be determined based on the retrieved information corresponding to a set of printer devices, such as a particular model of printer device and printer devices behind a particular firewall.
[0050]       Block 408 includes establishing a communication session between the first server, the second server, and the at least one target printer device according to the data transport protocol.  In an example embodiment, the controller may initiate the communication session by opening a communication link between, for instance, the first server and the at least one target printer device.  The communication link may be conducted using a firewall-accommodating communication protocol.  In an example embodiment, the firewall-accommodating communication protocol may include the BOSH extension of the XMPP communication protocol.  Other communication protocols are possible to provide bidirectional data transport through the firewall.
[0051]       Block 410 includes, responsive to the first server receiving target printer device information via the communication session, providing at least one command to the at least one target printer device via the communication session.  In other words, the first server may provide commands to the target printer based on information it has received about that target printer.  The commands are provided via the firewall-accommodating communication session.
[0052]       For example, the first server may receive information about a paper jam on the target printer device.  In response, the first server may provide commands to the target printer device to resolve the problem.  In such a scenario, commands may be provided to, for example, reverse the feed mechanism to back out the paper and/or provide a message for personnel who may be able to physically interact with the target printer device.
[0053]       In another example embodiment, the first server may determine that the target printer device requires a firmware upgrade.  Accordingly, the first server may provide commands to install a new firmware version in the target printer device.
[0054]       Block 412 includes closing the communication session.  In an example embodiment, the controller may close the communication session in response to the first server and/or the target printer device electing to terminate the communication session.  In other embodiments, the controller may close the communication session in response to no communications from one or both of the first server and the target printer device for a predetermined period of time, e.g. a timeout.  Other events may trigger closing the communication session.
[0055]       Method 400 may optionally include other blocks.  For example, method 400 may include, responsive to establishing the communication session, adjusting a status related to the at least one target printer device to an online status.  That is, after initiating the communication session, the controller may adjust a database entry related to the target printer device.  The adjustment may include changing a status of the target printer device to “online” within the database.
[0056]       Method 400 may optionally include, responsive to closing the communication session, adjusting a status related to the at least one target printer device to an offline status.  Similar to the preceding paragraph, the controller may adjust a database entry related to the target printer device.  Specifically, the status of the target printer may be set to “offline” within the database.
[0057]       Method 400 may also optionally include determining a communication session start time based on the retrieved information.  In some embodiments, the retrieved information may include an explicit communication session start time.  In other example embodiments, the communication session start time may be determined from a predetermined schedule as well as the retrieved information.  For example, the retrieved information may include the model of the printer device.  A predetermined schedule may indicate that the particular model of printer device from the retrieved information should receive an annual maintenance on a predetermined date.  In such a way, the communication session start time may be determined.
[0058]       Method 400 may also include establishing the communication session in response to a system time (e.g. a system clock, a global clock, or another timing means) being the communication session start time.
[0059]       The method 400 may optionally include receiving configuration information.  As described above, the configuration information may include credentials to establish a secure communication session as well as URLs for the first server and/or the second server.  The communication session is configured according to the configuration information.
[0060]       The method 400 may optionally include the first server receiving information about the at least one target printer device and displaying the information via the user interface of the application.  In such a manner, a user of the user interface, e.g. a technical support person, may be able to receive information about the target printer device and/or provide commands or other information to the target printer device during the communication session.
[0061]       The method 400 may further include a database associated with the first server that is configured to store a list of associations between the plurality of printer devices and printer device identifiers.  That is, the database may include a plurality of entries related to the plurality of printer devices.  The plurality of entries may include associations between the plurality of printer devices and the printer device identifiers.  In some embodiments, determining the at least one target printer device from the plurality of printer devices includes the first server retrieving the list of associations from the database.
[0062]       Figure 5 is a schematic block diagram 500 illustrating several database entries, according to an example embodiment.  The database entries may include several data fields 510.  For example, the data fields 510 may include Device ID, Customer Name, Device Information, Description, Communication Session Time, and Status.  Other data fields 510 are contemplated herein and may relate to any matter in which remote communication, maintenance, problem resolution, and/or troubleshooting may be performed.
[0063]       Entry 512 may be related to Device ID “ABC123”.  The printer device of entry 512 may be owned, in the possession of, or otherwise associated with “John Smith”.  Entry 512 may include a variety of device information such as the model name, serial number, etc.  Entry 512 may include a description of a particular condition of the printer device, such as a paper jam.  Entry 512 may include a prior date and/or time, which may indicate that the problem or condition arose in the past.  Entry 512 may include a current status, such as “Offline, Complete”.  That is, Device ID ABC123 may be offline (e.g. not currently linked to the first server or the second server via a communication session) and the problem may have been resolved.
[0064]       Entry 514 may include printer device ID “DEF456”, which may be associated with “Jane Doe”.  Entry 514 may include information about the specific printer device, such as model name, serial number, etc.  Entry 514 may indicate a description as “Misaligned toner cartridge”.  Furthermore, entry 514 may include the current date/time, and an “online” status.  Thus, entry 514 may indicate that device DEF456 is currently linked to the first server and the second server via a communication session.  The communication session may relate to resolving a misaligned toner cartridge issue.  Accordingly, various commands may be provided to the printer device, such as a command to realign the toner cartridge and print a test page, as an example.
[0065]       Entry 516 may include printer device ID “GHI789”, which may be associated with “MetaCorp”.  Entry 516 may include information about the specific printer device, similar to entries 512 and 514, including the model name, serial name, etc.  Entry 516 may indicate a description of “Annual maintenance” with an indicated communication session time of a future date/time.  Furthermore, entry 516 may include “Offline, Pending”, which may indicate that an annual maintenance communication session is planned for the future date/time.
[0066]       Respective database entries may be added in response to a customer request, printer device request, or by technical support personnel, for example.  Respective database entries may be updated as communication sessions are established and closed with the various printer devices.  Furthermore, some database entries may be modified or removed for other reasons.  For instance, some technical issues may be addressed without a communication session, in which case the respective entry may be removed from the database and/or include a status of complete or resolved.
[0067]       While various examples and embodiments have been disclosed, other examples and embodiments will be apparent to those skilled in the art.  The various disclosed examples and embodiments are for purposes of illustration and are not intended to be limiting, with the true scope and spirit being indicated by the following claims.
REFFERENCE SIGNS LIST
[0067]
100, 200    System
110, 210    First Server
112    User Interface
114, 214    Database
120    Second Server
130, 240    Network
140    Firewall
150    Printing Device
212    Web Application
216    Xmpp Client Instance
220    Second Server
222    Xmpp Server Instance
230    Printing Device
232    Firmware
234    Xmpp Client Instance
1.    A system comprising:
a first server comprising an application configured to provide a user interface;
a second server configured to communicate via an internet, according to a data transport protocol, with the first server and a plurality of printer devices, wherein the plurality of printer devices is located behind a firewall; and
a controller configured to:
receive, via the application, a communication request, the communication request comprising a printer device identifier;
determine at least one target printer device from the plurality of printer devices based on the printer device identifier;
establish a communication session between the first server, the second server, and the at least one target printer device according to the data transport protocol; and
control the at least one target printer device based on the communication session.
2.    The system of claim 1 wherein the controller is further configured to receive a communication session start time and configuration information and wherein establishing the communication session is responsive to a system time being the communication session start time and wherein the communication session is configured according to the configuration information.
3.    The system of claim 1 wherein the data transport protocol comprises an XMPP communication protocol and wherein the first server communicates with the second server via an XMPP client instance running on the first server and an XMPP server instance running on the second server.
4.    The system of claim 3 wherein the data transport protocol further comprises a bidirectional stream over synchronous HTTP (BOSH) transport protocol, and wherein the at least one target printer device is running an XMPP BOSH client instance.
5.    The system of claim 1 wherein the data transport protocol further comprises a firewall-accommodating protocol, wherein the firewall-accommodating protocol is operable to provide bidirectional data transport through the firewall.
6.    The system of claim 1 wherein a database associated with the first server is configured to store a list of associations between the plurality of printer devices and printer device identifiers and wherein determining the at least one target printer device from the plurality of printer devices comprises the first server retrieving the list of associations from the database.
7.    A method comprising:
receiving, at a first server, a communication request via a user interface of an application, wherein the communication request comprises a printer device identifier and wherein the first server is configured to communicate via an internet, according to a data transport protocol, with a plurality of printer devices and a second server, wherein the plurality of printer devices is located behind a firewall;
determining at least one target printer device from the plurality of printer devices based on the printer device identifier;
establishing a communication session between the first server, the second server, and the at least one target printer device according to the data transport protocol; and
controlling the at least one target printer device based on the communication session.
8.    The method of claim 7 further comprising:
responsive to establishing the communication session, adjusting a status related to the at least one target printer device to an online status;
closing the communication session; and
responsive to closing the communication session, adjusting a status related to the at least one target printer device to an offline status.
9.    The method of claim 7 further comprising the first server receiving information about the at least one target printer device and displaying the information via the user interface of the application.
10.    A method comprising:
receiving, at a first server, a communication request via a user interface of an application, wherein the communication request comprises a printer device identifier and wherein the first server is configured to communicate via an internet, according to a data transport protocol, with a plurality of printer devices and a second server, wherein the plurality of printer devices is located behind a firewall;
responsive to receiving the communication request, retrieving information related to the printer device identifier from a database associated with the first server;
determining at least one target printer device from the plurality of printer devices based on the retrieved information;
establishing a communication session between the first server, the second server, and the at least one target printer device according to the data transport protocol;
responsive to the first server receiving target printer device information via the communication session, providing at least one command to the at least one target printer device via the communication session; and
closing the communication session.
11.    The method of claim 10 further comprising responsive to establishing the communication session, adjusting a status related to the at least one target printer device to an online status.
12.    The method of claim 10 further comprising responsive to closing the communication session, adjusting a status related to the at least one target printer device to an offline status.
13.    The method of claim 15 further comprising determining a communication session start time based on the retrieved information and receiving configuration information, and wherein establishing the communication session is responsive to a system time being the communication session start time, and wherein the communication session is configured according to the configuration information.
1. Abstract
PROBLEM TO BE SOLVED
To provide a system and a method to establish efficient, remote, real-time communication sessions with printing devices over the internet.
2. SOLUTION
Example systems and related methods may relate to controlling a printing device remotely during real-time communication session.  Namely, a system may include a first server and a second server.  The first server may include an application configured to provide a user interface.  The second server may be configured to communicate with the first server and a plurality of printer devices according to a data transport protocol.  A request that includes a printer device identifier may be received by a controller.  Based on the printer device identifier, a target printer device may be determined from the plurality of printer devices.  A communication session may be established between the first server, the second server, and the target printer device.  The communication session is configured according to the data transport protocol.  The controller may be configured to control the target printer device based on the communication session.
3. Representative Drawing: Fig. 1
2016128251.tif 000009
2016128251.tif 000010
2016128251.tif 000011
2016128251.tif 000012
2016128251.tif 000013
2016128251.tif 000014