(57)【要約】【課題】ファイアウォールに遮られた２つの装置間において、通信機能毎にＨＴＴＰへの変換機能を必要とすることなく、汎用的な変換機能により通信を行う仕組みを提供する。【解決手段】本発明は、各装置における通信クライアント又は通信サーバと、中継サーバとの間の通信を汎用的に制御する通信制御部を各装置に１つずつ設ける。具体的には、通信制御部は、自装置を示すＩＰアドレスと所定のポートを指定した通信ソケット作成し、当該通信ソケットを介して通信サーバ／通信クライアントとの間のデータをやり取りすることにより、通信サーバ／通信クラインのそれぞれの通信プロトコルと、ＨＴＴＰとの間で通信データを調整して中継する。【選択図】  図３
2018112895.tif 000002
【特許請求の範囲】
【請求項１】
中継サーバを介して画像形成装置と、情報処理装置との間で通信を行う情報処理システムであって、
前記情報処理装置は、
それぞれが異なる通信プロトコルによって通信可能な複数の通信クライアントと、
接続先としてローカルホストを設定し、所定のポートを指定して、第１の通信ソケットを作成し、前記複数の通信クライアントのうち何れかの通信クライアントを起動し、起動した該通信クライアントと前記中継サーバとの通信において、前記第１の通信ソケットを介して、対応する前記通信プロトコルとＨＴＴＰとの間で通信データを調整して中継する第１の通信制御手段と、
を備え、
前記画像形成装置は、
それぞれが異なる通信プロトコルによって通信可能な複数の通信サーバと、
接続先としてローカルホストを設定し、前記情報処理装置から指定された前記所定のポートを指定して、前記複数の通信サーバのうち何れかの通信サーバへの第２の通信ソケットを作成し、当該通信サーバと前記中継サーバとの通信において、前記第２の通信ソケットを介して、対応する前記通信プロトコルとＨＴＴＰとの間で通信データを調整して中継する第２の通信制御手段と
を備えることを特徴とする情報処理システム。
【請求項２】
中継サーバを介して画像形成装置と、情報処理装置との間で通信を行う情報処理システムであって、
前記情報処理装置は、
それぞれが異なる通信プロトコルによって通信可能な複数の通信クライアントと、
プロキシサーバとしてローカルホストを設定し、所定のポートを指定して、第１の通信ソケットを作成し、前記複数の通信クライアントのうち何れかの通信クライアントを起動し、起動した該通信クライアントと前記中継サーバとの通信において、前記第１の通信ソケットを介して、対応する前記通信プロトコルとＨＴＴＰとの間で通信データを調整して中継する第１の通信制御手段と、
を備え、
前記画像形成装置は、
それぞれが異なる通信プロトコルによって通信可能な複数の通信サーバと、
プロキシサーバとしてローカルホストを設定し、前記情報処理装置から指定された前記所定のポートを指定して、前記複数の通信サーバのうち何れかの通信サーバへの第２の通信ソケットを作成し、当該通信サーバと前記中継サーバとの通信において、前記第２の通信ソケットを介して、対応する前記通信プロトコルとＨＴＴＰとの間で通信データを調整して中継する第２の通信制御手段と
を備えることを特徴とする情報処理システム。
【請求項３】
前記第１の通信制御手段は、前記第１の通信ソケットを介して通信データを受信すると、前記通信データを送信した前記通信クライアントのサーバとなる前記画像形成装置の通信サーバへアクセスするためのポートのポート番号を設定して、当該通信データをＨＴＴＰリクエストとして送信することを特徴とする請求項１又は２に記載の情報処理システム。
【請求項４】
前記情報処理装置は、前記画像形成装置の通信サーバへアクセスするためのポートのポート番号を予め保持していることを特徴とする請求項３に記載の情報処理システム。
【請求項５】
前記第１の通信制御手段は、前記第１の通信ソケットを介して通信データを受信すると、前記通信データを送信した前記通信クライアントのサーバとなる前記画像形成装置の通信サーバへアクセスするためのポートのポート番号を設定し、当該通信データを、前記プロキシサーバを通さないＨＴＴＰリクエストとして送信することを特徴とする請求項２に記載の情報処理システム。
【請求項６】
前記第１の通信制御手段は、前記第１の通信ソケットを介して通信データを受信すると、前記通信データを送信した前記通信クライアントのサーバとなる前記画像形成装置の通信サーバへアクセスするためのポートのポート番号を該受信した通信データを解析して設定し、当該通信データを、前記プロキシサーバを通さないＨＴＴＰリクエストとして送信することを特徴とする請求項２に記載の情報処理システム。
【請求項７】
前記第１の通信制御手段は、前記ポート番号に加えて前記ローカルホストを設定し、当該通信データをＨＴＴＰリクエストとして送信することを特徴とする請求項５及び６の何れか１項に記載の情報処理システム。
【請求項８】
前記第１及び第２の通信制御手段は、前記ローカルホストとして、自装置を示すＩＰアドレスを設定することを特徴とする請求項１乃至７の何れか１項に記載の情報処理システム。
【請求項９】
前記自装置を示すＩＰアドレスは、ローカルループバックアドレスであることを特徴とする請求項８に記載の情報処理システム。
【請求項１０】
前記画像形成装置、前記情報処理装置、及び前記中継サーバは、ファイアウォールを介して接続されていることを特徴とする請求項１乃至９の何れか１項に記載の情報処理システム。
【請求項１１】
中継サーバを介して外部装置と通信を行う情報処理装置であって、
それぞれが異なる通信プロトコルによって通信可能な複数の通信クライアントと、
接続先又はプロキシサーバとしてローカルホストを設定し、所定のポートを指定して、通信ソケットを作成し、前記複数の通信クライアントのうち何れかの通信クライアントを起動し、起動した該通信クライアントと前記中継サーバとの通信において、前記通信ソケットを介して、対応する前記通信プロトコルとＨＴＴＰとの間で通信データを調整して中継する通信制御手段と、
を備えることを特徴とする情報処理装置。
【請求項１２】
中継サーバを介して外部装置と通信を行う情報処理装置であって、
それぞれが異なる通信プロトコルによって通信可能な複数の通信サーバと、
接続先又はプロキシサーバとしてローカルホストを設定し、前記外部装置から指定された所定のポートを指定して、前記複数の通信サーバのうち何れかの通信サーバへの通信ソケットを作成し、当該通信サーバと前記中継サーバとの通信において、前記通信ソケットを介して、対応する前記通信プロトコルとＨＴＴＰとの間で通信データを調整して中継する通信制御手段と、
を備えることを特徴とする情報処理装置。
【請求項１３】
前記情報処理装置は、画像形成装置であることを特徴とする請求項１１又は１２に記載の情報処理装置。
【請求項１４】
それぞれが異なる通信プロトコルによって通信可能な複数の通信クライアントを有し、中継サーバを介して外部装置と通信を行う情報処理装置の制御方法であって、
接続先又はプロキシサーバとしてローカルホストを設定し、所定のポートを指定して、通信ソケットを作成する工程と、
前記複数の通信クライアントのうち何れかの通信クライアントを起動する工程と、
起動した前記通信クライアントと前記中継サーバとの通信において、前記通信ソケットを介して、対応する前記通信プロトコルとＨＴＴＰとの間で通信データを調整して中継する工程と
を実行することを特徴とする情報処理装置の制御方法。
【請求項１５】
それぞれが異なる通信プロトコルによって通信可能な複数の通信サーバを有し、中継サーバを介して外部装置と通信を行う情報処理装置の制御方法であって、
接続先又はプロキシサーバとしてローカルホストを設定し、前記外部装置から指定された所定のポートを指定して、前記複数の通信サーバのうち何れかの通信サーバへの通信ソケットを作成する工程と、
当該通信サーバと前記中継サーバとの通信において、前記通信ソケットを介して、対応する前記通信プロトコルとＨＴＴＰとの間で通信データを調整して中継する工程と
を実行することを特徴とする情報処理装置の制御方法。
【請求項１６】
それぞれが異なる通信プロトコルによって通信可能な複数の通信クライアントを有し、中継サーバを介して外部装置と通信を行う情報処理装置の制御方法における各工程をコンピュータに実行させるためのプログラムであって、前記制御方法は、
接続先又はプロキシサーバとしてローカルホストを設定し、所定のポートを指定して、通信ソケットを作成する工程と、
前記複数の通信クライアントのうち何れかの通信クライアントを起動する工程と、
起動した前記通信クライアントと前記中継サーバとの通信において、前記通信ソケットを介して、対応する前記通信プロトコルとＨＴＴＰとの間で通信データを調整して中継する工程と
を実行することを特徴とするプログラム。
【請求項１７】
それぞれが異なる通信プロトコルによって通信可能な複数の通信サーバを有し、中継サーバを介して外部装置と通信を行う情報処理装置の制御方法における各工程をコンピュータに実行させるためのプログラムであって、前記制御方法は、
接続先又はプロキシサーバとしてローカルホストを設定し、前記外部装置から指定された所定のポートを指定して、前記複数の通信サーバのうち何れかの通信サーバへの通信ソケットを作成する工程と、
当該通信サーバと前記中継サーバとの通信において、前記通信ソケットを介して、対応する前記通信プロトコルとＨＴＴＰとの間で通信データを調整して中継する工程と
を実行することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、その制御方法、プログラム、及び情報処理システムに関するものである。
【背景技術】
【０００２】
現在、複合機では音声や動画通信、遠隔操作によるリモート支援サービスが提案されている。リモート支援サービスでは、複合機でのエラー発生時に保守のための人員が現地に赴くことがなく、コールセンターがユーザに直接エラー解決方法を伝え解決することが可能となる。これにより、エラー解決までの時間を短縮することが可能となる。このようなリモート支援サービスでは、ユーザは、電話機やＰＣ等の複合機以外の装置を使用することなく、複合機の通信機能を利用してコールセンターとの接続を実現することが効果的である。
【０００３】
ところが、一般的に、オフィスに導入されているファイアウォールにより直接複合機とコールセンターのＰＣがセッションを確立することは難しいことが多い。そこで、ファイアウォールとの親和性が高いＨＴＴＰを使用し、情報端末間でセッションを確立する技術が提案されている。一般的に、ファイアウォールに遮られた情報端末に対して、インターネット側からの接続は制限される。一方、一般的に、ファイアウォールの中にある情報端末側からインターネットへの接続は、ファイアウォールとの親和性が高いＨＴＴＰであれば許可される。
【０００４】
特許文献１には、ファイアウォールに遮られた２つの情報端末が、ＨＴＴＰクライアントとして接続が可能なセッション管理サーバに、それぞれの情報端末側から接続をすることで、情報端末間のセッション確立を実現することが提案されている。また、ＨＴＴＰのプロトコルを通すことで、遠隔操作のプロトコルであるＶＮＣ（Ｖｉｒｔｕａｌ  Ｎｅｔｗｏｒｋ  Ｃｏｍｐｕｔｉｎｇ）をファイアウォールで遮られた２つの情報端末間で通信させている。また、このようなシステムにおいては、一般的に、ＶＮＣだけでなく、複合機のＷＥＢサーバや、ＳＳＨ（ＳＥＣＵＲＥ  ＳＨＥＬＬ）サーバ等のサーバ機能に対する遠隔操作を行うことも提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１５−３２２２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記従来技術には以下に記載する課題がある。例えば、上記従来技術では、ＶＮＣ通信、ＷＥＢ通信、ＳＳＨ通信といった遠隔操作を行う通信機能毎に、ＨＴＴＰに適合するように通信内容を変換する機能を持たせる必要がある。即ち、現状のシステムでは、通信機能毎にアプリケーション等の開発が必要であり、開発コストの増大に繋がっている。
【０００７】
本発明は、上述の問題に鑑みて成されたものであり、ファイアウォールに遮られた２つの装置間において、通信機能毎にＨＴＴＰへの変換機能を必要とすることなく、汎用的な変換機能により通信を行う仕組みを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、中継サーバを介して画像形成装置と、情報処理装置との間で通信を行う情報処理システムであって、前記情報処理装置は、それぞれが異なる通信プロトコルによって通信可能な複数の通信クライアントと、接続先としてローカルホストを設定し、所定のポートを指定して、第１の通信ソケットを作成し、前記複数の通信クライアントのうち何れかの通信クライアントを起動し、起動した該通信クライアントと前記中継サーバとの通信において、前記第１の通信ソケットを介して、対応する前記通信プロトコルとＨＴＴＰとの間で通信データを調整して中継する第１の通信制御手段と、を備え、前記画像形成装置は、それぞれが異なる通信プロトコルによって通信可能な複数の通信サーバと、接続先としてローカルホストを設定し、前記情報処理装置から指定された前記所定のポートを指定して、前記複数の通信サーバのうち何れかの通信サーバへの第２の通信ソケットを作成し、当該通信サーバと前記中継サーバとの通信において、前記第２の通信ソケットを介して、対応する前記通信プロトコルとＨＴＴＰとの間で通信データを調整して中継する第２の通信制御手段と、を備えることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、ファイアウォールに遮られた２つの装置間において、通信機能毎にＨＴＴＰへの変換機能を必要とすることなく、汎用的な変換機能により通信を行うことができる。
【図面の簡単な説明】
【００１０】
【図１】一実施形態に係るネットワーク構成を示す図。
【図２Ａ】一実施形態に係る情報処理システムのハードウェア構成を示す図。
【図２Ｂ】一実施形態に係る情報処理システムのソフトウェア構成を示す図。
【図３】一実施形態に係るオペレータＰＣの処理を示すフローチャート。
【図４】一実施形態に係る画像形成装置の処理を示すフローチャート。
【図５】一実施形態に係る中継サーバの処理を示すフローチャート。
【図６】一実施形態に係るオペレータＰＣの処理を示すフローチャート。
【図７】一実施形態に係る画像形成装置の処理を示すフローチャート。
【図８】一実施形態に係るオペレータＰＣの処理を示すフローチャート。
【図９】一実施形態に係る画像形成装置の処理を示すフローチャート。
【図１０】一実施形態に係る中継サーバの処理を示すフローチャート。
【発明を実施するための形態】
【００１１】
以下に本発明の一実施形態を示す。以下で説明される個別の実施形態は、本発明の上位概念、中位概念及び下位概念など種々の概念を理解するために役立つであろう。また、本発明の技術的範囲は、特許請求の範囲によって確立されるのであって、以下の個別の実施形態によって限定されるわけではない。
【００１２】
＜第１の実施形態＞
＜ネットワーク構成＞
以下では、本発明の第１の実施形態について説明する。まず、図１を参照して、本実施形態に係るリモート支援を行う情報処理システムのネットワーク構成について説明する。
【００１３】
本システムは、画像形成装置１０１、情報処理装置であるオペレータＰＣ１０２、及びＨＴＴＰ中継サーバ１０３が通信可能に構成される。画像形成装置１０１及びオペレータＰＣ１０２は、本発明を適用する装置として、互いの通信相手として動作する。画像形成装置１０１及びオペレータＰＣ１０２は、ＨＴＴＰ（ＨｙｐｅｒＴｅｘｔ Ｔｒａｎｓｆｅｒ Ｐｒｏｔｏｃｏｌ）により呼制御を実行してデータ通信を行うデータ通信機能を備える。
【００１４】
図１に示すように、画像形成装置１０１は、ファイアウォール（ＦＷ）１０４を通じてネットワーク１０６に接続されている。また、ネットワーク１０６には、ＦＷ１０５を通じてコールセンター側のオペレータＰＣ１０２が接続されている。加えて、ＨＴＴＰ中継サーバ１０３がネットワーク１０６に接続されている。ＨＴＴＰによるデータ通信においては、クライアントノード同士はＨＴＴＰ中継サーバ１０３から提供されるＵＲＩ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｉｄｅｎｔｉｆｉｅｒ）にＰＯＳＴ／ＧＥＴリクエストを行うことでデータ通信を実施する。これにより、クライアントノード同士がプライベートアドレスエリアやＦＷに遮られていてもデータ通信を行うことができる。
【００１５】
本実施形態では、画像形成装置１０１及びオペレータＰＣ１０２はＨＴＴＰクライアントノードとして動作する。また、本実施形態ではクライアントノード間はネットワーク１０６に対してＦＷを介して通信する構成について説明するが、本発明はこれに限定されず、ＦＷを介さないネットワーク構成を適用してもよい。また、ネットワーク１０６には図示したよりも多くのＦＷ、画像形成装置、オペレータＰＣが接続されてもよい。また、本実施形態では、通信プロトコルとしてはＨＴＴＰでなくてもよい。
【００１６】
＜ハードウェア構成＞
次に、図２Ａを参照して、本実施形態に係る情報処理システムのハードウェア構成について説明する。画像形成装置１０１は、システム制御部２００、オペレーションパネル２１２、画像入力装置２１３、音声入出力装置２１４、スキャナ２１５、及びプリンタ２１６を備える。システム制御部２００は、スキャナＩ／Ｆ２０１、ＣＰＵ２０２、ＲＯＭ２０３、ＲＡＭ２０４、ＨＤＤ２０５、プリンタＩ／Ｆ２０７、パネル操作Ｉ／Ｆ２０８、画像入力Ｉ／Ｆ２０９、音声入出力Ｉ／Ｆ２１０、及びネットワークＩ／Ｆ２１１を備える。各デバイスはシステムバス２０６を介して相互にデータを送受することができる。
【００１７】
ＣＰＵ２０２は、ＲＯＭ２０３又はハードディスク（ＨＤＤ）２０５に記憶された制御プログラムに基づいてシステムバス２０６に接続される各種のデバイスとのアクセスを統括的に制御する。ＲＯＭ２０３は、ＣＰＵ２０２において実行可能な制御プログラム等を記憶している。ＲＡＭ２０４は、主としてＣＰＵ２０２の主メモリ、ワークエリア等として機能し、不図示の増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができる。ハードディスク（ＨＤＤ）２０５は、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル等を記憶する。なお、本実施形態ではＨＤＤ２０５を用いたが、ＨＤＤ２０５の他にＳＤカードや、フラッシュメモリなどを外部記憶装置として利用してもよい。
【００１８】
スキャナＩ／Ｆ２０１は、スキャナ２１５からの画像入力を制御する。プリンタＩ／Ｆ２０７は、プリンタ２１６への画像出力を制御する。パネル操作Ｉ／Ｆ２０８は、オペレーションパネル２１２の表示制御、及びオペレーションパネル２１２で設定される各種設定情報の入力を制御する。画像入力Ｉ／Ｆ２０９は、カメラ等の画像入力装置２１３からの画像入力を制御する。音声入出力Ｉ／Ｆ２１０は、ヘッドセット等の音声入出力装置２１４との音声入出力を制御する。ネットワークＩ／Ｆ２１１は、ネットワークケーブルを経由して外部ネットワークとデータ通信を行う。
【００１９】
オペレータＰＣ１０２は、制御部２２０、キーボード２３１、ディスプレイ２３２、画像入力装置２３３、及び音声入出力装置２３４を備える。制御部２２０は、ＣＰＵ２２１、ＲＯＭ２２２、ＲＡＭ２２３、ＨＤＤ２２４、ネットワークＩ／Ｆ２２６、キーボードＩ／Ｆ２２７、ディスプレイＩ／Ｆ２２８、画像入力Ｉ／Ｆ２２９、及び音声入出力Ｉ／Ｆ２３０を備える。
【００２０】
ＣＰＵ２２１は、ＲＯＭ２２２又はハードディスク（ＨＤＤ）２２４に記憶された制御プログラムに基づいてシステムバス２２５に接続される各種のデバイスとのアクセスを統括的に制御する。ＲＯＭ２２２は、ＣＰＵ２２１が実行可能な制御プログラム等を記憶している。ＲＡＭ２２３は、主としてＣＰＵ２２１の主メモリ、ワークエリア等として機能し、不図示の増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができる。ハードディスク（ＨＤＤ）２２４は、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、及び編集ファイル等を記憶する。なお、本実施形態ではＨＤＤ２２４を用いたが、ＨＤＤ２２４の他にＳＤカードや、フラッシュメモリなどを外部記憶装置として利用してもよい。
【００２１】
ネットワークＩ／Ｆ２２６は、ネットワークケーブルを経由して外部ネットワークとデータ通信を行う。キーボードＩ／Ｆ２２７は、キーボード２３１や不図示のポインティングデバイスからのキー入力を制御する。ディプレイＩ／Ｆ２２８は、ディスプレイ２３２の表示を制御する。画像入力Ｉ／Ｆ２２９は、カメラ等の画像入力装置２３３からの画像入力を制御する。音声入出力Ｉ／Ｆ２３０は、ヘッドセット等の音声入出力装置２３４との音声入出力を制御する。
【００２２】
ＨＴＴＰ中継サーバ１０３は、ＣＰＵ２４１、ＲＯＭ２４２、ＲＡＭ２４３、ＨＤＤ２４４、及びネットワークＩ／Ｆ２４６を備える。ＣＰＵ２４１は、ＲＯＭ２４２又はハードディスク（ＨＤＤ）２４４に記憶された制御プログラムに基づいてシステムバス２４５に接続される各種のデバイスとのアクセスを統括的に制御する。ＲＯＭ２４２は、ＣＰＵ２４１が実行可能な制御プログラム等を記憶している。ＲＡＭ２４３は、主としてＣＰＵ２４１の主メモリ、ワークエリア等として機能し、不図示の増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができる。ハードディスク（ＨＤＤ）２４４は、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、及び編集ファイル等を記憶する。なお、本実施形態ではＨＤＤ２４４を用いたが、ＨＤＤ２４４の他にＳＤカードや、フラッシュメモリなどを外部記憶装置として利用してもよい。ネットワークＩ／Ｆ２４６は、ネットワークケーブルを経由して外部ネットワークとデータ通信を行う。
【００２３】
＜ソフトウェア構成＞
次に、図２Ｂは、本実施形態に係る情報処理システムのソフトウェア構成について説明する。画像形成装置１０１は、中継サーバ通信処理部２５５と、ＶＮＣサーバ２５１、ＴＥＬＮＥＴ（ＴＥＬＥＴＹＰＥ  ＮＥＴＷＯＲＫ）サーバ２５２、ＳＳＨ（ＳＥＣＵＲＥ  ＳＨＥＬＬ）サーバ２５３、及びＷｅｂサーバ２５４などのサーバ部とを含む。中継サーバ通信処理部２５５は、中継サーバ１０３との通信処理を制御する。サーバ部は情報処理システムだけで使用するソフトウェアではなく、画像形成装置１０１の一般的な機能として提供されるソフトウェアである。中継サーバ通信処理部２５５は、第２の通信制御手段として機能し、各通信サーバ２５１〜２５４の通信プロトコルと、中継サーバ１０３との通信で利用するＨＴＴＰとを汎用的に調整する。
【００２４】
一方、オペレータＰＣ１０２は、中継サーバ通信処理部２６５と、ＶＮＣクライアント２６１、ＴＥＬＮＥＴクライアント２６２、ＳＳＨクライアント２６３、及びＷｅｂブラウザ２６４などのクライアント部とを含む。中継サーバ通信処理部２６５は、第１の通信制御手段として機能し、中継サーバ１０３との通信処理を制御する。クライアント部は情報処理システムだけで使用するソフトウェアではなく、オペレータＰＣ１０２で一般的に使用するために提供されるソフトウェアである。中継サーバ通信処理部２６５は、各通信クライアント２６１〜２６４の通信プロトコルと、中継サーバ１０３との通信で利用するＨＴＴＰとを汎用的に調整する。
【００２５】
中継サーバ１０３は画像形成装置１０１とオペレータＰＣ１０２の通信の転送を行う転送処理部２７１を含む。中継サーバ通信処理部２５５は、サーバ部の各サーバがＨＴＴＰを使って中継サーバ１０３と通信できるようにするために、各サーバから受け付けた通信データをＨＴＴＰでカプセル化する処理を実行する。例えば、中継サーバ通信処理部２５５は、ＶＮＣサーバ２５１から出力されたＶＮＣデータを、ＨＴＴＰデータに埋め込んで中継サーバ１０３に送信する。他のサーバについても同様である。また、中継サーバ通信処理部２５５は、中継サーバ１０３から受信したＨＴＴＰデータから各サーバの通信プロトコルに対応するデータを取り出して、各サーバに受け渡す処理を実行する。
【００２６】
本実施形態では、オペレータＰＣ１０２が通信クライアントを有し、画像形成装置１０１が通信サーバを有する形態で説明するが、本発明はこれに限定されない。例えば、画像形成装置１０１が通信クライアントを有し、オペレータＰＣ１０２が通信サーバを有する形態で、画像形成装置１０１からオペレータＰＣ１０２へアクセスを要求するような形態であってもよい。なお、図２Ｂでは、これはオペレータＰＣ１０２から画像形成装置１０１へアクセスして通信データの送信を実現する場合の形態におけるＨＴＴＰトンネリングを概念的に円柱の形状で示すものである。これは本発明の一例であり、例えば、画像形成装置１０１からオペレータＰＣ１０２へアクセスして通信データを送信する場合には、図２Ｂに示す円柱部分は画像形成装置１０１とオペレータＰＣ１０２とで反対となる。
【００２７】
＜全体処理＞
次に、本実施形態に係る情報処理システムにおける全体の動作の流れを説明する。最初に、オペレータＰＣ１０２と画像形成装置１０１がそれぞれ中継サーバ１０３にアクセスする。中継サーバ１０３は２つのクライアントをペアリングし、２つのクライアントはセッション確立状態となる。セッション確立状態を作るために例えばオペレータＰＣ１０２と画像形成装置１０１に同じ番号や文字列を入力して中継サーバ１０３でペアリングする方法などがあるが、本発明とは関係しないため詳細な説明は省略する。
【００２８】
セッション確立状態となった後、オペレータがオペレータＰＣ１０２からＶＮＣ（Ｖｉｒｔｕａｌ  Ｎｅｔｗｏｒｋ  Ｃｏｍｐｕｔｉｎｇ）の開始を操作して、遠隔操作が行われる。本実施形態では遠隔操作の例として、ＶＮＣに対応する通信プロトコルを利用する例を説明するが、例えば、ＴＥＬＮＥＴ（ＴＥＬＥＴＹＰＥ  ＮＥＴＷＯＲＫ）やＳＳＨ（ＳＥＣＵＲＥ  ＳＨＥＬＬ）といった通信プロトコルも適用可能である。以下では、画像形成装置１０１、オペレータＰＣ１０２、及び中継サーバ１０３のより詳細な処理を説明する。
【００２９】
＜オペレータＰＣの処理手順＞
次に、図３を参照して、本実施形態に係るオペレータＰＣ１０２の処理手順について説明する。本フローチャートは、例えばＨＤＤ２２４に格納されたプログラムがＲＡＭ２２３に読み出され、ＣＰＵ２２１によって実行されることで実現される。また、以下で説明する処理は、図２Ｂに示すオペレータＰＣ１０２の中継サーバ通信処理部２６５によって実施される。
【００３０】
本処理が開始されると、まずＳ３０１で、オペレータＰＣ１０２の中継サーバ通信処理部２６５は、中継サーバ１０３にアクセスして、遠隔保守を行う画像形成装置１０１とのセッションを確立する。前述したように、詳細な確立方法については説明を省略する。続いて、Ｓ３０２で、中継サーバ通信処理部２６５は、キーボード２３１等のユーザインタフェースを介して、ユーザからＶＮＣの開始操作を受け付ける。例えば、オペレータＰＣ１０２の画面上に開始ボタンを表示して、マウスポインタでのクリック操作を受け付ける。
【００３１】
ＶＮＣ開始操作を受け付けると、Ｓ３０３で、中継サーバ通信処理部２６５は、ＶＮＣ開始要求を中継サーバ１０３へ送信する。具体的には、中継サーバ通信処理部２６５は、「アプリケーション名：ＶＮＣ」及び「コマンド：開始」というデータをＨＴＴＰのボディ部に書き込んで、中継サーバ１０３にリクエストをＰＯＳＴする。続いて、Ｓ３０４で、中継サーバ通信処理部２６５は、ソケットを作成して特定のポートでＬｉｓｔｅｎ（リスニング状態）を開始する。リスニング状態とは、所定のポートから受信するデータを待ち受けている状態である。このポートは外部のＶＮＣクライアントアプリケーション、例えばＶＮＣクライアント２６１の接続先となるポートであり、予め定義してあってもよいし、動的に空いているポートを使用してもよい。本実施形態ではポート番号１００００として説明する。ポートのＬｉｓｔｅｎを開始した後、Ｓ３０５で、中継サーバ通信処理部２６５は、ＶＮＣクライアントアプリケーションを起動する。このとき、中継サーバ通信処理部２６５は、ＶＮＣクライアントアプリケーションの接続先として、ＩＰアドレスを「１２７．０．０．１」と設定し、ポート番号をＳ３０４でＬｉｓｔｅｎしている「１００００」として指定して起動する。即ち、ここでは、ＩＰアドレスとして、自装置を示すローカルループバックアドレスを設定する。
【００３２】
ＶＮＣクライアントアプリケーションが起動すると、Ｓ３０６で、中継サーバ通信処理部２６５は、ＶＮＣ停止操作を受け付けたかどうかを判定し、受け付けた場合は終了処理に進む。ＶＮＣ停止操作を受け付けていなければＳ３０７に進み、中継サーバ通信処理部２６５は、まずソケット（通信ソケット）からデータをＲｅａｄする。Ｓ３０７ではＶＮＣクライアントアプリケーションから送信されるデータを受信することができる。データを受信すると、Ｓ３０８で、中継サーバ通信処理部２６５は、中継サーバ１０３に送信するためのＨＴＴＰのＰＯＳＴリクエストを作成し、ＨＴＴＰボディ部に画像形成装置（ＭＦＰ）１０１のＶＮＣサーバ２５１のへ接続するためのポート番号を指定する。このポート番号は予めオペレータＰＣ１０２に指定され、保持されていることが望ましい。本実施形態ではこのポート番号を５９００として説明する。具体的にはＨＴＴＰボディ部には「Ｐｏｒｔ＝５９００」という記述を行う。
【００３３】
次に、Ｓ３０９で、中継サーバ通信処理部２６５は、Ｓ３０７でＲｅａｄしたデータをＨＴＴＰボディ部に設定する。具体的には、「Ｄａｔａ＝ＸＸＸ（Ｒｅａｄしたバイナリデータ）」という記述を行う。Ｓ３０８及びＳ３０９でＨＴＴＰのＰＯＳＴリクエストが完成すると、Ｓ３１０で、中継サーバ通信処理部２６５は、中継サーバ１０３にＨＴＴＰのＰＯＳＴリクエストを送信し、Ｓ３１１でＰＯＳＴレスポンスを受信する。
【００３４】
次に、Ｓ３１２で、中継サーバ通信処理部２６５は、中継サーバ１０３にＨＴＴＰのＧＥＴリクエストを送信し、Ｓ３１３でＧＥＴレスポンスを受信する。受信が完了すると、Ｓ３１４で、中継サーバ通信処理部２６５は、ＧＥＴレスポンスのＨＴＴＰボディ部からデータを読み込む。具体的には、ＨＴＴＰボディ部の「Ｄａｔａ＝」に続く部分を読み込む。Ｓ３１４で読み込んだデータは画像形成装置１０１のＶＮＣサーバ２５１が送信してきたデータである。データの読み込みが完了すると、Ｓ３１５で、中継サーバ通信処理部２６５は、読み込んだデータをＳ３０４で作成したソケットにＷｒｉｔｅする。
【００３５】
中継サーバ通信処理部２６５はＳ３０６のＶＮＣ停止操作が受け付けられるまで、Ｓ３０７乃至Ｓ３１５の処理を繰り返す。Ｓ３０６でＶＮＣ停止操作が受け付けられると、Ｓ３１６に進み、中継サーバ通信処理部２６５は、Ｓ３０５で起動したＶＮＣクライアントアプリケーションを停止する。続いて、Ｓ３１７で、中継サーバ通信処理部２６５は、ＶＮＣ停止要求を中継サーバ１０３へ送信する。具体的には中継サーバ通信処理部２６５は、「アプリケーション名：ＶＮＣ」及び「コマンド：停止」というデータをＨＴＴＰのボディ部に書き込んで中継サーバ１０３にリクエストをＰＯＳＴする。最後に、Ｓ３１８で、中継サーバ通信処理部２６５は、Ｓ３０４で作成したソケットを破棄し、処理を終了する。
【００３６】
＜画像形成装置の処理手順＞
次に、図４を参照して、本実施形態に係る画像形成装置１０１の処理手順について説明する。本フローチャートは、例えばＨＤＤ２０５に格納されたプログラムがＲＡＭ２０４に読み出され、ＣＰＵ２０２によって実行されることで実現される。以下で説明する処理は図２Ｂに示す画像形成装置１０１の中継サーバ通信処理部２５５において実施される。
【００３７】
本処理が開始されると、まずＳ４０１で、画像形成装置１０１の中継サーバ通信処理部２５５は、中継サーバ１０３にアクセスして、遠隔保守を行うオペレータＰＣ１０２とのセッションを確立する。前述したように、詳細な確立方法については説明を省略する。続いて、Ｓ４０２で、中継サーバ通信処理部２５５は、中継サーバ１０３からＶＮＣ開始要求を受信する。ＶＮＣ開始要求は、中継サーバ１０３から送信されるが、トリガはオペレータＰＣ１０２においてＳ３０３で行われるＰＯＳＴリクエストの送信である。中継サーバ通信処理部２５５は中継サーバ１０３にＨＴＴＰのＧＥＴリクエストを定期的に送信することで、ＶＮＣ開始要求の受信を行う。具体的には、中継サーバ通信処理部２５５は、ＧＥＴレスポンスのＨＴＴＰボディ部から「アプリケーション名：ＶＮＣ」及び「コマンド：開始」というデータを読み込むことで検知する。
【００３８】
Ｓ４０２でＶＮＣ開始要求を受け付けると、Ｓ４０３に進み、中継サーバ通信処理部２５５は、ＶＮＣ停止要求を受け付けたかどうかを判定し、受け付けた場合は処理を終了する。ＶＮＣ停止要求はＶＮＣ開始要求と同様に、ＨＴＴＰのＧＥＴリクエストを定期的に送信することで受信する。具体的には、中継サーバ通信処理部２５５は、ＧＥＴレスポンスのＨＴＴＰボディ部から「アプリケーション名：ＶＮＣ」及び「コマンド：停止」というデータを読み込むことで検知する。
【００３９】
ＶＮＣ停止要求を受け付けていなければ、Ｓ４０４に進み、中継サーバ通信処理部２５５は、Ｓ４０２で受け付けた要求に従って、まず画像形成装置１０１のＶＮＣサーバ２５１に接続するためのソケットを作成する。ここでは、何れのサーバに接続するソケットであるかは設定していない。ソケットの作成が完了すると、Ｓ４０５で、中継サーバ通信処理部２５５は、中継サーバ１０３にＨＴＴＰのＧＥＴリクエストを送信し、Ｓ４０６でＧＥＴレスポンスを受信する。受信が完了すると、Ｓ４０７で、中継サーバ通信処理部２５５は、ＧＥＴレスポンスのＨＴＴＰボディ部から接続先のポート番号を取得する。ここで取得する値はＳ３０８でオペレータＰＣ１０２が指定した値（Ｐｏｒｔ＝５９００）である。具体的には、ＨＴＴＰボディ部の「Ｐｏｒｔ＝」に続く部分を読み込む。続いて、Ｓ４０８で、中継サーバ通信処理部２５５は、ＧＥＴレスポンスのＨＴＴＰボディ部からデータを読み込む。具体的には、ＨＴＴＰボディ部の「Ｄａｔａ＝」に続く部分を読み込む。Ｓ４０８で読み込んだデータはオペレータＰＣ１０２のＶＮＣクライアントアプリケーションが送信してきたデータである。
【００４０】
データの読み込みが完了すると、Ｓ４０９で、中継サーバ通信処理部２５５は、接続先ホスト名に「１２７．０．０．１」、接続先ポート番号にＳ４０７で取得したポート番号を指定してソケットをＣｏｎｎｅｃｔする。さらに、Ｓ４０８で読み込んだデータをソケットにＷｒｉｔｅする。即ち、ここでは、接続先にローカルホスト、例えば自装置を示すローカルループバックアドレスを設定する。続いて、Ｓ４１０で、中継サーバ通信処理部２５５は、ソケットからデータをＲｅａｄする。Ｓ４１０ではＶＮＣサーバ２５１から送信されるデータを受信することができる。
【００４１】
次に、Ｓ４１１で、中継サーバ通信処理部２５５は、Ｓ４１０でＲｅａｄしたデータをＨＴＴＰボディ部に設定する。具体的には、「Ｄａｔａ＝ＸＸＸ（Ｒｅａｄしたバイナリデータ）」という記述を行う。Ｓ４１１でＨＴＴＰのＰＯＳＴリクエストが完成すると、Ｓ４１２で、中継サーバ通信処理部２５５は、中継サーバ１０３にＨＴＴＰのＰＯＳＴリクエストを送信し、Ｓ４１３でＰＯＳＴレスポンスを受信する。全ての通信が完了すると、Ｓ４１４で、中継サーバ通信処理部２５５は、Ｓ４０４で作成したソケットを破棄する。Ｓ４０３乃至Ｓ４１４の処理は、Ｓ４０３でＶＮＣ停止要求を受け付けるまで繰り返し行われる。
【００４２】
＜中継サーバの処理手順＞
次に、図５を参照して、本実施形態に係る中継サーバ１０３の処理手順について説明する。本フローチャートは、例えばＨＤＤ２４４に格納されたプログラムがＲＡＭ２４３に読み出され、ＣＰＵ２４１によって実行されることで実現される。以下で説明する処理は図２Ｂの中継サーバ１０３の転送処理部２７１において実施される。
【００４３】
本処理が開始されると、まずＳ５０１で、中継サーバ１０３の転送処理部２７１は、まずクライアントからのデータを受信する。ここでいうクライアントとは、画像形成装置１０１やオペレータＰＣ１０２のことである。データを受信すると、転送処理部２７１は、Ｓ５０２、Ｓ５０４、Ｓ５０７、Ｓ５１０、及びＳ５１５において、受信データがどの要求であるかを判断する。判断できない要求である場合はＳ５０１に戻り次のデータを受信する。具体的には、Ｓ５０２では、転送処理部２７１は、受信データがセッションの確立要求であるか否かを判断する。Ｓ５０４では、転送処理部２７１は、受信データが機能の開始要求であるか否かを判断する。Ｓ５０７では、転送処理部２７１は、受信データが機能の停止要求であるか否かを判断する。Ｓ５１０では、転送処理部２７１は、受信データが転送のためのＰＯＳＴ要求であるか否かを判断する。Ｓ５１５では、転送処理部２７１は、受信データが転送のためのＧＥＴ要求であるか否かを判断する。
【００４４】
Ｓ５０２で受信データがセッション確立の要求であると判断するとＳ５０３に進み、転送処理部２７１は、画像形成装置１０１とオペレータＰＣ１０２をペアリングするというセッション確立処理を実行し、処理をＳ５０１に戻す。前述したように、詳細な確立方法については説明を省略する。
【００４５】
Ｓ５０４で受信データが機能の開始要求であると判断するとＳ５０５に進み、転送処理部２７１は、要求元のクライアントとセッションを確立している相手クライアントに対して、機能の開始要求を送信する。具体的には、転送処理部２７１は、相手クライアントに対してＧＥＴレスポンスのＨＴＴＰボディ部に「アプリケーション名：機能名」及び「コマンド：開始」というデータを設定して送信する。本実施形態では、転送処理部２７１は、オペレータＰＣ１０２からＶＮＣ開始要求を受信し、画像形成装置１０１にＶＮＣ開始要求を送信する。Ｓ５０５の処理が完了するとＳ５０６に進み、転送処理部２７１は、要求元のクライアントにＨＴＴＰのレスポンスを送信し、処理をＳ５０１に戻す。
【００４６】
Ｓ５０７で受信データが機能の停止要求であると判断するとＳ５０８に進み、転送処理部２７１は、要求元のクライアントとセッションを確立している相手クライアントに対して、機能の停止要求を送信する。具体的には、転送処理部２７１は、相手クライアントに対してＧＥＴレスポンスのＨＴＴＰボディ部に「アプリケーション名：機能名」及び「コマンド：停止」というデータを設定して送信する。本実施形態では、転送処理部２７１はオペレータＰＣ１０２からＶＮＣ停止要求を受信し、画像形成装置１０１にＶＮＣ停止要求を送信する。Ｓ５０８の処理が完了するとＳ５０９に進み、転送処理部２７１は、要求元のクライアントにＨＴＴＰのレスポンスを送信し、処理をＳ５０１に戻す。
【００４７】
Ｓ５１０で受信データが遠隔操作データの転送のためＰＯＳＴ要求であると判断するとＳ５１１に進み、転送処理部２７１は、受信したＨＴＴＰのＰＯＳＴリクエストのＨＴＴＰボディ部からデータを読み込む。具体的には、転送処理部２７１は、ＨＴＴＰボディ部の「Ｄａｔａ＝」に続く部分を読み込む。続いて、Ｓ５１２で、転送処理部２７１は、ＰＯＳＴリクエストのＨＴＴＰボディ部から接続先ポート番号を取得する。具体的には、転送処理部２７１は、ＨＴＴＰボディ部の「Ｐｏｒｔ＝」に続く部分を読み込む。Ｓ５１１及びＳ５１２の読み込みが完了するとＳ５１３に進み、転送処理部２７１は、このＰＯＳＴリクエストの要求元のクライアントに紐付いたキューに対して、Ｓ５１１で読み込んだデータとＳ５１２で読み込んだ接続先ポート番号情報をセットでＰｕｓｈする。キューは要求元毎に存在し、画像形成装置１０１がＰＯＳＴしてきたデータは画像形成装置１０１用のキューに、オペレータＰＣ１０２がＰＯＳＴしてきたデータはオペレータＰＣ１０２用のキューにＰｕｓｈされる。Ｐｕｓｈが完了するとＳ５１４に進み、転送処理部２７１は、要求元のクライアントにＰＯＳＴのレスポンスを送信し、処理をＳ５０１に戻す。
【００４８】
Ｓ５１５で受信データが遠隔操作データの転送のためＧＥＴ要求であると判断するとＳ５１６に進み、転送処理部２７１は、要求元のクライアントとセッション確立している相手クライアント用のキューからデータをＰｏｐする。画像形成装置１０１のＧＥＴリクエストであればオペレータＰＣ１０２用のキューから、オペレータＰＣ１０２のＧＥＴリクエストであれば画像形成装置１０１用のキューからＰｏｐする。Ｐｏｐが完了するとＳ５１７で、転送処理部２７１は、要求元のクライアントに送信するためのＨＴＴＰのＧＥＴレスポンスを作成し、ＨＴＴＰボディ部にキューからＰｏｐした接続先ポート番号を指定する。具体的には、転送処理部２７１は、ＨＴＴＰボディ部には「Ｐｏｒｔ＝ＸＸＸ（Ｐｏｐした接続先ポート番号）」という記述を行う。続いて、Ｓ５１８で、転送処理部２７１は、ＰｏｐしたデータをＧＥＴレスポンスのＨＴＴＰボディ部に設定する。具体的には、転送処理部２７１は、「Ｄａｔａ＝ＸＸＸ（Ｒｅａｄしたバイナリデータ）」という記述を行う。Ｓ５１７及びＳ５１８でＨＴＴＰのＧＥＴレスポンスが完成するとＳ５１９に進み、転送処理部２７１は、要求元クライアントにＧＥＴレスポンスを送信し、処理をＳ５０１に戻す。
【００４９】
以上説明したように、本実施形態に係る情報処理システムは、中継サーバを介して画像形成装置と、情報処理装置（オペレータＰＣ）との間で通信を行うリモート支援システムである。本情報処理装置は、それぞれが異なる通信プロトコルによって通信可能な複数の通信クライアントを備える。また、本情報処理装置は、接続先としてローカルホストを設定し、所定のポートを指定して、通信ソケット（第１の通信ソケット）を作成し、複数の通信クライアントのうち何れかの通信クライアントを起動する。さらに、本情報処理装置は、起動した通信クライアントと中継サーバとの通信において、作成した通信ソケットを介して、対応する通信プロトコルとＨＴＴＰとの間で通信データを調整して中継する。一方、本画像形成装置は、それぞれが異なる通信プロトコルによって通信可能な複数の通信サーバを備える。また、本画像形成装置は、接続先としてローカルホストを設定し、情報処理装置から指定された所定のポートを指定して、複数の通信サーバのうち何れかの通信サーバへの第２の通信ソケットを作成する。さらに、本画像形成装置は、当該通信サーバと中継サーバとの通信において、通信ソケット（第２の通信ソケット）を介して、対応する通信プロトコルとＨＴＴＰとの間で通信データを調整して中継する。これにより、本実施形態によれば、オペレータＰＣ１０２と画像形成装置１０１との間で、ＶＮＣのような遠隔保守以外でも元々利用可能である通信機能がある場合に、それぞれの通信機能毎に転送処理を作り込む必要がなくなる。よって、汎用的な方法で通信データの転送を行うことができ、開発コスト等を削減することができる。また、通信機能ごとにアプリケーションを保持する必要がないため、各装置におけるメモリ資源を有効に活用することができる。
【００５０】
＜第２の実施形態＞
以下では、本発明の第２の実施形態について説明する。本実施形態では、ＷＥＢ通信のような、複数のポートを切り替えながら使用する通信機能においても、上記第１の実施形態と同様に、汎用的な方法で通信データの転送を行う仕組みについて説明する。本実施形態のネットワーク構成、ハードウェア構成、及びソフトウェア構成については上記第１の実施形態と同様であるため説明は省略する。また、本実施形態のシステム全体の動作の流れも上記第１の実施形態と同様であるため説明を書略する。本実施形態では遠隔操作の例としてＷＥＢ操作を用いて説明を行う。ＷＥＢ操作とは画像形成装置１０１が有するＷＥＢサーバ機能に対してオペレータＰＣ１０２のＷＥＢブラウザで操作を行うことである。以下では、画像形成装置１０１、オペレータＰＣ１０２、及び中継サーバ１０３のより詳細な処理を説明する。
【００５１】
＜オペレータＰＣの処理手順＞
図６を参照して、本実施形態に係るオペレータＰＣ１０２の処理手順について説明する。本フローチャートは、例えばＨＤＤ２２４に格納されたプログラムがＲＡＭ２２３に読み出され、ＣＰＵ２２１によって実行されることで実現される。以下で説明する処理は図２Ｂに示すオペレータＰＣ１０２の中継サーバ通信処理部２６５において実施される。
【００５２】
本処理が開始されると、まずＳ６０１で、オペレータＰＣ１０２の中継サーバ通信処理部２６５は、中継サーバ１０３にアクセスして、遠隔保守を行う画像形成装置１０１とのセッションを確立する。前述したように、詳細な確立方法については説明を省略する。続いて、中継サーバ通信処理部２６５はＷＥＢの開始操作を受け付ける。具体的には、中継サーバ通信処理部２６５は、オペレータＰＣ１０２の画面上に開始ボタンを表示して、マウスポインタでのクリックを受け付ける。ＷＥＢ開始操作を受け付けるとＳ６０３に進み、中継サーバ通信処理部２６５は、ＷＥＢ開始要求を中継サーバ１０３へ送信する。具体的には、中継サーバ通信処理部２６５は「アプリケーション名：ＷＥＢ」及び「コマンド：開始」というデータをＨＴＴＰのボディ部に書き込んで中継サーバ１０３にリクエストをＰＯＳＴする。
【００５３】
次に、Ｓ６０４で、中継サーバ通信処理部２６５は、ＷＥＢブラウザを起動する。ＷＥＢブラウザを起動する際に、中継サーバ通信処理部２６５は、ＷＥＢブラウザのプロキシサーバ設定として、ＩＰアドレスを「１２７．０．０．１」に設定し、ポート番号を「１００００」に指定して起動する。ここで指定するポート番号は予めオペレータＰＣ１０２に設定しておくものとする。本実施形態ではポート番号１００００として説明する。
【００５４】
ＷＥＢブラウザが起動するとＳ６０５に進み、中継サーバ通信処理部２６５は、ＷＥＢ停止操作を受け付けたかどうかを判定し、受け付けた場合はＳ６２３以降の終了処理に進む。一方、ＷＥＢ停止操作を受け付けていなければＳ６０６に進み、中継サーバ通信処理部２６５は、まずソケットを作成してＳ６０４で指定したポートでＬｉｓｔｅｎ（リスニング状態）を開始する。リスニング状態とは、上記第１の実施形態で述べた通りである。このポートは外部のＷＥＢブラウザが、プロキシサーバとして接続してくるポートである。ポートのＬｉｓｔｅｎを開始した後、Ｓ６０７で、中継サーバ通信処理部２６５は、ソケットからデータをＲｅａｄする。Ｓ６０７ではＷＥＢブラウザから送信されるデータを受信することができる。
【００５５】
一般的にプロキシサーバ設定を行っているＷＥＢブラウザは、例えば、「ｈｔｔｐ：／／ｘｘｘ：８０００／ｙｙｙ／ｚｚｚ」というようなＳ６０６で待ち受けているポートと異なるＵＲＬにアクセスしても、プロキシサーバの接続先に接続することができる。また、一般的にプロキシサーバを設定しているＷＥＢブラウザは、設定しない場合とは異なるＨＴＴＰヘッダやＨＴＴＰメソッドを使用して通信する。詳細については後述する。
【００５６】
データを受信するとＳ６０８に進み、中継サーバ通信処理部２６５は、受信したＷＥＢブラウザのＨＴＴＰリクエストから画像形成装置１０１のＷＥＢサーバへの接続先ポート番号を取得する。具体的には、ＷＥＢブラウザから受信したＨＴＴＰリクエストのヘッダには、「ＧＥＴ  ｈｔｔｐ：／／ｘｘｘ：８０００／ｙｙｙ／ｚｚｚ  ＨＴＴＰ／１．１」というような情報が記載されている。このヘッダのＵＲＬ部分から「８０００」というポート番号を読み取って取得する。ＵＲＬにおいてポート番号部分が省略されている場合、ＨＴＴＰであれば８０、ＨＴＴＰＳであれば４４３がデフォルト値となる。一般的なＷＥＢブラウザでは、プロキシサーバを設定していない場合は、「ＧＥＴ  ／ｙｙｙ／ｚｚｚ  ＨＴＴＰ／１．１」というような記述となる。
【００５７】
次に、Ｓ６０９で、中継サーバ通信処理部２６５は、受信したＷＥＢブラウザのＨＴＴＰリクエストからＨＴＴＰメソッドを解析して、ＣＯＮＮＥＣＴメソッドかどうかを判定する。具体的にはＷＥＢブラウザから受信したＨＴＴＰリクエストのヘッダの「ＧＥＴ  ｈｔｔｐ：／／ｘｘｘ：８０００／ｙｙｙ／ｚｚｚ  ＨＴＴＰ／１．１」という記述の先頭部分がＨＴＴＰメソッドとなっている。Ｓ６０９の判定がＣＯＮＮＥＣＴメソッドでない場合、Ｓ６１０で、中継サーバ通信処理部２６５は、Ｓ６０７でＷＥＢブラウザから受信したＨＴＴＰリクエストのヘッダの書き換え処理を実行する。具体的には、中継サーバ通信処理部２６５は、「ＧＥＴ  ｈｔｔｐ：／／ｘｘｘ：８０００／ｙｙｙ／ｚｚｚ  ＨＴＴＰ／１．１」を「ＧＥＴ  ／ｙｙｙ／ｚｚｚ  ＨＴＴＰ／１．１」というように書き換え、プロキシサーバを通さない場合のＨＴＴＰのヘッダの形式に変更する。
【００５８】
次に、Ｓ６１１で、中継サーバ通信処理部２６５は、中継サーバ１０３に送信するためのＨＴＴＰのＰＯＳＴリクエストを作成し、そのＨＴＴＰボディ部に、Ｓ６１０で加工したＷＥＢブラウザのＨＴＴＰリクエストを書き込む。具体的には、中継サーバ通信処理部２６５は、「Ｄａｔａ＝ＸＸＸ（Ｓ６１０で加工したＷＥＢブラウザのＨＴＴＰリクエスト）」という記述を行う。この後はＳ６１５の処理に進む。
【００５９】
一方、Ｓ６０９の判定がＣＯＮＮＥＣＴメソッドである場合、Ｓ６１２に進み、中継サーバ通信処理部２６５は、ＨＴＴＰのＣＯＮＮＥＣＴレスポンスを生成して、Ｓ６０６で生成したソケットにＷｒｉｔｅする。ＣＯＮＮＥＣＴメソッドはプロキシサーバを通してＨＴＴＰＳ通信を行う場合に使用するメソッドである。このため、ＷＥＢブラウザはＣＯＮＮＥＣＴレスポンスが返ってきた後、ＳＳＬ通信のハンドシェイクを含むＷＥＢサーバと通信するための情報をソケットにＷｒｉｔｅする。これを読み込むため、Ｓ６１３で、中継サーバ通信処理部２６５は、Ｓ６０６で作成したソケットからデータをＲｅａｄする。
【００６０】
次に、Ｓ６１４で、中継サーバ通信処理部２６５は、中継サーバ１０３に送信するためのＨＴＴＰのＰＯＳＴリクエストを作成し、そのＨＴＴＰボディ部に、Ｓ６１３でＲｅａｄしたデータを書き込む。具体的には、中継サーバ通信処理部２６５は、「Ｄａｔａ＝ＸＸＸ（Ｓ６１３でＲｅａｄしたデータ）」という記述を行う。この後はＳ６１５の処理に進む。
【００６１】
Ｓ６１１又はＳ６１４の処理の後、Ｓ６１５で、中継サーバ通信処理部２６５は、中継サーバ１０３に送信するためのＨＴＴＰのＰＯＳＴリクエストのＨＴＴＰボディ部に、Ｓ６０８で取得したポート番号を指定する。具体的には、中継サーバ通信処理部２６５は、ＨＴＴＰボディ部に「Ｐｏｒｔ＝８０００」という記述を行う。Ｓ６１１、Ｓ６１４、及びＳ６１５でＨＴＴＰのＰＯＳＴリクエストが完成すると、Ｓ６１６に進み、中継サーバ通信処理部２６５は、中継サーバ１０３にＨＴＴＰのＰＯＳＴリクエストを送信し、Ｓ６１７でＰＯＳＴレスポンスを受信する。
【００６２】
次に、Ｓ６１８で、中継サーバ通信処理部２６５は、中継サーバ１０３にＨＴＴＰのＧＥＴリクエストを送信し、Ｓ６１９でＧＥＴレスポンスを受信する。受信が完了すると、Ｓ６２０に進み、中継サーバ通信処理部２６５は、ＧＥＴレスポンスのＨＴＴＰボディ部からデータを読み込む。具体的には、中継サーバ通信処理部２６５は、ＨＴＴＰボディ部の「Ｄａｔａ＝」に続く部分を読み込む。Ｓ６２０で読み込んだデータは画像形成装置１０１のＷＥＢサーバが送信してきたデータである。
【００６３】
データの読み込みが完了するとＳ６２１に進み、中継サーバ通信処理部２６５は、読み込んだデータをＳ６０６で作成したソケットにＷｒｉｔｅする。そして、Ｓ６２２で、中継サーバ通信処理部２６５は、Ｓ６０６で作成したソケットを破棄する。中継サーバ通信処理部２６５は、Ｓ６０５のＷＥＢ停止操作が受け付けられるまで、Ｓ６０６乃至Ｓ６２２の処理を繰り返す。
【００６４】
一方、Ｓ６０５でＷＥＢ停止操作が受け付けられるとＳ６２３に進み、中継サーバ通信処理部２６５は、Ｓ６０４で起動したＷＥＢブラウザを停止する。最後に、Ｓ６２４で、中継サーバ通信処理部２６５は、ＷＥＢ停止要求を中継サーバ１０３へ送信し、処理を終了する。具体的には、中継サーバ通信処理部２６５は、「アプリケーション名：ＷＥＢ」及び「コマンド：停止」というデータをＨＴＴＰのボディ部に書き込んで中継サーバ１０３にリクエストをＰＯＳＴする。
【００６５】
＜画像形成装置の処理手順＞
次に、図７を参照して、本実施形態に係る画像形成装置１０１の処理手順について説明する。処理の内容については、上記第１の実施形態の図４の説明と同様であるため、説明は省略する。ただし、Ｓ７０２及びＳ７０３で受け付ける機能がＶＮＣではなく、ＷＥＢとなる部分のみ異なる。
【００６６】
＜中継サーバの処理手順＞
次に、本実施形態に係る中継サーバ１０３の処理手順について説明する。中継サーバ１０３の処理手順は、上記第１の実施形態の図５のフローチャートと同様であるため説明は省略する。
【００６７】
以上説明したように、本実施形態に係る情報処理システムは、上記第１の実施形態の構成に代替して、ＷＥＢ通信のような、複数のポートを切り替えながら使用する通信機能においても、汎用的な方法で通信データの転送を行うことができる。これにより、画像形成装置１０１やオペレータＰＣ１０２の通信処理部において、ＷＥＢ通信が使用する全てのポート番号を予め管理しておく必要がある、という課題を解決することができる。
【００６８】
＜第３の実施形態＞
以下では、本発明の第３の実施形態について説明する。本実施形態では、ＷＥＢサーバが外部の認証サーバにログイン画面をリダイレクトする場合など、ＷＥＢサーバが外部のホストにリダイレクトを行う画面があったとしても、遠隔操作を実施可能な仕組みについて説明する。本実施形態のネットワーク構成、ハードウェア構成、及びソフトウェア構成については上記第１の実施形態と同様であるため説明は省略する。本実施形態のシステム全体の動作の流れも上記第２の実施形態と同様であるため説明を省略する。以下では、画像形成装置１０１、オペレータＰＣ１０２、及び中継サーバ１０３のより詳細な処理を説明する。
【００６９】
＜オペレータＰＣの処理手順＞
まず、図８を参照して、本実施形態に係るオペレータＰＣ１０２の処理手順について説明する。本フローチャートは、例えばＨＤＤ２２４に格納されたプログラムがＲＡＭ２２３に読み出され、ＣＰＵ２２１によって実行されることで実現される。以下で説明する処理は図２Ｂに示すオペレータＰＣ１０２の中継サーバ通信処理部２６５において実施される。処理の内容については、大部分が上記第２の実施形態の図５の説明と同様であるため、重複する処理の説明は省略する。即ち、Ｓ８０１乃至Ｓ８０７の処理についてはＳ６０１乃至Ｓ６０７の処理と同様である。
【００７０】
Ｓ８０７の後、Ｓ８０８に進み、中継サーバ通信処理部２６５は、受信したＷＥＢブラウザのＨＴＴＰリクエストから画像形成装置１０１のＷＥＢサーバへの接続先のホスト名とポート番号とを取得する。具体的には、ＷＥＢブラウザから受信したＨＴＴＰリクエストのヘッダには、「ＧＥＴ  ｈｔｔｐ：／／ｘｘｘ：８０００／ｙｙｙ／ｚｚｚ  ＨＴＴＰ／１．１」というような情報が記載されている。中継サーバ通信処理部２６５は、このヘッダのＵＲＬ部分からホスト名として「ｘｘｘ」、ポート番号として「８０００」という値を読み取って取得する。ＵＲＬにおいてポート番号部分が省略されている場合、ＨＴＴＰであれば８０、ＨＴＴＰＳであれば４４３がデフォルト値となる。
【００７１】
その後のＳ８０９乃至Ｓ８１４の処理についてはＳ６０９乃至Ｓ６１４の処理と同様である。Ｓ８１１又はＳ８１４の処理の後、Ｓ８１５に進み、中継サーバ通信処理部２６５は、中継サーバ１０３に送信するためのＨＴＴＰのＰＯＳＴリクエストのＨＴＴＰボディ部に、Ｓ８０８で取得したホスト名とポート番号とを指定する。具体的には、中継サーバ通信処理部２６５は、ＨＴＴＰボディ部に「Ｈｏｓｔ＝ｘｘｘ」、及び「Ｐｏｒｔ＝８０００」という記述を行う。その後のＳ８１６乃至Ｓ８２４の処理についてはＳ６１６乃至Ｓ６２４の処理と同様である。
【００７２】
＜画像形成装置の処理手順＞
次に、図９を参照して、本実施形態に係る画像形成装置１０１の処理手順について説明する。本フローチャートは、例えばＨＤＤ２０５に格納されたプログラムがＲＡＭ２０４に読み出され、ＣＰＵ２０２によって実行されることで実現される。以下で説明する処理は図２Ｂに示す画像形成装置１０１の中継サーバ通信処理部２５５において実施される。処理の内容については、大部分が上記第２の実施形態の図６の説明と同様であるため、重複する処理の説明は省略する。Ｓ９０１乃至Ｓ９０６の処理については、Ｓ７０１乃至Ｓ７０６と同様である。
【００７３】
Ｓ９０６の後、Ｓ９０７に進み、中継サーバ通信処理部２５５は、ＧＥＴレスポンスのＨＴＴＰボディ部から接続先のホスト名とポート番号とを取得する。具体的には、中継サーバ通信処理部２５５は、ＨＴＴＰボディ部の「Ｈｏｓｔ＝」と「Ｐｏｒｔ＝」に続く部分をそれぞれ読み込む。次のＳ９０８の処理についてはＳ７０８と同様である。Ｓ９０８の後、Ｓ９０９に進み、中継サーバ通信処理部２５５は、接続先ホスト名と接続先ポート番号とにＳ９０７で取得したホスト名とポート番号とを指定して、ソケットをＣｏｎｎｅｃｔし、Ｓ９０８で読み込んだデータをソケットにＷｒｉｔｅする。その後のＳ９１０乃至Ｓ９１４の処理についてはＳ７１０乃至Ｓ７１４の処理と同様である。
【００７４】
＜中継サーバの処理手順＞
次に、図１０を参照して、本実施形態に係る中継サーバ１０３の処理手順について説明する。本フローチャートは、例えばＨＤＤ２４４に格納されたプログラムがＲＡＭ２４３に読み出され、ＣＰＵ２４１によって実行されることで実現される。以下で説明する処理は図２Ｂの中継サーバ１０３の転送処理部２７１において実施される。処理の内容については大部分が上記第１の実施形態の図４の説明と同様であるため、重複する処理の説明は省略する。Ｓ１００１乃至Ｓ１０１１の処理についてはＳ５０１乃至Ｓ５１１と同様である。
【００７５】
Ｓ１０１１の後、Ｓ１０１２に進み、転送処理部２７１は、ＰＯＳＴリクエストのＨＴＴＰボディ部から接続先ホスト名とポート番号とを取得する。具体的には、転送処理部２７１は、ＨＴＴＰボディ部の「Ｈｏｓｔ＝」と「Ｐｏｒｔ＝」に続く部分をそれぞれ読み込む。その後のＳ１０１３乃至Ｓ１０１６の処理についてはＳ５１３乃至Ｓ５１６と同様である。Ｓ１０１６の後、Ｓ１０１７に進み、転送処理部２７１は、要求元のクライアントに送信するためのＨＴＴＰのＧＥＴレスポンスを作成し、ＨＴＴＰボディ部にキューからＰｏｐした接続先のホスト名とポート番号とを指定する。具体的には、転送処理部２７１は、ＨＴＴＰボディ部に「Ｈｏｓｔ＝ＸＸＸ（Ｐｏｐした接続先ホスト名）」及び「Ｐｏｒｔ＝ＸＸＸ（Ｐｏｐした接続先ポート番号）」という記述を行う。その後のＳ１０１８乃至Ｓ１０１９の処理については、Ｓ５１８乃至Ｓ５１９と同様である。
【００７６】
以上説明したように、本実施形態に係る情報処理システムは、上記第２の実施形態の構成において、さらに、ポート番号に加えて、ホスト名をＨＴＴＰリクエストに指定する。これにより、画像形成装置１０１のＷＥＢサーバが外部の認証サーバにログイン画面をリダイレクトする場合など、ＷＥＢサーバが外部のホストにリダイレクトを行う画面があったとしても、遠隔操作が実施できる。
【００７７】
＜その他の実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００７８】
１０１：画像形成装置、１０２：オペレータＰＣ、１０３：中継サーバ、１０４、１０５：ファイアウォール、１０６：ネットワーク
【図１】
2018112895.tif 000003
【図２Ａ】
2018112895.tif 000004
【図２Ｂ】
2018112895.tif 000005
【図３】
2018112895.tif 000006
【図４】
2018112895.tif 000007
【図５】
2018112895.tif 000008
【図６】
2018112895.tif 000009
【図７】
2018112895.tif 000010
【図８】
2018112895.tif 000011
【図９】
2018112895.tif 000012
【図１０】
2018112895.tif 000013