説明

情報処理装置および方法、並びにプログラム

【課題】受信されたコマンドを適切なオペレーティングシステムに供給できるようにする。
【解決手段】中間層42は、通信部41で受信されたコマンドを、管理しているテーブルを参照し、第1オペレーティングシステム43に対するコマンドであるか、第2オペレーティングシステム44に対するコマンドであるかを判定する。中間層42は、判定結果に基づき、オペレーティングシステムを起動するとともに、そのオペレーティングシステムに対して受信されたコマンドを転送する。本発明は、複数のオペレーティングシステムを含むICカードなどに適用できる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は情報処理装置および方法、並びにプログラムに関し、特に、複数のオペレーティングシステムが搭載されているときに、受信されたコマンドを適切なオペレーティングシステムで処理できるようにした情報処理装置および方法、並びにプログラムに関する。
【背景技術】
【0002】
近年、IC(integrated circuit)を備え、非接触で通信を行える非接触アンテナモジュールを備えるカードが普及している。そのようなカードは、例えば、非接触ICカードなどと称され、非接触で他の装置と通信を行うことが可能とされている。非接触ICカードを用いた非接触通信は、例えば、交通乗車券、電子マネー、IDカード、入退室管理などに用いられ、その用途は広がりつつある。
【0003】
用途が広がることにより、そのような非接触ICカードは、それぞれの用途に適したOS(operating system)を備える構成にされている。(例えば、特許文献1参照)
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2007−87120号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ICカードに限らず、パーソナルコンピュータなどの情報処理装置においても、複数のOSが備えられ、それらのOSが用途に応じて切り換えられて用いられることがある。そのようなパーソナルコンピュータなどでは、MBR(Master Boot Record)にパーティションテーブルが置かれ、アクティブにしたいOSのブートセクタが呼び出され、OSの切り替えが行われる。
【0006】
しかしながら、この手法では、どのOSを呼び出すかを明示的に設定する必要があるので、各OSを起動する手順に手を加える必要がある。また、この手法は、OSを最初に切り替える必要があり、リアルタイムにOSを切り替える際には適していない。
【0007】
ICカードのICチップ上の各OSは文字列をコマンドとして受け取って動作するため、コマンドとOSの対応表を採用し、受け取ったコマンドによって、動作するOSを切り替えるという手法を適用することが考えられる。
【0008】
しかしながら、この手法では、OSにアプリケーションが追加される場合、対応表にアプリケーションの新しいコマンドがないと、正しくOSが選択されず、処理が適切にできないといったことが発生する可能性があった。
【0009】
本発明は、このような状況に鑑みてなされたものであり、複数のOSが混在しても、既存のコマンド仕様を変更することなく、コマンドが対象となるOSに適切に渡されるようにする。
【課題を解決するための手段】
【0010】
本発明の一側面の情報処理装置は、アプリケーションの追加や削除に対応していない第1のオペレーティングシステムと、アプリケーションの追加や削除に対応している第2のオペレーティングシステムと、受信されたコマンドが、前記第1のオペレーティングシステムに対するコマンドであるか、前記第2のオペレーティングシステムに対するコマンドであるかを、コマンドと、そのコマンドを処理するオペレーティングシステムとを関連付けたテーブルを参照して判定する判定手段と、前記テーブルを保持する保持手段と、前記判定手段による判定結果に基づき、前記第1のオペレーティングシステムまたは前記第2のオペレーティングシステムが、処理を開始できるようにメモリを制御する制御手段と、前記判定結果に基づき、受信されたコマンドを前記第1のオペレーティングシステムまたは前記第2のオペレーティングシステムに転送する転送手段とを備える。
【0011】
前記判定手段の判定結果を記憶する記憶手段をさらに備え、前記判定手段は、受信された前記コマンドが前記テーブルに登録されていない場合、かつ、前記記憶手段に、前記第2のオペレーティングシステムを示す情報が記憶されている場合、前記コマンドは、前記第2のオペレーティングシステムであると判定するようにすることができる。
【0012】
前記情報処理装置は、ICチップ、ICカード、または携帯電話機を構成するようにすることができる。
【0013】
前記第2のオペレーティングシステムが処理するアプリケーションが追加または削除されたとき、前記保持手段に保持され、前記第2のオペレーティングシステムに対応するテーブルを、前記アプリケーションの追加または削除にあわせて更新する更新手段をさらに備えるようにすることができる。
【0014】
前記第2のオペレーティングシステムに対応する前記テーブルは、デフォルトのコマンドに関する第1のテーブルと、更新用の第2のテーブルとから構成され、前記第1のテーブルと前記第2のテーブルは、それぞれ物理的に異なるメモリで管理されるようにすることができる。
【0015】
前記第2のオペレーティングシステムは、受信された前記コマンドがアプリケーションの追加、または削除を指示するコマンドであるか否かを判定し、前記判定による結果が、アプリケーションの追加、または削除するコマンドであると判定された場合、さらに、前記コマンドに前記テーブルの更新の要求が含まれているか否かを判定し、前記判定による結果が、前記テーブルの更新の要求を含むと判定された場合、前記更新手段に更新要求を出すようにすることができる。
【0016】
本発明の一側面の情報処理方法は、アプリケーションの追加や削除に対応していない第1のオペレーティングシステムと、アプリケーションの追加や削除に対応している第2のオペレーティングシステムを少なくとも含む情報処理装置の情報処理方法において、受信されたコマンドが、前記第1のオペレーティングシステムに対するコマンドであるか、前記第2のオペレーティングシステムに対するコマンドであるかを、コマンドと、そのコマンドを処理するオペレーティングシステムとを関連付けたテーブルを参照して判定し、その判定結果に基づき、前記第1のオペレーティングシステムまたは前記第2のオペレーティングシステムが、処理を開始できるようにメモリを制御し、その判定結果に基づき、受信されたコマンドを前記第1のオペレーティングシステムまたは前記第2のオペレーティングシステムに転送するステップを含む。
【0017】
本発明の一側面のプログラムは、アプリケーションの追加や削除に対応していない第1のオペレーティングシステムと、アプリケーションの追加や削除に対応している第2のオペレーティングシステムを少なくとも含む情報処理装置に、受信されたコマンドが、前記第1のオペレーティングシステムに対するコマンドであるか、前記第2のオペレーティングシステムに対するコマンドであるかを、コマンドと、そのコマンドを処理するオペレーティングシステムとを関連付けたテーブルを参照して判定し、その判定結果に基づき、前記第1のオペレーティングシステムまたは前記第2のオペレーティングシステムが、処理を開始できるようにメモリを制御し、その判定結果に基づき、受信されたコマンドを前記第1のオペレーティングシステムまたは前記第2のオペレーティングシステムに転送するステップを含む処理を実行させるコンピュータが読み取り可能なプログラム。
【0018】
本発明の一側面の情報処理装置および方法、並びにプログラムにおいては、アプリケーションの追加や削除に対応していない第1のオペレーティングシステムと、アプリケーションの追加や削除に対応している第2のオペレーティングシステムが少なくとも含まれる。そして、受信されたコマンドが、第1のオペレーティングシステムに対するコマンドであるか、第2のオペレーティングシステムに対するコマンドであるかが、コマンドと、そのコマンドを処理するオペレーティングシステムとを関連付けたテーブルが参照されて判定され、その判定結果に基づくオペレーティングシステムが、処理を開始できるようにメモリが制御され、そのオペレーティングシステムにコマンドが転送される。
【発明の効果】
【0019】
本発明の一側面によれば、複数のオペレーティングシステムが混在しても、既存のコマンド仕様を変更することなく、コマンドが対象となるオペレーティングシステムに適切に渡されるようにすることが可能となる。
【図面の簡単な説明】
【0020】
【図1】本発明を適用した情報処理装置の一実施の形態の構成を示す図である。
【図2】情報処理装置の内部構成例を示す図である。
【図3】第1の実施の形態における中間層の構成例を示す図である。
【図4】管理テーブルを参照した処理について説明するための図である。
【図5】中間層の処理について説明するためのフローチャートである。
【図6】第2の実施の形態における中間層の構成例を示す図である。
【図7】管理テーブルを参照した処理について説明するための図である。
【図8】中間層の処理について説明するためのフローチャートである。
【図9】第3の実施の形態における中間層の構成例を示す図である。
【図10】第2オペレーティングシステムの構成例を示す図である。
【図11】第2オペレーティングシステムの他の構成例を示す図である。
【図12】更新に係わる処理について説明するためのフローチャートである。
【図13】中間層の処理について説明するためのフローチャートである。
【図14】コマンドのデータ構成について説明するための図である。
【図15】第4の実施の形態における中間層の構成例を示す図である。
【図16】中間層の処理について説明するためのフローチャートである。
【発明を実施するための形態】
【0021】
以下に、本発明の実施の形態について図面を参照して説明する。
【0022】
[ハードウェアの構成について]
図1は、本発明を適用した情報処理装置の一実施の形態の構成を示す図である。図1に示した情報処理装置10は、例えば、非接触通信を行うICカード、そのICカードを構成するICチップ、または、そのようなICチップを含む携帯電話などに適用できる。図1に示した情報処理装置は、CPU(Central Processing Unit)11、ROM(Read Only Memory)12、RAM(Random Access Memory)13、不揮発性メモリ14、バス15、入出力インタフェース16、MMU(Memory Management Unit)17、および通信回路18を含む構成とされる。
【0023】
CPU11、ROM12、RAM13、不揮発性メモリ14、入出力インタフェース16、MMU(Memory Management Unit)17は、それぞれバス15に接続され、通信回路18は、入出力インタフェース16に接続される構成とされる。
【0024】
ROM12、RAM13、不揮発性メモリ14は、CPU11が処理を行ううえで必要とされるオペレーティングシステムやデータなどを記憶する。入出力インタフェース16は、通信回路18により、他の装置とデータの授受を行う。MMU17は、メモリ、ここでは、ROM12、RAM13、不揮発性メモリ14の制御を行う。
【0025】
なお、ここでは、MMUを例に挙げて説明するが、MPU(Memory Protection Unit)などのメモリ管理機能を適用することも可能である。
【0026】
ROM12、RAM13、不揮発性メモリ14などには、管理テーブルなどが記憶される。詳細は後述するが、管理テーブルのうち、更新などが行われないデフォルトのテーブルは、ROM12に記憶される。管理テーブルのうち、更新などが行われる更新用のテーブルは、不揮発性メモリ14に記憶されることが好ましい。
【0027】
また、実施の形態によっては、一時記憶領域を設ける。その一時記憶領域は、一時的にデータが記憶される領域であるため、電源がオフ(OFF)になったときに、記憶されているデータが削除されるようにRAM13で構成されることが好ましい。
【0028】
図2を参照して説明する中間層42、第1オペレーティングシステム43、第2オペレーティングシステム44などは、RAM12、または不揮発性メモリ14で管理される。またアプリケーションを格納するためのアプリケーション格納部は、不揮発性メモリ14で構成される。
【0029】
以下に説明する処理は、ハードウェアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウェアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
【0030】
CPU11が、例えば、ROM12や不揮発性メモリ14などで構成される記憶部(不図示)に記憶されているプログラムを、RAM13にロードして実行することにより、以下に説明する一連の処理が行われる。コンピュータ(CPU11)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア(不図示)に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
【0031】
コンピュータでは、プログラムは、リムーバブルメディアを入出力インタフェース16に接続されるドライブ(不図示)に装着することにより、入出力インタフェース16を介して、記憶部にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信回路18を含む通信部(不図示)で受信し、記憶部にインストールすることができる。その他、プログラムは、ROM12や記憶部に、予めインストールしておくことができる。
【0032】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【0033】
[機能構成について]
図1に示した情報処理装置10の機能について、図2を参照して説明する。例えば、情報処理装置10を、チップで構成した場合、そのチップ30には、通信部41、中間層42、第1オペレーティングシステム43、および第2オペレーティングシステム44が含まれる。チップ30とその外部に位置する外部装置31との間で、データの授受が行われる。
【0034】
外部装置31は、情報処理装置10をチップで構成した場合や、携帯電話を構成する部品として構成した場合、チップ以外の部分であり、有線で接続されている機器(例えば、他のチップ)などである。情報処理装置10を、ICカードなど、単体で利用される装置として構成した場合、外部装置31は、ICカードなどと非接触で通信を行うリーダライタなどである。
【0035】
ここでは、情報処理装置10はチップ30であるとして説明を続ける。チップ30の通信部41は、外部装置31との通信を行う。通信部41により通信が制御され、外部装置31から供給された、例えば、コマンドは、中間層42に供給される。中間層42は、第1オペレーティングシステム43や第2オペレーティングシステム44に対して、外部装置31からのコマンドなどのデータを橋渡しする機能を有する。
【0036】
中間層42は、管理オペレーティングシステム(管理OS)としての機能を有する。中間層42と、第1オペレーティングシステム43または第2オペレーティングシステム44の間には、主従関係があり、中間層42が主であり、第1オペレーティングシステム43と第2オペレーティングシステム44が従である。
【0037】
第1オペレーティングシステム43と第2オペレーティングシステム44は、それぞれ異なるオペレーティングシステムである。図2に示した構成では、第1オペレーティングシステム43と第2オペレーティングシステム44の2つのオペレーティングシステムが含まれる構成であるとして説明するが、本発明は、2つのオペレーティングシステムが含まれる構成である場合に適用されることが限定されるのではなく、複数のオペレーティングシステムを含む構成とされた場合であっても適用できる。
【0038】
ここでは図2に示したように、第1オペレーティングシステム43と第2オペレーティングシステム44がチップ30に含まれる場合を例に挙げて説明を続ける。第1オペレーティングシステム43は、アプリケーションを追加できないオペレーティングシステムであり、第2オペレーティングシステム44は、アプリケーションを追加できるオペレーティングシステムであるとして説明を続ける。アプリケーションは、所定のオペレーティングシステムが起動されている状態で動作することができる。
【0039】
そして、第1オペレーティングシステム43は、既に登録されているアプリケーションを動作させることができるが、登録されていないアプリケーションを追加したり、削除したりすることに対しては対応していないオペレーティングシステムである。また、第2オペレーティングシステム44は、既に登録されているアプリケーションを動作させることも、登録されていないアプリケーションを新たに登録することや削除することに対しても対応しているオペレーティングシステムである。
【0040】
アプリケーションが追加されることで、そのアプリケーションで実行できるコマンドが追加されることになる。よって、アプリケーションの追加は、コマンドの追加であると換言することができる。アプリケーションの削除に関しても同様であり、コマンドの削除と換言することができる。
【0041】
第1オペレーティングシステム43は、例えば、FeliCa OSなどである。FeliCa(商標)OSは、例えば、電子マネー用途のカードとして用いられ、そのカードは、クレジットカードやプリペイドカード等に代わるものとして商取引に利用されている。FeliCa OSは、電子マネーを示す数値を予め規定されている領域に後から書き込む事や、電子マネーとして使用する領域の範囲を後から規定する事は出来るが、アプリケーションとして、新たにコマンドを追加するなどの機能追加、存在するコマンドを削除する機能削除は出来ない。
【0042】
第2オペレーティングシステムは、例えば、Java Card OSなどである。Java Card OSは、カードアプリケーションとして機能を追加で搭載することが可能である。なお、ここでは、第2オペレーティングシステムは、例えば、Java Card OSであるとして説明を続けるが、第2オペレーティングシステムは、上記したように、アプリケーションとして機能を追加できるオペレーティングシステムであればよく、Java Card OS以外にも、例えば、MULTOS OSや独自のNative OSなどでも良い。
【0043】
第1オペレーティングシステム43と第2オペレーティングシステム44は、互いにアクセスできないように構成されている。互いにアクセスできないようにするために、firewallなどの論理的な仕組みが適用されたり、物理的に領域を共有することで、同時期に起動されないように制御されたり、機器が異なる構成とされたりする。
【0044】
図2に示したように、第1オペレーティングシステム43と第2オペレーティングシステム44は、メモリの切り替えを行うためのメモリ制御部などのカーネル機能をもつ中間層42経由で、外部装置31と通信することができるように構成されている。他の構成として、図示はしないが、オペレーティングシステムのそれぞれが、直接、外部装置31と通信を行えるような構成としても良い。
【0045】
ところで、このように、第1オペレーティングシステム43と第2オペレーティングシステム44が存在するとき、外部装置31からのコマンドが、第1オペレーティングシステム43に対してであるのか、第2オペレーティングシステム44に対してであるのか、適切に判定し、処理する必要がある。
【0046】
例えば、第1オペレーティングシステム43が何らかの処理を実行した後に、第2オペレーティングシステム44に対するコマンドが受信されたとする。このようなときに、処理を実行していた第1オペレーティングシステム43に対して引き続きコマンドが供給されてしまうと、第1オペレーティングシステム43では、そのコマンドを処理できず、エラーが発生してしまうことになる。このようなことを防ぐために、中間層42が、受信されたコマンドを適切に第1オペレーティングシステム43または第2オペレーティングシステム44に対して供給するようにする。そのような中間層42の構成や動作について、以下に説明する。
【0047】
[第1の実施の形態について]
図3は、第1の実施の形態における中間層42の機能を示すブロック図である。図3に示した中間層42は、コマンド判定部101、管理テーブル保持部102、メモリ制御部103、およびコマンド転送部104を含む構成とされている。
【0048】
コマンド判定部101は、通信部41により受信された外部装置31からのコマンドが、第1オペレーティングシステム43に対するコマンドであるか、第2オペレーティングシステム44に対するコマンドであるかを、管理テーブル保持部102を参照して判定する。
【0049】
管理テーブル保持部102は、受信されるコマンドの、例えば、ヘッダの先頭の情報と、そのコマンドがどのオペレーティングシステムに対するコマンドであるのかを示す情報が、関連付けられたテーブルである。一例は、図4を参照して後述する。
【0050】
メモリ制御部103は、コマンド判定部101からの指示に基づき、メモリを制御する。メモリ制御部103の制御対象とされるメモリは、図1に示した情報処理装置10におけるROM12、RAM13、および不揮発性メモリ14である。また、メモリ制御部103は、MMU(Memory Management Unit)やMPU(Memory Protection Unit)のメモリ管理機能で実現できる。または、物理的に異なるチップで構成し、電源制御によって複数のオペレーティングシステムが実現されるようにし、メモリ制御部103は、その電源制御を行う機能としても良い。
【0051】
コマンド転送部104は、コマンド判定部101の判定結果に基づき、通信部41で受信されたコマンドを、第1オペレーティングシステム43または第2オペレーティングシステム44に転送する。
【0052】
図4を参照し、図3に示した中間層42の動作について説明する。通信部41でコマンド121が受信されたとする。コマンド121のヘッダの先頭には、“60”(16進法)との情報が書き込まれている。コマンド判定部101は、通信部41から供給されたコマンド121のヘッダの先頭部分の情報を読み出し、その情報と一致する情報を、管理テーブル保持部102で管理されているテーブルを参照し、読み出す。
【0053】
図4に示した例では、管理テーブル保持部102として、2つのテーブルが管理されている。ここでは、第1オペレーティングシステム43と第2オペレーティングシステム44の2つのオペレーティングシステムがチップ30に含まれているため、それぞれのオペレーティングシステムに対応するテーブルが、管理テーブル保持部102で管理されている。
【0054】
管理テーブル141は、第1オペレーティングシステム43に対応するテーブルである。管理テーブル141は、コマンド121のヘッダの先頭が“60”、“30”、“A0”(16進法)である場合、そのコマンド121は、第1オペレーティングシステム43のコマンドであることが関連付けられたテーブルとされている。管理テーブル142は、第2オペレーティングシステム44に対応するテーブルである。管理テーブル142は、コマンド121のヘッダの先頭が“00A4”、“80C2”、“80C4”(16進法)である場合、そのコマンド121は、第2オペレーティングシステム43のコマンドであることが関連付けられたテーブルとされている。
【0055】
図4に示した例では、管理テーブル保持部102に保持されている管理テーブル141、管理テーブル142に記載されている情報は、コマンドのヘッダ先頭に記載されている事例を挙げたが、管理テーブル保持部102で管理される管理テーブルに登録されている情報は、コマンドのヘッダ先頭に記載されている情報に限定されるのではない。すなわち、例えば、コマンドのヘッダ先頭以外の位置に記載されている情報が、管理テーブルに登録されるようにしても良い。
【0056】
また、そのようにした場合、管理テーブルに登録されている情報と比較するコマンド内のデータの位置は、必ずしも先頭に限らず、比較を行うコマンド判定部101によって任意の位置を指定することも可能である。
【0057】
ここでは、コマンドのヘッダ先頭に記載されている情報が比較されるとして説明を続ける。図4に示した例では、コマンド判定部101に供給されたコマンド121のヘッダの先頭の情報は、“60”であるため、コマンド判定部101は、管理テーブル141を参照し、第1オペレーティングシステム43に対するコマンドであると判定する。
【0058】
コマンド判定部101は、このような判定をした場合、コマンド転送部104に、コマンド121とともに、そのコマンド121が第1オペレーティングシステム43に転送するように指示する転送先指定の情報を供給する。コマンド転送部104は、コマンド判定部101からの情報に基づき、コマンド121の転送先を第1オペレーティングシステム43と設定し、コマンド121を、第1オペレーティングシステム43に転送する。
【0059】
またコマンド判定部101は、メモリ制御部103に対して、第1オペレーティングシステム43を起動するように起動指定の指示を出す。メモリ制御部103は、第1オペレーティングシステム43を起動する。このとき、第1オペレーティングシステム43に対して、メモリの所定の領域を確保したり、その時点で、第2オペレーティングシステム44が領域を確保していたら、第2オペレーティングシステム44を他の領域に移したり、その領域を開放し、第1オペレーティングシステム43に割り当てたりする制御を実行する。
【0060】
このような処理について、さらに、図5のフローチャートを参照して説明する。
【0061】
ステップS101において、コマンド判定部101は、通信部41で受信された外部装置31からのコマンドを受信する。コマンド判定部101は、コマンドを受信すると、ステップS102において、コマンドの判定を開始する。コマンドの判定が開始されると、ステップS103において、管理テーブル保持部102で管理されている管理テーブルが読み出される。
【0062】
すなわち、上記したように、コマンド判定部101は、受信されたコマンドのヘッダの先頭部分の情報を読み出し、その情報が、管理テーブル保持部102(この場合、管理テーブル141または管理テーブル142)に登録されているか否かを判定し、登録されていた場合には、さらに、どのオペレーティングシステムに対するコマンドであるかを判定する。
【0063】
なお、上述したように、コマンドのヘッダの先頭部分以外の位置に位置する情報で、どのオペレーティングシステムに対するコマンドであるかを判定するようにした場合、コマンド判定部101は、所定の位置に記載されている情報を読み出すことで判定を行う。
【0064】
ステップS104において、管理テーブル保持部102に、受信されたコマンドが登録されているか否かが判定される。ステップS104において、管理テーブル保持部102に、受信されたコマンドが登録されていないと判定された場合、ステップS108において、エラーと判定され、エラー処理が実行される。すなわちこの場合、受信されたコマンドは、第1オペレーティングシステム43に対するコマンドではなく、第2オペレーティングシステム44に対するコマンドでもないと判定された場合である。よってこのような場合には、受信されたコマンドは、チップ30に含まれているオペレーティングシステムで処理するコマンドではないと判定され、エラーとして処理される(受信されたコマンドは処理されない)。また、コマンド判定部101は、エラーとして判定した場合、特定の文字列を通信部41に送付する場合がある。
【0065】
一方、ステップS104において、管理テーブル保持部102に、受信されたコマンドが登録されていると判定された場合、ステップS105に処理が進められ、転送先のオペレーティングシステムが判定される。そして、ステップS106において、コマンド判定部101は、メモリ制御部103に対して起動(切り換え)させるオペレーティングシステムの情報を渡す。このような処理が行われる一方で、ステップS107において、コマンド判定部101は、コマンド転送部104に、オペレーティングシステムの指定情報と、受信されたコマンドを渡す。
【0066】
このように、アプリケーションの追加や削除に対応していない第1オペレーティングシステム43と、アプリケーションの追加や削除に対応している第2オペレーティングシステム44が情報処理装置10(チップ30)に含み、受信されたコマンドが、第1オペレーティングシステム43に対するコマンドであるか、第2オペレーティングシステム44に対するコマンドであるかを、コマンドと、そのコマンドを処理するオペレーティングシステムとを関連付けた管理テーブル保持部102で保持されているテーブルを参照して判定するコマンド判定部101、コマンド判定部101の判定結果に基づき、第1オペレーティングシステム43または第2オペレーティングシステム44が、処理を開始できるようにメモリを制御するメモリ制御部103、および、判定結果に基づき、受信されたコマンドを第1オペレーティングシステム43または第2オペレーティングシステム44に転送するコマンド転送部104を備えることで、以下のような効果がある。
【0067】
コマンド判定部101により、受信されたコマンドが、どのオペレーティングシステムに対してであるかが的確に判定され、その判定に基づき、コマンドが、オペレーティングシステムに対して渡されるとともに、オペレーティングシステムが起動されるようにすることができる。そして、コマンドを受信した時点で、オペレーティングシステムを切り換えることが可能となる。さらに、その切り換えは、切り換え先のオペレーティングシステムを明示的に設定する必要がなく、換言すれば、ユーザが切り換え先のオペレーティングシステムを指定するといったことなく、ユーザの手を煩わせることなく行うことができる。
【0068】
[第2の実施の形態について]
ところで、第1の実施の形態によれば、受信されたコマンドを適切なオペレーティングシステムに渡すことができるが、例えば、ステップS104(図5)において、受信されたコマンドが管理テーブル保持部102に登録されていないと判定されると、ステップS108でエラー処理が実行されてしまう。
【0069】
第2オペレーティングシステム44は、アプリケーションを追加できる(追加されたアプリケーションのコマンドを追加できる)オペレーティングシステムである。このことを考慮すると、第2オペレーティングシステム44に関する追加されたアプリケーションのコマンドが、管理テーブル保持部102に登録されてないコマンドであっても受信されることがあることが考えられる。
【0070】
すなわち、ステップS104において、管理テーブル保持部102に登録されていないと判定されるコマンドは、第2オペレーティングシステム44の追加されたアプリケーションに対するコマンドである場合がある。よって、このことを考慮した第2の実施の形態について以下に説明する。
【0071】
図6は、第2の実施の形態における中間層42の機能を示すブロック図である。図3に示した第1の実施の形態における中間層42と、図6に示した第2の実施の形態における中間層42とを比較すると、図6に示した中間層42は、図3に示した中間層42に、一時記憶領域201が追加された構成とされている。その他の構成は同じであり、同一の符号を付してあり、その説明は適宜省略する。
【0072】
一時記憶領域201は、コマンドを受信した時点で(直前まで)起動されていたオペレーティングシステムの情報が記憶される。ここでは、第1オペレーティングシステム43または第2オペレーティングシステム44といった情報が記憶される。
【0073】
図7を参照し、図6に示した中間層42の動作について説明する。図7を参照しての説明は、図4を参照して既に説明したことと重複するので、その重複する部分に関しては説明を省略する。
【0074】
コマンド判定部101は、通信部41からコマンド121を受信すると、管理テーブル保持部102を参照し、必要に応じて、一時記憶領域201に記憶されている情報も参照する。図7に示したような状況の場合、受信されたコマンドのヘッダの先頭の情報は、“60”であるため、管理テーブル141が参照されることにより、第1オペレーティングシステム43へのコマンドであると判定される。そのように判定されたときには、一時記憶領域201には、第1オペレーティングシステム43であることを示す情報が記憶される。
【0075】
受信されたコマンドが、仮に、管理テーブル保持部102に登録されていないコマンドであり、かつ、一時記憶領域201に、第2オペレーティングシステム44を示す情報が記憶されていた場合、コマンド判定部101は、受信されたコマンドは、第2オペレーティングシステム44に対するコマンドであると判定し、そのように処理を実行する。
【0076】
これは、上記したように、第2オペレーティングシステム44は、コマンドを新たに追加できるオペレーティングシステムであるために、管理テーブル保持部102に登録されていないコマンドが受信されたときで、かつ、第2オペレーティングシステム44が起動されているときに受信されたコマンドであるならば、第2オペレーティングシステム44に対するコマンドである可能性が高いからである。換言するならば、新たに追加されたアプリケーションは、第2オペレーティングシステム44が起動されている時点で受信され、処理される。よって、第2オペレーティングシステム44に対してコマンドが渡される。
【0077】
なお、一時記憶領域201の初期状態は、何も記憶されていない状態とされる、初期状態は、チップ30に電圧が供給されたとき(電源がオンにされたとき)の状態である。これは、チップ30がオフにされたときのオペレーティングシステムを一時記憶領域201に記憶し、次にオンにされたときに、その情報に基づいて処理が実行されると、誤った処理が実行されてしまう可能性があるからである。よって、一時記憶領域201に記憶されている情報は、電源がオフにされた時点で削除される。そのために、図1を参照して説明したように、一時記憶領域201は、RAM104(図1)で構成される。
【0078】
なお、チップ30に電圧が供給された(電源がオンにされた)後、必ず特定のオペレーティングシステムがデフォルトで起動する仕組みを採用することも可能である。そのような仕組みが採用されている場合、前述の「何も記憶されていない状態」から、特定のオペレーティングシステムの起動に合わせて、一時記憶領域201の状態も、その起動された特定のオペレーティングシステムの情報が、現在のオペレーティングシステムであることを示す情報として格納されるようにしても良い。
【0079】
図8のフローチャートを参照し、さらに第2の実施の形態における中間層42の動作について説明する。
【0080】
ステップS201乃至S207の各処理は、図5に示した第1の実施の形態におけるフローチャートのステップS101乃至S107と同様の処理なので、その説明は省略する。すなわち、受信されたコマンドの情報が、管理テーブル保持部102に登録されている場合には、登録されているオペレーティングシステムが起動され(切り換えられ)、コマンドが転送される。
【0081】
一方、ステップS204において、受信されたコマンドは、管理テーブル保持部102には登録されていないと判定された場合、ステップS208に処理が進められる。ステップS208において、前回の転送履歴が一時記憶領域201に記憶されているか否かが判定される。例えば、前回、受信されたコマンドが第1オペレーティングシステム43に転送されていた場合には、第1オペレーティングシステム43を示す情報が、一時記憶領域201に記憶されている。上記したように、一時記憶領域201には、初期状態でなければ、情報が記憶されている。換言すれば、連続的にコマンドが受信されている状態であれば、一時記憶領域201には情報が記憶されている。
【0082】
このように、管理テーブル保持部102に受信されたコマンドの情報が登録されていないと判定された場合、一時記憶領域201が参照される。ステップS208において、一時記憶領域201に情報が記憶されていると判定された場合、ステップS209に処理が進められる。
【0083】
ステップS209において、履歴にあるオペレーティングシステムは、ダウンローダブルであるか否かが判定される。すなわち、一時記憶領域201に記憶されている情報が示すオペレーティングシステムは、アプリケーションの追加ができるオペレーティングシステムであるか否かが判定される。
【0084】
図6に示したような場合、第1オペレーティングシステム43は、ダウンローダブルのオペレーティングシステムではなく、第2オペレーティングシステム44は、ダウンローダブルのオペレーティングシステムである。よって、このような場合、一時記憶領域201に記憶されている情報が示すオペレーティングシステムが、第1オペレーティングシステム43である場合、ステップS209においては、履歴にあるオペレーティングシステムは、ダウンローダブルではないと判定され、ステップS210に処理が進められる。
【0085】
ステップS210において、エラーの処理が実行される。この場合、受信されたコマンドは、管理テーブル保持部102に登録されてなく、かつ、その時点で起動されているオペレーティングシステムは、アプリケーションを追加できないオペレーティングシステムである。基本的に、アプリケーションを追加できないオペレーティングシステムに関するコマンドは、管理テーブル保持部102に登録されている。よって、このような状況のときには、受信したコマンドを処理する適切なオペレーティングシステムがないため、ステップS210において、エラー処理が実行される。
【0086】
一方、一時記憶領域201に記憶されている情報が示すオペレーティングシステムが、第2オペレーティングシステム44である場合、ステップS209においては、履歴にあるオペレーティングシステムは、ダウンローダブルであると判定され、ステップS205に処理が進められる。この場合、受信されたコマンドは、管理テーブル保持部102に登録されてなく、かつ、その時点で起動されているオペレーティングシステムは、アプリケーションを追加できるオペレーティングシステムである。よって、この場合、第2オペレーティングシステム44が起動されているときに、第2オペレーティングシステム44に関するコマンドであるが、管理テーブル保持部102には登録されてないコマンドである可能性が高いので、ステップS205において、第2オペレーティングシステム44が転送先のオペレーティングシステムとして設定される。
【0087】
このように、コマンド判定部101の判定結果を記憶する一時記憶領域201をさらに備え、コマンド判定部101が、受信されたコマンドが管理テーブル保持部102で保持されているテーブルに登録されていない場合、かつ、一時記憶領域201に、第2オペレーティングシステム44を示す情報が記憶されている場合、コマンドは、第2オペレーティングシステム44であると判定するようにすることで、以下のような効果がある。
【0088】
すなわち、管理テーブル保持部102に登録されているコマンドが受信されたときには適切に処理ができることはもちろんのこと、管理テーブル保持部102に登録されていないコマンドであっても、適切に処理できるようにすることが可能となる。
【0089】
[第3の実施の形態について]
次に、第3の実施の形態について説明する。第3の実施の形態においては、新たに追加されたアプリケーション(コマンド)が、管理テーブル保持部102に登録されるようにする。上記した第2の実施の形態では、コマンドを登録せずに処理できるようにしたが、第3の実施の形態では、コマンドを登録することで処理できるようにする。
【0090】
図9は、第3の実施の形態における中間層42の構成を示す図である。図3に示した第1の実施の形態における中間層42と、図9に示した第3の実施の形態における中間層42とを比較すると、図9に示した中間層42は、図3に示した中間層42に、管理テーブル更新部301が追加された構成とされている。その他の構成は同じであり、同一の符号を付してあり、その説明は適宜省略する。
【0091】
管理テーブル更新部301は、管理テーブル保持部102で管理されている管理テーブルを更新する。更新対象とされる管理テーブル保持部102は、アプリケーションの追加ができるオペレーティングシステムに対応するテーブルである。よって、図9に示したような状況では、第2オペレーティングシステム44に対応する管理テーブル142が、更新対象とされる。よって、図9に示したように、第2オペレーティングシステム44と管理テーブル更新部301との間には、第2オペレーティングシステム44にだけ解放してあるインタフェースが設けられる。
【0092】
図10に、中間層42と第2オペレーティングシステム44の詳細な構成であり、管理テーブル保持部102の更新に係わる部分についての構成を示す。図10に示した第2オペレーティングシステム44は、コマンド解釈部321、アプリケーション追加・削除部322、アプリケーション格納部323、および、管理テーブル更新要求部324を含む構成とされる。
【0093】
コマンド解釈部321は、コマンド転送部104から転送されてきたコマンドを解釈し、その解釈に基づいて処理を実行する。例えば、コマンド解釈部321が、アプリケーションの追加、または削除を指示するコマンドであると解釈した場合、アプリケーション追加・削除部322に、アプリケーションの追加または削除の指示が出される。アプリケーション格納部323には、アプリケーションが格納されている。
【0094】
アプリケーション追加・削除部322は、アプリケーションを追加する場合、アプリケーション格納部323に、新たに追加するアプリケーションを格納させ、アプリケーションを削除する場合、アプリケーション格納部323に格納されているアプリケーションであり、削除が指示されたアプリケーションを削除する。
【0095】
また、アプリケーション追加・削除部322は、管理テーブル更新要求部324に対して、新たに追加されるアプリケーションのコマンドを、管理テーブル保持部102で管理されている管理テーブルに追加するように指示を出す。または、アプリケーション追加・削除部322は、管理テーブル更新要求部324に対して、削除が指示されたアプリケーションのコマンドを、管理テーブル保持部102で管理されている管理テーブルから削除するように指示を出す。
【0096】
管理テーブル更新要求部324は、アプリケーション追加・削除部322からの追加または削除の要求を、中間層42の管理テーブル更新部301に出す。管理テーブル更新部301は、その指示(要求)に基づき、管理テーブル保持部102で管理されている管理テーブルを更新する。
【0097】
同様にアプリケーションの追加や削除を行い、管理テーブルの更新を行う中間層42と第2オペレーティングシステム44の他の構成について、図11を参照して説明する。
【0098】
図10に示した中間層42の構成と図11に示した中間層42の構成は同じである。図10に示した第2オペレーティングシステム44の構成と、図11に示した第2オペレーティングシステム44の構成を比較するに、図11に示した第2オペレーティングシステム44は、図10に示した第2オペレーティングシステム44のアプリケーション追加・削除部322の代わりに、アプリケーション選択部341とされた構成とされ、さらに、アプリケーション実行部342が追加された構成とされている。その他の構成は同様であるので、同様の符号を付し、その説明は省略する。
【0099】
図11に示した構成の場合、コマンド解釈部321は、コマンド転送部104から転送されてきたコマンドが、アプリケーションを選択するためのコマンドであると解釈したとき、アプリケーション選択部341にコマンドを渡す。アプリケーション選択部341は、コマンドで指定されたアプリケーションを、アプリケーション格納部323から呼び出す。
【0100】
アプリケーション実行部342は、指定されたアプリケーションを実行し、アプリケーションの実行によって生成されるレスポンスデータをアプリケーション選択部341に送信する。アプリケーション選択部341は、受信したレスポンスデータを解釈し、そのレスポンスデータに管理テーブルの更新要求と、修正用のデータが含まれていた場合、管理テーブル更新要求部324に、そのデータを渡す。
【0101】
管理テーブル更新要求部324は、中間層の管理テーブル更新部301に更新要求を出し、更新するためのデータを渡す。管理テーブル更新部301は、受信したデータと、どのオペレーティングシステムからの依頼であるかを識別する情報を対応させて管理テーブル保持部102に保持されている管理テーブルを更新する。
【0102】
図10、図11に、それぞれ示した構成のどちらの構成でも、適切に管理テーブルの更新とアプリケーションの追加、削除を行うことができる。すなわち、第2オペレーティングシステム44が処理するアプリケーションが追加または削除されたとき、管理テーブル保持部102に保持されているテーブルを、アプリケーションの追加または削除にあわせて更新する更新手段を備えることで、適切に管理テーブルの更新とアプリケーションの追加、削除を行うことができる。ここでは図13のフローチャートを参照した説明は、図10に示した構成の場合を例に挙げて説明する。
【0103】
ところで、第3の実施の形態においては、管理テーブル保持部102で保持されている管理テーブルが更新されるが、その更新対象とされるテーブルは、既に作成されているテーブルであっても良いし、新たに作成されるテーブルであっても良い。
【0104】
既に作成されているテーブルが更新される場合、例えば図4を参照するに、管理テーブル142が更新対象のテーブルとされる。管理テーブル142は、アプリケーション追加や削除を行える第2オペレーティングシステム44に対応するテーブルである。この管理テーブル142に対して、新たにコマンドが追加されたり、既に登録されているコマンドが削除されたりするといった更新の処理が実行される。
【0105】
しかしながら、このように、デフォルトとして管理テーブル142に登録されていたコマンドと、新たに追加されたコマンドを同一のテーブルとして管理することで、セキュリティ的に好ましくない場合がある。すなわち、同一のテーブルとして管理することで、デフォルトのコマンドが削除されてしまったり、改竄されてしまったりする可能性がある。また、同一のテーブルとするためには、コマンドの追加や更新といった処理が行える状態で管理される必要があるため、不揮発性メモリ14に記憶される必要がある。そのために、前記したように、改竄されてしまったりする危険性がある。
【0106】
そこで、既に登録されているコマンドを管理するテーブル、すなわちデフォルトのテーブルと、新たに追加や削除といった更新が行われるテーブルが別々に管理されるようにする。そのような管理の仕方について、図12を参照して説明する。
【0107】
管理テーブル保持部102には、第1オペレーティングシステム43用の管理テーブル141、第2オペレーティングシステム44用の管理テーブル142−1、および、第2オペレーティングシステム44用の管理テーブル142−2が保持されている。これらの管理テーブルのうち、管理テーブル141と管理テーブル142−1は、デフォルトのコマンドを管理するテーブルである。第1オペレーティングシステム43は、新たにコマンドが追加されることはないので、デフォルトの管理テーブル141のみが管理されている。
【0108】
これに対して、第2オペレーティングシステム44は、コマンドの追加が可能なため、デフォルトのテーブルである管理テーブル142−1と、更新用のテーブルである管理テーブル142−2が設けられている。新たなコマンドの追加や、登録されているコマンドの削除といった処理は、管理テーブル142−2に対してのみ行われ、管理テーブル142−1に対して行われないように構成されている。更新用のテーブルである管理テーブル142−2は、アプリケーションが追加されたとき(コマンドが追加されたとき)に生成されるようにしても良いし、予め用意されていても良い。
【0109】
このように、デフォルトのテーブルと更新用のテーブルを設けたときに、同一のメモリに記憶して管理しているのでは、上記したように、セキュリティ的に好ましくない。そこで、改竄などされて欲しくないデフォルトのテーブルである管理テーブル141と管理テーブル142−1は、ROM12(図1)などのメモリであり、比較的安全な状態を保てるメモリに記憶させる。一方で、更新用のテーブルである管理テーブル142−2は、不揮発性メモリ14(図1)などのメモリであり、更新などの処理を実行できるメモリであり、電源がオフされてもデータが削除されないメモリに記憶させる。
【0110】
このように、更新が想定される第2オペレーティングシステム44に対応する管理テーブルは、デフォルトのコマンドに関する第1のテーブルと、更新用の第2のテーブルとから構成され、第1のテーブルと第2のテーブルは、それぞれ物理的に異なるメモリで管理されるようにする。このようにすることで、セキュリティを高めた状態で、管理テーブルを管理することが可能となる。
【0111】
図12に示したように、管理テーブルを、デフォルトのテーブルと更新用のテーブルといったような階層構造にした場合、一時記憶領域201の状態に格納されているオペレーティングシステムの識別情報に従って、対象となるオペレーティングシステムの更新用テーブルに対して、データが修正されることになる。図示はしていないが、複数のオペレーティングシステムで1つの管理テーブルを共有するような構成とした場合には、オペレーティングシステムを識別するための識別情報と対象となるデータとが、一緒に管理テーブル保持部102に保持される。
【0112】
次に、図10に示した中間層42と第2オペレーティングシステム44の構成を有するときに実行されるコマンドの追加や削除といった更新に係わる処理について、図13のフローチャートを参照して説明する。
【0113】
図13に示したフローチャートの処理は、第2オペレーティングシステム44で実行される処理であり、第2オペレーティングシステム44にコマンドが供給された時点で開始される。よって、図13に示したフローチャートの処理が実行される前の時点で、図5に示したフローチャートの処理が中間層42で実行され、その結果、第2オペレーティングシステム44が起動され、コマンド転送部104からコマンドが第2オペレーティングシステム44に転送されてきている。
【0114】
そのようにして、コマンド転送部104から転送されてきたコマンドを、ステップS301において、コマンド解釈部321は受信する。ステップS302において、コマンド解釈部321は、受信したコマンドを解釈し、その解釈結果に基づき、ステップS303における判定を行う。すなわち、ステップS303において、受信されたコマンドは、アプリケーションの追加を指示するコマンドであるか否かが判定される。
【0115】
ステップS303において、受信されたコマンドは、アプリケーションの追加を指示するコマンドであると判定されると、ステップS304に処理が進められる。ステップS304において、コマンド解釈部321は、アプリケーション追加・削除部322を起動させる。起動されたアプリケーション追加・削除部322は、ステップS305において、コマンドの一部からアプリケーションを抜き出し、アプリケーション格納部323に格納させる。このようにして、アプリケーションが追加されると、ステップS310以降の処理で、必要に応じてコマンドが追加または削除される処理が実行される。
【0116】
一方、ステップS303において、受信されたコマンドは、アプリケーションの追加を指示するコマンドではないと判定されると、ステップS306に処理が進められる。ステップS306において、受信されたコマンドは、アプリケーションの削除を指示するコマンドであるか否かが判定される。ステップS306において、受信されたコマンドは、アプリケーションの削除を指示するコマンドであると判定されると、ステップS307に処理が進められる。
【0117】
ステップS307において、コマンド解釈部321は、アプリケーション追加・削除部322を起動させる。起動されたアプリケーション追加・削除部322は、ステップS308において、コマンドの指定に従って、アプリケーション格納部323に格納されているアプリケーションを削除する。このようにして、アプリケーションが削除されると、ステップS310以降の処理で、必要に応じてコマンドが追加または削除される処理が実行される。
【0118】
一方、ステップS306において、受信されたコマンドは、アプリケーションの削除を指示するコマンドではないと判定されると、ステップS309に処理が進められる。この場合、受信されたコマンドは、アプリケーションの追加を指示するコマンドでも、削除を指示するコマンドでもなく、その他のコマンドである。よって、図10には図示していないが、その他のコマンドを処理する部分に、コマンド解釈部321からコマンドが供給され、供給を受けた部分でコマンドに対応する処理が実行される。
【0119】
アプリケーションの追加または削除が、ステップS305またはステップS306で実行されると、ステップS310に処理が進められる。ステップS310において、アプリケーション追加・削除部322は、コマンドに管理テーブルの更新要求が含まれているか否かを判定する。ステップS310において、コマンドに管理テーブルの更新要求は含まれていないと判定された場合、ステップS311に処理が進められる。ステップS311において、通常のインストールまたは削除の処理が実行される。この処理には、管理テーブルの更新の処理は含まれない。
【0120】
一方、ステップS310において、コマンドに管理テーブルの更新要求が含まれていると判定された場合、ステップS312に処理が進められる。ステップS312において、アプリケーション追加・削除部322は、管理テーブル更新要求部324を起動させる。起動された管理テーブル更新要求部324は、中間層42の管理テーブル更新部301に対して、管理テーブル保持部102で管理されている管理テーブルの更新要求を出す。
【0121】
このとき、アプリケーションの追加または削除の対象とされたオペレーティングシステムに対応するテーブルが更新対象の管理テーブルであることを示す情報とともに、更新要求が出される。すなわちこの場合、第2オペレーティングシステム44に対応する管理テーブルであり、かつ更新対象とされるテーブル(デフォルトのテーブルではないテーブル)が更新対象の管理テーブルであることを示す情報が出される。
【0122】
ステップS314において、管理テーブル更新部301は、更新対象とされた管理テーブルを更新する。この場合、第2オペレーティングシステム44の管理テーブルである管理テーブル142−2が更新される。
【0123】
このようにして、管理テーブルが更新される。管理テーブルが更新されることで、次にコマンドが受信されたときには、その更新された管理テーブルにも基づいて処理できるようになるため、追加されたコマンドであっても、適切に処理を実行することが可能となる。
【0124】
このように、管理テーブルが更新されるようにした場合、また、図12に示したように、デフォルトのテーブルと更新用のテーブルを別々に設けるようにした場合、中間層42が受信したコマンドを転送するときの処理時に、必要に応じ、デフォルトのテーブルと更新用のテーブルが参照される。
【0125】
第1の実施の形態と第3の実施の形態をともに実施することも可能である。このとき、図5に示したフローチャートにおけるステップS103で管理テーブルが読み出されるとき、必要に応じて、デフォルトのテーブルだけでなく、更新用のテーブルも読み出される。すなわち、中間層42のコマンド判定部101は、コマンドを受信すると、管理テーブル保持部102に保持されている全ての管理テーブルを読み出す。図12に示した例の場合、管理テーブル141、管理テーブル142−1、および管理テーブル142−2が読み出される。そして、その読み出された管理テーブルに、受信したコマンドの情報が登録されているか否かが判定されることで、ステップ104の処理が実行される。
【0126】
このように、第1の実施の形態と第3の実施の形態を実施した場合、管理テーブルを更新することも可能であり、その更新された管理テーブルを用いた処理を実行することも可能となる。よって、受信されたコマンドをより確実に処理することが可能となる。
【0127】
なお、第1の実施の形態と第3の実施の形態を実施する場合、ステップS104において、受信されたコマンドは、管理テーブルに登録済みではないと判定された場合、ステップS108に処理が進められ、エラーと判定されるのではなく、アプリケーションの追加や削除が行えるオペレーティングシステムにコマンドが転送され、図13に示した更新に係わる処理が実行されるようにする。
【0128】
上述した実施の形態においては、第2オペレーティングシステム44が、アプリケーションの追加や削除が行えるオペレーティングシステムなので、管理テーブルに登録されていないコマンドが受信されたときには、第2オペレーティングシステム44に、その受信されたコマンドが転送され、図13に示したフローチャートの処理が実行され、管理テーブルの更新が行われる。このようにすれば、管理テーブルの更新ができ、かつ、その更新された管理テーブルを用いて、次回同じコマンドを受信したとき、ステップS104において、管理テーブルに登録済みであると判定され、ステップS105以降の処理が適切に実行されるようにすることができる。
【0129】
この場合、アプリケーションの追加や削除が行えるオペレーティングシステムは、チップ30には第2オペレーティングシステム44だけであるので、ステップS104において受信されたコマンドが管理テーブルに登録されていないとき、第2オペレーティングシステム44に関するコマンドであろうと推定し、その推定に基づいて、上記したような処理を行うことが可能である。
【0130】
しかしながら、チップ30に、アプリケーションの追加や削除を行えるオペレーティングシステムが、2以上含まれた構成とされているような場合、どのオペレーティングシステムのコマンドであるかを推定するのが困難である。例えば、アプリケーションの追加や削除が行えるオペレーティングシステムとして、第2オペレーティングシステム44と第3オペレーティングシステム(不図示)がチップ30に記憶されているとする。このような場合、受信されたコマンドが、管理テーブルに登録がなかったときに、第2オペレーティングシステム44にコマンドを転送するのか、第3オペレーティングシステムにコマンドを転送するのか、一意に決定する(推定する)ことが難しい。
【0131】
そこで、アプリケーションの追加や削除が行えるオペレーティングシステムが、複数記憶されるようなチップ30の場合、第2の実施の形態と第3の実施の形態が実施されることが好ましい。第2の実施の形態は、上述したように、一時記憶領域201(図6)を備え、図8に示したフローチャートに基づき処理が実行されるので、管理テーブルに登録されていないコマンドが受信されたときに、どのオペレーティングシステムに転送すればよいかを判定することができるので、どのオペレーティングシステムに転送すればよいかを判定できないといったようなことが発生することを防ぐことが可能となる。
【0132】
図8を再度参照するに、ステップS204において、受信されたコマンドが管理テーブルに登録されていないと判定された場合、ステップS208において、一時記憶領域201に前回の転送履歴が記憶されているか否かが判定される。そして、記憶されていれば、ステップS209において、一時記憶領域201に記憶されている情報が示すオペレーティングシステムは、ダウンローダブルのオペレーティングシステムであるか否かが判定される。そして、ダウンローダブルのオペレーティングシステムであれば、ステップS205において、ダウンローダブルであると判定されたオペレーティングシステムが、コマンドの転送先として設定される。このような処理が実行されることで、ダウンローダブルのオペレーティングシステムが、図13に示した更新に係わる処理を実行することになる。
【0133】
例えば、一時記憶領域201に、第2オペレーティングシステム44を示す情報が記憶されていれば、受信されたコマンドが、管理テーブルに登録されていなくても、確実に、第2オペレーティングシステム44に転送され、第2オペレーティングシステム44で管理テーブルの更新処理が実行される。
【0134】
このように、ダウンローダブルに対応した複数のオペレーティングシステムが、チップ30に記憶されていても、管理テーブルの更新や、その管理テーブルを用いた処理を適切に実行することが可能である。
【0135】
さらに、一時記憶領域201を中間層42に設けることで、ステップS203における管理テーブルの読み出しに係わる処理を高速化することが可能となる。コマンド判定部101は、コマンドを受信したとき一時記憶領域201を参照し、記憶されている情報が示すオペレーティングシステムに対応する管理テーブルを、管理テーブル保持部102から読み出す。
【0136】
例えば、一時記憶領域201に、第1オペレーティングシステム43を示す情報が記憶されていた場合、管理テーブル141(図12)が読み出される。仮に、読み出された管理テーブル141に、受信されたコマンドが登録されていなければ、他の管理テーブル、例えば、管理テーブル142−1が読み出される。
【0137】
また、一時記憶領域201に、第2オペレーティングシステム44を示す情報が記憶されていた場合、管理テーブル142−1が読み出される。そして、その管理テーブル142−1に受信されたコマンドが登録されていなければ、管理テーブル142−2が読み出される。
【0138】
このように、一時記憶領域201に記憶されている情報を参照し、参照する管理テーブルを絞り込んでから参照することで、コマンドが登録されている否かの検索(オペレーティングシステムの検索)の処理を高速化することができる。
【0139】
さらに、図12では、例えば、第1オペレーティングシステム43に対応する管理テーブル141は、1つのテーブルとして図示し、そのように説明したが、複数のテーブルで構成される(階層化されて構成される)ようにしても良い。例えば、始めに受信される可能性の高いコマンドと、第1オペレーティングシステム43が起動されている状態のときに受信される可能性の高いコマンドとを別の管理テーブルにして保持されるようにしても良い。
【0140】
このようにした場合、一時記憶領域201に、第1オペレーティングシステム43であることを示す情報が記憶されているときには、第1オペレーティングシステム43が起動されている状態のときに受信される可能性の高いコマンドの管理テーブルが参照対象とされるようにすることで、さらに検索にかかる高速化することが可能となる。もちろん、第1オペレーティングシステム43に対応する管理テーブル141以外の管理テーブルも複数のテーブルに分割しておくことで、検索にかかる処理の高速化をはかることが可能となる。
【0141】
上記したように、第1の実施の形態乃至第3の実施の形態は、それぞれ単独でも実施できるし、組み合わせても実施できる。単独で実施しても、組み合わせて実施しても、各形態には、以下のような効果がある。
【0142】
中間層42でオペレーティングシステムに対する適切なコマンドの転送処理を実現することができる。そのことにより、既存のオペレーティングシステムを利用しているシステムやサービスの仕様を変更することなく、使用することができるようになる。
【0143】
また、搭載するオペレーティングシステムのコマンドの仕様を変更する必要がないので、変更によるセキュリティ低下やセキュリティホールを考慮する必要がなくなり、設計などの手間を軽減することが可能となる。
【0144】
さらには、外部装置31からの条件などを追加せずに、チップ30内で閉じた条件で、転送すべきオペレーティングシステムを決定できるため、高い汎用性を確保することができる。
【0145】
[第4の実施の形態について]
ところで、第1乃至第3の実施の形態によれば、管理テーブルを参照した処理を実行することで、受信されたコマンドを適切なオペレーティングシステムに渡すことができる。さらに、コマンドのフォーマットを参照することで、より早く、確実にコマンドを適切なオペレーティングシステムに渡す例を第4の実施の形態として、以下に説明する。
【0146】
図14は、コマンドのデータ構成例を示す図である。コマンド121は、第1オペレーティングシステム43のコマンドである場合、コマンド402として示したような構成であり、第2オペレーティングシステム44のコマンドである場合、コマンド403として示したような構成となる。オペレーティングシステム毎にコマンドのフォーマットは規定されており、以下に説明するようにフィールドの配置や、フィールド長などがオペレーティングシステム毎に異なっている。
【0147】
コマンド402は、データ長を表す“Len”のフィールドの後に、“ヘッダ(Header)”のフィールドが配置され、“Header”の後に、指示内容などのデータが格納される“ペイロード(Payload)”のフィールドが配置されている。このコマンド402における“Len”のフィールドに格納されるデータは、“Len”、“Header”、および “Payload”のそれぞれのフィールド長の合計の値である。換言すれば、コマンド121全体の長さが、“Len”のフィールドに格納される。
【0148】
コマンド403は、“Header”のフィールドの後に、“Len”のフィールドが配置され、“Len”の後に“Payload”のフィールドが配置されている。このコマンド403における“Len”のフィールドに格納されるデータは、“Payload”のフィールドのみのフィールド長の値である。換言すれば、コマンド121のうちの“Payload”のフィールドのフィールド長が、“Len”のフィールドに格納される。
【0149】
このようなフォーマットの違いを利用して、受信されたコマンドが、第1オペレーティングシステム43に対するコマンドであるか、または第2オペレーティングシステム44に対するコマンドであるかを判定することができる。具体的には、特定のフィールド長と長さ(LEN)フィールドに格納されている値が一致するか否かを判定することにより、どのオペレーティングシステムに対するコマンドであるかを導出することができる。このことを利用して、受信されたコマンド121がどのオペレーティングシステムに対するコマンドであるかを判定する中間層42について以下に説明する。
【0150】
図15は、第4の実施の形態における中間層42の機能を示すブロック図である。図3に示した第1の実施の形態における中間層42と、図15に示した第4の実施の形態における中間層42とを比較するに、図15に示した中間層42は、図3に示した中間層42に、フォーマット判定部421が追加された構成とされている。その他の構成は同じであり、同一の符号を付してあり、その説明は適宜省略する。
【0151】
フォーマット判定部421は、受信されたコマンドのフォーマットにより、第1オペレーティングシステム43に対するコマンドであるか、または第2オペレーティングシステム44に対するコマンドであるかを判定する。上述したようなフォーマット毎の違い(“Len”フィールドが配置されている位置や値など)の情報は、フォーマット判定部421に保持されている。
【0152】
フォーマット判定部421は、保持している情報に基づき供給されたコマンドの転送先を判定する。フォーマット判定部421は、その判定結果に基づき、メモリ制御部103とコマンド転送部104に指示を出すか、コマンド判定部101に指示を出すかを決定する。コマンド判定部101は、第1乃至第3の実施の形態と同じく、管理テーブル保持部102で保持されている管理テーブルを参照し、第1オペレーティングシステム43に対するコマンドであるか、または第2オペレーティングシステム44に対するコマンドであるかを判定する。
【0153】
このような判定について、図16のフローチャートを参照して説明する。図16を参照しての説明は、図5を参照して既に説明したことと重複する部分があるので、その重複する部分に関しては、適宜説明を省略する。
【0154】
フォーマット判定部421は、通信部41からコマンド121を受信すると、そのコマンドのフォーマットを参照する。受信されたコマンドの121の特定のフィールド長と、“LEN”フィールドに格納されている値が一致するか否かを判定する。例えば、特定のフィールド長として、“Payload”のフィールド長を用いるとする。受信されたコマンド121が、コマンド402(図14)である場合、“Len”フィールドに格納されている値と、“Payload”のフィールド長の値は異なるため、第1オペレーティングシステム43のコマンドであると推測できる。
【0155】
また、受信されたコマンド121が、コマンド403(図14)である場合、“Len”フィールドに格納されている値と、“Payload”のフィールド長の値が一致するため、第2オペレーティングシステム44のコマンドであると推測できる。
【0156】
ここで、“コマンドであると推測できる”と記載したのは、以下のような理由からである。すなわち、例えば、受信されたコマンド121の“Len”のフォールドを参照し、その値が“0x80”(16進法での表記)であった場合、ちょうど全体長が128バイトであれば、第1オペレーティングシステム43に合致すると推測される。また、“Len”のフォールドの値が“0x80”で、“Payload”フィールドのフィールド長が128バイトになる可能性もあり、そのときには、第2オペレーティングシステム44にも合致すると推測される。
【0157】
このように、フォーマットだけでは、受信されたコマンド121が、2以上のオペレーティングシステムに対応していると判定される可能性があり、フォーマットでの判定だけでは、オペレーティングシステムを決定することができない可能性がある。そこで、本実施の形態においては、後段の処理で、管理テーブルを参照した処理も実行するように構成し、確実にオペレーティングシステムを決定できるようにする。
【0158】
しかしながら、上記した例以外の場合、受信されたコマンド121が、フォーマットだけで、1つのオペレーティングシステムに特定でき、そのような場合には、特定されたオペレーティングシステムに対するコマンドであると判定し、その後の処理が実行されるようにしても良い。そこで、図16に示したようなフローチャートに基づき処理が行われるとする。
【0159】
すなわち、ステップS403において、フォーマットにより受信されたコマンド121のオペレーティングシステムが判定される。ステップS404において、その判定結果が用いられて、転送先のオペレーティングシステムを決定できたか否かが判定される。ここで、転送先のオペレーティングシステムが決定できたと判定されるときの条件を示す。
【0160】
まず、上記したように、2つ以上のオペレーティングシステムが該当すると判定されていなとき、すなわち、1つのオペレーティングシステムしか該当していないと判定されるときである。さらに、その該当している判定されたオペレーティングシステムが、第2オペレーティングシステム44である場合とする。ここで、第2オペレーティングシステム44に該当すると判定されたときという条件を設けたのは以下の理由からである。
【0161】
第2オペレーティングシステム44は、アプリケーションを追加できる(コマンドを追加できる)オペレーティングシステムである。よって、例えば、管理テーブル142−1や管理テーブル142−2(図12)に記載されていないコマンドが、第2オペレーティングシステム44宛として受信されることもある。
【0162】
後段の処理で管理テーブル142を参照したときに、その管理テーブル142に記載されていれば、第2オペレーティングシステム44に対するコマンドであることが確定でき、第2オペレーティングシステム44に受信されたコマンドが渡される。また後段の処理で管理テーブル142を参照したときに、その管理テーブル142に記載されていなくても、第2オペレーティングシステム44に対するコマンドである可能性が高いため、第2オペレーティングシステム44に受信されたコマンドが渡される。
【0163】
結果として、フォーマットでコマンド121の転送先のオペレーティングシステムを第2オペレーティングシステム44であると判定した後、管理テーブル142を参照して、さらに判定を行っても、その判定結果に係わらず、第2オペレーティングシステム44に転送される。よって、フォーマットで判定された結果が、第2オペレーティングシステム44であるとの結果であるときには、管理テーブル142を参照することなく、第2オペレーティングシステム44にコマンドが転送されるようにしても良い。ここでは、そのように処理されるとして説明を続ける。
【0164】
ただし、確実性を向上させるために、第2オペレーティングシステム44と判定された場合であっても、管理テーブルが参照されるようにしても良い。この場合、フォーマットで第2オペレーティングシステム44と判定されることで、後段の処理で管理テーブルを参照するとき、第2オペレーティングシステム44の管理テーブル142のみを参照すればよくなる。このことは、第1オペレーティングシステム43でも同様であり、フォーマットで第1オペレーティングシステム43と判定された場合には、後段の処理で管理テーブルを参照するとき、第1オペレーティングシステム43の管理テーブル141のみを参照すればよい。
【0165】
すなわち、参照する管理テーブルを、フォーマットでの判定に基づき絞り込みを行うことが可能となる。絞り込みを行うことで、参照するテーブル数を減らすことができ、処理を高速化することが可能となる。また、フォーマットで管理テーブルを絞り込み、絞り込んだ管理テーブルを参照してオペレーティングシステムを確定するという一連の流れで、オペレーティングシステムに係わらず処理できるようになるため、例えばこのような判定に係わるプログラムなどを簡略化することが可能となる。
【0166】
また、セキュリティを高めるために、フォーマットによる判定と管理テーブルを参照した判定が必ず行われるようにしても良い。例えば、悪意をもって、第2オペレーティングシステム44に対して出されたコマンド121が、第2オペレーティングシステム44に渡されてしまうことを防ぐためである。管理テーブルを参照することで、悪意のあるコマンドが、第2オペレーティングシステム44に渡されることがないように処理されるようにすることも可能である。
【0167】
ここでは、ステップS404において、1つのオペレーティングシステムしか該当していないと判定され、その判定されたオペレーティングシステムが、第2オペレーティングシステム44である場合には、管理テーブルを参照せずに、第2オペレーティングシステム44にコマンド121が転送されるとして説明を続ける。
【0168】
ステップS404において、上記条件を満たすため、受信されたコマンドを転送するオペレーティングシステムを決定できたと判定された場合、ステップS408に処理が進められる。ステップS408において、フォーマット判定部421は、メモリ制御部103に対して起動(切り換え)させるオペレーティングシステムの情報を渡す。このような処理が行われる一方で、ステップS409において、フォーマット判定部421は、コマンド転送部104に、オペレーティングシステムの指定情報と、受信されたコマンドを渡す。
【0169】
一方、ステップS404において、上記条件を満たさず、受信されたコマンドを転送するオペレーティングシステムを決定できなかったと判定された場合、ステップS405に処理が進められる。ステップS405において、受信されたコマンド121と、フォーマットにより判定結果が、フォーマット判定部421からコマンド判定部101に供給される。そして、コマンド判定部101は、管理テーブル保持部102に保持されている管理テーブルを呼び出す。
【0170】
コマンド判定部101は、フォーマットによる判定結果を用いて、呼び出す管理テーブルを絞り込み、その絞り込まれた管理テーブルのみを呼び出す。すなわち、例えば、フォーマットによる判定結果が、第1オペレーティングシステム43であった場合、第1オペレーティングシステム43の管理テーブル41が呼び出される。このように、フォーマットを判定することで、呼び出す管理テーブルを絞り込むことができるので、処理の高速化を実現することが可能となる。
【0171】
また、ステップS404において、フォーマットによる判定で、第1オペレーティングシステム43と第2オペレーティングシステム44の可能性あると判定されたために、オペレーティングシステムが決定できなかったと判定された場合も、ステップS405に処理が進められる。この場合、第1オペレーティングシステム43の管理テーブル141と、第2オペレーティングシステム44の管理テーブル142が呼び出される。
【0172】
ステップS406において、コマンド判定部101は、呼び出した管理テーブルに、供給されたコマンド121が登録済みであるか否かが判定される。このステップS406以下の処理は、図5のフローチャートのステップS104以下の処理と、基本的に同様なので、その説明は省略する。
【0173】
このように、第4の実施の形態においては、第1オペレーティングシステム43と第2オペレーティングシステム44のそれぞれのコマンドのフォーマットの違いにより、受信されたコマンド121が、第1オペレーティングシステム43に対するコマンド121であるか、第2オペレーティングシステム44に対するコマンド121であるのかを判定し、そのフォーマットにより判定できなかった結果に対して、さらに、受信されたコマンド121が、第1オペレーティングシステム43に対するコマンド121であるか、第2オペレーティングシステム44に対するコマンド121であるのかが判定される。なお、フォーマットにより判定できなかった結果とは、フォーマットによる判定で、1つのオペレーティングシステムに絞り込めなかった場合、1つのオペレーティングシステムに絞り込めたが、そのオペレーティングシステムが、アプリケーションを追加できるオペレーティングシステムでなかった場合、または、フォーマット判定だけでは、オペレーティングシステムを判定せずに、必ずテーブルを参照すると設定されている場合における結果である。
【0174】
上述した第4の実施の形態において、フォーマットの情報は、フォーマット判定部421が保持しているとして説明した。フォーマットの情報も、管理テーブルを構成する情報として、管理テーブルに含まれるようにしても良い。管理テーブルに、フォーマットの情報が含まれる場合、図16のフローチャートの処理において、ステップS405で実行される管理テーブルを呼び出すという処理は、ステップS403の前の時点で実行されるようにする。そして、呼び出された管理テーブルに含まれるフォーマットの情報が用いられて、ステップS403におけるフォーマットでの判定処理が実行される。このように構成することも可能である。
【0175】
第4の実施の形態は、単独で実施することもできるが、第1乃至第3の実施の形態と組み合わせて実施することもできる。また、第4の実施の形態においても、第1乃至第3の実施の形態と同じ効果を得ることが可能である。
【0176】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【符号の説明】
【0177】
10 情報処理装置, 11 CPU, 12 ROM, 13 RAM, 14 不揮発性メモリ, 15 バス, 16 入出力インタフェース, 17 MMU, 18 通信回路, 30 チップ, 31 外部装置, 41 通信部, 42 中間層, 43 第1オペレーティングシステム, 44 第2オペレーティングシステム, 101 コマンド判定部, 102 管理テーブル保持部, 103 メモリ制御部, 104 コマンド転送部, 141,142 管理テーブル, 201 一時記憶領域, 301 管理テーブル更新部, 321 コマンド解釈部, 322 アプリケーション追加・削除部, 323 アプリケーション格納部, 324 管理テーブル更新要求部, 341 アプリケーション選択部, 342 アプリケーション実行部, 421 フォーマット判定部

【特許請求の範囲】
【請求項1】
アプリケーションの追加や削除に対応していない第1のオペレーティングシステムと、
アプリケーションの追加や削除に対応している第2のオペレーティングシステムと、
受信されたコマンドが、前記第1のオペレーティングシステムに対するコマンドであるか、前記第2のオペレーティングシステムに対するコマンドであるかを、コマンドと、そのコマンドを処理するオペレーティングシステムとを関連付けたテーブルを参照して判定する判定手段と、
前記テーブルを保持する保持手段と、
前記判定手段による判定結果に基づき、前記第1のオペレーティングシステムまたは前記第2のオペレーティングシステムが、処理を開始できるようにメモリを制御する制御手段と、
前記判定結果に基づき、受信されたコマンドを前記第1のオペレーティングシステムまたは前記第2のオペレーティングシステムに転送する転送手段と
を備える情報処理装置。
【請求項2】
前記判定手段の判定結果を記憶する記憶手段をさらに備え、
前記判定手段は、受信された前記コマンドが前記テーブルに登録されていない場合、かつ、前記記憶手段に、前記第2のオペレーティングシステムを示す情報が記憶されている場合、前記コマンドは、前記第2のオペレーティングシステムであると判定する
請求項1に記載の情報処理装置。
【請求項3】
前記情報処理装置は、ICチップ、ICカード、または携帯電話機を構成する
請求項1または請求項2に記載の情報処理装置。
【請求項4】
前記第2のオペレーティングシステムが処理するアプリケーションが追加または削除されたとき、前記保持手段に保持され、前記第2のオペレーティングシステムに対応するテーブルを、前記アプリケーションの追加または削除にあわせて更新する更新手段をさらに備える
請求項1乃至3のいずれかに記載の情報処理装置。
【請求項5】
前記第2のオペレーティングシステムに対応する前記テーブルは、デフォルトのコマンドに関する第1のテーブルと、更新用の第2のテーブルとから構成され、
前記第1のテーブルと前記第2のテーブルは、それぞれ物理的に異なるメモリで管理される
請求項4に記載の情報処理装置。
【請求項6】
前記第2のオペレーティングシステムは、
受信された前記コマンドがアプリケーションの追加、または削除を指示するコマンドであるか否かを判定し、
前記判定による結果が、アプリケーションの追加、または削除するコマンドであると判定された場合、さらに、前記コマンドに前記テーブルの更新の要求が含まれているか否かを判定し、
前記判定による結果が、前記テーブルの更新の要求を含むと判定された場合、前記更新手段に更新要求を出す
請求項4または請求項5に記載の情報処理装置。
【請求項7】
前記第1のオペレーティングシステムと前記第2のオペレーティングシステムのそれぞれのコマンドのフォーマットの違いにより、受信されたコマンドが、前記第1のオペレーティングシステムに対するコマンドであるか、前記第2のオペレーティングシステムに対するコマンドであるかを判定するフォーマット判定手段をさらに備え、
前記判定手段は、前記フォーマット判定手段で判定できなかった結果に対して、受信されたコマンドが、前記第1のオペレーティングシステムに対するコマンドであるか、前記第2のオペレーティングシステムに対するコマンドであるのかを判定する
請求項1乃至6のいずれかに記載の情報処理装置。
【請求項8】
アプリケーションの追加や削除に対応していない第1のオペレーティングシステムと、アプリケーションの追加や削除に対応している第2のオペレーティングシステムを少なくとも含む情報処理装置の情報処理方法において、
受信されたコマンドが、前記第1のオペレーティングシステムに対するコマンドであるか、前記第2のオペレーティングシステムに対するコマンドであるかを、コマンドと、そのコマンドを処理するオペレーティングシステムとを関連付けたテーブルを参照して判定し、
その判定結果に基づき、前記第1のオペレーティングシステムまたは前記第2のオペレーティングシステムが、処理を開始できるようにメモリを制御し、
その判定結果に基づき、受信されたコマンドを前記第1のオペレーティングシステムまたは前記第2のオペレーティングシステムに転送する
ステップを含む情報処理方法。
【請求項9】
アプリケーションの追加や削除に対応していない第1のオペレーティングシステムと、アプリケーションの追加や削除に対応している第2のオペレーティングシステムを少なくとも含む情報処理装置に、
受信されたコマンドが、前記第1のオペレーティングシステムに対するコマンドであるか、前記第2のオペレーティングシステムに対するコマンドであるかを、コマンドと、そのコマンドを処理するオペレーティングシステムとを関連付けたテーブルを参照して判定し、
その判定結果に基づき、前記第1のオペレーティングシステムまたは前記第2のオペレーティングシステムが、処理を開始できるようにメモリを制御し、
その判定結果に基づき、受信されたコマンドを前記第1のオペレーティングシステムまたは前記第2のオペレーティングシステムに転送する
ステップを含む処理をコンピュータに実行させるためのプログラムを記録しているコンピュータ読み取り可能な記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate


【公開番号】特開2010−198306(P2010−198306A)
【公開日】平成22年9月9日(2010.9.9)
【国際特許分類】
【出願番号】特願2009−42246(P2009−42246)
【出願日】平成21年2月25日(2009.2.25)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVA
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】