(57)【要約】【課題】プログラムの開発や配布に要する労力を低減すること。【解決手段】第一通信用機器及び第二通信用機器が接続される通信装置であって、第一通信用機器を制御する第一制御部と、第二通信用機器を制御する第二制御部と、データの送信先が第一通信用機器であるか第二通信用機器であるかに応じて、第一制御部と第二制御部とのいずれにデータを転送するか判断し、判断した先にデータを転送する選択部と、を備える。第一制御部は、ネイティブコードで実装されており、第二制御部は、ネイティブコードに依存しないコードで実装されている。【選択図】図１
2012203656.tif 000002
【特許請求の範囲】
【請求項１】
第一通信用機器及び第二通信用機器が接続される通信装置であって、
第一通信用機器を制御する第一制御部と、
第二通信用機器を制御する第二制御部と、
データの送信先が前記第一通信用機器であるか前記第二通信用機器であるかに応じて、前記第一制御部と前記第二制御部とのいずれにデータを転送するか判断し、判断した先に前記データを転送する選択部と、
を備え、
前記第一制御部は、ネイティブコードで実装されており、
前記第二制御部は、前記ネイティブコードに依存しないコードで実装されている通信装置。
【請求項２】
前記第一制御部は、前記選択部から前記データの転送を受けると、前記第一通信用機器を制御し前記データを通信路へ送信し、
前記第二制御部は、前記選択部から前記データの転送を受けると、前記第二通信用機器を制御し前記データを通信路へ送信する、
請求項１に記載の通信装置。
【請求項３】
前記選択部は、前記第一通信用機器が通信する相手である第一対向端末のアドレスと前記第一制御部の識別情報とを対応付けて記憶し、
前記選択部はさらに、前記第二通信用機器が通信する相手である第二対向端末のアドレスと前記第二制御部の識別情報とを対応付けて記憶し、
前記データの送信先のアドレスに対応する識別情報が示す制御部を前記データの転送先と判断する請求項１又は２に記載の通信装置。
【請求項４】
ネイティブコードで実装されたコンピュータプログラムであって、第一通信用機器及び第二通信用機器が接続される通信装置に対し、
第一通信用機器を制御する第一制御ステップと、
データの送信先が前記第一通信用機器であるか前記第二通信用機器であるかに応じて、前記第一制御ステップと、前記ネイティブコードに依存しないコードで実装され前記第二通信用機器を制御する第二制御ステップとのいずれにデータの処理を実行させるか判断し、判断した先に前記データの処理を実行させる選択ステップと、
を実行させるためのコンピュータプログラムである。
【発明の詳細な説明】
【技術分野】
【０００１】
接続された通信用機器を制御して対向装置と通信を行うための技術に関する。
【背景技術】
【０００２】
パーソナルコンピュータ（Personal Computer：以下、「ＰＣ」という。）等の周辺機器のデバイスドライバは、オペレーティングシステム（Operating System：以下、「ＯＳ」という。）の種類毎に用意される。ユーザは、自身が操作するＰＣに搭載されたＯＳの種類に応じたデバイスドライバをＰＣにインストールし、周辺機器を動作させる（特許文献１参照）。
また、たとえ形式的には同じ種類のＯＳであっても、複数のディストリビューションが存在する場合、カーネルバージョン、各種ライブラリ、ＡＰＩ（Application Program Interface）などが完全には統一されていない。そのため、ディストリビューション毎にデバイスドライバを用意する必要がある（特許文献２参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−２２９７５１号公報
【特許文献２】特開２００６−２４４００９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
複数のＯＳやディストリビューション毎にデバイスドライバを用意するためには、デバイスドライバの開発や配布など、事業者にとって大きな負担になってしまうという問題があった。
上記事情に鑑み、本発明は、通信用機器を制御して対向装置と通信するためのプログラムの開発や配布に要する労力を低減できる技術を提供することを目的としている。
【課題を解決するための手段】
【０００５】
本発明の一態様は、第一通信用機器及び第二通信用機器が接続される通信装置であって、第一通信用機器を制御する第一制御部と、第二通信用機器を制御する第二制御部と、データの送信先が前記第一通信用機器であるか前記第二通信用機器であるかに応じて、前記第一制御部と前記第二制御部とのいずれにデータを転送するか判断し、判断した先に前記データを転送する選択部と、を備え、前記第一制御部は、ネイティブコードで実装されており、前記第二制御部は、前記ネイティブコードに依存しないコードで実装されている。
【０００６】
本発明の一態様は、上記の通信装置であって、前記第一制御部は、前記選択部から前記データの転送を受けると、前記第一通信用機器を制御し前記データを通信路へ送信し、前記第二制御部は、前記選択部から前記データの転送を受けると、前記第二通信用機器を制御し前記データを通信路へ送信する。
【０００７】
本発明の一態様は、前記選択部は、前記第一通信用機器が通信する相手である第一対向端末のアドレスと前記第一制御部の識別情報とを対応付けて記憶し、前記選択部はさらに、前記第二通信用機器が通信する相手である第二対向端末のアドレスと前記第二制御部の識別情報とを対応付けて記憶し、前記データの送信先のアドレスに対応する識別情報が示す制御部を前記データの転送先と判断する。
【０００８】
本発明の一態様は、ネイティブコードで実装されたコンピュータプログラムであって、第一通信用機器及び第二通信用機器が接続される通信装置に対し、第一通信用機器を制御する第一制御ステップと、データの送信先が前記第一通信用機器であるか前記第二通信用機器であるかに応じて、前記第一制御ステップと、前記ネイティブコードに依存しないコードで実装され前記第二通信用機器を制御する第二制御ステップとのいずれにデータの処理を実行させるか判断し、判断した先に前記データの処理を実行させる選択ステップと、を実行させるためのコンピュータプログラムである。
【発明の効果】
【０００９】
本発明により、通信用機器を制御して対向装置と通信するためのプログラムの開発や配布に要する労力を低減することが可能となる。
【図面の簡単な説明】
【００１０】
【図１】通信システムのシステム構成を表すシステム構成図である。
【図２】通信装置における前処理の流れを表すフローチャートである。
【図３】上り通信の処理の流れを表すフローチャートである。
【図４】下り通信の処理の流れを表すフローチャートである。
【図５】通信装置を介して対向端末同士が通信する際の処理の流れを表すフローチャートである。
【図６】通信装置のアプリケーション実行部がブロードキャスト送信を行う場合の処理の流れを表すフローチャートである。
【図７】第二対向端末がブロードキャストを行う場合の処理の流れを表すフローチャートである。
【発明を実施するための形態】
【００１１】
図１は、通信システム１のシステム構成を表すシステム構成図である。通信システム１は、通信装置１０、第一対向端末４０、第二対向端末５０を備える。通信装置１０と第一対向端末４０とは、有線通信又は無線通信により双方向通信を行う。通信装置１０と第二対向端末５０とは、有線通信又は無線通信により双方向通信を行う。第一対向端末４０及び第二対向端末５０は、いずれも情報処理装置であり、例えばパーソナルコンピュータ、サーバ、スマートフォン、携帯電話機などである。第一対向端末４０及び第二対向端末５０は、情報処理装置を内部に備えた家電機器や周辺機器であっても良く、例えばプリンタ、ファイルサーバ、テレビ受像機、電話機、ゲーム機器などであっても良い。
【００１２】
通信装置１０は、第一対向端末４０及び第二対向端末５０と通信可能な装置であり、例えばルーター等の中継装置であっても良いし、パーソナルコンピュータやスマートフォン等の情報処理装置であっても良い。より具体的には、通信装置１０は、ホームゲートウェイ等のように事業者通信網と宅内通信装置との間でデータの中継を行う装置であっても良い。以下、通信装置１０がデータの中継を行う装置として構成されている場合について説明する。この場合、第一対向端末４０及び第二対向端末５０は、いずれも宅内通信装置である。第一対向端末４０及び第二対向端末５０は、通信装置１０によって割り当てられたＩＰアドレスを用いて事業者通信網に接続する。ただし、上述のように、このような構成は通信システム１の構成の一例に過ぎず、他のように構成されても良い。
【００１３】
通信装置１０は、バスで接続されたＣＰＵ（Central Processing Unit）やメモリや補助記憶装置や第一ＨＷ（Hard Ware）１０１及び第二ＨＷ１０２などを備える。第一ＨＷ１０１及び第二ＨＷ１０２はいずれも通信用機器である。通信装置１０は、ＣＰＵによって制御プログラムを実行することによってＮａｔｉｖｅ２０及びＪＶＭ（Java（登録商標） Virtual Machine）３０を備える装置として機能する。なお、通信装置１０のＮａｔｉｖｅ２０上で動作する各機能（Ｌ３通信制御部２０１、選択部２０２、第一Ｌ２通信制御部２０３、第一ＨＷ制御部２０４）は、ＡＳＩＣ（Application Specific Integrated Circuit）やＰＬＤ（Programmable Logic Device）やＦＰＧＡ（Field Programmable Gate Array）等のハードウェアを用いて実現されても良い。制御プログラムは、コンピュータ読み取り可能な記録媒体に記録されても良い。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。通信装置１０の機能のうち、第二Ｌ２通信制御部３０２及び第二ＨＷ制御部３０３を実現するためのコンピュータプログラムは、他の機能を実現するためのコンピュータプログラムと別のプログラムとして構築されても良い。同様に、アプリケーション実行部３０１を実現するためのコンピュータプログラムも、他の機能を実現するためのコンピュータプログラムと別のプログラムとして構築されても良い。
【００１４】
第一ＨＷ１０１は、通信インタフェースとして通信装置１０に接続されている装置であり、第一対向端末４０と通信する。第一ＨＷ１０１は、例えばＵＳＢ（Universal Serial Bus）等どのような形態で通信装置１０に接続されても良い。第一ＨＷ１０１を制御する第一ＨＷ制御部２０４は、Ｎａｔｉｖｅ２０上で動作する。第一ＨＷ１０１は、例えば有線ＬＡＮ（Local Area Network）や無線ＬＡＮ等の通信インタフェースである。
【００１５】
第二ＨＷ１０２は、通信インタフェースとして通信装置１０に接続されている装置であり、第二対向端末５０と通信する。第二ＨＷ１０２は、例えばＵＳＢ等どのような形態で通信装置１０に接続されても良い。第二ＨＷ１０２を制御する第二ＨＷ制御部３０３は、ＪＶＭ３０上で動作する。第二ＨＷ１０２は、例えばＺｉｇＢｅｅ（登録商標）やＷｉＧｉｇ（Wireless Gigabit）等の通信インタフェースである。
【００１６】
Ｎａｔｉｖｅ２０は、通信装置１０のＯＳ（Operating System）に依存した言語（ネイティブコード：Native Code）で開発された機能を動作させる環境である。Ｎａｔｉｖｅ２０上では、Ｌ３通信制御部２０１、選択部２０２、第一Ｌ２通信制御部２０３、第一ＨＷ制御部２０４が動作する。Ｎａｔｉｖｅ２０上で動作する各機能は、例えばＣやＣ＋＋等の言語で記述されてコンパイルされたネイティブコードがＣＰＵによって直接実行されることによって実現される機能である。そのため、これらの機能は、ＪＶＭ３０上で動作する各機能よりも高速に動作することが可能である。一方、これらの機能はＯＳやディストリビューション毎に開発する必要があるため、開発にコストや期間を要する。
【００１７】
Ｌ３通信制御部２０１は、ＯＳＩ参照モデル（OSI Reference Model）の第三層のデータに基づいてデータの行き先を判断し、判断した行き先にデータを転送する。ＯＳＩ参照モデル第三層のデータとは、例えばＩＰアドレスである。また、転送されるデータとは、例えばパケットである。
【００１８】
選択部２０２は、ＯＳＩ参照モデルの第三層のデータと第二層のデータとＬ２通信制御部識別情報とを関連づけたアドレステーブルを記憶している。選択部２０２は、アドレステーブルの内容に基づいてデータの行き先を判断し、判断した行き先にデータを転送する。言い換えれば、選択部２０２は、データに対して実行される次の処理を判断し、判断した先にデータの処理を実行させる機能である。ＯＳＩ参照モデル第二層のデータとは、例えばＭＡＣアドレス（Media Access Control address）である。Ｌ２通信制御部識別情報とは、Ｌ２通信制御部を識別するための情報であり、第一Ｌ２通信制御部２０３と第二Ｌ２通信制御部３０２に対して重複しないように割り当てられた情報である。
【００１９】
第一Ｌ２通信制御部２０３は、ＯＳＩ参照モデルの第二層に関する制御を行う。
第一ＨＷ制御部２０４は、第一ＨＷ１０１を制御する。具体的には、第一ＨＷ制御部２０４は、第一ＨＷ１０１によって第一対向端末４０から受信されたデータを、第一Ｌ２通信制御部２０３へ転送する。また、第一ＨＷ制御部２０４は、第一Ｌ２通信制御部２０３から転送されてきたデータを、第一ＨＷ１０１を制御することによって第一対向端末４０へ送信する。
【００２０】
Ｎａｔｉｖｅ２０には、事業者通信網と通信をするための機能も設けられても良い。これらの機能は既知の構成であるため、図示及び説明を省略する。
ＪＶＭ３０は、通信装置１０のＯＳに依存しない言語であるＪＡＶＡ（登録商標）で開発された機能を動作させる環境である。ＪＶＭ３０上では、アプリケーション実行部３０１、第二Ｌ２通信制御部３０２、第二ＨＷ制御部３０３が動作する。ＪＶＭ３０上で動作する各機能は、ＪＡＶＡ（登録商標）で記述されてコンパイルされたコードが、ＪＡＶＡ（登録商標）仮想マシン上で実行されることによって実現される機能である。そのため、これらの機能は、Ｎａｔｉｖｅ２０上で動作する各機能よりも動作速度が遅くなる場合がある。一方、これらの機能は、複数のＯＳやディストリビューションに対して共通に開発することが可能であるため、開発に要するコストや期間を抑えることができる。
【００２１】
アプリケーション実行部３０１は、第一対向端末４０や第二対向端末５０との間で通信の発生を伴う処理を行うアプリケーションである。
第二Ｌ２通信制御部３０２は、ＯＳＩ参照モデルの第二層に関する制御を行う。
第二ＨＷ制御部３０３は、第二ＨＷ１０２を制御する。具体的には、第二ＨＷ制御部３０３は、第二ＨＷ１０２によって第二対向端末５０から受信されたデータを、第二Ｌ２通信制御部３０２へ転送する。また、第二ＨＷ制御部３０３は、第二Ｌ２通信制御部３０２から転送されてきたデータを、第二ＨＷ１０２を制御することによって第二対向端末５０へ送信する。
【００２２】
図２は、通信装置１０における前処理の流れを表すフローチャートである。まず、第二Ｌ２通信制御部３０２が、第二ＨＷ１０２と第二対向端末５０との間で通信路を接続する（ステップＳ１０１）。この接続処理において、第二Ｌ２通信制御部３０２は、第二対向端末５０のＭＡＣアドレスを第二対向端末５０から受信する。次に、第二Ｌ２通信制御部３０２が、第二対向端末５０のＭＡＣアドレスを選択部２０２へ転送する（ステップＳ１０２）。選択部２０２は、第二対向端末５０のＭＡＣアドレスを、ＭＡＣアドレスの通知元である第二Ｌ２通信制御部３０２のＬ２通信制御部識別情報と対応付けてアドレステーブルに登録する（ステップＳ１０３）。選択部２０２は、ＭＡＣアドレス及びＬ２通信制御部識別情報の登録を完了すると、Ｌ３通信制御部２０１へ登録完了を通知する。Ｌ３通信制御部２０１は、ＭＡＣアドレスがアドレステーブルに登録された第二対向端末５０に対し、ＩＰアドレスを割り当てる（ステップＳ１０４）。Ｌ３通信制御部２０１は、第二対向端末５０に対して割り当てたＩＰアドレスを、選択部２０２に通知する。選択部２０２は、第二対向端末５０に割り当てられたＩＰアドレスを、ＭＡＣアドレス及びＬ２通信制御部識別情報に対応付けてアドレステーブルに登録する（ステップＳ１０５）。選択部２０２は、第二対向端末５０に割り当てられたＩＰアドレスを、第二Ｌ２通信制御部３０２、第二ＨＷ制御部３０３、第二ＨＷ１０２を介して、第二対向端末５０に対し通知する。
【００２３】
図２のフローチャートには第二ＨＷ１０２、第二ＨＷ制御部３０３、第二Ｌ２通信制御部３０２による処理が示されているが、第一ＨＷ１０１、第一ＨＷ制御部２０４、第一Ｌ２通信制御部２０３も同様の処理を行う。この処理によって、第一対向端末４０に対してＩＰアドレスが割り当てられるとともに、選択部２０２のアドレステーブルに第一対向端末４０のＭＡＣアドレス及びＩＰアドレスと、第一Ｌ２通信制御部２０３のＬ２通信制御部識別情報とが登録される。このように、Ｌ３通信制御部２０１によってＩＰアドレスが割り当てられ、アドレステーブルにＭＡＣアドレスとＩＰアドレスとＬ２通信制御部識別情報とが対応付けて登録されることによって、第一対向端末４０及び第二対向端末５０は通信装置１０と通信することが可能となる。
【００２４】
図３は、第一対向端末４０又は第二対向端末５０から通信装置１０へ向けた通信（以下、「上り通信」という。）の処理の流れを表すフローチャートである。以下の説明では、第一対向端末４０及び第二対向端末装置５０の区別が必要無い場合には、単に「対向端末」と記載する。同様に、第一ＨＷ１０１及び第二ＨＷ１０２、第一ＨＷ制御部２０４及び第二ＨＷ制御部３０３、第一Ｌ２通信制御部２０３及び第二Ｌ２通信制御部３０２のそれぞれについて区別が必要無い場合には、単に「ＨＷ」、「ＨＷ制御部」、「Ｌ２通信制御部」と記載する。
【００２５】
まず、対向端末が通信装置１０のＩＰアドレス宛にデータの送信を開始する（ステップＳ２０１）。次に、データを送信した対向端末に対応するＨＷがデータを受信する（ステップＳ２０２）。すなわち、データを送信したのが第一対向端末４０であれば、第一ＨＷ１０１がデータを受信する。データを送信したのが第二対向端末５０であれば、第二ＨＷ１０２がデータを受信する。
【００２６】
次に、ＨＷが、自身に対応するＨＷ制御部にデータを転送する（ステップＳ２０３）。すなわち、データを受信したのが第一ＨＷ１０１であれば、第一ＨＷ１０１は第一ＨＷ制御部２０４へデータを転送する。また、データを受信したのが第二ＨＷ１０２であれば、第二ＨＷ１０２は第二ＨＷ制御部３０３へデータを転送する。
【００２７】
次に、ＨＷ制御部が、自身に対応するＬ２通信制御部にデータを転送する（ステップＳ２０４）。すなわち、データを受けたのが第一ＨＷ制御部２０４であれば、第一ＨＷ制御部２０４は第一Ｌ２通信制御部２０３へデータを転送する。また、データを受けたのが第二ＨＷ制御部３０３であれば、第二ＨＷ制御部３０３は第二Ｌ２通信制御部３０２へデータを転送する。
【００２８】
Ｌ２通信制御部は、受信したデータを選択部２０２へ転送する（ステップＳ２０５）。次に、選択部２０２がデータをＬ３通信制御部２０１へ転送する（ステップＳ２０６）。次に、Ｌ３通信制御部２０１が、データをアプリケーション実行部３０１に転送する（ステップＳ２０７）。そして、アプリケーション実行部３０１が、受信したデータを処理する（ステップＳ２０８）。以上の処理によって、対向端末から通信装置１０へ向けたデータ送信処理が完了する。なお、図３に示された処理は、対向端末が通信装置１０を介して事業者通信網へデータを送信する場合にも実行される。
【００２９】
図４は、通信装置１０から対向端末へ向けた通信（以下、「下り通信」という。）の処理の流れを表すフローチャートである。まず、アプリケーション実行部３０１が、データの送信先となる対向端末のＩＰアドレスに基づいて送信処理を開始する（ステップＳ３０１）。この処理において、アプリケーション実行部３０１は、データをＬ３通信制御部２０１に転送する。次に、Ｌ３通信制御部２０１が、選択部２０２にデータを転送する（ステップＳ３０２）。次に、選択部２０２がデータの送信先のＩＰアドレスをヘッダから取得する。選択部２０２は、取得したＩＰアドレスに対応するＭＡＣアドレス及びＬ２通信制御部識別情報を、アドレステーブルから取得する。選択部２０２は、取得したＬ２通信制御部識別情報に対応するＬ２通信制御部を、データの転送先と判断する（ステップＳ３０３）。そして、選択部２０２は、転送先と判断したＬ２通信制御部に対しデータを転送する（ステップＳ３０４）。
【００３０】
次に、Ｌ２通信制御部が、自身に対応するＨＷ制御部にデータを転送する（ステップＳ３０５）。すなわち、データを受けたのが第一Ｌ２通信制御部２０３であれば、第一Ｌ２通信制御部２０３は第一ＨＷ制御部２０４へデータを転送する。また、データを受けたのが第二Ｌ２通信制御部３０２であれば、第二Ｌ２通信制御部３０２は第二ＨＷ制御部３０３へデータを転送する。
【００３１】
次に、ＨＷ制御部が、自身に対応するＨＷにデータを転送する（ステップＳ３０６）。すなわち、データを受けたのが第一ＨＷ制御部２０４であれば、第一ＨＷ制御部２０４は第一ＨＷ１０１へデータを転送する。また、データを受けたのが第二ＨＷ制御部３０３であれば、第二ＨＷ制御部３０３は第二ＨＷ１０２へデータを転送する。
【００３２】
次に、ＨＷが通信路を介してデータを送信する（ステップＳ３０７）。そして、データを送信したＨＷに対応する対向端末が、通信装置１０からデータを受信する（ステップＳ３０８）。すなわち、データを送信したのが第一ＨＷ１０１であれば、第一対向端末４０がデータを受信する。データを送信したのが第二ＨＷ１０２であれば、第二対向端末５０がデータを受信する。以上の処理によって、通信装置１０から対向端末へ向けたデータ送信処理が完了する。なお、図４に示された処理は、事業者通信網から対向端末宛のデータを通信装置１０が受信した場合にも実行される。この処理の実行により、事業者通信網からのデータが、その宛先である対向端末によって受信される。
【００３３】
図５は、通信装置１０を介して対向端末同士が通信する際の処理の流れを表すフローチャートである。図５は、特に第二対向端末５０から第一対向端末４０へデータが送信される際の処理の流れを表す。第一対向端末４０から第二対向端末５０へのデータ送信時の処理も、同様の処理が行われる。
【００３４】
まず、第二対向端末５０が、送信先となる第一対向端末４０のＩＰアドレスを送信先に設定したデータを送信する（ステップＳ４０１）。第二対向端末５０から送信されたデータは、選択部２０２まで転送される（ステップＳ４０２）。具体的には以下のとおりである。まず、第二対向端末５０に対応する第二ＨＷ１０２がデータを受信する。次に、第二ＨＷ１０２が、自身に対応する第二ＨＷ制御部３０３へデータを転送する。次に、第二ＨＷ制御部３０３が、自身に対応する第二Ｌ２通信制御部３０２へデータを転送する。そして、第二Ｌ２通信制御部３０２が、選択部２０２へデータを転送する。
【００３５】
次に、選択部２０２がデータの送信先のＩＰアドレスをヘッダから取得する。この場合、送信先のＩＰアドレスは、第一対向端末４０のＩＰアドレスである。選択部２０２は、取得したＩＰアドレスに対応するＭＡＣアドレス及びＬ２通信制御部識別情報を、アドレステーブルから取得する。この場合、取得されるＭＡＣアドレスは第一対向端末４０のＭＡＣアドレスであり、取得されるＬ２通信制御部識別情報は第一Ｌ２通信制御部２０３の識別情報である。選択部２０２は、取得したＬ２通信制御部識別情報に対応する第一Ｌ２通信制御部２０３を、データの転送先と判断する（ステップＳ４０３）。そして、選択部２０２は、転送先と判断した第一Ｌ２通信制御部２０３に対しデータを転送する（ステップＳ４０４）。
【００３６】
次に、第一Ｌ２通信制御部２０３が、自身に対応する第一ＨＷ制御部２０４にデータを転送する（ステップＳ４０５）。次に、第一ＨＷ制御部２０４が、自身に対応する第一ＨＷ１０１にデータを転送する（ステップＳ４０６）。次に、第一ＨＷ１０１が通信路を介してデータを送信する（ステップＳ４０７）。そして、データを送信した第一ＨＷ１０１に対応する第一対向端末４０が、通信装置１０からデータを受信する（ステップＳ４０８）。
【００３７】
図６は、通信装置１０のアプリケーション実行部３０１がブロードキャスト送信を行う場合の処理の流れを表すフローチャートである。まず、アプリケーション実行部３０１が、ブロードキャストアドレス宛にデータの送信を開始する（ステップＳ５０１）。この処理において、アプリケーション実行部３０１は、データをＬ３通信制御部２０１に転送する。次に、Ｌ３通信制御部２０１が、データの送信先であるＩＰアドレスがブロードキャストアドレスであること及びアプリケーション実行部３０１からデータを受信したことに応じて、データを選択部２０２及びアプリケーション実行部３０１に転送する（ステップＳ５０２）。アプリケーション実行部３０１は、受信したデータを処理する（ステップＳ５０３）。
【００３８】
一方、選択部２０２は、データの送信先のＩＰアドレスをヘッダから取得する。この場合、送信先のＩＰアドレスはブロードキャストアドレスである。取得したＩＰアドレスがブロードキャストアドレスであり且つＬ３通信制御部２０１からデータを受信した場合、選択部２０２は全てのＬ２通信制御部をデータの転送先として判定する（ステップＳ５０４）。本実施形態では、Ｌ２通信制御部が二つ（第一Ｌ２通信制御部２０３及び第二Ｌ２通信制御部３０２）あるため、選択部２０２はデータの転送先をこの二つのＬ２通信制御部であると判定する。そして、選択部２０２は、転送先と判断した第一Ｌ２通信制御部２０３及び第二Ｌ２通信制御部３０２に対しデータを転送する（ステップＳ５０５）。
【００３９】
次に、第一Ｌ２通信制御部２０３が、自身に対応する第一ＨＷ制御部２０４にデータを転送する（ステップＳ５０６）。次に、第一ＨＷ制御部２０４が、自身に対応する第一ＨＷ１０１にデータを転送する（ステップＳ５０７）。次に、第一ＨＷ１０１が通信路を介してデータを送信する（ステップＳ５０８）。そして、データを送信した第一ＨＷ１０１に対応する第一対向端末４０が、通信装置１０からデータを受信する（ステップＳ５０９）。第二Ｌ２通信制御部３０２、第二ＨＷ制御部３０３、第二ＨＷ１０２及び第二対向端末５０についても同様である。すなわち、第二対向端末５０は、第二Ｌ２通信制御部３０２、第二ＨＷ制御部３０３及び第二ＨＷ１０２を経由したデータを受信する。なお、図６に示された処理は、通信装置１０が事業者通信網からブロードキャストアドレス宛のデータを受信した場合にも実行される。
【００４０】
図７は、第二対向端末５０がブロードキャストを行う場合の処理の流れを表すフローチャートである。まず、第二対向端末５０が、ブロードキャストアドレス宛にデータの送信を開始する（ステップＳ６０１）。第二対向端末５０から送信されたデータは、選択部２０２まで転送される（ステップＳ６０２）。具体的には以下のとおりである。まず、第二対向端末５０に対応する第二ＨＷ１０２がデータを受信する。次に、第二ＨＷ１０２が、自身に対応する第二ＨＷ制御部３０３へデータを転送する。次に、第二ＨＷ制御部３０３が、自身に対応する第二Ｌ２通信制御部３０２へデータを転送する。そして、第二Ｌ２通信制御部３０２が、選択部２０２へデータを転送する。
【００４１】
選択部２０２は、データの送信先のＩＰアドレスをヘッダから取得する。この場合、送信先のＩＰアドレスはブロードキャストアドレスである。取得したＩＰアドレスがブロードキャストアドレスであり且つＬ２通信制御部からデータを受信した場合、選択部２０２は全てのＬ２通信制御部及びＬ３通信制御部２０１をデータの転送先として判定する（ステップＳ６０３）。本実施形態では、Ｌ２通信制御部が二つ（第一Ｌ２通信制御部２０３及び第二Ｌ２通信制御部３０２）あるため、選択部２０２はデータの転送先をこの二つのＬ２通信制御部及びＬ３通信制御部２０１であると判定する。そして、選択部２０２は、転送先と判断した第一Ｌ２通信制御部２０３、第二Ｌ２通信制御部３０２及びＬ３通信制御部２０１に対しデータを転送する（ステップＳ６０４）。
【００４２】
次に、Ｌ３通信制御部２０１が、データのブロードキャストアドレスであること及び選択部２０２からデータを受信したことに応じて、データをアプリケーション実行部３０１に転送する（ステップＳ６０５）。アプリケーション実行部３０１は、受信したデータを処理する（ステップＳ６０６）。
【００４３】
次に、第一Ｌ２通信制御部２０３が、自身に対応する第一ＨＷ制御部２０４にデータを転送する（ステップＳ６０７）。次に、第一ＨＷ制御部２０４が、自身に対応する第一ＨＷ１０１にデータを転送する（ステップＳ６０８）。次に、第一ＨＷ１０１が通信路を介してデータを送信する（ステップＳ６０９）。そして、データを送信した第一ＨＷ１０１に対応する第一対向端末４０が、通信装置１０からデータを受信する（ステップＳ６１０）。第二Ｌ２通信制御部３０２，第二ＨＷ制御部３０３、第二ＨＷ１０２及び第二対向端末５０についても同様である。すなわち、第二対向端末５０は、第二Ｌ２通信制御部３０２、第二ＨＷ制御部３０３及び第二ＨＷ１０２を経由したデータを受信する。なお、Ｌ３通信制御部２０１は、このデータをさらに事業者通信網側へブロードキャストアドレス宛のデータとして送信しても良い。
【００４４】
このように構成された通信システム１では、通信用機器を制御して対向装置と通信するためのプログラムの開発や配布に要する労力を低減することが可能となる。この効果についての詳細は以下のとおりである。
Ｎａｔｉｖｅ２０で動作するＨＷ制御部及びＬ２通信制御部を開発するためには、Ｎａｔｉｖｅ２０のＯＳに依存した言語で開発する必要がある。一方、ＪＶＭ３０で動作するＨＷ制御部及びＬ２通信制御部を開発するためには、ＯＳに依存した言語を用いる必要は無く、ＪＶＭ３０上で動作するものを開発すればよい。そのため、複数のＯＳやディストリビューションに対して共通にＨＷ制御部及びＬ２通信制御部を開発することが可能であるため、開発に要するコストや期間を抑えることができる。
【００４５】
また、例えば一般的に普及している通信インタフェース（例えば有線ＬＡＮや無線ＬＡＮ）に対応したＨＷ制御部及びＬ２通信制御部はＮａｔｉｖｅ２０上で動作する第一ＨＷ制御部２０４及び第一Ｌ２通信制御部２０３として構成し、あまり一般的に普及していない通信インタフェース（例えばＺｉｇｂｅｅやＷｉＧｉｇ）に対応したＨＷ制御部及びＬ２通信制御部はＪＶＭ３０上で動作する第二ＨＷ制御部３０３及び第二Ｌ２通信制御部３０２として構成しても良い。このように構成することで、あまり一般的に普及していない通信インタフェースについて、ＯＳ毎に開発する必要が無くなり、開発に要するコストや期間を抑えることが可能となる。
【００４６】
また、Ｎａｔｉｖｅ２０の機能が組み込みシステムによって実現されている場合、そもそもＮａｔｉｖｅ２０への機能の追加が非常に困難である。このような場合であっても、通信装置１０ではＨＷ制御部及びＬ２通信制御部の機能を通信装置１０に新たに盛り込むことが可能であり、新たなＨＷを追加することが可能となる。
【００４７】
＜変形例＞
ＪＶＭ３０を実現するＪＡＶＡ（登録商標）は、ＯＳに依存せずにＨＷ制御部及びＬ２通信制御部を開発可能な環境の一例にすぎず、開発環境はＪＡＶＡ（登録商標）に限定されないし、Ｎａｔｉｖｅ２０以外でＨＷ制御部及びＬ２通信制御部を動作させる環境はＪＶＭ３０に限定されない。
ＪＶＭ３０には、一組のＬ２通信制御部及びＨＷ制御部が備えられているが、複数組のＬ２通信制御部及びＨＷ制御部が備えられても良い。
アプリケーション実行部３０１は、ＪＶＭ３０上で動作するように構成されるのではなく、Ｎａｔｉｖｅ２０上で動作するように構成されても良い。
【００４８】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【００４９】
１０…通信装置，  ２０…Ｎａｔｉｖｅ，  ３０…ＪＶＭ，  ４０…第一対向端末，  ５０…第二対向端末，  １０１…第一ＨＷ，  １０２…第二ＨＷ，  ２０１…Ｌ３通信制御部，  ２０２…選択部，  ２０３…第一Ｌ２通信制御部，  ２０４…第一ＨＷ制御部，  ３０１…アプリケーション実行部，  ３０２…第二Ｌ２通信制御部，  ３０３…第二ＨＷ制御部
【図１】
2012203656.tif 000003
【図２】
2012203656.tif 000004
【図３】
2012203656.tif 000005
【図４】
2012203656.tif 000006
【図５】
2012203656.tif 000007
【図６】
2012203656.tif 000008
【図７】
2012203656.tif 000009