(57)【特許請求の範囲】
【請求項１】
所定のデータ・サイズ以下で１回のデータ書き換え動作を行う近接通信システムであって、
近接する外部装置からの要求に応じたデータの書き換えを行う１以上のデータ・ブロックと、各データ・ブロック毎に設けられた前記所定のデータ・サイズのＫ分の１（但し、Ｋは２以上の整数）のサイズからなる制御情報とで構成されるメモリ領域と、
前記外部装置からのデータ書き換え要求に応じて該当するデータ・ブロック及びその制御情報の書き換えを制御するデータ書き換え制御部とを備え、
前記制御情報は、対応するデータ・ブロックへのリンク情報並びに後続するデータ・ブロックに対応する制御情報へのリンク情報を持つとともに、対応するデータ・ブロックが使用状態、未使用状態、中間的な状態（書き込み中又は消去可）のうちいずれの状態であるかを示し、
前記データ書き換え制御部は、Ｋ個の制御情報を前記１回のデータ書き換え動作で書き換えが可能であり、前記外部装置からの要求に応じて前記メモリ領域内の未使用状態のデータ・ブロックへの書き換えを行うことに伴って制御情報のデータ書き換え動作を行なう際に、
未使用状態のデータ・ブロックの書き換えに関連する制御情報がＫ個以下であれば該制御情報の書き換えを前記１回のデータ書き換え動作でまとめて行うが、
未使用状態のデータ・ブロックの書き換えに関連する制御情報がＫ個を越えるときには、リンク情報に従って先頭から順にＫ個ずつの制御情報の書き換えを前記１回のデータ書き換え動作で行なうが、ｎ回目の前記１回のデータ書き換え動作では（但し、ｎは１以上の整数）、リンク情報に従って｛（Ｋ−１）×ｎ−（Ｋ−２）｝番目から｛（Ｋ−１）×（ｎ＋１）−（Ｋ−２）｝番目（すなわち｛（Ｋ−１）×ｎ＋１｝番目）までのＫ個以内の制御情報のデータ書き換えを行い、｛（Ｋ−１）×ｎ−（Ｋ−２）｝番目から（Ｋ−１）×ｎ番目までの（Ｋ−１）個の制御情報に正しいリンク情報を書き込むとともに、｛（Ｋ−１）×（ｎ＋１）−（Ｋ−２）｝番目の制御情報にヌルを書き込み、
これらのデータ書き換えの際に、リンクの先頭となる制御情報を中間的な状態にし、以降の制御情報をすべて使用状態に書き換える、
ことを特徴とする近接通信システム。
【請求項２】
前記メモリ領域は、先頭の制御情報に対するリンク情報を含んだブートストラップをさらに備える、
ことを特徴とする請求項１に記載の近接通信システム。
【請求項３】
少なくとも一部のデータ・ブロックは、関連するデータ・ブロックについての制御情報へのリンク情報を持つ、
ことを特徴とする請求項１に記載の近接通信システム。
【請求項４】
前記データ書き換え制御部は、前記ブートストラップからリンクされているデータ・ブロック群についてのデータ書き換え要求に応答して、
新しく書き込みを行うことができる容量を持った未使用状態のデータ・ブロック群を探索し、
該探索されたデータ・ブロック群の先頭に相当する制御情報を未使用状態から書き込み中に変更し、それ以外のデータ・ブロックの制御情報を使用状態に変更するとともに、先頭のデータ・ブロックから順次データ・ブロックをたどれるように各制御情報間にリンクを形成するために前記の制御情報のデータ書き換え動作を実行し、
書き換え要求されているデータを各制御情報間に形成されたリンクをたどりながら該探索されたデータ・ブロック群に書き込み、
該探索されたデータ・ブロック群の先頭の制御情報を書き込み中から使用状態に変更し、以前のデータ・ブロック群の先頭の制御情報を使用状態から消去可に変更するとともに、前記ブートストラップからのリンクを該探索されたデータ・ブロック群の先頭の制御情報を指すように変更するために前記の制御情報のデータ書き換え動作を実行し、
消去可を示す制御情報及びそこからリンクされたすべての制御情報を未使用状態に変更するために前記の制御情報のデータ書き換え動作を実行する、
ことを特徴とする請求項２に記載の近接通信システム。
【請求項５】
前記データ書き換え制御部は、他のデータ・ブロックからリンクされているデータ・ブロック群についてのデータ書き換え要求に応答して、
新しく書き込みを行うことができる容量を持った未使用状態のデータ・ブロック群を探索し、
該探索されたデータ・ブロック群の先頭に相当する制御情報を未使用状態から書き込み中に変更し、それ以外のデータ・ブロックの制御情報を使用状態に変更するとともに、先頭のデータ・ブロックから順次データ・ブロックをたどれるように各制御情報間にリンクを形成するために前記の制御情報のデータ書き換え動作を実行し、
書き換え要求されているデータを各制御情報間に形成されたリンクをたどりながら該探索されたデータ・ブロック群に書き込み、
該探索されたデータ・ブロック群の先頭の制御情報と以前のデータ・ブロック群の先頭の制御情報とを入れ替えるとともに、該探索されたデータ・ブロック群の先頭の制御情報を書き込み中から使用状態に変更し、以前のデータ・ブロック群の先頭の制御情報を使用状態から消去可に変更するために前記の制御情報のデータ書き換え動作を実行し、
消去可を示す制御情報及びそこからリンクされたすべての制御情報を未使用状態に変更するために前記の制御情報のデータ書き換え動作を実行する、
ことを特徴とする請求項３に記載の近接通信システム。
【請求項６】
前記データ書き換え制御部は、消去可を示す制御情報及びそこからリンクされたすべての制御情報を未使用状態に変更するという一連の制御情報の書き換えを行う際、
書き換える制御情報がＫ個以下であればその書き換え動作を前記１回のデータ書き換え動作でまとめて行うが、
書き換える制御情報がＫ個を越えるときには、リンク情報に従って先頭から順にＫ個ずつの制御情報の書き換えを前記１回のデータ書き換え動作で行なうが、ｎ回目の前記１回のデータ書き換え動作では、リンク情報に従って｛（Ｋ−１）×ｎ−（Ｋ−２）｝番目から｛（Ｋ−１）×（ｎ＋１）−（Ｋ−２）｝番目（すなわち｛（Ｋ−１）×ｎ＋１｝番目）までのＫ個以内の制御情報のデータ書き換えを行い、この際に、｛（Ｋ−１）×ｎ−（Ｋ−２）｝番目から（Ｋ−１）×ｎ番目までの制御情報を未使用状態にするとともに｛（Ｋ−１）×ｎ＋１｝番目の制御情報を消去可にする、
ことを特徴とする請求項４又は５のいずれかに記載の近接通信システム。
【請求項７】
所定のデータ・サイズ以下で１回のデータ書き換え動作を行う近接通信システムにおいて、近接する外部装置からの要求に応じてメモリ領域に対するデータの書き換えを行う近接通信方法であって、
前記メモリ領域は、外部装置からの要求に応じたデータの書き換えを行う１以上のデータ・ブロックと、各データ・ブロック毎に設けられた前記所定のデータ・サイズのＫ分の１（但し、Ｋは２以上の整数）のサイズからなる制御情報とで構成され、
前記制御情報は、対応するデータ・ブロックへのリンク情報並びに後続するデータ・ブロックに対応する制御情報へのリンク情報を持つとともに、対応するデータ・ブロックが使用状態、未使用状態、中間的な状態（書き込み中又は消去可）のうちいずれの状態であるかを示し、
前記外部装置からの要求に応じて前記メモリ領域内の未使用状態のデータ・ブロックへの書き換えを行うことに伴って制御情報のデータ書き換え動作を行なう際に、
未使用状態のデータ・ブロックの書き換えに関連する制御情報がＫ個以下であるときに、該制御情報の書き換えを前記所定のデータ・サイズ以下の１回のデータ書き換え動作でまとめて行う第１の制御情報書き換えステップと、
未使用状態のデータ・ブロックの書き換えに関連する制御情報がＫ個を越えるときに、リンク情報に従って先頭から順にＫ個ずつの制御情報の書き換えを前記１回のデータ書き換え動作で行なうが、ｎ回目の前記１回のデータ書き換え動作では（但し、ｎは１以上の整数）、リンク情報に従って｛（Ｋ−１）×ｎ−（Ｋ−２）｝番目から｛（Ｋ−１）×（ｎ＋１）−（Ｋ−２）｝番目（すなわち｛（Ｋ−１）×ｎ＋１｝番目）までのＫ個以内の制御情報のデータ書き換えを行う第２の制御情報書き換えステップを備え、
いずれの制御情報書き換えステップにおいても、リンクの先頭となる制御情報を中間的な状態にし、以降の制御情報をすべて使用状態に書き換える、
ことを特徴とする近接通信方法。
【請求項８】
前記メモリ領域は、先頭の制御情報に対するリンク情報を含んだブートストラップをさらに備える、
ことを特徴とする請求項７に記載の近接通信方法。
【請求項９】
少なくとも一部のデータ・ブロックは、関連するデータ・ブロックについての制御情報へのリンク情報を持つ、
ことを特徴とする請求項７に記載の近接通信方法。
【請求項１０】
前記外部装置からの要求に応じて前記メモリ領域内のデータの書き換えを行う際に、
前記ブートストラップからリンクされているデータ・ブロック群についてのデータ書き換え要求に応答して、新しく書き込みを行うことができる容量を持った未使用状態のデータ・ブロック群を探索するサブステップと、
該探索されたデータ・ブロック群の先頭に相当する制御情報を未使用状態から書き込み中に変更し、それ以外のデータ・ブロックの制御情報を使用状態に変更するとともに、先頭のデータ・ブロックから順次データ・ブロックをたどれるように各制御情報間にリンクを形成するための制御情報のデータ書き換え動作を、制御情報の個数に応じて前記第１又は第２の制御情報書き換えステップに基づいて実行するサブステップと、
書き換え要求されているデータを各制御情報間に形成されたリンクをたどりながら該探索されたデータ・ブロック群に書き込むサブステップと、
該探索されたデータ・ブロック群の先頭の制御情報を書き込み中から使用状態に変更し、以前のデータ・ブロック群の先頭の制御情報を使用状態から消去可に変更するとともに、前記ブートストラップからのリンクを該探索されたデータ・ブロック群の先頭の制御情報を指すように変更するための制御情報のデータ書き換え動作を、制御情報の個数に応じて前記第１又は第２の制御情報書き換えステップに基づいて実行するサブステップと、
消去可を示す制御情報及びそこからリンクされたすべての制御情報を未使用状態に変更するための制御情報のデータ書き換え動作を、制御情報の個数に応じて前記第１又は第２の制御情報書き換えステップに基づいて実行するサブステップと、
を備えることを特徴とする請求項８に記載の近接通信方法。
【請求項１１】
前記外部装置からの要求に応じて前記メモリ領域内のデータの書き換えを行う際に、
他のデータ・ブロックからリンクされているデータ・ブロック群についてのデータ書き換え要求に応答して、新しく書き込みを行うことができる容量を持った未使用状態のデータ・ブロック群を探索するサブステップと、
該探索されたデータ・ブロック群の先頭に相当する制御情報を未使用状態から書き込み中に変更し、それ以外のデータ・ブロックの制御情報を使用状態に変更するとともに、先頭のデータ・ブロックから順次データ・ブロックをたどれるように各制御情報間にリンクを形成するための制御情報のデータ書き換え動作を、制御情報の個数に応じて前記第１又は第２の制御情報書き換えステップに基づいて実行するサブステップと、
書き換え要求されているデータを各制御情報間に形成されたリンクをたどりながら該探索されたデータ・ブロック群に書き込むサブステップと、
該探索されたデータ・ブロック群の先頭の制御情報と以前のデータ・ブロック群の先頭の制御情報とを入れ替えるとともに、該探索されたデータ・ブロック群の先頭の制御情報を書き込み中から使用状態に変更し、以前のデータ・ブロック群の先頭の制御情報を使用状態から消去可に変更するための制御情報のデータ書き換え動作を、制御情報の個数に応じて前記第１又は第２の制御情報書き換えステップに基づいて実行するサブステップと、
消去可を示す制御情報及びそこからリンクされたすべての制御情報を未使用状態に変更するための制御情報のデータ書き換え動作を、制御情報の個数に応じて前記第１又は第２の制御情報書き換えステップに基づいて実行するサブステップと、
を備えることを特徴とする請求項９に記載の近接通信方法。
【請求項１２】
消去可を示す制御情報及びそこからリンクされたすべての制御情報を未使用状態に変更するという一連の制御情報の書き換えを行う際、
書き換える制御情報がＫ個以下であればその書き換え動作を前記１回のデータ書き換え動作でまとめて行うが、
書き換える制御情報がＫ個を越えるときには、リンク情報に従って先頭から順にＫ個ずつの制御情報の書き換えを前記１回のデータ書き換え動作で行なうが、ｎ回目の前記１回のデータ書き換え動作では、リンク情報に従って｛（Ｋ−１）×ｎ−（Ｋ−２）｝番目から｛（Ｋ−１）×（ｎ＋１）−（Ｋ−２）｝番目（すなわち｛（Ｋ−１）×ｎ＋１｝番目）までのＫ個以内の制御情報のデータ書き換えを行い、この際に、｛（Ｋ−１）×ｎ−（Ｋ−２）｝番目から（Ｋ−１）×ｎ番目までの制御情報を未使用状態にするとともに｛（Ｋ−１）×ｎ＋１｝番目の制御情報を消去可にする、
ことを特徴とする請求項１０又は１１のいずれかに記載の近接通信方法。
【請求項１３】
所定のデータ・サイズ以下で１回のデータ書き換え動作を行うシステムにおいて、メモリ領域上のデータを管理するためのデータ管理装置であって、
前記メモリ領域は、データの書き換えを行う１以上のデータ・ブロックと、各データ・ブロック毎に設けられた前記所定のデータ・サイズのＫ分の１（但し、Ｋは２以上の整数）のサイズからなる制御情報とで構成され、
前記制御情報は、対応するデータ・ブロックへのリンク情報並びに後続するデータ・ブロックに対応する制御情報へのリンク情報を持つとともに、対応するデータ・ブロックが使用状態、未使用状態、中間的な状態（書き込み中又は消去可）のうちいずれの状態であるかを示し、
前記システムのメモリ領域に、ユーザ・データを書き込むための１以上のデータ・ブロックと、各データ・ブロックを管理するための制御情報を設ける手段と、
データ・ブロックの書き換えに関連する制御情報がＫ個以下であるときに、該制御情報の書き換えを前記１回のデータ書き換え動作でまとめて行う第１の制御情報書き換え手段と、
データ・ブロックの書き換えに関連する制御情報がＫ個を越えるときに、リンク情報に従って先頭から順にＫ個ずつの制御情報の書き換えを前記１回のデータ書き換え動作で行なうが、ｎ回目の前記１回のデータ書き換え動作では（但し、ｎは１以上の整数）、リンク情報に従って｛（Ｋ−１）×ｎ−（Ｋ−２）｝番目から｛（Ｋ−１）×（ｎ＋１）−（Ｋ−２）｝番目（すなわち｛（Ｋ−１）×ｎ＋１｝番目）までのＫ個以内の制御情報のデータ書き換えを行い、｛（Ｋ−１）×ｎ−（Ｋ−２）｝番目から（Ｋ−１）×ｎ番目までの（Ｋ−１）個の制御情報に正しいリンク情報を書き込むとともに、｛（Ｋ−１）×（ｎ＋１）−（Ｋ−２）｝番目の制御情報にヌルを書き込む第２の制御情報書き換え動作手段を備え、
前記第１及び第２の制御情報書き換え手段は、リンクの先頭となる制御情報を中間的な状態にし、以降の制御情報をすべて使用状態に書き換える、
ことを特徴とするデータ管理装置。
【請求項１４】
前記メモリ領域は、先頭の制御情報に対するリンク情報を含んだブートストラップをさらに備える、
ことを特徴とする請求項１３に記載のデータ管理装置。
【請求項１５】
少なくとも一部のデータ・ブロックは、関連するデータ・ブロックについての制御情報へのリンク情報を持つ、
ことを特徴とする請求項１３に記載のデータ管理装置。
【請求項１６】
前記ブートストラップからリンクされているデータ・ブロック群についてのデータ書き換え要求に応答して、
新しく書き込みを行うことができる容量を持った未使用状態のデータ・ブロック群を探索し、
該探索されたデータ・ブロック群の先頭に相当する制御情報を未使用状態から書き込み中に変更し、それ以外のデータ・ブロックの制御情報を使用状態に変更するとともに、先頭のデータ・ブロックから順次データ・ブロックをたどれるように各制御情報間にリンクを形成するための制御情報のデータ書き換え動作を、制御情報の個数に応じて前記第１又は第２の制御情報書き換え手段によって実行し、
書き換え要求されているデータを各制御情報間に形成されたリンクをたどりながら該探索されたデータ・ブロック群に書き込み、
該探索されたデータ・ブロック群の先頭の制御情報を書き込み中から使用状態に変更し、以前のデータ・ブロック群の先頭の制御情報を使用状態から消去可に変更するとともに、前記ブートストラップからのリンクを該探索されたデータ・ブロック群の先頭の制御情報を指すように変更するための制御情報のデータ書き換え動作を、制御情報の個数に応じて前記第１又は第２の制御情報書き換え手段によって実行し、
消去可を示す制御情報及びそこからリンクされたすべての制御情報を未使用状態に変更するための制御情報のデータ書き換え動作を、制御情報の個数に応じて前記第１又は第２の制御情報書き換え手段によって実行する、
ことを特徴とする請求項１４に記載のデータ管理装置。
【請求項１７】
他のデータ・ブロックからリンクされているデータ・ブロック群についてのデータ書き換え要求に応答して、
新しく書き込みを行うことができる容量を持った未使用状態のデータ・ブロック群を探索し、
該探索されたデータ・ブロック群の先頭に相当する制御情報を未使用状態から書き込み中に変更し、それ以外のデータ・ブロックの制御情報を使用状態に変更するとともに、先頭のデータ・ブロックから順次データ・ブロックをたどれるように各制御情報間にリンクを形成するための制御情報のデータ書き換え動作を、制御情報の個数に応じて前記第１又は第２の制御情報書き換え手段によって実行し、
書き換え要求されているデータを各制御情報間に形成されたリンクをたどりながら該探索されたデータ・ブロック群に書き込み、
該探索されたデータ・ブロック群の先頭の制御情報と以前のデータ・ブロック群の先頭の制御情報とを入れ替えるとともに、該探索されたデータ・ブロック群の先頭の制御情報を書き込み中から使用状態に変更し、以前のデータ・ブロック群の先頭の制御情報を使用状態から消去可に変更するための制御情報のデータ書き換え動作を、制御情報の個数に応じて前記第１又は第２の制御情報書き換え手段によって実行し、
消去可を示す制御情報及びそこからリンクされたすべての制御情報を未使用状態に変更するための制御情報のデータ書き換え動作を、制御情報の個数に応じて前記第１又は第２の制御情報書き換え手段によって実行する、
ことを特徴とする請求項１５に記載のデータ管理装置。
【請求項１８】
消去可を示す制御情報及びそこからリンクされたすべての制御情報を未使用状態に変更するという一連の制御情報の書き換えを行う際、
書き換える制御情報がＫ個以下であればその書き換え動作を前記所定のデータ・サイズ以下の１回のデータ書き換え動作でまとめて行うが、
書き換える制御情報がＫ個を越えるときには、リンク情報に従って先頭から順にＫ個ずつの制御情報の書き換えを前記１回のデータ書き換え動作で行なうが、ｎ回目の前記１回のデータ書き換え動作では、リンク情報に従って｛（Ｋ−１）×ｎ−（Ｋ−２）｝番目から｛（Ｋ−１）×（ｎ＋１）−（Ｋ−２）｝番目（すなわち｛（Ｋ−１）×ｎ＋１｝番目）までのＫ個以内の制御情報のデータ書き換えを行い、この際に、｛（Ｋ−１）×ｎ−（Ｋ−２）｝番目から（Ｋ−１）×ｎ番目までの制御情報を未使用状態にするとともに｛（Ｋ−１）×ｎ＋１｝番目の制御情報を消去可にする、
ことを特徴とする請求項１６又は１７のいずれかに記載のデータ管理装置。
【請求項１９】
所定のデータ・サイズ以下で１回のデータ書き換え動作を行うるシステムにおいて、メモリ領域上のデータを管理するためのデータ管理方法であって、
前記メモリ領域は、データの書き換えを行う１以上のデータ・ブロックと、各データ・ブロック毎に設けられた前記所定のデータ・サイズのＫ分の１（但し、Ｋは２以上の整数）のサイズからなる制御情報とで構成され、
前記制御情報は、対応するデータ・ブロックへのリンク情報並びに後続するデータ・ブロックに対応する制御情報へのリンク情報を持つとともに、対応するデータ・ブロックが使用状態、未使用状態、中間的な状態（書き込み中又は消去可）のうちいずれの状態であるかを示し、
前記システムのメモリ領域に、ユーザ・データを書き込むための１以上のデータ・ブロックと、各データ・ブロックを管理するための制御情報を設けるステップと、
データ・ブロックの書き換えに関連する制御情報がＫ個以下であるときに、該制御情報の書き換えを前記１回のデータ書き換え動作でまとめて行う第１の制御情報書き換えステップと、
データ・ブロックの書き換えに関連する制御情報がＫ個を越えるときに、リンク情報に従って先頭から順にＫ個ずつの制御情報の書き換えを前記１回のデータ書き換え動作で行なうが、ｎ回目の前記１回のデータ書き換え動作では（但し、ｎは１以上の整数）、リンク情報に従って｛（Ｋ−１）×ｎ−（Ｋ−２）｝番目から｛（Ｋ−１）×（ｎ＋１）−（Ｋ−２）｝番目（すなわち｛（Ｋ−１）×ｎ＋１｝番目）までのＫ個以内の制御情報のデータ書き換えを行い、｛（Ｋ−１）×ｎ−（Ｋ−２）｝番目から（Ｋ−１）×ｎ番目までの（Ｋ−１）個の制御情報に正しいリンク情報を書き込むとともに、｛（Ｋ−１）×（ｎ＋１）−（Ｋ−２）｝番目の制御情報にヌルを書き込む第２の制御情報書き換えステップを備え、
前記第１及び第２の制御情報書き換えステップでは、リンクの先頭となる制御情報を中間的な状態にし、以降の制御情報をすべて使用状態に書き換える、
ことを特徴とするデータ管理方法。
【請求項２０】
前記メモリ領域は、先頭の制御情報に対するリンク情報を含んだブートストラップをさらに備える、
ことを特徴とする請求項１９に記載のデータ管理方法。
【請求項２１】
少なくとも一部のデータ・ブロックは、関連するデータ・ブロックについての制御情報へのリンク情報を持つ、
ことを特徴とする請求項１９に記載のデータ管理方法。
【請求項２２】
前記ブートストラップからリンクされているデータ・ブロック群についてのデータ書き換え要求に応答して、新しく書き込みを行うことができる容量を持った未使用状態のデータ・ブロック群を探索するステップと、
該探索されたデータ・ブロック群の先頭に相当する制御情報を未使用状態から書き込み中に変更し、それ以外のデータ・ブロックの制御情報を使用状態に変更するとともに、先頭のデータ・ブロックから順次データ・ブロックをたどれるように各制御情報間にリンクを形成するための制御情報のデータ書き換え動作を、制御情報の個数に応じて前記第１又は第２の制御情報書き換えステップによって実行するステップと、
書き換え要求されているデータを各制御情報間に形成されたリンクをたどりながら該探索されたデータ・ブロック群に書き込むステップと、
該探索されたデータ・ブロック群の先頭の制御情報を書き込み中から使用状態に変更し、以前のデータ・ブロック群の先頭の制御情報を使用状態から消去可に変更するとともに、前記ブートストラップからのリンクを該探索されたデータ・ブロック群の先頭の制御情報を指すように変更するための制御情報のデータ書き換え動作を、制御情報の個数に応じて前記第１又は第２の制御情報書き換えステップによって実行するステップと、
消去可を示す制御情報及びそこからリンクされたすべての制御情報を未使用状態に変更するための制御情報のデータ書き換え動作を、制御情報の個数に応じて前記第１又は第２の制御情報書き換えステップによって実行するステップと、
を備えることを特徴とする請求項２０に記載のデータ管理方法。
【請求項２３】
他のデータ・ブロックからリンクされているデータ・ブロック群についてのデータ書き換え要求に応答して、新しく書き込みを行うことができる容量を持った未使用状態のデータ・ブロック群を探索するステップと、
該探索されたデータ・ブロック群の先頭に相当する制御情報を未使用状態から書き込み中に変更し、それ以外のデータ・ブロックの制御情報を使用状態に変更するとともに、先頭のデータ・ブロックから順次データ・ブロックをたどれるように各制御情報間にリンクを形成するための制御情報のデータ書き換え動作を、制御情報の個数に応じて前記第１又は第２の制御情報書き換えステップによって実行するステップと、
書き換え要求されているデータを各制御情報間に形成されたリンクをたどりながら該探索されたデータ・ブロック群に書き込むステップと、
該探索されたデータ・ブロック群の先頭の制御情報と以前のデータ・ブロック群の先頭の制御情報とを入れ替えるとともに、該探索されたデータ・ブロック群の先頭の制御情報を書き込み中から使用状態に変更し、以前のデータ・ブロック群の先頭の制御情報を使用状態から消去可に変更するための制御情報のデータ書き換え動作を、制御情報の個数に応じて前記第１又は第２の制御情報書き換えステップによって実行するステップと、
消去可を示す制御情報及びそこからリンクされたすべての制御情報を未使用状態に変更するための制御情報のデータ書き換え動作を、制御情報の個数に応じて前記第１又は第２の制御情報書き換えステップによって実行するステップと、
を備えることを特徴とする請求項２１に記載のデータ管理方法。
【請求項２４】
前記のメモリ領域のデータ書き換え動作を行うステップでは、消去可を示す制御情報及びそこからリンクされたすべての制御情報を未使用状態に変更するという一連の制御情報の書き換えを行うステップにおいて、
書き換える制御情報がＫ個以下であればその書き換え動作を前記１回のデータ書き換え動作でまとめて行うサブステップと、
書き換える制御情報がＫ個を越えるときには、リンク情報に従って先頭から順にＫ個ずつの制御情報の書き換えを前記１回のデータ書き換え動作で行なうが、ｎ回目の前記１回のデータ書き換え動作では、リンク情報に従って｛（Ｋ−１）×ｎ−（Ｋ−２）｝番目から｛（Ｋ−１）×（ｎ＋１）−（Ｋ−２）｝番目（すなわち｛（Ｋ−１）×ｎ＋１｝番目）までのＫ個以内の制御情報のデータ書き換えを行い、この際に、｛（Ｋ−１）×ｎ−（Ｋ−２）｝番目から（Ｋ−１）×ｎ番目までの制御情報を未使用状態にするとともに｛（Ｋ−１）×ｎ＋１｝番目の制御情報を消去可にするサブステップと、
をさらに備えることを特徴とする請求項２２又は２３のいずれかに記載のデータ管理方法。
【請求項２５】
所定のデータ・サイズ以下で１回のデータ書き換え動作を行う近接通信システムにおいて、近接する外部装置からの要求に応じてメモリ領域に対するデータの書き換えを行うための処理をコンピュータ・システム上で実行するように記述されたコンピュータ・ソフトウェアをコンピュータ可読形式で物理的に格納した記憶媒体であって、
前記メモリ領域は、外部装置からの要求に応じたデータの書き換えを行う１以上のデータ・ブロックと、各データ・ブロック毎に設けられた前記所定のデータ・サイズのＫ分の１（但し、Ｋは２以上の整数）のサイズからなる制御情報とで構成され、
前記制御情報は、対応するデータ・ブロックへのリンク情報並びに後続するデータ・ブロックに対応する制御情報へのリンク情報を持つとともに、対応するデータ・ブロックが使用状態、未使用状態、中間的な状態（書き込み中又は消去可）のうちいずれの状態であるかを示し、
前記コンピュータ・ソフトウェアは前記コンピュータ・システムに対し、前記外部装置からの要求に応じて前記メモリ領域内のデータの書き換えを行う際に、
未使用状態のデータ・ブロックの書き換えに関連する制御情報がＫ個以下であるときに、該制御情報の書き換えを前記所定のデータ・サイズ以下の１回のデータ書き換え動作でまとめて行う第１の制御情報書き換え手順と、
未使用状態のデータ・ブロックの書き換えに関連する制御情報がＫ個を越えるときに、リンク情報に従って先頭から順にＫ個ずつの制御情報の書き換えを前記１回のデータ書き換え動作で行なうが、ｎ回目の前記１回のデータ書き換え動作では（但し、ｎは１以上の整数）、リンク情報に従って｛（Ｋ−１）×ｎ−（Ｋ−２）｝番目から｛（Ｋ−１）×（ｎ＋１）−（Ｋ−２）｝番目（すなわち｛（Ｋ−１）×ｎ＋１｝番目）までのＫ個以内の制御情報のデータ書き換えを行う第２の制御情報書き換え手順を実行させ、
いずれの制御情報書き換え手順においても、リンクの先頭となる制御情報を中間的な状態にし、以降の制御情報をすべて使用状態に書き換える、
ことを特徴とする記憶媒体。
【請求項２６】
所定のデータ・サイズ以下で１回のデータ書き換え動作を行うシステムにおいて、メモリ領域上のデータを管理するためのデータ管理をコンピュータ・システム上で実行するように記述されたコンピュータ・ソフトウェアをコンピュータ可読形式で物理的に格納した記憶媒体であって、
前記メモリ領域は、データの書き換えを行う１以上のデータ・ブロックと、各データ・ブロック毎に設けられた前記所定のデータ・サイズのＫ分の１（但し、Ｋは２以上の整数）のサイズからなる制御情報とで構成され、
前記制御情報は、対応するデータ・ブロックへのリンク情報並びに後続するデータ・ブロックに対応する制御情報へのリンク情報を持つとともに、対応するデータ・ブロックが使用状態、未使用状態、中間的な状態（書き込み中又は消去可）のうちいずれの状態であるかを示し、
前記コンピュータ・ソフトウェアは前記コンピュータ・システムに対し、
前記システムのメモリ領域に、ユーザ・データを書き込むための１以上のデータ・ブロックと、各データ・ブロックを管理するための制御情報を設ける手順と、
未使用状態のデータ・ブロックの書き換えに関連する制御情報がＫ個以下であるときに、該制御情報の書き換えを前記所定のデータ・サイズ以下の１回のデータ書き換え動作でまとめて行う第１の制御情報書き換え手順と、
未使用状態のデータ・ブロックの書き換えに関連する制御情報がＫ個を越えるときに、リンク情報に従って先頭から順にＫ個ずつの制御情報の書き換えを前記１回のデータ書き換え動作で行なうが、ｎ回目の前記１回のデータ書き換え動作では（但し、ｎは１以上の整数）、リンク情報に従って｛（Ｋ−１）×ｎ−（Ｋ−２）｝番目から｛（Ｋ−１）×（ｎ＋１）−（Ｋ−２）｝番目（すなわち｛（Ｋ−１）×ｎ＋１｝番目）までのＫ個以内の制御情報のデータ書き換えを行う第２の制御情報書き換え手順を実行させ、
いずれの制御情報書き換え手順においても、リンクの先頭となる制御情報を中間的な状態にし、以降の制御情報をすべて使用状態に書き換える、
ことを特徴とする記憶媒体。
【請求項２７】
所定のデータ・サイズ以下で１回のデータ書き換え動作を行う近接通信システムにおいて、近接する外部装置からの要求に応じてメモリ領域に対するデータの書き換えを行うための処理をコンピュータ・システム上で実行するように記述されたコンピュータ・プログラムであって、
前記メモリ領域は、外部装置からの要求に応じたデータの書き換えを行う１以上のデータ・ブロックと、各データ・ブロック毎に設けられた前記所定のデータ・サイズのＫ分の１（但し、Ｋは２以上の整数）のサイズからなる制御情報とで構成され、
前記制御情報は、対応するデータ・ブロックへのリンク情報並びに後続するデータ・ブロックに対応する制御情報へのリンク情報を持つとともに、対応するデータ・ブロックが使用状態、未使用状態、中間的な状態（書き込み中又は消去可）のうちいずれの状態であるかを示し、
前記コンピュータ・ソフトウェアは前記コンピュータ・システムに対し、前記外部装置からの要求に応じて前記メモリ領域内のデータの書き換えを行う際に、
未使用状態のデータ・ブロックの書き換えに関連する制御情報がＫ個以下であるときに、該制御情報の書き換えを前記所定のデータ・サイズ以下の１回のデータ書き換え動作でまとめて行う第１の制御情報書き換え手順と、
未使用状態のデータ・ブロックの書き換えに関連する制御情報がＫ個を越えるときに、リンク情報に従って先頭から順にＫ個ずつの制御情報の書き換えを前記１回のデータ書き換え動作で行なうが、ｎ回目の前記１回のデータ書き換え動作では（但し、ｎは１以上の整数）、リンク情報に従って｛（Ｋ−１）×ｎ−（Ｋ−２）｝番目から｛（Ｋ−１）×（ｎ＋１）−（Ｋ−２）｝番目（すなわち｛（Ｋ−１）×ｎ＋１｝番目）までのＫ個以内の制御情報のデータ書き換えを行う第２の制御情報書き換え手順を実行させ、
いずれの制御情報書き換え手順においても、リンクの先頭となる制御情報を中間的な状態にし、以降の制御情報をすべて使用状態に書き換える、
ことを特徴とするコンピュータ・プログラム。
【請求項２８】
所定のデータ・サイズ以下で１回のデータ書き換え動作を行うシステムにおいて、メモリ領域上のデータを管理するためのデータ管理をコンピュータ・システム上で実行するように記述されたコンピュータ・プログラムであって、
前記メモリ領域は、データの書き換えを行う１以上のデータ・ブロックと、各データ・ブロック毎に設けられた前記所定のデータ・サイズのＫ分の１（但し、Ｋは２以上の整数）のサイズからなる制御情報とで構成され、
前記制御情報は、対応するデータ・ブロックへのリンク情報並びに後続するデータ・ブロックに対応する制御情報へのリンク情報を持つとともに、対応するデータ・ブロックが使用状態、未使用状態、中間的な状態（書き込み中又は消去可）のうちいずれの状態であるかを示し、
前記コンピュータ・ソフトウェアは前記コンピュータ・システムに対し、
前記システムのメモリ領域に、ユーザ・データを書き込むための１以上のデータ・ブロックと、各データ・ブロックを管理するための制御情報を設ける手順と、
未使用状態のデータ・ブロックの書き換えに関連する制御情報がＫ個以下であるときに、該制御情報の書き換えを前記所定のデータ・サイズ以下の１回のデータ書き換え動作でまとめて行う第１の制御情報書き換え手順と、
未使用状態のデータ・ブロックの書き換えに関連する制御情報がＫ個を越えるときに、リンク情報に従って先頭から順にＫ個ずつの制御情報の書き換えを前記１回のデータ書き換え動作で行なうが、ｎ回目の前記１回のデータ書き換え動作では（但し、ｎは１以上の整数）、リンク情報に従って｛（Ｋ−１）×ｎ−（Ｋ−２）｝番目から｛（Ｋ−１）×（ｎ＋１）−（Ｋ−２）｝番目（すなわち｛（Ｋ−１）×ｎ＋１｝番目）までのＫ個以内の制御情報のデータ書き換えを行う第２の制御情報書き換え手順を実行させ、
いずれの制御情報書き換え手順においても、リンクの先頭となる制御情報を中間的な状態にし、以降の制御情報をすべて使用状態に書き換える、
ことを特徴とするコンピュータ・プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、局所において適用される非接触・近接通信システムに係り、特に、非接触ＩＣカード技術に代表される、ユーザが物理的に近接通信を行うデバイスどうしを近づけることにより少なくとも一方の機器が相手のデバイスを発見して自動的に動作する近接通信システムに関する。
【０００２】
さらに詳しくは、本発明は、ユーザがデバイスどうしを物理的に近づけることにより自動的に動作するとともに、ユーザがデバイスどうしを引き離して任意のタイミングでデバイス間の通信が途絶しても動作を保証する近接通信システム及び近接通信方法、データ管理装置及びデータ管理方法、記憶媒体、並びにコンピュータ・プログラムに係り、特に、所定以上の大きさのデータを書き込む際に任意のタイミングでデバイス間通信が途絶しても、データの整合性を保証する近接通信システム及び近接通信方法、データ管理装置及びデータ管理方法、記憶媒体、並びにコンピュータ・プログラムに関する。
【０００３】
【従来の技術】
局所でのみ適用可能な無線通信手段の一例として、非接触ＩＣカードを挙げることができる。
【０００４】
この種の無線通信には、例えば電磁誘導の原理に基づいて実現される。すなわち、無線通信システムは、メモリ機能を有するＩＣカードと、ＩＣカードのメモリに対して読み書きアクセスをするカード・リーダ／ライタで構成され、カード・リーダ／ライタ側のアンテナとＩＣカード側のループ・コイルが系としては１個のトランスを形成している。
【０００５】
カード・リーダ／ライタ側では、アンテナに流す電流を変調することで、ＩＣカード上のループ・コイルの誘起電圧が変調を受けるという作用により、カード・リーダ／ライタからＩＣカードへのデータ送信を行うことができる。また、ＩＣカードは、ループ・コイルの端子間の負荷変動により、ＩＣカード・リーダ／ライタ側のアンテナ端子間のインピーダンスが変化してアンテナの通過電流や電圧が変動するという作用により、カード・リーダ／ライタへの返信を行なう。
【０００６】
ＩＣカードに代表される非接触・近接通信システムは、操作上の手軽さから、広範に普及している。例えば、暗証コードやその他の個人認証情報、電子チケットなどの価値情報などをＩＣカードに格納しておくことにより、キャッシュ・ディスペンサやコンサート会場の出入口、駅の改札口などに設置されたカード・リーダ／ライタは、利用者がかざしたＩＣカードに非接触でアクセスして、認証処理を行なうことができる。
【０００７】
最近では、微細化技術の向上とも相俟って、比較的大容量のメモリ空間を持つＩＣカードが出現している。大容量メモリ付きのＩＣカードによれば、複数のアプリケーション（又はサービス）を同時に格納しておくことができるので、１枚のＩＣカードを複数の用途に利用することができる。例えば、１枚のＩＣカード上に、電子決済を行なうための電子マネーや、特定のコンサート会場に入場するための電子チケットなど、多数のサービスを格納しておくことにより、１枚のＩＣカードをさまざまな用途に適用させることができる。
【０００８】
さらに、各デバイスにＩＣカード及びカード・リーダ／ライタ双方の機能を装備することにより、ＩＣカード技術を汎用性のある双方向の近接通信インターフェースとして利用することができる。
【０００９】
例えば、コンピュータや情報家電機器のような機器どうしで近接通信システムが構成される場合には、通信は一対一で行われる。また、ある機器が非接触ＩＣカードのような機器以外の相手デバイス（カードと呼ぶ）と通信することも可能であり、この場合においては、１つの機器と複数のカードにおける一対多の通信を行うアプリケーションも考えられる。
【００１０】
このような近接通信システムでは、ユーザが物理的に近接通信を行うデバイスどうしを近づけることにより、少なくとも一方の機器は相手のデバイスを発見して自動的に動作を開始することができる。しかし、逆にデバイス間の距離が離れた場合、任意の時点で通信が途絶する。このため、任意のタイミングでユーザがデバイス同士を引き離すという状況においてもシステムが破綻しないような動作保証機構が必要となる。
【００１１】
既存の近接通信システムにおいては、ＩＣカード自体の機能により、一定の大きさ（例えば１２８バイト）のデータ書き込みに関しては動作を保証するものもある。しかしながら、この場合であっても、それ以上の大きさの情報を書き込む際には、タイミングによっては、データの不整合性が発生してしまう。
【００１２】
とりわけ、通信範囲が局所に制限されるＩＣカードのような近接通信においては、ユーザ操作によりデバイス間が引き離されたり障害物で干渉されるなど、通信が途切れてしまう可能性が極めて高い。ＩＣカードの大メモリ化、多用途・多サービス化が進むに従い、比較的大きなデータをＩＣカードに転送する機会がますます増えていくので、不意に通信が途絶した際のデータ保証の問題は重大である。
【００１３】
【発明が解決しようとする課題】
本発明の目的は、ユーザが物理的に近接通信を行うデバイスどうしを近づけることにより少なくとも一方の機器が相手のデバイスを発見して自動的に動作することかできる、優れた近接通信システムを提供することにある。
【００１４】
本発明のさらなる目的は、ユーザがデバイスどうしを物理的に近づけることにより自動的に動作するとともに、ユーザがデバイスどうしを引き離して任意のタイミングでデバイス間の通信が途絶しても動作を保証することができる、優れた近接通信システム及び近接通信方法、データ管理装置及びデータ管理方法、記憶媒体、並びにコンピュータ・プログラムを提供することにある。
【００１５】
本発明のさらなる目的は、所定以上の大きさのデータを書き込む際に任意のタイミングでデバイス間通信が途絶しても、データの整合性を好適に保証することができる、優れた近接通信システム及び近接通信方法、データ管理装置及びデータ管理方法、記憶媒体、並びにコンピュータ・プログラムを提供することにある。
【００１６】
【課題を解決するための手段及び作用】
本発明は、上記課題を参酌してなされたものであり、その第１の側面は、近接する外部装置からの要求に応じてデータの書き換えを行う近接通信システムであって、
外部装置からの要求に応じたデータの書き換えを行う１以上のデータ・ブロックと、各データ・ブロック毎に設けられた制御情報とで構成されるメモリ領域と、
外部装置からのデータ書き換え要求に応じて該当するデータ・ブロック及びその制御情報の書き換えを制御するデータ書き換え制御部とを備え、
１回のトランザクションで書き換え可能なデータ・サイズ以下での前記メモリ領域に対するデータ書き換え動作は保証され、且つ、制御情報Ｋ個分が１回のトランザクションに相当し、
前記データ書き換え制御部は、外部機器との近接通信が途切れる状況下においても、データ・ブロックの書き換えに関連する制御情報の書き換え動作を保証する、
ことを特徴とする近接通信システムである。
【００１７】
但し、ここで言う「システム」とは、複数の装置（又は特定の機能を実現する機能モジュール）が論理的に集合した物のことを言い、各装置や機能モジュールが単一の筐体内にあるか否かは特に問わない。
【００１８】
また、本発明の第２の側面は、近接する外部装置からの要求に応じてデータの書き換えを行う近接通信方法であって、
メモリ領域は、外部装置からの要求に応じたデータの書き換えを行う１以上のデータ・ブロックと、各データ・ブロック毎に設けられた制御情報とで構成され、
１回のトランザクションで書き換え可能なデータ・サイズ以下での前記メモリ領域に対するデータ書き換え動作はシステムで保証され、且つ、制御情報Ｋ個分が１回のトランザクションに相当しており、
外部機器との近接通信が途切れる状況下においてもデータ・ブロックの書き換えに関連する制御情報の書き換え動作を保証するステップを備える、
ことを特徴とする近接通信方法である。
【００１９】
ここで、制御情報は、対応するデータ・ブロックへのリンク情報並びに後続するデータ・ブロックに対応する制御情報へのリンク情報を持つとともに、対応するデータ・ブロックが使用状態、未使用状態、書き込み中、消去可のうちいずれの状態であるかを示すように構成されている。
【００２０】
また、メモリ領域は、先頭の制御情報に対するリンク情報を含んだブートストラップをさらに備えている。
【００２１】
また、データ・ブロックは、関連するデータ・ブロックについての制御情報へのリンク情報を持つことができる。
【００２２】
近接通信システムのトランスミッション・インターフェースとして非接触ＩＣカード技術を適用した場合には、ユーザが物理的に近接通信を行うデバイスどうしを近づけることにより、少なくとも一方の機器は相手のデバイスを発見して自動的に動作することができ、操作性に優れている。その反面、デバイス間の距離が離れた場合、任意の時点で通信が途絶して、データの一貫性が失われてしまう。このため、データ書き込み中の任意のタイミングでユーザがデバイス同士を引き離してもメモリの内容が破壊されないような動作保証機構が必要となる。
【００２３】
本発明の第１の側面に係る近接通信システム、又は、本発明の第２の側面に係る近接通信方法によれば、データ・ブロックの書き換えに関連する制御情報の合計が１回のトランザクションで書き換え可能なデータ・サイズ以下である場合には、その書き換え動作を１回のトランザクションでまとめて行なうことによって、制御情報の整合性を保証する。この結果、通信の途絶などにより仮にデータ・ブロックの書き換え動作に失敗した場合であっても、制御情報を基にデータを回復することができ、システムの破壊を防止することができる。
【００２４】
また、本発明の第１の側面に係る近接通信システム、又は、本発明の第２の側面に係る近接通信方法によれば、データ・ブロックの書き換えに関連する制御情報の合計が１回のトランザクションで書き換え可能なデータ・サイズ（すなわちＫ個）を越えるときには、制御情報をリンクされた順序に従って１回のトランザクションで書き換え可能な個数のグループに分割するとともに、各トランザクションでは書き換え動作が途絶しても次のトランザクションを継続可能にするための情報を最後尾の制御情報に書き込むようにする。
【００２５】
この結果、通信の途絶などにより一連の制御情報の書き換えが中断したとしても、中断した場所から書き換え動作を再開することができるので、制御情報の一貫性が保証される。また、通信の途絶などにより仮にデータ・ブロックの書き換え動作に失敗した場合であっても、制御情報を基にデータを回復することができ、システムの破壊を防止することができる。
【００２６】
ブートストラップからリンクされているデータ・ブロック群について書き換えを行なう場合には、まず、新しく書き込みを行なうことができる容量を持った未使用状態のデータ・ブロック群を探索する。そして、該探索されたデータ・ブロック群の先頭に相当する制御情報を未使用状態から書き込み中に変更し、それ以外のデータ・ブロックの制御情報を使用状態に変更するとともに、先頭のデータ・ブロックから順次データ・ブロックをたどれるように各制御情報間にリンクを形成する。ここでの一連の制御情報の書き換えを、動作保証したトランザクションによって実行することによって、制御情報の整合性を保証する。
【００２７】
次いで、書き換え要求されているデータを各制御情報間に形成されたリンクをたどりながら該探索されたデータ・ブロック群に書き込む。そして、該探索されたデータ・ブロック群の先頭の制御情報を書き込み中から使用状態に変更し、以前のデータ・ブロック群の先頭の制御情報を使用状態から消去可に変更するとともに、ブートストラップからのリンクを維持するために前記ブートストラップからのリンクを該探索されたデータ・ブロック群の先頭の制御情報を指すように変更する。ここでの一連の制御情報の書き換えを、１回のトランザクションによって実行することによって、制御情報の整合性を保証する。
【００２８】
最後に消去可を示す制御情報及びそこからリンクされたすべての制御情報を未使用状態に変更して、以前のデータ・ブロックを再利用可能にする。また、ここでの一連の制御情報の書き換えを、動作保証したトランザクションによって実行することによって、制御情報の整合性を保証する。
【００２９】
また、他のデータ・ブロックからリンクされているデータ・ブロック群について書き換えを行う場合には、まず、新しく書き込みを行なうことができる容量を持った未使用状態のデータ・ブロック群を探索する。そして、該探索されたデータ・ブロック群の先頭に相当する制御情報を未使用状態から書き込み中に変更し、それ以外のデータ・ブロックの制御情報を使用状態に変更するとともに、先頭のデータ・ブロックから順次データ・ブロックをたどれるように各制御情報間にリンクを形成する。ここでの一連の制御情報の書き換えを、動作保証したトランザクションによって実行することによって、制御情報の整合性を保証する。
【００３０】
次いで、書き換え要求されているデータを各制御情報間に形成されたリンクをたどりながら該探索されたデータ・ブロック群に書き込む。そして、他のデータ・ブロックからリンクを維持するために該探索されたデータ・ブロック群の先頭の制御情報と以前のデータ・ブロック群の先頭の制御情報とを入れ替えるとともに、該探索されたデータ・ブロック群の先頭の制御情報を書き込み中から使用状態に変更し、以前のデータ・ブロック群の先頭の制御情報を使用状態から消去可に変更する。ここでの一連の制御情報の書き換えを、動作保証したトランザクションによって実行することによって、制御情報の整合性を保証する。
【００３１】
最後に消去可を示す制御情報及びそこからリンクされたすべての制御情報を未使用状態に変更して、以前のデータ・ブロックを再利用可能にする。また、ここでの一連の制御情報の書き換えを、動作保証したトランザクションによって実行することによって、制御情報の整合性を保証する。
【００３２】
ここで、該探索されたデータ・ブロック群の先頭に相当する制御情報を未使用状態から書き込み中に変更し、それ以外のデータ・ブロックの制御情報を使用状態に変更するとともに、先頭のデータ・ブロックから順次データ・ブロックをたどれるように各制御情報間にリンクを形成するという一連の制御情報の書き換えを行なう際、書き換える制御情報の合計が１回のトランザクションで書き換え可能なデータ・サイズ（すなわちＫ個）を越えるときには、制御情報をリンクされた順序に従って１回のトランザクションで書き換え可能な個数のグループに分割して、ｎ回目のトランザクションでは、｛（Ｋ−１）×ｎ−（Ｋ−２）｝番目から（Ｋ−１）×ｎ番目までの制御情報のリンクがそれぞれ次の制御情報を指すようにするとともに｛（Ｋ−１）×（ｎ＋１）−（Ｋ−２）｝番目（すなわち｛（Ｋ−１）×ｎ＋１｝番目）の制御情報のリンクを０（又はヌル）にする書き換え動作を行なうようにしてもよい。
【００３３】
この結果、通信の途絶などにより一連の制御情報の書き換えが中断したとしても、余分なリンクが形成されなくて済むので、制御情報の一貫性が保証される。また、通信の途絶などにより仮にデータ・ブロックの書き換え動作に失敗した場合であっても、制御情報を基にデータを回復することができ、システムの破壊を防止することができる。
【００３４】
また、消去可を示す制御情報及びそこからリンクされたすべての制御情報を未使用状態に変更するという一連の制御情報の書き換えを行なう際、書き換える制御情報の合計が１回のトランザクションで書き換え可能なデータ・サイズ（すなわちＫ個）を越えるときには、制御情報をリンクされた順序に従って１回のトランザクションで書き換え可能な個数のグループに分割して、ｎ回目の書き込みでは（Ｋ−１）×ｎ番目までの制御情報を未使用状態にするとともに｛（Ｋ−１）×ｎ＋１｝番目の制御情報を消去可にする書き換え動作を行なうようにしてもよい。
【００３５】
この結果、通信の途絶などにより一連の制御情報の書き換えが中断したとしても、消去可となっている制御情報を探し出して、中断した書き換え動作を再開することができるので、制御情報の一貫性が保証される。また、通信の途絶が生じても、もはや使用されなくなったデータ・ブロックの制御情報を確実に探し出して未使用状態に戻すことができるので、メモリ領域を無駄なく効率的に使用することができる。
【００３６】
また、本発明の第３の側面は、１回のトランザクションの動作が保証されているシステムにおいてデータを管理するためのデータ管理装置であって、
システムのメモリ領域に、ユーザ・データを書き込むための１以上のデータ・ブロックと、各データ・ブロックを管理するための制御情報を設け、
各制御情報は１回のトランザクションでＫ個分を書き換え可能な固定データ・サイズであり、
データ・ブロックのユーザ・データの書き換えに伴い、書き換え動作を保証したトランザクションにより制御情報の書き換えを行う、
ことを特徴とするデータ管理装置である。
【００３７】
また、本発明の第４の側面は、１回のトランザクションの動作が保証されているシステムにおいてデータを管理するためのデータ管理方法であって、
システムのメモリ領域に、ユーザ・データを書き込むための１以上のデータ・ブロックと、各データ・ブロックを管理するための制御情報を設け、
各制御情報は１回のトランザクションでＫ個分を書き換え可能な固定データ・サイズであり、
データ・ブロックのユーザ・データの書き換えるとともに、これに伴う書き換え動作を保証したトランザクションにより制御情報の書き換えを行う、
ことを特徴とするデータ管理方法である。
【００３８】
ここで、制御情報は、対応するデータ・ブロックへのリンク情報並びに後続するデータ・ブロックに対応する制御情報へのリンク情報を持つとともに、対応するデータ・ブロックが使用状態、未使用状態、書き込み中、消去可のうちいずれの状態であるかを示すように構成されている。また、メモリ領域は、先頭の制御情報に対するリンク情報を含んだブートストラップをさらに備えている。また、データ・ブロックは、関連するデータ・ブロックについての制御情報へのリンク情報を持つことができる。
【００３９】
メモリ領域に対するユーザ・データの書き換えを行なうために、書き換えデータのトランスミッション・インターフェースとして非接触ＩＣカード技術を適用した場合には、デバイス間の距離が離れると、任意の時点で通信が途絶して、データの一貫性が失われてしまう。このため、データ書き込み中の任意のタイミングでユーザがデバイス同士を引き離してもメモリの内容が破壊されないような動作保証機構が必要となる。
【００４０】
本発明の第３の側面に係るデータ管理装置、又は、本発明の第４の側面に係るデータ管理方法によれば、データ・ブロックの書き換えに関連する制御情報の合計が１回のトランザクションで書き換え可能なデータ・サイズ以下である場合には、その書き換え動作を１回のトランザクションでまとめて行なうことによって、制御情報の整合性を保証する。したがって、通信の途絶などにより仮にデータ・ブロックの書き換え動作に失敗しても、制御情報を基にデータを回復することができる。
【００４１】
また、本発明の第３の側面に係るデータ管理装置、又は、本発明の第４の側面に係るデータ管理方法によれば、データ・ブロックの書き換えに関連する制御情報の合計が１回のトランザクションで書き換え可能なデータ・サイズ（すなわちＫ個）を越えるときには、制御情報をリンクされた順序に従って１回のトランザクションで書き換え可能な個数のグループに分割するとともに、各トランザクションでは書き換え動作が途絶しても次のトランザクションを継続可能にするための情報を最後尾の制御情報に書き込むようにする。したがって、通信の途絶などにより一連の制御情報の書き換えが中断したとしても、中断した場所から書き換え動作を再開することができるので、制御情報の一貫性が保証される。
【００４２】
また、本発明の第５の側面は、近接する外部装置からの要求に応じてデータの書き換えを行うための処理をコンピュータ・システム上で実行するように記述されたコンピュータ・ソフトウェアをコンピュータ可読形式で物理的に格納した記憶媒体であって、
メモリ領域は、外部装置からの要求に応じたデータの書き換えを行う１以上のデータ・ブロックと、各データ・ブロック毎に設けられた制御情報とで構成され、
１回のトランザクションで書き換え可能なデータ・サイズ以下での前記メモリ領域に対するデータ書き換え動作はシステムで保証され、且つ、制御情報Ｋ個分が１回のトランザクションに相当しており、
前記コンピュータ・ソフトウェアは、制御情報におけるデータの整合性を保ちながら前記メモリ領域のデータ書き換え動作を行なうステップを備える、
ことを特徴とする記憶媒体である。
【００４３】
また、本発明の第６の側面は、１回のトランザクションの動作が保証されているシステムにおけるデータ管理をコンピュータ・システム上で実行するように記述されたコンピュータ・ソフトウェアをコンピュータ可読形式で物理的に格納した記憶媒体であって、前記コンピュータ・ソフトウェアは、
システムのメモリ領域に、ユーザ・データを書き込むための１以上のデータ・ブロックと、各データ・ブロックを管理するための制御情報を設けるステップと、
データ・ブロックのユーザ・データの書き換えるとともに、これに伴う書き換え動作を保証したトランザクションにより制御情報の書き換えを行うステップと、
を具備することを特徴とする記憶媒体である。
【００４４】
本発明の第５及び第６の各側面に係る記憶媒体は、例えば、さまざまなプログラム・コードを実行可能な汎用コンピュータ・システムに対して、コンピュータ・ソフトウェアをコンピュータ可読な形式で提供する媒体である。このような媒体は、例えば、ＤＶＤ（Digital Versatile Disc）やＣＤ（Compact Disc）、ＦＤ（Flexible Disk）、ＭＯ（Magneto-Optical disc）などの着脱自在で可搬性の記憶媒体である。あるいは、ネットワーク（ネットワークは無線、有線の区別を問わない）などの伝送媒体などを経由してコンピュータ・ソフトウェアを特定のコンピュータ・システムに提供することも技術的に可能である。
【００４５】
また、本発明の第５及び第６の各側面に係る記憶媒体は、コンピュータ・システム上で所定のコンピュータ・ソフトウェアの機能を実現するための、コンピュータ・ソフトウェアと記憶媒体との構造上又は機能上の協働的関係を定義したものである。換言すれば、本発明の第５及び第６の各側面に係る記憶媒体を介して所定のコンピュータ・ソフトウェアをコンピュータ・システムにインストールすることによって、コンピュータ・システム上では協働的作用が発揮され、本発明の第２の側面に係る近接通信方法、又は本発明の第４の側面に係るデータ管理方法と同様の作用効果を得ることができる。
【００４６】
また、本発明の第７の側面は、近接する外部装置からの要求に応じてデータの書き換えを行うための処理をコンピュータ・システム上で実行するように記述されたコンピュータ・プログラムであって、
メモリ領域は、外部装置からの要求に応じたデータの書き換えを行う１以上のデータ・ブロックと、各データ・ブロック毎に設けられた制御情報とで構成され、
１回のトランザクションで書き換え可能なデータ・サイズ以下での前記メモリ領域に対するデータ書き換え動作はシステムで保証され、且つ、制御情報Ｋ個分が１回のトランザクションに相当しており、
制御情報におけるデータの整合性を保ちながら前記メモリ領域のデータ書き換え動作を行なうステップを備える、
ことを特徴とするコンピュータ・プログラムである。
【００４７】
また、本発明の第８の側面は、１回のトランザクションの動作が保証されているシステムにおけるデータ管理をコンピュータ・システム上で実行するように記述されたコンピュータ・プログラムであって、
システムのメモリ領域に、ユーザ・データを書き込むための１以上のデータ・ブロックと、各データ・ブロックを管理するための制御情報を設けるステップと、
データ・ブロックのユーザ・データの書き換えるとともに、これに伴う書き換え動作を保証したトランザクションにより制御情報の書き換えを行うステップと、
を具備することを特徴とするコンピュータ・プログラムである。
【００４８】
本発明の本発明の第７及び第８の各側面に係るコンピュータ・プログラムは、コンピュータ・システム上で所定の処理を実現するようにコンピュータ可読形式で記述されたコンピュータ・プログラムを定義したものである。換言すれば、本発明の第７及び第８の各側面に係るコンピュータ・プログラムをコンピュータ・システムにインストールすることによって、コンピュータ・システム上では協働的作用が発揮され、本発明の第２の側面に係る近接通信方法、又は本発明の第４の側面に係るデータ管理方法方法と同様の作用効果を得ることができる。
【００４９】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施形態や添付する図面に基づくより詳細な説明によって明らかになるであろう。
【００５０】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施形態について詳解する。
【００５１】
Ａ．近接通信システム
本実施形態に係る近接通信システムは、各デバイスにＩＣカード及びカード・リーダ／ライタ双方の機能を装備することにより、ＩＣカード技術を汎用性のある双方向の近接通信インターフェースとして利用するものである。
【００５２】
例えば、コンピュータや情報家電機器のような機器どうしで近接通信システムが構成される場合には、通信は一対一で行われる。また、ある機器が非接触ＩＣカードのような機器以外の相手デバイス（カードと呼ぶ）と通信することも可能であり、この場合においては、１つの機器と複数のカードにおける一対多の通信を行うアプリケーションも考えられる。
【００５３】
このような近接通信システムでは、ユーザが物理的に近接通信を行うデバイスどうしを近づけることにより、少なくとも一方の機器は相手のデバイスを発見して自動的に動作する。但し、逆にデバイス間の距離が離れた場合、任意の時点で通信が途絶する。このため、任意のタイミングでユーザがデバイス同士を引き離すという状況においてもシステムが破綻しないような動作保証機構が必要となる。この動作保証機構の詳細については、後述に譲る。
【００５４】
本実施形態に係る近接通信システムで提供されるサービスは、ＩＣカードが通信対象である場合の親和性を考慮して、基本的には近接通信を介して"Ｄｅｓｃｒｉｐｔｉｏｎ"の読み書きを行うメモリ・アクセス・モデルとして運用される。
【００５５】
ここで、Ｄｅｓｃｒｉｐｔｉｏｎには、機器やＩＣカードの固有な情報や各サービスの情報を記述される。サービスの実現において、プロセスの開始及びＤｅｓｃｒｉｐｔｉｏｎの読み書きにおける役割を決め、役割の異なるエンティティ間で種々のコマンドが運用される。
【００５６】
本実施形態では、Ｄｅｓｃｒｉｐｔｉｏｎは、ＸＭＬ（eXtended Markup Language）により記述される。ＸＭＬは、ユーザが独自のタグを使ってデータの属性情報や論理構造を定義することができるページ記述言語である。
【００５７】
Ｂ．近接通信システムのインタラクション・モデル
本実施形態に係る近接通信システムでは、サービスを実現するにあたって、イニシエータ（Ｉｎｉｔｉａｔｏｒ）、コントローラ（Ｃｏｎｔｒｏｌｌｅｒ）、ターゲット（Ｔａｒｇｅｔ）という３つの役割を規定する。近接通信システム上で動作する各デバイスは、必要に応じてこれらの役割のうち幾つかを実現する。
【００５８】
図１には、本実施形態に係る近接通信システムにおいて、各役割を持ったエンティティ間のインタラクション・モデルを模式的に示している。
【００５９】
イニシエータは、近接通信インターフェースを利用して、局所において他のデバイスを探索して、コントローラ及びターゲットを決定・任命する。
【００６０】
コントローラとして任命されたデバイスは、ターゲットに対してコマンドを発行することができる。
【００６１】
また、ターゲットは、コントローラからのコマンドに応答してレスポンスを返す。また、ターゲットは、１以上のＤｅｓｃｒｉｐｔｉｏｎを備えている。
【００６２】
本実施形態に係る近接通信システムでは、ＩＣカード及びカード・リーダ／ライタの両機能を備えた機器はイニシエータ、コントローラ、及びターゲットのいずれにもなり得る。これに対し、ＩＣカード機能のみを備えた機器はターゲットにしかなれない。
【００６３】
また、当該近接通信システムでは、機器間通信において一対一通信を対象としているので、実際にサービスを実行する際に、イニシエータ、コントローラ、ターゲットの各エンティティがどのデバイスに存在するかの組み合わせは幾つかに限定される。
【００６４】
・ケース１
機器（イニシエータ＋コントローラ） 対 機器又はＩＣカード（ターゲット）
【００６５】
・ケース２
機器（イニシエータ＋ターゲット） 対 機器（コントローラ）
【００６６】
また、機器対カードの場合一対多の通信もあり得るが、それはケース１の組み合わせが複数あると考えられる。
【００６７】
ケース２は、サービスの設計要求又は電源や通信路といった物理的条件による特別な場合である。この場合、イニシエータからコントローラへのイニシエーションは、通信インターフェースを介して伝えられる。
【００６８】
Ｃ．Ｄｅｓｃｒｉｐｔｉｏｎ
Ｄｅｓｃｒｉｐｔｉｏｎとは、当該近接通信システムに対応しているターゲットの情報を示すものである。本実施形態で扱われるＤｅｓｃｒｉｐｔｉｏｎは、"Ｇｅｎｅｒａｌ  Ｄｅｓｃｒｉｐｔｉｏｎ"と"Ｓｅｒｖｅｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎ"に大別される。ターゲットは、Ｇｅｎｅｒａｌ  Ｄｅｓｃｒｉｐｔｉｏｎを必ず１つ持ち、対応しているサービスの数だけＳｅｒｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎを持つ。Ｇｅｎｅｒａｌ  Ｄｅｓｃｒｉｐｔｉｏｎからたどることによって、Ｓｅｒｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎを読むことができる（図２を参照のこと）。
【００６９】
Ｄ．コマンド一覧
コマンド一覧を以下に示す。
【００７０】
【表１】
0003820999.tif 000002
【００７１】
以下、各コマンドについて説明する。
【００７２】
（１）Ｓｅａｒｃｈ
コネクションの相手候補を得ることを目的とするコマンドであり、発見されたターゲットのＩＤが出力される。
【００７３】
（２）Ｓｔａｎｄ
イニシエータとして立候補することを目的とするコマンドであり、イニシエータになることができるときコマンドは成功する。コマンドが失敗したとき、イニシエータになることはできない。
【００７４】
（３）Ｉｎｉｔｉａｔｉｏｎ
イニシエータが発行するコマンドであり、イニシエータがコントローラにしようとする機器に対してターゲットのＩＤを伝えることでそれを指示する。
【００７５】
（４）Ｇｅｔ  Ｇｅｎｅｒａｌ  Ｄｅｓｃｒｉｐｔｉｏｎ
Ｇｅｎｅｒａｌ  Ｄｅｓｃｒｉｐｔｉｏｎを取得することを目的とするコマンドであり、対象とするターゲットから取得されたＸＭＬデータが出力される。
【００７６】
（５）Ｇｅｔ  Ｓｅｒｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎ
Ｓｅｒｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎを取得することを目的とするインターフェースであり、対象とするターゲットのＩＤ及び対象とするＳｅｒｖｉｃｅＤｅｓｃｒｉｐｔｉｏｎのＵＲＩを入力として与えることにより、取得されたＸＭＬデータが出力される。
【００７７】
（６）Ｓｅｔ  Ｇｅｎｅｒａｌ  Ｄｅｓｃｒｉｐｔｉｏｎ
Ｇｅｎｅｒａｌ  Ｄｅｓｃｒｉｐｔｉｏｎを更新することを目的とするインターフェースであり、対象とするターゲットのＩＤと書き込むＸＭＬデータを入力として与え、結果が格納される。
【００７８】
（７）Ｓｅｔ  Ｓｅｒｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎ
Ｓｅｒｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎを更新することを目的とするインターフェースであり、対象とするターゲットのＩＤと、対象とするＳｅｒｖｉｃｅＤｅｓｃｒｉｐｔｉｏｎのＵＲＩと、書き込むＸＭＬデータを入力として与え、結果が格納される。
【００７９】
（８）Ａｄｄ  Ｓｅｒｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  １
Ｓｅｒｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎを仮書き込みすることを目的とするインターフェースであり、対象とするターゲットのＩＤと、書き込むＳｅｒｖｉｃｅ  ＤｅｓｃｒｉｐｔｉｏｎのＸＭＬデータを入力として与え、追加したＳｅｒｖｉｃｅ  ＤｅｓｃｒｉｐｔｉｏｎのＵＲＩが出力として得られる。
【００８０】
（９）Ａｄｄ  Ｓｅｒｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  ２
Ｓｅｒｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎを追加する（Ｇｅｎｅｒａｌ  Ｄｅｓｃｒｉｐｔｉｏｎの更新及びＳｅｒｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎの有効化）ことを目的とするインターフェースであり、対象とするターゲットのＩＤと書き込むＧｅｎｅｒａｌ  ＤｅｓｃｒｉｐｔｉｏｎのＸＭＬデータと、追加したＳｅｒｖｉｃｅ  ＤｅｓｃｒｉｐｔｉｏｎのＵＲＩを入力として与え、結果が格納される。
【００８１】
（１０）Ｄｅｌｅｔｅ  Ｓｅｒｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎ
Ｓｅｒｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎを削除することを目的とするインターフェースであり、対象とするターゲットのＩＤと対象とするＳｅｒｖｉｃｅ  ＤｅｓｃｒｉｐｔｉｏｎのＵＲＩを入力として与え、結果が格納される。
【００８２】
Ｅ．アクセス手順
ここでは、本実施形態に係る近接通信システムにおけるデバイス間のアクセス手順について説明する。
【００８３】
Ｅ−１．イニシエータの決定
イニシエータは、対象を発見するために、Ｓｅａｒｃｈを発行する。
【００８４】
これに対し、Ｓｅａｒｃｈを受け取ったエンティティはレスポンスを返す。
【００８５】
そして、他のエンティティがコントローラの機能を持っている場合には、イニシエータはＳｔａｎｄを発行して、イニシエータを決定する（図３を参照のこと）。
【００８６】
Ｅ−２．イニシエータ
イニシエータは、コントローラの機能を持たせるものに対してイニシエーションを行なう。
【００８７】
イニシエーションする際には、コントローラに利用させたいサービスのＵＲＩを通知する（図４を参照のこと）。
【００８８】
Ｅ−３．コントローラ
コントローラは、イニシエータに通知されたターゲットに対して、Ｇｅｔ  Ｇｅｎｅｒａｌ  Ｄｅｓｃｒｉｐｔｉｏｎを発行して、そのターゲットの情報を取得する。
【００８９】
さらに必要な場合には、Ｇｅｔ  Ｓｅｒｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎを発行して、ターゲットからＳｅｒｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎを取得する（図５を参照のこと）。
【００９０】
Ｅ−４．状態遷移図
図６には、本実施形態に係る近接通信システムにおいて動作するデバイスの状態遷移図を示している。
【００９１】
ターゲットは、イニシエーションを受信すると、イニシエーション・レスポンスを返して、コントローラに遷移する。
【００９２】
また、ターゲットは、コントローラ機能を装備して、且つ、イニシエータになりたい場合には、Ｓｔａｎｄコマンドを発行して、レスポンス待ち状態になる。ここで、拒絶されると（Ｒｅｊｅｃｔ）、ランダムな時間だけ待機してターゲットに戻る。また、Ｓｔａｎｄコマンドが受理されるか、又はタイムアウトしたときには、イニシエータに遷移する。
【００９３】
イニシエータは、コントローラになりたいときには、コントローラに遷移することができる。また、相手をコントローラにしたいときには、イニシエーションを発行して、ターゲットに遷移することができる。
【００９４】
コントローラは、コントローラ機能が終了すると、ターゲットに戻る。
【００９５】
Ｆ．メモリ管理
［従来の技術］の欄でも既に述べたように、近接通信システムのトランスミッション・インターフェースとして非接触ＩＣカード技術を適用した場合には、ユーザが物理的に近接通信を行うデバイスどうしを近づけることにより、少なくとも一方の機器は相手のデバイスを発見して自動的に動作することができる。その反面、デバイス間の距離が離れた場合、任意の時点で通信が途絶する。このため、データ書き込み中の任意のタイミングでユーザがデバイス同士を引き離してもメモリの内容が破壊されないような動作保証機構が必要となる。
【００９６】
本実施形態で適用する非接触ＩＣカード・システムでは、情報の読み書きの単位として１６バイトを１ブロックとし、最大の同時書き込みサイズは８ブロック（＝１２８バイト）であり、それ以下のサイズの情報の書き込みは１回のトランザクションで行なわれるので、動作が保証されている。しかし、それ以上の大きさの情報を書き込む際には情報の正しい書き込みは保証されない。
【００９７】
そこで、本実施形態では、ＴＯＣの仕組みをＩＣカード内のメモリ領域に構築して、最大同時書き込みサイズを越える情報を書き込む際であっても、これに伴うＴＯＣの書き換えを１回のトランザクションで済む、あるいは２回以上のトランザクションにまたがる場合には、書き換え動作が途切れても履歴を回復できるようにＴＯＣの書き換えを行うようにする。この結果、書き込み中に任意のタイミングでカードが引き離されても、カード内の情報の整合性を維持することができ、正しい書き込み動作を保証することができる。
【００９８】
Ｆ−１．メモリ空間
図７には、本実施形態に係る近接通信システムに適用される非接触ＩＣカード内のメモリ空間の構造を模式的に示している。
【００９９】
既に述べたように、ターゲットとして利用される非接触ＩＣカード内では、ターゲットの情報を示すＤｅｓｃｒｉｐｔｉｏｎの保持・管理が行なわれる。そして、ＤｅｓｃｒｉｐｔｉｏｎはＧｅｎｅｒａｌ  ＤｅｓｃｒｉｐｔｉｏｎとＳｅｒｖｅｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎに大別され、ターゲットは、Ｇｅｎｅｒａｌ  Ｄｅｓｃｒｉｐｔｉｏｎを必ず１つ持つとともに、対応しているサービスの数だけＳｅｒｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎを持つ。
【０１００】
各Ｄｅｓｃｒｉｐｔｉｏｎは、ＸＭＬ形式で記述されたデータ本体であり、それぞれ可変長又は固定長のデータ・ブロックに書き込まれる。
【０１０１】
本実施形態では、各データ・エリア毎にその制御情報であるＴＯＣが１つずつ設けられる。ＴＯＣは該当するデータ・ブロックの開始位置（Ｓｔａｒｔ Ａｄｄｒｅｓｓ ｏｆ Ｄａｔａ Ｂｌｏｃｋ）を持っているので、ＴＯＣを基に所望のデータ・ブロックをアドレスすることができる。また、データ・ブロックに続きがある場合には、次のＴＯＣのアドレス情報（Ａｄｄｒｅｓｓ ｏｆ ＮｅｘｔＴＯＣ）もＴＯＣに書き込まれる。
【０１０２】
非接触ＩＣカード・システムが提供するＢｏｏｔ  Ｓｔｒａｐ  Ｓｅｒｖｉｃｅは、Ｇｅｎｅｒａｌ  ＤｅｓｃｒｉｐｔｉｏｎのＴＯＣの先頭位置に相当するＳｔａｒｔ  Ａｄｄｒｅｓｓ  ｏｆ  Ｇｅｎｅｒａｌ Ｄｅｓｃｒｉｐｔｉｏｎを備えているので、ブート処理時にカードのＧｅｎｅｒａｌ  Ｄｅｓｃｒｉｐｔｉｏｎの先頭位置を取得することができる。
【０１０３】
また、Ｇｅｎｅｒａｌ  Ｄｅｓｃｒｉｐｔｉｏｎは、対応するＳｅｒｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎへのアクセス方法であるＵＲＩを含んでいる。
【０１０４】
したがって、図７に示すように、非接触ＩＣカード内のメモリ空間では、データ・ブロックはＴＯＣによって管理され、且つ、すべてのデータ・ブロックがアドレス可能となるように構成されている。
【０１０５】
図８には、Ｂｏｏｔ  Ｓｔｒａｐ  Ｓｅｒｖｉｃｅのデータ構造を模式的に示している。Ｂｏｏｔ  Ｓｔｒａｐ  Ｓｅｒｖｉｃｅは、Ｄ０〜Ｄｆの１６バイトからなる。
【０１０６】
Ｍｅｄｉａ  Ｔｙｐｅフィールドには、当該ターゲット・デバイスがコントローラになり得るかどうかを示した情報が書き込まれる。
【０１０７】
Ａｄｄｒｅｓｓ  ｏｆ  Ｇｅｎｅｒａｌ Ｄｅｓｃｒｉｐｔｉｏｎフィールドには、Ｇｅｎｅｒａｌ ＤｅｓｃｒｉｐｔｉｏｎのＴＯＣのスタート・アドレス（Ｓｅｒｖｉｃｅ Ｃｏｄｅ）が書き込まれている。
【０１０８】
Ｎｕｍｂｅｒ  ｏｆ  Ｅｎｔｒｉｅｓフィールドには、本メモリ空間上でのＴＯＣのエントリ数が書き込まれている。
【０１０９】
Ｓｔａｒｔ  Ａｄｄｒｅｓｓ  ｏｆ  Ｇｅｎｅｒａｌ  Ｄｅｓｃｒｉｐｔｉｏｎフィールドには、Ｇｅｎｅｒａｌ  ＤｅｓｃｒｉｐｔｉｏｎのＴＯＣのアドレス（Ｓｅｒｖｉｃｅ  Ｃｏｄｅ）が書き込まれている。
【０１１０】
Ｂｏｏｔ  Ｓｔｒａｐ  ＳｅｒｖｉｃｅはＧｅｎｅｒａｌ  Ｄｅｓｃｒｉｐｔｉｏｎに関する情報を含んでいるので、Ｇｅｎｅｒａｌ  Ｄｅｓｃｒｉｐｔｉｏｎを更新したときにはＢｏｏｔ  Ｓｔｒａｐ  Ｓｅｒｖｉｃｅ書き換える必要がある。
【０１１１】
図９には、ＴＯＣエントリのデータ構造を模式的に示している。ＴＯＣエントリは、Ｄ０〜Ｄｆの１６バイトからなる。
【０１１２】
Ｔｙｐｅフィールドには、対応するデータ・ブロックの状態が記述される。ここで言う状態としては、未使用状態を示す"Ｕｎｕｓｅｄ"、Ｇｅｎｅｒａｌ  Ｄｅｓｃｒｉｐｔｉｏｎとして使用中であることを示す"Ｇｅｎｅｒａｌ"、Ｓｅｒｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎとして使用中であることを示す"Ｓｅｒｖｉｃｅ"、書き込み中であることを示す"Ｗｒｉｔｉｎｇ"、データ・ブロックが消去可能であることを示す"Ｅｒａｓｉｎｇ"が定義されている。
【０１１３】
Ｓｔａｒｔ Ａｄｄｒｅｓｓ ｏｆ Ｄａｔａ Ｂｌｏｃｋフィールドには、対応するデータ・ブロックのスタート・アドレス（Ｓｅｒｖｉｃｅ  Ｃｏｄｅ）が書き込まれている。
【０１１４】
Ｎｕｍｂｅｒ ｏｆ Ｂｌｏｃｋｓフィールドには、対応するデータ・ブロックが持つブロック数が書き込まれている。
【０１１５】
対応するＤｅｓｃｒｉｐｔｉｏｎすなわちデータ・ブロックの続きがある場合には、Ａｄｄｒｅｓｓ ｏｆ Ｎｅｘｔ ＴＯＣフィールドには、次のＴＯＣのスタート・アドレス（Ｓｅｒｖｉｃｅ  Ｃｏｄｅ）が書き込まれる。
【０１１６】
Ｄａｔａ  Ｓｉｚｅフィールドには、対応するデータ・ブロック中に書き込まれているデータのサイズが書き込まれる。
【０１１７】
Ｆ−２．Ｇｅｎｅｒａｌ Ｄｅｓｃｒｉｐｔｉｏｎの取得
Ｂｏｏｔ  Ｓｔｒａｐ  Ｓｅｒｖｉｃｅに含まれるＳｔａｒｔ  Ａｄｄｒｅｓｓ  ｏｆ  Ｇｅｎｅｒａｌ Ｄｅｓｃｒｉｐｔｉｏｎを読むことにより、Ｇｅｎｅｒａｌ Ｄｅｓｃｒｉｐｔｉｏｎの制御情報であるＴＯＣ（Table Of Contents）の先頭のアドレスが分かる。Ｇｅｎｅｒａｌ ＤｅｓｃｒｉｐｔｉｏｎのＴＯＣを読むことにより、Ｔｙｐｅ、Ｓｔａｒｔ  Ａｄｄｒｅｓｓ ｏｆ Ｄａｔａ ＢｌｏｃｋやＮｕｍｂｅｒ ｏｆ Ｂｌｏｃｋｓ、及びＡｄｄｒｅｓｓ ｏｆ Ｎｅｘｔ ＴＯＣを知ることができる。ＴｙｐｅがＧｅｎｅｒａｌ Ｄｅｓｃｒｉｐｔｉｏｎを表していれば情報は有効である。
データはＳｔａｒｔ Ａｄｄｒｅｓｓ ｏｆ Ｄａｔａ Ｂｌｏｃｋの指すアドレスからＮｕｍｂｅｒ ｏｆ Ｂｌｏｃｋｓ数分のブロックに記録されており、さらに続きがある場合にはＡｄｄｒｅｓｓ ｏｆ Ｎｅｘｔ ＴＯＣに次のＴＯＣのアドレスが入る。値が０ならばこのＴＯＣで終了である。
【０１１８】
Ｆ−３．Ｓｅｒｖｉｃｅ Ｄｅｓｃｒｉｐｔｉｏｎの取得
指定するＵＲＩはＳｅｒｖｉｃｅ ＤｅｓｃｒｉｐｔｉｏｎのＴＯＣのアドレスを表しており、その領域を読むことにより、Ｔｙｐｅ、Ｓｔａｒｔ Ａｄｄｒｅｓｓ ｏｆ Ｄａｔａ ＢｌｏｃｋやＮｕｍｂｅｒ ｏｆ Ｂｌｏｃｋｓ及びＡｄｄｒｅｓｓ ｏｆ Ｎｅｘｔ ＴＯＣを知ることができる。ＴｙｐｅがＳｅｒｖｉｃｅ Ｄｅｓｃｒｉｐｔｉｏｎを表していれば情報は有効である。
データはＳｔａｒｔ Ａｄｄｒｅｓｓ ｏｆ Ｄａｔａ Ｂｌｏｃｋの指すアドレスからＮｕｍｂｅｒ ｏｆ Ｂｌｏｃｋｓ数分のブロックに記録されており、さらに続きがある場合にはＡｄｄｒｅｓｓ ｏｆ Ｎｅｘｔ ＴＯＣに次のＴＯＣのアドレスが入る。値が０ならばこのＴＯＣで終了である。
【０１１９】
Ｆ−４．Ｇｅｎｅｒａｌ  Ｄｅｓｃｒｉｐｔｉｏｎの更新
書き込み中に通信が途絶するような状況下でもデータの整合性を保証しながらＧｅｎｅｒａｌ  Ｄｅｓｃｒｉｐｔｉｏｎの更新を行なうための処理手順ついて、図１０及び図１１を参照しながら説明する。但し、図１０は、ＧｅｎｅｒａｌＤｅｓｃｒｉｐｔｉｏｎが１つのデータ・ブロックのみを使用する場合を表し、図１１は、Ｇｅｎｅｒａｌ  Ｄｅｓｃｒｉｐｔｉｏｎが２以上のデータ・ブロックにまたがる場合を表している。
【０１２０】
▲１▼まず、メモリ空間上で未使用のデータ・ブロックを探して、新しいＧｅｎｅｒａｌ Ｄｅｓｃｒｉｐｔｉｏｎを書き込むだけの容量があることを確認する（図１０を参照のこと）。Ｇｅｎｅｒａｌ  Ｄｅｓｃｒｉｐｔｉｏｎが２以上のデータ・ブロックにまたがっている場合には、該当する個数だけ未使用のデータ・ブロックを探索する（図１１を参照のこと）。
未使用データ・ブロックの探索処理は、ＴｙｐｅフィールドがＵｎｕｓｅｄに設定されているＴＯＣを探索することと、そのＮｕｍｂｅｒ  ｏｆ  Ｂｌｏｃｋｓを参照することによって、実現される。
また、見つけ出されたデータ・ブロックが更新後に新しいＧｅｎｅｒａｌ Ｄｅｓｃｒｉｐｔｉｏｎのサイズ以上の空き容量ができることを確認する。これはＧｅｎｅｒａｌ Ｄｅｓｃｒｉｐｔｉｏｎ更新後、それ以上の更新が不可能にならないための確認である。
【０１２１】
(2)次いで、データ・ブロックをＧｅｎｅｒａｌ  Ｄｅｓｃｒｉｐｔｉｏｎの書き換え先に割り当てるために、使用したいデータ・ブロックのＴＯＣのＴｙｐｅを、Ｕｎｕｓｅｄ（未使用）から、Ｗｒｉｔｉｎｇ（書き込み中）に変更すると同時に、その他のパラメータをセットする（図１０を参照のこと）。
また、Ｇｅｎｅｒａｌ  Ｄｅｓｃｒｉｐｔｉｏｎが２以上のデータ・ブロックにまたがっている場合には、先頭ＴＯＣのＴｙｐｅをＵｎｕｓｅｄからＷｒｉｔｉｎｇにするとともに、先頭ＴＯＣ以外のＴｙｐｅをＧｅｎｅｒａｌに変更すると同時に、その他のパラメータをセットする。複数の領域にまたがる場合、次のＴＯＣを順次たどれるようパラメータをセットする（図１１を参照のこと）。
ここでのＴＯＣの書き換え操作は、１回のトランザクションで行なうようにする。１回のトランザクションでは、非接触ＩＣカードにおいて書き込みが保証されているので、ＴＯＣのデータ整合性が維持される。その後のデータ・ブロックの書き込み時に通信が途切れたとしても、ＴＯＣを基に回復することができる。
なお、Ｇｅｎｅｒａｌ  Ｄｅｓｃｒｉｐｔｉｏｎが複数（９以上）のデータ・ブロックにまたがるために、すべてのＴＯＣの書き換え操作が１回のトランザクションでは済まない場合には、書き換え動作が途切れても履歴を回復できるようにＴＯＣの書き換えを行うようにするが、この点は後に詳解する。
【０１２２】
▲３▼次いで、新しいＧｅｎｅｒａｌ Ｄｅｓｃｒｉｐｔｉｏｎの内容を、▲１▼で割り当てたデータ・ブロックに書き込む。
Ｇｅｎｅｒａｌ ＤｅｓｃｒｉｐｔｉｏｎはＸＭＬ形式で記述されているが（前述）、そのデータ・サイズは、通常、非接触ＩＣカードにおいて書き込みが保証されている最大の同時書き込みサイズを越える大容量である。このため、Ｇｅｎｅｒａｌ Ｄｅｓｃｒｉｐｔｉｏｎの書き込み時に任意のタイミングでデバイス同士を引き離されて通信が途絶して、データの内容が破壊されてしまう可能性がある。但し、ＴＯＣを基に通信の履歴をたどることによって、データの回復を行うことができる。
【０１２３】
(4)次いで、新しく書き込んだデータ・ブロックのＴＯＣのＴｙｐｅをＷｒｉｔｉｎｇからＧｅｎｅｒａｌに更新するとともに、以前のＧｅｎｅｒａｌＤｅｓｃｒｉｐｔｉｏｎのＴＯＣのＴｙｐｅをＥｒａｓｉｎｇにする。これと同時に、Ｂｏｏｔ ＳｔｒａｐのＧｅｎｅｒａｌを指すパラメータを新しいＧｅｎｅｒａｌ ＤｅｓｃｒｉｐｔｉｏｎのＴＯＣを指すように更新する。（図１０を参照のこと）。
また、Ｇｅｎｅｒａｌ  Ｄｅｓｃｒｉｐｔｉｏｎが２以上のデータ・ブロックにまたがっている場合には、先頭ＴＯＣのＷｒｉｔｉｎｇをＧｅｎｅｒａｌに更新し、以前のＧｅｎｅｒａｌＤｅｓｃｒｉｐｔｉｏｎの先頭ＴＯＣのＴｙｐｅをＥｒａｓｉｎｇに更新すると同時に、Ｂｏｏｔ ＳｔｒａｐのＧｅｎｅｒａｌを指すパラメータを新しいＧｅｎｅｒａｌ ＤｅｓｃｒｉｐｔｉｏｎのＴＯＣを指すように更新する（図１１を参照のこと）。
ここでのＴＯＣの書き換え操作は、１回のトランザクションで行なう。１回のトランザクションでは、非接触ＩＣカードにおいて書き込みが保証されているので、ＴＯＣのデータ整合性が維持される。この場合、新旧のＴＯＣの書き換えが同時に行なわれるので、Ｇｅｎｅｒａｌ  Ｄｅｓｃｒｉｐｔｉｏｎは通信の途切れの影響を受けることがない。なお、Ｇｅｎｅｒａｌ  Ｄｅｓｃｒｉｐｔｉｏｎが複数（９以上）のデータ・ブロックにまたがるため、すべてのＴＯＣの書き換え操作が１回のトランザクションでは済まない場合には、書き換え動作が途切れても履歴を回復できるようにＴＯＣの書き換えを行うようにする（同上）。
【０１２４】
（５）最後に、ＴＯＣのＴｙｐｅがＥｒａｓｉｎｇ（消去可）になっているＴＯＣ、及びそこからたどれるＴＯＣのＴｙｐｅをすべてＵｎｕｓｅｄにする（図１０及び図１１を参照のこと）。Ｕｎｕｓｅｄに戻すことにより、これらのＴＯＣに対応するデータ・ブロックが再利用可能となる。
【０１２５】
Ｆ−５．Ｓｅｒｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎの更新
書き込み中に通信が途絶するような状況下でもデータの整合性を保証しながらＳｅｒｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎの更新を行なうための処理手順ついて、図１２及び図１３を参照しながら説明する。但し、図１２は、ＳｅｒｖｉｃｅＤｅｓｃｒｉｐｔｉｏｎが１つのデータ・ブロックのみを使用する場合を表し、図１３は、Ｓｅｒｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎが２以上のデータ・ブロックにまたがる場合を表している。
【０１２６】
(1)まず、メモリ空間上で未使用のデータ・ブロックを探して、新しいＳｅｒｖｉｃｅ Ｄｅｓｃｒｉｐｔｉｏｎを書き込むだけの容量があることを確認する（図１２を参照のこと）。Ｓｅｒｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎが２以上のデータ・ブロックにまたがっている場合には、該当する個数だけ未使用のデータ・ブロックを探索する（図１３を参照のこと）。
未使用データ・ブロックの探索処理は、ＴｙｐｅフィールドがＵｎｕｓｅｄに設定されているＴＯＣを探索することと、そのＮｕｍｂｅｒ  ｏｆ  Ｂｌｏｃｋｓを参照することによって、実現される。
また、見つけ出されたデータ・ブロックが更新後に新しいＳｅｒｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎのサイズ以上の空き容量ができることを確認する。これはＳｅｒｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎ更新後、それ以上の更新が不可能にならないための確認である。
【０１２７】
▲２▼次いで、データ・ブロックをＳｅｒｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎの書き換え先に割り当てるために、使用したいデータ・ブロックのＴＯＣのＴｙｐｅを、Ｕｎｕｓｅｄ（未使用）から、Ｗｒｉｔｉｎｇ（書き込み中）に変更すると同時に、その他のパラメータをセットする（図１２を参照のこと）。
また、Ｓｅｒｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎが２以上のデータ・ブロックにまたがっている場合には、先頭ＴＯＣのＴｙｐｅをＵｎｕｓｅｄからＷｒｉｔｉｎｇにするとともに、先頭ＴＯＣ以外のＴｙｐｅをＳｅｒｖｉｃｅに変更すると同時に、その他のパラメータをセットする。複数の領域にまたがる場合、次のＴＯＣを順次たどれるようパラメータをセットする（図１３を参照のこと）。
ここでのＴＯＣの書き換え操作は、１回のトランザクションで行なうので、ＴＯＣのデータ整合性が維持され、その後のデータ・ブロックの書き込み時に通信が途切れたとしても、ＴＯＣを基に回復することができる。なお、Ｓｅｒｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎが複数（９以上）のデータ・ブロックにまたがるために、すべてのＴＯＣの書き換え操作が１回のトランザクションでは済まない場合には、書き換え動作が途切れても履歴を回復できるようにＴＯＣの書き換えを行うようにする。
【０１２８】
(3)次いで、新しいＳｅｒｖｉｃｅ Ｄｅｓｃｒｉｐｔｉｏｎの内容を、1で割り当てたデータ・ブロックに書き込む。
Ｓｅｒｖｉｃｅ ＤｅｓｃｒｉｐｔｉｏｎはＸＭＬ形式で記述されているが（前述）、そのデータ・サイズは、通常、非接触ＩＣカードにおいて書き込みが保証されている最大の同時書き込みサイズを越える大容量である。このため、Ｓｅｒｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎの書き込み時に任意のタイミングでデバイス同士を引き離されて通信が途絶して、データの内容が破壊されてしまう可能性がある。但し、ＴＯＣを基に通信の履歴をたどることによって、データの回復を行うことができる。
【０１２９】
(4)次いで、新しく書き込んだデータ・ブロックのＴＯＣの情報を以前のＳｅｒｖｉｃｅ ＤｅｓｃｒｉｐｔｉｏｎのＴＯＣの情報と入れ替え、新しいＳｅｒｖｉｃｅＤｅｓｃｒｉｐｔｉｏｎのＴＯＣのＴｙｐｅをＷｒｉｔｉｎｇからＳｅｒｖｉｃｅに更新すると同時に、以前のＳｅｒｖｉｃｅ ＤｅｓｃｒｉｐｔｉｏｎのＴＯＣのＴｙｐｅをＥｒａｓｉｎｇにする（図１２を参照のこと）。
また、Ｓｅｒｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎが２以上のデータ・ブロックにまたがっている場合には、Ｓｅｒｖｉｃｅ Ｄｅｓｃｒｉｐｔｉｏｎの先頭ＴＯＣの情報を以前のＳｅｒｖｉｃｅＤｅｓｃｒｉｐｔｉｏｎの先頭ＴＯＣの情報と入れ替え、新しいＳｅｒｖｉｃｅ ＤｅｓｃｒｉｐｔｉｏｎのＴＯＣのＴｙｐｅをＷｒｉｔｉｎｇからＳｅｒｖｉｃｅに更新すると同時に、以前のＳｅｒｖｉｃｅＤｅｓｃｒｉｐｔｉｏｎのＴＯＣのＴｙｐｅをＥｒａｓｉｎｇにする（図１３を参照のこと）。
Ｓｅｒｖｉｃｅ  ＤｅｓｃｒｉｐｔｉｏｎのＴＯＣは、Ｇｅｎｅｒａｌ  ＤｅｓｃｒｉｐｔｉｏｎからＵＲＩで参照されている。Ｓｅｒｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎの更新の度にＧｅｎｅｒａｌ  Ｄｅｓｃｒｉｐｔｉｏｎの書き換えを行わなくて済むように、新しいＳｅｒｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎの書き込みを行なった後、新旧のＴＯＣの入れ替えを行なって、ＴＯＣへの参照を変更しないようにしている。
ここでのＴＯＣの書き換え操作は、１回のトランザクションで行なう。１回のトランザクションでは、非接触ＩＣカードにおいて書き込みが保証されているので、ＴＯＣのデータ整合性が維持される。この場合、新旧のＴＯＣの入れ替えが同時に行なわれるので、Ｓｅｒｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎは通信の途切れの影響を受けることがない。なお、Ｓｅｒｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎが複数（９以上）のデータ・ブロックにまたがるため、すべてのＴＯＣの書き換え操作が１回のトランザクションでは済まない場合には、書き換え動作が途切れても履歴を回復できるようにＴＯＣの書き換えを行うようにする（同上）。
【０１３０】
（５）最後に、ＴＯＣのＴｙｐｅがＥｒａｓｉｎｇ（消去可）になっているＴＯＣ、及びそこからたどれるＴＯＣのＴｙｐｅをすべてＵｎｕｓｅｄにする（図１２及び図１３を参照のこと）。Ｕｎｕｓｅｄに戻すことにより、これらのＴＯＣに対応するデータ・ブロックが再利用可能となる。
【０１３１】
Ｆ−６．Ｓｅｒｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎの追加
書き込み中に通信が途絶するような状況下でもデータの整合性を保証しながらＳｅｒｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎの追加を行なうための処理手順ついて、図１４を参照しながら説明する。
【０１３２】
▲１▼まず、メモリ空間数で未使用のデータ・ブロックを探して、新しいＳｅｒｖｉｃｅ Ｄｅｓｃｒｉｐｔｉｏｎ及びＧｅｎｅｒａｌ Ｄｅｓｃｒｉｐｔｉｏｎを書くだけの容量があることを確認する。
また、更新後に新しいＧｅｎｅｒａｌ Ｄｅｓｃｒｉｐｔｉｏｎのサイズと同じだけの空き容量ができることを確認する。これはＳｅｒｖｉｃｅ Ｄｅｓｃｒｉｐｔｉｏｎ追加後、それ以上の更新が不可能にならないための確認である。
【０１３３】
▲２▼次いで、新しいＳｅｒｖｉｃｅ Ｄｅｓｃｒｉｐｔｉｏｎに使用したい領域を割り当てるために、使用したい領域群の先頭ＴＯＣのＴｙｐｅをＵｎｕｓｅｄからＷｒｉｔｉｎｇにするとともに、先頭ＴＯＣ以外のＴｙｐｅをＳｅｒｖｉｃｅに変更すると同時に、その他のパラメータをセットする。複数の領域にまたがる場合には、次のＴＯＣをたどれるようにする。
ここでのＴＯＣの書き換え操作は、１回のトランザクションで行なうので、ＴＯＣのデータ整合性が維持され、その後のデータ・ブロックの書き込み時に通信が途切れたとしても、ＴＯＣを基に回復することができる。また、Ｓｅｒｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎが複数（９以上）のデータ・ブロックにまたがるために、すべてのＴＯＣの書き換え操作が１回のトランザクションでは済まない場合には、書き換え動作が途切れても履歴を回復できるようにＴＯＣの書き換えを行うようにする。
【０１３４】
▲３▼次いで、新しいＳｅｒｖｉｃｅ Ｄｅｓｃｒｉｐｔｉｏｎの内容を、▲１▼で割り当てた各データ・ブロックに書き込む。
Ｓｅｒｖｉｃｅ ＤｅｓｃｒｉｐｔｉｏｎはＸＭＬ形式で記述されているが（前述）、そのデータ・サイズは、通常、非接触ＩＣカードにおいて書き込みが保証されている最大の同時書き込みサイズを越える大容量である。このため、Ｇｅｎｅｒａｌ Ｄｅｓｃｒｉｐｔｉｏｎの書き込み時に任意のタイミングでデバイス同士を引き離されて通信が途絶して、データの内容が破壊されてしまう可能性がある。但し、ＴＯＣを基に通信の履歴をたどることによって、データの回復を行うことができる。
【０１３５】
▲４▼次いで、以下に示す手順に従ってＧｅｎｅｒａｌ  ＤｅｓｃｒｉｐｔｉｏｎにＳｅｒｖｉｃｅを追加する。
（4-1）Ｓｅｒｖｉｃｅを追加した新しいＧｅｎｅｒａｌ Ｄｅｓｃｒｉｐｔｉｏｎを用意するための未使用のデータ・ブロックを探索する。
（4-2）次いで、データ・ブロックをＧｅｎｅｒａｌ  Ｄｅｓｃｒｉｐｔｉｏｎの書き換え先に割り当てるために、使用したいデータ・ブロック群の先頭ＴＯＣのＴｙｐｅをＵｎｕｓｅｄからＷｒｉｔｉｎｇにするとともに、先頭ＴＯＣ以外のＴｙｐｅをＧｅｎｅｒａｌに変更すると同時に、その他のパラメータをセットする。複数のデータ・ブロックにまたがる場合は次のＴＯＣをたどれるようにする。
ここでのＴＯＣの書き換え操作は、１回のトランザクションで行なうようにすることで、ＴＯＣのデータ整合性が維持される。その後のデータ・ブロックの書き込み時に通信が途切れたとしても、ＴＯＣを基に回復することができる。また、Ｇｅｎｅｒａｌ  Ｄｅｓｃｒｉｐｔｉｏｎが複数（９以上）のデータ・ブロックにまたがるために、すべてのＴＯＣの書き換え操作が１回のトランザクションでは済まない場合には、書き換え動作が途切れても履歴を回復できるようにＴＯＣの書き換えを行うようにする。
（4-3）割り当てた各データ・ブロックに新しいＧｅｎｅｒａｌ Ｄｅｓｃｒｉｐｔｉｏｎの内容を書き込む。
Ｇｅｎｅｒａｌ Ｄｅｓｃｒｉｐｔｉｏｎは非接触ＩＣカードにおいて書き込みが保証されている最大の同時書き込みサイズを越える大容量であるため、Ｇｅｎｅｒａｌ Ｄｅｓｃｒｉｐｔｉｏｎの書き込み時に任意のタイミングでデバイス同士を引き離されて通信が途絶して、データの内容が破壊されてしまう可能性がある。但し、ＴＯＣを基に通信の履歴をたどることによって、データの回復を行うことができる。
（4-4）新しく書き込んだデータ・ブロックの先頭ＴＯＣのＴｙｐｅをＷｒｉｔｉｎｇからＧｅｎｅｒａｌに更新し、以前のＧｅｎｅｒａｌ Ｄｅｓｃｒｉｐｔｉｏｎの先頭ＴＯＣのＴｙｐｅをＥｒａｓｉｎｇにするとともに、Ｂｏｏｔ ＳｔｒａｐのＧｅｎｅｒａｌを指すパラメータを新しいＧｅｎｅｒａｌ ＤｅｓｃｒｉｐｔｉｏｎのＴＯＣを指すように更新する。そのとき同時に、新しく追加したＳｅｒｖｉｃｅの先頭ＴＯＣのＴｙｐｅをＷｒｉｔｉｎｇからＳｅｒｖｉｃｅに更新する。
ここでのＴＯＣの書き換え操作は、１回のトランザクションで行なうので、ＴＯＣのデータ整合性が維持される。この場合、新旧のＴＯＣの書き換えが同時に行なわれるので、通信の途切れの影響を受けることがない。なお、書き換え対象となるＤｅｓｃｒｉｐｔｉｏｎが複数（９以上）のデータ・ブロックにまたがるため、すべてのＴＯＣの書き換え操作が１回のトランザクションでは済まない場合には、書き換え動作が途切れても履歴を回復できるようにＴＯＣの書き換えを行うようにする（同上）。
【０１３６】
（５）最後に、ＴＯＣのＴｙｐｅがＥｒａｓｉｎｇ（消去可）になっているＴＯＣ、及びそこからたどれるＴＯＣのＴｙｐｅをすべてＵｎｕｓｅｄにする。Ｕｎｕｓｅｄに戻すことにより、これらのＴＯＣに対応するデータ・ブロックが再利用可能となる。
【０１３７】
上述したＳｅｒｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎの追加処理は、Ｓｅｒｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎの更新と、Ｇｅｎｅｒａｌ  Ｄｅｓｃｒｉｐｔｉｏｎの書き換えの各処理手順の組み合わせによって実現される。
【０１３８】
Ｆ−７．Ｓｅｒｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎの削除
書き込み中に通信が途絶するような状況下でもデータの整合性を保証しながらＳｅｒｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎの削除を行なうための処理手順ついて、図１５を参照しながら説明する。
【０１３９】
▲１▼以下に示す手順に従い、Ｇｅｎｅｒａｌ  ＤｅｓｃｒｉｐｔｉｏｎからＳｅｒｖｉｃｅを削除する。
（1-1）Ｓｅｒｖｉｃｅを削除した新しいＧｅｎｅｒａｌ  Ｄｅｓｃｒｉｐｔｉｏｎを用意する。
（1-2）メモリ空間数で未使用のデータ・ブロックを探して、新しいＧｅｎｅｒａｌ Ｄｅｓｃｒｉｐｔｉｏｎを書くだけの容量があることを確認する。
また、更新後に新しいＧｅｎｅｒａｌ Ｄｅｓｃｒｉｐｔｉｏｎのサイズと同じだけの空き容量ができることを確認する。これはＧｅｎｅｒａｌ Ｄｅｓｃｒｉｐｔｉｏｎ更新後、それ以上の更新が不可能にならないための確認である。
（1-3）次いで、データ・ブロックを割り当てるために、使用したいデータ・ブロック群の先頭ＴＯＣのＴｙｐｅをＵｎｕｓｅｄからＷｒｉｔｉｎｇにするとともに、先頭ＴＯＣ以外のＴｙｐｅをＧｅｎｅｒａｌに変更すると同時に、その他のパラメータをセットする。複数のデータ・ブロックにまたがる場合は次のＴＯＣをたどれるようにする。
ここでのＴＯＣの書き換え操作は、１回のトランザクションで行なうようにすることで、ＴＯＣのデータ整合性が維持される。その後のデータ・ブロックの書き込み時に通信が途切れたとしても、ＴＯＣを基に回復することができる。また、Ｇｅｎｅｒａｌ  Ｄｅｓｃｒｉｐｔｉｏｎが複数（９以上）のデータ・ブロックにまたがるために、すべてのＴＯＣの書き換え操作が１回のトランザクションでは済まない場合には、書き換え動作が途切れても履歴を回復できるようにＴＯＣの書き換えを行うようにする。
（1-4）割り当てた各データ・ブロックに新しいＧｅｎｅｒａｌ Ｄｅｓｃｒｉｐｔｉｏｎの内容を書き込む。
Ｇｅｎｅｒａｌ Ｄｅｓｃｒｉｐｔｉｏｎは非接触ＩＣカードにおいて書き込みが保証されている最大の同時書き込みサイズを越える大容量であるため、Ｇｅｎｅｒａｌ Ｄｅｓｃｒｉｐｔｉｏｎの書き込み時に任意のタイミングでデバイス同士を引き離されて通信が途絶して、データの内容が破壊されてしまう可能性がある。但し、ＴＯＣを基に通信の履歴をたどることによって、データの回復を行うことができる。
（1-5）新しいデータ・ブロックの先頭ＴＯＣのＴｙｐｅをＷｒｉｔｉｎｇからＧｅｎｅｒａｌに更新し、以前のＧｅｎｅｒａｌ  Ｄｅｓｃｒｉｐｔｉｏｎの先頭ＴＯＣのＴｙｐｅをＥｒａｓｉｎｇにするとともに、Ｂｏｏｔ Ｓｔｒａｐ  ＳｅｒｖｉｃｅのＧｅｎｅｒａｌを指すパラメータを新しいＧｅｎｅｒａｌ ＤｅｓｃｒｉｐｔｉｏｎのＴＯＣを指すように更新する。このとき同時に、削除するデータ・ブロックのＴＯＣのＴｙｐｅをＳｅｒｖｉｃｅからＥｒａｓｉｎｇに更新する。
ここでのＴＯＣの書き換え操作は、１回のトランザクションで行なうので、ＴＯＣのデータ整合性が維持される。この場合、新旧のＴＯＣの書き換えが同時に行なわれるので、通信の途切れの影響を受けることがない。なお、書き換え対象となるＤｅｓｃｒｉｐｔｉｏｎが複数（９以上）のデータ・ブロックにまたがるため、すべてのＴＯＣの書き換え操作が１回のトランザクションでは済まない場合には、書き換え動作が途切れても履歴を回復できるようにＴＯＣの書き換えを行うようにする（同上）。
【０１４０】
（２）最後に、ＴＯＣのＴｙｐｅがＥｒａｓｉｎｇ（消去可）になっているＴＯＣ、及びそこからたどれるＴＯＣのＴｙｐｅをすべてＵｎｕｓｅｄにする。Ｕｎｕｓｅｄに戻すことにより、これらのＴＯＣに対応するデータ・ブロックが再利用可能となる。
【０１４１】
上述したＳｅｒｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎの削除処理は、基本的には、該当するＧｅｎｅｒａｌ  ＤｅｓｃｒｉｐｔｉｏｎからＳｅｒｖｉｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎへのリンクを削除するという、Ｇｅｎｅｒａｌ  Ｄｅｓｃｒｉｐｔｉｏｎを更新する処理手順によって実現される。
【０１４２】
Ｆ−８．ＴＯＣ群のＴｙｐｅをＷｒｉｔｉｎｇにする際の書き換え手順
本実施形態に係る近接通信システムのトランスミッション・インターフェースに非接触ＩＣカードを適用した場合、情報の読み書きの単位として１６バイトを１ブロックとし、最大の同時書き込みサイズは８ブロック（＝１２８バイト）であり、そのサイズの情報の書き込みは保証されている。そこで、データすなわちＤｅｓｃｒｉｐｔｉｏｎを更新、追加、削除する場合、これに伴うすべてのＴＯＣの書き換えを１回のトランザクションで済ませることにより、データの保証を図る。
【０１４３】
ところが、ＴＯＣは１６バイトすなわち１ブロックで構成されるので、Ｄｅｓｃｒｉｐｔｉｏｎを更新、追加、削除が複数のデータ・ブロックにまたがって行なわれ、更新するＴＯＣが９以上の場合には、１回のトランザクションだけですべてを書き換えることはできない。
【０１４４】
そこで、本実施形態では、ＴＯＣの書き換えが２回以上のトランザクションにまたがる場合には、通信が途中で途切れても履歴を回復できるようにＴＯＣの書き換えを行うようにＴＯＣの書き換え操作を行なう。この結果、書き込み中に任意のタイミングでカードが引き離されても、カード内の情報の整合性を維持することができ、正しい書き込み動作を保証することができる。
【０１４５】
上述したように、複数のデータ・ブロックにまたがるＤｅｓｃｒｉｐｔｉｏｎを更新、追加、削除する場合、先頭ＴＯＣのＴｙｐｅはＷｒｉｔｉｎｇにし、先頭以外のＴＯＣのＴｙｐｅはＧｅｎｅｒａｌ（若しくはＳｅｒｖｉｃｅ）にする。
【０１４６】
そして、更新するＴＯＣが９個以上の場合には、８ブロックずつの書き込みに分割する。ｎ回目の書き込みでは（但しｎは１以上の整数）、（７ｎ−６）番目から７ｎ番目までのＴＯＣのＡｄｄｒｅｓｓ ｏｆ Ｎｅｘｔ ＴＯＣはそれぞれ次のＴＯＣを指すようにし、（７ｎ＋１）番目のＴＯＣのＡｄｄｒｅｓｓ ｏｆ Ｎｅｘｔ ＴＯＣは０（ヌル）にする。そして、次の回に（７ｎ＋１）番目のＴＯＣから書き込むときに正しいアドレスを書き込むようにする。
【０１４７】
このように、各ＴＯＣ書き換えトランザクション毎に、最後尾のＴＯＣは次のＴＯＣを指さないままにしておくことにより、このトランザクションが通信の途絶などにより失敗しても、不要なＴＯＣの指定を行わなくて済む。
【０１４８】
他方、最後尾のＴＯＣが次のＴＯＣを指すようにした場合には、トランザクションに失敗した後には、次のＴＯＣはＴｙｐｅがＵｎｕｓｅｄであり、別のトランザクションによりまったく関係のないデータが書き込まれてしまった後もＴＯＣのリンクが形成されているので、データの不整合を招来することになる。
【０１４９】
図１６には、ＴＯＣ群をＷｒｉｔｉｎｇにする際の書き換えの手順をフローチャートの形式で示している。また、図１７には、このときの各ＴＯＣに対する操作を図解している。
【０１５０】
まず、更新するＴＯＣが９個以上か、すなわち、１回のトランザクションですべてのＴＯＣの更新を完了できないかどうかを判断する（ステップＳ１）。
【０１５１】
ここで、更新するＴＯＣが８個以下、すなわち１回のトランザクションですべてのＴＯＣの更新を完了することができる場合には、最後のＴＯＣ以外のＡｄｄｒｅｓｓ ｏｆ Ｎｅｘｔ ＴＯＣはそれぞれ次のＴＯＣを指すようにするとともに、最後のＴＯＣは、どこも指さないように０（ヌル）を代入する（ステップＳ２）。これらのＴＯＣの書き換え動作は１回のトランザクションだけで行なう。
【０１５２】
他方、更新するＴＯＣが９個以上ある場合には、１番目のＴＯＣのＴｙｐｅをＷｒｉｔｉｎｇにするとともに、他のＴＯＣのタイプをＧｅｎｅｒａｌ（又はＳｅｒｖｉｃｅ）にする。また、８番目のＴＯＣ以外のＡｄｄｒｅｓｓ ｏｆ Ｎｅｘｔ ＴＯＣを次のＴＯＣを指すようにするとともに、８番目のＴＯＣについてはどこも指さないように０を代入する（ステップＳ３）。これらのＴＯＣの書き換え動作は１回のトランザクション（Ｔ１）だけで行なう。
【０１５３】
以下、現在８番目のＴＯＣ以降に対して処理を行なう（ステップＳ４）。
【０１５４】
更新するＴＯＣがまだ９個以上残っているか、すなわち、１回のトランザクションですべてのＴＯＣの更新を更新できないかどうかを判断する（ステップＳ５）。
【０１５５】
ここで、更新するＴＯＣが８個以下、すなわち１回のトランザクションですべてのＴＯＣの更新を更新できる場合には、最後のＴＯＣ以外のＡｄｄｒｅｓｓ ｏｆ Ｎｅｘｔ ＴＯＣはそれぞれ次のＴＯＣを指すようにするとともに、最後のＴＯＣは、どこも指さないように０（ヌル）を代入する（ステップＳ２）。
【０１５６】
他方、更新するＴＯＣが９個以上ある場合には、現在のＴＯＣのＴｙｐｅをＷｒｉｔｉｎｇにするとともに、他のＴＯＣのタイプをＧｅｎｅｒａｌ（又はＳｅｒｖｉｃｅ）にする。また、８番目のＴＯＣ以外のＡｄｄｒｅｓｓ ｏｆ Ｎｅｘｔ ＴＯＣを次のＴＯＣを指すようにするとともに、８番目のＴＯＣについてはどこも指さないように０を代入する（ステップＳ６）。これらのＴＯＣの書き換え動作は１回のトランザクション（Ｔ２）だけで行なう。
【０１５７】
その後、ステップＳ４に戻って、すべてのＴＯＣについて処理が終わるまで、上述と同様のＴＯＣ書き換え動作を繰り返し実行する。
【０１５８】
Ｆ−９．ガベージ・コレクション
本実施形態に係る近接通信システムのトランスミッション・インターフェースに非接触ＩＣカードを適用した場合、データすなわちＤｅｓｃｒｉｐｔｉｏｎの更新、追加、削除を行なうためには、新しいデータ・ブロックにデータを書き込んでから、古いデータ・ブロックとの入れ替えを行なう。
【０１５９】
そして、このようなデータ書き換えの間、通信の途絶に伴うデータを保証するために、新旧のデータ・ブロックのＴＯＣのＴｙｐｅをデータ書き換え手順の進捗状況に応じて逐次更新するようになっている。すなわち、新しいデータ・ブロックのＴＯＣのＴｙｐｅを、Ｕｎｕｓｅｄ（未使用）からＷｒｉｔｉｎｇ（書き込み中）を経て、Ｇｅｎｅｒａｌ若しくはＳｅｒｖｉｃｅへと遷移する（但し、先頭ＴＯＣの場合）。また、元のデータ・ブロックのＴＯＣのＴｙｐｅは、Ｇｅｎｅｒａｌ若しくはＳｅｒｖｉｃｅからＥｒａｓｉｎｇ（消去可）へと遷移する（但し、先頭ＴＯＣの場合）。
【０１６０】
このようにデータの書き換え動作が成功裏に終了するまでは、ＴＯＣのＴｙｐｅとしてＷｒｉｔｉｎｇやＥｒａｓｉｎｇなどの中間的な状態を与えることにより、トランザクション中に通信が途絶しても、ＴＯＣのリンクをたどって書き込みに失敗したデータ・ブロックを追跡し特定することができる。
【０１６１】
また、ＴＯＣのＴｙｐｅがＷｒｉｔｉｎｇ又はＥｒａｓｉｎｇになっているデータ・ブロックは、通信の途絶などにより使用できないことを示しているので、開放して再利用する。すなわち、ＴＯＣのＴｙｐｅがＷｒｉｔｉｎｇ又はＥｒａｓｉｎｇのＴＯＣからたどれるＴＯＣ群をＵｎｕｓｅｄにする。このように未使用のデータ・ブロックを確保するための処理のことを、本明細書では「ガベージ・コレクション」（Ｇａｒｂａｇｅ  Ｃｏｌｌｅｃｔｉｏｎ）と呼ぶ。
【０１６２】
データ・ブロックの更新、追加、削除の過程で通信の途絶などによりデータ書き込み動作が失敗に終わった場合、先頭ＴＯＣのＴｙｐｅはＷｒｉｔｉｎｇ又はＥｒａｓｉｎｇに、先頭以外のＴＯＣのＴｙｐｅはＧｅｎｅｒａｌ（又はＳｅｒｖｉｃｅ）になっている（図１１、図１３、図１４、並びに図１５を参照のこと）。これらはすべてガベージ・コレクションの対象であり、Ｕｎｕｓｅｄに変更してデータ・ブロックの再利用を図る。
【０１６３】
本実施形態に適用される非接触ＩＣカード・システムの仕様として８ブロックずつしか書き込み保証がされないので、更新するＴＯＣが９個以上の場合、８ブロックずつの書き込みに分割する必要がある。そこで、ｎ回目の書き込みでは７ｎ番目までのＴＯＣのＴｙｐｅをＵｎｕｓｅｄに、（７ｎ＋１）番目のＴＯＣのＴｙｐｅをＥｒａｓｉｎｇにする。次の（ｎ＋１）回目の書き込みでは（７ｎ＋１）番目のＴＯＣから７個のＴＯＣのＴｙｐｅをＵｎｕｓｅｄに、（７ｎ＋８）番目のＴＯＣのＴｙｐｅをＥｒａｓｉｎｇにする。
【０１６４】
このように、ガベージ・コレクションにおける各ＴＯＣ書き換えトランザクション毎に、最後尾のＴＯＣのＴｙｐｅをＵｎｕｓｅｄとせず、Ｅｒａｓｉｎｇすなわちガベージ・コレクションを行なっていない状態にしておくことにより、トランザクションが通信の途絶などにより、失敗しても、Ｅｒａｓｉｎｇ状態の最後尾のＴＯＣを起点としてガベージ・コレクションを再開することができる。
【０１６５】
図１８には、ガベージ・コレクションする際のＴＯＣ群の書き換えの手順をフローチャートの形式で示している。また、図１９には、ガベージ・コレクションする際の各ＴＯＣに対する操作を図解している。
【０１６６】
まず、更新するＴＯＣが９個以上か、すなわち、１回のトランザクションですべてのＴＯＣの更新を完了できないかどうかを判断する（ステップＳ１１）。
【０１６７】
ここで、更新するＴＯＣが８個以下、すなわち１回のトランザクションでガベージ・コレクションを完了することができる場合には、残りのすべてのＴＯＣのＴｙｐｅをＵｎｕｓｅｄに書き換えて（ステップＳ１２）、本処理ルーチン全体を終了する。これらのＴＯＣの書き換え動作は１回のトランザクションだけで行なう。
【０１６８】
他方、更新するＴＯＣが９個以上ある場合には、１〜７番目までのＴＯＣのＴｙｐｅをＵｎｕｓｅｄにするとともに、８番目のＴＯＣのＴｙｐｅはＥｒａｓｉｎｇにする（ステップＳ１３）。これらのＴＯＣの書き換え動作は１回のトランザクション（Ｔ１１）だけで行なう。
【０１６９】
以下、現在８番目のＴＯＣ以降に対して処理を行なう（ステップＳ１４）。
【０１７０】
すなわち、ステップＳ１１に戻って、更新するＴＯＣがまだ９個以上残っているか、すなわち、１回のトランザクションですべてのＴＯＣの更新を更新できないかどうかを判断する。
【０１７１】
そして、更新するＴＯＣがまだ９個以上残っている場合には、１〜７番目までのＴＯＣのＴｙｐｅをＵｎｕｓｅｄにするとともに、８番目のＴＯＣのＴｙｐｅはＥｒａｓｉｎｇにする（ステップＳ１３）。これらのＴＯＣの書き換え動作は１回のトランザクション（Ｔ１２）だけで行なう（同上）。
【０１７２】
［追補］
以上、特定の実施形態を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施形態の修正や代用を成し得ることは自明である。
【０１７３】
本実施形態では、ＩＣカード技術を利用して構築された近接通信システムを例にとってに説明したが、他のタイプの近接通信システムであっても、本発明が同様に実現可能であることは言うまでもない。勿論、局所的な近接通信ではなく、一般的なデバイス間通信、あるいは、メモリやその他の記憶装置へのデータ書込みにおいても、データの整合性を保証するために本発明を適用することができる。
【０１７４】
要するに、例示という形態で本発明を開示してきたのであり、本明細書の記載内容を限定的に解釈するべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【０１７５】
【発明の効果】
以上詳記したように、本発明によれば、ユーザがデバイスどうしを物理的に近づけることにより自動的に動作するとともに、ユーザがデバイスどうしを引き離して任意のタイミングでデバイス間の通信が途絶しても動作を保証することができる、優れた近接通信システム及び近接通信方法、データ管理装置及びデータ管理方法、記憶媒体、並びにコンピュータ・プログラムを提供することができる。
【０１７６】
また、本発明によれば、所定以上の大きさのデータを書き込む際に任意のタイミングでデバイス間通信が途絶しても、データの整合性を好適に保証することができる、優れた近接通信システム及び近接通信方法、データ管理装置及びデータ管理方法、記憶媒体、並びにコンピュータ・プログラムを提供することができる。
【図面の簡単な説明】
【図１】本実施形態に係る近接通信システムにおけるインタラクション・モデルを模式的に示した図である。
【図２】Ｄｅｓｃｒｉｐｔｉｏｎの構造を模式的に示した図である。
【図３】イニシエータを決定するためのアクセス手順を示したシーケンス図である。
【図４】イニシエータがコントローラのイニシエーションを行なうためのアクセス手順を示したシーケンス図である。
【図５】コントローラのターゲットに対するアクセス手順を示したシーケンス図である。
【図６】本実施形態に係る近接通信システムにおいて動作するデバイスの状態遷移図を示した図である。
【図７】本実施形態に係る近接通信システムに適用される非接触ＩＣカード内のメモリ空間の構造を模式的に示した図である。
【図８】Ｂｏｏｔ  Ｓｔｒａｐ  Ｓｅｒｖｉｃｅのデータ構造を模式的に示した図である。
【図９】ＴＯＣエントリのデータ構造を模式的に示した図である。
【図１０】Ｇｅｎｅｒａｌ  Ｄｅｓｃｒｉｐｔｉｏｎの更新を行なうための処理手順を説明するための図である。
【図１１】Ｇｅｎｅｒａｌ  Ｄｅｓｃｒｉｐｔｉｏｎの更新を行なうための処理手順を説明するための図である。
【図１２】Ｓｅｒｖｉｖｅ  Ｄｅｓｃｒｉｐｔｉｏｎの更新を行なうための処理手順を説明するための図である。
【図１３】Ｓｅｒｖｉｖｅ  Ｄｅｓｃｒｉｐｔｉｏｎの更新を行なうための処理手順を説明するための図である。
【図１４】Ｓｅｒｖｉｖｅ  Ｄｅｓｃｒｉｐｔｉｏｎの追加を行なうための処理手順を説明するための図である。
【図１５】Ｓｅｒｖｉｖｅ  Ｄｅｓｃｒｉｐｔｉｏｎの削除を行なうための処理手順を説明するための図である。
【図１６】ＴＯＣ群をＷｒｉｔｉｎｇにする際の書き換えの手順を示したフローチャートである。
【図１７】ＴＯＣ群をＷｒｉｔｉｎｇにする際の各ＴＯＣに対する操作を示した図である。
【図１８】ＴＯＣ群のガーベジ・コレクションを行なう処理手順を示したフローチャートである。
【図１９】ＴＯＣ群のガーベジ・コレクションを行なう際の各ＴＯＣに対する操作を示した図である。
【図１】
0003820999.tif 000003
【図２】
0003820999.tif 000004
【図３】
0003820999.tif 000005
【図４】
0003820999.tif 000006
【図５】
0003820999.tif 000007
【図６】
0003820999.tif 000008
【図７】
0003820999.tif 000009
【図８】
0003820999.tif 000010
【図９】
0003820999.tif 000011
【図１０】
0003820999.tif 000012
【図１１】
0003820999.tif 000013
【図１２】
0003820999.tif 000014
【図１３】
0003820999.tif 000015
【図１４】
0003820999.tif 000016
【図１５】
0003820999.tif 000017
【図１６】
0003820999.tif 000018
【図１７】
0003820999.tif 000019
【図１８】
0003820999.tif 000020
【図１９】
0003820999.tif 000021