JP4680485B2 - 端末装置、プログラムおよび記録媒体 - Google Patents

端末装置、プログラムおよび記録媒体 Download PDF

Info

Publication number
JP4680485B2
JP4680485B2 JP2003012715A JP2003012715A JP4680485B2 JP 4680485 B2 JP4680485 B2 JP 4680485B2 JP 2003012715 A JP2003012715 A JP 2003012715A JP 2003012715 A JP2003012715 A JP 2003012715A JP 4680485 B2 JP4680485 B2 JP 4680485B2
Authority
JP
Japan
Prior art keywords
data
terminal device
storage area
character string
execution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003012715A
Other languages
English (en)
Other versions
JP2004227177A (ja
Inventor
大 神谷
和宏 山田
隆 近藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NTT Docomo Inc
Original Assignee
NTT Docomo Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NTT Docomo Inc filed Critical NTT Docomo Inc
Priority to JP2003012715A priority Critical patent/JP4680485B2/ja
Publication of JP2004227177A publication Critical patent/JP2004227177A/ja
Application granted granted Critical
Publication of JP4680485B2 publication Critical patent/JP4680485B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Mobile Radio Communication Systems (AREA)
  • Stored Programmes (AREA)

Description

【0001】
【発明の属する技術分野】
端末装置に記憶されているデータのセキュリティを確保する技術に関する。
【0002】
【従来の技術】
プログラム実行機能を有する携帯電話機やパーソナルコンピュータ装置(以下、「PC」という)などの端末装置が普及している。また、この種の端末装置にゲーム機能やスケジューラ機能などを実現させるためのアプリケーションプログラム(以下、「AP」とする)が提供されている。このようなAPには、端末装置の販売以前にその不揮発性メモリに書き込まれて提供されるものと、AP単独で提供され、端末装置の販売後にその不揮発性メモリに書き込まれるものとがある。以下では、前者を「ネイティブAP」と称し、後者を「非ネイティブAP」と称する。非ネイティブAPの一例としては、インターネットを介して提供されるAPや、CD−ROM(Compact Disk-Read Only Memory)のようなコンピュータ装置読み取り可能な記録媒体に記録されて提供されるAPなどが挙げられる。ユーザは各自のニーズに応じて非ネイティブAPを端末装置に記憶させることにより、その端末装置の機能を自由に追加および変更することができる。
【0003】
一般にAPは、端末装置にユーザのニーズに応じた機能を実現させるためのものであるから、ユーザにとって有益なものである。しかしながら、APの提供者に悪意がある場合には、そのAPを実行することでユーザが予期せぬ不利益を被ってしまう虞がある。具体的には、端末装置に記憶されている重要なデータ(例えば、ユーザの個人情報)がAPの実行過程で勝手に読み出され、そのAPの提供者へ送信されてしまうような事態が生じ得る。ネイティブAPについては、例えば、製品出荷時点での製品検査により、そのような事態が生じないことが端末装置の製造者によって確認されている。一方、非ネイティブAPについては、必ずしも、そのような確認が為されているわけではない。このような確認がなされていない非ネイティブAPについては、そのAPを実行することで、ユーザが予期せぬ不利益を被ることがないとは言い切れない。
【0004】
ユーザが予期せぬ不利益を被らないようにするために、非ネイティブAPの利用を禁止し、ネイティブAPのみをユーザに利用させるようにすることが考えられる。しかし、非ネイティブAPを利用することが禁止されてしまうと、ユーザは自らのニーズに応じて端末装置の機能を自由に追加することや変更することができず、甚だ不便である。
【0005】
そこで、非ネイティブAPを実行する場合には、その実行過程において端末装置に記憶されている重要なデータが自由に読み書きされないようにする仕組みを設けることが考えられる。このような仕組みを設けておけば、実行する非ネイティブAPが悪意のある者により提供されたものであっても、端末装置に記憶されている重要なデータを盗み出されることはなく、ユーザが予期せぬ不利益を被ることはない。
【0006】
上述した重要なデータへのアクセス制限を実現するための技術の1つとして、オブジェクト指向技術が注目されている。オブジェクト指向技術を用いてAPを実行する環境(以下、「実行環境」)においては、次のような仕組みにより、APの実行過程で端末装置に記憶されているデータを直接読み書きすることが禁止される。まず、オブジェクト指向技術を用いたAPの実行環境では、データと、このデータを操作する際に必須の手続き(以下、「メソッド」とする)とを一体化したオブジェクトが生成される。この実行環境においてAPを実行する場合には、オブジェクトに内包されているメソッドを呼出すことによりそのオブジェクトに内包されているデータを操作することのみが許容される。以下、このオブジェクトとAPとの関係について図11を参照しつつ説明する。
【0007】
図11は、オブジェクトとAPとの関係について説明するための図である。図11に示されるオブジェクトは2つのデータと2つのメソッドとを内包している。図11のデータ通知メソッドは、このメソッドを呼出したAP(以下、「呼出元AP」という)により指定されたデータ自体をその呼出元APへ引き渡すメソッドである。また、図11のデータ表示メソッドは、呼出元APにより指定されたデータに応じた画像を端末装置の表示部へ表示させるメソッドである。つまり、呼出元APはデータ通知メソッドを呼出すことによりデータ1自体やデータ2自体を取得することや、データ表示メソッドを呼出すことによりデータ1やデータ2に応じた画像を端末装置の表示部に表示させることができる。
【0008】
図11に示すオブジェクトと呼出元APとの関係において注目すべき点は、データ表示メソッドを呼出してデータ1やデータ2に応じた画像を表示させる場合には、表示させるデータ自体を取得していない点である。つまり、データ通知メソッドを有さないようにオブジェクトを構成すれば、このオブジェクトに内包されているデータが呼出元APに取得されることはない。以下では、データ通知メソッドを有しないオブジェクトを「完全カプセル化オブジェクト」と称し、データ通知メソッドを少なくとも1つ有するオブジェクトを「非完全カプセル化オブジェクト」と称する。完全カプセル化オブジェクトを用いて端末装置に記憶されている重要なデータを扱うようにすれば、重要なデータがAPの実行過程で盗み出されることはなく、重要なデータのセキュリティが確保される。
【0009】
なお、本出願人は先行技術調査を行ったが、完全カプセル化オブジェクトを用いてデータのセキュリティを確保する技術を開示した先行技術文献はなかった。一方、本出願人は、以上に説明した実行環境と完全カプセル化オブジェクトとを用いることにより、端末装置に記憶されている重要なデータのセキュリティを確保しつつ非ネイティブAPを実行する技術について特許出願(特願2002−143608)を既に行っている。
【0010】
【発明が解決しようとする課題】
以上に説明した完全カプセル化オブジェクトと実行環境とを用いることにより、非ネイティブAPの実行中に、端末装置に記憶されている重要なデータへの直接的なアクセスが拒絶される。これにより、重要なデータのセキュリティを確保しつつ非ネイティブAPを実行することが可能になる。その一方で、このようなアクセス制限に起因して、非ネイティブAPに従って端末装置が行う処理には様々な制約が伴う。例えば、完全カプセル化オブジェクトに内包されているデータと他のデータとを比較する処理は行えない。そこで、このような制約を排除するために、完全カプセル化オブジェクトに内包されているデータと他のデータとの比較を可能にする仕組みを設けることを想定する。このような仕組みの一例としては、完全カプセル化オブジェクトに、呼出元APから引き渡されたデータと内包しているデータとを比較し、その比較結果を呼出元APへ通知するメソッド(以下、「比較メソッド」と称する)を設けることが挙げられる。以下では、このような仕組みを設けることの利点について、待受けAPを一例として説明する。なお、待受けAPとは、ユーザの所望する画像を端末装置に表示させると共に、着信の有無を監視し着信があった場合にその旨ユーザに通知する処理を端末装置に実行させるAPである。
【0011】
待受けAPを実行中の端末装置は、他のユーザからの着信があった場合には、その発信元の電話番号(以下、「着信電話番号」と称する)を表示することにより、その旨ユーザに通知している。この端末装置には、ユーザの電話番号や、電話帳データなどのユーザの重要な個人情報が記憶されている。なお、電話帳データとは、図12に示されるように、ユーザの発信する可能性のある相手や自分宛てに発信する可能性のある相手の電話番号と、その相手を特定するための識別子(例えば、相手の氏名や名称など)とを内包したデータである。この端末装置では、ユーザの電話番号や電話帳データについてのセキュリティを確保するために、これらのデータを、それぞれ固有の完全カプセル化オブジェクトに内包させるようにしている。このため、この端末装置で実行される待受けAPが、悪意のある者により提供された非ネイティブAPであったとしても、この待受けAPの実行過程で、これらの重要なデータを盗み出されることはない。以下では、ユーザの電話番号を内包した完全カプセル化オブジェクトを「電話番号オブジェクト」と称し、電話帳データを内包した完全カプセル化オブジェクトを「電話帳オブジェクト」と称する。
【0012】
上記待受けAPを実行中の端末装置により表示される着信電話番号が、得意先や自宅の電話番号のように、ユーザにとって見覚えのある電話番号であるならば、ユーザはその発信元が誰であるかを容易に知ることができる。しかし、着信電話番号がそのような電話番号ではない場合には、ユーザはその発信元が誰であるかを知ることはできない。つまり、着信電話番号が表示されても、その発信元が誰であるのかを知ることができない場合があるという不便さがあった。
【0013】
着信があった場合に、着信電話番号に替えて、その着信電話番号に対応する識別子を端末装置に表示させるようにすると、その発信元が誰であるのかを知ることができ便利である。このようなことは、電話帳オブジェクトに、上述した比較メソッドを設けておくことにより実現される。具体的には、待受けAPを実行中の端末装置に、電話帳オブジェクトに内包されている比較メソッドを呼出させ、着信電話番号と電話帳オブジェクトに内包されている電話番号とを比較させる。そして、両者が一致する旨の通知を得た場合には、上記データ表示メソッドを呼出すことにより、電話帳オブジェクトに内包されている識別子を表示させ、逆に、両者が一致しない旨の通知を得た場合には、着信電話番号をそのまま表示させる。このようにして、着信があった場合に、その発信者を示す識別子を端末装置に表示させることが可能になる。
【0014】
以上に説明したように、完全カプセル化オブジェクトに内包されているデータと他のデータとを比較する仕組みを設けることにより、利便性を向上させた待受けAPを利用することが可能になる。しかしながら、APの実行過程で完全カプセル化オブジェクトに内包されているデータと他のデータとを比較することを無制限に許容すると、完全カプセル化オブジェクトに内包されているデータを盗み出されてしまう虞がある。例えば、実行しようとするAPが、その実行過程で、「09000000000」から「09099999999」までの連番の文字列データと上記電話帳オブジェクトに内包されている電話番号とを上記比較メソッドにより総当り比較する処理を端末装置に行わせるものであったとする。このようなAPを実行してしまうと、その実行過程で、電話帳オブジェクトに内包させている電話番号が特定されてしまう。つまり、このような処理を行うAPを実行してしまうと、電話帳オブジェクトに内包されている電話番号を特定され、その電話番号がこのAPの提供者に送信されることを防止することはできない。
【0015】
本発明は、上述した事情に鑑みて為されたものであり、端末装置に記憶されている重要なデータのセキュリティを確保しつつ、そのようなデータの比較や検索を行うことを可能にする技術を提供することを目的としている。
【0016】
【課題を解決するための手段】
上記課題を解決するため、本発明は、制御手段と、文字列を含む複数のデータを記憶する第1の記憶領域と、該第1の記憶領域と異なる第2の記憶領域とを有する記憶手段とを備え、オブジェクト指向言語で記述された所定のアプリケーションプログラムの実行過程において、操作に応じて前記文字列の読み出しが要求されるときに、前記第2の記憶領域に生成されるオブジェクトであって、該文字列と該文字列に対する前記操作を実行するためのメソッドとを内包するオブジェクトを介して前記第2の記憶領域に記憶された文字列が読み出され、前記第1の記憶領域に記憶された文字列の読み出しが禁止される端末装置であって、前記制御手段は、前記所定のアプリケーションプログラムを実行するための実行処理と、前記実行処理による前記所定のアプリケーションプログラムの実行に先立って、前記実行処理により使用されるデータを特定する特定処理と、前記特定処理により特定されたデータと該データに対する操作を実行するためのメソッドとを内包するオブジェクトを生成する生成処理であって、該特定されたデータに前記文字列を含むオブジェクトについては、該文字列を呼出元アプリケーションへ引き渡すメソッドを有しない第1の型のオブジェクトとして前記第2の記憶領域に生成し、該特定されたデータに前記文字列を含まないオブジェクトについては、該データを呼出元アプリケーションへ引き渡すメソッドを有する第2の型のオブジェクトとして前記第2の記憶領域に生成する生成処理と、前記生成処理により生成されたあるオブジェクトに内包された文字列前記生成処理により生成された他のオブジェクトに内包された文字列とを比較する要求が前記実行処理において発生した場合に、これらの2つのオブジェクトの型が一致するときには、比較結果を、これらの2つのオブジェクトの型が一致しないときには、比較不能である旨、それぞれ、該実行処理により実行される所定のアプリケーションプログラムに通知する実行制限処理とを実行する端末装置を提供する。
【0017】
また、上記課題を解決するために、本発明は、 文字列を含む複数のデータを記憶する第1の記憶領域と、該第1の記憶領域と異なる第2の記憶領域とを有する記憶手段を備え、オブジェクト指向言語で記述された所定のアプリケーションプログラムの実行過程において、操作に応じて前記文字列の読み出しが要求されるときに、前記第2の記憶領域に生成されるオブジェクトであって、該文字列と該文字列に対する前記操作を実行するためのメソッドとを内包するオブジェクトを介して前記第2の記憶領域に記憶された文字列が読み出され、前記第1の記憶領域に記憶された文字列の読み出しが禁止される端末装置のコンピュータを、前記所定のアプリケーションプログラムを実行するための実行処理と、前記実行処理による前記所定のアプリケーションプログラムの実行に先立って、前記実行処理により使用されるデータを特定する特定処理と、前記特定処理により特定されたデータと該データに対する操作を実行するためのメソッドとを内包するオブジェクトを生成する生成処理であって、該特定されたデータに前記文字列を含むオブジェクトについては、該文字列を呼出元アプリケーションへ引き渡すメソッドを有しない第1の型のオブジェクトとして前記第2の記憶領域に生成し、該特定されたデータに前記文字列を含まないオブジェクトについては、該データを呼出元アプリケーションへ引き渡すメソッドを有する第2の型のオブジェクトとして前記第2の記憶領域に生成する生成処理と、前記生成処理により生成されたあるオブジェクトに内包された文字列前記生成処理により生成された他のオブジェクトに内包された文字列とを比較する要求が前記実行処理において発生した場合に、これらの2つのオブジェクトの型が一致するときには、比較結果を、これらの2つのオブジェクトの型が一致しないときには、比較不能である旨、それぞれ、該実行処理により実行される所定のアプリケーションプログラムに通知する実行制限処理とを実行する手段として機能させるためのプログラムと、コンピュータ読み取り可能な記録媒体であって、当該プログラムを記録した記録媒体とを提供する。
【0018】
このような端末装置、プログラムおよび記録媒体を用いると、アプリケーションプログラムの実行過程でアクセスされるデータのうち、端末装置に記憶されているデータについては、内包しているデータを呼出し元のプログラムへ引き渡すメソッドを有しない第1の型のオブジェクトに内包され、他のデータについては、内包しているデータを呼出し元のプログラムへ引き渡すメソッドを有する第2の型のオブジェクトに内包させられる。そして、2つのオブジェクトに内包されているデータを比較する場合には、2つのオブジェクトの型が一致する場合にのみ、比較が行われる。
【0019】
【発明の実施の形態】
以下、図面を参照しつつ本発明の実施形態について説明する。
【0020】
[A.構成]
(1:通信システムの構成)
図1は本発明の実施形態に係る通信システムの構成例を示す図である。図1に示されるように、この通信システムは、コンテンツサーバ10と、インターネット20と、ゲートウェイ装置30と、移動パケット通信網40と、基地局50と、端末装置60とを有している。なお、図1には、1つのコンテンツサーバ10と1つの端末装置60とが例示されているが、実際には、複数のコンテンツサーバ10と複数の端末装置60とが存在する。
【0021】
コンテンツサーバ10は、インターネット20および移動パケット通信網40を介して端末装置60とパケット通信を行う機能を有している。このコンテンツサーバ10には、インターネット20を介して端末装置60へ提供するAPが格納されている。このAPは、オブジェクト指向のコンピュータ言語の1つであるJava(登録商標)により記述されたプログラムであり、Java実行環境で実行可能なJavaバイトコードで構成されている。以下では、Javaバイトコードで構成されたAPを「JavaAP」と称する。このJavaAPは、インターネット20を介して端末装置60へ提供される非ネイティブAPである。
【0022】
ゲートウェイ装置30は、インターネット20における通信プロトコルと移動パケット通信網40における通信プロトコルとを相互変換する機能を備えており、インターネット20と移動パケット通信網40との間のパケット通信を中継するためのものである。
【0023】
移動パケット通信網40は、ゲートウェイ装置30と基地局50とに接続されており、基地局50に収容されている端末装置60に対してパケット通信サービスを提供するためのものである。なお、図1に示す通信システムは、移動パケット通信網40の他に、図示せぬ移動通信網を備えている。この移動通信網は、端末装置60に対して一般的な移動電話の通話サービスを提供するものである。
【0024】
基地局50は、一定の広さ(例えば、基地局50を中心とする半径500メートの広さ)を有する無線セルを形成するものである。基地局50は、自局の形成する無線セル内に在圏する端末装置60を収容し、この端末装置60と無線通信するためのものである。
【0025】
端末装置60はJava実行環境を備えた携帯電話機であり、在圏している無線セルを形成する基地局50と無線通信を行う。この端末装置60は、移動パケット通信網40およびインターネット20を介してコンテンツサーバ10とパケット通信を行う機能を有しており、コンテンツサーバ10から上述したJavaAPをダウンロードすることができる。本実施形態においては、このJavaAPが既に端末装置60にダウンロードされているものとする。
【0026】
(2:端末装置60の構成)
次に、図2を参照しつつ端末装置60の構成を説明する。図2に示されるように、端末装置60は、CPU(Central Processing Unit)210と、操作部220と、表示部230と、無線通信部240と、記憶部250と、これら各構成要素間のデータ授受を仲介するバス260とを備えている。
【0027】
CPU210は、記憶部250に格納されているソフトウェアを実行することにより、端末装置60の各部を制御するものである。操作部220は、数字や文字、操作指示などをユーザに入力させるための複数のキーを備えており、これらのキーの操作に応じた情報をCPU210へ引き渡す。表示部230は、例えば液晶ディスプレイとその駆動回路であり、CPU210から引き渡された情報に応じた画像を表示する。
【0028】
無線通信部240は、アンテナ(図示省略)を備えており、基地局50と無線通信するためのものである。この無線通信部240は基地局50から送信されてくる情報を受信し、受信した情報をCPU210へ引き渡すと共に、CPU210から引き渡された情報を基地局50へ送出する。
【0029】
記憶部250は、RAM(Random Access Memory)251と、ROM(Read Only Memory)252と、不揮発性メモリ253とを有している。RAM251はソフトウェアを実行中のCPU210によりワークエリアとして使用される。
【0030】
ROM252には、オペレーティングシステム(以下、「OS」とする)を実現するためのOSソフトウェアや、Java実行環境を構築するためのソフトウェアや、ブラウザソフトウェアや、ネイティブAPが格納されている。このネイティブAPには、自身がネイティブAPであることを示す識別情報が内包されている。このネイティブAPは、OSによる制御の下でCPU210により直接実行される。
【0031】
不揮発性メモリ253は、例えばEEEPROM(Electrically Erasable Programmable Read Only Memory)であり、コンテンツサーバ10からダウンロードされたJavaAPが格納される。また、不揮発性メモリ253には、ユーザの個人情報や、個人情報以外のデータが格納されている。個人情報の一例としては、ユーザの電話番号や、電話帳データ(図12参照)や、着信電話番号などが挙げられる。また、個人情報以外のデータとしては、例えば、ユーザにより制作された画像データ(以下、「自作画像データ」と称する)が挙げられる。さらに、不揮発性メモリ253には、重要度テーブル253a、対応情報テーブル253bおよびJarストレージ253cが格納されている。
【0032】
まず、重要度テーブル253aについて図3を参照しつつ説明する。図3に示されるように、重要度テーブル253aには、不揮発性メモリ253に格納されているデータ毎に、そのデータの重要度を示す情報(以下、単に、「重要度」とする)が格納されている。図3に示されるように、重要度は“1”または“0”の何れかの値を有するデータであり、重要度の値が“1”である場合には、「重要度が高いこと」を意味し、重要度の値が“0”である場合には、「重要度が低いこと」を意味している。例えば、図3では、ユーザの電話番号や電話帳データや着信電話番号については重要度が高いデータであることが、一方、自作画像データについては重要度が低いデータであることが例示されている。
【0033】
次いで、不揮発性メモリ253に格納されている対応情報テーブル253bについて図4を参照して説明する。図4に示されるように、対応情報テーブル253bには、オブジェクトの名称と、このオブジェクトが完全カプセル化オブジェクトであるか非完全カプセル化オブジェクトであるかを示す情報(以下、「オブジェクト型」とする)と、データ識別子とが格納されている。オブジェクト型は“1”または“0”の何れかの値を有するデータであり、当該オブジェクト型の値が“1”である場合には、「完全カプセル化オブジェクト」を意味し、当該オブジェクト型の値が“0”である場合には、「非完全カプセル化オブジェクト」を意味している。データ識別子は、オブジェクトに内包されているデータを不揮発性メモリ253内で一意に特定する情報であり、例えば、そのデータを格納している領域のメモリアドレスである。つまり、CPU210は、この対応情報テーブル253bを参照することにより、オブジェクト毎に、そのオブジェクト型や、そのオブジェクトに内包されているデータの所在場所を特定することができる。
【0034】
次に、Jarストレージ253cについて説明する。端末装置60へダウンロードされるJavaAPは、JavaAPの本体プログラム(Javaバイトコードで構成されたプログラム)と、このプログラムを実行する際に使用される画像データを格納した画像ファイルや音声データを格納した音声ファイルなどの、いわゆる「リソース」を1つにまとめたJAR(Java ARchive)ファイルとである。Jarストレージ253cは、このJARファイルを格納するためのものである。
【0035】
(3:Java実行環境)
次に、JavaAPを実行するためのJava実行環境について図5を参照しつつ説明する。図5は、端末装置60におけるJava実行環境を説明するための図である。この図に示されるように、端末装置60には、J2ME(Java 2 platform Micro Edition)に準拠したJava実行環境を実現するためのソフトウェアが組み込まれている。ここで、J2MEとは小型電子器機向けに定められたJava実行環境の規格である。この端末装置60に組み込まれているソフトウェアには、KVMと、CLDC(Connected Limited Device Configuration)クラスライブラリと、オリジナルJava拡張プロファイルとが含まれている。
【0036】
KVMは、JVMの一種であり、携帯電話機やPDA等の小型電子機器用に設計されている。JVMとは、JavaAPのようなJavaバイトコードにより構成されたプログラムをCPU210が解釈し実行可能なマシン語コードに変換し、CPU210に実行させるためのものである。また、CLDCクラスライブラリは、携帯電話機やPDAなどの小型電子器機向けの汎用的な機能を提供するためのクラスライブラリである。
【0037】
オリジナルJava拡張プロファイルは、CLDCクラスライブラリを基礎として携帯電話機に特化した機能を提供するためのクラスライブラリである。このオリジナルJava拡張プロファイルには、例えば、ユーザインタフェイスAPI(Application Program Interface)、ネットワーキングAPI、スクラッチパッドAPI、完全カプセル化API、非完全カプセル化API、比較APIなどが含まれている。
【0038】
ユーザインタフェイスAPIとは、端末装置60のユーザインタフェイス機能をサポートするためのAPIである。ネットワーキングAPIとは、URL(Uniform Resource Locator)により指定されたネットワークリソースへアクセスするためのAPIである。スクラッチパッドAPIとは、スクラッチパッドに対する書き込みや読み出しをサポートするためのAPIである。スクラッチパッドとは、詳細な図示は省略したが、不揮発性メモリ253内に設けられた記憶領域である。このスクラッチパッドには、JavaAPの実行に応じて発生するデータが格納される。さらに、完全カプセル化APIは、完全カプセル化オブジェクトを生成するためのAPIであり、非完全カプセル化APIは、非完全カプセル化オブジェクトを生成するためのAPIである。また、比較APIは、呼出元APからオブジェクトの名称を2つ取得し、これら2つの名称で特定されるオブジェクトの各々に内包されているデータを比較するためのAPIである。なお、この比較APIにて行う比較の態様は、比較対象の2つのデータが完全に一致する場合にのみ両者は一致すると判定する完全一致比較であってもよく、また、比較対象のデータ一方が他方にの一部に一致する場合に両者は一致すると判定する部分一致比較であっても良い。本実施形態では、比較APIにて行われる比較の態様が完全一致比較である場合について説明する。
【0039】
なお、詳細な図示は省略したが、端末装置60は、上述したCLDCクラスライブラリやオリジナルJava拡張プロファイルの他に、メーカ独自拡張ライブラリを有している。このメーカ独自拡張ライブラリは、端末装置60の製造元のメーカがそれぞれ独自の機能を提供するためのクラスライブラリである。
【0040】
JAM(Java Application Manager)は、OSによる制御の下で、端末装置60にダウンロードされたJavaAPの管理や、完全カプセル化オブジェクトや非完全カプセル化オブジェクトの管理を行うためのソフトウェアである。まず、JAMを実行中のCPU210が行うJavaAPの管理について説明する。JavaAPの管理を行うために、CPU210はJAMに従い、JavaAPのインストールや更新、削除を行う機能、不揮発性メモリ253に格納されているJavaAPの名称をリスト表示する機能、JavaAPの実行管理を行う機能を営む。
【0041】
JavaAPの実行管理を行う機能とは、JavaAPの起動や強制終了および、JavaAPの実行過程において、アクセス可能なリソースを制限する機能である。この機能により、JavaAPを実行中のCPU210が直接アクセスすることができるリソースは、このJavaAPのダウンロード元のコンテンツサーバ10と、このJavaAP専用に設けられたJarストレージ253cおよびRAM251のみに制限される。すなわち、JavaAPを実行中のCPU210は電話帳データや着信電話番号などに直接アクセスすることはできない。これらのデータについては、JavaAPを実行中のCPU210は、これらのデータを内包しているオブジェクトに内包されているメソッドを介してのみアクセスすることができる。このようにJavaAPを実行中のCPU210がアクセスすることができるリソースを制限するのは、JavaAPが非ネイティブAPだからである。
【0042】
次に、CPU210がJAMに従って行うオブジェクトの管理について説明する。CPU210は、JavaAPの実行に先立って、JAMに従って、当該JavaAPにより使用されるデータを内包する完全カプセル化オブジェクトや非完全カプセル化オブジェクトを生成し、生成したオブジェクトをRAM251へ格納する。これは、JavaAPの使用するデータを内包しているオブジェクトをJavaAPがアクセス可能なリソースへ格納しておくためである。
【0043】
[B.動作]
次に、本実施形態の動作について説明する。
【0044】
(1:オブジェクト生成処理)
次に、端末装置60において、CPU210により実行されるオブジェクト生成処理について図6を参照しつつ説明する。このオブジェクト生成処理は、上述したように、CPU210がJAMに従って実行する処理である。例えば、画面表示されたAPの一覧リストの中から、実行するAPが操作入力により指定された場合などに実行される。なお、APの実行を指示する形態は、操作入力によるものに限定されるものではない。例えば、他のAPを実行中のCPU210から実行が指示される場合、電子メールなどを用いて端末装置60の外部からAPの実行が指示される場合などもある。
【0045】
図6に示すように、まず、端末装置60のCPU210は、実行することを指示されたAPを特定する(ステップSA1)。次に、CPU210は、ステップSA1で特定したAPがネイティブAPであるか、非ネイティブAPであるかを判定する(ステップSA2)。前述したように、ネイティブAPには、自身がネイティブAPであることを示す識別情報が付与されている。したがって、CPU210は、APに上記識別情報が付与されているか否かを判定することにより、このAPがネイティブAPであるのか、それとも非ネイティブAPであるのかを判定することができる。
【0046】
ステップSA2の判定結果が「Yes」である場合(すなわち、ネイティブAPである場合)は、オブジェクト生成処理を終了すると共に、そのAPを実行する。すなわち、実行するAPがネイティブAPである場合には、オブジェクトの生成は行われない。その理由は、ネイティブAPについては、ユーザにとって不利益な動作を行わないことが確認されているので、そのAPの実行過程においてCPU210がアクセスするリソースを制限する必要がないからである。
【0047】
一方、ステップSA2の判定結果が「No」である場合(すなわち、非ネイティブAPである場合)は、その非ネイティブAP(例えば、ダウンロードされたJavaAP)の内容を解析し、このAPを実行した場合に使用されるデータを特定する(ステップSA3)。なお、JavaAPの実行過程で使用されるデータを特定する際には、Jarストレージ253c内の、このJavaAPのJARファイルに格納されているデータは特定対象から除外する。これは、JARファイルに格納されているデータは、このJavaAPを実行する上で必要となるデータとして当該JavaAPの提供者が用意したデータだからである。
【0048】
次に、CPU210は、ステップSA3において特定したデータが不揮発性メモリ253に格納されているデータであるか否かを判定する(ステップSA4)。そして、ステップSA4の判定結果が「No」である場合には、CPU210は、このデータを非完全カプセル化オブジェクトに内包させることとする(ステップSA5)。このようなデータは、例えば、JavaAPに内包されているデータや上述したJARファイルに格納されているデータなど、JavaAPの実行過程においてCPU210により自由に読み書きされるデータだからである。
【0049】
図6のステップSA4に戻って、ステップSA4の判定結果が「Yes」である場合には、CPU210は重要度テーブル253a(図3参照)を参照して、ステップSA3にて特定したデータを完全カプセル化オブジェクトに内包させるのか、非完全カプセル化オブジェクトに内包させるのかを決定する(ステップSA6)。具体的には、CPU210は、ステップSA3で特定したデータに対応付けられている重要度の値が、“0”である場合には、そのデータを非完全カプセル化オブジェクトに内包させることとし、逆に、重要度の値が“1”である場合には、完全カプセル化オブジェクトに内包させることとする。
【0050】
次に、CPU210は、上記ステップSA3において特定したデータを内包するオブジェクトを、上記ステップSA5またはスタップSA6の何れか一のステップにおける決定結果に基づいて生成し、当該オブジェクトに名称を付与してRAM251へ格納する(ステップSA7)。
【0051】
CPU210は、ステップSA7でRAM251へ格納したオブジェクの名称と、当該オブジェクトのオブジェクト型と、当該オブジェクトに内包されているデータへの参照とを対応付けて対応情報テーブル253bへ格納し(ステップSA8)、オブジェクト生成処理を終了する。例えば、実行するJavaAPが待受けAPである場合には、このオブジェクト生成処理により、電話帳データを内包した完全カプセル化オブジェクト(すなわち、電話帳オブジェクト)と、着信電話番号を内包した完全カプセル化オブジェクト(以下、「着信電話番号オブジェクト」と称する)とが生成され、RAM251へ格納される。また、このJavaAPに、電話帳オブジェクトに内包されている電話番号と総当り比較を行うための文字列データ(例えば、「0900000000」〜「09099999999」)が内包されていた場合には、このような文字列データを内包するオブジェクトは非完全カプセル化オブジェクトとして生成されRAM251へ格納される。
【0052】
なお、上記ステップSA3においてJavaAPの使用するデータが複数特定された場合には、特定した各データ毎に、当該データ用の完全カプセル化オブジェクトまたは非完全カプセル化オブジェクトを生成してRAM251へ格納する。具体的には、CPU210は、上記ステップSA4〜ステップSA8までの処理を各データ毎に繰り返して行う。そして、CPU210は、オブジェクト生成処理を終了した後、実行するAPとして指定されたJavaAPを起動し、このJavaAPに基づく処理を開始する。
【0053】
(2:データ比較処理)
次に、端末装置60のCPU210が、上記オブジェクト生成処理にて生成された2つのオブジェクトの各々に内包されているデータを比較するデータ比較処理について図7を参照して説明する。このデータ比較処理は、上述したようにCPU210がJAMに従って実行する処理である。具体的には、CPU210はダウンロードされたJavaAPの実行過程において、2つのオブジェクトに内包されているデータの比較要求(以下、単に、「比較要求」とする)が発生した場合に、割り込み処理として当該データ比較処理を実行する。なお、端末装置60が以下に述べる動作を行う前提として、RAM251には、3個のオブジェクト(ObjectA、ObjectBおよびObjectC)が格納されており、対応情報テーブル253bには、これら3個のオブジェクトの名称、オブジェクト型およびデータ識別子が格納されているものとする(図4参照)。図4に示されるように、ObjectAは、電話帳オブジェクトであり、ObjectBは、着信電話番号オブジェクトである。また、ObjectCは、自作画像データを内包した非完全カプセル化オブジェクトである。
【0054】
まず、互いに異なるオブジェクト型を有する2つのオブジェクトに内包されているデータを比較する場合の動作について説明する。以下では、「ObjectB」に内包されているデータと、「ObjectC」に内包されているデータとを比較する場合について説明する。上述したように、ObjectBは完全カプセル化オブジェクトであり、ObjectCは非完全カプセル化オブジェクトである。
【0055】
端末装置60のCPU210は、JavaAPを実行過程において、「ObjectB」に内包されているデータと「ObjectC」に内包されているデータとの比較要求が発生すると、これら2つのオブジェクトの名称を起動引数として上記比較APIを起動する。比較APIを実行中のCPU210は、呼出元のJavaAPから引き渡された2つの名称(「ObjectB」および「ObjectC」)で特定されるオブジェクトのオブジェクト型を対応情報テーブル253b(図4)を参照して特定する(ステップSB1)。本動作例では、「ObjectB」は完全カプセル化オブジェクトであり、「ObjectC」は非完全カプセル化オブジェクトであることが特定される。
【0056】
次に、CPU210は、ステップSB1で特定した2つのオブジェクト型が一致するか否かを判定する(ステップSB2)。そして、一致すると判定した場合には(ステップSB2:Yes)、CPU210は、対応情報テーブル253bを参照して各オブジェクトに内包されているデータを特定する(ステップSB3)。逆に、一致しないと判定した場合には、CPU210は、比較不能である旨を呼出し元のJavaAPへ通知し(ステップSB5)、比較APIの実行を終了する。
【0057】
本動作例では、ステップSB2において、比較対象の2つのオブジェクトのオブジェクト型は一致しないと判定され、比較不能であることが呼出元のJavaAPへ通知される。このように、比較APIを用いたとしても、非完全カプセル化オブジェクトに内包されているデータと、完全カプセル化オブジェクトに内包されているデータとが比較されることはない。このため、例えば、CPU210に、文字列データ(例えば「09000000000」〜「09099999999」)と電話帳データに内包されている電話番号とを上記比較APIを用いて比較させるJavaAPを実行したとしても、前者は非完全カプセル化オブジェクトに内包されており、後者は完全カプセル化オブジェクトに内包されているため、両者が比較されることはない。つまり、上記比較APIを用いたとしても、完全カプセル化オブジェクトに内包されているデータと非完全カプセル化オブジェクトに内包されているデータとの比較は行われないので、JavaAPの実行過程で完全カプセル化オブジェクトに内包されているデータが盗み出されることはない。
【0058】
次に、同一のオブジェクト型を有する2つのオブジェクトに内包されているデータを比較する場合の動作について説明する。以下では、「ObjectA」に内包されているデータと、「ObjectB」に内包されているデータとを比較する場合について説明する。図4に示されるように、これら2つのオブジェクトは共に完全カプセル化オブジェクトである。なお、比較対象のデータを内包しているオブジェクトが共に非完全カプセル化オブジェクトである場合には、一般的な比較メソッド(例えば、比較対象のデータを内包しているオブジェクトが共にStringオブジェクトである場合には、String.equalメソッド)を使用して、これら2つのオブジェクトに内包されているデータを比較することが可能であるため説明を省略する。
【0059】
JavaAPの実行過程において比較要求が発生すると、比較対象の2つのオブジェクトの名称を起動引数として比較APIを起動し、これら2つのオブジェクトのオブジェクト型が一致するか否かを判定するまでのCPU210の動作は、上述したステップSB1およびステップSB2におけるCPU210の動作と同一である。
【0060】
ただし、本動作例では、「ObjectA」と「ObjectB」とは共に、完全カプセル化オブジェクトであるので、図7のステップSB2においては、両者のオブジェクト型は一致すると判定される。以下、CPU210は、対応情報テーブル253bを参照して「ObjectA」および「ObjectB」の各々に内包されているデータを取得する(ステップSB3)。例えば、ObjectAに内包されているデータを取得する場合には、CPU210は、まず、対応情報テーブル253bを参照してこのオブジェクトに内包されているデータを示すデータ識別子を取得する。ついで、CPU210は、このデータ識別子に基づいて不揮発性メモリ253から、対応するデータを読み出す。
【0061】
そして、CPU210は、ステップSB3で取得した2つのデータを比較し比較結果を呼出元のJavaAPへ通知し(ステップSB4)、比較APIの実行を終了する。以上に説明したように、JavaAPを実行中のCPU210は、比較APIを呼出すことにより、2つの完全カプセル化オブジェクトの各々に内包されているデータを比較することができる。これにより、着信電話番号オブジェクトに内包されている着信電話番号と、電話帳オブジェクトに内包されている電話番号とを比較することが可能になる。そして、CPU210は、両者が一致する場合には、上述したデータ表示メソッドを呼出すことにより、電話帳オブジェクトに内包されている識別子を表示させることが可能になる。
【0062】
[C.変形例]
以上、本発明の実施形態について説明したが、本発明は係る実施形態に限定されるものではなく、その技術思想の範囲内で様々な変形が可能である。なお、変形例としては、例えば、以下のようなものが考えられる。
【0063】
(変形例1)
上述した実施形態では、端末装置60の不揮発性メモリ253に1つの電話帳データが格納されている場合について説明した。しかしながら、複数の電話帳データが不揮発性メモリ253に格納されていても良いことはもちろんである。このような場合に、非ネイティブAPの待受けAPを実行することが指示されると、CPU210は、まず、上述したオブジェクト生成処理において、電話帳データ毎に、その電話帳データを内包した電話帳オブジェクトを生成する。そして、着信があった場合には、この待受けAPを実行中のCPU210は、これら複数の電話帳オブジクトについて1つづつ上記比較APIを用いて、内包している電話番号と着信電話番号オブジェクトに内包されている着信電話番号とが一致するか否かを判定する。そして、CPU210は、着信電話番号と同一の電話番号を内包している電話帳オブジェクトがあったと判定した場合には、その電話帳オブジェクトに内包されている識別子を表示させる。逆に、着信電話番号と同一の電話番号を内包している電話帳オブジェクトはないと判定した場合には、CPU210は、着信電話番号オブジェクトに内包されている着信電話番号を表示させる。このように、複数の電話帳データが端末装置60に記憶されていても、着信があった場合に、その旨ユーザに判りやすく通知する待受けAPを実現することができる。
【0064】
(変形例2)
上述した実施形態では、端末装置60の不揮発性メモリ253に格納されているデータを扱うオブジェクトとして、完全カプセル化オブジェクトと非完全カプセル化オブジェクトとを用いる場合について説明したが、完全カプセル化オブジェクトのみを用いても良い。すなわち、端末装置60の不揮発性メモリ253に格納されているデータについては、常に、完全カプセル化オブジェクトで扱い、その他のデータについては、常に、非完全カプセル化オブジェクトで扱うとしても良い。この場合、上述した重要度テーブル253aは不要となる。また、上述した実施形態では、重要度テーブル253aを用いる構成としたが、ユーザの電話番号、電話帳データ、着信電話番号および自作画像データなどのデータ自体に重要度を付与するようにすれば、重要度テーブル253aを用いる必要はない。
【0065】
また、上述した実施形態では、端末装置60に記憶されているデータの重要度を“0”(重要度が低い)または“1”(重要度が高い)の2つの値を用いて区別し、この重要度の値に基づいて当該データを扱うオブジェクトの型を決定する場合について説明したが、例えば、データの重要度を示す値として、“0(重要度「低」)”〜“5(重要度「高」)”までの値を各データに対して付与し、この重要度の値が“0”〜“2”のデータについては、非完全カプセル化オブジェクトで扱い、重要度の値が“3”〜“5”のデータについては、完全カプセル化オブジェクトで扱うとしても良い。
【0066】
(変形例3)
上述した実施形態では、JavaAPのアクセスするデータのうち、端末装置60の不揮発性メモリ253に格納されているデータ以外のデータについては、常に、非完全カプセル化オブジェクトで扱う場合について説明した。しかし、ユーザにより入力されるデータについては、当該データの重要度と対応付けてユーザに入力させ、重要度が高いデータについては、完全カプセル化オブジェクトで扱うとしても良い。ユーザにより入力されるデータについては、当該ユーザの個人情報が含まれている可能性があるからである。
【0067】
(変形例4)
上述した実施形態では、不揮発性メモリ253に格納されているデータについてのみ完全カプセル化オブジェクトで扱う場合について説明したが、このようなデータから切出された部分データについても完全カプセル化オブジェクトで扱うとしても良い。このような部分データにも重要なデータが含まれている可能性があるからである。
【0068】
(変形例5)
上述した実施形態では、オブジェクト生成処理にて生成されたオブジェクトがRAM251へ格納される場合について説明した。しかしながら、オブジェクトの格納先はRAM251に限定されるものではなく、不揮発性メモリ253であっても良い。
【0069】
例えば、図8に示すように、不揮発性メモリ253に個別スクラッチパッド453dや共通スクラッチパッド453eを設けておき、この個別スクラッチパッド453dや共通スクラッチパッド453eへ生成したオブジェクトを格納するとしても良い。なお、個別スクラッチパッドとは、JavaAPの使用するデータをJavaAP毎に格納するための記憶領域であり、共通スクラッチパッドとは、複数のJavaAPに共有されるデータを格納するための記憶領域である。このように、生成したオブジェクトを不揮発性メモリ253へ格納するようにすると、一度生成したオブジェクトを再利用することができるといった効果を奏する。更に、生成したオブジェクトの格納先が共通スクラッチパッド453eである場合には、複数のJavaAPがそのオブジェクトを共同利用できるといった効果も奏する。
【0070】
また、上述した実施形態では、JavaAPの実行に先立って、当該JavaAPの使用するデータを内包するオブジェクトを生成しておく場合について説明したが、JavaAPの実行過程において、データを使用する度毎に当該データを内包するオブジェクトの生成を行うとしても良い。
【0071】
(変形例6)
上述した実施形態では、非ネイティブAPの一例として、インターネットを介してダウンロードされたJavaAPについて説明した。しかしながら、端末装置60にインストールされる非ネイティブAPは、ダウンロードされたJavaAPに限定されるものではなく、例えばCD−ROMなどのコンピュータ装置読み取り可能な記録媒体に記録されて配布されるJavaAPであっても良い。
【0072】
なお、端末装置60にダウンロードされたJavaAPや、記録媒体に記録されて配布されるJavaAPであっても、例えば、移動パケット通信網40を運営する通信事業者やCA(Certificate Authority)のような公正な第三者機関により、その内容が審査され、一定の動作基準を満たしていると認定されたAP(以下、「トラステッドAP」と称する)であれば、ネイティブAPと同様にアクセス可能なリソースを制限する必要はない。例えば、このようなAPにネイティブAPに内包されている識別情報と同一の識別情報を内包させておけば、CPU210は、ネイティブAPと同様にアクセス可能なリソースを制限することなく、トラステッドAPを実行することができる。また、上述した実施形態では、ネイティブAPについてはOSを実行中のCPU210により直接実行される場合について説明した。しかしながら、ネイティブAPについてもJAMを実行中のCPU210により実行されるとすることももちろん可能である。
【0073】
(変形例7)
上述した実施形態では、図9においてハッチングで示すように、KVMと、CLDCクラスライブラリと、オリジナルJava拡張プロファイルとを備えるJ2MEが組み込まれた端末装置60に本発明を適用した場合について説明したが。しかしながら、本発明を適用可能なJava実行環境はJ2MEに準拠したもの限定されるものではない。また、本発明を適用可能な端末装置は、携帯電話機に限定されるものではない。
【0074】
例えば、図9に示すように、オリジナルJava拡張プロファイルの替わりにMIDP(Mobile Information Device Profile)を有する構成であっても良い。また、KVMの代わりにJVMを有し、CLDCクラスライブラリの代わりにCDC(Connected Device Configuration)クラスライブラリを、また、オリジナルJava拡張プロファイルに替えて、例えば、液晶付電話機用プロファイル、TV用プロファイル、カーナビゲーション用プロファイルなどを有する構成であっても良い。さらには、HotSpotを有しJ2SE(Java2 Standard Edition)に準拠するJava実行環境であっても良く、また、HotSpotを有しJ2EE(Java2 Enterprise Edition)に準拠するJava実行環境であっても良い。なお、J2SEとは、PC向けに定められてJava実行環境の規格であり、J2EEとは、サーバコンピュータ装置向けに定められたJava実行環境の規格である。要は、完全カプセル化オブジェクトや非完全カプセル化オブジェクトを生成可能であり、同一のオブジェクト型を有する2つのオブジェクトに内包されているデータを比較することが可能なJava実行環境であれば良い。
【0075】
また、以上説明したJava実行環境の変形例から明らかなように、本発明は、例えば、PHS(Personal Handyphone System:登録商標)端末やPDA、カーナビゲーション装置、PCなどの各種電子機器に適用可能である。
【0076】
また、本発明に係る端末装置は、移動パケット通信網40に収容される端末装置60に限定されるものではない。例えば、図10に示すような通信システムにおいて、LAN70内に設けられたPC80A〜PC80Cに本発明を適用することも可能である。
【0077】
(変形例8)
上述した実施形態では、オブジェクト指向技術に基づく実行環境としてJava実行環境を用いる場合について説明したが、他のオブジェクト指向技術に基づく実行環境に本発明を適用することも可能である。但し、本発明はJava実行環境に適用された場合に、特に顕著な効果を奏する。以下、その理由について説明する。
【0078】
オブジェクト指向技術に基づく実行環境においては、APの実行過程でアクセスされるデータはオブジェクト内にカプセル化されている。このカプセル化には、プログラミング言語レベルでのカプセル化と、実行コード(マシン語またはバイトコード)レベルでのカプセル化とがある。前者は、オブジェクトに内包されているデータを直接読み書きするようなソースコードを実行コードへコンパイルしないようにすることで実現される。一方、後者は、オブジェクトに内包されているデータを直接読み書きするような実行コードを実行しないようにすることで実現される。例えば、プログラミング言語C++に基づくカプセル化はプログラミング言語レベルでのカプセル化であり、Javaに基づくカプセル化は実行コードレベルでのカプセル化である。
【0079】
より詳細に説明すると、C++に基づくカプセル化では、オブジェクト内のデータを格納するためのフィールドを全てprivateフィールドとして宣言することで、カプセル化が実現される。なお、privateフィールドとは、直接読み書きすることを禁止するデータを格納するためのフィールドである。このようなオブジェクトを生成した場合、確かに、このオブジェクト内のprivateフィールドに格納されているデータを直接読み書きするようなソースコードはコンパイルされることはないので、当然、実行コードが生成されることもない。しかしながら、このカプセル化は、コンパイラによって保証されているに過ぎず、例えば、悪意のある第三者がコンパイラを改造することにより、オブジェクト内のデータを不正に入手することが可能である。また、コンパイラを改造しなくても、悪意のある第三者がハンドアセンブルなどの手段でオブジェクト内のデータを不正に読み出す実行コードを生成することも不可能ではない。加えて、ポインタを用いて直接メモリにアクセスしてしまえば、オブジェクト内のデータを入手することができてしまう。
【0080】
これに対して、Javaの場合、privateフィールドとして宣言されたフィールドは、private属性を有するフィールドであることを示すJavaバイトコードへコンパイルされる。KVMがクラスファイルをRAM251などへ展開する際も、フィールドのprivate属性は保持されている。したがって、仮にコンパイラを改造してオブジェクト内のprivateフィールドに格納されているデータを不正に読み出すようなバイトコードを生成したとしても、KVMがこれを検知するのでオブジェクト内のデータを入手することはできない。また、Javaはポインタをサポートしていないので、ポインタを用いて直接メモリにアクセスし、オブジェクト内のデータを入手することもできない。
【0081】
以上に説明したように、プログラミング言語レベルでのカプセル化が完全であっても、実行コードレベルでのカプセル化が完全でなければ、データを完全にカプセル化したとは言えない。Javaでは、プログラミング言語レベルのみに止まらず、実行コードレベルでの完全なカプセル化を達成することが可能である。このため、本発明の適用対象である実行環境としてはJava実行環境が最も好適である。
【0082】
(変形例9)
上述した実施形態では、完全カプセル化API、非完全カプセル化API、比較APIおよびJAMなど、本発明に係る端末装置に特有な機能を実現するためのソフトウェアを端末装置60に予め記憶させておく場合について説明した。しかしながら、これらのソフトウェアを記録したコンピュータ装置読み取り可能な記録媒体を用いて、これらのソフトウェアを一般的なコンピュータ装置にインストールすることにより、係るコンピュータ装置に端末装置60と同一の機能を付与することも可能である。
【0083】
【発明の効果】
本発明によれば、端末装置に記憶されている重要なデータのセキュリティを確保しつつ、そのようなデータの比較や検索を行うことが可能になるといった効果を奏する。
【図面の簡単な説明】
【図1】 本発明に係る端末装置60を有する通信システムの構成例を示す図である。
【図2】 同端末装置60の構成例を示すブロック図である。
【図3】 同端末装置60に記憶されている重要度テーブル253aの一例を示す図である。
【図4】 同端末装置60に記憶されている対応情報テーブル253bの一例を示す図である。
【図5】 同端末装置60に実装されているJava実行環境を示す図である。
【図6】 同端末装置60の実行するオブジェクト生成処理の流れを示すフローチャートである。
【図7】 同端末装置60の実行するデータ比較処理の流れを示すフローチャートである。
【図8】 変形例5に係る端末装置60の不揮発性メモリ253の一例を示す図である。
【図9】 変形例7に係るJava実行環境の一例を示す図である。
【図10】 変形例7に係る通信システムの構成例を示す図である。
【図11】 オブジェクト指向技術に係るオブジェクトとプログラムとの関係について説明するための図である。
【図12】 端末装置に記憶されている電話帳データの一例を示す図である。
【符号の説明】
10…コンテンツサーバ、20…インターネット、30…ゲートウェイ装置、40…移動パケット通信網、50…基地局、60…端末装置、210…CPU、220…操作部、230…表示部、240…無線通信部、250…記憶部、251…RAM、252…ROM、253…不揮発性メモリ、253a…重要度テーブル、253b…対応情報テーブル、253c…JARストレージ、260…バス

Claims (9)

  1. 制御手段と、
    文字列を含む複数のデータを記憶する第1の記憶領域と、該第1の記憶領域と異なる第2の記憶領域とを有する記憶手段とを備え、
    オブジェクト指向言語で記述された所定のアプリケーションプログラムの実行過程において、操作に応じて前記文字列の読み出しが要求されるときに、前記第2の記憶領域に生成されるオブジェクトであって、該文字列と該文字列に対する前記操作を実行するためのメソッドとを内包するオブジェクトを介して前記第2の記憶領域に記憶された文字列が読み出され、前記第1の記憶領域に記憶された文字列の読み出しが禁止される端末装置であって、
    前記制御手段は、
    前記所定のアプリケーションプログラムを実行するための実行処理と、
    前記実行処理による前記所定のアプリケーションプログラムの実行に先立って、前記実行処理により使用されるデータを特定する特定処理と、
    前記特定処理により特定されたデータと該データに対する操作を実行するためのメソッドとを内包するオブジェクトを生成する生成処理であって、該特定されたデータに前記文字列を含むオブジェクトについては、該文字列を呼出元アプリケーションへ引き渡すメソッドを有しない第1の型のオブジェクトとして前記第2の記憶領域に生成し、該特定されたデータに前記文字列を含まないオブジェクトについては、該データを呼出元アプリケーションへ引き渡すメソッドを有する第2の型のオブジェクトとして前記第2の記憶領域に生成する生成処理と、
    前記生成処理により生成されたあるオブジェクトに内包された文字列前記生成処理により生成された他のオブジェクトに内包された文字列とを比較する要求が前記実行処理において発生した場合に、これらの2つのオブジェクトの型が一致するときには、比較結果を、これらの2つのオブジェクトの型が一致しないときには、比較不能である旨、それぞれ、該実行処理により実行される所定のアプリケーションプログラムに通知する実行制限処理とを実行する
    ことを特徴とする端末装置。
  2. 前記制御手段は、
    実行することを指示されたアプリケーションプログラムが前記所定のアプリケーションプログラムであるか否かを判定する判定処理を、前記生成処理を実行する前に実行する
    ことを特徴とする請求項1に記載の端末装置。
  3. 通信網を介してアプリケーションプログラムを取得する取得手段を備え、
    前記制御手段は、
    前記判定処理において、前記取得手段により取得されたアプリケーションプログラムを前記所定のアプリケーションプログラムであると判定する
    ことを特徴とする請求項2に記載の端末装置。
  4. 前記制御手段は、Javaバイトコードで構成されたアプリケーションプログラムを実行する
    ことを特徴とする請求項1に記載の端末装置。
  5. 前記制御手段は、前記生成処理において、前記第1の記憶領域に記憶されている前記文字列の一部分である部分文字列についても前記第1の型のオブジェクトに内包させる
    ことを特徴とする請求項1に記載に端末装置。
  6. 前記記憶手段は、データを該データの重要度と対応づけて記憶し、
    前記制御手段は、前記生成処理において、前記記憶手段に記憶されているデータのうち、重要度が高いデータについては、該データを前記第1の型のオブジェクトに内包されるようにし、重要度が低いデータについては、前記第2の型のオブジェクトに内包されるようにする
    ことを特徴とする請求項1に記載の端末装置。
  7. アプリケーションプログラムを実行中の前記制御手段により操作されるデータを、該データの重要度と対応付けてユーザに入力させるための入力手段を備え、
    前記制御手段は、前記生成処理において、前記入力手段により入力されたデータのうち、重要度が高いデータについては、該データを前記第1の型のオブジェクトに内包されるようにし、重要度が低いデータについては、前記第2の型のオブジェクトに内包されるようにする
    ことを特徴とする請求項1に記載の端末装置。
  8. 文字列を含む複数のデータを記憶する第1の記憶領域と、該第1の記憶領域と異なる第2の記憶領域とを有する記憶手段を備え、オブジェクト指向言語で記述された所定のアプリケーションプログラムの実行過程において、操作に応じて前記文字列の読み出しが要求されるときに、前記第2の記憶領域に生成されるオブジェクトであって、該文字列と該文字列に対する前記操作を実行するためのメソッドとを内包するオブジェクトを介して前記第2の記憶領域に記憶された文字列が読み出され、前記第1の記憶領域に記憶された文字列の読み出しが禁止される端末装置のコンピュータを、
    前記所定のアプリケーションプログラムを実行するための実行処理と、
    前記実行処理による前記所定のアプリケーションプログラムの実行に先立って、前記実行処理により使用されるデータを特定する特定処理と、
    前記特定処理により特定されたデータと該データに対する操作を実行するためのメソッドとを内包するオブジェクトを生成する生成処理であって、該特定されたデータに前記文字列を含むオブジェクトについては、該文字列を呼出元アプリケーションへ引き渡すメソッドを有しない第1の型のオブジェクトとして前記第2の記憶領域に生成し、該特定されたデータに前記文字列を含まないオブジェクトについては、該データを呼出元アプリケーションへ引き渡すメソッドを有する第2の型のオブジェクトとして前記第2の記憶領域に生成する生成処理と、
    前記生成処理により生成されたあるオブジェクトに内包された文字列前記生成処理により生成された他のオブジェクトに内包された文字列とを比較する要求が前記実行処理において発生した場合に、これらの2つのオブジェクトの型が一致するときには、比較結果を、これらの2つのオブジェクトの型が一致しないときには、比較不能である旨、それぞれ、該実行処理により実行される所定のアプリケーションプログラムに通知する実行制限処理と
    を実行する手段として機能させるためのプログラム。
  9. コンピュータ読み取り可能な記録媒体であって、請求項8に記載のプログラムを記録した記録媒体。
JP2003012715A 2003-01-21 2003-01-21 端末装置、プログラムおよび記録媒体 Expired - Fee Related JP4680485B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003012715A JP4680485B2 (ja) 2003-01-21 2003-01-21 端末装置、プログラムおよび記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003012715A JP4680485B2 (ja) 2003-01-21 2003-01-21 端末装置、プログラムおよび記録媒体

Publications (2)

Publication Number Publication Date
JP2004227177A JP2004227177A (ja) 2004-08-12
JP4680485B2 true JP4680485B2 (ja) 2011-05-11

Family

ID=32901236

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003012715A Expired - Fee Related JP4680485B2 (ja) 2003-01-21 2003-01-21 端末装置、プログラムおよび記録媒体

Country Status (1)

Country Link
JP (1) JP4680485B2 (ja)

Also Published As

Publication number Publication date
JP2004227177A (ja) 2004-08-12

Similar Documents

Publication Publication Date Title
US8087078B2 (en) Communication device
JP4629304B2 (ja) 通信装置、プログラムおよび記録媒体
JP4597973B2 (ja) 移動通信フレームワークにおいてコンテンツ/セキュリティ分析機能にアクセスするためのapiシステム、方法、及びコンピュータプログラム製品
JP4597975B2 (ja) 移動通信フレームワークに使用するためのプラットホーム独立のスキャニングサブシステム
JP4597974B2 (ja) 移動通信装置を使用してコンテンツ/コンテクストの高感度スキャニングを行うシステム、方法及びコンピュータプログラム製品
JP4448849B2 (ja) 移動通信フレームワークにおいてスキャニングサブシステムを更新するための更新システム及び方法
TWI236298B (en) Application level access privilege to a storage area on a computer device
RU2339076C2 (ru) Выполнение неверифицированных программ в операционной среде устройства радиосвязи
US20120278435A1 (en) Cooperative operation method, mobile communication terminal thereof, mail transceiving method, and communication system
US20060136548A1 (en) Method for managing use of storage region by application
ES2243914T3 (es) Dispositivo de procesamiento de informacion y programa.
JP2004302543A (ja) 受信装置およびプログラム
JP4680485B2 (ja) 端末装置、プログラムおよび記録媒体
JP4612010B2 (ja) データ処理装置、プログラムおよび記録媒体
TWI244615B (en) Terminal device and computer readable medium
JP4652660B2 (ja) 端末装置、プログラムおよび記録媒体
JP4138591B2 (ja) 端末装置
JP2003333133A (ja) 通信端末のアクセス制御方法、コンテンツの提供方法、通信システム、中継装置、通信端末、プログラムおよび記録媒体
JP2004126736A (ja) 通信端末及び通信制御方法
JP2004295247A (ja) 通信方法、通信システム、通信端末、サーバ、プログラムおよび記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050407

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080422

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080616

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080722

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080922

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20081111

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090109

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20090120

A912 Removal of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20090220

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110107

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110203

R150 Certificate of patent or registration of utility model

Ref document number: 4680485

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140210

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees