(57)【特許請求の範囲】
【請求項１】
複数のネットワークインターフェイスを備える通信装置であって、
パケットの送信を指示する送信指示を受け付ける受付手段と、
前記通信装置にログインしているユーザを示す情報に基づいて、パケットを送信するときに使用するネットワークインターフェイスを前記複数のネットワークインターフェイスの中から選択する選択手段と、
前記受付手段が前記送信指示を受け付けた場合に、前記選択手段によって選択されたネットワークインターフェイスを使用してパケットを送信する送信手段とを備えることを特徴とする通信装置。
【請求項２】
パケットを送信するときに使用するネットワークインターフェイスを特定するための情報と、ユーザを示す情報とを対応付けて記憶する記憶手段を更に備え、
前記選択手段は、前記記憶手段が記憶している情報を参照して、パケットを送信するときに使用するネットワークインターフェイスを前記複数のネットワークインターフェイスの中から選択することを特徴とする請求項１に記載の通信装置。
【請求項３】
パケットを送信するときに使用するネットワークインターフェイスを特定するための情報を設定するための設定画面を表示する表示手段を更に備え、
前記記憶手段は、前記設定画面で設定された内容に従って、パケットを送信するときに使用するネットワークインターフェイスを特定するための情報と、ユーザを示す情報とを対応付けて記憶することを特徴とする請求項２に記載の通信装置。
【請求項４】
前記受付手段が前記送信指示を受け付けた場合に、前記送信指示がマルチキャストパケットの送信を指示しているか否かを判定する判定手段を更に備え、
前記送信指示がマルチキャストパケットの送信を指示していると前記判定手段によって判定された場合に、前記送信手段は、前記選択手段によって選択されたネットワークインターフェイスを使用してパケットを送信することを特徴とする請求項１乃至３のいずれか１項に記載の通信装置。
【請求項５】
前記送信指示がマルチキャストパケットの送信を指示していないと前記判定手段によって判定された場合に、前記送信手段は、前記送信指示が示す内容に従ってパケットを送信することを特徴とする請求項４に記載の通信装置。
【請求項６】
前記受付手段は、前記通信装置上で動作するアプリケーションから前記送信指示を受け付けることを特徴とする請求項１乃至５のいずれか１項に記載の通信装置。
【請求項７】
前記選択手段は、パケットを送信するときに使用するネットワークインターフェイスとして、前記複数のネットワークインターフェイスの中から１つのネットワークインターフェイス、又は前記複数のネットワークインターフェイスすべてを選択することを特徴とする請求項１乃至６のいずれか１項に記載の通信装置。
【請求項８】
複数のネットワークインターフェイスを備える通信装置の通信方法であって、
パケットの送信を指示する送信指示を受け付ける受付工程と、
前記通信装置にログインしているユーザを示す情報に基づいて、パケットを送信するときに使用するネットワークインターフェイスを前記複数のネットワークインターフェイスの中から選択する選択工程と、
前記受付工程で前記送信指示を受け付けた場合に、前記選択工程によって選択されたネットワークインターフェイスを使用してパケットを送信する送信工程とを備えることを特徴とする通信装置の通信方法。
【請求項９】
パケットを送信するときに使用するネットワークインターフェイスを特定するための情報と、ユーザを示す情報とを対応付けて記憶する記憶工程を更に備え、
前記選択工程は、前記記憶工程が記憶している情報を参照して、パケットを送信するときに使用するネットワークインターフェイスを前記複数のネットワークインターフェイスの中から選択することを特徴とする請求項８に記載の通信装置の通信方法。
【請求項１０】
パケットを送信するときに使用するネットワークインターフェイスを特定するための情報を設定するための設定画面を表示する表示工程を更に備え、
前記記憶工程は、前記設定画面で設定された内容に従って、パケットを送信するときに使用するネットワークインターフェイスを特定するための情報と、ユーザを示す情報とを対応付けて記憶することを特徴とする請求項９に記載の通信装置の通信方法。
【請求項１１】
前記受付工程が前記送信指示を受け付けた場合に、前記送信指示がマルチキャストパケットの送信を指示しているか否かを判定する判定工程を更に備え、
前記送信指示がマルチキャストパケットの送信を指示していると前記判定工程によって判定された場合に、前記送信工程は、前記選択工程によって選択されたネットワークインターフェイスを使用してパケットを送信することを特徴とする請求項８乃至１０のいずれか１項に記載の通信装置の通信方法。
【請求項１２】
前記送信指示がマルチキャストパケットの送信を指示していないと前記判定工程によって判定された場合に、前記送信工程は、前記送信指示が示す内容に従ってパケットを送信することを特徴とする請求項１１に記載の通信装置の通信方法。
【請求項１３】
前記受付工程は、前記通信装置上で動作するアプリケーションから前記送信指示を受け付けることを特徴とする請求項８乃至１２のいずれか１項に記載の通信装置の通信方法。
【請求項１４】
前記選択工程は、パケットを送信するときに使用するネットワークインターフェイスとして、前記複数のネットワークインターフェイスの中から１つのネットワークインターフェイス、又は前記複数のネットワークインターフェイスすべてを選択することを特徴とする請求項８乃至１３のいずれか１項に記載の通信装置の通信方法。
【請求項１５】
請求項８乃至１４のいずれか１項に記載の通信装置の通信方法をコンピュータに実行させるためのコンピュータで読み取り可能なプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置及び通信装置の通信方法並びにプログラムに関し、特に、複数のネットワークインターフェイスを有する通信装置において、上位層で動作するアプリケーションに当該インターフェイスの個数を意識させないプラットフォームの構築技術に関する。
【背景技術】
【０００２】
従来、複合機やプリンタの内部で動作するアプリケーションがＴＣＰ／ＩＰネットワーク上の他の複合機やプリンタ、パーソナルコンピュータやサーバ等を探索する場合、マルチキャストやブロードキャストと呼ばれる手法が一般的に使用されている。
【０００３】
マルチキャストとは、ネットワーク上の複数のノードに対してデータを同時に送信する手法であり、マルチキャストグループと呼ばれる特定のグループに参加しているノードに対して同一のデータを送信することが可能になる。マルチキャストを使用した探索においては、探索対象となるデバイス（プリンタや複合機等）は予め特定のマルチキャストグループに属しており、探索を実行する側のデバイスはそのマルチキャストグループ宛てのマルチキャストパケットを送出する。探索対象となるデバイスはマルチキャストパケットを受信すると、送信者に対してユニキャストを使用してパケット応答する。送信者、即ち探索を実行する側のデバイスは、応答パケットに含まれるノードのアドレス情報や名称情報を参照することでノードを識別する。マルチキャストを使用したデバイスの探索は、一般的に、このような手順によって行なわれる。なお、上述したユニキャストとは、単一のノードに対して宛て先を指定する手法のことである。
【０００４】
一方、ブロードキャストとは、ネットワーク上の不特定多数のノードに宛てて同時にパケットを送出する技術である。ブロードキャストを使用した探索においては、探索を実行する側のデバイスはブロードキャスト宛てのパケットを送出する。探索対象となるデバイスはブロードキャストパケットを受信すると、送信者に対してユニキャストを使用してパケット応答する。送信者、即ち探索を実行する側のデバイスは、応答パケットに含まれるノードのアドレス情報や名称情報を参照することでノードを識別する。ブロードキャストを使用したデバイスの探索は、一般的には、このような手順によって行なわれる。
【０００５】
近年の複合機やプリンタ上で動作するソフトウェアの開発においては、プラットフォームや機種間で共通のソースコードを使用することにより、開発効率の向上を図る傾向が強くなってきている。これは、同時期に複数の機種を水平的に開発することが一般的な近年の製品計画において、より短期間でソフトウェアを開発するために有益な方法である。即ち、ハードウェアやオプション装備が異なる機種においてもできるだけ共通のソースコードを用いることによって、ソフトウェアの開発工数を削減し、より短期間且つ低コストで製品を開発すること可能となる。
【０００６】
そのような製品間でアプリケーションプログラムのソースコードを共通化する技術の一例として、Ｊａｖａ(登録商標)プラットフォームをプリンタや複合機等に搭載する手法が浸透しつつある。Ｊａｖａ(登録商標)によって作成されたソフトウェアは、特定のＯＳ（Operationg System）やＣＰＵ（Central Processing Unit）に依存することなく動作する。それゆえ、アプリケーションの開発者は、Ｊａｖａ(登録商標)を使用したアプリケーションを１つ作成するのみで、Ｊａｖａ(登録商標)プラットフォームが搭載された全ての製品に対応することが可能になった。
【０００７】
また、近年のプリンタや複合機では、ネットワークＩ／Ｆ（インターフェイス）を標準またはオプションとして複数装備する機種が増えつつある。その構成の例として、Ｅｔｈｅｒｎｅｔ(登録商標)インターフェイスを標準で備え、オプションとして無線ＬＡＮ（Local Area Network）Ｉ／Ｆを備えるといった構成が挙げられる。これらのネットワークＩ／Ｆは、同時に両方での使用が可能である。このような複数のネットワークＩ／Ｆを同時に使用可能にしているシステム構成は「マルチホーム」と呼ばれ、プリンタや複合機以外においても採用される。なお、マルチホームでのネットワークＩ／Ｆは２つとは限らない。一般的ではないものの、３つ以上のネットワークＩ／Ｆを同時に動作させることが可能なデバイスも、それはマルチホーム構成である。例えば、マルチホームデバイスにおいて、一方のインターフェイスで受信したパケットを特定の条件に応じて、他方のインターフェイスに転送するといった技術が考案されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００４−３２０７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、上述したマルチホームと呼ばれるシステム構成を有するマルチホームデバイス上でマルチキャスト又はブロードキャストを送出するアプリケーションを動作させる場合、以下の課題がある。例えば、マルチキャスト又はブロードキャストの送出を実行するプログラムコードを記述する場合、一般的なプログラム言語であるＣ言語やＪａｖａ(登録商標)を使用しての標準的なコードでは、通常単一のインターフェイスにしかパケットは送出されない。通常、マルチホームデバイスで動作するアプリケーションが、ネットワーク上の機器の探索を行うことを目的としてマルチキャストやブロードキャストを送出する場合、全てのネットワークＩ／Ｆで送出することが基本動作として考えられる。
【００１０】
また、マルチホームデバイス上で上述したＣ言語やＪａｖａ(登録商標)で開発されたアプリケーションを動作させると、複数存在するネットワークＩ／Ｆのうちの１つにしかパケットが送出されず、そのネットワークＩ／Ｆに接続されるノードしか探索できない場合がある。このような場合、マルチホームを構成するネットワークＩ／Ｆ全てに対してマルチキャスト又はブロードキャストのパケットを送出させようとすると、専用のプログラムコードを書く必要がある。例えば、Ｃ言語において、複数のネットワークＩ／Ｆにマルチキャストパケットを送出させる場合には、setsockopt()の第４引数にIP_MULTICAST_IFを指定し、且つ送出するインターフェイスを指定する一連の処理を記述する必要がある。このように、マルチホームデバイス上で全てのネットワークＩ／Ｆに対してマルチキャスト又はブロードキャストパケットを送出するアプリケーションを開発するためには、専用のコードを組み込む必要がある。
【００１１】
一方、従来の単一のネットワークＩ／Ｆを備えるデバイスに対して開発されたアプリケーションには、マルチホーム環境でマルチキャストやブロードキャストを送出させる専用のコードが組み込まれていないので、コードの共通化ができない。特に、Ｊａｖａ(登録商標)アプリケーションの場合、近年の複合機では、複合機のＪａｖａ(登録商標)プラットフォームの仕様が公開され、当該複合機での利用を前提としたアプリケーション開発が行なわれている。このような場合には、最初に単一のネットワークＩ／Ｆを想定したアプリケーションをマルチホームデバイスでも使いまわして使用することも考えられるため、大きな課題となっている。
【００１２】
また、上述した特許文献１では、マルチホームデバイス上で一方のネットワークＩ／Ｆから受信したパケットを他方のネットワークＩ／Ｆに転送するといった複数のネットワークＩ／Ｆを制御する方法が提案されている。加えて、一般的なルータにおいても、一方のネットワークＩ／Ｆで受信したパケットを別の単一または複数のネットワークＩ／Ｆに転送する技術が従来から存在する。これらの技術では、特定の機器構成のデバイス専用にコーディングされたソフトウェアによって制御されており、前述したように、様々な異なる機器構成を持つ複数のハードウェア上で動作させるといった用途には向いていない。
【００１３】
更に、セキュリティやユーザ利便性の観点から、マルチキャストやブロードキャストパケットを送出するインターフェイスを制御したいというニーズも存在する。例えば、複合機にログインするユーザがゲストユーザであったり、高い権限を持つユーザであったりするため、ユーザの権限に応じてアクセス可能なネットワークを制限したい場合がある。マルチホームのネットワークＩ／Ｆの一方にはゲストユーザがアクセス可能な第１のＬＡＮに接続されており、他方には機密性の高い第２のＬＡＮに接続されているような場合を考える。この場合、ゲストユーザが複合機を操作してネットワークにアクセスする場合には、第１のＬＡＮにのみ接続が可能であり、権限の高いユーザが複合機を操作する場合には、第１のＬＡＮ及び第２のＬＡＮに接続できることが望ましい。即ち、マルチホームデバイス上の全てのネットワークＩ／Ｆでマルチキャストやブロードキャストを送信できないという課題が存在するが、加えて送出するネットワークＩ／Ｆを制御できなければセキュリティや利便性の観点で好ましくないという課題も存在する。
【００１４】
本発明は、マルチホームデバイスにおいて、専用のコードを組み込んだアプリケーションを開発することなく、ユーザが望むネットワークＩ／Ｆを利用してマルチキャストやブロードキャストを行うことができる通信装置及び通信装置の通信方法並びにプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１５】
上記目的を達成するために、請求項１記載の通信装置は、複数のネットワークインターフェイスを備える通信装置であって、パケットの送信を指示する送信指示を受け付ける受付手段と、前記通信装置にログインしているユーザを示す情報に基づいて、パケットを送信するときに使用するネットワークインターフェイスを前記複数のネットワークインターフェイスの中から選択する選択手段と、前記受付手段が前記送信指示を受け付けた場合に、前記選択手段によって選択されたネットワークインターフェイスを使用してパケットを送信する送信手段とを備えることを特徴とする。
【発明の効果】
【００１６】
本発明によれば、マルチホームデバイスにおいて、専用のコードを組み込んだアプリケーションを開発することなく、ユーザが望むネットワークインターフェイスを利用してマルチキャストやブロードキャストを行うことができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施形態の一例である画像形成装置が接続されたネットワーク環境の一例を示す図である。
【図２】図１のＭＦＰの主要部の概略構成を示すブロック図である。
【図３】ＭＦＰの通信機能に関するソフトウェア構成を示すブロック図である。
【図４】ＭＦＰで実行されるマルチキャスト送出時のネットワークＩ／Ｆ設定処理の一例を示すフローチャートである。
【図５】ＭＦＰ内のＮＷ−ＡＰＰやＪａｖａ(登録商標)−ＡＰＰが送出したデータの一例を示す図である。
【図６】ネットワークＩ／Ｆ−ＡとネットワークＩ／Ｆ−Ｂから送出されたマルチキャストパケットの内容の一例を示す図である。
【図７】ネットワークＩ／Ｆ−ＡとネットワークＩ／Ｆ−Ｂから送出されたマルチキャストパケットの内容の他の一例を示す図である。
【図８】ネットワークＩ／Ｆの設定時に操作部に表示される画面の一例を示す図であり、（ａ）はユーザ名とネットワークＩ／Ｆとの対応付けを行なうための表示画面、（ｂ）はユーザ名に対応するネットワークＩ／Ｆの設定を変更するための表示画面である。
【図９】ログインしたユーザに応じてＭＦＰで実行されるマルチキャスト送出時のネットワークＩ／Ｆ設定処理の一例を示すフローチャートである。
【図１０】本発明の第２の実施形態におけるＭＦＰが送出するマルチキャストパケットの宛て先ＩＰアドレスとパケットを送出するネットワークＩ／Ｆとを関連付けるための設定画面の一例を示す図である。
【図１１】本発明の第２の実施形態のＭＦＰで実行されるマルチキャスト送出時のネットワークＩ／Ｆ設定処理の一例を示すフローチャートである。
【図１２】本発明の第３の実施形態におけるＭＦＰが送出するマルチキャストパケットのポート番号とパケットを送出するネットワークＩ／Ｆとを関連付けるための設定画面の一例を示す図である。
【図１３】本発明の第３の実施形態のＭＦＰで実行されるマルチキャスト送出時のネットワークＩ／Ｆ設定処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１８】
以下、本発明の実施の形態を図面を参照して詳細に説明する。
【００１９】
［第１の実施形態］
図１は、本発明の実施形態の一例である画像形成装置が接続されたネットワーク環境の一例を示す図である。
【００２０】
図１において、ＭＦＰ１０１は、２つのネットワークＩ／Ｆ（インターフェイス）を備えたマルチファンクションデバイス（ＭＦＰ）である。２つのネットワークＩ／Ｆのうち、一方はＬＡＮ−Ａ１１０に接続されており、他方はＬＡＮ−Ｂ１２０に接続されている。ＬＡＮ−Ａ１１０及びＬＡＮ−Ｂ１２０はＥｔｈｅｒｎｅｔ(登録商標)であるものとする。
【００２１】
ＬＡＮ−Ａ１１０にはＭＦＰ１１１及びＭＦＰ１１２が接続されており、ＭＦＰ１０１と互いにＩＰプロトコルによる通信が可能な状態になっている。なお、ＭＦＰ１０１及びＭＦＰ１１１、ＭＦＰ１１２の間にはルータは存在していない。即ち、ブロードキャストやマルチキャストパケットが到達可能な構成になっている。
【００２２】
ＬＡＮ−Ｂ１２０にはＭＦＰ１２１及びＭＦＰ１２２が接続されており、ＭＦＰ１０１と互いにＩＰプロトコルによる通信が可能な状態になっている。なお、ＭＦＰ１０１及びＭＦＰ１２１、ＭＦＰ１２２の間にはルータは存在していない。即ち、ブロードキャストやマルチキャストパケットが到達可能な構成になっている。
【００２３】
図２は、図１のＭＦＰ１０１の主要部の概略構成を示すブロック図である。
【００２４】
コントローラユニット２０００は、ＭＦＰ１０１の装置全体を制御する制御部である。コントローラユニット２０００は、画像を読み取りを行うスキャナ部２０７０や画像を印刷するプリンタ部２０９５に接続し、スキャナ部２０７０で読み取られた画像データをプリンタ部２０９５により印刷出力するコピー機能を実現するための制御を行う。
【００２５】
また、コントローラユニット２０００は、以下に説明する構成要素を備える。ＣＰＵ２００１は、ＲＯＭ２００３に格納されているブートプログラムによりオペレーションシステム（ＯＳ）を立ち上げる。そして、ＯＳ上でＨＤＤ（ハードディスクドライブ）２００４に格納されているアプリケーションプログラム（以下、「アプリケーション」と略す）を実行することによって各種処理を実行する。ＣＰＵ２００１の作業領域としてはＲＡＭ２００２が用いられる。また、ＲＡＭ２００２は、画像データを一時記憶するための画像メモリとして利用される。
【００２６】
ＨＤＤ２００４は、上記アプリケーションと共に、画像データを格納する。ＣＰＵ２００１には、システムバス２００７を介して、操作部Ｉ／Ｆ２００６、ネットワークＩ／Ｆ−Ａ２０１０、ネットワークＩ／Ｆ−Ｂ２０１１、モデム２０５０及びイメージバスＩ／Ｆ２００５が接続されている。
【００２７】
操作部Ｉ／Ｆ２００６は、タッチパネルを有する操作部２０１２とのインターフェイスであり、操作部２０１２に表示する画像データを操作部２０１２に対して出力する。また、操作部Ｉ／Ｆ２００６は、操作部２０１２においてユーザにより入力された情報をＣＰＵ２００１に送出する。
【００２８】
ネットワークＩ／Ｆ−Ａ２０１０（第１のネットワークインターフェイス）は、ネットワークインターフェイスカード（ＮＩＣ）をＡＳＩＣ化したものであり、ＬＡＮ−Ａ１１０に接続する。ネットワークＩ／Ｆ−Ｂ２０１１（第２のネットワークインターフェイス）も同様にＮＩＣをＡＳＩＣ化したものであり、ＬＡＮ−Ｂ１２０に接続する。なお、ネットワークＩ／Ｆ−Ａ２０１０はＥｔｈｅｒｎｅｔ(登録商標)であり、ネットワークＩ／Ｆ−Ｂ２０１１は無線ＬＡＮであるものとする。
【００２９】
モデム２０５０は、公衆回線（ＷＡＮ）１００７に接続され、情報の入出力を行う。
【００３０】
イメージバスＩ／Ｆ２００５は、システムバス２００７と画像データを高速で転送する画像バス２００８に接続され、データ構造を変換するためのバスブリッジである。画像バス２００８は、ＰＣＩバスまたはＩＥＥＥ１３９４から構成される。画像バス２００８には、ラスタイメージプロセッサ（ＲＩＰ）２０６０、デバイスＩ／Ｆ２０２０、スキャナ画像処理部２０８０、プリンタ画像処理部２０９０、画像回転部２０３０、及び画像圧縮部２０４０が接続されている。
【００３１】
ＲＩＰ２０６０は、ＰＤＬコードをビットマップイメージに展開するプロセッサである。デバイスＩ／Ｆ２０２０は、スキャナ部２０７０とプリンタ部２０９５に接続され、画像データの同期系／非同期系の変換を行う。スキャナ画像処理部２０８０は、入力画像データに対して補正、加工、編集を行う。プリンタ画像処理部２０９０は、プリント出力画像データに対してプリンタの補正、解像度変換などを行う。画像回転部２０３０は、画像データの回転を行う。画像圧縮部２０４０は、多値画像データをＪＰＥＧデータに、２値画像データをＪＢＩＧ、ＭＭＲ、ＭＨなどのデータに圧縮すると共に、その伸張処理を行う。
【００３２】
図３は、ＭＦＰ１０１の通信機能に関するソフトウェア構成を示すブロック図である。なお、同図では、本発明に関わる主要部分のみを例示しており、一部にハードウェアを含むものとする。
【００３３】
ログインアプリ３０１は、ＭＦＰ１０１の操作者（ユーザ）の認証を行い、ログイン処理を行なうアプリケーションである。ＵＩ部３０２は、ＭＦＰ１０１のＵＩ（User Interface）の表示を行なうためのアプリケーションである。ＵＩ部３０２によって生成されたビットマップ画像は、操作部Ｉ／Ｆ２００６を介して操作部２０１２に表示される。
【００３４】
設定ＤＢ３０３は、ＭＦＰ１０１の各種設定情報を保持するＤＢ（Database）である。各種設定情報とは、例えばユーザによって操作部２０１２を介して設定されたＭＦＰ１０１のＩＰアドレスであったり、またはログインアプリ３０１によって参照されるユーザの権限情報であったりする。
【００３５】
ＮＷ−ＡＰＰ３０４は、ＭＦＰ１０１上で動作するネットワークを使用するアプリケーション群である。ここには、例えばＬＰＤ（Line Printer Daemon）やＩＰＰ（Internet Printing Protocol）といったネットワークを介して印刷ジョブを受信するアプリケーションが含まれる。また、例えばＳＮＭＰ（Simple Network Management Protocol）やＳＬＰ（Service Location Protocol）といった、機器管理やサービス検索といった機能を提供するソフトウェアが含まれる。また、ネットワーク上のデバイスを探索する機能を提供するソフトウェアも含まれる。これは、例えば、前述したＳＮＭＰやＳＬＰといったプロトコルを使用してネットワーク上の機器やサービスを探索して、発見されたデバイスとの間で機能連携するといった用途で使用される。
【００３６】
Ｊａｖａ(登録商標)−ＡＰＰ３０５は、Ｊａｖａ(登録商標)で書かれたアプリケーション群である。Ｊａｖａ(登録商標)−ＡＰＰ３０５もＮＷ−ＡＰＰ３０４と同様にＭＦＰ１０１のネットワーク機能を使用するよう開発されており、ブロードキャストやマルチキャストを使用して機器の探索を行なう。Ｊａｖａ(登録商標)ＶＭ３０６は、Ｊａｖａ(登録商標)−ＡＰＰ３０５が動作するためのＪａｖａ(登録商標)ＶＭ（Java(登録商標) Virtual Machine）である。ソケットＡＰＩラッパ３０７は、後述するソケットＡＰＩ３０８のラッパ関数群である。ＮＷ−ＡＰＰ３０４、Ｊａｖａ(登録商標)ＶＭ３０６は、ＯＳによって用意されたソケットＡＰＩ（Application Programming Interface）をコールするのではなく、ソケットＡＰＩラッパ３０７をコールする。
【００３７】
ソケットＡＰＩラッパ３０７は、ＮＷ−ＡＰＰ３０４及びＪａｖａ(登録商標)ＶＭ３０６からＡＰＩのコールを受けると、その内容に応じて、対応するソケットＡＰＩ３０８のＡＰＩをコールする。ソケットＡＰＩ３０８は一般的なソケット関数を提供するＡＰＩ群であり、ＯＳに標準的に備わっているものである。プロトコルスタック３０９は、ＩＰプロトコルの通信機能を司るプロトコルスタックであり、ＯＳに標準的に備わっているものである。
【００３８】
ネットワークドライバＡ３１０は、ネットワークＩ／Ｆ−Ａ２０１０を制御するデバイスドライバである。ネットワークドライバＢ３１１は、ネットワークＩ／Ｆ−Ｂ２０１１を制御するためのデバイスドライバである。
【００３９】
上述したログインアプリ３０１〜ネットワークドライバＢ３１１のソフトウェア群は、通常はＨＤＤ２００４に格納されており、ＲＡＭ２００２に適宜ロードされ、ＣＰＵ２００１によって実行処理される。また、ログインアプリ３０１〜ソケットＡＰＩラッパ３０７は、ＯＳ上のアプリケーションスペースで動作し、ソケットＡＰＩ３０８〜ネットワークドライバＢ３１１は、カーネルスペースで動作している。なお、これらのソフトウェアが動作するためのＯＳや、その他の複合機の機能を実現するソフトウェア群も、ＨＤＤ２００４に格納されており、必要に応じてロード及び実行される構成となっている。
【００４０】
次に、ネットワークＩ／Ｆ−Ａ２０１０及びネットワークＩ／Ｆ−Ｂ２０１１の両方でマルチキャストパケットを送出する際のＭＦＰ１０１の動作処理について説明する。
【００４１】
図４は、ＭＦＰ１０１で実行されるマルチキャスト送出時のネットワークＩ／Ｆ設定処理の一例を示すフローチャートである。
【００４２】
ＭＦＰ１０１では、ログインしているユーザやその他の条件によらず、ＮＷ−ＡＰＰ３０４やＪａｖａ(登録商標)−ＡＰＰ３０５がマルチキャスト送出要求を行なった場合には、常にＭＦＰ１０１が備える全てのネットワークＩ／Ｆからマルチキャスト送出を行う。これは、ログインアプリ３０１によってユーザが登録されていない場合や、マルチキャストの送出するネットワークＩ／Ｆが設定されていないときに、このように振る舞う。
【００４３】
図４において、ステップＳ４０１では、ソケットＡＰＩラッパ３０７は、自身のラッパＡＰＩがコールされた際の処理命令がマルチキャストの処理命令であるか否かを判定する。ソケットＡＰＩラッパ３０７は、Ｃ言語の標準関数のラッパであり、その中にはソケットＡＰＩのラッパも含まれている。ソケットＡＰＩラッパ３０７は、コールされたＡＰＩがｓｅｎｄｔｏ（）のように、マルチキャスト送出に使用されるＡＰＩだった場合には、宛て先ＩＰアドレスがマルチキャストアドレスであるか否かを確認する。ｓｅｎｄｔｏ（）においては、第５引数の構造体の中に宛て先ＩＰアドレスが含まれる。このアドレスがマルチキャストアドレス、即ち２２４．０．０．０〜２３９．２５５．２５５．２５５の間に含まれる値であったならば、上位アプリから受信した命令はマルチキャスト送出命令であるものと判定する（ステップＳ４０１でＹＥＳ）。一方、マルチキャスト送出命令でなければ（ステップＳ４０１でＮＯ）、ソケットＡＰＩラッパ３０７は、命令された内容に手を加えることなく、そのままの形でソケットＡＰＩ３０８に処理命令を転送する。
【００４４】
図５は、ＮＷ−ＡＰＰ３０４やＪａｖａ(登録商標)−ＡＰＰ３０５が送出したデータの一例を示す図である。
【００４５】
本実施の形態では、ＮＷ−ＡＰＰ３０４やＪａｖａ(登録商標)−ＡＰＰ３０５は、ネットワーク上のサービスを探索するためにＳＬＰ（Service Location Protocol）を用いている。ＮＷ−ＡＰＰ３０４やＪａｖａ(登録商標)−ＡＰＰ３０５は、図５に示すデータを送出する。それはＮＷ−ＡＰＰ３０４やＪａｖａ(登録商標)−ＡＰＰ３０５を構成するプログラムコード（Ｃ言語）のｓｅｎｄｔｏ（）の第２引数に図５に示されるデータがセットされていることを意味している。図示例はＳＬＰのデータを示している。なお、図示例のデータは、内容を可視化する目的でフィールド単位に分けられているが、実際のプログラムコードにおいては１６進数データでセットされている。
【００４６】
図４に戻り、ステップＳ４０１にて上位アプリから受信した命令がマルチキャスト送出命令であると判定された場合（ステップＳ４０１でＹＥＳ）、ステップＳ４０２に移行する。ステップＳ４０２では、ソケットＡＰＩラッパ３０７は、自機（ここではＭＦＰ１０１）がマルチホームデバイスであるか否かの判定を行なう。マルチホームデバイスとは、上述したように、複数のネットワークＩ／Ｆを同時に使用可能に構成されたデバイスである。
【００４７】
ステップＳ４０２では、ソケットＡＰＩラッパ３０７は、ＭＦＰ１０１の現時点でのアクティブなネットワークＩ／ＦをＯＳに問い合わせる。その結果、アクティブなネットワークＩ／Ｆが複数検出された場合、ソケットＡＰＩラッパ３０７は、自装置（ここではＭＦＰ１０１）がマルチホームであると判定する。一方、マルチホームと判定されなければ（ステップＳ４０２ＮＯ）、ソケットＡＰＩラッパ３０７は、命令された内容に手を加えることなく、そのままの形でソケットＡＰＩ３０８に処理命令を転送する。本実施形態では、アクティブなネットワークＩ／Ｆとして、ネットワークＩ／Ｆ−Ａ２０１０及びネットワークＩ／Ｆ−Ｂ２０１１の２つが存在しているので、ＭＦＰ１０１がマルチホームデバイスであると判定される。
【００４８】
次に、ステップＳ４０３では、ソケットＡＰＩラッパ３０７は、現在アクティブな全てのネットワークＩ／Ｆにマルチキャストパケットを送出するように、ソケットオプションを設定する。これは、ｓｅｔｓｏｃｋｏｐｔ（）の第３引数にＩＰ＿ＭＵＬＴＩＣＡＳＴ＿ＩＦを指定する処理である。その際の第４引数には、マルチキャストを送信したいインターフェイスのＩＰアドレスが入る。そのため、ソケットＡＰＩラッパ３０７は、ネットワークＩ／Ｆ−Ａ２０１０に対応されたＩＰアドレスを取得し、ｓｅｔｓｏｃｋｏｐｔ（）の第４引数にその値を含めて実行する。次に、ネットワークＩ／Ｆ−Ｂ２０１１に対応されたＩＰアドレスを取得し、ｓｅｔｓｏｃｋｏｐｔ（）の第４引数にその値を含めて実行する。このようにすることで、ステップＳ４０１で上位アプリが送出したマルチキャストパケットの送出命令は、ネットワークＩ／Ｆ−Ａ２０１０及びネットワークＩ／Ｆ−Ｂ２０１１の両方に送出されるよう、プロトコルスタックに登録される。
【００４９】
次に、ステップＳ４０４では、ソケットＡＰＩラッパ３０７は、ｓｅｎｄｔｏ（）を使用してマルチキャストパケットの送出を行なう。このとき、ｓｅｎｄｔｏ（）にセットされる引数は、ステップＳ４０１にて上位アプリからコールされた内容と同じである。このタイミングで、マルチキャストパケットがソケットＡＰＩラッパ３０７からソケットＡＰＩ３０８に転送され、プロトコルスタック３０９を介してネットワークドライバＡとネットワークドライバＢにデータが渡される。その後、ネットワークＩ／Ｆ−Ａ２０１０とネットワークＩ／Ｆ−Ｂ２０１１からマルチキャストパケットが送出される。結果として、マルチキャストパケットはＬＡＮ−Ａ１１０上に存在するＭＦＰ１１１とＭＦＰ１１２、そしてＬＡＮ−Ｂ１２０上に存在するＭＦＰ１２１とＭＦＰ１２２に到達することが可能となる。
【００５０】
図６及び図７は、ネットワークＩ／Ｆ−Ａ２０１０とネットワークＩ／Ｆ−Ｂ２０１１から送出されたマルチキャストパケットの内容の一例を示す図である。
【００５１】
図示例は、共にステップＳ４０１において送出されたＳＬＰプロトコルのパケットである。ネットワークＩ／Ｆ−Ａ２０１０とネットワークＩ／Ｆ−Ｂ２０１１に割り当てられているＭＡＣアドレスとＩＰアドレスは異なる。そのため、図６と図７のそれぞれで示された送信元ＭＡＣアドレス及び送信元ＩＰアドレスは異なる値であるが、その他は同値である。両方とも、送信先ＭＡＣアドレスと送信先ＩＰアドレスはマルチキャストアドレスである。また、ＳＬＰデータは図５で示したものと同じである。
【００５２】
次に、ＭＦＰ１０１にログインしたユーザに応じて、ネットワークＩ／Ｆ−Ａ２０１０及びネットワークＩ／Ｆ−Ｂ２０１１のいずれか一方または両方でマルチキャストパケットを送出する際のＭＦＰ１０１の動作処理について説明する。
【００５３】
まず、ＭＦＰ１０１のユーザとして登録されているユーザ名と、マルチキャストパケットを送出するネットワークＩ／Ｆの対応付けを行なうための画面を図８（ａ）及び図８（ｂ）に示す。
【００５４】
図８（ａ）は、ＭＦＰ１０１のユーザとして登録されているユーザ名と、マルチキャストパケットを送出するネットワークＩ／Ｆの対応付けを行なうための表示画面の一例を示す図である。図示の画面（ダイアログ）は、操作部２０１２に表示され、ＭＦＰ１０１の利用者が使用するためのものである。
【００５５】
図８（ａ）において、リスト６０１には、ＭＦＰ１０１に登録されているユーザ名がリスト状に表示される。リスト６０２には、各ユーザに対応付けて登録されたマルチキャストパケットの送出元であるネットワークＩ／Ｆの設定情報が表示される。例えば、ユーザ名「Ｍａｋｉ」に対応付けられているネットワークＩ／Ｆは「Ｅｔｈｅｒｎｅｔ(登録商標)」である。これは「Ｍａｋｉ」がＭＦＰ１０１にログインしている場合には、ＭＦＰ１０１はマルチキャストパケットを送出する際にＥｔｈｅｒｎｅｔ(登録商標)であるネットワークＩ／Ｆ−Ａ２０１０からのみパケットを送出する設定であることを意味している。
【００５６】
また、ユーザ名「Ｙｕｋｏｋｕｒａ」に対応付けられているネットワークＩ／Ｆは「Ａｌｌ」である。これは「Ｙｏｋｏｋｕｒａ」がＭＦＰ１０１にログインしている場合には、ＭＦＰ１０１はマルチキャストパケットを送出する際に全てのネットワークＩ／Ｆに対してパケットを送出する設定であることを意味している。つまり、ネットワークＩ／Ｆ−Ａ２０１０とネットワークＩ／Ｆ−Ｂ２０１１の両方に対して送出する設定ということである。
【００５７】
また、ユーザ名「Ｉｎｏｕｅ」に対応付けられているネットワークＩ／Ｆは「Ｗｉｒｅｌｅｓｓ」である。これは「Ｉｎｏｕｅ」がＭＦＰ１０１にログインしている場合には、ＭＦＰ１０１はマルチキャストパケットを送出する際に無線ＬＡＮであるネットワークＩ／Ｆ−Ｂ２０１１からのみパケットを送出する設定であることを意味している。
【００５８】
ボタン６０３は、各ユーザに対応するマルチキャストパケットの送出元のネットワークＩ／Ｆの設定を変更する画面に移行するためのボタンである。ＭＦＰ１０１は、操作者によってリスト６０１の任意のユーザが指定され、且つボタン６０３の入力を検知した場合、図８（ｂ）に示す画面に移行する。
【００５９】
図８（ｂ）は、各ユーザに対応するマルチキャストパケットの送出元のネットワークＩ／Ｆの設定を変更する表示画面の一例を示す図である。
【００６０】
図示例は、ユーザ「Ｓｈｏｕｎｏ」に対応するネットワークＩ／Ｆが指定された際に表示される画面（ダイアログ）である。ボタン７０１は、ＭＦＰ１０１の全てのインターフェイス、つまりネットワークＩ／Ｆ−Ａ２０１０及びネットワークＩ／Ｆ−Ｂ２０１１を指定するためのボタンである。ボタン７０２は、ＭＦＰ１０１のＥｔｈｅｒｎｅｔ(登録商標)インターフェイス、つまりネットワークＩ／Ｆ−Ａ２０１０を指定するためのボタンである。ボタン７０３は、ＭＦＰ１０１の無線ＬＡＮのインターフェイス、つまりネットワークＩ／Ｆ−Ｂ２０１１を指定するためのボタンである。
【００６１】
操作者によってボタン７０１〜７０３のいずれか一つが選択された後、決定ボタン７０４の入力をＭＦＰ１０１が検知した場合に、ユーザ「Ｓｈｏｕｎｏ」に対応するネットワークＩ／Ｆが登録される。そして、登録された情報（ネットワークＩ／Ｆ設定情報）は、マルチキャストパケット及びブロードキャストパケットを特定のネットワークインターフェイスで送出させるための送出条件として、設定ＤＢ３０３に保持される。
【００６２】
図９は、ログインしたユーザに応じてＭＦＰ１０１で実行されるマルチキャスト送出時のネットワークＩ／Ｆ設定処理の一例を示すフローチャートである。なお。ＭＦＰ１０１には、上記方法により、ＭＦＰ１０１にログインしているユーザに対応するネットワークＩ／Ｆが予め登録されているものとする。
【００６３】
図９において、ステップＳ５０１では、ソケットＡＰＩラッパ３０７は、自身のラッパＡＰＩがコールされた際の処理命令がマルチキャストの処理命令であるか否かを判定する。ソケットＡＰＩラッパ３０７は、コールされたＡＰＩがｓｅｎｄｔｏ（）のように、マルチキャスト送出に使用されるＡＰＩだった場合には、宛て先ＩＰアドレスがマルチキャストアドレスであるか否かを確認する。ｓｅｎｄｔｏ（）においては、第５引数の構造体の中に宛て先ＩＰアドレスが含まれる。このアドレスがマルチキャストアドレス、即ち２２４．０．０．０〜２３９．２５５．２５５．２５５の間に含まれる値であったならば、上位アプリから受信した命令はマルチキャスト送出命令であると判定する（ステップＳ５０１でＹＥＳ）。一方、マルチキャスト送出命令でなければ（ステップＳ５０１でＮＯ）、ソケットＡＰＩラッパ３０７は、命令された内容を手を加えることなく、そのままの形でソケットＡＰＩ３０８に処理命令を転送する。
【００６４】
ステップＳ５０１にて上位アプリから受信した命令がマルチキャスト送出命令であると判定された場合（ステップＳ５０１でＹＥＳ）、ステップＳ５０２に移行する。ステップＳ５０２では、ソケットＡＰＩラッパ３０７は、自機（ここではＭＦＰ１０１）がマルチホームデバイスであるか否かを判定する。
【００６５】
ステップＳ５０２では、ソケットＡＰＩラッパ３０７は、ＭＦＰ１０１の現時点でのアクティブなネットワークＩ／ＦをＯＳに問い合わせる。その結果、アクティブなネットワークＩ／Ｆが複数検出された場合、ソケットＡＰＩラッパ３０７は、自装置（ここではＭＦＰ１０１）がマルチホームであると判定する。一方、マルチホームと判定されなければ（ステップＳ５０２でＮＯ）、ソケットＡＰＩラッパ３０７は、命令された内容を手を加えることなく、そのままの形でソケットＡＰＩ３０８に処理命令を転送する。本実施の形態では、アクティブなネットワークＩ／Ｆとして、ネットワークＩ／Ｆ−Ａ２０１０及びネットワークＩ／Ｆ−Ｂ２０１１の２つが存在しているので、ＭＦＰ１０１がマルチホームデバイスであると判定される。
【００６６】
次に、ステップＳ５０３では、ソケットＡＰＩラッパ３０７は、図８（ａ）及び図８（ｂ）を参照して説明した方法でユーザ毎に登録されたネットワークＩ／Ｆ設定情報を参照し、現在ログインしているユーザに対応するネットワークＩ／Ｆ設定を確認する。具体的には、ソケットＡＰＩラッパ３０７は、ログインアプリ３０１に対してＭＦＰ１０１に現在ログインしているユーザの識別情報を問い合わせる。次に、ソケットＡＰＩラッパ３０７は、設定ＤＢ３０３に保存されたネットワークＩ／Ｆ設定情報を参照し、ＭＦＰ１０１に現在ログインしているユーザに対応する、マルチキャスト送出元のネットワークＩ／Ｆの設定情報を取得する。これにより、ＭＦＰ１０１に現在ログインしているユーザの操作がトリガになり、マルチキャストパケットを送出する場合に、パケットを送出すべきネットワークＩ／Ｆ情報を得ることができる。
【００６７】
次に、ステップＳ５０４では、ソケットＡＰＩラッパ３０７は、ステップＳ５０３で取得したネットワークＩ／Ｆ設定情報に指定されているネットワークＩ／Ｆにマルチキャストパケットを送出するように、ソケットオプションを設定する。これは、ｓｅｔｓｏｃｋｏｐｔ（）の第３引数にＩＰ＿ＭＵＬＴＩＣＡＳＴ＿ＩＦを指定する処理である。その際の第４引数には、マルチキャストを送信したいインターフェイスのＩＰアドレスが入る。ソケットＡＰＩラッパ３０７は、ステップＳ５０３で取得したマルチキャストパケットを送出すべきネットワークＩ／Ｆに対応するＩＰアドレスを取得して、ｓｅｔｓｏｃｋｏｐｔ（）の第４引数にその値を含めて実行する。
【００６８】
次に、ステップＳ５０５では、ソケットＡＰＩラッパ３０７は、ｓｅｎｄｔｏ（）を使用してマルチキャストパケットの送出を行なう。このとき、ｓｅｎｄｔｏ（）にセットされる引数は、ステップＳ５０１にて上位アプリからコールされた内容と同じである。このタイミングで、マルチキャストパケットがソケットＡＰＩラッパ３０７からソケットＡＰＩ３０８に転送され、プロトコルスタック３０９を介してマルチキャストパケットを送出すべきネットワークＩ／Ｆに渡される。その後、マルチキャストパケットを送出すべきネットワークＩ／Ｆからマルチキャストパケットが送出される。結果として、ＭＦＰ１０１に現在ログインしているユーザの場合に送出すべきネットワークＩ／Ｆが接続するＬＡＮ上のデバイスにマルチキャストパケットが到達することが可能となる。なお、上記処理では、マルチキャストを行う場合について説明したが、ブロードキャストを行う場合についても同様に処理が行われる。
【００６９】
上記実施形態では、図４に示す処理と図９に示す処理を別個に説明したが、本発明は上記説明に限定されるものではない。例えば、図９のステップＳ５０２の後に、ソケットＡＰＩラッパ３０７がＭＦＰ１０１の操作者がログインしているか否かを判別し、ログインしていない場合には、図４のステップＳ４０３以降の処理を行うようにしてもよい。そして、ログインしている場合には、図５のステップＳ５０３以降の処理を行うようにしてもよい。
【００７０】
さらに、図９のステップＳ５０２の後に、ソケットＡＰＩラッパ３０７が、ＭＦＰ１０１の操作者が未登録のユーザか否かを判別し、未登録のユーザについては登録を促すように画像表示を行う構成でもよい。また、ユーザ操作に応じて、パケットを送出するネットワークＩ／Ｆを選択させるように構成してもよい。また、ステップＳ４０３以降の処理を行わせるように構成してもよい。
【００７１】
上記第１の実施形態によれば、マルチホームデバイスにおいて、専用のコードを組み込んだアプリケーションを開発することなく、ユーザが望むネットワークインターフェイスを利用してマルチキャストやブロードキャストを行うことができる。また、単一のネットワークＩ／Ｆで動作することを意図して開発されたアプリケーションをマルチホームデバイス上で動作させる場合でも、意図せぬネットワークＩ／Ｆにマルチキャスト又はブロードキャストパケットが送出されることを防止することが可能になる。
【００７２】
また、マルチホームデバイスの操作者の権限に応じてマルチキャストやブロードキャストパケットの送出するネットワークＩ／Ｆを変更するができる。そして、アクセス権限やセキュリティの観点から望ましくないネットワークにパケットが送出されてしまうことを防止することが可能になる。
【００７３】
［第２の実施形態］
本発明の第２の実施の形態におけるＭＦＰ１０１は、その構成が上記第１の実施の形態におけるＭＦＰ１０１、図１〜図３と同じであり、第１の実施の形態と同様の部分については、同一の符号を用いてその説明を省略する。
【００７４】
本発明の第２の実施形態では、マルチキャストパケットを送出するネットワークＩ／Ｆを決定する基準を、上記第１の実施形態で説明したユーザ名ではなく、マルチキャストの宛て先アドレスとした点が上記第１の実施形態と異なる。
【００７５】
図１０は、本発明の第２の実施形態におけるＭＦＰ１０１が送出するマルチキャストパケットの宛て先ＩＰアドレスと送出元のネットワークＩ／Ｆとを関連付けるための設定画面の一例を示す図である。
【００７６】
図１０に示す画面は、ＭＦＰ１０１の操作部２０１２に表示されるものであり、ＭＦＰ１０１の操作者によって操作されるためのものである。フォーム８０１は、マルチキャストパケットを送信する宛て先のマルチキャストアドレスの入力用フォームである。ボタン８０２は、フォーム８０１で指定されたマルチキャストアドレスへ送出するマルチキャストパケットの送出元であるネットワークＩ／ＦをＥｔｈｅｒｎｅｔ(登録商標)として指定するためのボタンである。ボタン８０３は、フォーム８０１で指定されたマルチキャストアドレスへ送出するマルチキャストパケットの送出元であるネットワークＩ／ＦをＷｉｒｅｌｅｓｓとして指定するためのボタンである。
【００７７】
フォーム８０１、ボタン８０２，８０３は、ＭＦＰ１０１の操作者によって操作され、マルチキャストアドレスに対応する送出元ネットワークＩ／Ｆを操作者が指定するために使用される。なお、操作者によって設定された情報（ネットワークＩ／Ｆ設定情報）は、マルチキャストパケット及びブロードキャストパケットを特定のネットワークインターフェイスで送出させるための送出条件として、設定ＤＢ３０３に保存される。
【００７８】
次に、図１０を参照して説明した方法で設定された設定情報に基づいてＭＦＰ１０１で実行されるマルチキャスト送出時のネットワークＩ／Ｆ設定処理について図１１を参照して説明する。
【００７９】
図１１は、本発明の第２の実施形態のＭＦＰ１０１で実行されるマルチキャスト送出時のネットワークＩ／Ｆ設定処理の一例を示すフローチャートである。なお、図示のステップＳ６０１，Ｓ６０２は、図９のステップＳ５０１，Ｓ５０２と同一の処理であるため、それらの説明については割愛する。
【００８０】
図１１において、ステップＳ６０３では、ソケットＡＰＩラッパ３０７は、設定ＤＢ３０３に保存されたネットワークＩ／Ｆ設定情報を参照し、マルチキャストアドレスに対応する送出元ネットワークＩ／Ｆ設定を確認する。具体的には、ソケットＡＰＩラッパ３０７は、設定ＤＢ３０３に対して、ＮＷ−ＡＰＰ３０４又はＪａｖａ(登録商標)−ＡＰＰ３０５によって指定されたマルチキャストアドレスに対応する送出元ネットワークＩ／Ｆ情報を問い合わせする。この情報は、ＭＦＰ１０１の操作者によって、図１０で示した画面にて設定されるものである。即ち、（１）Ｅｔｈｅｒｎｅｔ(登録商標)（ネットワークＩ／Ｆ−Ａ２０１０）、（２）無線ＬＡＮ（ネットワークＩ／Ｆ−Ｂ２０１１）、（３）Ｅｔｈｅｒｎｅｔ(登録商標)と無線ＬＡＮの両方、の３通りのうちの１つが各マルチキャストアドレスに対応付けられている。
【００８１】
次に、ステップＳ６０４では、ソケットＡＰＩラッパ３０７は、ステップＳ６０３で取得したマルチキャストパケットを送出すべきネットワークＩ／Ｆにマルチキャストパケットを送出するように、ソケットオプションを設定する。これは、ｓｅｔｓｏｃｋｏｐｔ（）の第３引数にＩＰ＿ＭＵＬＴＩＣＡＳＴ＿ＩＦを指定する処理である。その際の第４引数には、マルチキャストを送信したいインターフェイスのＩＰアドレスが入る。ソケットＡＰＩラッパ３０７は、ステップＳ６０３で取得したマルチキャストパケットを送出すべきネットワークＩ／Ｆに対応するＩＰアドレスを取得して、ｓｅｔｓｏｃｋｏｐｔ（）の第４引数にその値を含めて実行する。
【００８２】
次に、ステップＳ６０５では、ソケットＡＰＩラッパ３０７は、ｓｅｎｄｔｏ（）を使用してマルチキャストパケットの送出を行なう。このとき、ｓｅｎｄｔｏ（）にセットする引数は、図９のステップＳ５０１にて上位アプリからコールされた内容と同じである。このタイミングで、マルチキャストパケットがソケットＡＰＩラッパ３０７からソケットＡＰＩ３０８に転送され、プロトコルスタック３０９を介してマルチキャストパケットを送出すべきネットワークＩ／Ｆに渡される。その後、マルチキャストパケットを送出すべきネットワークＩ／Ｆからマルチキャストパケットが送出される。
【００８３】
上記第２の実施形態によれば、上記第１の実施形態と同様の効果を奏することが可能となる。また、ユーザにより設定されたマルチキャストの宛て先アドレスに応じて、マルチキャストパケットを送出すべきネットワークＩ／Ｆでマルチキャストパケットを送出することができ、ユーザの利便性を向上されることができる。
【００８４】
［第３の実施形態］
本発明の第３の実施の形態におけるＭＦＰ１０１は、その構成が上記第１の実施の形態におけるＭＦＰ１０１、図１〜図３と同じであり、第１の実施の形態と同様の部分については、同一の符号を用いてその説明を省略する。
【００８５】
本発明の第３の実施形態では、マルチキャストパケットを送出するネットワークＩ／Ｆを決定する基準を、上記第１の実施形態で説明したユーザ名ではなく、ＵＤＰパケットのポート番号とした点が上記第１の実施形態と異なる。
【００８６】
図１２は、本発明の第３の実施形態におけるＭＦＰ１０１が送出するマルチキャストパケットのポート番号とパケットを送出するネットワークＩ／Ｆとを関連付けるための設定画面の一例を示す図である。
【００８７】
図１２に示す画面は、ＭＦＰ１０１の操作部２０１２に表示されるものであり、ＭＦＰ１０１の操作者によって操作されるためのものである。フォーム１００１は、マルチキャストパケットの宛て先ポート番号の入力用フォームである。ボタン１００２は、フォーム１００１で指定されたポート番号に対応するネットワークＩ／ＦをＥｔｈｅｒｎｅｔ(登録商標)として指定するためのボタンである。ボタン１００３は、フォーム１００１で指定されたポート番号に対応するネットワークＩ／ＦをＷｉｒｅｌｅｓｓとして指定するためのボタンである。フォーム１００１，ボタン１００２，１００３は、ＭＦＰ１０１の操作者によって操作され、マルチキャストアドレスに対応する送出元ネットワークＩ／Ｆを操作者が指定するために使用される。なお、操作者によって設定された情報（ネットワークＩ／Ｆ設定情報）は、マルチキャストパケット及びブロードキャストパケットを特定のネットワークインターフェイスで送出させるための送出条件として、設定ＤＢ３０３に保存される。
【００８８】
次に、図１２を参照して説明した方法で設定された設定情報に基づいてＭＦＰ１０１で実行されるマルチキャストパケット送出時のネットワークＩ／Ｆ設定処理について図１３を参照して説明する。
【００８９】
図１３は、本発明の第３の実施形態のＭＦＰ１０１で実行されるマルチキャスト送出時のネットワークＩ／Ｆ設定処理の一例を示すフローチャートである。なお、ステップＳ７０１，Ｓ７０２は、図９のステップＳ５０１，Ｓ５０２と同一の処理であるため、それらの説明については割愛する。
【００９０】
図１３において、ステップＳ７０３では、ソケットＡＰＩラッパ３０７は、設定ＤＢ３０３に保存されたネットワークＩ／Ｆ設定情報を参照し、ポート番号に対応する送出元ネットワークＩ／Ｆ設定を確認する。具体的には、ソケットＡＰＩラッパ３０７は、設定ＤＢ３０３に対して、ＮＷ−ＡＰＰ３０４又はＪａｖａ(登録商標)−ＡＰＰ３０５によって指定されたポート番号に対応する送出元ネットワークＩ／Ｆ情報を問い合わせする。この情報は、ＭＦＰ１０１の操作者によって、図１２で示した画面にて設定されるものである。即ち、（１）Ｅｔｈｅｒｎｅｔ(登録商標)（ネットワークＩ／Ｆ−Ａ２０１０）、（２）無線ＬＡＮ（ネットワークＩ／Ｆ−Ｂ２０１１）、（３）Ｅｔｈｅｒｎｅｔ(登録商標)と無線ＬＡＮの両方、の３通りのうちの１つが各ポート番号に対応付けられている。
【００９１】
次に、ステップＳ７０４では、ソケットＡＰＩラッパ３０７は、ステップＳ１１０３で取得したマルチキャストパケットを送出すべきネットワークＩ／Ｆにマルチキャストパケットを送出するように、ソケットオプションを設定する。これは、ｓｅｔｓｏｃｋｏｐｔ（）の第３引数にＩＰ＿ＭＵＬＴＩＣＡＳＴ＿ＩＦを指定する処理である。その際の第４引数には、マルチキャストを送信したいインターフェイスのＩＰアドレスが入る。ソケットＡＰＩラッパ３０７は、ステップＳ７０３で取得したマルチキャストパケットを送出すべきネットワークＩ／Ｆに対応するＩＰアドレスを取得して、ｓｅｔｓｏｃｋｏｐｔ（）の第４引数にその値を含めて実行する。
【００９２】
次に、ステップＳ７０５では、ソケットＡＰＩラッパ３０７は、ｓｅｎｄｔｏ（）を使用してマルチキャストパケットの送出を行なう。このとき、ｓｅｎｄｔｏ（）にセットする引数は、図９のステップＳ５０１にて上位アプリからコールされた内容と同じである。このタイミングで、マルチキャストパケットがソケットＡＰＩラッパ３０７からソケットＡＰＩ３０８に転送され、プロトコルスタック３０９を介してマルチキャストパケットを送出すべきネットワークＩ／Ｆに渡される。その後、マルチキャストパケットを送出すべきネットワークＩ／Ｆからマルチキャストパケットが送出される。
【００９３】
上記第３の実施の形態によれば、上記第１の実施形態と同様の効果を奏することが可能となる。また、ＵＤＰパケットのポート番号に応じて、マルチキャストパケットを送出すべきネットワークＩ／Ｆでマルチキャストパケットを送出することができ、ユーザの利便性を向上されることができる。
【００９４】
上記第１〜第３の実施形態では、本発明を画像形成装置であるＭＦＰ１０１に適用した形態について説明したが、これに限定されるものではなく、通信装置や通信機能を有する情報処理装置、端末等であってもよいことは云うまでもない。
【００９５】
本発明の実施の形態は、ネットワーク又は各種記憶媒体を介して取得したソフトウェア（プログラム）をパーソナルコンピュータ（ＣＰＵ，プロセッサ）にて実行することでも実現できる。
【符号の説明】
【００９６】
１０１  ＭＦＰ
１１０  ＬＡＮ−Ａ
１２０  ＬＡＮ−Ｂ
３０１  ログインアプリ
３０３  設定ＤＢ
３０４  ＮＷ−ＡＰＰ
３０７  ソケットＡＰＩラッパ
３０８  ソケットＡＰＩ
２０１０  ネットワークＩ／Ｆ−Ａ
２０１１  ネットワークＩ／Ｆ−Ｂ
【図１】
0005550297.tif 000002
【図２】
0005550297.tif 000003
【図３】
0005550297.tif 000004
【図４】
0005550297.tif 000005
【図５】
0005550297.tif 000006
【図６】
0005550297.tif 000007
【図７】
0005550297.tif 000008
【図８】
0005550297.tif 000009
【図９】
0005550297.tif 000010
【図１０】
0005550297.tif 000011
【図１１】
0005550297.tif 000012
【図１２】
0005550297.tif 000013
【図１３】
0005550297.tif 000014