(57)【要約】【課題】ＯＳのセキュリティレベルを低下させることなくＯＳ間の命令の呼出しを可能とすること。【解決手段】第１命令群に属する命令を実行する第１ＯＳと、前記第１命令群とは異なる第２命令群に属する命令を実行する第２ＯＳと、前記第１命令群に属する第１命令を外部装置から受信した場合には当該第１命令を前記第１ＯＳに入力し、前記第１命令に対応する応答として第１応答が前記第１ＯＳにより出力された場合には当該第１応答を前記外部装置へ送信し、前記第１命令に対応する応答として前記第２命令群に属する第２命令が前記第１ＯＳにより出力された場合には、当該第２命令を前記第２ＯＳに入力した後、前記第２ＯＳにより出力される当該第２命令に対応する第２応答を前記第１ＯＳに入力する判定部と、を備える通信装置を提供する。【選択図】図２
2010039913.tif 000002
【特許請求の範囲】
【請求項１】
第１命令群に属する命令を実行する第１オペレーティングシステムと；
前記第１命令群とは異なる第２命令群に属する命令を実行する第２オペレーティングシステムと；
前記第１命令群に属する第１命令を外部装置から受信した場合には当該第１命令を前記第１オペレーティングシステムに入力し、
前記第１命令に対応する応答として第１応答が前記第１オペレーティングシステムにより出力された場合には当該第１応答を前記外部装置へ送信し、
前記第１命令に対応する応答として前記第２命令群に属する第２命令が前記第１オペレーティングシステムにより出力された場合には、当該第２命令を前記第２オペレーティングシステムに入力した後、前記第２オペレーティングシステムにより出力される当該第２命令に対応する第２応答を前記第１オペレーティングシステムに入力する、判定部と；
を備える通信装置。
【請求項２】
前記判定部は、さらに、前記第２命令群に属する前記第２命令を外部装置から受信した場合には当該第２命令を前記第２オペレーティングシステムに入力し、
前記外部装置から受信された前記第２命令に対応する応答として第２応答が前記第２オペレーティングシステムにより出力された場合には当該第２応答を前記外部装置へ送信する、請求項１に記載の通信装置。
【請求項３】
前記第１オペレーティングシステムは、前記第１命令群に属する少なくとも１つの命令を前記第２命令群に属する命令に変換する命令変換部を有する、請求項１に記載の通信装置。
【請求項４】
前記第１命令群に属する命令は、ヘッダ部とデータ部とを含み、
前記命令変換部は、前記第１命令群に属する命令のデータ部から前記第２命令群に属する命令を抽出することにより命令を変換する、請求項３に記載の通信装置。
【請求項５】
前記第１オペレーティングシステムは、前記第１命令群に属する命令を前記第２命令群に属する命令に変換するための変換テーブルをさらに有し、
前記命令変換部は、前記変換テーブルを参照し、前記第１命令群に属する命令と関連付けられた前記第２命令群に属する命令を取得することにより命令を変換する、請求項３に記載の通信装置。
【請求項６】
前記第１オペレーティングシステムは、前記第１命令群に属する少なくとも１つの命令を前記第２命令群に属する命令に変換する第１の命令変換部と、前記第１命令群に属する少なくとも１つの命令を前記第２命令群に属する他の命令に変換する第２の命令変換部と、を有する、請求項１に記載の通信装置。
【請求項７】
前記通信装置は、前記第１命令群及び前記第２命令群とは異なる第３命令群に属する命令を実行する第３オペレーティングシステム、をさらに備え；
前記第１オペレーティングシステムは、前記第１命令群に属する少なくとも１つの命令を前記第２命令群に属する命令に変換する第１の命令変換部と、前記第１命令群に属する少なくとも１つの命令を前記第３命令群に属する命令に変換する第２の命令変換部と、を有する、請求項１に記載の通信装置。
【請求項８】
前記判定部は、前記第１命令に対応する応答として前記第２命令が前記第１オペレーティングシステムにより出力された場合には、当該第２命令を前記第２オペレーティングシステムに入力する前に、前記第２オペレーティングシステムのアプリケーションを識別する情報であって当該第２命令に含まれる情報を所定の対応表に応じて書き換える、請求項１に記載の通信装置。
【請求項９】
前記第２命令群に属する命令は、ヘッダ部とデータ部とを含み、
前記判定部は、前記第１命令に対応する応答として前記第２命令が前記第１オペレーティングシステムにより出力された場合には、当該第２命令の前記ヘッダ部が事前に与えられた所定の条件を満たす場合にのみ、当該第２命令を前記第２オペレーティングシステムに入力する、請求項１に記載の通信装置。
【請求項１０】
前記判定部は、前記第２命令を前記第２オペレーティングシステムに入力した後、一定の時間が経過しても前記第２オペレーティングシステムにより当該第２命令に対応する第２応答が出力されない場合には、当該第２命令を再度前記第２オペレーティングシステムに入力する、請求項１に記載の通信装置。
【請求項１１】
前記判定部は、前記第２命令を前記第２オペレーティングシステムに入力した後、一定の時間が経過しても前記第２オペレーティングシステムにより当該第２命令に対応する第２応答が出力されない場合には、異常が発生したことを示す応答を前記第１オペレーティングシステムに入力する、請求項１に記載の通信装置。
【請求項１２】
第１命令群に属する命令を実行する第１オペレーティングシステムと、前記第１命令群とは異なる第２命令群に属する命令を実行する第２オペレーティングシステムと、を備える通信装置において、
前記第１命令群に属する第１命令を外部装置から受信した場合に、当該第１命令を前記第１オペレーティングシステムに入力するステップと；
前記第１命令に対応する応答として第１応答が前記第１オペレーティングシステムにより出力された場合に、当該第１応答を前記外部装置へ送信するステップと；
前記第１命令に対応する応答として前記第２命令群に属する第２命令が前記第１オペレーティングシステムにより出力された場合に、当該第２命令を前記第２オペレーティングシステムに入力するステップと；
前記第１オペレーティングシステムにより出力された前記第２命令に対応する第２応答であって前記第２オペレーティングシステムにより出力された第２応答を、前記第１オペレーティングシステムに入力するステップと；
を含む通信方法。
【請求項１３】
通信装置を制御するコンピュータを：
第１命令群に属する命令を実行する第１オペレーティングシステムと；
前記第１命令群とは異なる第２命令群に属する命令を実行する第２オペレーティングシステムと；
前記第１命令群に属する第１命令を外部装置から受信した場合には当該第１命令を前記第１オペレーティングシステムに入力し、
前記第１命令に対応する応答として第１応答が前記第１オペレーティングシステムにより出力された場合には当該第１応答を前記外部装置へ送信し、
前記第１命令に対応する応答として前記第２命令群に属する第２命令が前記第１オペレーティングシステムにより出力された場合には、当該第２命令を前記第２オペレーティングシステムに入力した後、前記第２オペレーティングシステムにより出力される当該第２命令に対応する第２応答を前記第１オペレーティングシステムに入力する、判定部と；
として機能させるための、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、通信方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、情報の記録や演算を行うことのできる集積回路を組み込んだＩＣ（Integrated  Circuit）カードが実用化されている。中でも、集積回路内にプロセッサを備え、高度な情報処理を実現するスマートカードとも呼ばれるＩＣカードは、日常生活における決済手段や個人識別手段として近年様々な用途に広く用いられている。
【０００３】
ＩＣカード上での情報処理は通常、ＩＣカードとの間で通信可能な外部装置から与えられる命令を受けて行われる。ＩＣカードに与えられる命令には、情報の入出力や演算、又はセキュリティ処理などをＩＣカードに実行させる様々なものが存在する。そこで、近年開発された多くのＩＣカードは、そうした命令群を実行する基盤となるオペレーティングシステム（以下、ＯＳ（Operating  System）という）を回路内に搭載している。そして、異なる規格に従った複数の外部装置との間でＩＣカードを連携可能にしてＩＣカードの汎用性を高めるために、ＩＣカードに複数の種類のＯＳが搭載される場合もある。
【０００４】
複数のＯＳを搭載したＩＣカードに関連する技術としては、例えば、下記特許文献１又は２に記載の技術が公知である。例えば、下記特許文献１では、接触型ＩＣカード用のＯＳと非接触型ＩＣカード用のＯＳとを１つの回路に搭載し、各ＯＳにより管理されるデータへのリンク情報を保持することにより、ＯＳ間でのデータ共有を可能とする技術が開示されている。また、下記特許文献２では、個々の命令の処理履歴を管理することにより、あるＯＳによる命令実行中に他のＯＳによって他の命令が実行されることを回避する技術が開示されている。
【０００５】
【特許文献１】特開２００２−２５９９２２号公報
【特許文献２】特開２００７−１２２２８９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、例えばＩＣカードの第１のＯＳとの間でのみ連携することのできるプロトコルを用いて、ＩＣカードの第２のＯＳの有する機能を利用したいという状況も発生する。そうした場合に、第２のＯＳを改変して第１のＯＳからの命令を受け付けるインタフェースを用意すると、第２のＯＳのセキュリティレベルが低下する。また、上記特許文献１又は２に記載の手法を応用した場合、双方のＯＳに機能を追加する必要が生じるため、ＯＳ自体の汎用性や拡張性が損なわれる恐れがある。
【０００７】
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、ＯＳのセキュリティレベルを低下させることなくＯＳ間の命令の呼出しを可能とする、新規かつ改良された通信装置、通信方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明のある観点によれば、第１命令群に属する命令を実行する第１オペレーティングシステムと、前記第１命令群とは異なる第２命令群に属する命令を実行する第２オペレーティングシステムと、前記第１命令群に属する第１命令を外部装置から受信した場合には当該第１命令を前記第１オペレーティングシステムに入力し、前記第１命令に対応する応答として第１応答が前記第１オペレーティングシステムにより出力された場合には当該第１応答を前記外部装置へ送信し、前記第１命令に対応する応答として前記第２命令群に属する第２命令が前記第１オペレーティングシステムにより出力された場合には、当該第２命令を前記第２オペレーティングシステムに入力した後、前記第２オペレーティングシステムにより出力される当該第２命令に対応する第２応答を前記第１オペレーティングシステムに入力する、判定部と、を備える通信装置が提供される。
【０００９】
また、前記判定部は、さらに、前記第２命令群に属する前記第２命令を外部装置から受信した場合には当該第２命令を前記第２オペレーティングシステムに入力し、前記外部装置から受信された前記第２命令に対応する応答として第２応答が前記第２オペレーティングシステムにより出力された場合には当該第２応答を前記外部装置へ送信してもよい。
【００１０】
また、前記第１オペレーティングシステムは、前記第１命令群に属する少なくとも１つの命令を前記第２命令群に属する命令に変換する命令変換部を有してもよい。
【００１１】
また、前記第１命令群に属する命令は、ヘッダ部とデータ部とを含み、前記命令変換部は、前記第１命令群に属する命令のデータ部から前記第２命令群に属する命令を抽出することにより命令を変換してもよい。
【００１２】
また、前記第１オペレーティングシステムは、前記第１命令群に属する命令を前記第２命令群に属する命令に変換するための変換テーブルをさらに有し、前記命令変換部は、前記変換テーブルを参照し、前記第１命令群に属する命令と関連付けられた前記第２命令群に属する命令を取得することにより命令を変換してもよい。
【００１３】
また、前記第１オペレーティングシステムは、前記第１命令群に属する少なくとも１つの命令を前記第２命令群に属する命令に変換する第１の命令変換部と、前記第１命令群に属する少なくとも１つの命令を前記第２命令群に属する他の命令に変換する第２の命令変換部と、を有してもよい。
【００１４】
また、前記通信装置は、前記第１命令群及び前記第２命令群とは異なる第３命令群に属する命令を実行する第３オペレーティングシステム、をさらに備え、前記第１オペレーティングシステムは、前記第１命令群に属する少なくとも１つの命令を前記第２命令群に属する命令に変換する第１の命令変換部と、前記第１命令群に属する少なくとも１つの命令を前記第３命令群に属する命令に変換する第２の命令変換部と、を有してもよい。
【００１５】
また、前記判定部は、前記第１命令に対応する応答として前記第２命令が前記第１オペレーティングシステムにより出力された場合には、当該第２命令を前記第２オペレーティングシステムに入力する前に、前記第２オペレーティングシステムのアプリケーションを識別する情報であって当該第２命令に含まれる情報を所定の対応表に応じて書き換えてもよい。
【００１６】
また、前記第２命令群に属する命令は、ヘッダ部とデータ部とを含み、前記判定部は、前記第１命令に対応する応答として前記第２命令が前記第１オペレーティングシステムにより出力された場合には、当該第２命令の前記ヘッダ部が事前に与えられた所定の条件を満たす場合にのみ、当該第２命令を前記第２オペレーティングシステムに入力してもよい。
【００１７】
また、前記判定部は、前記第２命令を前記第２オペレーティングシステムに入力した後、一定の時間が経過しても前記第２オペレーティングシステムにより当該第２命令に対応する第２応答が出力されない場合には、当該第２命令を再度前記第２オペレーティングシステムに入力してもよい。
【００１８】
また、前記判定部は、前記第２命令を前記第２オペレーティングシステムに入力した後、一定の時間が経過しても前記第２オペレーティングシステムにより当該第２命令に対応する第２応答が出力されない場合には、異常が発生したことを示す応答を前記第１オペレーティングシステムに入力してもよい。
【００１９】
上記課題を解決するために、本発明の別の観点によれば、第１命令群に属する命令を実行する第１オペレーティングシステムと、前記第１命令群とは異なる第２命令群に属する命令を実行する第２オペレーティングシステムと、を備える通信装置において、前記第１命令群に属する第１命令を外部装置から受信した場合に、当該第１命令を前記第１オペレーティングシステムに入力するステップと、前記第１命令に対応する応答として第１応答が前記第１オペレーティングシステムにより出力された場合に、当該第１応答を前記外部装置へ送信するステップと、前記第１命令に対応する応答として前記第２命令群に属する第２命令が前記第１オペレーティングシステムにより出力された場合に、当該第２命令を前記第２オペレーティングシステムに入力するステップと、前記第１オペレーティングシステムにより出力された前記第２命令に対応する第２応答であって前記第２オペレーティングシステムにより出力された第２応答を、前記第１オペレーティングシステムに入力するステップと、を含む通信方法が提供される。
【００２０】
上記課題を解決するために、本発明の別の観点によれば、通信装置を制御するコンピュータを、第１命令群に属する命令を実行する第１オペレーティングシステムと、前記第１命令群とは異なる第２命令群に属する命令を実行する第２オペレーティングシステムと、前記第１命令群に属する第１命令を外部装置から受信した場合には当該第１命令を前記第１オペレーティングシステムに入力し、前記第１命令に対応する応答として第１応答が前記第１オペレーティングシステムにより出力された場合には当該第１応答を前記外部装置へ送信し、前記第１命令に対応する応答として前記第２命令群に属する第２命令が前記第１オペレーティングシステムにより出力された場合には、当該第２命令を前記第２オペレーティングシステムに入力した後、前記第２オペレーティングシステムにより出力される当該第２命令に対応する第２応答を前記第１オペレーティングシステムに入力する、判定部と、として機能させるためのプログラムが提供される。
【発明の効果】
【００２１】
以上説明したように、本発明に係る通信装置、通信方法、及びプログラムによれば、ＯＳのセキュリティレベルを低下させることなくＯＳ間で命令を呼出すことができる。
【発明を実施するための最良の形態】
【００２２】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００２３】
また、以下の順序にしたがって当該「発明を実施するための最良の形態」を説明する。
〔１〕第１の実施形態
〔１−１〕通信装置の基本的な構成
〔１−２〕通信処理の流れの例
〔１−３〕第１の変形例
〔１−４〕第２の変形例
〔２〕第２の実施形態
【００２４】
〔１〕第１の実施形態
〔１−１〕通信装置の基本的な構成
まず、図１〜図６を参照しながら、本発明の第１の実施形態に係る通信装置１００の基本的な構成について説明する。
【００２５】
図１は、本発明の第１の実施形態に係る通信装置１００について概略的に示した模式図である。図１には、外部装置１０及び通信装置１００が描かれている。
【００２６】
外部装置１０は、通信装置１００との間で通信することのできる通信装置である。例えば、外部装置１０は、通信装置１００に記録された情報を読み書きするリーダ／ライタであってもよい。また、外部装置１０は、通信装置１００に実装された機能を利用して任意のアプリケーションをユーザに提供する情報処理装置であってもよい。
【００２７】
一方、通信装置１００は、典型的には、接触型又は非接触型のＩＣカードやＩＣチップなどとして実現される。また、通信装置１００は、携帯電話などの情報通信端末に設けられる通信モジュールなどであってもよい。通信装置１００は、後述するように、自装置の記録する情報の入出力や様々な演算を実行するための命令群を提供する。そして、通信装置１００は、外部装置１０から命令が入力されると、その命令に対応する処理を実行し、外部装置１０へ応答を出力する。
【００２８】
図１を参照すると、通信装置１００は、通信部１１０、中間層１２０、ファイアウォール（ＦＷ：ＦｉｒｅＷａｌｌ）１３０、第１オペレーティングシステム（以下、第１ＯＳ）１４０、及び第２オペレーティングシステム（以下、第２ＯＳ）１６０を備える。
【００２９】
通信部１１０は、通信装置１００による外部装置１０との間の通信を仲介する通信インタフェースである。外部装置１０から通信装置１００への命令の入力及び通信装置１００から外部装置１０への応答の出力は、通信部１１０を経由して行われる。例えば、通信装置１００が外部装置１０との間で非接触型の通信を行う場合には、通信部１１０は、ＮＦＣ（Near  Field  Communication）などの標準規格に従った通信インタフェースなどとして実現され得る。
【００３０】
中間層１２０は、通信部１１０、第１ＯＳ１４０、及び第２ＯＳ１６０の間に設けられた論理的な階層である。中間層１２０は、後に詳しく説明するように、外部装置１０から入力される命令の転送先を第１ＯＳ１４０又は第２ＯＳ１６０のいずれかから判定し、命令を転送する。また、中間層１２０は、転送した命令に対して返却される応答を外部装置１０へ出力し、又は第１ＯＳ１４０若しくは第２ＯＳ１６０のいずれかへさらに転送する。また、中間層１２０には、さらに第１ＯＳ１４０及び第２ＯＳ１６０のメモリへのアクセスを制御する手段なども設けられる。
【００３１】
ファイアウォール１３０は、第１ＯＳ１４０と第２ＯＳ１６０との間で直接的にデータアクセスや命令の入出力が行われることを防ぐために設けられる。本実施形態では、ファイアウォール１３０は、実質的には後述する中間層１２０に含まれるメモリ制御手段により論理的に実現される。しかしながら、例えば、メモリ領域をＯＳ間で物理的に切り分けることによってファイアウォール１３０を実現してもよい。
【００３２】
第１ＯＳ１４０及び第２ＯＳ１６０は、入力された命令に応じて、それぞれ通信装置１００の有する情報の入出力や所定の演算を実行する。本明細書では、通信装置１００により実行可能な命令のうち、第１ＯＳ１４０により実行される命令の集合を第１命令群、第２ＯＳ１６０により実行される命令の集合を第２命令群と称する。例えば、第１ＯＳ１４０はＪａｖａ  Ｃａｒｄ（登録商標）ＯＳ、第２ＯＳ１６０はＦｅｌｉｃａ（登録商標）ＯＳなどであってもよい。本実施形態に係る第１ＯＳ１４０及び第２ＯＳ１６０のより具体的な構成については、後に詳しく説明する。
【００３３】
ここまで、図１を用いて、本発明の第１の実施形態に係る通信装置１００の概要について説明した。次に、通信装置１００の中間層１２０、第１ＯＳ１４０、及び第２ＯＳ１６０の詳細な構成についてそれぞれ説明する。
【００３４】
図２は、本実施形態に係る中間層１２０の詳細な構成を示すブロック図である。図２を参照すると、中間層１２０は、パケット解釈部１２２、判定部１２４、一時記憶部１２６、及びメモリ制御部１２８を備える。
【００３５】
パケット解釈部１２２は、通信部１１０により通信パケットが受信されると、通信パケットの内容を解釈し、第１ＯＳ１４０又は第２ＯＳ１６０に対する命令の転送先の判定を判定部１２４に指示する。このとき、通信パケットから取得された命令は、一時記憶部１２６に記憶される。
【００３６】
判定部１２４は、例えば、外部装置から受信した前述の命令が、第１ＯＳ１４０に転送すべき第１命令群に属する命令（以下、第１命令という）と第２ＯＳ１６０に転送すべき第２命令群に属する命令（以下、第２命令という）のいずれであるかを判定する。
【００３７】
図３（Ａ）は、通信装置１００が受信する命令のフォーマットの一例を示す説明図である。図３（Ａ）を参照すると、命令５０は、命令ヘッダ部５２及び命令データ部５４を有する。命令ヘッダ部５２には、例えば、命令の種類を識別するための命令コードや、命令を実行するためのパラメータなどが含まれる。一方、命令データ部５４には、その命令により処理されるべきデータなどが含まれる。また、命令ヘッダ部５２にアプリケーションの選択を命令するコードを設定し、命令データ部５４に命令を実行させるアプリケーションを識別するためのアプリケーションコードを含めることにより、アプリケーションを選択する処理を実現してもよい。
【００３８】
判定部１２４は、例えば、このような命令ヘッダ部５２に含まれる命令コードを参照し、外部装置１０から受信した前述の命令が第１命令であると判定した場合には、当該第１命令を第１ＯＳ１４０へ入力する。そして、その後第１ＯＳ１４０から第１命令に対応する応答（以下、第１応答という）が出力された場合には、判定部１２４は、当該第１応答をパケット解釈部１２２へ出力し、通信部１１０を介して外部装置１０へ送信する。
【００３９】
図３（Ｂ）は、通信装置１００から送信される応答のフォーマットの一例を示す説明図である。図３（Ｂ）を参照すると、応答６０は、応答データ部６２及びステータス部６４を有する。応答データ部６２には、例えば、命令を実行した結果として取得又は生成されたデータなどが含まれる。一方、ステータス部６４には、命令の実行が正常終了したか異常終了したかなどを表すステータス情報などが含まれる。
【００４０】
ここで、本実施形態において、判定部１２４が第１命令を第１ＯＳ１４０へ入力した後、第１ＯＳ１４０から第１応答の代わりに第２ＯＳ１６０に転送すべき第２命令が出力される場合がある。その場合には、判定部１２４は、例えば図３（Ａ）に示した命令ヘッダ部５２に含まれる命令コードを参照して第２命令が出力されたことを判定し、当該第２命令を第２ＯＳ１６０へ入力する。その後、第２ＯＳ１６０から第２命令に対応する応答（以下、第２応答という）が出力された場合には、判定部１２４は、当該第２応答を外部装置１０へ送信するのではなく、第２命令を出力した第１ＯＳ１４０へ入力する。そして、最終的に第１ＯＳ１４０から第１応答が出力されると、判定部１２４は、当該第１応答をパケット解釈部１２２へ出力し、通信部１１０を介して外部装置１０へ送信する。
【００４１】
また、判定部１２４は、外部装置１０から受信した命令が第２命令であると判定された場合には、当該第２命令を第２ＯＳ１６０へ入力する。その後、第２ＯＳ１６０から第２命令に対応する第２応答が出力された場合には、判定部１２４は、当該第２応答をパケット解釈部１２２へ出力し、通信部１１０を介して外部装置１０へ送信する。第２命令に対応する第２応答を第１ＯＳ１４０へ入力するか外部装置１０へ送信するかは、例えば一時記憶部１２６に転送先を判断するフラグ値などを一時的に記憶させておくことにより判定することができる。
【００４２】
なお、判定部１２４は、例えば第２命令を第２ＯＳ１６０に入力した後、事前に定義した一定の時間が経過しても第２ＯＳ１６０から当該第２命令に対応する応答が出力されない場合には、第２命令を再度第２ＯＳ１６０に入力してもよい。その代わりに、判定部１２４は、一定の時間が経過しても第２命令に対応する応答が出力されない場合には、例えば、タイムアウトを表すステータス情報を含む応答を第１ＯＳ１４０へ入力するなどにより、異常が発生したことを第１ＯＳ１４０に通知してもよい。
【００４３】
引き続き、図２を参照しながら、本実施形態に係る中間層１２０の説明を継続する。
【００４４】
一時記憶部１２６は、パケット解釈部１２２と判定部１２４の間、及び判定部１２４と第１ＯＳ１４０又は第２ＯＳ１６０の間で相互にやりとりされる命令や応答又は制御データなどを一時的に記憶する。一時記憶部１２６は、例えば、ＲＡＭ（Random  Access  Memory）を用いて実現され得る。
【００４５】
メモリ制御部１２８は、第１ＯＳ１４０と第２ＯＳ１６０の間で同時にメモリへのアクセスが発生して通信装置１００に障害が起きないように、第１ＯＳ１４０と第２ＯＳ１６０の動作をそれぞれ制御する。メモリ制御部１２８は、例えば、公知のＭＭＵ（Memory  Management  Unit）を用いて実現され得る。その代わりに、例えば、第１ＯＳ１４０と第２ＯＳ１６０とを物理的に異なるＩＣチップで実装し、メモリ制御部１２８により各ＩＣチップへの電源供給を制御させてもよい。
【００４６】
ここまで、図２及び図３を用いて、本実施形態に係る中間層１２０の詳細な構成について説明を行った。なお、中間層１２０を通信装置１００のカーネルとして実現することも可能である。即ち、ここで説明した中間層１２０の第１ＯＳ１４０及び第２ＯＳ１６０に対する共通的な管理機能群を、通信装置１００のカーネルとして実現してもよい。
【００４７】
図４は、本実施形態に係る第１ＯＳ１４０の詳細な構成を示すブロック図である。図４を参照すると、第１ＯＳ１４０は、第１実行環境１４２と、アプリケーション１５０Ａ及び１５０Ｂとを備える。
【００４８】
第１実行環境１４２は、第１ＯＳ１４０が第１命令群を実行するための基盤となるソフトウェア群である。第１実行環境１４２は、第１命令解釈部１４４、第１命令実行部１４６、及び第１記憶部１４８を主に含む。
【００４９】
中間層１２０の判定部１２４により第１ＯＳ１４０へ入力された第１命令は、まず第１命令解釈部１４４によって、通信装置１００の有するＣＰＵ(Central  Processing  Unit)などにより実行可能な形式に変換され、第１記憶部１４８に出力される。そして、第１命令は、第１命令実行部１４６により実行される。
【００５０】
アプリケーション１５０（１５０Ａ及び１５０Ｂ）は、第１命令が実行されることにより第１ＯＳ１４０上で動作する任意のアプリケーションである。ここで、“アプリケーション”という用語には、アプレットや、より単純なロジックのみを含むソフトウェアなども含まれる。アプリケーション１５０Ａ及び１５０Ｂのうちどちらが実行されるかは、例えば第１命令の命令ヘッダ部５２にアプリケーションの選択を命令するコードを設定しておくことで、第１命令の命令データ部５４に含まれるアプリケーションコードなどから決定される。
【００５１】
本実施形態において、第１命令に対してアプリケーション１５０Ａが実行されると、例えばアプリケーション１５０Ａに対応する情報の入出力や所定の演算などが行われ、第１応答が中間層１２０の一時記憶部１２６に出力される。
【００５２】
一方、第１命令に対してアプリケーション１５０Ｂが実行されると、アプリケーション１５０Ｂに含まれる命令変換部１５２により、第１命令が第２命令に変換され、中間層１２０の一時記憶部１２６に第２命令が出力される。
【００５３】
命令変換部１５２による命令の変換は、例えば図５（Ａ）又は図５（Ｂ）に示す手法により実現することができる。図５（Ａ）及び（Ｂ）は、命令変換部１５２による命令の変換処理の一例を説明するための説明図である。
【００５４】
図５（Ａ）において、第１命令５０ａの命令ヘッダ部５２ａには、当該命令が第１命令であることを示す命令コードが含まれている。また、命令データ部５４ａには、変換後の第２命令の命令ヘッダ部を構成する一連の情報が含まれている。そして、命令変換部１５２は、入力された第１命令５０ａの命令データ部５４ａを抽出して出力することにより、第１命令５０ａを第２命令に変換する。
【００５５】
一方、図５（Ｂ）において、第１命令５０ｂの命令ヘッダ部５２ｂには、図５（Ａ）と同様、当該命令が第１命令であることを示す命令コードが含まれている。また、命令変換部１５２により利用可能な記憶領域に、命令変換テーブルＴＢＬ１が事前に保持されている。そして、命令変換部１５２は、入力された第１命令５０ｂの命令ヘッダ部５２ｂに含まれる命令コードに関連付けれた第２命令の命令コードを命令変換テーブルＴＢＬ１から取得して出力することにより、第１命令５０ｂを第２命令に変換する。例えば、図５（Ｂ）の例では、第１命令Ｘ１は第２命令Ｙ１に、第１命令Ｘ２は第２命令Ｙ２に変換され得る。
【００５６】
図４及び図５の説明から理解されるように、第１ＯＳ１４０により第１命令が実行されると、第１ＯＳ１４０から中間層１２０へ、第１応答又は第２命令が出力される。そして、前述したように、中間層１２０により、第１応答は外部装置１０へ送信され、第２命令は第２ＯＳ１６０へ入力される。
【００５７】
図６は、本実施形態に係る第２ＯＳ１６０の詳細な構成を示すブロック図である。図６を参照すると、第２ＯＳ１６０は、第２実行環境１６２と、アプリケーション１７２及び１７４とを備える。
【００５８】
第２実行環境１６２は、第２ＯＳ１６０が第２命令群を実行するための基盤となるソフトウェア群である。第２実行環境１６２は、第２命令解釈部１６４、第２命令実行部１６６、及び第２記憶部１６８を主に含む。
【００５９】
中間層１２０の判定部１２４により第２ＯＳ１６０へ入力された第２命令は、まず第２命令解釈部１６４によって、通信装置１００の有するＣＰＵなどにより実行可能な形式に変換され、第２記憶部１６８に出力される。そして、第２命令は、第２命令実行部１６６により実行される。
【００６０】
アプリケーション１７２及び１７４は、第２命令が実行されることにより第２ＯＳ１６０上で動作する任意のアプリケーションである。本実施形態において、第２命令に対してアプリケーション１７２又は１７４が実行されると、各アプリケーションに対応する情報の入出力や所定の演算などが行われ、第２応答が中間層１２０の一時記憶部１２６に出力される。アプリケーション１７２及び１７４のうちどちらが実行されるかは、例えば第２命令の命令ヘッダ部５２に含まれるアプリケーションコードなどにより決定される。
【００６１】
第２ＯＳ１６０による第２命令の実行の結果として出力された第２応答は、前述したように、第２命令が外部装置１０から受信されていた場合には、中間層１２０から通信部１１０を介して外部装置１０へ送信される。一方、第２命令が第１ＯＳ１４０から出力されていた場合には、中間層１２０により、第２応答は第１ＯＳ１４０へ入力される。
【００６２】
第２ＯＳ１６０から出力され第１ＯＳ１４０へ入力された第２応答は、例えば第２命令を出力したアプリケーション１５０Ｂにより処理され、第２命令の実行結果を含む第１応答として中間層１２０へ出力される。そして、第１応答は、中間層１２０から通信部１１０を介して外部装置１０へ送信される。
【００６３】
なお、第１記憶部１４８及び第２記憶部１６８は、前述したメモリ制御部１２８の機能により仮想的に分割されたものであってよい。即ち、第１記憶部１４８及び第２記憶部１６８は、物理的には１つの記録装置で構成されていてもよい。
【００６４】
〔１−２〕通信処理の流れの例
ここまで、図１〜図６を用いて本実施形態に係る通信装置１００の基本的な構成について説明した。これらの説明をまとめると、通信装置１００による処理の経路は、主に図７に示す３種類の経路となる。
【００６５】
図７を参照すると、第１の処理経路は、外部装置１０から受信された第１命令が第１ＯＳ１４０により実行され、その結果第１ＯＳ１４０から出力された第１応答が外部装置１０へ送信されるという経路である（Ｐ１ａ、ｂ）。
【００６６】
第２の処理経路は、外部装置１０から受信された第１命令が第１ＯＳ１４０により第２命令に変換され、当該第２命令を第２ＯＳ１６０が実行した結果を含む第１応答が第１ＯＳ１４０により出力され、外部装置１０へ送信されるという経路である（Ｐ２ａ〜ｄ）。
【００６７】
また、第３の処理経路は、外部装置１０から受信された第２命令が第２ＯＳ１６０により実行され、その結果第２ＯＳ１６０から出力された第２応答が外部装置１０へ送信されるという経路である（Ｐ３ａ、ｂ）。
【００６８】
ここで、例えば、外部装置１０と通信装置１００の間の通信プロトコルが第１命令のみをサポートしていた場合を仮定する。そのような外部装置１０を、図８に外部装置１０ａとして示している。
【００６９】
図８の外部装置１０ａは、第１命令を発行し、通信装置１００の第１の処理経路Ｐ１により、第１ＯＳ１４０上で動作する任意のアプリケーションを利用できる。それに加えて、外部装置１０ａは、第１命令を発行し、通信装置１００の第２の処理経路Ｐ２により、第２ＯＳ１６０上で動作する任意のアプリケーションを利用できる。このとき、外部装置１０ａからは、あたかも第１命令のみが通信装置１００により実行されているように見える。これは、第１ＯＳ１４０及び第２ＯＳ１６０の任意のアプリケーションサービスをユーザに提供するために、外部装置１０ａに改変を加える必要が無いことを意味している。
【００７０】
また、図８には、通信装置１００との間の通信プロトコルが第２命令をサポートしている外部装置１０ｂも示されている。外部装置１０ｂは、第２命令を発行し、通信装置１００の第３の処理経路Ｐ３により、第２ＯＳ１６０上で動作する任意のアプリケーションを利用できる。このとき、通信装置１００の第２ＯＳ１６０に第１ＯＳ１４０からのアクセスを受けるための特別なインタフェースを設けていれば、そのインタフェースが外部装置１０ｂを介して接続するユーザから悪用される恐れがある。しかしながら、本実施形態では、第２ＯＳ１６０は第２命令のみを通常通り受け付けるため、第２ＯＳ１６０のセキュリティレベルが低下することはない。
【００７１】
図９〜図１１は、本実施形態に係る通信装置１００による通信処理の流れの一例を示すフローチャートである。このうち、図９は、中間層１２０の判定部１２０による転送先判定処理の流れを主に示している。
【００７２】
図９を参照すると、転送先判定処理は、外部装置１０からの通信パケットが通信部１１０を介して受信されたことをきっかけとして開始される（Ｓ１２０２）。受信された通信パケットは、一時記憶部１２６に書込まれる。
【００７３】
次に、パケット解釈部１２２は、通信パケットの内容を解釈し、通信パケットに第１命令又は第２命令が含まれる場合には、判定部１２４に命令の転送先の判定を指示する（Ｓ１２０４）。
【００７４】
そして、判定部１２４は、例えば受信した命令の命令ヘッダ部５２を参照し、当該命令が第１命令又は第２命令のいずれであるかを識別することにより、命令の転送先を判定する（Ｓ１２０６）。その結果、受信した命令が第１命令であった場合には、判定部１２４は、第１ＯＳ１４０へ第１命令を入力する。また、受信した命令が第２命令であった場合には、判定部１２４は、第２ＯＳ１６０へ第２命令を入力する。
【００７５】
第１ＯＳ１４０は、第１命令を入力されると、第１命令を実行する（Ｓ１２０８）。ここで、図１０を用いて、第１ＯＳ１４０による第１命令の実行処理をより詳細に説明する。
【００７６】
図１０は、第１ＯＳ１４０による第１命令の実行処理の流れを部分的に例示するフローチャートである。図１０を参照すると、図９のＳ１２０６の後、まず中間層１２０のメモリ制御部１２８により、第１ＯＳ１４０のメモリへのアクセスが許可される（Ｓ１４０２）。
【００７７】
そして、第１ＯＳ１４０において第１命令の入力を受けた第１命令解釈部１４４は、第１命令を解釈して実行可能な形式に変換する（Ｓ１４０４）。さらに、第１命令実行部１４６は、実行可能な形式に変換された第１命令を実行する（Ｓ１４０６）。
【００７８】
このとき、第１命令が実行されたことにより動作するアプリケーション１５０が命令の変換を行うか否かによって処理は分岐する（Ｓ１４０８）。例えば、図４に示したアプリケーション１５０Ａは命令の変換を行わず、第１命令に対応する第１応答を生成する（Ｓ１４１０）。その場合、生成された第１応答は、中間層１２０の一時記憶部１２６に書込まれる。その後、処理は図９のＳ１２１０へ移動する。
【００７９】
一方、例えば、図４に示したアプリケーション１５０Ｂは、命令変換部１５２を有する。そのため、アプリケーション１５０Ｂが動作した場合、命令変換部１５２により第１命令が第２命令に変換される（Ｓ１４１２）。ここで生成された第２命令は、中間層１２０の一時記憶部１２６に書込まれる。その後、処理は図９のＳ１２１０へ移動する。
【００８０】
説明は図９に戻る。第１ＯＳ１４０から第１命令に対する応答が出力さると、判定部１２４は、当該応答を外部装置１０へ送信すべきか、又は第２ＯＳ１６０へ転送すべきかを判定する（Ｓ１２１０）。
【００８１】
このとき、第１ＯＳ１４０から第１応答が出力された場合には、判定部１２４は、第１応答を通信部１１０を介して外部装置１０へ送信し（Ｓ１２１２）、通信装置１００による一連の処理は終了する。一方、第１ＯＳ１４０から第２命令が出力された場合には、判定部１２４は、第２命令を第２ＯＳ１６０へ入力する。
【００８２】
そして、第２ＯＳ１６０は、第２命令を入力されると、第２命令を実行する（Ｓ１２１４）。ここで、図１１を用いて、第２ＯＳ１６０による第２命令の実行処理をより詳細に説明する。
【００８３】
図１１は、第２ＯＳ１６０による第２命令の実行処理の流れを例示するフローチャートである。図１１において、図９のＳ１２０６又はＳ１２１０における判定の結果、第２命令が第２ＯＳ１６０へ入力されると、まず中間層１２０のメモリ制御部１２８により、第２ＯＳ１６０のメモリへのアクセスが許可される（Ｓ１６０２）。
【００８４】
そして、第２ＯＳ１６０において第２命令の入力を受けた第２命令解釈部１６４は、第２命令を解釈して実行可能な形式に変換する（Ｓ１６０４）。さらに、第２命令実行部１６６は、実行可能な形式に変換された第２命令を実行する（Ｓ１６０６）。
【００８５】
そして、例えば、図６に示したアプリケーション１７２又は１７４により、第２命令に対応する第２応答が生成される（Ｓ１６０８）。ここで生成された第２応答は、中間層１２０の一時記憶部１２６に書込まれる。その後、処理は図９のＳ１２１６へ移動する。
【００８６】
説明は図９に戻る。第２ＯＳ１６０から第２命令に対する第２応答が出力さると、判定部１２４は、当該応答を外部装置１０へ送信すべきか、又は第１ＯＳ１４０へ転送すべきかを判定する（Ｓ１２１６）。
【００８７】
このとき、外部装置１０から第２命令を受信していた場合には、判定部１２４は、第２応答を通信部１１０を介して外部装置１０へ送信し（Ｓ１２２０）、通信装置１００による一連の処理は終了する。
【００８８】
一方、第１ＯＳ１４０から第２命令が出力されていた場合には、判定部１２４は、第２応答を第１ＯＳ１４０へ入力する。このとき、第２応答は、例えば第２命令を出力したアプリケーション１５０Ｂにより処理される。それにより、第１応答が生成される（Ｓ１２１８）。
【００８９】
そして、第２応答に基づいて生成された第１応答は、通信部１１０を介して外部装置１０へ送信され（Ｓ１２１２）、通信装置１００による一連の処理は終了する。
【００９０】
ここまで、図９〜図１１を用いて、通信装置１００による通信処理の流れの一例について説明した。なお、ここでは第１ＯＳ１４０により第１命令から変換された第２命令は特に制限なく第２ＯＳ１６０により実行される例を示したが、次に説明する本実施形態の変形例のように、中間層１２０を経由したＯＳ間の命令の転送に制限を加えることも可能である。
【００９１】
〔１−３〕第１の変形例
図１２は、本実施形態の第１の変形例に係る中間層１２０の構成を示すブロック図である。図１２を参照すると、本変形例に係る中間層１２０は、パケット解釈部１２０、判定部１２４、一時記憶部１２６、メモリ制御部１２８、及び条件保持部１３２を備える。
【００９２】
条件保持部１３２には、第２命令が第２ＯＳ１６０へ転送されるための事前に定義された条件が保持される。
【００９３】
例えば、第２命令の命令ヘッダ部５２に含まれ得る命令コードのうち、第１ＯＳ１４０からの転送を許可する種類の命令を示す命令コードを条件保持部１３２に保持しておいてもよい。その場合、判定部１２４は、条件保持部１３２に保持されている命令コードを含む第２命令が第１ＯＳ１４０から出力された場合にのみ、当該第２命令を第２ＯＳ１６０へ転送し得る。
【００９４】
また、例えば、第１ＯＳ１４０からの呼出しを許可する第２ＯＳ１６０のアプリケーションを指定するアプリケーションコードを条件保持部１３２に保持しておいてもよい。その場合、判定部１２４は、条件保持部１３２に保持されているアプリケーションコードを含む第２命令が第１ＯＳ１４０から出力された場合にのみ、当該第２命令を第２ＯＳ１６０へ転送し得る。また、次に条件保持部１３２において他のアプリケーションを指定するアプリケーションコードが選択されるまでは、判定部１２４は、第２命令を第２ＯＳ１６０の同じアプリケーションに転送し続けることが可能である。
【００９５】
即ち、本変形例によれば、第１ＯＳ１４０から第２ＯＳ１６０への命令の転送を命令の種類などに応じて制限することが可能となる。それにより、通信装置１００のセキュリティがより高められる。
【００９６】
なお、第１ＯＳ１４０から出力された第２命令を判定部１２４が転送しない場合には、判定部１２４は、例えば所定のエラーコードを含む応答を第１ＯＳ１４０へ返すことにより、第２命令が転送されないことを第１ＯＳ１４０へ通知してもよい。
【００９７】
〔１−４〕第２の変形例
図１３は、本実施形態の第２の変形例に係る中間層１２０の構成を示すブロック図である。図１３を参照すると、本変形例に係る中間層１２０は、パケット解釈部１２０、判定部１２４、一時記憶部１２６、メモリ制御部１２８、管理テーブル１３４、及びテーブル操作部１３６を備える。
【００９８】
管理テーブル１３４には、例えば、第２ＯＳ１６０のアプリケーションを識別する固有のアプリケーションコードが、任意の外部指定用コードと１対１に関連付けられた形式で事前に保持される。
【００９９】
そして、判定部１２４は、第１ＯＳ１４０から出力された第２命令を第２ＯＳ１６０に転送する際、管理テーブル１３４を参照し、第２命令に含まれる外部指定用コードを前述したアプリケーションコードに書き換えてから当該第２命令を第２ＯＳへ入力する。即ち、本変形例において、管理テーブル１３４は、第２ＯＳ１６０の固有のアプリケーションコードを第１ＯＳ１４０に対して隠蔽するための対応表の役割を果たす。この場合、外部指定用コードも第２ＯＳ１６０のアプリケーションを識別するコードとなるが、外部指定用コードは、例えばアルファベットと数字などを用いた任意の文字列であってよい。
【０１００】
テーブル操作部１３６は、管理テーブル１３４に外部指定用コードとアプリケーションコードの組合せを登録、変更、又は削除するためのインタフェースである。例えば、テーブル操作部１３６は、第１命令群及び第２命令群に属さない管理テーブル操作用の命令を外部装置１０から通信部１００を介して受け付け、前述したコードの組合せを管理テーブル１３４に登録、変更、又は削除する。
【０１０１】
本変形例によれば、第２ＯＳ１６０の個々のアプリケーションを識別する固有のアプリケーションコードを第１ＯＳ１４０に対して隠蔽し、その代わりに管理テーブル１３４に予め登録しておいた外部指定用コードを指定させることができる。それにより、通信装置１００のセキュリティがより高められると共に、第２ＯＳ１６０のアプリケーションの変更による第１ＯＳ１４０への影響を狭めることができる。
【０１０２】
ここまで、図１〜図１３を用いて、本発明の第１の実施形態について説明した。本実施形態によれば、図８に関連して説明したように、通信装置１００の有する第１ＯＳ１４０及び第２ＯＳ１６０によるアプリケーションサービスを、第１命令のみをサポートする装置を介して利用することが可能となる。それにより、通信装置１００と外部装置１０との間との間で複数の通信プロトコルをサポートする必要が無くなり、通信装置１００の汎用性が向上する。また、その際、各ＯＳに他のＯＳからのアクセスを受けるための特別なインタフェースを設けなくてもよいため、ＯＳのセキュリティレベルが低下することはない。
【０１０３】
さらに、中間層１２０に命令の転送をフィルタリングする手段を設けることにより、ＯＳ間での命令のやり取りを命令の種類などに応じて制限してもよい。また、第２ＯＳ１６０による命令の実行に必要となるアプリケーションコードなどの情報を、中間層１２０において隠蔽してもよい。それにより、通信装置１００のセキュリティをより強固なものとすることができる。
【０１０４】
〔２〕第２の実施形態
第１の実施形態では、通信装置１００において、第１命令を第２命令に変換する手段を第１ＯＳ１４０に１つだけ設ける例を説明した。しかしながら、第１命令を第２命令に変換する手段は、複数存在していてもよい。
【０１０５】
図１４は、本発明の第２の実施形態に係る通信装置２００について概略的に示した模式図である。図１４を参照すると、通信装置２００は、通信部１１０、中間層２２０、ファイアウォール１３０、第１ＯＳ２４０、第２ＯＳ１６０、及び第３ＯＳ１８０を備える。また、通信装置２００は、通信部１１０を介して外部装置１０と接続される。
【０１０６】
本実施形態において、中間層２２０は、通信部１１０、第１ＯＳ２４０、第２ＯＳ１６０、及び第３ＯＳ１８０の間に設けられた論理的な階層である。中間層２２０は、外部装置１０から入力される命令の転送先を第１ＯＳ２４０、第２ＯＳ１６０、又は第３ＯＳ１８０のいずれかから判定し、命令を転送する。また、中間層２２０は、転送した命令に対して返却される応答を外部装置１０へ出力し、又は他のＯＳへさらに転送する。また、中間層２２０には、さらに第１ＯＳ２４０、第２ＯＳ１６０、及び第３ＯＳ１８０のメモリへのアクセスを制御する手段なども設けられる。
【０１０７】
第１ＯＳ２４０、第２ＯＳ１６０、及び第３ＯＳ１８０は、入力された命令に応じて、それぞれ通信装置１００の有する情報の入出力や所定の演算を実行する。より具体的には、第１ＯＳ２４０は第１命令群に属する第１命令、第２ＯＳ１６０は第２命令群に属する第２命令、第３ＯＳ１８０は第３命令群に属する第３命令を実行する。また、第１ＯＳ２４０は、後に説明するように、第１命令を第２命令及び第３命令にそれぞれ変換する２つの命令変換手段を有する。
【０１０８】
一方、第３ＯＳ１８０は、例えば図６に示した第２ＯＳの構成と同様に実行環境とアプリケーションとを有し、第３命令を実行して第３応答を出力する。
【０１０９】
図１５は、本実施形態に係る第１ＯＳ２４０の詳細な構成を示すブロック図である。図１５を参照すると、第１ＯＳ２４０は、第１実行環境１４２と、アプリケーション２５０Ａ及び２５０Ｂとを備える。そして、第１実行環境１４２は、第１命令解釈部１４４、第１命令実行部１４６、及び第１記憶部１４８を主に含む。また、アプリケーション２５０Ａは命令変換部２５２Ａを含む。アプリケーション２５０Ｂは命令変換部２５２Ｂを含む。
【０１１０】
アプリケーション２５０（２５０Ａ及び２５０Ｂ）は、第１命令が実行されることにより第１ＯＳ２４０上で動作する任意のアプリケーションである。アプリケーション２５０Ａ及び２５０Ｂのうちどちらが実行されるかは、例えば第１命令の命令データ部５４に含まれるアプリケーションコードなどを利用して選択する方法により決定される。
【０１１１】
本実施形態において、命令変換部２５２Ａは、中間層２２０から入力された第１命令を、第２ＯＳ１６０により実行されるべき第２命令に変換する。また、命令変換部Ｂは、中間層２２０から入力された第１命令を、第３ＯＳ１８０により実行されるべき第３命令に変換する。かかる命令の変換は、例えば図５を用いて説明したように、命令データ部５４ａからの命令の抽出、又は変換テーブルにおいて関連付けられている第２命令又は第３命令の取得などにより行われる。
【０１１２】
図１６は、本実施形態に係る中間層２２０の詳細な構成を示すブロック図である。図１６を参照すると、中間層２２０は、パケット解釈部２２２、判定部２２４、一時記憶部２２６、及びメモリ制御部２２８を備える。
【０１１３】
パケット解釈部２２２は、通信部１１０により通信パケットが受信されると、通信パケットの内容を解釈し、第１ＯＳ２４０、第２ＯＳ１６０、又は第３ＯＳ１８０に対する命令の転送先の判定を判定部２２４に指示する。このとき、通信パケットから取得された命令は、一時記憶部２２６に記憶される。
【０１１４】
判定部２２４は、例えば、外部装置から受信した命令の命令ヘッダ部５２を参照し、命令ヘッダ部５２に含まれる命令コードなどに応じて、命令の転送先を判定する。例えば、判定部２２４は、外部装置１０から受信した命令が第１命令であると判定した場合には、当該第１命令を第１ＯＳ２４０へ入力する。そして、その後第１ＯＳ２４０から第１命令に対応する応答として第１応答が出力された場合には、判定部２２４は、当該第１応答をパケット解釈部２２２へ出力し、通信部１１０を介して外部装置１０へ送信する。
【０１１５】
また、判定部２２４は、例えば、第１命令に対応する応答として第２命令が出力された場合には、当該第２命令を第２ＯＳ１６０へ入力する。そして、第２ＯＳ１６０から第２命令に対応する第２応答が出力された場合には、判定部２２４は、当該第２応答を外部装置１０へ送信するのではなく、第２命令を出力した第１ＯＳ２４０へ入力する。
【０１１６】
また、判定部２２４は、例えば、第１命令に対応する応答として第３命令が出力された場合には、当該第３命令を第３ＯＳ１８０へ入力する。そして、第３ＯＳ１８０から第３命令に対応する第３応答が出力された場合には、判定部２２４は、当該第３応答を外部装置１０へ送信するのではなく、第３命令を出力した第１ＯＳ２４０へ入力する。
【０１１７】
一時記憶部２２６は、パケット解釈部２２２と判定部２２４の間、及び判定部２２４と第１ＯＳ２４０、第２ＯＳ１６０又は第３ＯＳ１８０の間で相互にやりとりされる命令や応答又は制御データなどを一時的に記憶する。
【０１１８】
メモリ制御部２２８は、第１ＯＳ１４０、第２ＯＳ１６０、及び第３ＯＳ１８０の間で同時にメモリへのアクセスが発生して通信装置１００に障害が起きないように、第１ＯＳ２４０、第２ＯＳ１６０、及び第３ＯＳ１８０のメモリへのアクセスを制御する。
【０１１９】
なお、図１６には示していないが、本実施形態においても、第１の実施形態と同様、中間層２２０に命令の転送をフィルタリングする手段を設けることにより、ＯＳ間での命令のやり取りを命令の種類などに応じて制限してもよい。また、第２ＯＳ１６０又は第３ＯＳ１８０による命令の実行に必要となるアプリケーションコードなどの情報を第１ＯＳ２４０に対して隠蔽してもよい。
【０１２０】
ここまで、図１４〜図１６を用いて、本発明の第２の実施形態について説明した。本実施形態のように、通信装置２００に３つのＯＳが搭載される場合には、例えば第１のＯＳ２４０に第１命令を第２命令及び第３命令にそれぞれ変換する複数の変換手段を設けることにより、３つのＯＳによるアプリケーションサービスを、第１命令のみをサポートする装置を介して利用することが可能となる。それにより、通信装置２００と外部装置１０との間との間で複数の通信プロトコルをサポートする必要が無くなり、通信装置２００の汎用性が向上する。また、その際、各ＯＳに他のＯＳからのアクセスを受けるための特別なインタフェースを設けなくてもよいため、ＯＳのセキュリティレベルが低下することはない。
【０１２１】
また、本実施形態のようにＯＳの単位で命令変換手段を設ける代わりに、１つのＯＳにより実行される命令群を２つ集合に分類し、それぞれの集合に対応する複数の命令変換手段を設けてもよい。例えば、第２ＯＳ１６０が無線通信用の命令群と有線通信用の命令群を共にサポートしている場合には、第１ＯＳ２４０は、第１命令を無線通信用の命令に変換する第１の命令変換部と、第１命令を有線通信用の命令に変換する第２の命令変換部とを有してもよい。かかる構成によれば、例えば、図１２に示した中間層１２０による命令のフィルタリング処理を組み合わせることで、ＯＳの単位よりもきめ細やかなセキュリティレベルの設定が可能となり、通信装置２００の安全性がさらに向上する。
【０１２２】
なお、本明細書において説明した第１及び第２の実施形態に係る一連の処理は、典型的には通信装置に設けられたコンピュータ上で動作するソフトウェアにより実現される。図１７は、各実施形態に係る一連の処理が動作するハードウェアの構成の一例を示すブロック図である。
【０１２３】
図１７において、ＣＰＵ９０２は、通信装置の動作全般を制御する。ＲＯＭ（Read  Only  Memory）９０４には、一連の処理の一部又は全部を記述したプログラム又はデータが格納される。ＲＡＭ９０６には、ＣＰＵ９０２により実行されるプログラムやデータなどが一時的に記憶される。ＭＭＵ９０８は、ＣＰＵ９０２からのメモリへのアクセスを制御する。また、図１７には示していないが、ＥＥＰＲＯＭ（Electrically  Erasable  and  Programmable  ＲＯＭ）などの不揮発性メモリを搭載することで、さらに後から追加したアプリケーションを格納することも可能である。
【０１２４】
ＣＰＵ９０２、ＲＯＭ９０４、ＲＡＭ９０６、及びＭＭＵ９０８は、バス９１０を介して相互に接続される。バス９１０にはさらに、入出力インタフェース９１２が接続される。
【０１２５】
入出力インタフェース９１２は、ＣＰＵ９０２、ＲＯＭ９０４、ＲＡＭ９０６、及びＭＭＵ９０８と、通信回路９１４とを接続するためのインタフェースである。
【０１２６】
通信回路９１４は、所定の通信プロトコルに従い、外部装置１０との間で通信パケットを送受信する。通信回路９１４は、例えば、ＩＳＯ１４４４３の標準仕様に従った非接触型の通信、又はＩＳＯ７８１６の標準仕様に従った接触型の通信などをサポートしてもよい。
【０１２７】
以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明は係る例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例又は修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【０１２８】
例えば、図９〜図１１を用いて説明した処理を、必ずしもフローチャートに記載された順序に沿って実行しなくてもよい。各処理ステップは、並列的あるいは個別に独立して実行される処理を含んでもよい。
【０１２９】
また、例えば、各ＯＳの有するアプリケーションの数は、本明細書に示した数に限定されない。アプリケーションは、例えば前述したＥＥＰＲＯＭの内容を書き換えるなどの方法により、必要に応じて追加又は削除され得る。
【図面の簡単な説明】
【０１３０】
【図１】第１の実施形態に係る通信装置の概要を示す模式図である。
【図２】第１の実施形態に係る中間層の論理的な構成を示すブロック図である。
【図３】命令及び応答のフォーマットの一例を示す説明図である。
【図４】第１の実施形態に係る第１オペレーティングシステムの論理的な構成を示すブロック図である。
【図５】第１の実施形態に係る命令変換部による命令の変換処理を説明するための説明図である。
【図６】第１の実施形態に係る第２オペレーティングシステムの論理的な構成を示すブロック図である。
【図７】通信装置内での３通りの処理経路を説明するための説明図である。
【図８】外部装置の種類と図７の処理経路の関係を説明するための説明図である。
【図９】第１の実施形態に係る転送先判定処理の流れを示すフローチャートである。
【図１０】第１の実施形態に係る第１命令実行処理の流れを示すフローチャートである。
【図１１】第１の実施形態に係る第２命令実行処理の流れを示すフローチャートである。
【図１２】第１の実施形態に係る中間層の第１の変形例を示すブロック図である。
【図１３】第１の実施形態に係る中間層の第２の変形例を示すブロック図である。
【図１４】第２の実施形態に係る通信装置の概要を示す模式図である。
【図１５】第２の実施形態に係る第１オペレーティングシステムの論理的な構成を示すブロック図である。
【図１６】第２の実施形態に係る中間層の論理的な構成を示すブロック図である。
【図１７】通信装置のハードウェア構成の一例を示すブロック図である。
【符号の説明】
【０１３１】
５０                      命令
５２                      命令ヘッダ部
５４                      命令データ部
６０                      応答
６２                      応答データ部
６４                      応答ステータス部
１００、２００            通信装置
１１０                    通信部
１２０、２２０            中間層
１２２、２２２            パケット解釈部
１２４、２２４            判定部
１２６、２２６            一時記憶部
１２８、２２８            メモリ制御部
１３０                    ファイアウォール
１３２                    条件保持部
１３４                    管理テーブル
１３６                    テーブル操作部
１４０、２４０            第１オペレーティングシステム
１４２                    第１実行環境
１４４                    第１命令解釈部
１４６                    第１命令実行部
１４８                    第１記憶部
１５０、２５０（Ａ、Ｂ）  アプリケーション
１５２、２５２（Ａ、Ｂ）  命令変換部
１６０                    第２オペレーティングシステム
１６２                    第２実行環境
１６４                    第２命令解釈部
１６６                    第２命令実行部
１６８                    第２記憶部
１７２、１７４            アプリケーション
１８０                    第３オペレーティングシステム
【図１】
2010039913.tif 000003
【図２】
2010039913.tif 000004
【図３】
2010039913.tif 000005
【図４】
2010039913.tif 000006
【図５】
2010039913.tif 000007
【図６】
2010039913.tif 000008
【図７】
2010039913.tif 000009
【図８】
2010039913.tif 000010
【図９】
2010039913.tif 000011
【図１０】
2010039913.tif 000012
【図１１】
2010039913.tif 000013
【図１２】
2010039913.tif 000014
【図１３】
2010039913.tif 000015
【図１４】
2010039913.tif 000016
【図１５】
2010039913.tif 000017
【図１６】
2010039913.tif 000018
【図１７】
2010039913.tif 000019