(57)【要約】【課題】複数のＨＴＴＰサーバ機能が混在する場合にリソースの負荷を低減することを目的とする。【解決手段】予め定められた決定条件に基づいて、画像処理装置が有する複数のＨＴＴＰサーバ機能から、他のＨＴＴＰサーバ機能を介さずに外部のクライアントと通信するＨＴＴＰサーバ機能である主ＨＴＴＰサーバ機能を決定し、決定された主ＨＴＴＰサーバ機能に対して、予め定められたポート番号を設定する。【選択図】図７
2020160535.tif 000002
【特許請求の範囲】
【請求項１】
複数のＨＴＴＰサーバ機能を有する情報処理装置であって、
予め定められた決定条件に基づいて、前記複数のＨＴＴＰサーバ機能から、他のＨＴＴＰサーバ機能を介さずに外部のクライアントと通信するＨＴＴＰサーバ機能である主ＨＴＴＰサーバ機能を決定する決定手段と、
前記決定手段により決定された前記主ＨＴＴＰサーバ機能に対して、予め定められたポート番号を設定する設定手段と、
を有する情報処理装置。
【請求項２】
前記決定条件は、設定された期間内に前記複数のＨＴＴＰサーバ機能それぞれに対して行われたリクエストの回数である請求項１に記載の情報処理装置。
【請求項３】
前記決定手段は、前記決定条件に基づいて、前記複数のＨＴＴＰサーバ機能のうち、リクエストが行われた回数が最も多いＨＴＴＰサーバ機能を、前記主ＨＴＴＰサーバ機能に決定する請求項２に記載の情報処理装置。
【請求項４】
前記決定条件は、設定された期間内に前記複数のＨＴＴＰサーバ機能それぞれが外部のリクエスト元との間で通信したデータ量である請求項１に記載の情報処理装置。
【請求項５】
前記決定手段は、前記決定条件に基づいて、前記複数のＨＴＴＰサーバ機能のうち、前記リクエスト元との間で通信したデータ量が最大のＨＴＴＰサーバ機能を、前記主ＨＴＴＰサーバ機能に決定する請求項４に記載の情報処理装置。
【請求項６】
前記決定条件は、前記複数のＨＴＴＰサーバ機能それぞれが予め定められた機能を有するか否かである請求項１に記載の情報処理装置。
【請求項７】
前記決定手段は、前記決定条件に基づいて、前記複数のＨＴＴＰサーバ機能のうち、前記予め定められた機能を有するＨＴＴＰサーバ機能を、前記主ＨＴＴＰサーバ機能に決定する請求項６に記載の情報処理装置。
【請求項８】
前記予め定められた機能は、認証機能である請求項６又は７に記載の情報処理装置。
【請求項９】
前記決定条件は、前記複数のＨＴＴＰサーバ機能それぞれが有するＷｅｂアプリケーションの数である請求項１に記載の情報処理装置。
【請求項１０】
前記決定手段は、前記決定条件に基づいて、前記複数のＨＴＴＰサーバ機能のうち、最も多くのＷｅｂアプリケーションを有するＨＴＴＰサーバ機能を、前記主ＨＴＴＰサーバ機能に決定する請求項９に記載の情報処理装置。
【請求項１１】
前記設定手段は、前記決定手段により決定された前記主ＨＴＴＰサーバ機能の起動が失敗した場合、予め定められたＨＴＴＰサーバ機能に対して、前記ポート番号を設定する請求項１乃至１０の何れか１項に記載の情報処理装置。
【請求項１２】
前記決定手段は、前記情報処理装置に予め定められたモードが設定されている場合、前記予め定められたＨＴＴＰサーバ機能を、前記主ＨＴＴＰサーバ機能に決定する請求項１１に記載の情報処理装置。
【請求項１３】
前記情報処理装置は、画像処理装置である請求項１乃至１２の何れか１項に記載の情報処理装置。
【請求項１４】
複数のＨＴＴＰサーバ機能を有する情報処理装置が実行する情報処理方法であって、
予め定められた決定条件に基づいて、前記複数のＨＴＴＰサーバ機能から、他のＨＴＴＰサーバ機能を介さずに外部のクライアントと通信するＨＴＴＰサーバ機能である主ＨＴＴＰサーバ機能を決定する決定ステップと、
前記決定ステップで決定された前記主ＨＴＴＰサーバ機能に対して、予め定められたポート番号を設定する設定ステップと、
を含む情報処理方法。
【請求項１５】
コンピュータを、請求項１乃至１３の何れか１項に記載の情報処理装置の各手段として、機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
一つの情報処理装置上で複数のＨＴＴＰサーバ機能を動作させる技術がある。例えば、特許文献１には、複数の仮想マシンが起動し且つ各仮想マシン上でＨＴＴＰサーバが動作する構成において、各ＨＴＴＰサーバが使用するポート番号の管理を容易に行うことが可能な技術が開示されている。
一つの情報処理装置上では、複数のＨＴＴＰサーバ機能が同一のサーバソケットのポート番号を共有することができない。そのため、それぞれのＨＴＴＰサーバ機能は異なるポート番号のサーバソケットを使用することになる。
一方、情報処理装置のＨＴＴＰサーバ機能にアクセスするクライアントは、代表となる単一のポート番号のみを知っており、そのポート番号のＨＴＴＰサーバ機能にアクセスする。
そのため、公開されていないポート番号を使用するＨＴＴＰサーバ機能（以下では、従ＨＴＴＰサーバ機能）が、外部のクライアントからのＨＴＴＰリクエストに対して、レスポンスを返信する場合、以下のようなことが行われる。即ち、公開されているポート番号を使用するＨＴＴＰサーバ機能（以下では、主ＨＴＴＰサーバ機能）が一旦、外部のクライアントからのリクエストを受信する。そして、主ＨＴＴＰサーバ機能が、受信したリクエストを、リクエスト先である従ＨＴＴＰサーバ機能に対して送信している。
さらに、主ＨＴＴＰサーバ機能は、従ＨＴＴＰサーバ機能によって作成されたレスポンスを一旦、受信し、受信したレスポンスを、リクエスト元に送信している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第５１２３８００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従ＨＴＴＰサーバ機能と外部のクライアントとの通信が行われる場合、主ＨＴＴＰサーバ機能と従ＨＴＴＰサーバ機能との間での情報の通信が発生し、発生した通信に対してリソース（例えば、ソケット、スレッド、メモリ、ＣＰＵ等）が使用される。このような通信に対するリソースの負荷が過大になる場合がある。例えば、従ＨＴＴＰサーバ機能へのリクエストが頻発すると、何度も主ＨＴＴＰサーバ機能と従ＨＴＴＰサーバ機能との間での情報の通信が発生してしまう。また、例えば、従ＨＴＴＰサーバ機能へのリクエストに大容量のデータが含まれる場合、主ＨＴＴＰサーバ機能と従ＨＴＴＰサーバ機能との間での大容量の情報の通信が発生してしまう。
そこで、本発明では、複数のＨＴＴＰサーバ機能が混在する場合にリソースの負荷を低減することを目的とする。
【課題を解決するための手段】
【０００５】
本発明の情報処理装置は、複数のＨＴＴＰサーバ機能を有する情報処理装置であって、予め定められた決定条件に基づいて、前記複数のＨＴＴＰサーバ機能から、他のＨＴＴＰサーバ機能を介さずに外部のクライアントと通信するＨＴＴＰサーバ機能である主ＨＴＴＰサーバ機能を決定する決定手段と、前記決定手段により決定された前記主ＨＴＴＰサーバ機能に対して、予め定められたポート番号を設定する設定手段と、を有する。
【発明の効果】
【０００６】
本発明によれば、複数のＨＴＴＰサーバ機能が混在する場合にリソースの負荷を低減することができる。
【図面の簡単な説明】
【０００７】
【図１】画像処理装置のハードウェア構成等の一例を示す図である。
【図２】画像処理装置の機能構成等の一例を示す図である。
【図３】ＨＴＴＰサーバ機能間の接続状態の一例を示す図である。
【図４】転送先テーブルの一例を示す図である。
【図５】決定部が利用する情報の一例を示す図である。
【図６】ＨＴＴＰリクエスト応答処理の一例を示すフローチャートである。
【図７】主ＨＴＴＰサーバ機能決定処理の一例を示すフローチャートである。
【図８】ポート番号設定処理の一例を示すフローチャートである。
【図９】決定部が利用する情報の一例を示す図である。
【図１０】ＨＴＴＰリクエスト応答処理の一例を示すフローチャートである。
【図１１】決定部が利用する情報の一例を示す図である。
【図１２】主ＨＴＴＰサーバ機能決定処理の一例を示すフローチャートである。
【図１３】決定部が利用する情報の一例を示す図である。
【図１４】ポート番号設定処理の一例を示すフローチャートである。
【図１５】ポート番号設定処理の一例を示すフローチャートである。
【発明を実施するための形態】
【０００８】
以下に、本発明の実施の形態の一例を、図面に基づいて詳細に説明する。
【０００９】
＜実施形態１＞
本実施形態の画像処理装置は、複数のＨｙｐｅｒ  Ｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ（ＨＴＴＰ）サーバ機能を有する。ＨＴＴＰサーバ機能とは、クライアント（例えば、外部の装置のブラウザ機能）から送信されたＨＴＴＰリクエストに応じ、リクエストに応じた情報を提供する機能である。ブラウザ機能とは、ブラウザを表示し、表示したブラウザを介してＨＴＴＰサーバ機能と通信を行う機能である。ＨＴＴＰリクエストとは、ＨＴＴＰを用いたリクエストである。以下では、ＨＴＴＰリクエストを、単にリクエストとする。
図１は、本実施形態の画像処理装置１０１のハードウェア構成等の一例を示す図である。画像処理装置１０１は、複数のＨＴＴＰサーバ機能を有する印刷機、複合機（ＭＦＰ）等の画像処理装置である。画像処理装置１０１は、情報処理装置の一例である。
画像処理装置１０１は、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ（ＣＰＵ）１５１、Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ（ＲＯＭ）１５２、Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＲＡＭ）１５３、ストレージ装置１５４を含む。また、画像処理装置１０１は、ＵＩ部１５５、ネットワークＩ／Ｆ制御部１５７、印刷エンジン１５８を含む。各要素は、バス１５６を介して相互に通信可能に接続されている。
【００１０】
ＣＰＵ１５１は、画像処理装置１０１を制御する中央演算装置である。ＲＯＭ１５２は、各種プログラム、各種設定情報等を記憶する記憶装置である。ＲＡＭ１５３は、ＣＰＵ１５１のワークエリア、データの一時的な記憶領域等として機能する記憶装置である。ストレージ装置１５４は、各種プログラム、各種設定情報等を記憶する記憶装置である。本実施形態では、ストレージ装置１５４は、ハードディスクドライブ（ＨＤＤ）であるとするが、ソリッドステートドライブ（ＳＳＤ）、フラッシュメモリ等の他の記憶装置であってもよい。
ＵＩ部１５５は、ユーザからの情報の入力の受付け、ユーザに対する情報の提示等に用いられる入出力装置である。本実施形態では、ＵＩ部１５５は、タッチパネルであるとする。ただし、他の例として、ＵＩ部１５５は、マウス、キーボード、ハードキー等の入力装置と、モニタ、ディスプレイ等の表示装置と、から構成されることとしてもよい。
【００１１】
ネットワークＩ／Ｆ制御部１５７は、ネットワーク１１０への接続に用いられるインターフェースを制御する制御部であって、外部の装置との間でのネットワーク１１０を介した通信を制御する。画像処理装置１０１は、ネットワークＩ／Ｆ制御部１５７を介して、ネットワーク１１０を経由して、パーソナルコンピュータ（ＰＣ）１１２と接続されている。ネットワーク１１０は、インターネット、ローカルエリアネットワーク（ＬＡＮ）等のネットワークである。印刷エンジン１５８は、印刷処理を制御するエンジンである。
ＣＰＵ１５１が、ＲＯＭ１５２、ストレージ装置１５４等に記憶されたプログラムにしたがって処理を実行することで、図２で後述する画像処理装置１０１の機能、図６−８、１０、１１、１２、１４、１５で後述するフローチャートの処理等が実現される。
【００１２】
ＰＣ１１２は、画像処理装置１０１に対してアクセスを行う情報処理装置である。ＰＣ１１２のハードウェア構成は、図１に示す画像処理装置１０１のハードウェア構成と比べて印刷エンジン１５８を含まない点で異なるが、他の点については同様である。
ＰＣ１１２のＣＰＵが、ＰＣ１１２のＲＯＭ、ストレージ装置等に記憶されたプログラムにしたがって処理を実行することで、ブラウザ機能等のＰＣ１１２の機能、ＰＣ１１２の処理等が実現される。
【００１３】
図２は、画像処理装置１０１の機能構成等の一例を示す図である。
画像処理装置１０１は、Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ（ＯＳ）１０３、ＨＴＴＰサーバ機能１０４、決定部１０５、１つ以上のＨＴＴＰサーバ機能１０６、Ｗｅｂアプリケーション１０７、１つ以上のＷｅｂアプリケーション１０８を含む。
ＯＳ１０３は、画像処理装置１０１のハードウェア構成要素、機能構成要素を制御する。ＨＴＴＰサーバ機能１０４は、初期状態において、他のＨＴＴＰサーバ機能を介さずに、外部のクライアントとの通信を行う。以下では、他のＨＴＴＰサーバ機能を介さずに、外部のクライアントとの通信を行うＨＴＴＰサーバ機能を、主ＨＴＴＰサーバ機能とする。また、以下では、主ＨＴＴＰサーバ機能を介して、外部のクライアントとの通信を行うＨＴＴＰサーバ機能を、従ＨＴＴＰサーバ機能とする。
【００１４】
決定部１０５は、ＨＴＴＰサーバ機能１０４、ＨＴＴＰサーバ機能１０６それぞれについて、使用されるサーバソケットのポート番号を決定する。
Ｗｅｂアプリケーション１０７は、ＨＴＴＰサーバ機能１０４が有し、ＨＴＴＰサーバ機能１０４上で動作するアプリケーションである。Ｗｅｂアプリケーション１０８は、ＨＴＴＰサーバ機能１０６が有し、ＨＴＴＰサーバ機能１０６上で動作するアプリケーションである。
ＨＴＴＰサーバ機能１０４、ＨＴＴＰサーバ機能１０６それぞれは、ストレージ装置１５４に記憶された転送先テーブル１０９に基づいて、ＨＴＴＰサーバ機能同士の通信を行う。転送先テーブル１０９は、クライアントからのリクエストで指定されるパスと、パスで指定されるＷｅｂアプリケーションを有するＨＴＴＰサーバ機能の識別情報と、の対応情報を格納するテーブルであり、詳細については図４で後述する。
本実施形態では、ＰＣ１１２は、ＵＩ部にブラウザ１１１を表示する。ＰＣ１１２は、ユーザによるブラウザ１１１を介した指示に基づいて、画像処理装置１０１のＨＴＴＰサーバ機能にリクエストを送信する。
【００１５】
図３は、本実施形態の画像処理装置１０１に含まれる複数のＨＴＴＰサーバ機能同士の接続状態の一例を示す図である。
ＨＴＴＰサーバ機能１０４は、初期状態において、ネットワーク１１０を介してＰＣ１１２等の外部の装置と接続されている。また、ＨＴＴＰサーバ機能１０４は、画像処理装置１０１内の内部ネットワーク２０１を介して、ＨＴＴＰサーバ機能１０６それぞれと接続されている。内部ネットワーク２０１は、ＯＳ１０３によって実現される仮想的なネットワークである。
【００１６】
図４は、ストレージ装置１５４に記憶された転送先テーブル１０９の一例を示す図である。
転送先テーブル１０９は、パス３０１、サーバ３０２の項目を有する。パス３０１は、リクエストで指定されるＷｅｂアプリケーションに対応するパスを示す。サーバ３０２は、パス３０１が指定するＷｅｂアプリケーションを有するＨＴＴＰサーバ機能の識別子を示す。
図４の例では、ＨＴＴＰサーバ機能の識別子には、システムアプリ用ＨＴＴＰサーバ、後入れアプリ用ＨＴＴＰサーバの２種類がある。システムアプリ用ＨＴＴＰサーバは、画像処理装置１０１の基本機能の利用や、ＷｅｂアプリをインストールするためのシステムＷｅｂアプリケーションを動作させるためのＨＴＴＰサーバ機能を示す識別子である。後入れアプリ用ＨＴＴＰサーバは、画像処理装置１０１にインストールされるＷｅｂアプリケーションを動作させるＨＴＴＰサーバ機能を示す。ただし、ＨＴＴＰサーバ機能の識別子には、他の種類の識別子が含まれることとしてもよい。
【００１７】
本実施形態では、決定部１０５は、ストレージ装置１５４に記憶された図５に示す情報を利用して処理を実行する。即ち、決定部１０５は、ストレージ装置１５４に記憶されたポートテーブル４０１、受信回数テーブル４０４、転送回数テーブル４０５それぞれを利用する。
ポートテーブル４０１は、ポート番号４０２、ＨＴＴＰサーバ４０３の項目を含む。ポート番号４０２は、対応するＨＴＴＰサーバ４０３の識別子が示すＨＴＴＰサーバ機能が使用するポート番号を示す。ＨＴＴＰサーバ４０３は、ＨＴＴＰサーバ機能の識別子を示す。
【００１８】
本実施形態では、画像処理装置１０１は、主ＨＴＴＰサーバ機能に対して、主ＨＴＴＰサーバ機能のポート番号として予め定められたポート番号（本実施形態では、８０）を設定する。そして、画像処理装置１０１は、従ＨＴＴＰサーバ機能に対して、主ＨＴＴＰサーバ機能と異なるポート番号を設定する。外部のクライアントは、この予め定められたポート番号８０を用いて、画像処理装置１０１に対してリクエストを送信することとなる。そのため、ポート番号８０が設定された主ＨＴＴＰサーバ機能は、他のＨＴＴＰサーバ機能を介さずに、外部のクライアントと通信可能になる。
ただし、他の例として、画像処理装置１０１は、外部に公開されているポート番号であれば８０と異なる番号（例えば、４４３等）を、主ＨＴＴＰサーバ機能に設定することとしてもよい。
本実施形態では、初期状態において、ＨＴＴＰサーバ機能１０４が主ＨＴＴＰサーバ機能となっているので、ＨＴＴＰサーバ機能１０４に対して、ポート番号８０が設定されている。
【００１９】
本実施形態では、ポートテーブル４０１の初期値は、予め定められているとする。ただし、他の例として、画像処理装置１０１は、初回起動の際に、ＨＴＴＰサーバ機能の起動の順番に応じて、各ＨＴＴＰサーバ機能に割当てるポート番号を決定することとしてもよい。そして、画像処理装置１０１は、決定したポート番号と対応するＨＴＴＰサーバ機能の識別子とに基づいて、ポートテーブル４０１の初期値を決定することとしてもよい。
受信回数テーブル４０４は、画像処理装置１０１に対して行われたリクエスト（主ＨＴＴＰサーバが受信したリクエスト）の回数を格納するテーブルである。
転送回数テーブル４０５は、主ＨＴＴＰサーバ機能から従ＨＴＴＰサーバ機能それぞれに対してデータの転送が行われた回数（従ＨＴＴＰサーバ機能それぞれに対してリクエストが行われた回数）を格納するテーブルである。本実施形態では、転送とは、ＨＴＴＰサーバ機能間におけるクエスト、レスポンスの送受信である。
本実施形態では、画像処理装置１０１は、受信回数テーブル４０４と転送回数テーブル４０５とを同期して初期化させ、その後に、リクエストが行われる毎に、受信回数テーブル４０４と転送回数テーブル４０５との更新を行う。
【００２０】
図６は、画像処理装置１０１がリクエストを受信した際の処理の一例を示すフローチャートである。
図６のＳ５０１〜Ｓ５１２は、主ＨＴＴＰサーバ機能の処理である。図６のＳ５２１〜Ｓ５２４は、リクエスト先となる従ＨＴＴＰサーバ機能の処理である。初期状態においては、主ＨＴＴＰサーバ機能は、ＨＴＴＰサーバ機能１０４である。ただし、ポート番号８０が割当られることで、他のＨＴＴＰサーバ機能も主ＨＴＴＰサーバ機能となり得る。即ち、ＨＴＴＰサーバ機能１０４、ＨＴＴＰサーバ機能１０６のうちの何れか１つが主ＨＴＴＰサーバ機能となる。
【００２１】
Ｓ５０１において、主ＨＴＴＰサーバ機能は、クライアントであるブラウザ１１１から、ポート番号８０に対して送信されたリクエストを受信する。
Ｓ５０２において、主ＨＴＴＰサーバ機能は、Ｓ５０１で受信したリクエストからリクエストパスを取得する。リクエストパスとは、どのＷｅｂアプリケーションに対しての要求であるかを示す情報である。
【００２２】
Ｓ５０３において、主ＨＴＴＰサーバ機能は、ストレージ装置１５４に記憶された転送先テーブル１０９から、Ｓ５０２で取得したリクエストパスに対応するＨＴＴＰサーバ機能の識別子を取得する。
主ＨＴＴＰサーバ機能は、転送先テーブル１０９に、Ｓ５０２で取得したリクエストパスに対応するＨＴＴＰサーバ機能の識別子の情報がない場合、存在しないリクエストパスへのリクエストに対する対応として、以下の処理を行う。即ち、主ＨＴＴＰサーバ機能は、リクエスト先が存在しないことを示すＨＴＴＰステイタス４０４を、リクエスト元に返し、図６の処理を終了する。
【００２３】
Ｓ５０４において、主ＨＴＴＰサーバ機能は、ストレージ装置１５４に記憶された受信回数テーブル４０４のリクエスト受信回数を１増やす。
Ｓ５０５において、主ＨＴＴＰサーバ機能は、Ｓ５０３で取得したＨＴＴＰサーバの識別子をキーにポートテーブル４０１を検索し、この識別子に対応するポート番号を取得する。
【００２４】
Ｓ５０６において、主ＨＴＴＰサーバ機能は、Ｓ５０５で取得したポート番号が、主ＨＴＴＰサーバ機能に設定されるポート番号として予め定められたポート番号（８０）であるか否かを判定する。
主ＨＴＴＰサーバ機能は、Ｓ５０５で取得したポート番号が８０であると判定した場合、Ｓ５０１で受信したリクエストが自身に対するリクエストであるとして、処理をＳ５０７に進める。また、主ＨＴＴＰサーバ機能は、Ｓ５０５で取得したポート番号が８０でないと判定した場合、Ｓ５０１で受信したリクエストが、自身に対するリクエストでないとして、処理をＳ５０９に進める。
【００２５】
Ｓ５０７において、主ＨＴＴＰサーバ機能は、Ｓ５０２で取得したリクエストパスに対応するＷｅｂアプリケーションを呼び出し、Ｗｅｂアプリケーションに処理を委譲する。そして、主ＨＴＴＰサーバ機能は、処理を委譲したＷｅｂアプリケーションから、処理の結果のデータを、レスポンスのデータとして取得する。
Ｓ５０８において、主ＨＴＴＰサーバ機能は、Ｓ５０７、Ｓ５１２の何れか１つで、取得したレスポンスを、Ｓ５０１で受信したリクエストの送信元に送信し、図６の処理を終了する。
【００２６】
Ｓ５０９において、主ＨＴＴＰサーバ機能は、Ｓ５０３で取得した識別子をキーに、ストレージ装置１５４に記憶された転送回数テーブル４０５を検索し、この識別子に対応するレコードを特定する。
Ｓ５１０において、主ＨＴＴＰサーバ機能は、転送回数テーブル４０５におけるＳ５０９で特定したレコードの転送回数を１増やす。
【００２７】
Ｓ５１１において、主ＨＴＴＰサーバ機能は、Ｓ５０５で取得したポート番号に基づいて、Ｓ５０３で取得した識別子に対応する従ＨＴＴＰサーバ機能に対して、内部ネットワーク２０１を介して、Ｓ５０１で受信したリクエストを送信する。
Ｓ５１２において、主ＨＴＴＰサーバ機能は、Ｓ５１１で送信したリクエストの送信先の従ＨＴＴＰサーバ機能から、このリクエストに対する処理の結果を、レスポンスとして取得する。
【００２８】
Ｓ５２１において、Ｓ５１１で送信されたリクエストの対象の従ＨＴＴＰサーバ機能は、Ｓ５１１で送信されたリクエストを受信する。
Ｓ５２２において、この従ＨＴＴＰサーバ機能は、Ｓ５２１で受信したリクエストからリクエストパスを取得する。
【００２９】
Ｓ５２３において、この従ＨＴＴＰサーバ機能は、５２２で取得したリクエストパスに対応するＷｅｂアプリケーションを呼び出し、Ｗｅｂアプリケーションに処理を委譲する。そして、この従ＨＴＴＰサーバ機能は、処理を委譲したＷｅｂアプリケーションから、処理の結果を、レスポンスとして取得する。
Ｓ５２４において、この従ＨＴＴＰサーバ機能は、Ｓ５２３で取得したレスポンスを主ＨＴＴＰサーバ機能に送信する。
【００３０】
図７は、主ＨＴＴＰサーバ機能の決定処理の一例を示すフローチャートである。本実施形態では、決定部１０５は、設定された期間に、各ＨＴＴＰサーバ機能に対して行われたリクエストの回数に基づいて、主ＨＴＴＰサーバ機能を決定する。設定された期間に、各ＨＴＴＰサーバ機能に対して行われたリクエストの回数は、主ＨＴＴＰサーバ機能の決定に用いられる決定条件の一例である。本実施形態では、この設定された期間は、受信回数テーブル４０４、及び、転送回数テーブル４０５が初期化された時点のうち最新の時点から図７の処理時点までの期間である。
本実施形態では、決定部１０５は、画像処理装置１０１の起動の際に、図７の処理を行うこととする。ただし、他の例として、決定部１０５は、他のタイミングで図７の処理を行うこととしてもよい。例えば、決定部１０５は、転送回数テーブル４０５の内容が更新されたことに応じて、図７の処理を行うこととしてもよい。また、決定部１０５は、画像処理装置１０１のシャットダウンの際に図７の処理を行うこととしてもよい。また、画像処理装置１０１の起動処理において最初に起動したＨＴＴＰサーバ機能からポート番号取得要求が行われたことに応じて、図７の処理を行ってもよい。
【００３１】
Ｓ６０１において、決定部１０５は、ストレージ装置１５４に記憶された転送回数テーブル４０５に格納されている各従ＨＴＴＰサーバ機能への転送回数の合計値を求める。
Ｓ６０２において、決定部１０５は、ストレージ装置１５４に記憶された受信回数テーブル４０４から、主ＨＴＴＰサーバ機能が受信したリクエストの回数を取得する。
Ｓ６０３において、決定部１０５は、Ｓ６０２で取得した回数から、Ｓ６０１で求めた転送回数の合計を引いた値を、主ＨＴＴＰサーバ機能に対するリクエスト（主ＨＴＴＰサーバ機能が有するアプリケーションに対するリクエスト）の回数として求める。
【００３２】
Ｓ６０４において、決定部１０５は、転送回数テーブル４０５に格納されている各従ＨＴＴＰサーバ機能に対して行われたデータの転送回数（リクエストの回数）と、Ｓ６０３で取得したリクエストの回数と、のうちの最大の回数を特定する。そして、決定部１０５は、特定した回数に対応するＨＴＴＰサーバ機能の識別子を取得する。
Ｓ６０５において、決定部１０５は、Ｓ６０４で取得した識別子に対応するＨＴＴＰサーバ機能が、現在の主ＨＴＴＰサーバ機能であるか否かを判定する。本実施形態では、決定部１０５は、ストレージ装置１５４に記憶されたポートテーブル４０１の情報に基づいて以下のようにする。即ち、決定部１０５は、ポートテーブル４０１に格納されたＳ６０４で取得した識別子に対応するポート番号が８０である場合、この識別子に対応するＨＴＴＰサーバ機能が現在の主ＨＴＴＰサーバ機能であると判定し、図７の処理を終了する。また、決定部１０５は、ポートテーブル４０１に記憶されたＳ６０４で取得した識別子に対応するポート番号が８０でない場合、この識別子に対応するＨＴＴＰサーバ機能が現在の主ＨＴＴＰサーバ機能でないと判定し、処理をＳ６０６に進める。
【００３３】
Ｓ６０６において、決定部１０５は、ポートテーブル４０１からＳ６０４で取得した識別子に対応するＨＴＴＰサーバのポート番号を取得する。
Ｓ６０７において、決定部１０５は、ポートテーブル４０１に格納されている現在の主ＨＴＴＰサーバ機能のポート番号を、Ｓ６０６で取得したポート番号に変更する。
Ｓ６０８において、決定部１０５は、ポートテーブル４０１に格納されているＳ６０４で取得した識別子に対応するＨＴＴＰサーバ機能のポート番号を、主ＨＴＴＰサーバ機能のポート番号である８０に変更する。これにより、決定部１０５は、Ｓ６０４で取得した識別子に対応するＨＴＴＰサーバ機能を、主ＨＴＴＰサーバ機能に決定する。
【００３４】
図８は、ＨＴＴＰサーバ機能１０４に対するポート番号の設定処理の一例を示すフローチャートである。図８のＳ７０１〜Ｓ７０５の処理は、ＨＴＴＰサーバ機能１０４の処理である。また、図８のＳ７０６〜Ｓ７０７の処理は、決定部１０５の処理である。
本実施形態では、画像処理装置１０１は、画像処理装置１０１の起動の際に図８の処理を実行する。
【００３５】
Ｓ７０１において、ＨＴＴＰサーバ機能１０４は、自身の識別子を決定部１０５に送信し、自身に対応付けられているポート番号を要求する。
Ｓ７０２において、ＨＴＴＰサーバ機能１０４は、Ｓ７０１での要求に応じて決定部１０５から送信されたポート番号を取得する。
Ｓ７０３において、ＨＴＴＰサーバ機能１０４は、Ｓ７０２で取得したポート番号で、自身が用いるサーバソケットを生成する。
【００３６】
Ｓ７０４において、ＨＴＴＰサーバ機能１０４は、自身の初期化処理として設定された処理を行う。
Ｓ７０５において、ＨＴＴＰサーバ機能１０４は、Ｓ７０３で生成したサーバソケットを介して、クライアントからのリクエストの待ち受けを開始する。
【００３７】
Ｓ７０６において、決定部１０５は、Ｓ７０１で送信された識別子をキーに、ポートテーブル４０１を検索し、この識別子に対応するポート番号を取得する。
Ｓ７０７において、決定部１０５は、Ｓ７０１で送信された識別子の送信元に対して、Ｓ７０６で取得したポート番号を送信する。
本実施形態では、ＨＴＴＰサーバ機能１０６それぞれについても、画像処理装置１０１の起動の際に、Ｓ７０１〜Ｓ７０５と同様の処理を実行する。また、それに合わせて、決定部１０５は、Ｓ７０６、Ｓ７０７と同様の処理を実行する。これにより、ＨＴＴＰサーバ機能１０６それぞれについてもポート番号が設定される。
【００３８】
以上、本実施形態では、画像処理装置１０１は、設定された期間内に最も多くのリクエストがなされたＨＴＴＰサーバ機能を、他のＨＴＴＰサーバ機能を介さずクライアントと通信する主ＨＴＴＰサーバ機能に決定した。そして、画像処理装置１０１は、主ＨＴＴＰサーバ機能に対して、公開されている予め定められたポート番号を設定した。これにより、このポート番号が設定されたＨＴＴＰサーバ機能は、以降、他のＨＴＴＰサーバ機能を介することなく、ブラウザ１１１等のクライアントと通信を行うことができるようになる。
このように、画像処理装置１０１は、リクエストの回数が最も多いＨＴＴＰサーバ機能を、主ＨＴＴＰサーバ機能にすることで、主ＨＴＴＰサーバ機能と従ＨＴＴＰサーバ機能との間での通信の回数を低減できる。これにより、画像処理装置１０１は、主ＨＴＴＰサーバ機能と従ＨＴＴＰサーバ機能との間での通信にかかるリソースの負荷を低減できる。また、画像処理装置１０１は、主ＨＴＴＰサーバ機能と従ＨＴＴＰサーバ機能との間での通信にかかるリソースの負荷を低減することで、レスポンスの返信までにかかる時間の低減を支援できる。
【００３９】
＜実施形態２＞
本実施形態では、画像処理装置１０１は、各ＨＴＴＰサーバ機能をリクエストの対象として送受信されたリクエスト・レスポンスのデータ量に基づいて、主ＨＴＴＰサーバ機能を決定する。
本実施形態の画像処理装置１０１のハードウェア構成、機能構成は、実施形態１と同様である。
【００４０】
本実施形態では、決定部１０５は、ストレージ装置１５４に記憶された図９に示す情報を利用して処理を実行する。即ち、決定部１０５は、ストレージ装置１５４に記憶されたポートテーブル４０１、通信データ量テーブル８０１、転送データ量テーブル８０２を利用する。
ポートテーブル４０１は、図５と同様である。
通信データ量テーブル８０１は、主ＨＴＴＰサーバ機能が受信したリクエストのデータ量と主ＨＴＴＰサーバ機能がクライアントに送信したレスポンスのデータ量との合計を格納する。
【００４１】
転送データ量テーブル８０２は、従ＨＴＴＰサーバ識別子、転送量の項目を含む。従ＨＴＴＰサーバ識別子は、従ＨＴＴＰサーバ機能の識別子を示す。転送量は、対応する従ＨＴＴＰサーバ機能と主ＨＴＴＰサーバ機能との間で送受信されたデータ量の合計を示す。従ＨＴＴＰサーバ機能と主ＨＴＴＰサーバ機能との間で送受信されたデータとは、主ＨＴＴＰサーバ機能から従ＨＴＴＰサーバ機能に送信されたリクエストと、従ＨＴＴＰサーバ機能から主ＨＴＴＰサーバ機能に送信されるレスポンスと、である。
本実施形態では、画像処理装置１０１は、通信データ量テーブル８０１と転送データ量テーブル８０２とを同期して初期化させ、その後に、リクエストが行われる毎に、通信データ量テーブル８０１と転送データ量テーブル８０２との更新を行う。
【００４２】
図１０は、本実施形態の画像処理装置１０１がリクエストを受信した際の処理の一例を示すフローチャートである。
図１０のＳ９０１〜Ｓ９１４は、主ＨＴＴＰサーバ機能の処理である。図１０のＳ５２１〜Ｓ５２４は、リクエストの対象である従ＨＴＴＰサーバ機能の処理である。図１０のＳ５２１〜Ｓ５２４は、それぞれ図６と同様の処理である。図１０の処理のうち、図６と異なる点について説明する。
【００４３】
Ｓ９０１において、主ＨＴＴＰサーバ機能は、クライアントであるブラウザ１１１から、ポート番号８０に対して送信されたリクエストのデータを受信する。
Ｓ９０２において、主ＨＴＴＰサーバ機能は、Ｓ９０１で受信したリクエストのデータ量をストレージ装置１５４に記憶された通信データ量テーブル８０１の通信量に追加する。
Ｓ９０３において、主ＨＴＴＰサーバ機能は、Ｓ９０１で受信したリクエストからリクエストパスを取得する。リクエストパスとは、どのＷｅｂアプリケーションに対しての要求であるかを示す情報である。
【００４４】
Ｓ９０４において、主ＨＴＴＰサーバ機能は、ストレージ装置１５４に記憶された転送先テーブル１０９から、Ｓ９０３で取得したリクエストパスに対応するＨＴＴＰサーバ機能の識別子を取得する。
主ＨＴＴＰサーバ機能は、転送先テーブル１０９に、Ｓ９０３で取得したリクエストパスに対応するＨＴＴＰサーバ機能の識別子の情報がない場合、存在しないリクエストパスへのリクエストに対する対応として以下の処理を行う。即ち、主ＨＴＴＰサーバ機能は、ＨＴＴＰステイタス４０４を、リクエスト元に返し、図１０の処理を終了する。
【００４５】
Ｓ９０５において、主ＨＴＴＰサーバ機能は、Ｓ９０４で取得したＨＴＴＰサーバの識別子をキーにポートテーブル４０１を検索し、この識別子に対応するポート番号を取得する。
Ｓ９０６において、主ＨＴＴＰサーバ機能は、Ｓ９０５で取得したポート番号が、主ＨＴＴＰサーバ機能に割当てられるポート番号として予め定められた番号（本実施形態では、８０）であるか否かを判定する。
主ＨＴＴＰサーバ機能は、Ｓ９０５で取得したポート番号が８０であると判定した場合、Ｓ９０１で受信したリクエストが自身に対するリクエストであるとして、処理をＳ９０７に進める。また、主ＨＴＴＰサーバ機能は、Ｓ９０５で取得したポート番号が８０でないと判定した場合、Ｓ９０１で受信したリクエストが、自身に対するリクエストでないとして、処理をＳ９１０に進める。
【００４６】
Ｓ９０７において、主ＨＴＴＰサーバ機能は、Ｓ９０３で取得したリクエストパスに対応するＷｅｂアプリケーションを呼び出し、Ｗｅｂアプリケーションに処理を委譲する。そして、主ＨＴＴＰサーバ機能は、処理を委譲したＷｅｂアプリケーションから、処理の結果を、レスポンスとして取得する。
Ｓ９０８において、主ＨＴＴＰサーバ機能は、Ｓ９０７、Ｓ９１３の何れか１つで、取得したレスポンスを、Ｓ９０１で受信したリクエストの送信元に送信する。
Ｓ９０９において、主ＨＴＴＰサーバ機能は、Ｓ９０８で送信したレスポンスのデータ量をストレージ装置１５４に記憶された通信データ量テーブル８０１の通信量に追加する。
【００４７】
Ｓ９１０において、主ＨＴＴＰサーバ機能は、Ｓ９０４で取得した識別子をキーに、ストレージ装置１５４に記憶された転送データ量テーブル８０２を検索し、この識別子に対応するレコードを特定する。
Ｓ９１１において、主ＨＴＴＰサーバ機能は、Ｓ９０５で取得したポート番号に基づいて、Ｓ９０４で取得した識別子に対応する従ＨＴＴＰサーバ機能に対し、内部ネットワーク２０１を介して、Ｓ９０１で受信したリクエストを送信する。Ｓ９１１で送信されたリクエストの送信先の従ＨＴＴＰサーバ機能は、このリクエストの受信に応じて、Ｓ５２１〜Ｓ５２４の処理を実行する。
Ｓ９１２において、主ＨＴＴＰサーバ機能は、転送データ量テーブル８０２におけるＳ９１０で特定したレコードの転送量に、Ｓ９１１で送信したリクエストのデータ量を追加する。
【００４８】
Ｓ９１３において、主ＨＴＴＰサーバ機能は、Ｓ９１１で送信したリクエストの送信先の従ＨＴＴＰサーバ機能から、このリクエストに対する処理の結果を、レスポンスとして取得する。
Ｓ９１４において、主ＨＴＴＰサーバ機能は、転送データ量テーブル８０２におけるＳ９１０で特定したレコードの転送量に、Ｓ９１３で受信したレスポンスのデータ量を追加する。
【００４９】
図１１は、本実施形態の主ＨＴＴＰサーバ機能の決定処理の一例を示すフローチャートである。本実施形態では、決定部１０５は、設定された期間における、ＨＴＴＰサーバ機能それぞれについての、送受信されたリクエストとレスポンスとのデータ量の合計に基づいて、主ＨＴＴＰサーバ機能を決定する。本実施形態では、この設定された期間は、通信データ量テーブル８０１、及び、転送データ量テーブル８０２が初期化された時点のうち最新の時点から図１１の処理時点までの期間である。設定された期間における、ＨＴＴＰサーバ機能それぞれについての、送受信されたリクエストとレスポンスとのデータ量の合計は、主ＨＴＴＰサーバ機能の決定に用いられる決定条件の一例である。
本実施形態では、決定部１０５は、画像処理装置１０１の起動の際に、図１１の処理を行うこととする。ただし、他の例として、決定部１０５は、他のタイミングで図１１の処理を行うこととしてもよい。例えば、決定部１０５は、転送データ量テーブル８０２の内容が更新されたことに応じて、図１１の処理を行うこととしてもよい。また、決定部１０５は、画像処理装置１０１のシャットダウンの際に図１１の処理を行うこととしてもよい。また、決定部１０５は、画像処理装置１０１の起動処理において最初に起動したＨＴＴＰサーバ機能からポート番号取得要求が行われたことに応じて、図１１の処理を行ってもよい。
【００５０】
Ｓ１６０１において、決定部１０５は、ストレージ装置１５４に記憶された転送データ量テーブル８０２に格納されている各従ＨＴＴＰサーバ機能について転送量の合計値を求める。
Ｓ１６０２において、決定部１０５は、ストレージ装置１５４に記憶された通信データ量テーブル８０１から、主ＨＴＴＰサーバ機能が送受信したリクエスト・レスポンスのデータ量の合計を取得する。
Ｓ１６０３において、決定部１０５は、Ｓ１６０２で取得したデータ量から、Ｓ１６０１で求めた転送量の合計を引いた値を、主ＨＴＴＰサーバ機能をリクエストの対象として送受信されたリクエスト・レスポンスのデータ量の合計として求める。
【００５１】
Ｓ１６０４において、決定部１０５は、転送データ量テーブル８０２に格納されている各従ＨＴＴＰサーバ機能をリクエストの対象として送受信されたリクエスト・レスポンスのデータ量の合計を取得する。そして、決定部１０５は、取得した各従ＨＴＴＰサーバ機能それぞれについてのデータ量と、Ｓ１６０３で求めた主ＨＴＴＰサーバ機能についてのデータ量と、のうちの最大のデータ量を特定する。そして、決定部１０５は、特定したデータ量に対応するＨＴＴＰサーバ機能の識別子を取得する。
Ｓ１６０５において、決定部１０５は、Ｓ１６０４で取得した識別子に対応するＨＴＴＰサーバ機能が、現在の主ＨＴＴＰサーバ機能であるか否かを判定する。本実施形態では、決定部１０５は、ポートテーブル４０１に格納されたＳ６０４で取得した識別子に対応するポート番号が８０である場合、この識別子に対応するＨＴＴＰサーバ機能が現在の主ＨＴＴＰサーバ機能であると判定し、図１１の処理を終了する。また、決定部１０５は、ポートテーブル４０１に記憶されたＳ１６０４で取得した識別子に対応するポート番号が８０でない場合、この識別子に対応するＨＴＴＰサーバ機能が現在の主ＨＴＴＰサーバ機能でないと判定し、処理をＳ１６０６に進める。
【００５２】
Ｓ１６０６において、決定部１０５は、ポートテーブル４０１からＳ１６０４で取得した識別子に対応するＨＴＴＰサーバのポート番号を取得する。
Ｓ１６０７において、決定部１０５は、ポートテーブル４０１に格納されている現在の主ＨＴＴＰサーバ機能のポート番号を、Ｓ１６０６で取得したポート番号に変更する。
【００５３】
Ｓ１６０８において、決定部１０５は、ポートテーブル４０１に格納されているＳ１６０４で取得した識別子に対応するＨＴＴＰサーバ機能のポート番号を、主ＨＴＴＰサーバ機能のポート番号である８０に変更する。これにより、決定部１０５は、Ｓ６０４で取得した識別子に対応するＨＴＴＰサーバ機能を、主ＨＴＴＰサーバ機能に決定する。
本実施形態のＨＴＴＰサーバ機能に対するポート番号の設定処理は、図８の処理と同様である。
【００５４】
以上、本実施形態では、画像処理装置１０１は、設定された期間内に、最大のデータ量のリクエスト・レスポンスの送受信がなされたＨＴＴＰサーバ機能を、主ＨＴＴＰサーバ機能に決定した。そして、画像処理装置１０１は、主ＨＴＴＰサーバ機能に対して、公開されている予め定められたポート番号を割り当てた。これにより、このポート番号が設定されたＨＴＴＰサーバ機能は、以降、他のＨＴＴＰサーバ機能を介することなく、ブラウザ１１１等のクライアントと通信を行うことができるようになる。
このように、画像処理装置１０１は、リクエスト・レスポンスのデータ量が最も大きいＨＴＴＰサーバ機能を、主ＨＴＴＰサーバ機能にすることで、主ＨＴＴＰサーバ機能と従ＨＴＴＰサーバ機能との間で通信されるデータ量を低減できる。これにより、画像処理装置１０１は、主ＨＴＴＰサーバ機能と従ＨＴＴＰサーバ機能との間での通信にかかるリソースの負荷を低減できる。また、画像処理装置１０１は、主ＨＴＴＰサーバ機能と従ＨＴＴＰサーバ機能との間での通信にかかるリソースの負荷を低減することで、レスポンスの返信までにかかる時間の低減を支援できる。
【００５５】
＜実施形態３＞
本実施形態の画像処理装置１０１は、認証Ｗｅｂアプリケーションを有するＨＴＴＰサーバ機能を、主ＨＴＴＰサーバ機能とする処理を行う。
本実施形態の画像処理装置１０１のハードウェア構成、機能構成は、実施形態１と同様である。
【００５６】
認証Ｗｅｂアプリケーションは、ユーザＩＤ、パスワードの入力を受付けユーザの認証を行う認証機能を実現し、ユーザが画像処理装置１０１内のＨＴＴＰサーバ機能にアクセスする際に必ず少なくとも１回はアクセスされるアプリケーションである。そのため、認証Ｗｅｂアプリケーションは、リクエストがなされる頻度が、他のアプリケーションに比べて高い。
本実施形態では、決定部１０５は、ストレージ装置１５４に記憶されたポートテーブル４０１を用いて、処理を実行する。本実施形態で、ストレージ装置１５４に記憶されたポートテーブル４０１は、図５等で説明したポートテーブル４０１と同様である。
【００５７】
図１２は、本実施形態の画像処理装置１０１が実行する主ＨＴＴＰサーバ機能の決定処理の一例を示すフローチャートである。本実施形態の画像処理装置１０１は、各ＨＴＴＰサーバ機能が認証機能を有するか否かに基づいて、主ＨＴＴＰサーバ機能を決定する。各ＨＴＴＰサーバ機能が認証機能を有するか否かは、主ＨＴＴＰサーバ機能の決定に用いられる決定条件の一例である。
画像処理装置１０１は、図１２の処理を、認証Ｗｅｂアプリケーションがインストールされたことに応じて実行する。ただし、他の例として、画像処理装置１０１は、画像処理装置１０１の起動の際に、図１２の処理を行ってもよい。また、画像処理装置１０１に複数の認証Ｗｅｂアプリケーションがインストールされている場合、画像処理装置１０１は、使用される認証Ｗｅｂアプリケーションの切り替えが行われたことに応じて、図１２の処理を行ってもよい。ただし、その場合、以下で説明するＳ１１０３の処理における「認証Ｗｅｂアプリケーション」を「使用される認証Ｗｅｂアプリケーション」に読み替える。
【００５８】
Ｓ１１０１において、決定部１０５は、ストレージ装置１５４に記憶された転送先テーブル１０９から、１つのレコードを取得する。
Ｓ１１０２において、決定部１０５は、Ｓ１１０１で取得したレコードからパスを取得する。
【００５９】
Ｓ１１０３において、決定部１０５は、Ｓ１１０２で取得したパスが、認証Ｗｅｂアプリケーションのパスであるか否かを判定する。
決定部１０５は、Ｓ１１０２で取得したパスが認証Ｗｅｂアプリケーションのパスであると判定した場合、処理をＳ１１０５に進め、Ｓ１１０２で取得したパスが認証Ｗｅｂアプリケーションのパスでないと判定した場合、処理をＳ１１０４に進める。
【００６０】
Ｓ１１０４において、決定部１０５は、最新のＳ１１０１の処理で取得されたレコードが転送先テーブル１０９における最後のレコードであるか否かを判定する。
決定部１０５は、最新のＳ１１０１の処理で取得されたレコードが転送先テーブル１０９における最後のレコードであると判定した場合、図１２の処理を終了する。また、決定部１０５は、最新のＳ１１０１の処理で取得されたレコードが転送先テーブル１０９における最後のレコードでないと判定した場合、処理をＳ１１０１に進める。
【００６１】
Ｓ１１０５において、決定部１０５は、最新のＳ１１０１で取得したレコードからＨＴＴＰサーバ機能の識別子を取得する。
Ｓ１１０６において、決定部１０５は、ストレージ装置１５４に記憶されたポートテーブル４０１を検索し、Ｓ１１０５で取得した識別子に対応するポート番号を取得する。
【００６２】
Ｓ１１０７において、決定部１０５は、Ｓ１１０６で取得したポート番号が主ＨＴＴＰサーバ機能のポート番号として予め定められたポート番号（本実施形態では、８０）であるか否かを判定する。
決定部１０５は、Ｓ１１０６で取得したポート番号が８０であると判定した場合、図１２の処理を終了し、Ｓ１１０６で取得したポート番号が８０でないと判定した場合、処理をＳ１１０８に進める。
【００６３】
Ｓ１１０８において、決定部１０５は、ポートテーブル４０１を検索し、主ＨＴＴＰサーバ機能のポート番号（８０）に対応するレコードを特定する。
Ｓ１１０９において、決定部１０５は、ポートテーブル４０１を検索し、Ｓ１１０５で取得した識別子に対応するレコードを特定する。
【００６４】
Ｓ１１１０において、決定部１０５は、ポートテーブル４０１における最新のＳ１１０１で取得したレコードとＳ１１０９で取得したレコードとについて、ポート番号を入れ替える。このように、決定部１０５は、認証Ｗｅｂアプリケーションを有するＨＴＴＰＷｅｂサーバ機能に予め定められたポート番号（８０）を割当てることで、このＨＴＴＰＷｅｂサーバ機能を主ＨＴＴＰサーバ機能に決定する。
本実施形態のＨＴＴＰサーバ機能に対するポート番号の設定処理は、図８の処理と同様である。
【００６５】
以上、本実施形態の処理により、画像処理装置１０１は、アクセス頻度が相対的に高い認証Ｗｅｂアプリケーションを有するＨＴＴＰサーバ機能を主ＨＴＴＰサーバに決定する。これにより、画像処理装置１０１は、主ＨＴＴＰサーバ機能と従ＨＴＴＰサーバ機能との通信にかかるリソースの負担を低減できる。
本実施形態では、画像処理装置１０１は、認証Ｗｅｂアプリケーションを有するＨＴＴＰサーバ機能を主ＨＴＴＰサーバに決定することとした。ただし、他の例として、画像処理装置１０１は、リクエストを受ける頻度が相対的に高いＷｅｂアプリケーションであれば、他のＷｅｂアプリケーションを有するＨＴＴＰサーバ機能を主ＨＴＴＰサーバに決定することとしてもよい。例えば、印刷制御を行うＷｅｂアプリケーションが他のＷｅｂアプリケーションに比べて、リクエストを受ける頻度が高い場合、画像処理装置１０１は、そのＷｅｂアプリケーションを有するＨＴＴＰサーバ機能を主ＨＴＴＰサーバに決定することとしてもよい。
【００６６】
＜実施形態４＞
ＨＴＴＰサーバ機能は、Ｗｅｂアプリケーションを多く有する程、より多くの多様なリクエストを受ける可能性が大きくなる。そこで、本実施形態の画像処理装置１０１は、各ＨＴＴＰサーバ機能が有するＷｅｂアプリケーションの数に基づいて、主ＨＴＴＰサーバ機能を決定する。各ＨＴＴＰサーバ機能が有するＷｅｂアプリケーションの数は、主ＨＴＴＰサーバ機能の決定に用いられる決定条件の一例である。
本実施形態の画像処理装置１０１のハードウェア構成、機能構成は、実施形態１と同様である。
本実施形態の処理のうち、実施形態１と異なる点について説明する。
【００６７】
本実施形態の画像処理装置１０１は、図６の処理のうち、Ｓ５０４、Ｓ５０９、Ｓ５１０の処理を行わない。
また、本実施形態の決定部１０５は、図７の処理の代わりに以下のような処理を行う。即ち、決定部１０５は、ＨＴＴＰサーバ機能１０４、ＨＴＴＰサーバ機能１０６それぞれについて、有するＷｅｂアプリケーションの数を取得する。そして、決定部１０５は、ＨＴＴＰサーバ機能１０４、ＨＴＴＰサーバ機能１０６それぞれのうち、最も多くのＷｅｂアプリケーションを有するＨＴＴＰサーバ機能を特定する。
そして、決定部１０５は、ストレージ装置１５４に記憶されたポートテーブル４０１における特定したＨＴＴＰサーバ機能の識別子に対応するポート番号の項目に、主ＨＴＴＰサーバ機能のポート番号として予め定められたポート番号を設定する。このようにして、決定部１０５は、主ＨＴＴＰサーバ機能を決定する。
その後、画像処理装置１０１は、図８と同様の処理を行うことで、主ＨＴＴＰサーバ機能として、決定された機能に対して、予め定められたポート番号を設定する。
【００６８】
以上、本実施形態では、画像処理装置１０１は、最も多くのＷｅｂアプリケーションを有するＨＴＴＰサーバ機能を、主ＨＴＴＰサーバ機能にすることで、主ＨＴＴＰサーバ機能と従ＨＴＴＰサーバ機能との間での通信の回数を低減できる。これにより、画像処理装置１０１は、主ＨＴＴＰサーバ機能と従ＨＴＴＰサーバ機能との間での通信にかかるリソースの負荷を低減できる。
【００６９】
＜実施形態５＞
画像処理装置１０１において、エラー等により主ＨＴＴＰサーバ機能が起動しない場合がある。そのような場合、クライアントは、主ＨＴＴＰサーバのポート番号にリクエストを送信しても、通信できない。
そこで、本実施形態の画像処理装置１０１は、主ＨＴＴＰサーバ機能が起動しない場合、他のＨＴＴＰサーバ機能を主ＨＴＴＰサーバ機能として起動する。
本実施形態の画像処理装置１０１のハードウェア構成、機能構成は、実施形態１と同様である。
【００７０】
本実施形態では、決定部１０５は、ストレージ装置１５４に記憶された図１３に示すポートテーブル４０１、デフォルトサーバテーブル１２０１を利用して処理を実行する。
ポートテーブル４０１は、図５と同様である。
デフォルトサーバテーブル１２０１は、主ＨＴＴＰサーバ機能の起動が失敗した場合に、代わりに主ＨＴＴＰサーバ機能として起動されるＨＴＴＰサーバ機能の識別子が格納されるテーブルである。以下では、主ＨＴＴＰサーバ機能の起動が失敗した場合に、代わりに主ＨＴＴＰサーバ機能として起動されるＨＴＴＰサーバ機能を、デフォルトサーバ機能とする。図１３の例では、デフォルトサーバテーブル１２０１には、システムアプリ用ＨＴＴＰサーバの識別子が格納されている。
本実施形態の画像処理装置１０１は、ＨＴＴＰサーバ機能の起動に関するモードとして、通常起動モードと、セーフ起動モードと、の２つを有する。通常起動モードは、各ＨＴＴＰサーバ機能の起動の際に、各ＨＴＴＰサーバ機能に対して、ポートテーブル４０１に従って、ポート番号を設定するモードである。セーフ起動モードは、各ＨＴＴＰサーバ機能の起動の際に、デフォルトサーバ機能のみに対して、あらかじめ定めらえたポート番号を設定し、他のＨＴＴＰサーバ機能にはポート番号を設定しないモードである。
【００７１】
図１４は、各ＨＴＴＰサーバ機能の起動の際のポート番号設定処理の一例を示すフローチャートである。決定部１０５は、各ＨＴＴＰサーバ機能からポート番号の要求を受ける度に、図１４の処理を実行する。そのため、決定部１０５は、複数のＨＴＴＰサーバ機能それぞれからポート番号の要求を受けた場合、並列に図１４の処理を実行することとなる。そのため、並列に行われる複数の図１４の処理で、それぞれＳ１４０３の処理が並列に行われる場合、複数の図１５の処理が並列して行われることとなる。
Ｓ１４０１において、決定部１０５は、画像処理装置１０１のＨＴＴＰサーバ機能の起動モードを取得する。
Ｓ１４０２において、決定部１０５は、Ｓ１４０２で取得した起動モードがセーフ起動モードであるか否かを判定する。決定部１０５は、Ｓ１４０２で取得した起動モードがセーフ起動モードであると判定した場合、処理をＳ１４０４に進め、Ｓ１４０２で取得した起動モードがセーフ起動モードでないと判定した場合、処理をＳ１４０３に進める。
【００７２】
Ｓ１４０３において、決定部１０５は、通常起動モードにおけるポート番号の設定処理を行う。Ｓ１４０３の処理は、図１５で後述する。
Ｓ１４０４において、決定部１０５は、ストレージ装置１５４に記憶されたデフォルトサーバテーブル１２０１に格納されたデフォルトサーバ機能の識別子を取得する。
Ｓ１４０５において、決定部１０５は、受けたポート番号の要求の要求元であるＨＴＴＰサーバ機能の識別子とＳ１４０４で取得した識別子とが同じであるか否かを判定する。決定部１０５は、受けたポート番号の要求の要求元であるＨＴＴＰサーバ機能の識別子とＳ１４０４で取得した識別子とが同じであると判定した場合、処理をＳ１４０６に進める。決定部１０５は、受けたポート番号の要求の要求元であるＨＴＴＰサーバ機能の識別子とＳ１４０４で取得した識別子とが同じでないと判定した場合、処理をＳ１４０７に進める。
【００７３】
Ｓ１４０６において、決定部１０５は、受けたポート番号の要求元に、主ＨＴＴＰサーバのポート番号としてあらかじめ定められたポート番号８０を送信し、ポート番号の設定を行うよう指示する。
Ｓ１４０７において、決定部１０５は、ポート番号を要求してきたＨＴＴＰサーバ機能については起動をさせないとして、あらかじめ定められたエラー処理を行う。
以上の処理により、セーフ起動モードの場合、デフォルトサーバ機能のみがポート番号を設定され、起動されることとなる。
【００７４】
図１５を用いて、通常起動モードの場合の各ＨＴＴＰサーバ機能のポート番号設定処理（Ｓ１４０３）の詳細を説明する。
Ｓ１３０１において、決定部１０５は、ポート番号を要求したＨＴＴＰサーバ機能の識別子をキーに、ポートテーブル４０１の検索を行い、このキーに対応するレコードを特定する。
Ｓ１３０２において、決定部１０５は、Ｓ１３１０１で特定したレコードからポート番号を取得する。
【００７５】
Ｓ１３０３において、決定部１０５は、Ｓ１３０２で取得したポート番号が主ＨＴＴＰサーバ機能のポート番号として予め定められたポート番号（本実施形態では、８０）である否かを判定する。決定部１０５は、Ｓ１３０２で取得したポート番号が８０であると判定した場合、処理をＳ１３０４に進め、Ｓ１３０２で取得したポート番号が８０でないと判定した場合、処理をＳ１３０５に進める。
Ｓ１３０４において、決定部１０５は、ポート番号８０を、ポート番号の要求元に送信し、ポート番号の設定を指示する。そして、決定部１０５は、ＲＡＭ１５３に主ＨＴＴＰサーバ機能へのポート番号の設定が完了したことを示す情報（以下では、設定完了情報とする）を記憶する。この設定完了情報により、並列で行われている図１５の処理に対して、主ＨＴＴＰサーバ機能へのポート番号の設定が完了したことが通知される。
【００７６】
Ｓ１３０５において、決定部１０５は、ＲＡＭ１５３に設定完了情報が記憶される時点、又は、予め決められたタイムアウト時間が経過する時点まで待機する。
Ｓ１３０６において、決定部１０５は、ＲＡＭ１５３に設定完了情報が記憶されているか否かを判定する。決定部１０５は、ＲＡＭ１５３に設定完了情報が記憶されていると判定した場合、ポート番号の要求元に対してＳ１３０２で取得したポート番号を送信し、ポート番号の設定を指示する。
【００７７】
Ｓ１３０７〜Ｓ１３１２では、決定部１０５は、タイムアウトまでに主ＨＴＴＰサーバ機能のポート番号の設定が完了しておらず、主ＨＴＴＰサーバ機能の起動になんらかの問題が発生したとしてデフォルトサーバ機能を主ＨＴＴＰサーバ機能として起動する。
Ｓ１３０７において、決定部１０５は、デフォルトサーバテーブル１２０１からデフォルトサーバ機能の識別子を取得する。
Ｓ１３０８において、決定部１０５は、Ｓ１３０８で取得した識別子をキーに、ポートテーブル４０１の検索をおこない、このキーに対応するポート番号を取得する。
【００７８】
Ｓ１３０９において、決定部１０５は、Ｓ１３０８で取得したポート番号が主ＨＴＴＰサーバのポート番号として予め定められたポート番号（８０）であるか否かを判定する。決定部１０５は、Ｓ１３０８で取得したポート番号が主ＨＴＴＰサーバのポート番号が８０であると判定した場合、処理をＳ１３１２に進め、Ｓ１３０８で取得したポート番号が主ＨＴＴＰサーバのポート番号が８０でないと判定した場合、処理をＳ１３１０に進める。
Ｓ１３１０において、決定部１０５は、ポート番号の要求元のＨＴＴＰサーバ機能の識別子とデフォルトサーバ機能の識別子とが同じであるか否かを判定する。決定部１０５は、ポート番号の要求元のＨＴＴＰサーバ機能の識別子とデフォルトサーバ機能の識別子とが同じであると判定した場合、処理をＳ１３１２に進める。決定部１０５は、ポート番号の要求元のＨＴＴＰサーバ機能の識別子とデフォルトサーバ機能の識別子とが同じでないと判定した場合、ポート番号の要求元に対してＳ１３０２で取得したポート番号を送信し、ポート番号の設定を指示する。
Ｓ１３１１において、決定部１０５は、ポート番号の要求元に対して、主ＨＴＴＰサーバ機能のポート番号としてあらかじめ定められたポート番号（８０）を送信し、ポート番号の設定を指示する。
Ｓ１３１２において、決定部１０５は、デフォルトサーバ機能が起動に失敗した主ＨＴＴＰサーバ機能であるということになるため、あらかじめ定められたエラー処理を行う。ただし、他の例として、決定部１０５は、エラー処理の代わりに、他のＨＴＴＰサーバ機能に対して、主ＨＴＴＰサーバ機能のポート番号を設定する処理を行ってもよい。
【００７９】
以上、本実施形態の処理により画像処理装置１０１は、主ＨＴＴＰサーバ機能の起動が失敗した場合でもデフォルトサーバ機能を主ＨＴＴＰサーバ機能として起動させることで、有用性をより向上できる。また、画像処理装置１０１は、セーフ起動モードの場合、起動時間を早め、転送に必要なリソース、転送時間を最小化することができる。
【００８０】
＜その他の実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００８１】
例えば、上述した画像処理装置１０１  の機能構成の一部又は全てをハードウェアとして画像処理装置１０１に実装してもよい。以上、本発明の実施形態の一例について詳述したが、本発明は係る特定の実施形態に限定されるものではない。例えば、上述した各実施形態を任意に組み合わせる等してもよい。
【符号の説明】
【００８２】
１０１  画像処理装置
１５１  ＣＰＵ
【図１】
2020160535.tif 000003
【図２】
2020160535.tif 000004
【図３】
2020160535.tif 000005
【図４】
2020160535.tif 000006
【図５】
2020160535.tif 000007
【図６】
2020160535.tif 000008
【図７】
2020160535.tif 000009
【図８】
2020160535.tif 000010
【図９】
2020160535.tif 000011
【図１０】
2020160535.tif 000012
【図１１】
2020160535.tif 000013
【図１２】
2020160535.tif 000014
【図１３】
2020160535.tif 000015
【図１４】
2020160535.tif 000016
【図１５】
2020160535.tif 000017