(57)【要約】【課題】情報処理装置に複数のＩＰアドレスが設定されている場合に、外部装置との通信に用いられるＩＰアドレスを取得すること。【解決手段】情報処理装置に複数のＩＰアドレスが設定されていると判断された場合に、外部装置にソケットの接続を行い、前記ソケットから接続元ＩＰアドレスを取得する。【選択図】図４
2019128860.tif 000002
【特許請求の範囲】
【請求項１】
外部装置（１０２）と通信する情報処理装置（１０１）であって、
前記情報処理装置に設定されているＩＰアドレスを取得する第１のＩＰアドレス取得手段（Ｓ４０１）と、
第１のＩＰアドレス取得手段によって取得されたＩＰアドレスから、前記情報処理装置に複数のＩＰアドレスが設定されているかどうかを判断する複数設定判断手段（Ｓ４０３）と、
前記複数設定判断手段によって、前記情報処理装置に複数のＩＰアドレスが設定されていると判断された場合に、前記外部装置にソケットの接続を行い、前記ソケットから接続元ＩＰアドレスを取得する第２のＩＰアドレス取得手段（Ｓ４０４、Ｓ４０５）と、
前記第２のＩＰアドレス取得手段によって取得された前記接続元ＩＰアドレスを前記外部装置に送信するＩＰアドレス送信手段（Ｓ４０６）と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記ＩＰアドレス送信手段は、さらに、前記複数設定判断手段によって、前記第１のＩＰアドレス取得手段でＩＰアドレスが１つしか取得されなかったと判断された場合に、前記第１のＩＰアドレス取得手段で取得された前記ＩＰアドレスを前記外部装置に送信する（Ｓ４０７）ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記情報処理装置は、前記ＩＰアドレス送信手段によって前記外部装置に送信されたＩＰアドレスを記憶する第１の記憶手段（Ｓ４０８、Ｓ５０６）をさらに備えることを特徴とする請求項１又は請求項２に記載の情報処理装置。
【請求項４】
前記情報処理装置は、前記情報処理装置に設定されているＩＰアドレスが変更されたイベントを検知するイベント検知手段（Ｓ５０１）をさらに備え、前記第２のＩＰアドレス取得手段は、さらに、前記イベント検知手段がイベントを検知した場合に、前記外部装置にソケットの接続を行い、前記ソケットから接続元ＩＰアドレスを取得し（Ｓ５０２、Ｓ５０３）、前記ＩＰアドレス送信手段は、さらに、前記第２のＩＰアドレス取得手段によって取得された前記接続元ＩＰアドレスが、前記第１の記憶手段が記憶しているＩＰアドレスと異なっている場合に、取得された前記接続元ＩＰアドレスを前記外部装置に送信する（Ｓ５０４、Ｓ５０５）ことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記情報処理装置は、前記第１のＩＰアドレス取得手段で取得されたＩＰアドレスを記憶する第２の記憶手段（Ｓ６０１、Ｓ６２０）と、前記第１のＩＰアドレス取得手段によって取得されるＩＰアドレスと、前記第２の記憶手段によって記憶されているＩＰアドレスとを比較して、前記情報処理装置に設定されているＩＰアドレスに変更があったかどうかを判断する設定変更確認手段（Ｓ６１４）と、をさらに備え、前記第２のＩＰアドレス取得手段は、さらに、前記設定変更確認手段によって、前記情報処理装置に設定されているＩＰアドレスが変更されたと判断された場合に、前記外部装置にソケットの接続を行い、前記ソケットから接続元ＩＰアドレスを取得し（Ｓ６１５、Ｓ６１６）、前記ＩＰアドレス送信手段は、さらに、前記第２のＩＰアドレス取得手段によって取得された前記接続元ＩＰアドレスが、前記第１の記憶手段が記憶しているＩＰアドレスと異なっている場合に、取得された前記接続元ＩＰアドレスを前記外部装置に送信する（Ｓ６１７、Ｓ６１８）ことを特徴とする請求項３又は請求項４に記載の情報処理装置。
【請求項６】
前記ＩＰアドレス送信手段は、アプリケーション層プロトコルで前記外部装置に送信を行うことを特徴とする請求項１乃至請求項５の何れか一項に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションが動作する装置に複数のＩＰアドレスが設定されている場合に、アプリケーションが所定の通信相手との通信を行う際に用いられるＩＰアドレスを特定する方法に関する。
【背景技術】
【０００２】
近年、画像形成装置においては、ＪＡＶＡ（登録商標）環境に代表されるようなアプリケーション動作環境が提供されている。これにより、画像形成装置の機能やユーザビリティの向上を図るようなアプリケーションを外部からインストールして使用することが可能となっている。また、開発者は、画像形成装置にインストールするアプリケーションを、一般的なＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）上で動作するアプリケーションと共通の開発言語、共通の開発環境で開発することが可能となっている。
【０００３】
このような画像形成装置にインストールされるアプリケーションの中には、外部のサーバー装置と通信を行い、連携して動作するものがある。そして、このようなアプリケーションの中には、外部の装置からのリクエストを受け付けて処理するサーバー機能を持つものもある。さらに、このようなアプリケーションにおいては、リクエストを受け付けるアドレス情報を外部の装置に通知する機能を備えるものもある。
【０００４】
所定の通信先との通信において、通信先に通知すべき送信元のＩＰアドレスを、プロキシ装置にアドレス要求を送信して取得する技術が知られている（特許文献１参照）。この技術では、通信端末がプロキシ装置を介してインターネットと接続する場合に、通信端末のアプリケーションが使用する送信元アドレスを、プロキシ装置によって割り当てられるグローバルアドレスを事前にプロキシ装置から取得している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−２５３４４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
近年、インターネットサービスや無線ＬＡＮ技術の普及により、画像形成装置を取り巻くネットワーク環境も発展しており、最近の画像形成装置は複数のネットワーク・インターフェース（ネットワークＩ／Ｆ）を備えるようになってきている。
【０００７】
画像形成装置が複数のネットワークＩ／Ｆを備え、それらがネットワークに接続されてＩＰアドレスが割り当てられている場合、画像形成装置にインストールされるアプリケーションでは、通常、複数のＩＰアドレスが取得される。
【０００８】
しかし、どのＩＰアドレスが、所定の外部装置との通信に用いられるＩＰアドレスかの情報は、画像形成装置のプラットフォームによっては得ることができない。このため、例えば、所定の外部装置が存在するネットワークからのリクエストを受ける目的で、アプリケーションが、所定の外部装置に自身のＩＰアドレスを通知したい場合にどのアドレスを使用すれば良いかが分からない。
【０００９】
このような場合、アプリケーションが、所定の外部装置との通信に用いられるソケットから接続元のＩＰアドレスを取得することが考えられる。しかしながら、外部装置との通信に、予め用意されている通信用のライブラリーを利用する場合、ソケットがライブラリー内に隠ぺいされているなどして、アプリケーションがソケットから接続元ＩＰアドレスを取得できるとは限らない。このようなライブラリーには、例えばＳＯＡＰ（Ｓｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ）通信用のライブラリーなどがあり、プラットフォームの違いを吸収したり、開発を効率化したりするなどの目的で用いられる。
【００１０】
一方、特許文献１のような技術によって、外部の装置から、送信元のＩＰアドレスとして使用すべきアドレスを取得する方法が考えられる。
【００１１】
しかしながら、送信元のＩＰアドレスを返すような機能をもともと備えていない外部装置を使用している環境では、既存の装置をそのような機能を持つ外部装置に置き換える手間が生じてしまうという問題がある。
【課題を解決するための手段】
【００１２】
上記の課題を解決するために、本発明に係る情報処理装置は、
外部装置（１０２）と通信する情報処理装置（１０１）であって、
前記情報処理装置に設定されているＩＰアドレスを取得する第１のＩＰアドレス取得手段（Ｓ４０１）と、
第１のＩＰアドレス取得手段によって取得されたＩＰアドレスから、前記情報処理装置に複数のＩＰアドレスが設定されているかどうかを判断する複数設定判断手段（Ｓ４０３）と、
前記複数設定判断手段によって、前記情報処理装置に複数のＩＰアドレスが設定されていると判断された場合に、前記外部装置にソケットの接続を行い、前記ソケットから接続元ＩＰアドレスを取得する第２のＩＰアドレス取得手段（Ｓ４０４、Ｓ４０５）と、
前記第２のＩＰアドレス取得手段によって取得された前記接続元ＩＰアドレスを前記外部装置に送信するＩＰアドレス送信手段（Ｓ４０６）と、
を備えることを特徴とする。
【発明の効果】
【００１３】
本発明に係る情報処理装置によれば、ライブラリーを用いた通信時に接続元のＩＰアドレスが取得できず、また、複数のＩＰアドレスが設定されていたとしても、サーバーとの通信に用いられるＩＰアドレスを取得することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明におけるシステム構成例を示す図
【図２】ＭＦＰのハードウェア構成図
【図３】ＭＦＰのソフトウェア構成図
【図４】実施例１におけるサーバーへの登録処理手順を示すフローチャート
【図５】実施例２におけるＩＰアドレス変更確認処理手順を示すフローチャート
【図６（Ａ）】実施例３におけるサーバーへの登録処理手順を示すフローチャート
【図６（Ｂ）】実施例３におけるＩＰアドレス変更確認処理手順を示すフローチャート
【発明を実施するための形態】
【００１５】
以下、本発明を実施するための形態について図面を用いて説明する。
【００１６】
（実施例１）
本発明の第１の実施例について説明する。図１は、本発明における情報処理システム１００の構成例を示す図である。
【００１７】
本実施例における情報処理システム１００は、ＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）１０１と、サーバー１０２およびそれらに対する設定等を行うシステム管理者用ＰＣ１０３で構成される。なお、情報処理システム１００を構成するこれらの機器は、それぞれが複数台あっても良い。
【００１８】
ＭＦＰ１０１は、ユーザーからの指示を受け付けてコピーやプリント等のジョブを実行する他、ＭＦＰ１０１が備える各種機能を活用するためにインストールされるアプリケーションを実行する。
【００１９】
サーバー１０２は、必要に応じて、ＭＦＰ１０１にインストールされたアプリケーションからのリクエストを処理する。
【００２０】
システム管理者用ＰＣ１０３は、ウェブブラウザーを介してＭＦＰ１０１で稼働しているアプリケーションやサーバー１０２のＵＩ画面にアクセスし、システム管理者に各種設定や情報の表示機能を提供するＰＣである。
【００２１】
図２は、ＭＦＰ１０１のハードウェア構成例を示すブロック図である。
【００２２】
２００はコントローラーユニットであり、スキャナー２２２やプリンター２２３およびネットワークや公衆回線と接続して、画像データやデバイス情報の入出力を行う。
【００２３】
ＣＰＵ２０１は、ＭＦＰ１０１全体の制御を行う。ＲＡＭ２０２は、ＣＰＵ２０１が動作するためのワークメモリーであると共に、入力された画像データを一時記憶するための画像メモリーでもある。ＲＯＭ２０３は、ブートＲＯＭであり、システムのブートプログラムが保存されている。ＨＤＤ２０４は、システムソフトウェア、ジョブ履歴、ユーザーボックス内の画像データ等を保存するハードディスクドライブである。操作部Ｉ／Ｆ２０５は、操作部２２１とのインターフェース部であり、操作部２２１に表示する画面データを操作部２２１に対して出力する。
【００２４】
ネットワークＩ／Ｆ２０６は、ＬＡＮ等のネットワークに接続し、情報の入出力を行う。モデム２０７は、公衆回線に接続し、画像データの入出力を行う。以上のデバイスが、システムバス２０８上に配置される。
【００２５】
イメージバスＩ／Ｆ２０９は、システムバス２０８と、画像データを高速で転送する画像バス２１０とを接続し、データ構造を変換するバスブリッジである。画像バス２１０上には、以下のデバイスが配置される。
【００２６】
ＲＩＰ（ラスターイメージプロセッサー）２１１は、ＰＤＬコードをビットマップイメージに展開する。デバイスＩ／Ｆ２１２は、画像入出力デバイスであるスキャナー２２２及びプリンター２２３と、コントローラーユニット２００とを接続し、画像データの変換を行う。スキャナー画像処理部２１３は、入力画像データに対し補正、加工、編集等を行う。プリンター画像処理部２１４は、出力画像データに対して、プリンターの補正、解像度変換等を行う。画像回転部２１５は、画像データの回転を行う。画像圧縮部２１６は、画像データの圧縮伸長処理を行う。
【００２７】
図３は、ＭＦＰ１０１のソフトウェア構成例を示す図である。
【００２８】
各機能を実現するソフトウェアは、ＲＯＭ２０３またはＨＤＤ２０４に記憶され、ＣＰＵ２０１によって実行される。
【００２９】
ＯＳ３０１は、デバイスのオペレーティングシステム（ＯＳ）である。アプリケーションプラットフォーム３０２は、特定のアプリケーションを実行するためのプラットフォームであり、例えば、ＪＡＶＡ（登録商標）の仮想マシンやフレームワーク、およびライブラリー群などによって構成される。ここでフレームワークは、単一のＪＡＶＡ（登録商標）仮想マシン上で複数のアプリケーションを動作させることを可能とし、アプリケーションのライフサイクルの管理やアプリケーション間通信機能などを提供するものとする。また、ライブラリー群は、ＪＡＶＡ（登録商標）の標準のライブラリーの他、ＭＦＰ１０１を制御するためのインターフェースを提供するライブラリーを含むものとする。
【００３０】
アプリケーション３０３は、アプリケーションプラットフォーム３０２上で動作するアプリケーションであり、ＭＦＰ１０１と協働して各種処理をユーザーに提供する。例えば、印刷枚数の制限を行うアプリケーションや、ＭＦＰ１０１に非搭載の認証方式によるユーザー認証を実現するアプリケーションなどを例として挙げることができる。
【００３１】
本発明におけるアプリケーション３０３は、サーバー１０２との通信に用いられるＩＰアドレスを、サーバー１０２に登録する機能を備えるものとする。これは、サーバー１０２から直接通信を受けることや、サーバー１０２に登録された情報からのリンクなどを介して、ＰＣ１０３からの通信を受け付けるためのものである。
【００３２】
図４は、アプリケーション３０３が、サーバー１０２との通信に用いられるＭＦＰ１０１のＩＰアドレスをサーバー１０２に登録する際の動作を表すフローチャートである。
【００３３】
図４のフローチャートに示す各ステップは、ＭＦＰ１０１のＣＰＵ２０１が、ＲＯＭ２０３またはＨＤＤ２０４に記憶されているアプリケーション３０３のプログラムを実行することで実現される。また、ＣＰＵ２０１は、必要に応じて記憶領域としてＲＡＭ２０２やＨＤＤ２０４を利用する。
【００３４】
ステップＳ４０１において、アプリケーション３０３は、アプリケーションプラットフォーム３０２およびＯＳ３０１を介して取得できるＭＦＰ１０１が持つＩＰアドレスを全て取得する。
【００３５】
ステップＳ４０２において、アプリケーション３０３は、ステップＳ４０１でＩＰアドレスが１つ以上取得されたかどうかを判断する。取得されたＩＰアドレスが１つ以上あった場合、アプリケーション３０３は、処理をステップＳ４０３に進める。取得されたＩＰアドレスが１つもなかった場合、アプリケーション３０３は、サーバー１０２への登録処理を終了する。
【００３６】
ステップＳ４０３において、アプリケーション３０３は、ステップＳ４０１で取得されたＩＰアドレスが複数あるかどうかを判断する。取得されたＩＰアドレスが複数ある場合、アプリケーション３０３は、処理をステップＳ４０４に進める。取得されたＩＰアドレスが１つの場合、アプリケーション３０３は、処理をステップＳ４０７に進める。
【００３７】
ステップＳ４０４において、アプリケーション３０３は、サーバー１０２にソケットの接続を行う。
【００３８】
ステップＳ４０５において、アプリケーション３０３は、ステップＳ４０４でサーバー１０２に接続したソケットから接続元のＩＰアドレスを取得し、ＩＰアドレス取得後、接続していたソケットをクローズする。
【００３９】
ステップＳ４０６において、アプリケーション３０３は、ステップＳ４０５で取得したＩＰアドレスを少なくとも含む登録リクエストをサーバー１０２に送信する。なお、ここで行われる登録リクエストは、本実施例ではＳＯＡＰ通信用のライブラリーを用いたＳＯＡＰ通信とする。また、ここでの登録リクエストには、ＭＦＰ１０１を特定する識別情報等を含んでいても良い。
【００４０】
ステップＳ４０７において、アプリケーション３０３は、ステップＳ４０１で取得されたＩＰアドレスを少なくとも含む登録リクエストをサーバー１０２に送信する。ここでの登録リクエストは、ステップＳ４０６と同様に、本実施例ではＳＯＡＰ通信用のライブラリーを用いたＳＯＡＰ通信とし、ＭＦＰ１０１を特定する識別情報等を含んでいても良い。
【００４１】
ステップＳ４０８において、アプリケーション３０３は、ステップＳ４０６またはステップＳ４０７において、サーバー１０２に送信した接続元ＩＰアドレスを、ＲＡＭ２０２もしくはＨＤＤ２０４のどちらかまたは両方に記憶する。そして、サーバー１０２への登録処理を終了する。
【００４２】
以上のように、実施例１では、ＭＦＰ１０１に複数のＩＰアドレスが設定されている場合に、ライブラリーを用いた通信に先立って、サーバー１０２にソケットの接続を行い、そのソケットから接続元のＩＰアドレスを取得する。これによって、ライブラリーを用いた通信時に接続元のＩＰアドレスが取得できず、また、複数のＩＰアドレスが設定されていたとしても、サーバー１０２との通信に用いられるＩＰアドレスを取得することができる。
【００４３】
なお、実施例１では、ＭＦＰ１０１のＩＰアドレスが複数ある場合に、ソケットから接続元ＩＰアドレスを取得するように説明したが、ＭＦＰ１０１のＩＰアドレス取得処理を省略しても良い。その場合、アプリケーション３０３は、アプリケーションプラットフォーム３０２を介してＭＦＰ１０１に複数のＩＰアドレスが設定可能かどうかの情報を取得し、設定可能な場合に、ソケットから接続元ＩＰアドレスを取得するようにしても良い。
【００４４】
（実施例２）
次に、本発明の第２の実施例について説明する。
【００４５】
ＭＦＰ１０１に設定されたＩＰアドレスは、運用中に変更されることがあり、その影響で、サーバー１０２との通信に用いられるＩＰアドレスも変わることがある。このため、アプリケーション３０３では、通常、サーバー１０２との通信に用いられるＩＰアドレスの変更を確認する必要がある。そして、サーバー１０２との通信に用いられるＩＰアドレスの変更が確認されれば、アプリケーション３０３は、サーバー１０２に登録されているＩＰアドレスを変更後のＩＰアドレスで更新するリクエストをサーバー１０２に送信することになる。
【００４６】
アプリケーション３０３が、サーバー１０２との通信に用いられるＩＰアドレスの変更を確認するために、実施例１のようなサーバー１０２へのソケットの接続を定期的に行って、接続元ＩＰアドレスを確認することが考えられる。しかしながら、アプリケーション３０３が、サーバー１０２に対して定期的に毎回ソケットの接続を行うのは、サーバー１０２やネットワークに対する負荷の面で効率がよくない。
【００４７】
ところで、アプリケーションプラットフォーム３０２には、ＭＦＰ１０１に設定されているＩＰアドレスの変更イベントをアプリケーション３０３に通知する手段を備えているものがある。
【００４８】
そこで、実施例２では、アプリケーション３０３が、アプリケーションプラットフォーム３０２からのＩＰアドレスの変更イベントを検知したときにのみ、サーバー１０２との通信に用いられるＩＰアドレスの変更確認処理を行う実施例について説明する。なお、本実施例において、実施例１と重複する部分の説明は省略し、差分のみを説明する。また、本実施例のアプリケーション３０３における、サーバー１０２への登録処理は、実施例１の図４と同様とする。
【００４９】
図５は、本実施例のアプリケーション３０３における、サーバー１０２との通信に用いられるＩＰアドレスの変更確認処理の手順を示すフローチャートである。図５のフローチャートに示す各ステップは、ＭＦＰ１０１のＣＰＵ２０１が、ＲＯＭ２０３またはＨＤＤ２０４に記憶されているアプリケーション３０３のプログラムを実行することで実現される。また、ＣＰＵ２０１は、必要に応じて記憶領域としてＲＡＭ２０２やＨＤＤ２０４を利用する。
【００５０】
ステップＳ５０１において、アプリケーション３０３は、ＭＦＰ１０１に設定されているＩＰアドレスの変更イベントを検知するまで待機し、検知したら処理をステップＳ５０２に進める。
【００５１】
ステップＳ５０２において、アプリケーション３０３は、サーバー１０２にソケットの接続を行う。
【００５２】
ステップＳ５０３において、アプリケーション３０３は、ステップＳ５０２でサーバー１０２に接続したソケットから接続元のＩＰアドレスを取得し、ソケットをクローズする。
【００５３】
ステップＳ５０４において、アプリケーション３０３は、ステップＳ５０３で取得した接続元のＩＰアドレスが、記憶しているサーバー１０２に送信したＩＰアドレスと一致するかどうかを判断する。一致する場合、アプリケーション３０３は、サーバー１０２との通信に用いられるＩＰアドレスに変更はないものとして、処理をステップＳ５０１に戻す。一致しない場合、アプリケーション３０３は、サーバー１０２との通信に用いられるＩＰアドレスに変更があるものとして、処理をステップＳ５０５に進める。
【００５４】
ステップＳ５０５において、アプリケーション３０３は、ステップＳ５０３で取得した接続元のＩＰアドレスを少なくとも含む更新リクエストをサーバー１０２に送信する。なお、ここで行われる更新リクエストは、本実施例ではＳＯＡＰ通信用のライブラリーを用いたＳＯＡＰ通信とする。また、ここでの更新リクエストには、ＭＦＰ１０１を特定する識別情報等を含んでいても良い。
【００５５】
ステップＳ５０６において、サーバー１０２に送信した接続元ＩＰアドレスを、ＲＡＭ２０２もしくはＨＤＤ２０４のどちらかまたは両方に記憶する。そして、処理をステップＳ５０１に戻す。
【００５６】
以上のように、実施例２では、ＭＦＰ１０１に設定されているＩＰアドレスに変更が生じた際のイベントをアプリケーションプラットフォーム３０２から受け取ったときにのみ、サーバー１０２へのソケットの接続を行って接続元のＩＰアドレスを確認する。これによって、サーバー１０２へのソケットの接続を軽減することができる。
【００５７】
（実施例３）
次に、本発明の第３の実施例について説明する。
【００５８】
実施例３では、実施例２とは異なり、アプリケーションプラットフォーム３０２が、ＭＦＰ１０１に設定されているＩＰアドレスの変更イベントをアプリケーション３０３に通知する手段を備えていない場合の実施例について説明する。なお、本実施例において、実施例１と重複する部分の説明は省略し、差分のみを説明する。
【００５９】
図６（Ａ）および図６（Ｂ）は、それぞれ、実施例３におけるサーバー１０２への登録処理およびサーバー１０２への更新処理の手順を示すフローチャートである。図６（Ａ）および図６（Ｂ）のフローチャートに示す各ステップは、ＭＦＰ１０１のＣＰＵ２０１が、ＲＯＭ２０３またはＨＤＤ２０４に記憶されているアプリケーション３０３のプログラムを実行することで実現される。また、ＣＰＵ２０１は、必要に応じて記憶領域としてＲＡＭ２０２やＨＤＤ２０４を利用する。
【００６０】
まず、図６（Ａ）について説明する。図６（Ａ）の処理は、実施例１の図４において、ステップＳ４０８の後にステップＳ６０１が追加されている点が実施例１と異なるため、ステップＳ６０１について説明する。
【００６１】
ステップＳ６０１において、アプリケーション３０３は、ステップＳ４０１で取得されたＭＦＰ１０１の全てのＩＰアドレスを、ＲＡＭ２０２もしくはＨＤＤ２０４のどちらかまたは両方に記憶する。そして、サーバー１０２への登録処理を終了する。
【００６２】
次に、図６（Ｂ）について説明する。
【００６３】
ステップＳ６１１において、アプリケーション３０３は、ＩＰアドレスの変更確認タイミングまで待機し、変更確認タイミングになったら処理をステップＳ６１２に進める。変更確認タイミングは、例えば、前回の変更確認タイミングから１０分経過後などとする。
【００６４】
ステップＳ６１２において、アプリケーション３０３は、アプリケーションプラットフォーム３０２およびＯＳ３０１を介して取得できるＭＦＰ１０１が持つＩＰアドレスを全て取得する。
【００６５】
ステップＳ６１３において、アプリケーション３０３は、ステップＳ６１２でＩＰアドレスが１つ以上取得されたかどうかを判断する。取得されたＩＰアドレスが１つ以上あった場合、アプリケーション３０３は、処理をステップＳ６１４に進める。取得されたＩＰアドレスが１つもなかった場合、アプリケーション３０３は、処理をステップＳ６１１に戻す。
【００６６】
ステップＳ６１４において、アプリケーション３０３は、ステップＳ６１２で取得したＩＰアドレスが、記憶しているＭＦＰ１０１のＩＰアドレスと全て一致するかどうかを判断する。全て一致する場合、アプリケーション３０３は、サーバー１０２との通信に用いられるＩＰアドレスおよびＭＦＰ１０１のＩＰアドレスの両方に変更はないものとして、処理をステップＳ６１１に戻す。一致しないＩＰアドレスがあったり、不足しているＩＰアドレスがあったりした場合には、サーバー１０２との通信に用いられるＩＰアドレスに変更の可能性があるものとして、アプリケーション３０３は、処理をステップＳ６１５に進める。
【００６７】
ステップＳ６１５において、アプリケーション３０３は、サーバー１０２にソケットの接続を行う。
【００６８】
ステップＳ６１６において、アプリケーション３０３は、ステップＳ６１５でサーバー１０２に接続したソケットから接続元のＩＰアドレスを取得し、ソケットをクローズする。
【００６９】
ステップＳ６１７において、アプリケーション３０３は、ステップＳ６１６で取得した接続元のＩＰアドレスが、記憶しているサーバー１０２に送信したＩＰアドレスと一致するかどうかを判断する。一致する場合、アプリケーション３０３は、サーバー１０２との通信に用いられるＩＰアドレスに変更はないものとして、処理をステップＳ６２０に進める。一致しない場合、アプリケーション３０３は、サーバー１０２との通信に用いられるＩＰアドレスに変更があるものとして、処理をステップＳ６１８に進める。
【００７０】
ステップＳ６１８において、アプリケーション３０３は、ステップＳ６１６で取得した接続元のＩＰアドレスを少なくとも含む更新リクエストをサーバー１０２に送信する。なお、ここで行われる更新リクエストは、本実施例ではＳＯＡＰ通信用のライブラリーを用いたＳＯＡＰ通信とする。また、ここでの更新リクエストには、ＭＦＰ１０１を特定する識別情報等を含んでいても良い。
【００７１】
ステップＳ６１９において、アプリケーション３０３は、サーバー１０２に送信した接続元ＩＰアドレスを、ＲＡＭ２０２もしくはＨＤＤ２０４のどちらかまたは両方に記憶する。
【００７２】
ステップＳ６２０において、アプリケーション３０３は、ステップＳ６１２で取得したＭＦＰ１０１の全てのＩＰアドレスを、ＲＡＭ２０２もしくはＨＤＤ２０４のどちらかまたは両方に記憶する。そして、処理をステップＳ６１１に戻す。
【００７３】
以上のように、実施例３では、ＭＦＰ１０１に設定されているＩＰアドレスを定期的に確認し、変更があった場合にサーバー１０２にソケットの接続を行い、サーバー１０２との通信に用いられるＩＰアドレスに変更があるかどうかを検知する。これによって、アプリケーションプラットフォーム３０２が、ＭＦＰ１０１に設定されているＩＰアドレスの変更イベントをアプリケーション３０３に通知する手段を備えていない場合でも、サーバー１０２へのソケットの接続の回数を低減することができる。
【符号の説明】
【００７４】
１０１  ＭＦＰ、１０２  サーバー、１０３  ＰＣ、３０１  ＯＳ、３０２  アプリケーションプラットフォーム、３０３  アプリケーション
【図１】
2019128860.tif 000003
【図２】
2019128860.tif 000004
【図３】
2019128860.tif 000005
【図４】
2019128860.tif 000006
【図５】
2019128860.tif 000007
【図６（Ａ）】
2019128860.tif 000008
【図６（Ｂ）】
2019128860.tif 000009