JP3824580B2 - 移動通信携帯端末及びダウンロードプログラムファイル管理用プログラム - Google Patents

移動通信携帯端末及びダウンロードプログラムファイル管理用プログラム Download PDF

Info

Publication number
JP3824580B2
JP3824580B2 JP2002372672A JP2002372672A JP3824580B2 JP 3824580 B2 JP3824580 B2 JP 3824580B2 JP 2002372672 A JP2002372672 A JP 2002372672A JP 2002372672 A JP2002372672 A JP 2002372672A JP 3824580 B2 JP3824580 B2 JP 3824580B2
Authority
JP
Japan
Prior art keywords
program file
file
machine language
program
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
JP2002372672A
Other languages
English (en)
Other versions
JP2003223329A (ja
Inventor
容勳 金
Original Assignee
エス ケイ テレテック カンパニー リミティッド
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 エス ケイ テレテック カンパニー リミティッド filed Critical エス ケイ テレテック カンパニー リミティッド
Publication of JP2003223329A publication Critical patent/JP2003223329A/ja
Application granted granted Critical
Publication of JP3824580B2 publication Critical patent/JP3824580B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B1/00Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
    • H04B1/38Transceivers, i.e. devices in which transmitter and receiver form a structural unit and in which at least one part is used for functions of transmitting and receiving
    • H04B1/40Circuits
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2135Metering
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2137Time limited access, e.g. to a computer or data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)
  • Detection And Correction Of Errors (AREA)
  • Information Transfer Between Computers (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、機械語コードからなる実行領域を含む移動通信端末用ファイル構造及びそれを用いたファイル実行方法に関し、さらに詳しくは、端末のプロセッサによって直接実行可能な機械語実行コードを含み、ファイルの信頼性・有効性検証、ファイルの実行可能回数または時間制限、及び自動更新のためのURL情報を含むヘッダを備える移動通信端末用ファイル構造及びそれを用いた実行方法に関する。
【0002】
【従来の技術】
最近、移動通信サービスの普及に伴って、殆どの人に1つ以上の移動通信サービスが提供されている。このような移動通信サービスは、基本的な音声通話、文字・音声メッセージ伝送、ひいては無線インターネットサービス、移動通信端末用コンテンツの利用などに拡大されつつある。
その中でも、無線インターネットサービスは、端末を用いてインターネット上のサーバーに接続して必要な情報を入手するうえ、各種イメージ、ベル音(着信音、着信メロディー)、ゲームなどの無線インターネット・コンテンツ・ファイルを無線でダウンロードして利用することを可能にする。
【0003】
移動通信端末用ファイルのダウンロード及び実行のために、主に運営体制又はハードウェア独立なプラットフォーム(platform)を利用しており、移動通信端末用ファイルは所定のプログラム開発ツール(Development Kit)を用いて作成する。
移動通信端末用ファイルは、端末メモリ制限などによって小容量にしなければならず、プログラミング及び実行の便宜上、標準化されたライブラリ(Library)のAPIを用いる。このようなAPIは端末のコンテンツ実行用プラットフォームで使用可能であり、コンテンツ用応用プログラム(アプリケーションプログラム)を単純化及び低容量化することができる。
【0004】
ところが、従来の端末用ファイル実行のためには、端末のプロセッサによって直接実行が不可能なバイトコード基盤のプログラムをダウンロードし、端末の実行プラットフォームとして既に内蔵されているKVM、GVM、JVMなどの仮想マシン(VM:Virtual Machine)を用いてバイトコードを解釈し、機械語に変換(翻訳,interpret)した後実行する。JAVA(商標)基盤の無線プラットフォームは前述した方式で実行されるが、このような方式はプラットフォーム独立なので他機種間の互換性は増加させたが、プログラムの実行時間が長くかかり、プログラムを格納するためのメモリ空間も多く浪費されるという欠点がある。
【0005】
図1は従来の移動通信端末用ファイルの内部構成を示すもので、ファイルの実行領域とリソース領域は全く分離されておらず1つの領域内に含まれており、実行領域はバイトコードからなる実行コードと実行データに区分されている。
このような、ファイルをダウンロードした端末のプラットフォームは、実行のために仮想マシンを用いてバイトコードを翻訳して機械語に変換した後、実行しなければならない。従って、実行に長い時間がかかるうえ、通常コンパイルされた機械語よりはバイトコードがより大きい容量を有するので、比較的メモリ空間の小さい端末に多くのファイルを格納することができないという欠点があった。
【0006】
また、バイトコードを使用する場合には、使用メモリ容量を予測することが困難で、プログラムを実行するために大量のメモリを使用する。このため、移動通信端末はより大きいメモリを搭載しなければならず、この大きいメモリ容量と、インタプリタによる変換を含むプログラムの長い実行時間とから、プログラムファイルをダウンロードして実行できる移動通信端末は、そのバッテリの稼働時間が短くなってしまう。
【0007】
通常、プログラムの遠隔ダウンロード及び実行時には、バイトコードで作成されたプログラムをダウンロードして仮想マシンを用いてバイトコードを機械語に翻訳した後実行する方式(JAVA(商標)、C++)が主に用いられている。ところが、このような翻訳実行方式はファイルを実行するプロセッサがそれぞれ異なるために必要なものであって、全てのファイル実行プロセッサが同じ形態であれば、容量が小さくて実行速度も速い機械語からなるファイルを用いることが便利である。
【0008】
一方、移動通信端末に使用されるプロセッサは、ハードウェア的又は運営体制OSの面においてほぼ統一した仕様を有しているので、敢えてバイトコードを使用する必要がない。
本発明は、かかる点に着目したもので、有効性検証、使用期間制限及び自動更新機能を備えるヘッダと、機械語コードからなる実行領域と、言語別に選択されるリソース領域とからなる移動通信端末用ファイルの構造を提案する。
【0009】
【発明が解決しようとする課題】
本発明の目的は、機械語コードを含むことにより、容量を減少させ且つ実行速度を向上させることが可能な移動通信端末用ファイル構造を提供することにある。
本発明の他の目的は、ヘッダと、機械語コードからなる実行領域と、言語別に選択されるリソース領域とからなる移動通信端末用ファイル構造を提供することにある。
【0010】
【課題を解決するための手段】
上記目的を達成するための本発明に係る移動通信端は、プログラムファイル及びデータを記憶するメモリと、このメモリを使用してプログラムファイルを実行するプロセッサと、このプロセッサ又は論理回路の制御に従ってファイルのダウンロード等の通信を制御する無線通信部とを備えている。
そして、前記プロセッサで直接実行できる機械語コードと、少なくとも当該機械語コードのマジックコード、チェックサム及びアプリケーションIDとを格納するヘッダとを備えた特定のデータ構造のプログラムファイルをダウンロードすると共に、前記メモリに格納するダウンロード制御部と、実行指令が入力された時に、前記メモリに格納されたプログラムファイルを当該プログラムファイルのヘッダに含まれた各データを用いて当該プログラムファイルの有効性を検証する有効性検証機能と、前記有効性が検証された場合に限って、当該プログラムファイルの機械語コードを前記メモリにロードし或いは前記プロセッサが直接にアクセスして、当該プログラムファイルの機械語コードを実行する実行部とを備えている。
【0011】
そして、前記チェックサムが、前記機械語コードのチェックサム値であって、前記マジックコードが、前記実行部の論理演算命令を使用した場合と同一の論理演算結果となる論理演算を用いて、前記アプリケーションIDとチェックサムとに論理演算をした論理演算値である。
【0012】
さらに、前記有効性検証機能が、前記実行指令が入力された時に、当該プログラムファイルのヘッダの前記アプリケーションIDと前記チェックサムとに前記実行部の論理演算をし、前記プログラムファイルのヘッダのマジックコードと当該論理演算結果とを比較して、一致した際に有効性有りとし、前記実行部が、前記有効性有りとされたプログラムファイルの機械語コードを実行する。
【0013】
【発明の実施の形態】
以下、添付図に基づいて本発明の実施形態を詳細に説明する。
図2は本発明に係る移動通信端末用ファイルの内部構成を示すもので、まずヘッダ領域と、機械語形態の実行コード及び実行データからなる実行領域と、ファイル実行時に実行領域が参照するデータとしてのリソース領域とからなっている。
実行領域の実行コード及び実行データは、作成されたソースコードまたはバイトコードをコンパイルまたは変換(翻訳)することにより生成される。機械語コードは、0又は1を1ビットとする2進数であり、その一部がプロセッサに対する命令に、残りの部分がメモリのアドレスや変数として用いられる。
【0014】
次いで、ファイルヘッダの詳細な構成を図3、リソース領域の細部構成を図4に基づいてそれぞれ詳細に説明する。
図3は本発明に使用されるファイルヘッダの詳細構成図であって、ファイルヘッダは、プロセッサによって直接実行または使用される実行領域及びリソース領域とは異なり、それ自体では使用されないが、特殊機能の実現に必要なデータを含む部分である。
【0015】
本発明に使用されるファイルヘッダは固定フィールド(Fixed Field)と可変フィールド(Variable Field)に大別される。
固定フィールドは、固定の長さを有する領域であって、ファイルを実行するための実行領域の位置及びサイズデータ、実行領域に含まれたプロセッサによる実行開始位置に対する情報、指定された領域及び言語に対応するように含まれたデータの集合であるリソース領域の位置及びサイズ、ファイルの有効性及び信頼性を確認するためのデータなどを含んでいる。
ヘッダの固定フィールドに含まれるデータの種類を具体的に考察すると、下記表1の通りである。
【0016】
【表1】
Figure 0003824580
【0017】
一方、ヘッダの可変フィールドは下記表2のようなデータ(フィールド)を含んでいる。
【0018】
【表2】
Figure 0003824580
【0019】
チェックサムは、実行領域、リソース領域等の全データを例えば4バイト単位で加算して、アプリケーションIDの語長と同一長のみの長さで切り出した値である。例えば、下位4ビットのみを切り出すようにしてもよい。プログラムのコンパイルの時にチェックサムを求め、このヘッダのチェックサムフィールドに格納する。移動通信端末側でファイルの容量を4バイト単位で算出し、一定の手法で切り出した実際にダウンロードされたファイルのチェックサムと、このヘッダに予め格納されるチェックサムとを比較することで、第1に、そのファイルの全体が正常にダウンロードされ、格納されたか否かを確認することができる。第2に、実行直前までにこのファイルの一部にプログラムやデータ等がウイルス等悪意のあるプログラムによって追加されたり、また、削除されたりというファイルへの変更が行われていないことを確認できる。このように、本実施形態では、チェックサムを用いてファイルの信頼性を検証する。
【0020】
アプリケーションIDは、プログラマや、ダウンロードのためのサーバーや、通信回線のキャリヤなどによって利用されるこのファイル(アプリケーション)を他のアプリケーションから識別するためのIDである。移動通信端末にとっては、対外的に利用すべきアプリケーションの名称となる。
【0021】
マジックナンバーは、移動通信端末のプラットフォームに取ってのファイルの名称であり、移動通信端末にとってのアプリケーションの番号である。本実施形態では、マジックナンバーは、人間が直接に値を求めることが複雑な番号としている。すなわち、本実施形態では、アプリケーションIDと、チェックサムとを二進数で論理演算し、その演算結果をマジックナンバーとする。プラットフォームがダウンロードしたアプリケーションを識別するには、このマジックナンバーを利用するため、移動通信端末を悪意のあるプログラマから保護することができる。すなわち、移動通信端末によってプログラムが起動されるためには、このマジックナンバーを知らなければならず、一方、チェックサムとアプリケーションIDとの論理演算結果をマジックナンバーとする場合、マジックナンバーを通常のコンピュータ操作で知ることは困難である。従って、メーカーやキャリヤによって許容された手法以外の手法でダウンロード用のプログラムを作成することは困難である。本実施形態では、マジックナンバーのデータ構造をこのように工夫することで、移動通信端末を悪意のあるプログラマから保護することができる。
【0022】
論理演算は、XORとしているが、XORの場合にはオーバーフローがない点等で利用しやすいが、論理和、論理積などでも良い。そして、論理演算を行う場合、2つの引数の桁数が同一であると全桁について演算がなされる。表1に示す例では、アプリケーションIDとチェックサムとは同一に4バイトとしている。チェックサムを4バイトとするには、4バイトで表現できる容量よりもファイル容量が大きい場合には、切り出しを行う。仮に小さい場合には、予め特定されたビット列を合成するなどして、4バイトに合わせるとよい。この切り出しや合成、追加をここでは編集という。
【0023】
このチェックサムの編集の仕組みを、秘密にしておくことで、マジックナンバーの悪意のある特定作業はより困難となる。また、アプリケーションIDの範囲やファイル容量の範囲毎にこの編集の仕組みを変化させることで、マジックナンバーの特定は困難となる。このように、一定の論理関係に基づいて編集の仕組みを変化させる場合を含む論理演算による編集を、「所定の編集」という。所定の編集では、アプリケーションIDとチェックサムとのXORと、編集の仕組みを変化させた論理演算とを含む。また、所定の編集は、チェックサムの切り出しや合成のみならず、他の論理演算を行うようにしても良い。
【0024】
また、マジックナンバーは、合計で8バイトとして、アプリケーションIDと上記所定の編集によるマジックナンバーとの合成としてもよい。これにより、アプリケーションIDをユニークとしておくと、マジックナンバーは必ずユニークとなる。
【0025】
有効期限(使用期間制限)は、このプログラムのコンパイル時か、またはダウンロード時にヘッダの有効期限フィールドに格納される。移動通信端末では、端末の内部時計等とこの有効期限とを比較することで、プログラムファイルの使用制限を制御する。
【0026】
使用回数は、有効期限と同様に、このプログラムのコンパイル時か、またはダウンロード時にヘッダの使用回数フィールドに格納される。移動通信端末では、プログラムの実行回数をメモリーに格納するか、又は無線通信回線を介してサーバー等に格納し、プログラムファイルの起動時にこの使用回数と比較することで、プログラムファイルの使用制限を制御する。
【0027】
実行領域は実行コードセグメント(RO segment)と実行データセグメント(RW segment)に二分される。
実行コードセグメント(RO segment)は、端末のプロセッサによって直接実行が可能な機械語コードを含む領域である。一般に、機械語コードはプログラムのソースコード(source code)を入力とするコンパイラー(compiler)を用いて生成される。このように生成された機械語コードをファイルの実行コードセグメント(RO segment)に記憶していて、実行の際に端末のメモリにロードし、或いはプロセッサによって直接アクセス可能な場合にはメモリにロードする手続無しで直接実行される。
【0028】
実行データセグメント(RW segment)は、端末のプロセッサによって直接解釈可能な機械語形態のデータを有する領域である。実行コードセグメント(RO segment)と同様の手続を経て生成され、実行時に必ず端末のメモリにロードされなければならない。
【0029】
リソース領域は、実行領域に含まれた機械語プログラム(RO及びRW segment)が使用するデータを有する領域である。リソース領域に含まれたデータは文字列とアイコン及び画像(イメージ)データである。各データは言語別に区分されてリソース領域に含まれるが、このように言語別に区分されたデータの各集合をリソースセクション(resource section)という。リソース領域はこのように言語別に区分された1つ以上のリソースセクションとリソースヘッダからなる。
【0030】
リソースセクションはプログラムが使用する言語に応じて選択的にメモリにロードされて使用される。従って、各使用言語別リソースセクションの該当言語コードを区分する情報がリソースヘッダに含まれており、この際、使用される言語コードはISO 637:1988規格に従うとよい。
【0031】
図4は前記リソース領域のリソースヘッダ部分とリソースセクション部分の詳細構成図である。ここでは、機械語コードで利用しやすいHEXフォーマットとしている。HEXフォーマットは、16ビット又は32ビット等で、例えば1バイトを上下の4ビットに分けて16進数2桁で表現する。16進数は2進数への変換が容易で、プロセッサの処理時間が短い。
本実施形態における「リソース領域」は、アプリケーションの実行コードが参照するデータを格納する領域であって、ダウンロードしたアプリケーションの実行時に実行コードがリソース領域を参照するためにトークンIDを利用する。すなわち、1つのトークIDは1つのリソースデータを意味し、実行コードはリソース領域(リソースセクション)から1つのトークIDに該当するリソースを抽出して使用する。通常、多国語の支援のために、リソース領域では使用言語別にリソースセクションが区分されており、1つのトークンIDに対しても使用言語数だけのリソースが存在する。すなわち、1つの言語を支援するリソースセクション#0に全てn個のリソースがある。従って、実行コードは支援する言語に対するリソースセクションのうちトークンID番号に該当するリソースを参照する。
【0032】
図5は本発明に係るファイルダウンロード及び実行過程を示すフローチャートである。
まず、所定のプラットフォームを備えた移動通信端末を利用し、移動通信網及びインターネット網を介して前記構造の特定のファイルをダウンロードする(S511,第1工程)。このようなファイルのダウンロードはインターネット網と移動通信網及び所定のゲートウェイ(WAPゲートウェイ)を用いる無線インターネットサービスで一般的に行われるものなので、その詳細な説明は省略する。
【0033】
端末のプラットフォームはダウンロードしたファイルのヘッダに含まれた所定のデータを用いてファイルの信頼性又は有効性を検証する(S512,第2工程)。ファイルの信頼性検証には、チェックサム(checksum)を用いる。プラットフォームは、ダウンロードされたファイルの容量を確認し、その容量を示す数値の例えば下位4バイトを切り出す。この切り出された数値と、ファイルのヘッダに格納されたチェックサムとを比較し、一致する場合には信頼性有りとする。本実施形態では、チェックサムを固定長としているため、ファイルの容量を示す数値から切り出しを行っているが、ヘッダのチェックサムフィールドを可変長とする場合には、全体を比較するようにしても良い。
ここでは、ファイルの信頼性検証は、ファイルヘッダサイズ(File header size)フィールドからファイルの残り部分まで全体内容を4バイト単位で加算し、その結果の下位4バイトのみを取った値がヘッダに記憶されたチェックサム4バイトと同一の場合にのみプログラムの信頼性があると判定する。
【0034】
ファイルの有効性検証には、前述したヘッダのマジックナンバー(Magic number)、チェックサム(checksum)及びアプリケーションID(Application ID)を使用する。上述したように、プラットフォームは、チェックサムとアプリケーションIDとに所定の編集を行うことで、論理演算値を算出する。そして、その論理演算結果とマジックナンバーとを比較することで、そのファイルの有効性検証を行う。また、プラットフォームは、予め定められたプログラムのみを実行する場合には、実行可能なファイルのマジックナンバーを書き換え不能なROM等に格納しておき、マジックナンバーが一致する場合であっても、ROMに格納されたマジックナンバーと異なる場合には実行を許容しないようにしても良い。このROMに格納する例では、当該移動通信端末の販売後に完成するプログラムファイルの実行が不可能となってしまう。従って、プログラムファイルのデータ構造として、マジックナンバーの範囲が一定範囲となるようにチェックサムとの関係でアプリケーションIDを特定するようにし、プラットフォームはマジックナンバーが一定範囲でない場合(例えば、マジックナンバーが正のとき)には実行を許容しないようにしても良い。
ここでは、チャックサムとアプリケーションIDの各4バイトをXOR(eXclusive OR,排他的論理和)し、ヘッダに記録されているマジックナンバーと比較して同一の場合に限ってファイルの有効性があると判定する。
【0035】
このようなファイルの有効性及び信頼性検証が両方とも認められた場合に限って、ファイルの実行を許容する(S513)。また、1つの検証のみを行うか、通過しても特別な場合には実行を許容するようにすることもできる。
【0036】
このように、ファイルの有効性及び/又は信頼性が確認された場合にファイルを実行する。ファイルの実行は、基本的な通信機能等によって使用される必要なメモリを別に確保した状態で、ファイルの実行領域(RO及びRWセグメント等)に格納されたコードをメモリにロードし、或いは直接アクセスが可能な場合にはメモリのローディング過程なしで実行ビュー(Execution View)を作る(S516,第3工程)。実行ビューとは、プロセッサによってプログラムが実行できる形態でメモリにロードされるか、或いはメモリロード無しで実行準備が出来た状態を意味する。
【0037】
すなわち、このステップS516では、実行ビュー生成工程として、第1に、ファイルヘッダのインポートライブラリID等に基づいて予めプラットフォームに格納され又は同時にダウンロードしたライブラリとの関係でリンクやアドレスの特定を行うことで、ライブラリを使用可能にする。第2に、RO及びRWセグメントのアドレス方式が実アドレスではない場合には、機械語コードの修飾アドレス等を当該プラットフォームのメモリのアドレスに割り当てる。このようなライブラリやプラットフォームのメモリアドレスとの関係を整理し、機械語コードを実行可能な状態とする。また、第3に、ファイルヘッダのZIセグメントサイズが格納されている場合には、当該機械語コードによって使用されるメモリをプラットフォームのメモリから確保する。ZIセグメントサイズが格納されていない場合には、可能なメモリを当該機械語コードに割り当てる。使用メモリを確保できない場合には、プログラムの実行は許容されない。
【0038】
機械語プログラムをダウンロードする移動通信端末で当該プログラムを実行する場合には、ステップS516が、プログラムファイルのプラットフォームへの格納形態に応じてメモリへのロード又は端末プロセッサの直接アクセスを制御すると共に、当該機械語コードに前記プラットフォームのメモリーのアドレスを割り当て及び/又は当該プラットフォームのライブラリを使用可能に設定する実行ビュー生成工程を備えると良い。
【0039】
また、端末のプラットフォームが実行ビューを生成する際に、端末に設定された使用言語の設定に応じてリソース領域の当該リソースセクションをメモリにロードする(S517)。
【0040】
生成された実行ビューと、ロードされたリソースセクションを用いてファイルの所定の機能を具現することにより、ファイルを実行する(S518)。ファイル実行に成功すると、プラットフォームは、使用回数のモニタリングとして、ファイル実行回数に1を加算して、メモリ3等に実際の使用回数を格納する。
【0041】
前記ファイルヘッダの有効期限(Expire date)または使用回数(Usage Count)に所定の値が割り当てられることにより、使用可能期間又は使用可能回数が制限されている場合には(S514)、プラットフォームは前記ファイルの使用回数又は使用期間をモニタリングし、ファイルヘッダに含まれた使用可能期間又は使用可能回数を超えれば実行を許容しないようにする工程をさらに含むことができる(S515、S522,第4工程)。
【0042】
また、ファイルヘッダのUR及びUpdate URL stringフィールドに値が与えられて自動更新機能(Updating)がある場合(S519)、更新条件になったか或いはユーザからの更新要請があれば(S520)、ファイルヘッダにある更新URLストリング(Update URL string)を用いて該当ファイルをダウンロードするサイトに接続し、そのサイトから更新のためのデータをダウンロードして更新(アップデート)する工程(S521,第5工程)をさらに含むことができる。
更新条件の例としては、所定の期間が経過した後アップデートする場合や、所定の回数だけ実行した後アップデートする場合などが挙げられる。
【0043】
図6は、本実施形態による特定のデータ構造のプログラムファイルをダウンロードして実行する移動通信端末の機能構成を示すブロック図である。本実施形態による移動通信端末は、プロセッサ又は論理回路の制御に従ってファイルのダウンロード等の通信を制御する無線通信部1と、ディスプレイ及びキーパッド等のユーザインタフェース2と、プログラムファイル及びデータを記憶するメモリ3と、このメモリ3を使用してプログラムファイルを実行するプロセッサ4と、実行部(プロセッサ)4と、ダウンロードプログラムファイルを管理するためのダウンロードプログラムファイル制御部10とを備えている。
【0044】
そして、ダウンロードプログラムファイル制御部10は、ダウンロード制御部11と、更新制御部12と、実行制御部12とを備えている。ダウンロード制御部11は、プロセッサで直接実行できる機械語コードと、少なくとも当該機械語コードのマジックコード、チェックサム及びアプリケーションIDとを格納するヘッダとを有する特定のデータ構造のプログラムファイルをダウンロードすると共に、メモリ3に格納する。
【0045】
実行制御部12は、本実施形態では特に、ステップS512及び513のうち有効性に関する処理を実行する有効性検証機能14と、当該工程のうち信頼性に関する処理を実行する信頼性検証機能15と、ステップS514,515の処理を実行する使用制限機能16と、ステップS516の実行ビュー生成に関する処理を実行する実行ビュー生成部17と、ステップS517の処理を実行するリソースデータ読込制御部18とを備えている。
【0046】
有効性検証機能14は、実行指令が入力された時に、メモリ3に格納されたプログラムファイルを当該プログラムファイルのヘッダに含まれた各データ(チェックサム、アプリケーションID、マジックナンバー等)を用いて当該プログラムファイルの有効性を検証する。例えば、ファイルの容量を示す数値のうちヘッダのアプリケーションIDと同一長さの数値を切り出し、その数値とアプリケーションIDとのXORを求める。このXORの演算結果と、ヘッダに予め格納されたマジックナンバーとが一致する場合に、有効性有りと判定し、不一致の場合には信頼性なしと判定する。有効性検証機能14は、上記所定の編集を行う編集機能をさらに備えるようにしても良い。
【0047】
信頼性検証機能15は、実行指令が入力されたときに、まず、メモリ3に格納されたプログラムファイルの容量を測定すると共に、当該容量を示す数値のうちヘッダのチェックサムと同一長さの数値から、予め定められた部分(例えば、下位4バイト)を切り出す。続いて、切り出した数値と、ヘッダに予め格納されたチェックサムとを比較する。チェックサムが一致する場合には、信頼性有りと判定し、不一致の場合には信頼性なしと判定する。
【0048】
使用制限機能16は、使用期間制限に関しては、現在日時を内部時計等から読み出し、ヘッダに含まれる有効期限(Expire Date)と比較して、有効期限を過ぎている場合には、実行を不許可とする。使用回数に関しては、メモリー3等に格納した実際の使用回数と、ファイルヘッダに予め格納された使用回数(Usage Count)とを比較して、実際の使用回数がヘッダに定義された使用回数と同一又は越える場合に、実行を不許可とする。
【0049】
実行ビュー生成部17は、ZIセグメントに格納されたメモリサイズのメモリ空間をメモリ3への確保を試み、確保できない場合には実行を不可能とする。また、ROセグメントに格納された実行コードのアドレス指定方式によっては、当該実行コードに実アドレスを割り当てる。さらに、ヘッダのDL等を参照して、ライブラリを使用可能にするための処理を行う。そして、ダウンロードされたプログラムファイルのうち、RO及びRWセグメントの実際の格納位置が、プロセッサ4によって直接に実行可能なアドレスであれば、ライブラリ初期化関数アドレス等との関係でプロセッサに機械語コードの先頭アドレスを渡す。一方、直接に実行できないアドレスに格納されている場合には、実行可能なメモリへのロードを行い、そのアドレスをプロセッサに渡す。
【0050】
リソースデータ読込制御部18は、リソースデータの国コード等に基づいて、使用可能言語を判定し、使用可能言語に対応するリソースデータの読込を制御する。
【0051】
更新制御部12は、ステップS519,520及び521の処理を行う。この自動更新のタイミングは、例えば、所定の期間(有効期限)が経過した後アップデートする場合や、所定の回数(使用回数)だけ実行した後アップデートする場合などがある。これにより、期間や回数での課金をスムーズに行うことができる。
【0052】
実行部(プロセッサ)4は、有効性等が検証された場合に限って、当該プログラムファイルの機械語コードをメモリ3にロードし或いは当該プロセッサ4が直接にアクセスして、当該プログラムファイルの機械語コードを実行する。
実行部4は、移動通信端末に装備されたCPU及び論理回路であり、どの機能の部分を論理回路で実装するかは任意である。
【0053】
図6に示す構成や、図5に示す処理は、移動通信端末用のプロセッサが、ダウンロードファイルの管理及び実行を制御するためにダウンロードプログラムファイル管理用プログラムを実行することで実現できる。このダウンロードプログラムファイル管理用プログラムは、例えば移動通信端末のROMに格納しておくようにしてもよい。
【0054】
このダウンロードプログラムファイル管理用プログラムは、前記移動通信端末を動作させる指令として、下記の指令を備える。この指令は、図5に示す各工程や、図6に示す各制御部及び各機能と対応している。
プロセッサで直接実行できる機械語コードと、少なくとも当該機械語コードのマジックコード、チェックサム及びアプリケーションIDとを格納するヘッダとを有する特定のデータ構造のプログラムファイルをダウンロードすると共に、前記メモリに格納する第1指令。この第1指令は、図5のステップS512等に対応し、図6のダウンロード制御部11に対応する。
プログラムファイルのヘッダに含まれる所定のデータを用いて、当該ファイルの信頼性及び/又は有効性を検証させる第2指令。この第2指令は、図5のステップS512,513に対応し、図6の有効性検証機能14及び信頼性検証機能15に対応する。第2指令は、実際のファイル容量とアプリケーションIDとを使用した所定の編集をプロセッサにさせる指令を備えるようにしても良い。
前記第2指令に応じて有効性及び/又は信頼性が検証される場合に限って、当該プログラムファイルの機械語コードをメモリ3にロードし或いはプロセッサ4が直接にアクセスして、当該プログラムファイルの機械語コードを実行させる第3指令。この第3指令は、図5のステップS516,517及び518に対応し、図6の実行ビュー生成部17,リソースデータ読込制御部18及び実行部4に対応する。従って、第3指令は、より詳細な指令として、プロセッサ4に実行ビューを生成させる実行ビュー生成指令を備えるようにしても良い。
【0055】
【発明の効果】
以上述べたように、本発明に係るファイル構造方法及び端末によれば、ファイルの実行領域を、端末によって直接実行可能な機械語コードで構成することにより、次のような利点を有する。
機械語コードは、バイトコード基盤のプログラム(ファイル)に比べてサイズが小さくてダウンロードに必要な時間が短縮され、ダウンロードしたファイルを格納するためのメモリ空間も小さくなる。
また、機械語コードは、プロセッサによって直接実行が可能なので、バイトコード基盤のプログラムに比べて実行速度が速い。通常、機械語プログラムコードはコンパイルまたは変換(インタラプト)の必要なプログラムより約8〜20倍程度が速い。
また、リソース領域をプログラムの実行領域と分離し、容易な多国語支援のために言語別データの集合を区分して構成することにより、実行時に必要なデータのみをメモリにロードして使用することができ、よって、実行時にかかるメモリ要求量を減少させることができる。
ダウンロードに必要な時間が短く、実行が高速で、メモリ要求量が少ないため容量の大きいメモリを移動通信端末に装備する必要がないことから、本発明では、バッテリの連続稼働時間を短縮させずに、プログラムファイルのダウンロード機能を移動通信端末に付加することができる。特に、バイトコード基盤の仮想端末となる移動通信端末と比較して、実行速度及びメモリ空間との関係から、バッテリの必要な充電回数を少なくし、連続して稼働できる時間を相対的に長くすることができる。
ファイルのヘッダを用いることにより、ファイルの有効性検証を行うことができ、使用を制限し或いは自動アップデートを可能にする。特に、本発明では、マジックコードが、前記実行部の論理演算命令を使用した場合と同一の論理演算結果となる論理演算を用いて、前記アプリケーションIDとチェックサムとに論理演算をした論理演算値であって、有効性検証機能が、前記実行指令が入力された時に、当該プログラムファイルのヘッダの前記アプリケーションIDと前記チェックサムとに前記実行部の論理演算をし、前記プログラムファイルのヘッダのマジックコードと当該論理演算結果とを比較して、一致した際に有効性有りとするため、ヘッダの情報と、移動通信端末が実行できる論理演算とにより、メーカーやキャリアがアプリケーションIDやマジックナンバーのデータ構造を工夫することで、悪意のあるプログラマから移動通信端末を保護しつつ、事後的な機械語コードのプログラムの更新や導入をすることができる。
このように、本発明によると、ファイルのヘッダの各フィールドを用いることで多様な機能を実現しつつ、機械語コード実行による利点を、移動通信端末で実現することができる。
【図面の簡単な説明】
【図1】従来の移動通信端末用ファイルの内部構成を示す図である。
【図2】本発明に使用される移動通信端末用ファイルの内部構成を示す図である。
【図3】本発明に使用される端末用ファイルのヘッダ部分に対する詳細図である。
【図4】本発明に使用される端末用ファイルのリソース領域に対する詳細図である。
【図5】本発明に係る端末用ファイルのダウンロード及び実行過程を示すフローチャートである。
【図6】本発明に係る端末用ファイルを実行する移動通信端末の機能構成を示すブロック図である。
【符号の説明】
1 無線通信部
2 表示部
3 メモリ
4 プロセッサ(実行部)
10 ダウンロードプログラムファイル制御部
11 ダウンロード制御部
12 更新制御部
13 実行制御部
14 有効性検証機能
15 信頼性検証機能
16 使用制限機能
17 実行ビュー生成部
18 リソースデータ読込制御部

Claims (2)

  1. プログラムファイル及びデータを記憶するメモリと、このメモリを使用してプログラムファイルを実行するプロセッサと、このプロセッサ又は論理回路の制御に従ってファイルのダウンロード等の通信を制御する無線通信部とを備えた移動通信端末であって、
    前記プロセッサで直接実行できる機械語コードと、少なくとも当該機械語コードのマジックコード、チェックサム及びアプリケーションIDとを格納するヘッダとを備えた特定のデータ構造のプログラムファイルをダウンロードすると共に、前記メモリに格納するダウンロード制御部と、
    実行指令が入力された時に、前記メモリに格納されたプログラムファイルを当該プログラムファイルのヘッダに含まれた各データを用いて当該プログラムファイルの有効性を検証する有効性検証機能と、
    前記有効性が検証された場合に限って、当該プログラムファイルの機械語コードを前記メモリにロードし或いは前記プロセッサが直接にアクセスして、当該プログラムファイルの機械語コードを実行する実行部とを備え、
    前記チェックサムが、前記機械語コードのチェックサム値であって、
    前記マジックコードが、前記実行部の論理演算命令を使用した場合と同一の論理演算結果となる論理演算を用いて、前記アプリケーションIDとチェックサムとに論理演算をした論理演算値であって、
    前記有効性検証機能が、前記実行指令が入力された時に、当該プログラムファイルのヘッダの前記アプリケーションIDと前記チェックサムとに前記実行部の論理演算をし、前記プログラムファイルのヘッダのマジックコードと当該論理演算結果とを比較して、一致した際に有効性有りとし、
    前記実行部が、前記有効性有りとされたプログラムファイルの機械語コードを実行することを特徴とする移動通信端末。
  2. プログラムファイル及びデータを記憶するメモリと、このメモリを使用してプログラムファイルを実行するプロセッサと、このプロセッサ又は論理回路の制御に従ってファイルのダウンロード等の通信を制御する無線通信部とを備えた移動通信端末を使用して前記プログラムファイルを前記プロセッサに実行させるためのダウンロードプログラムファイル管理用プログラムであって、
    前記チェックサムが、前記機械語コードのチェックサム値であって、
    前記マジックコードが、前記実行部の論理演算命令を使用した場合と同一の論理演算結果となる論理演算を用いて、前記アプリケーションIDとチェックサムとに論理演算をした論理演算値であって、
    前記移動通信端末用プログラムは、前記移動通信端末を動作させる指令として、
    前記プロセッサで直接実行できる機械語コードと、少なくとも当該機械語コードのマジックコード、チェックサム及びアプリケーションIDとを格納するヘッダとを有する特定のデータ構造のプログラムファイルをダウンロードすると共に、前記メモリに格納する第1指令と、
    前記プログラムファイルのヘッダに含まれた前記各データを用いて当該プログラムファイルの有効性を検証させる第2指令と、
    前記第2指令に応じて有効性が検証される場合に限って、当該プログラムファイルの機械語コードを前記メモリにロードし或いは前記プロセッサが直接にアクセスして、当該プログラムファイルの機械語コードを実行させる第3指令とを備え、
    前記第2指令が、前記プログラムファイルのヘッダの前記アプリケーションIDと前記チェックサムとに前記プロセッサ又は論理回路の論理演算をし、前記プログラムファイルのヘッダのマジックコードと当該論理演算結果とを比較して、一致した際に有効性有りとさせ、
    前記第3指令が、前記有効性有りとされたプログラムファイルの機械語コードを実行させることを特徴とするダウンロードプログラムファイル管理用プログラム。
JP2002372672A 2001-12-28 2002-12-24 移動通信携帯端末及びダウンロードプログラムファイル管理用プログラム Expired - Fee Related JP3824580B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR2001-86661 2001-12-28
KR10-2001-0086661A KR100452343B1 (ko) 2001-12-28 2001-12-28 기계어 코드 실행영역을 포함하는 이동통신 단말기용 파일을 기록하는 저장매체 및 그를 이용한 파일 실행방법

Publications (2)

Publication Number Publication Date
JP2003223329A JP2003223329A (ja) 2003-08-08
JP3824580B2 true JP3824580B2 (ja) 2006-09-20

Family

ID=27656295

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002372672A Expired - Fee Related JP3824580B2 (ja) 2001-12-28 2002-12-24 移動通信携帯端末及びダウンロードプログラムファイル管理用プログラム

Country Status (3)

Country Link
US (1) US7310520B2 (ja)
JP (1) JP3824580B2 (ja)
KR (1) KR100452343B1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018038220A1 (ja) * 2016-08-25 2018-03-01 積水化学工業株式会社 硬化性組成物、硬化物、及び樹脂複合体

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4676724B2 (ja) 2003-08-12 2011-04-27 株式会社リコー 情報処理装置、情報処理方法、情報処理プログラム、及び記録媒体
JP4728611B2 (ja) * 2003-08-12 2011-07-20 株式会社リコー 記憶媒体、記憶装置、情報処理装置、情報処理方法、情報処理プログラム及び記録媒体
KR100697416B1 (ko) * 2003-09-30 2007-03-20 교세라 가부시키가이샤 모바일 통신 단말기, 정보 제공 시스템 및 프로그램을기록한 컴퓨터 판독가능한 기록 매체
KR20050046897A (ko) * 2003-11-14 2005-05-19 주식회사 팬택앤큐리텔 이동 통신 단말기의 수신 데이터 자동 실행 장치 및 방법
KR100668690B1 (ko) * 2004-08-04 2007-01-15 에스케이 텔레콤주식회사 무선 인터넷 플랫폼에서 애플리케이션 프로그램인터페이스 사용을 제한하는 방법 및 시스템
JP2006053848A (ja) * 2004-08-16 2006-02-23 Nec Infrontia Corp 情報処理装置およびプログラム更新方法
JP4722052B2 (ja) * 2004-10-15 2011-07-13 ソフトバンクモバイル株式会社 連係動作方法及び通信端末装置
KR100902662B1 (ko) * 2004-12-30 2009-06-15 삼성전자주식회사 단말용 데이터 포맷을 이용한 통신 제어 시스템 및 그 방법
KR100744476B1 (ko) * 2006-07-06 2007-08-01 삼성전자주식회사 휴대 단말기에서 사용자 데이터 정보 저장 방법 및 장치
DE102006052101A1 (de) * 2006-11-04 2008-05-08 Zf Friedrichshafen Ag Einrichtung zur Kapselung von Kupplungs-Feinstäuben
EP1930808B1 (en) 2006-12-06 2012-11-07 Sercomm Corporation Method for upgrading firmware of multilingual interface
US8429643B2 (en) * 2007-09-05 2013-04-23 Microsoft Corporation Secure upgrade of firmware update in constrained memory
JP5669101B2 (ja) * 2011-03-25 2015-02-12 パナソニックIpマネジメント株式会社 情報処理装置及び情報処理システム
US9088815B2 (en) 2011-11-17 2015-07-21 Tip Solutions, Inc. Message injection system and method
EP2654275A1 (en) * 2012-04-21 2013-10-23 BlackBerry Limited System and method for transmitting application data between two communication devices
JP6241352B2 (ja) * 2014-03-31 2017-12-06 富士通株式会社 コンパイラ、コンパイル方法、およびコンパイル装置
KR102405593B1 (ko) * 2017-08-23 2022-06-08 삼성전자 주식회사 전자 장치 및 그의 데이터 운용 방법
JP7505516B2 (ja) 2022-03-04 2024-06-25 カシオ計算機株式会社 ウェブアプリケーションサーバ、ウェブアプリケーションプログラム及びウェブアプリケーション提供方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU673983B2 (en) * 1992-01-09 1996-12-05 Ge Security, Inc. Secure entry system with radio communication
US6643506B1 (en) * 1996-08-07 2003-11-04 Telxon Corporation Wireless software upgrades with version control
US6421781B1 (en) * 1998-04-30 2002-07-16 Openwave Systems Inc. Method and apparatus for maintaining security in a push server
KR100327234B1 (ko) * 1998-11-18 2002-04-17 윤종용 휴대용 단말기의 데이터 저장 장치 및 방법
US6476828B1 (en) * 1999-05-28 2002-11-05 International Business Machines Corporation Systems, methods and computer program products for building and displaying dynamic graphical user interfaces
CA2327222A1 (en) * 1999-12-03 2001-06-03 Research In Motion Limited Virtual machine web browser
KR100385925B1 (ko) * 2000-05-09 2003-06-02 주식회사 인포핸드 멀티미디어 데이터 처리를 위한 디지털 휴대 전화 단말기 및 멀티미디어 데이터 콘텐츠의 실행 방법과 멀티미디어 데이터 콘텐츠 제공 방법
JP2001318847A (ja) * 2000-05-11 2001-11-16 Sony Corp 更新通知システム、更新監視装置、携帯通信端末、情報処理装置、コンテンツ取得指示方法、コンテンツ取得方法及びプログラム格納媒体
GB2368233B (en) * 2000-08-31 2002-10-16 F Secure Oyj Maintaining virus detection software
US6976075B2 (en) * 2000-12-08 2005-12-13 Clarinet Systems, Inc. System uses communication interface for configuring a simplified single header packet received from a PDA into multiple headers packet before transmitting to destination device
DE10104713A1 (de) * 2001-02-02 2002-08-08 Siemens Ag Verfahren und Vorrichtungen zum Zugreifen auf Nachrichten
US6779045B2 (en) * 2001-03-21 2004-08-17 Intel Corporation System and apparatus for increasing the number of operations per transmission for a media management system
JP2002358720A (ja) * 2001-06-01 2002-12-13 Pioneer Electronic Corp 情報再生装置および情報再生方法
KR100340282B1 (ko) * 2001-07-14 2002-06-14 정광균 휴대용 멀티미디어 단말기 및 그 제어방법
US20030101195A1 (en) * 2001-08-14 2003-05-29 Christian Linhart Symbol repository
US6744753B2 (en) * 2001-11-01 2004-06-01 Nokia Corporation Local service handover
US7136982B2 (en) * 2001-11-09 2006-11-14 Danger, Inc. Apparatus and method for allocating memory blocks
KR100447064B1 (ko) * 2001-11-14 2004-09-04 에스케이텔레텍주식회사 이동통신 단말기용 컨텐츠 프로그램의 응용 프로그래밍 인터페이스의 사용권한 제한방법
KR100848975B1 (ko) * 2001-12-24 2008-07-30 에스케이 텔레콤주식회사 이동통신 단말기에서 무선 인터넷을 이용한 게임 콘텐츠서비스 시스템 및 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018038220A1 (ja) * 2016-08-25 2018-03-01 積水化学工業株式会社 硬化性組成物、硬化物、及び樹脂複合体

Also Published As

Publication number Publication date
JP2003223329A (ja) 2003-08-08
US7310520B2 (en) 2007-12-18
US20030153304A1 (en) 2003-08-14
KR100452343B1 (ko) 2004-10-12
KR20030056446A (ko) 2003-07-04

Similar Documents

Publication Publication Date Title
JP3824580B2 (ja) 移動通信携帯端末及びダウンロードプログラムファイル管理用プログラム
Reijers et al. Efficient code distribution in wireless sensor networks
CN109034814B (zh) 基于以太坊虚拟机的智能合约处理方法和装置
US6983460B1 (en) Method for loading applications into a multiapplication embedded system equipped with data processing resources, corresponding embedded system and execution method
CN105138382B (zh) 一种Android系统升级的方法及终端
CN109614165B (zh) 一种com组件的多版本并行运行方法和装置
CN110597542A (zh) 软件自动ota升级方法及装置、电子设备
CN114341800A (zh) 用于在电子设备中的应用更新之后提高运行时性能的方法和装置
US7197600B2 (en) Transferring data along with code for program overlays
JP2007511816A (ja) 集中daマネージャを用いた動的アドレシング(da)
CN112882732A (zh) 一种软件开发工具包sdk中功能代码的更新方法和装置
JP4724660B2 (ja) 組み込みシステムの中に統合されるソフトウェアコンポーネントを管理する方法
JPH11119981A (ja) プログラム生成装置
JP3757235B2 (ja) ネイティブコンパイル方法、ネイティブコンパイル前処理方法、コンピュータプログラム、サーバ、通信システム、および移動体通信端末装置
JP6560824B2 (ja) セキュアエレメント内のパッケージを管理する方法
CN113946602A (zh) 数据查找方法、装置、设备和介质
CN112732321A (zh) 一种固件修改方法、装置、计算机可读存储介质和设备
JP2007528064A (ja) 無線装置オペレーティング環境における未検証プログラムの実行
CN100470481C (zh) 用于在虚拟机中进行延续传递的方法和设备
CN107844309B (zh) 一种系统数据处理方法及装置
EP1306757A2 (en) Transferring data along with code for program overlays
CN119272279B (zh) 启动防护方法、电子设备、存储介质及计算机程序产品
CN113672238B (zh) 基于实时操作系统模块化管理的运行方法、装置及设备
KR100576967B1 (ko) 자바 스마트 카드
CN118349231A (zh) 工具包获取方法、设备、存储介质及装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051011

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060110

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060113

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060410

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060601

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060627

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20090707

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20100707

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110707

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120707

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20130707

Year of fee payment: 7

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

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees