(57)【要約】【課題】ファイアウォールが構築されている場合であってもＭＦＰ２００の動作をアプリケーションサーバ３３０から制御する。【解決手段】ＭＦＰ２００に、ウェブブラウザ部２５１と、第２ウェブサーバ部２５２と、ＭＦＰ２００の動作を制御するための制御コマンドが格納された制御コマンド格納部と、制御コマンドに基づいてＭＦＰ２００の動作を制御する制御アプリケーション部２５３とを備える。ウェブブラウザ部２５１はアプリケーションサーバ３３０から受信したウェブページに含まれているＨＴＴＰリダイレクト命令に基づいて制御コマンド格納部における所定のアドレスにリダイレクトすることで当該ＨＴＴＰリダイレクト命令に対応する制御コマンドを取得し、第２ウェブサーバ部２５２はウェブブラウザ部２５１が取得した制御コマンドに基づいて制御アプリケーション部２５３にＭＦＰ２００の動作を制御させる。【選択図】図３
2011221991.tif 000002
【特許請求の範囲】
【請求項１】
第１ウェブサーバ部を備えたサーバ装置とネットワークを介して通信可能に接続され、かつ上記サーバ装置からのアクセスがファイアウォールによって制限される端末装置であって、
上記サーバ装置からウェブページデータを取得するウェブブラウザと、
当該端末装置の機能を制御する制御アプリケーション部とを備え、
上記ウェブブラウザは、上記サーバ装置から受信したウェブページデータに含まれているＨＴＴＰリダイレクト命令に基づいて当該端末装置内の所定のアドレスにリダイレクトすることで当該ＨＴＴＰリダイレクト命令に対応する制御コマンドを取得し、
上記制御アプリケーション部は、上記ウェブブラウザが取得した上記制御コマンドに基づいて当該端末装置の機能を制御することを特徴とする端末装置。
【請求項２】
上記制御アプリケーション部は、上記制御コマンドに基づいて上記端末装置の動作を制御した結果を示す結果情報を生成し、
上記ウェブブラウザは上記結果情報を上記サーバ装置に送信することを特徴とする請求項１に記載の端末装置。
【請求項３】
上記端末装置は、コピー機能部、プリンタ機能部、スキャナ機能部、ＦＡＸ機能部、および通信機能部のうちの少なくとも１つの機能を有しており、
上記制御アプリケーションは、上記制御コマンドに基づいて少なくとも１つの上記機能を制御することを特徴とする請求項１または２に記載の端末装置。
【請求項４】
上記制御コマンドはＳＯＡＰコール命令であることを特徴とする請求項１から３のいずれか１項に記載の端末装置。
【請求項５】
上記ウェブブラウザはＨＴＴＰプロトコルに基づいて処理を行うことを特徴とする請求項１から４のいずれか１項に記載の端末装置。
【請求項６】
上記ウェブブラウザと上記サーバ装置とのＨＴＴＰ接続が上記ウェブブラウザによって開始されることを特徴とする請求項５に記載の端末装置。
【請求項７】
上記ウェブブラウザは上記サーバ装置から上記ＨＴＴＰリダイレクト命令を含むＨＴＴＰペイロードを有するウェブページデータを受信することを特徴とする請求項５または６に記載の端末装置。
【請求項８】
上記結果情報を上記サーバ装置に送信する処理が、ＨＴＴＰ  ＧＥＴ、およびＨＴＴＰ  ＰＯＳＴのうちの少なくとも一方を用いて行われることを特徴とする請求項２に記載の端末装置。
【請求項９】
請求項１から８のいずれか１項に記載の端末装置とネットワークを介して通信可能に接続されるサーバ装置であって、
第１ウェブサーバ部と、
上記端末装置の機能を制御するためのアプリケーションを実行するアプリケーション処理部とを備え、
上記第１ウェブサーバ部は、上記アプリケーション処理部による上記端末装置の動作の制御内容に応じた制御コマンドが格納されている上記端末装置内のアドレスへのリダイレクトを上記ウェブブラウザに実行させるためのＨＴＴＰリダイレクト命令を含むウェブページデータを生成することを特徴とするサーバ装置。
【請求項１０】
請求項１から８のいずれか１項に記載の端末装置と、請求項９に記載のサーバ装置とがネットワークを介して通信可能に接続されていることを特徴とする通信システム。
【請求項１１】
第１ウェブサーバ部を備えたサーバ装置とネットワークを介して通信可能に接続され、かつ上記サーバ装置からのアクセスがファイアウォールによって制限される端末装置の制御方法であって、
上記端末装置は、
上記サーバ装置からウェブページデータを取得するウェブブラウザと、
当該端末装置の動作を制御する制御アプリケーション部とを備えており、
上記ウェブブラウザが上記サーバ装置からウェブページデータを取得する工程と、
上記ウェブブラウザが、上記サーバ装置から取得した上記ウェブページデータに含まれているＨＴＴＰリダイレクト命令に基づいて上記端末装置内の所定のアドレスにリダイレクトすることで当該ＨＴＴＰリダイレクト命令に対応する制御コマンドを取得する工程と、
上記制御アプリケーション部が、上記ウェブブラウザが取得した上記制御コマンドに基づいて当該端末装置の機能を制御する工程とを含むことを特徴とする端末装置の制御方法。
【請求項１２】
請求項１から８のいずれか１項に記載の端末装置を動作させるプログラムであって、コンピュータを上記ウェブブラウザ、および上記制御アプリケーション部として機能させるためのプログラム。
【請求項１３】
請求項９に記載のサーバ装置を動作させるプログラムであって、コンピュータを上記第１ウェブサーバ部、および上記アプリケーション処理部として機能させるためのプログラム。
【請求項１４】
請求項１２または１３に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイアウォール（ネットワークファイアウォール）の内側に配置された端末装置の機能をファイアウォールの外側に配置されたサーバ装置から制御するための端末装置、サーバ装置、通信システム、端末装置の制御方法、プログラムおよびその記録媒体に関するものである。
【背景技術】
【０００２】
図１（ａ）は、コンピュータネットワークにおける端末装置（端末ノード）１１０とアプリケーションサーバ１２０との間の双方向通信を示す説明図である。端末装置１１０は、アプリケーションサーバ１２０において実行されるアプリケーション（例えば画像処理機能および／または他のサービス機能など）を呼び出して利用することができる。
【０００３】
典型的な端末装置１１０では、内蔵しているウェブブラウザをアプリケーションサーバ１２０のアプリケーションに接続してユーザインターフェース（ＵＩ）チャンネル１３０を確立することにより、アプリケーションの実行を開始する。端末装置１１０のユーザ１３１は、ＵＩチャンネル１３０を介してアプリケーションサーバ１２０のアプリケーション（遠隔アプリケーション）との対話を行う。ユーザ１３１によって画像処理機能が要求された場合、上記アプリケーションは、端末装置１１０に対するプロトコルメソッドコール（protocol method call）を開始する。上記アプリケーションによって開始される上記プロトコルメソッドコールは、コマンドチャンネル１４０と呼ばれる。これにより、アプリケーションサーバ１２０のアプリケーションは、コマンドチャンネル１４０を介して端末装置１１０を制御する。
【０００４】
端末装置１１０とアプリケーションサーバ１２０とが互いに直接接続可能である場合には、ＵＩチャンネル１３０およびコマンドチャンネル１４０を実現可能である。
【０００５】
図１（ｂ）は、端末装置１１０とアプリケーションサーバ１２０との間の双方向通信を行えない場合を示す説明図である。この図に示す例では、ネットワークアクセスが非対称、すなわち一方の装置から他方の装置への接続しかできない状態になっており、双方向通信を行えない状態になっている。
【０００６】
端末装置１１０は、ファイアウォール１５０によって保護されたネットワーク環境内に配置されている。ファイアウォールの内部からファイアウォールの外部へのネットワーク接続の開始は許容されるので、ＵＩチャンネル１３０を適切に機能させ、端末装置１１０からアプリケーションサーバ１２０に接続することは可能である。しかしながら、アプリケーションサーバ１２０において動作するアプリケーションから端末装置１１０への接続はファイアウォールによってブロックされるので、コマンドチャンネル１４０を用いて上記アプリケーションと端末装置１１０とを接続することはできない。
【０００７】
アプリケーションサーバ１２０による端末装置１１０へのアクセスは、上記アプリケーションと端末装置１１０を有するネットワークとの間の仮想プライベートネットワーク（ＶＰＮ；virtual private network）接続によって実現可能である。仮想プライベートネットワークを実装することにより、アプリケーションサーバ１２０のアプリケーションと端末装置１１０との間の仮想直接接続（トンネル）を開き、アプリケーションサーバ１２０のアプリケーションと端末装置１１０との間の双方向通信のためのＵＩチャンネル１３０およびコマンドチャンネル１４０を確立することができる。
【０００８】
なお、特許文献１には、複数のサービス手段によって提供されるサービスを、ファイアウォール内における利用環境を維持したまま、ファイアウォールの外側からでも利用できるようにするために、ＳＯＡＰリクエストをＨＴＴＰリクエストに含めた状態で受信し、そのＳＯＡＰリクエストに対する応答であるＳＯＡＰレスポンスをＨＴＴＰレスポンスに含めて送信するサービス提供部を複数備えたサーバ装置に、外部装置と上記複数のサービス提供部との間の通信を仲介する仲介機能部の機能を付加することにより、外部装置とサーバ装置との間で、上記複数のサービス提供部の動作に係るＳＯＡＰリクエスト及びＳＯＡＰレスポンスを複数一括して送受信できるようにする技術が開示されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００５−３２２２２２号公報（平成１７年１１月１７日公開）
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、仮想プライベートネットワークは、一般に、追加の構成部材、および既存のネットワークに対するネットワーク構成の変更が必要なので、装置構成の複雑化を招くという問題がある。また、上記特許文献１の技術においても、外部装置と上記複数のサービス提供部との間の通信を仲介する仲介機能部を付加する必要があるので、装置構成の複雑化を招いてしまう。
【００１１】
また、仮想プライベートネットワークを不注意に与えると、仮想プライベートネットワークを与えない場合にはアクセスが制限されていたファイアウォールの外部に設けられている装置のアクセス制限を外すことになるので、ファイアウォール内に配置されている他の装置のセキュリティーを危険にさらしてしまうという問題がある。
【００１２】
本発明は、上記の問題点に鑑みてなされたものであり、その目的は、サーバ装置と端末装置との間にファイアウォールが構築されている場合であっても端末装置の機能をサーバ装置から制御可能にすることにある。
【課題を解決するための手段】
【００１３】
本発明の端末装置は、上記の課題を解決するために、第１ウェブサーバ部を備えたサーバ装置とネットワークを介して通信可能に接続され、かつ上記サーバ装置からのアクセスがファイアウォールによって制限される端末装置であって、上記サーバ装置からウェブページデータを取得するウェブブラウザと、当該端末装置の機能を制御する制御アプリケーション部とを備え、上記ウェブブラウザは、上記サーバ装置から受信したウェブページデータに含まれているＨＴＴＰリダイレクト命令に基づいて当該端末装置内の所定のアドレスにリダイレクトすることで当該ＨＴＴＰリダイレクト命令に対応する制御コマンドを取得し、上記制御アプリケーション部は、上記ウェブブラウザが取得した上記制御コマンドに基づいてに当該端末装置の機能を制御することを特徴としている。
【００１４】
上記の構成によれば、ウェブブラウザがサーバ装置から受信したウェブページデータに含まれているＨＴＴＰリダイレクト命令に基づいて当該端末装置内の所定のアドレスにアクセスすることで当該ＨＴＴＰリダイレクト命令に対応する制御コマンドを取得し、上記制御アプリケーションはウェブブラウザが取得した上記制御コマンドに基づいて当該端末装置の機能を制御する。なお、ウェブページデータはサーバ装置と端末装置との間にファイアウォールが構築されている場合であってもサーバ装置から端末装置に送信することができる。また、ウェブブラウザは端末装置に備えられているので、ウェブブラウザと上記所定のアドレスとの間にはファイアウォールは構築されていない。したがって、サーバ装置と端末装置との間にファイアウォールが構築されている場合であっても、サーバ装置から送信されるウェブページデータに含まれるＨＴＴＰリダイレクト命令に基づいて制御コマンドを特定することができるので、サーバ装置から端末装置の機能を制御することができる。
【００１５】
また、ＨＴＴＰリダイレクトの機能は、従来から利用されているウェブブラウザおよびウェブサーバが認識可能なものであるため、端末装置に備えられるウェブブラウザ、およびサーバ装置に備えられる第１ウェブサーバ部を動作させるソフトウェアとして、従来から利用されているウェブサーバおよびウェブブラウザを用いることができる。
【００１６】
また、上記制御アプリケーション部は、上記制御コマンドに基づいて上記端末装置の動作を制御した結果を示す結果情報を生成し、上記ウェブブラウザは上記結果情報を上記サーバ装置に送信する構成としてもよい。
【００１７】
上記の構成によれば、端末装置の動作結果をサーバ装置に通知することができ、サーバ装置が上記動作結果に応じて端末装置に対する次の制御を行うことができる。
【００１８】
また、上記端末装置は、コピー機能部、プリンタ機能部、スキャナ機能部、ＦＡＸ機能部、および通信機能部のうちの少なくとも１つの機能を有しており、上記制御アプリケーションは、上記制御コマンドに基づいて少なくとも１つの上記機能を制御する構成としてもよい。
【００１９】
上記の構成によれば、端末装置に備えられる各機能をサーバ装置によって制御することができる。したがって、これら各機能を制御するためのアプリケーション等の更新等を行う場合に、サーバ装置において更新作業を行うだけでよく、端末装置において更新作業を行う必要がない。
【００２０】
また、上記制御コマンドはＳＯＡＰコール命令であってもよい。また、上記ウェブブラウザはＨＴＴＰプロトコルに基づいて処理を行うものであってもよい。また、上記ウェブブラウザと上記サーバ装置とのＨＴＴＰ接続が上記ウェブブラウザによって開始される構成であってもよい。また、上記ウェブブラウザは上記サーバ装置から上記ＨＴＴＰリダイレクト命令を含むＨＴＴＰペイロードを有するウェブページデータを受信する構成であってもよい。また、上記結果情報を上記サーバ装置に送信する処理が、ＨＴＴＰ  ＧＥＴ、およびＨＴＴＰ  ＰＯＳＴのうちの少なくとも一方を用いて行われる構成であってもよい。
【００２１】
本発明のサーバ装置は、上記したいずれかの端末装置とネットワークを介して通信可能に接続されるサーバ装置であって、第１ウェブサーバ部と、上記端末装置の機能を制御するためのアプリケーションを実行するアプリケーション処理部とを備え、上記第１ウェブサーバ部は、上記アプリケーション処理部による上記端末装置の動作の制御内容に応じた制御コマンドが格納されている上記端末装置内のアドレスへのリダイレクトを上記ウェブブラウザに実行させるためのＨＴＴＰリダイレクト命令を含むウェブページデータを生成することを特徴としている。
【００２２】
また、本発明の通信システムは、上記したいずれかの端末装置と上記サーバ装置とがネットワークを介して通信可能に接続されていることを特徴としている。
【００２３】
上記のサーバ装置および通信システムによれば、サーバ装置から端末装置に送信するウェブページデータにＨＴＴＰリダイレクト命令を含めることにより、端末装置のウェブブラウザに、上記アプリケーション処理部による当該端末装置の機能の制御内容に応じた制御コマンドが格納されている当該端末装置内のアドレスへのリダイレクトを行わせることができる。これにより、アプリケーション処理部による上記端末装置の機能の制御内容に応じた制御コマンドに基づいて端末装置の機能を制御させることができる。したがって、端末装置の機能をサーバ装置から制御することができる。また、ＨＴＴＰリダイレクトの機能は、従来から利用されているウェブブラウザおよびウェブサーバが認識可能なものであるため、端末装置に備えられるウェブブラウザ、およびサーバ装置に備えられる第１ウェブサーバ部を動作させるソフトウェアとして、従来から利用されているウェブサーバおよびウェブブラウザを用いることができる。
【００２４】
本発明の端末装置の制御方法は、第１ウェブサーバ部を備えたサーバ装置とネットワークを介して通信可能に接続され、かつ上記サーバ装置からのアクセスがファイアウォールによって制限される端末装置の制御方法であって、上記端末装置は、上記サーバ装置からウェブページデータを取得するウェブブラウザと、当該端末装置の動作を制御する制御アプリケーション部とを備えており、上記ウェブブラウザが上記サーバ装置からウェブページデータを取得する工程と、上記ウェブブラウザが、上記サーバ装置から取得した上記ウェブページデータに含まれているＨＴＴＰリダイレクト命令に基づいて上記端末装置内の所定のアドレスにリダイレクトすることで当該ＨＴＴＰリダイレクト命令に対応する制御コマンドを取得する工程と、上記制御アプリケーション部が、上記ウェブブラウザが取得した上記制御コマンドに基づいて当該端末装置の機能を制御する工程とを含むことを特徴としている。
【００２５】
上記の方法によれば、ウェブブラウザがサーバ装置から受信したウェブページデータに含まれているＨＴＴＰリダイレクト命令に基づいて上記端末装置内の所定のアドレスにアクセスすることで当該ＨＴＴＰリダイレクト命令に対応する制御コマンドを取得し、上記制御アプリケーションはウェブブラウザが取得した上記制御コマンドに基づいて当該端末装置の機能を制御する。これにより、サーバ装置と端末装置との間にファイアウォールが構築されている場合であっても、サーバ装置から送信されるウェブページデータに含まれるＨＴＴＰリダイレクト命令に基づいて制御コマンドを特定することができるので、サーバ装置から端末装置の機能を制御することができる。また、ＨＴＴＰリダイレクトの機能は、従来から利用されているウェブブラウザおよびウェブサーバが認識可能なものであるため、端末装置に備えられるウェブブラウザ、およびサーバ装置に備えられる第１ウェブサーバ部を動作させるソフトウェアとして、従来から利用されているウェブサーバおよびウェブブラウザを用いることができる。
【００２６】
なお、上記端末装置は、コンピュータによって実現してもよく、この場合には、コンピュータを上記ウェブブラウザ、および上記制御アプリケーション部として機能させることにより、上記端末装置をコンピュータにて実現させるプログラム、およびそれを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に含まれる。
【００２７】
同様に、上記サーバ装置は、コンピュータによって実現してもよく、この場合には、コンピュータを上記第１ウェブサーバ部、および上記アプリケーション処理部として機能させることにより、上記サーバ装置をコンピュータにて実現させるプログラム、およびそれを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に含まれる。
【発明の効果】
【００２８】
以上のように、本発明の端末装置は、上記ウェブブラウザは、上記サーバ装置から受信したウェブページデータに含まれているＨＴＴＰリダイレクト命令に基づいて当該端末装置内の所定のアドレスにリダイレクトすることで当該ＨＴＴＰリダイレクト命令に対応する制御コマンドを取得し、上記制御アプリケーション部は、上記ウェブブラウザが取得した上記制御コマンドに基づいて当該端末装置の機能を制御する。
【００２９】
また、本発明の端末装置の制御方法は、上記ウェブブラウザが、上記サーバ装置から取得した上記ウェブページデータに含まれているＨＴＴＰリダイレクト命令に基づいて上記端末装置内の所定のアドレスにリダイレクトすることで当該ＨＴＴＰリダイレクト命令に対応する制御コマンドを取得する工程と、上記制御アプリケーション部が、上記ウェブブラウザが取得した上記制御コマンドに基づいて当該端末装置の機能を制御する工程とを含む。
【００３０】
それゆえ、本発明の端末装置および端末装置の制御方法によれば、サーバ装置と端末装置との間にファイアウォールが構築されている場合であっても、サーバ装置から端末装置の機能を制御することができる。
【図面の簡単な説明】
【００３１】
【図１】（ａ）および（ｂ）は端末装置とアプリケーションサーバとがネットワークを介して接続された従来の構成を示す説明図であり、（ａ）は端末装置とアプリケーションサーバとの間にファイアウォールが存在しない場合、（ｂ）は端末装置とアプリケーションサーバとの間にファイアウォールが存在する場合を示している。
【図２】本発明の一実施形態にかかるＭＦＰ（多機能周辺装置）の構成を示すブロック図である。
【図３】本発明の一実施形態にかかる通信システムにおける、ＨＴＴＰベースのリダイレクト処理によって双方向通信が確立されている状態を示すブロック図である。
【図４】本発明の一実施形態にかかるＭＦＰにおける処理の流れを示すフローチャートである。
【図５】本発明の一実施形態にかかる通信システムにおける、ＨＴＴＰリダイレクト処理によって双方向通信が確立されている状態を示すブロック図である。
【図６】本発明の一実施形態にかかる演算装置の機能ブロック図である。
【図７】本発明の一実施形態にかかる通信システムの構成を示すブロック図である。
【図８】本発明の一実施形態にかかる通信システムで用いられるスクリプトファイルの一例を示す説明図である。
【図９】本発明の一実施形態にかかる通信システムにおける、ＨＴＴＰベースのリダイレクト処理によって双方向通信が確立されている状態を示すブロック図である。
【図１０】本発明の一実施形態にかかる通信システムにおける、ＨＴＴＰリダイレクト処理によって双方向通信が確立されている状態を示すブロック図である。
【発明を実施するための形態】
【００３２】
本発明の一実施形態について説明する。
【００３３】
（１−１．ＭＦＰ２００の構成）
図２は、本実施形態にかかるＭＦＰ（multifunction peripheral；複合機、多機能周辺装置）２００の概略構成を示すブロック図である。この図に示すように、ＭＦＰ２００は、インターフェースポート２０２、インターフェース制御部２０４、データバス２０６、制御部（処理モジュール）２０８、ＲＯＭ（read-only memory）２１０、ＲＡＭ（random access memory）２１２、大容量記憶部２１４、画像ログ記憶部２１６、ユーザインターフェース２１８、スキャン制御部２２０、ＦＡＸ（facsimile）制御部２２２、コピー制御部２２４、プリント制御部２２６、通信制御部２２８、スキャナ２３０、プリンタ２４０、出力方向センサー２４２、および通信部２４４を備えている。
【００３４】
インターフェースポート２０２には、プリンタケーブル、ＵＳＢデバイス、ネットワークリンク、あるいは外部無線モジュールなどが接続される。
【００３５】
インターフェース制御部２０４は、インターフェースポート２０２とデータバス２０６との間に設けられており、データバス２０６を介して接続されているＭＦＰ２００の１または複数の装置（制御部２０８、スキャン制御部２２０、ＦＡＸ制御部２２２、コピー制御部２２４、プリント制御部２２６など）とインターフェースポート２０２との間を直接通信可能にするとともに、これら各装置の状態を示す信号の送受信を制御する。
【００３６】
制御部２０８は、命令を実行するプロセッサおよび／または演算回路からなり、ＲＯＭ２１０からのデータの取り出し、ＲＡＭ２１２とのデータ交換、ＲＡＭ２１２の記憶容量を超えるデータの大容量記憶部２１４への保存などを行う。なお、インターフェース制御部２０４、スキャン制御部２２０、ＦＡＸ制御部２２２、コピー制御部２２４、プリント制御部２２６、および通信制御部２２８のうちの一部または全部の機能を制御部２０８が行う構成としてもよい。
【００３７】
ユーザインターフェース２１８は、ユーザからの指示を受け付ける指示入力部、およびユーザに各種情報を提示するための表示部を備えている（いずれも図示せず）。なお、上記指示入力部は、ユーザからの指示入力に応じた出力データをＵＳＢキーボード形式で制御部２０８に出力するキーボード、タッチパネル、あるいはキー操作部等であってもよい。
【００３８】
画像ログ記憶部２１６は、ＭＦＰ２００において取り扱った画像のログ情報を記憶する。画像ログ記憶部２１６は、個別の記憶部であってもよく、分散して備えられる構成、例えば、制御部２０８が、パラメータ、ファイル、索引、あるいはこれらの組み合わせなどをＲＯＭ２１０、ＲＡＭ２１２、大容量記憶部２１４、あるいはこれらの組み合わせに分散して記憶させる構成であってもよい。
【００３９】
ウェブブラウザプログラム２５０は、ＲＯＭ２１０、ＭＦＰ２００に付加されるオプション装置（図示せず）、および他の演算装置（典型的には後述する図６に示す演算装置）のいずれか、またはこれら各装置に分散して記憶されている。なお、ウェブブラウザプログラム２５０を大容量記憶部２１４に記憶させておき、ＲＡＭ２１２にロードするようにしてもよい。制御部２０８は、ウェブブラウザプログラム２５０を実行し、ユーザインターフェース２１８の表示部に各種情報を表示させる。
【００４０】
スキャン制御部２２０、ＦＡＸ制御部２２２、コピー制御部２２４は、スキャナ２３０との直接通信、および／または、例えばデータバス２０６を介したスキャナ２３０と１または複数の装置との間の信号の送受信を制御する。これら各制御部は、それぞれ個別に設けられていてもよく、一体的に設けられていてもよい。
【００４１】
ＦＡＸ制御部２２２、コピー制御部２２４、およびプリント制御部２２６は、プリンタ２４０との直接通信、および／または、例えばデータバス２０６を介したプリンタ２４０と１または複数の装置との間の信号の送受信を制御する。これら各制御部は、それぞれ個別に設けられていてもよく、一体的に設けられていてもよい。
【００４２】
通信制御部２２８は、通信部２４４の動作を制御する。通信部２４４は、ネットワークを介して通信可能に接続された他の装置との間で通信を行う。なお、上記ネットワークとしては、例えば、インターネット、電話線、シリアルケーブル、または、他の有線回線もしくは無線回線などの通信回線を利用できる。例えば、通信部２４４は、アプリケーションサーバ３３０との間でＨＴＴＰを用いた通信を行う。また、通信部２４４は、アクセス先として自装置内のＩＰアドレスが示されている場合、ＭＦＰ２００内部に備えられている後述する第２ウェブサーバ部２５２にアクセスすることもできるようになっている。
【００４３】
また、ＭＦＰ２００は、ＲＯＭ２１０、ＲＡＭ２１２、大容量記憶部２１４、あるいはこれらの組み合わせに、キャリブレーションテーブルを記憶している。制御部２０８、あるいは制御部２０８に接続される外部装置（例えばＵＳＢポートを介して接続される１または複数のキーボード装置）は、プリント制御部２２６および／またはインターフェースポート２０２を介してこのキャリブレーションテーブルにアクセスすることができる。
【００４４】
なお、ユーザインターフェース２１８に対するユーザからの指示入力や、プリンタ２４０の出力方向センサー２４２の検出結果などを通知する通知手段を備えていてもよく、インターフェースポート２０２を介してＭＦＰ２００に接続される外部装置に送信する送信手段を備えていてもよい。
【００４５】
（１−２．通信システム１の構成）
図７は本実施形態にかかる通信システム１の概略構成を示す説明図である。この図に示すように、通信システム１は、ＭＦＰ２００とアプリケーションサーバ（サーバ装置）３３０とがネットワークを介して通信可能に接続されている。また、ＭＦＰ２００とアプリケーションサーバ３３０との間にはファイアウォール３４０が設けられており、ＭＦＰ２００はファイアウォールによって保護されたネットワーク環境内に配置されている。なお、上記ネットワークとしては、インターネット、電話線、シリアルケーブル、または、他の有線回線もしくは無線回線などの通信回線が利用できる。また、ＭＦＰ２００とアプリケーションサーバ３３０とは、ウェブサーバとウェブブラウザとの間の通信（例えば、ウェブページの要求および送信）に用いられるプロトコルであるＨＴＴＰ（Hypertext Transfer Protocol:ハイパーテキスト転送プロトコル）を用いて通信を行うようになっている。
【００４６】
ＭＦＰ２００は、ＨＴＭＬ形式の制御情報を、ＨＴＴＰを用いてアプリケーションサーバ３３０から受け取る。そして、ＭＦＰ２００は、受け取った制御情報に基づいて、ＭＦＰ２００の各種機能（例えば、スキャン機能、ＦＡＸ機能、コピー機能、プリンタ機能、通信機能など）を実行する。例えば、ＭＦＰ２００は、アプリケーションサーバ３３０から操作画面（ウェブページ）を示すＨＴＭＬ（Hypertext Markup Language）データを受け取り、当該ＨＴＭＬデータで示される操作画面をユーザインターフェース２１８の表示部２１８ｂに表示させる。そして、ＭＦＰ２００は、ユーザからユーザインターフェース２１８の入力部２１８ａを介して入力された操作画面に対する指示に応じてＭＦＰ２００の各種機能を実行する。また、ＭＦＰ２００は、アプリケーションサーバ３３０から受信した制御情報にＨＴＴＰリダイレクト命令が含まれている場合には、当該ＨＴＴＰリダイレクト命令に応じてＨＦＰ２００内の第２ウェブサーバ部２５２にアクセスして当該ＨＴＴＰリダイレクト命令に応じた制御コマンドを取得し、取得した制御コマンドに応じてＭＦＰ２００の各部の動作を制御する。例えば、ＭＦＰ２００は、Ｊａｖａ（登録商標）スクリプトで記載されている制御コマンド（ローカル命令）を実行することにより、ＭＦＰ２００の各種機能を実行する。
【００４７】
アプリケーションサーバ３３０は、制御部３５１および通信部３５４を備えている。
【００４８】
通信部３５４は、ＬＡＮやインターネット回線等を介してＨＴＴＰの通信プロトコルを用いてＭＦＰ２００との通信を行う。
【００４９】
制御部３５１は、ＣＰＵや専用プロセッサなどの演算処理部、および、ＲＡＭ、ＲＯＭ、ＨＤＤなどの記憶部などにより構成されるコンピュータ装置であり、アプリケーションサーバ３３０の各部の動作を制御する。また、制御部３５１は、第１ウェブサーバ部３５２およびアプリケーション部３５３の処理を行う。
【００５０】
第１ウェブサーバ部３５２は、ウェブサーバのソフトウェアに従って動作し、ウェブブラウザに対して当該ウェブブラウザから指定された各種情報（例えばＨＴＭＬやオブジェクト（画像等））を提供する。ここで、ウェブサーバとは、インターネット上の情報システムであるＷＷＷ（World Wide Web）を構成するサーバ装置の機能を提供するソフトウェアであり、当該ウェブサーバが動作する装置内に存在する各種情報のうち、ウェブブラウザから指定された情報を当該ウェブブラウザに提供する。第１ウェブサーバ部３５２は、通信部３５４を介してＭＦＰ２００からの要求（ＨＴＴＰリクエスト）を受信し、当該要求に応じたファイルや画像データ、印刷データ、制御情報などを、通信部３５４を介してＭＦＰ２００に応答する。
【００５１】
アプリケーション部３５３は、第１ウェブサーバ部３５２からの指示に応じて、所定のウェブアプリケーションに従った動作を行う。すなわち、アプリケーション部３５３は、ウェブサーバ上で動作する各種のウェブアプリケーションに従った動作を行う。このウェブアプリケーションは、例えば、Ｊａｖａ（登録商標）スクリプトで記載されたカスタムアプリケーションであり、ウェブサーバ上に設けられたＪａｖａ（登録商標）スクリプト実行環境で動作するアプリケーションである。
【００５２】
例えば、アプリケーション部３５３は、ＭＦＰ２００からの要求（ＨＴＴＰリクエスト）が操作画面（ウェブページ）の送信要求である場合、操作画面送信アプリケーションに従った動作を行う。具体的には、アプリケーション部３５３は、当該送信要求で示される操作画面のＨＴＭＬデータを記憶部から読み出し、第１ウェブサーバ部３５２に送る。また、アプリケーション部３５３は、ＭＦＰ２００からの要求が印刷データの送信要求である場合、印刷アプリケーションに従った動作を行う。具体的には、アプリケーション部３５３は、当該送信要求で示されるフォルダ名のフォルダから指定されたファイル名の印刷データを取得し、その印刷データを第１ウェブサーバ部３５２に送る。また、アプリケーション部３５３は、ＭＦＰ２００からの要求がユーザの認証要求である場合、認証アプリケーションに従った動作を行う。具体的には、アプリケーション部３５３は、当該認証要求で示されるユーザ名やパスワード等を用いて認証処理を行い、その認証結果に応じた操作画面を示すＨＴＭＬデータを生成し、第１ウェブサーバ部３５２に送る。
【００５３】
また、本実施形態では、アプリケーション部３５３は、ＭＦＰ２００の機能（例えば、スキャナ機能、ＦＡＸ機能、コピー機能、プリント機能、通信機能など）を制御する場合、ウェブブラウザ部２５１のアクセス先をＭＦＰ２００内部の第２ウェブサーバ部２５２に変更させるためのＨＴＴＰリダイレクト命令を含むウェブページを生成し、ＨＴＴＰレスポンスとしてＭＦＰ２００のウェブブラウザ部２５１に送信する。これにより、ＭＦＰ２００は、アプリケーション部３５３を有するアプリケーションサーバ３３０からの制御コマンドではなく、内部の制御アプリケーション部２５３からの制御コマンドに従って各種機能を制御することができる。すなわち、第２ウェブサーバ部２５２は制御アプリケーション部２５３によってＭＦＰ２００の各機能を制御するための制御コマンドを記憶している。また、アプリケーションサーバ３３０のアプリケーション部３５３は、ＭＦＰ２００の各機能を制御する際、第２ウェブサーバ部２５２における当該機能の制御に用いる制御コマンドのアドレスにＨＴＴＰリダイレクトさせるためのＨＴＴＰリダイレクト命令を含むウェブページを生成してＭＦＰ２００のウェブブラウザ部２５１に送信する。そして、ＭＦＰ２００のウェブブラウザ部２５１はアプリケーションサーバ３３０から取得したＨＴＴＰレスポンスに含まれるＨＴＴＰリダイレクト命令に基づいて第２ウェブサーバ２４２の所定のアドレスにアクセス（ＨＴＴＰリダイレクト）することでアプリケーションサーバ３３０のアプリケーション部３５３の指示に応じた制御コマンドを取得し、取得した制御コマンドに基づいてＭＦＰ２００の各種機能を制御する。この結果、ＭＦＰ２００とアプリケーションサーバ３３０との間において、制御コマンドの通信を遮断するファイアウォールが存在していたとしても、ＭＦＰ２００は、アプリケーションサーバ３３０からの指示に応じてＭＦＰ２００の各種機能を制御することができる。
【００５４】
このように、アプリケーション部３５３は、ＭＦＰ２００内部の第２ウェブサーバ部２５２にアクセスさせるために、ＨＴＴＰリダイレクトを用いてＵＲＬを変更させる指示を含む応答（ＨＴＴＰレスポンス）をＭＦＰ２００に送信する。ＨＴＴＰリダイレクトとは、ＨＴＴＰにおけるウェブサーバからの応答の種類の一つであり、ＵＲＬが変更されたことを知らせる機能である。ＨＴＴＰリダイレクトは、汎用されているウェブブラウザで使用されている公知の機能である。
【００５５】
次に、ＭＦＰ２００の構成について説明する。図７に示されるように、ＭＦＰ２００の制御部２０８は、ウェブブラウザ部２５１、第２ウェブサーバ部２５２、および制御アプリケーション部２５３の機能を実行する。
【００５６】
ウェブブラウザ部２５１は、汎用されているウェブブラウザのソフトウェアに従った動作を行う。ウェブブラウザ部２５１は、通信部２４４を介して、アプリケーションサーバ３３０が有する第１ウェブサーバ部３５２だけでなく、ＭＦＰ２００内部の第２ウェブサーバ部２５２とも通信を行うことができる。
【００５７】
例えば、ウェブブラウザ部２５１は、アプリケーションサーバ３３０に対して操作画面のデータやあるいは印刷データ等の送信を要求する場合には、通信部２４４を介してアプリケーションサーバ３３０の第１ウェブサーバ部３５２と通信する。また、ＭＦＰ２００の各種機能を制御するための制御コマンドを実行する場合には、ＭＦＰ２００内部の第２ウェブサーバ部２５２と通信するように設定されている。制御コマンドを実行する場合の処理については後述する。
【００５８】
第２ウェブサーバ部２５２は、汎用されているウェブサーバのソフトウェアに従った動作を行うものである。第２ウェブサーバ部２５２は、ウェブブラウザ部２５１からの要求（ＨＴＴＰリクエスト）を受信し、当該要求に応じたアプリケーションを実行させ、ウェブブラウザ部２５１に対して応答（ＨＴＴＰレスポンス）を行う。
【００５９】
制御アプリケーション部２５３は、ＡＰＩ（アプリケーションプログラムインターフェース；Device function API）としての機能を有しており、ウェブサーバ上で動作するウェブアプリケーションに従った処理を実行するものである。このウェブアプリケーションは、例えば、Ｊａｖａ（登録商標）スクリプトで記載されたカスタムアプリケーションであり、ウェブサーバ上に設けられたＪａｖａ（登録商標）スクリプト実行環境で動作するアプリケーションである。
【００６０】
制御アプリケーション部２５３は、ＭＦＰ２００の各種機能（例えば、スキャナ機能、ＦＡＸ機能、コピー機能、プリント機能、通信機能など）を制御する場合、当該機能を制御するための制御コマンドを当該機能の制御を行う機能制御部（スキャン制御部、ＦＡＸ制御部、コピー制御部、プリント制御部、通信制御部、あるいはこれらの組み合わせ）に送る。なお、制御アプリケーション部２５３が、制御コマンドに従って、ウェブブラウザ部２５１を制御することで、ＭＦＰ２００に固有の固有情報を第１ウェブサーバ部３５２に送信するように通信制御してもよい。これにより、ＭＦＰ２００の機能を制御することができる。
【００６１】
なお、上記機能制御部は、予めＭＦＰ２００内に記憶している当該ＭＦＰ２００に固有の操作画面を表示部２１８ｂに表示させ、当該操作画面に対するユーザからの指示を入力部２１８ａから受け取り、当該指示に従って上記各種機能の制御を行う固有操作モードと、アプリケーションサーバ３３０から受け取った操作画面を表示部２１８ｂに表示させ、当該操作画面に対するユーザからの指示を入力部２１８ａから受け取り、当該指示に基づいて制御アプリケーション部２５３から受けた制御指示に従って上記各種機能の制御を行う連携操作モードとを有している。
【００６２】
連携操作モードの実行指示が入力された場合、制御部２０８は、ウェブブラウザ部２５１を起動させ、予め設定されたＵＲＬ（本実施形態では、アプリケーションサーバ３３０の第１ウェブサーバ部３５２のＵＲＬ）に対して初期操作画面の送信を要求する。そして、連携操作モードでは、機能制御部は、制御アプリケーション部２５３から制御コマンドを受け付け、当該制御コマンドに従った制御を行う。
【００６３】
また、制御アプリケーション部２５３は、ＭＦＰ２００の機種によらず共通の制御コマンドを受け付けた場合に、この共通の制御コマンドをＭＦＰ２００の機種に固有の制御コマンド（上記各機能制御部が認識可能な制御コマンド）に変換する機能を有している。これにより、制御アプリケーション部２５３を動作させるためのアプリケーションサーバ３３０で動作するウェブアプリケーションとして、複数種類のＭＦＰ２００においてＭＦＰ２００の機種によらず共通のものを用いることができる。したがって、新たなウェブアプリケーションに従って制御アプリケーション部２５３を動作させる場合、各ＭＦＰ２００に対して共通のウェブアプリケーションをアプリケーションサーバ３３０にインストールするだけでよく、ＭＦＰ２００ごとにウェブアプリケーションの変更を行う必要がなくなる。したがって、制御アプリケーション部２５３を動作させるためのウェブアプリケーションの開発を容易に行うことができる。
【００６４】
（１−３．連携操作モードの動作）
次に、ＭＦＰ２００とアプリケーションサーバ３３０とが連携して処理を実行する連携操作モードの処理の流れについて、図３および図４を参照しながら説明する。図３は連携操作モードにおけるデータの送受信の概要を示す説明図であり、図４は連携操作モードの処理の流れを示すフローチャートである。
【００６５】
まず、入力部２１８ａに連携操作モードの起動指示が入力されると、ウェブブラウザ部２５１は、通信部２４４を介してアプリケーションサーバ３３０の第１ウェブサーバ部３５２に操作画面（ウェブページ）の送信要求（ＨＴＴＰＧｅｔコマンド（ＨＴＴＰリクエスト３１０））を送信する（Ｓ１）。なお、図３に示したように、ＨＴＴＰＧｅｔコマンドの送信はＵＩ−チャンネル３２０を用いて行われる。
【００６６】
アプリケーションサーバ３３０の第１ウェブサーバ部３５２は、通信部３５４が操作画面の送信要求を受信すると、当該送信要求に応じた操作画面に対応するＨＴＭＬデータ（ＨＴＴＰレスポンス３３１）をＭＦＰ２００に返信する。そして、ＭＦＰ２００のウェブブラウザ部２５１は、アプリケーションサーバ３３０から返信されたＨＴＭＬデータを、通信部２４４を介して受信し、当該ＨＴＭＬデータに応じた操作画面（ウェブページ３３２）を表示部２１８ｂに表示させる（Ｓ２）。
【００６７】
次に、ウェブブラウザ部２５１は、入力部２１８ａを介して入力される、表示部２１８ｂに表示させた操作画面に対するユーザからの指示入力を受け付ける（Ｓ３）。
【００６８】
その後、ウェブブラウザ部２５１は、ユーザからの指示入力がＭＦＰ機能（ＭＦＰ２００においてアプリケーションサーバ３３０のアプリケーションに応じて実行される機能。例えば、スキャン機能、ＦＡＸ機能、コピー機能、プリント機能、あるいは通信機能。）の実行を要求するものであるか否かを判断する（Ｓ４）。
【００６９】
そして、ユーザからの指示入力がＭＦＰ機能の実行を要求するものではないと判断した場合（Ｓ４でＮｏ）、ウェブブラウザ部２５１は、Ｓ１に戻り、指示入力に応じた次の操作画面の送信要求を行う。
【００７０】
一方、ユーザからの指示入力がＭＦＰ機能の実行を要求するものであると判断した場合（Ｓ４でＹｅｓ）、ウェブブラウザ部２５１は、アプリケーションサーバ３３０から返信されたＨＴＭＬデータに含まれているＨＴＴＰリダイレクト命令（あるいはＨＴＴＰリダイレクトロジック）に応じた第２ウェブサーバ部２５２内のアドレスにリダイレクト（図３のＨＴＴＰリダイレクト３３３参照）して当該リダイレクト先に格納されている制御コマンド（スクリプトファイルの命令（スクリプト-based instructions））を読み出し、制御アプリケーション部（ＡＰＩ；Device function API）２５３に通知する（Ｓ５）。上記制御コマンドは、ＭＦＰ２００におけるファイアウォールの内側に配置された第２ウェブサーバ部２５３に格納されている。また、ウェブブラウザ部２５１は、上記制御コマンドに基づいて制御アプリケーション部２５３を起動し、当該制御コマンドに応じてＭＦＰ２００の各部を制御させることでユーザからの指示入力に応じたＭＦＰ機能を実行させる（Ｓ６）。なお、上記制御コマンド（スクリプトファイルの命令）は、ＭＦＰ２００に対するＳＯＡＰコールの開始を含む。ＭＦＰ２００は上記のＳＯＡＰコールに応答する。
【００７１】
具体的には、アプリケーションサーバ３３０のアプリケーション部３５３は、ＭＦＰ２００の各種機能（ＭＦＰ機能）の実行を指示する指示入力が行われたときに、ＭＦＰ２００のウェブブラウザ部２５１をＭＦＰ２００内の所定のリダイレクト先にリダイレクトさせるためのＨＴＴＰリダイレクト命令を、ＭＦＰ２００に送信する操作画面のＨＴＭＬデータに含める。また、上記所定のリダイレクト先には、ＭＦＰ２００の各部の動作を制御するための制御コマンドが格納されている。これにより、図３に示すように、ウェブブラウザ部２５１が第２ウェブサーバ部２５２に上記制御コマンドを通知し、第２ウェブサーバ部２５２が上記制御コマンドを通知されたときに制御アプリケーション部２５３を起動し、制御アプリケーション部２５３が当該制御コマンドを解析して当該制御コマンドに対応する機能制御部（スキャン制御部２２０、ＦＡＸ制御部２２２、コピー制御部２２４、プリント制御部２２６、通信制御部２２８、あるいはこれらの組み合わせ）を当該制御コマンドに応じて制御することでＭＦＰ機能を実行させるようになっている。
【００７２】
なお、図９に示すように、ウェブブラウザ部２５１が上記所定のリダイレクト先にリダイレクトして当該リダイレクト先に格納されている制御コマンドを読み出して制御アプリケーション部（（ＡＰＩ；Device function API））２５３に通知するようにしてもよい。
【００７３】
上記のＨＴＴＰリダイレクト命令としては、例えば、（ａ）ＨＴＴＰリダイレクト応答（例えば応答コード“３ＸＸ”）、（ｂ）ＨＴＭＬ（Hypertext Markup Language）リフレッシュメタタグ、および（ｃ）リダイレクト形式指示（ボタン操作などのマニュアル操作、またはＪａｖａ（登録商標）スクリプトなどを用いた自動リダイレクトの指示）などを用いることができる。また、上記のＪａｖａ（登録商標）スクリプトを用いた指示は、例えば、“location.href”によるものであってもよく、隠しインラインフレーム（hidden iframe）によるものであってもよく、ＪＳＯＮＰ（Ｊａｖａスクリプト Object Notification with padding）によるものであってもよい。
【００７４】
また、ＨＴＴＰリダイレクト３３３は、ＭＦＰ２００のリダイレクトサーバ側スクリプトのＵＲＬ（Uniform Resource Locator）を用いて送信されてもよい。また、ＨＴＴＰリダイレクト３３３は、呼び出される（コールされる）制御コマンドや関連するパラメータ、処理結果の送信先を示すＵＲＬを特定するためのＨＴＴＰクエリストリング（HTTP query string）あるいはＰＯＳＴボディーの引数によって受け渡されてもよい。これにより、ウェブブラウザ部２５１がリダイレクトスクリプト３１１を実行する。リダイレクトスクリプトは、上記引数に応じてＭＦＰ２００において局所的に呼び出す（コールする）処理を決定する。リダイレクトスクリプト３１１は、ＭＦＰ２００に局所的なＳＯＡＰ呼び出し（ＳＯＡＰコール）３１３を行わせ、それに対するＳＯＡＰレスポンス（応答）３１４により、ＳＯＡＰ呼び出し３１３の処理結果を得る。その後、リダイレクトスクリプト３１１は、ＭＦＰ２００（例えば制御アプリケーション部２５３）に、新たなＨＴＴＰリダイレクトロジックを埋め込んだ、ウェブブラウザ部２５１に返信するためのウェブページを構成させる。その後、ウェブブラウザ部２５１は、リダイレクトスクリプトからアプリケーションサーバ３３０のアプリケーション部（遠隔アプリケーション）３５３に呼び出し（コール）結果３１５をリダイレクトする。これにより、上記の例では、上記アプリケーションは個別のコマンドチャンネルを用いることなくＭＦＰ２００の機能を起動することができるようになっている。
【００７５】
なお、ＳＯＡＰレスポンス３１４をフィルタリングしてアプリケーション部３５３のアプリケーションに関係のある要素のみを抽出しアプリケーション部３５３のＵＲＬにその結果を提示するようにしてもよい。例えば、上記アプリケーションは、完了済みの全ジョブのログ情報を得るための呼び出し（例えばＳＯＡＰコール）を開始してもよい。上記スクリプトは、ジョブの種類（例えば、プリントジョブ、スキャンジョブ、および／または完全に実行できずに実行失敗したジョブのうちの１つまたは複数のジョブ）を特定するためのものであってもよい。上記スクリプトは、上記応答をフィルタリングして上記アプリケーションに必要な事項のみを返信するための命令であってもよい。ＭＦＰ２００のウェブブラウザ部２５１が、スクリプトファイルに応じた処理の実行によって返信されたＨＴＴＰ応答におけるＨＴＭＬ要素を表示部に表示するようにしてもよい。スクリプトからのＨＴＴＰ応答はアプリケーションサーバ３３０において実行されるアプリケーションの次のページにＨＴＴＰリダイレクトされてもよい。これにより、上記アプリケーションは、この起動処理が行われた後に次の処理に進むことができる。
【００７６】
また、上記所定のリダイレクト先は、Ｊａｖａ（登録商標）スクリプトが格納されているスクリプトファイルであってもよい。この場合、制御アプリケーション部２５３が上記所定のリダイレクト先のスクリプトファイルに格納されているＪａｖａ（登録商標）スクリプトをロードし、それを実行する。
【００７７】
その後、制御アプリケーション部２５３はＭＦＰ機能の実行結果を示す情報を生成してウェブブラウザ部２５１に伝達し、ウェブブラウザ部２５１が当該情報をアプリケーションサーバ３３０の第１ウェブサーバ部３５２のＵＲＬに送信し（Ｓ７）、処理を終了する。
【００７８】
以上のように、本実施形態にかかる通信システム１は、ウェブサーバのソフトウェアに従って動作する第１ウェブサーバ部３５２を備えたアプリケーションサーバ３３０と、当該アプリケーションサーバ３３０との間でネットワークを介して通信するＭＦＰ２００とを備える。そして、ＭＦＰ２００は、ウェブブラウザのソフトウェアに従って動作するウェブブラウザ部２５１と、ウェブサーバのソフトウェアに従って動作する第２ウェブサーバ部２５２とを備えている。
【００７９】
そして、アプリケーションサーバ３３０の第１ウェブサーバ部３５２は、ＭＦＰ２００のウェブブラウザ部２５１にＨＴＴＰリダイレクトを行わせるためのＨＴＴＰリダイレクト命令を含めたウェブページを送信し、ウェブブラウザ部２５１はこのＨＴＴＰリダイレクト命令に応じたアクセス先にアクセスする。また、上記アクセス先には、ＭＦＰ２００の各部の動作を所望するＭＦＰ機能を実行するように制御するための制御コマンドが格納されており、ウェブブラウザ部２５１は、上記アクセス先から制御コマンドを読み出してＭＦＰ２００の第２ウェブサーバ部２５２に通知する。そして、第２ウェブサーバ部２５２は、制御アプリケーション部２５３を起動し、上記制御コマンドに応じてＭＦＰ２００の各部の動作を制御させる。
【００８０】
これにより、アプリケーションサーバ３３０の第１ウェブサーバ部３５２が、制御内容に応じたＨＴＴＰリダイレクト命令を含むウェブページをＭＦＰ２００に送信することで、上記制御内容に応じた制御コマンドをＭＦＰ２００の第２ウェブサーバ部２５２から制御アプリケーション部２５３に通知させ、ＭＦＰ２００の各部の動作を制御させることができる。すなわち、アプリケーションサーバ３３０の第１ウェブサーバ部３５２がＭＦＰ２００に対して制御コマンドを受ける必要がない。したがって、ＭＦＰ２００とアプリケーションサーバ３３０との間にファイアウォールが構築されていたとしても、アプリケーションサーバ３３０はＭＦＰ２００の機能を制御することができる。
【００８１】
なお、本実施形態は、インターネットクラウドサーバで動作するアプリケーションが端末装置（例えばシャープＭＦＰ（Sharp-MFP；登録商標））にアクセスできる構成としてもよい。また、本実施形態は、ウェブスクリプトフレームワーク（appweb（登録商標））、組み込み型ウェブブラウザ（NetFront（登録商標））、およびクラウドアプリケーションサーバ（Google（登録商標） App Engine）などを用いて実行されるものであってもよい。Appweb（登録商標）は、サーバ側スクリプトエンジンを備えた標準型の組み込みウェブサーバであり、ＥＪＳスクリプト(Embedded Java Script（登録商標）)をサポートしている。組み込み型ウェブサーバプリケーションには、Ｅｃｍａスクリプト言語が適している。NetFront（登録商標）は、現行のシャープＭＦＰでも採用されている組み込み型ウェブブラウザである。Google（登録商標） App Engineは、ウェブアプリケーションによってグーグル社製のサーバで展開することが可能なクラウドアプリケーションフレームワークである。レガシーオープンシステムアーキテクチャー（ＯＳＡ）アプリケーションは、企業ネットワーク内専用のサーバである。これらのアプリケーションは、同一企業内のネットワーク内における本実施形態にかかるシャープＭＦＰにおいて提供されるＯＳＡリソースに直接アクセスすることができる。レガシーアプリケーション以外のアプリケーションは、Google App Engineなどの公共のインターネットサーバにおいて動作する。これらのアプリケーションは、従来は、ファイアウォールによって保護されている本実施形態にかかるシャープ社製ＭＦＰで動作するＯＳＡリソースにアクセスすることはできなかった。本実施形態により、レガシーＯＳＡアプリケーション以外のアプリケーションであっても、ファイアウォールによって保護されているシャープＭＦＰのＯＳＡレソースに対してアクセスできるようになる。したがって、ＨＴＴＰリダイレクトスキームを用いる次世代のＯＳＡアプリケーションにより、従来はレガシーＯＳＡアプリケーションのみによって利用可能であったシャープＭＦＰのＯＳＡリソースにアクセスすることができる。
【００８２】
図５は、３つの典型的な要素、すなわちappweb（登録商標）、NetFront（登録商標）、およびGoogle（登録商標） App Engineを用いたＨＴＴＰリダイレクトスキームによって確立される、ファイアウォール３４０を介した２つの装置間における双方向通信を示す説明図である。この図に示す双方向通信では、以下のステップが実行される。ＭＦＰ２００のウェブブラウザ部２５１で動作するNetFront（登録商標）は、例えばＨＴＴＰリクエスト（ＨＴＴＰ ＧＥＴ要求）３１０により、アプリケーションサーバ３３０の制御部３５１で動作するGoogle（登録商標） App Engine５２１からアプリケーション（例えばＯＳＡアプリケーション）の最初のページ（ウェブページ３３２）を取得する。Google（登録商標） App Engineは、ＨＴＴＰレスポンス（ＨＴＴＰ ＧＥＴレスポンス）３３１により、ウェブページ（ウェブページデータ）３３２をウェブブラウザ部２５１（NetFront（登録商標））に返信する。ウェブページ３３２は、ＨＴＴＰリダイレクト命令(例えば、ＨＴＴＰ ＧＥＴあるいはＨＴＴＰ ＰＯＳＴ)を含んでいる。ＨＴＴＰリダイレクト命令に応じて、ＭＦＰ２００のウェブブラウザ部２５１（NetFront（登録商標））は、ＨＴＴＰリダイレクト３３３をリダイレクトページ（リダイレクトスクリプト３１１（例えば“Delegator.ejs.”））にリダイレクトする。ウェブブラウザ部２５１（NetFront（登録商標））は、リダイレクトスクリプトを実行するために、ＨＴＴＰレスポンス３３１におけるリダイレクトフォーマットに基づいて、ＨＴＴＰ ＧＥＴあるいはＨＴＴＰ ＰＯＳＴを行う。上記リダイレクトスクリプトは、“Delegator.ejs.”と呼ばれるファイルであってもよい。ＭＦＰ２００の制御部２０８で動作する（Appweb（登録商標）５１５）は、リダイレクトスクリプト（Delegator.ejsスクリプトファイル）３１１に含まれるEJScript codeをロードして実行する。上記Delegator.ejsファイルは、ＭＦＰ２００の第２ウェブサーバ部２５２へのＯＳＡ  ＳＯＡＰ呼び出し（ＯＳＡ  ＳＯＡＰ  コール）３１３を開始するために、従来のEJScript方法の処理を開始する。典型的なスクリプトファイルは、図８に示すようなコンピュータプログラムとして生成されている。なお、図１０に示すように、ウェブブラウザ部２５１（NetFront（登録商標））がウェブページ３３２に含まれるＨＴＴＰリダイレクト命令で示されたリダイレクト先から制御コマンドを読み出してAppweb（登録商標）５１５に通知し、Appweb（登録商標）５１５が制御アプリケーション部（（ＡＰＩ；Device function API））２５３にこの制御コマンドを通知するようにしてもよい。ＭＦＰ２００の制御部（プロセッサ、処理回路）２０８は、結果情報を生成するために、ＭＦＰ２００の第２ウェブサーバ部２５２（あるいは制御アプリケーション部２５３）からのＯＳＡ  ＳＯＡＰ応答に基づくDelegator.ejsスクリプトファイルの命令を実行する。そして、生成された上記結果情報を、アプリケーションサーバ３３０の制御部３５１（Google App Engine）で動作するアプリケーション（ＯＳＡアプリケーション）のＵＲＬに提示する。ウェブブラウザ部２５１は、ＨＴＴＰレスポンスにおけるDelegator.ejsによって返送されたＨＴＭＬ要素を表示する。上記ＨＴＴＰレスポンスは、アプリケーションサーバ３３０の制御部３５１（Google App Engine）で動作するアプリケーションのウェブページに返送される静的なＨＴＭＬデータあるいはＨＴＴＰリダイレクトであってもよい。アプリケーションへの返信が開始されると、制御は再びアプリケーションサーバ３３０のアプリケーションに戻される。したがって、アプリケーション（例えばＯＳＡアプリケーション）は、前述の工程で受信したＯＳＡ呼び出し結果に応じてどのウェブページを次に返送するかを決定することができる。
【００８３】
なお、上記の構成では、appweb（登録商標）、NetFront（登録商標）、およびGoogle（登録商標） App Engineの３つの要素を用いた組み込み型ＯＳＡについて説明したが、本発明はこれに限るものではない。例えば、appweb（登録商標）に代えて、サーバ側スクリプトを実行可能な他のウェブサーバ（例えばApache（登録商標））を用いてもよい。また、NetFront（登録商標）に代えて、標準的なＨＴＴＰリダイレクト法を実行可能な他のウェブサーバ（例えばOpera（登録商標））を用いてもよい。また、Google（登録商標） App Engineに代えて、ウェブアプリケーションを実行可能な他のウェブアプリケーションサーバ（例えばMicrosoft Azure（登録商標））を用いてもよい。
【００８４】
ファイアウォールの向こう側のコンピュータリソースにアクセスする上述の方法は、ＭＦＰ２００のプロセッサ（処理回路）が実行してもよく、ＳＯＡＰ呼び出しによってサポートされている他の演算装置（演算ノード）が実行してもよい。図６は、ＭＦＰ２００とは別に備えられる演算装置（コンピュータ装置６２０）を用いて本実施形態にかかるリダイレクト処理を行う場合の構成例を示すブロック図である。このコンピュータ装置６２０は、ＣＰＵ（central processing unit、中央演算装置）等のプロセッサ６２４、アドレス可能なメモリー６２７、デバイスインターフェース６２６（例えばＵＳＢ（universal serial bus）ポートおよびその処理部、および／または、イーサネット（登録商標）ポートおよびその処理部）、ユーザインターフェース６２９（例えば、状態を示すライト、トグルスイッチ、表示装置、キーボード、マウス等のポインティングデバイス、タッチスクリーン、およびこれらの組み合わせなど）を備えている。これらの部材は、データバス６２８を介して互いに通信可能に備えられている。プロセッサ６２４は、ウェブブラウザ６２３およびアプリケーション６２２の機能を実行するオペレーティングシステム６２５を用いて、コンピュータリソース６２１にアクセスするための上述したリダイレクト方法の処理を実行する。
【００８５】
例えば、コンピューティングデバイス（例えばアプリケーションサーバ装置など）によって実行されるアプリケーションが、そのアプリケーションに対してファイアウォールの向こう側に位置するローカルコンピューティングデバイス（例えばＭＦＰ（多機能周辺機器、複合機）など）へアクセスするには、本書に記載の方法、デバイス、システム設定、およびコンポーネントを用いることができる。コンピューティングリソースは、有益なデータまたはサービスを提供するコンピューティング環境におけるコンポーネントとして定義される。コンピューティングリソースの例としては、ウェブサービス、データベース、ダイナミックスクリプト、スタティックファイルおよび入出力（Ｉ／Ｏ）ポートなどが含まれる。ファイアウォールの外部のアプリケーションによってファイアウォールの向こう側のコンピューティングリソースにアクセスする方法の実施例は、以下の工程（ａ）〜（ｆ）を含んでいてもよい：（ａ）ローカルコンピューティングデバイスのウェブブラウザが、該ローカルコンピューティングデバイスの外部のソースからアプリケーションのウェブページを取得する工程；（ｂ）上記ウェブブラウザが、上記ローカルコンピューティングデバイスに宛先ページとして保存されたスクリプトファイル（制御コマンド）に対するリダイレクト命令を含むアプリケーションのページを受信する工程；（ｃ）上記ウェブブラウザが、コール命令（例えば、シンプルオブジェクトアクセスプロトコル（ＳＯＡＰ）コール命令）を含むスクリプトファイルを宛先ページとしてリダイレクトする工程；（ｄ）上記スクリプトファイルコール命令に基づいてコールを呼び出す工程；（ｅ）当該呼び出されたコールに対する上記ローカルコンピューティングデバイスによる応答結果を生成する工程；および（ｆ）当該生成された結果を、上記ローカルコンピューティングデバイスの外部のソースでホストされたアプリケーションのユニフォームリソースロケータ（ＵＲＬ）エンドポイントへ送信する工程。上記ブラウザは、上記ローカルコンピューティングデバイス上のハイパーテキストトランスファープロトコル（ＨＴＴＰ）ブラウザクライアントであり、上記外部ソースはリモートホストであってもよい。上記ブラウザによるウェブページを取得する工程は、上記リモートホストのリモートサーバに対する出力のＨＴＴＰ接続を開始する工程を含んでいてもよい。上記ブラウザによって受信されたウェブページは、上記ローカルコンピューティングデバイスの内部的にホストされたスクリプトへ上記ブラウザをリダイレクトする命令を含む上記リモートホストからのＨＴＴＰペイロードを含んでいてもよい。上記生成された結果を送信する工程は、少なくともＨＴＴＰ  ＧＥＴおよびＨＴＴＰ  ＰＯＳＴのうちの少なくとも１つを経由していてもよい。
【００８６】
また、装置の実施例は、ファイアウォールの向こう側に位置するコンピューティングデバイスであって、プロセッサ、および、コール命令（例えばＳＯＡＰコール命令）を含むスクリプトファイルおよび コンピュータリソースを含むアドレッサブルメモリを備え、上記プロセッサが以下の（ａ）〜（ｆ）の処理を行うように設定されていてもよい：（ａ）ウェブブラウザが、上記装置の外部のソースからアプリケーションのウェブページを取得し；（ｂ）上記ウェブブラウザが、上記デバイスに宛先ページとして保存されたスクリプトファイル（制御コマンド）に対するリダイレクト命令を含むアプリケーションのページを受信する；（ｃ）上記ウェブブラウザが、宛先ページとしてスクリプトファイルにリダイレクトし；（ｄ）上記スクリプトファイルコール命令（例えば、SOAPコール命令）に基づいてコール（例えばＳＯＡＰコール）を呼び出し；（ｅ）当該呼び出されたコール（例えばＳＯＡＰコール）に基づく処理結果を生成し；（ｆ）当該生成された結果を上記デバイスの外部のソースでホストされたアプリケーションのユニフォームリソースロケータ（ＵＲＬ）エンドポイントへ送信する。
【００８７】
例えば、コンピュータリソースは、リモートホストからファイアウォールの向こう側のローカルデバイス上でホストされる。上記ファイアウォール内にあるローカルデバイス上のハイパーテキストトランスファープロトコル（ＨＴＴＰ）ブラウザクライアントは、上記リモートサーバに対して出力のＨＴＴＰ接続を開始する。実施例は、上記リモートホストに対するＨＴＴＰ接続を開始する上記ローカルデバイスを含む。上記リモートホストは、その後、上記ローカルデバイスの内部的にホストされたスクリプトへリダイレクトするＨＴＴＰペイロードに応答する。上記ローカルデバイスは、その後、スクリプトに従って処理を実行した結果を生成する。上記ローカルデバイスは、その後、実行されたスクリプトの結果を直にリモートホストへ（例えば、ＨＴＴＰ  ＧＥＴまたはＨＴＴＰ  ＰＯＳＴを介して）送信する。
【００８８】
また、本実施形態において、ＭＦＰ２００およびアプリケーションサーバ３３０に備えられる各部（各ブロック）、特にＭＦＰ２００の制御部２０８（ウェブブラウザ部２５１、第２ウェブサーバ部２５２、および制御アプリケーション部２５３）、およびアプリケーションサーバ３３０の制御部３５１（第１ウェブサーバ部３５２およびアプリケーション部３５２）を、ＣＰＵ等のプロセッサを用いてソフトウェアによって実現してもよい。この場合、ＭＦＰ２００およびアプリケーションサーバ３３０の上記各部は、各機能を実現する制御プログラムの命令を実行するＣＰＵ（central processing unit）、上記プログラムを格納したＲＯＭ（read only memory）、上記プログラムを展開するＲＡＭ（random access memory）、上記プログラムおよび各種データを格納するメモリ等の記憶装置（記録媒体）などを備えている。そして、本発明の目的は、上述した機能を実現するソフトウェアであるＭＦＰ２００およびアプリケーションサーバ３３０の制御プログラムのプログラムコード（実行形式プログラム、中間コードプログラム、ソースプログラム）をコンピュータで読み取り可能に記録した記録媒体を、ＭＦＰ２００およびアプリケーションサーバ３３０のに供給し、そのコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に記録されているプログラムコードを読み出し実行することによって達成される。
【００８９】
上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ系、フロッピー（登録商標）ディスク／ハードディスク等の磁気ディスクやＣＤ−ＲＯＭ／ＭＯ／ＭＤ／ＤＶＤ／ＣＤ−Ｒ等の光ディスクを含むディスク系、ＩＣカード（メモリカードを含む）／光カード等のカード系、あるいはマスクＲＯＭ／ＥＰＲＯＭ／ＥＥＰＲＯＭ／フラッシュＲＯＭ等の半導体メモリ系などを用いることができる。
【００９０】
また、ＭＦＰ２００およびアプリケーションサーバ３３０を通信ネットワークと接続可能に構成し、通信ネットワークを介して上記プログラムコードを供給してもよい。この通信ネットワークとしては、特に限定されず、例えば、インターネット、イントラネット、エキストラネット、ＬＡＮ、ＩＳＤＮ、ＶＡＮ、ＣＡＴＶ通信網、仮想専用網（virtual private network）、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、通信ネットワークを構成する伝送媒体としては、特に限定されず、例えば、ＩＥＥＥ１３９４、ＵＳＢ、電力線搬送、ケーブルＴＶ回線、電話線、ＡＤＳＬ回線等の有線でも、ＩｒＤＡやリモコンのような赤外線、Ｂｌｕｅｔｏｏｔｈ（登録商標）、８０２．１１無線、ＨＤＲ、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。なお、本発明は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。
【００９１】
また、ＭＦＰ２００およびアプリケーションサーバ３３０の各ブロックは、ソフトウェアを用いて実現されるものに限らず、ハードウェアロジックによって構成されるものであってもよく、処理の一部を行うハードウェアと当該ハードウェアの制御や残余の処理を行うソフトウェアを実行する演算手段とを組み合わせたものであってもよい。
【００９２】
本発明は上述した実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。すなわち、請求項に示した範囲で適宜変更した技術的手段を組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【符号の説明】
【００９３】
１  通信システム
２００  ＭＦＰ
２２０  スキャン制御部
２２２  ＦＡＸ制御部
２２４  コピー制御部
２２６  プリント制御部
２２８  通信制御部
２３０  スキャナ
２４０  プリンタ
２４４  通信部
２５１  ウェブブラウザ部
２５２  第２ウェブサーバ部
２５３  制御アプリケーション部
３３０  アプリケーションサーバ
３４０  ファイアウォール
３５１  制御部
３５２  第１ウェブサーバ部
３５３  アプリケーション部
３５４  通信部
【図１】
2011221991.tif 000003
【図２】
2011221991.tif 000004
【図３】
2011221991.tif 000005
【図４】
2011221991.tif 000006
【図５】
2011221991.tif 000007
【図６】
2011221991.tif 000008
【図７】
2011221991.tif 000009
【図８】
2011221991.tif 000010
【図９】
2011221991.tif 000011
【図１０】
2011221991.tif 000012