(58)【調査した分野】(Int.Cl.,DB名)
軌道上の複数の車両の各々に搭載された演算装置の各々をノードとする分散型記録システムと、前記軌道上の複数の車両の各々の走行情報を取得する走行情報取得部と、取得した前記走行情報を、前記分散型記録システムを構成する前記ノードそれぞれで共有して記録するための記録要求を、当該ノードそれぞれに向けて出力する記録要求部と、他の車両に自らの走行情報を通信する情報通信部と、を備えた運行管理システムを用いた運行管理方法であって、
記録要求が出力された場合に、当該記録要求が、各ノードで共有することについての所定の合意条件を満たしているか否かを判定する合意判定ステップと、
所定数以上または所定比率以上の前記ノードにて前記合意条件を満たすと判定された場合に、前記記録要求の共有を行う共有処理ステップと、
を有することを特徴とする運行管理方法。
軌道上の複数の車両の各々に搭載された演算装置の各々をノードとする分散型記録システムと、前記軌道上の複数の車両の各々の走行情報を取得する走行情報取得部と、取得した前記走行情報を、前記分散型記録システムを構成する前記ノードそれぞれで共有して記録するための記録要求を、当該ノードそれぞれに向けて出力する記録要求部と、他の車両に自らの走行情報を通信する情報通信部と、を備えた運行管理システムのコンピュータを、
記録要求が出力された場合に、当該記録要求が、各ノードで共有することについての所定の合意条件を満たしているか否かを判定する合意判定手段と、
所定数以上または所定比率以上の前記ノードにて前記合意条件を満たすと判定された場合に、前記記録要求の共有を行う共有処理手段として機能させるプログラム。
【発明を実施するための形態】
【0019】
[第1の実施形態]
以下、本発明に係る運行管理システム及び運行管理方法の第1の実施形態について、
図1〜
図5を参照して説明を行う。
【0020】
<運行管理システム>
本実施形態の運行管理システム1は、
図1に示すように、分散管理型記憶システム2と、各車両Aに設けられた走行情報取得部3と、記録要求部4と、情報通信部5と、制御処理部6とを備えている。
【0021】
分散管理型記憶システム2は、各車両Aに搭載された演算装置の各々をノードBとした記憶システムである。例えば、軌道上に車両A1、A2,・・・Anのn台があったとすると、この車両A1,A2,・・・Anに搭載された演算装置が、それぞれ本実施形態の分散管理型記憶システムのノードB1、B2,・・・Bnとなっている。
【0022】
また、この車両の演算装置であるノードBには、
図2に示すように、データベース7が設けられている。データベース7には、自車両Aだけでなく、他の車両Aも含めて車両Aの走行情報が記憶されている。走行情報は、具体的には位置情報、速度、加減速度、進行方向、ヘルス状態に関する情報等であり、これら全てであっても、これらのいずれかであっても構わない。
なお、ヘルス状態とは、正常状態か異常状態かを識別する指標で、例えば車両Aが駅で停車している際に、特に問題のない停車であればヘルス状態は正常となるが、何らかの機器の故障で停車しているのであればヘルス状態は異常となる。
【0023】
また、データベース7には、複数の走行情報を一つにまとめたブロックごとに、情報が記憶されている。詳しくは、後述する。
また、同じ情報からなるデータベース7が、各車両Aに記憶されている。
【0024】
走行情報取得部3は、自車両Aの走行情報を取得する機能部であり、各種の検出手段を備えている。これらの検出手段は、所望の走行情報を検出することができるものであれば、どのようなものであっても構わないが、例えば、位置情報、速度、加速度に関する情報を取得するためであれば、車輪の回転数を検出する検出手段を用いればよい。進行方向に関しては、運転手からの操作入力を受け付けるようにしてもよく、またヘルス状態については各種機器の異常を検出するようにしても構わない。
【0025】
また、車両Aにおいては自分の位置を正確に把握することが重要であることから、走行情報取得部3に、別途、列車位置特定部(図示略)を設けても構わない。この列車位置特定部は、自車両Aの位置情報を正確に把握する機能部であり、例えば、地図情報とタコジェネレータ、更にはGPS(Global Positioning System)によって特定することが考えられる。
【0026】
記録要求部4は、走行情報を、分散型記録システムに記録するための仮ブロック(記録要求)を出力する機能部である。仮ブロックの具体的内容については、後述する。
情報通信部5は、他の車両Aに対して、走行情報を通信する機能部である。
【0027】
また、
図2に示すように、各ノードBには、合意判定部8と、共有処理部9も設けられている。
合意判定部8は、仮ブロックに示される走行情報を各ノードBで共有することについて、所定の条件を満たしているか否かを判定する機能部である。
共有処理部9は、仮ブロックに示される走行情報の共有を行う機能部である。
合意判定部8及び共有処理部9の詳細については、後述する。
また、各ノードBは、自車両Aに固有の秘密鍵を保有しているとともに、全車両Aの各ノードBが保有する秘密鍵に対応する公開鍵を保有している。
【0028】
<運行管理方法>
次に、本実施形態の運行管理システム1を用いた運行管理方法について説明する。なお、以下の説明では、軌道上に車両A1、A2、A3,・・・Anがn台、この順で並んで走行している場合を例にし、車両A2が新たに走行情報を更新する場合について説明する。
【0029】
(ステップS1)
まず、
図3に示すように、車両A2に供えられた走行情報取得部3が、更新すべき走行情報を取得する。
自車両A2の走行情報は運行状況に応じて、時々刻々と変化していることから、高頻度に、たとえば1ミリ秒毎に走行情報を取得するのが一般的である。
具体的には、走行情報取得部3を構成する各検出手段が、位置情報、速度、加減速度、進行方向、ヘルス状態等といった走行情報を検出することによって、取得する。
なお、取得した走行情報は、そのハッシュ値に対して車両A1のノードB1が持つ秘密鍵により暗号化して電子署名が行われる。
【0030】
(ステップS2)
次に、車両A2は、情報通信部5を介して、他の車両Aの走行情報を取得する。
車両A2の運行は、自車両A2の走行情報に基づいてのみ運行しているのではなく、前後の車両Aの走行情報も併せて確認して運行することから、前後の車両A1、A3の走行情報についても取得する必要がある。
例えば、前を走る車両A1との距離が広がれば、速度を上げる必要があり、逆に後ろを走る車両A3との距離が広がれば、速度を落とす必要があるというように、前後の車両A1,A3の走行情報は、自車両A2の運行を決める上で重要な情報となる。
但し、自車両A2は、どの車両が前後の車両か特定する情報を持っていないので、このステップでは、全車両Aの走行情報を取得するか、自車両A2と直接通信できる範囲の車両A全ての走行情報を取得する。
なお、本ステップで他車両Aから取得する情報は、走行情報そのもの及び当該走行情報のハッシュ値を秘密鍵によって暗号化した電子署名である。
【0031】
(ステップS3)
次に、車両A2の記録要求部4が、仮ブロック(記録要求)を生成し、各車両AのノードBに対して出力する。
具体的には、ステップS2にて取得した他の車両の走行情報(特に位置情報)から、自車両A2の前後の車両A1及びA3を特定する。そして、車両A2が記録を希望する自車両A2の走行情報、前後の車両A1,A3の走行情報、これらの走行情報を取得した時刻、及び仮ブロックを生成し出力した車両が車両A2であるという情報をまとめて一つのブロックを形成し、このブロックを車両A1〜AnのノードB1〜Bnの全てに出力する。
この仮ブロックは、各車両Aの演算装置であるノードBに記憶されているデータベース7に、追加すべき情報の集合体である。
【0032】
図4は、仮ブロックとデータベース7に記憶されているブロックの関係を示す図である。この図において、右下の破線で囲われた部分が仮ブロックであり、実線で囲われた5つのブロックが、既にデータベース7に記録されているブロックである。
この図の例では、データベース7には、走行情報(A6〜A8)のブロックが記憶された後、走行情報(A4〜A6)のブロック、走行情報(A2〜A4)のブロック、走行情報(A5〜A7)のブロック、及び走行情報(A3〜A5)のブロックが順次記憶されたことが分かる。
【0033】
また、仮ブロックには、直前にデータベース7に登録されたブロックのハッシュ値も併せて含ませるようにする。例えば、今回の仮ブロックであれば、直前の走行情報(A3〜A5)のブロックをもとに生成れるハッシュ値が、含まれることになる。
ハッシュ値とは、元になるデータから一定の計算手順によって求められた、規則性のない値であり、同じデータからは必ず同じハッシュ値が得られるが、異なるデータからは必ず異なるハッシュ値が得られるという特性がある。
【0034】
このように、各ブロックにハッシュ値を含ませることで、改ざんを有効に検知することができる。例えば、
図4の例において、走行情報(A4〜A6)のブロックが改ざんされたとしても、改ざん後の走行情報(A4〜A6)のブロックについてハッシュ値を求めると、走行情報(A2〜A4)のブロックに記憶されているハッシュ値と異なることになり、改ざんがなされたことを検知することができる。
【0035】
また、本ステップにおいて、仮ブロックを生成する際には、他車両Aから受信した走行情報が正しいことを確認した上で生成する。
例えば、車両A2は、車両A1から、走行情報だけでなく、電子署名も受信している。したがって、車両A2のノードB2は、車両A1から受信した電子署名を、保有している車両A1の公開鍵をもとに復号化して走行情報のハッシュ値を得るとともに、受信した走行情報のハッシュ値を演算し、両者が一致するかを確認する。
【0036】
また、車両A2の記録要求部4が、生成した仮ブロックを各車両AのノードBに対して出力する際には、併せて、車両A2の記録要求部4が出力していることが分かるような識別情報も併せて出力することが好ましく、仮ブロック自体に電子署名を付して出力することが好ましい。
なお、本実施形態では、走行情報を他車両Aに送信する際に電子署名し、かつ、仮ブロックを出力する際にも電子署名をする方法について説明しているが、どちらか片方のみに電子署名をする方法でも構わない。
【0037】
(ステップS4)
次に、各車両AのノードBに含まれる合意判定部8は、車両A2の記録要求部4から受け付けた仮ブロックが、共有することについて所定の合意条件を満たしているか否かについて判定をする。
合意条件としては、例えば、仮ブロック又は走行情報が電子署名されていた場合に、公開鍵を用いて電子署名を複合化して得られるハッシュ値と、受信した仮ブロック又は走行情報から演算したハッシュ値が一致するかといった条件や、仮ブロックに走行情報やハッシュ値が含まれているか否か、仮ブロックには余計な情報が含まれているか否かといったデータフォーマットに関する条件や、仮ブロックに含まれる直前のブロックのハッシュ値が正しいかといった条件を例示することができる。
判定の結果、合意条件を満たしていると判断した場合、合意判定部8は、全ノードBに対して、仮ブロックを承認する旨の承認結果を出力する。
【0038】
(ステップS5)
次に、ステップS4にて各ノードBから出力された仮ブロックを承認する旨の出力数が、全ノードBの3分の2以上の数に達したか否かを判定する。
3分の2以上を要求するのは、改ざんを防止するためである。例えば、害意ある外部の者により、車両A1の記録要求部4を装って仮ブロックが出力されたとしても、同時に3分の2以上のノードBが汚染されなければ、当該仮ブロックを承認することはなく、その仮ブロックがデータベース7に追加されることはない。
なお、ステップS4での各車両Aの出力は、全ノードBに向けてなされるので、各ノードBにて3分の2以上の承認がなされたか判別することができる。
本ステップにおいて3分の2以上に達しない場合は、不正が行われた可能性があり、本システムでは解決できないため、全列車を緊急停止させ、本運行管理方法を終了し、仮ブロックはデータベース7に記録されることはない。
【0039】
(ステップS6)
次に、ステップS5にて判定の結果、全ノードBの3分の2以上の数に達した場合は、各ノードBの共有処理部9が仮ブロックを、登録時刻とともに、それぞれデータベース7に追加する。
なお、ステップS5の判定の結果が全ノードBの3分の2以上の数に達している場合において、承認しない旨の出力をしたノードBについては、当該ノードBが受け付けた仮ブロックはデータベース7に保存されずに消去され、代わりにステップS5にて他のノードBにおいて承認された仮ブロックがデータベース7に追加される。これは、定期的な周期でデータベース7の整合性チェックと同期(書換え)を行うことによって達成することができる。
【0040】
(ステップS7)
次に、車両A2の制御処理部6は、登録された仮ブロックの内容に基づき、自車両A2の制御条件を適宜決定する。制御条件としては、速度、加減速度、進行方向などを例示することができる。
具体的には、
図5に示すように、まず制御処理部6は、どの車両が車両A2の前後の車両なのかを特定する(ステップS11)。次に、制御処理部6は、最新のブロックの中身をチェックする(ステップS12)。そして、そのブロックに前後の車両A1、A3の走行情報が含まれているかを確認する(ステップS13)。車両A1及びA3の情報を含まれていれば、その情報を使用して制御条件を決定する(ステップS14)。含まれていなければ、一つ前の(一つ古い)ブロックの中身をチェックし(ステップS15)、ステップS13に戻る。
【0041】
本実施形態の運行管理システム1及び運行管理方法によれば、各ノードBのデータベース7に、同じ内容の走行情報が記録されている。
したがって、仮にノードBのうちの一つが害意ある外部の者によって改ざんされたとしても、データの消失等の事態を免れることができる。
また、データベース7の走行情報は、ブロックごとに記憶されているところ、前後のブロックはハッシュ値によって連続性が担保されている。これにより、途中のブロックについて改ざんがなされたとしても、それ以降のブロック全てを改ざんしない限り、ハッシュ値を根拠に改ざんを検出することができる。
【0042】
なお、上記実施形態においては、仮ブロックの生成について、自車両Aの走行情報だけでなく前後の車両Aの走行情報も含めたブロックを生成する場合について説明したが、必ずしもこれに限られない。自車両Aの走行情報のみで仮ブロックを生成しても構わないし、全車両Aの走行情報をもとに仮ブロックを生成しても構わない。
【0043】
[第2の実施形態]
次に、本発明の第2の実施形態の運行管理システム21及び運行管理方法について説明する。
本実施形態の運行管理システム21は、各ノードBのデータベース7には、走行情報そのものではなく、走行情報に基づいて形成されたハッシュ値が記憶されている点で、第1の実施形態と異なり、同様の部分については適宜説明を省略する。
【0044】
<運行管理システム>
本実施形態の運行管理システム21は、
図6に示すように、第1の実施形態に加えて、管理装置10が設けられている。
管理装置10は、通信部11と、走行情報データベース12と、ハッシュ値形成部13と、制御部14とを有している。この管理装置10は、各車両Aに設けられているのではなく、例えば地上のコントロールセンター等に設けられている。
【0045】
通信部11は、各車両Aと通信を行う機能部であり、各車両Aから出力された走行情報、記録要求部4が出力した仮ブロック、及び合意判定部8が出力する承認結果を受け付けるとともに、各車両Aに対してハッシュ値形成部13が生成したハッシュ値及び走行情報データベース12上の位置であるアドレス値を出力する。
走行情報データベース12には、第1の実施形態のデータベース7と同様に、ブロックごとに各車両Aの走行情報が記録されているが、
図7に示すように、ブロックごとにアドレス値も記憶されている。
【0046】
ハッシュ値形成部13は、ブロックに含まれる走行情報に基づいてハッシュ値を形成する機能部である。
制御部14は、通信部11が受信した仮ブロックの情報を走行情報データベース12に記憶させる等の各種の制御を行う機能部である。
【0047】
また、本実施形態の分散型記憶システム22は、各車両Aの演算装置であるノードBだけでなく、管理装置10を含めて形成されている。
また、各ノードBに含まれるデータベース7には、
図8に示すように、走行情報そのものは記憶されておらず、走行情報データベース12に保存する走行情報に対応するハッシュ値と、ブロックのアドレス値と、ブロックが登録された時刻と、ブロックを出力した車両Aに関する情報が、ブロックごとに記憶されている。
【0048】
<運行管理方法>
次に、本実施形態の運行管理システム21を用いた運行管理方法について説明する。
本実施形態では、
図9に示すように、第1の実施形態と同様にステップS1及びステップS2を行う。
また、ステップS3についても第1の実施形態と略同様に行うが、仮ブロックを各車両Aだけでなく、管理装置10に対しても出力する。
また、同様に、ステップS4についても第1の実施形態と略同様に行うが、承認結果を各車両Aだけでなく、管理装置10に対しても出力する。
【0049】
(ステップS5)
次に、ステップS5について第1の実施形態と同様に、各ノードBから出力された仮ブロックを承認する旨の出力が、全ノードBの3分の2以上に達したか否かを判定する。
本ステップにおいて3分の2以上に達しない場合は、不正が行われた可能性があり、本システムでは解決できないため、全列車を緊急停止させ、本運行管理方法を終了し、仮ブロックは走行情報データベース12には記録されない。
【0050】
(ステップS21)
次に、ステップS5にて各ノードBから出力された仮ブロックを承認する旨の出力が、3分の2以上に達した場合は、ハッシュ値形成部13は、仮ブロックの各走行情報についてハッシュ値を形成する。
また、制御部14は、仮ブロックを走行情報データベース12に記録する。
【0051】
(ステップS22)
次に、制御部14は、ステップS21で記録された仮ブロックの走行情報データベース12上の位置であるアドレス値を読み出し、
図8に示すように、これとステップS21で形成されたハッシュ値と、ハッシュ値に対応する走行情報が取得された時刻及びその車両Aを特定する情報と、仮ブロックを出力した車両に関する情報を、通信部11を介して各ノードBに対して出力する。
【0052】
(ステップS23)
各ノードBの共有処理部9は、ステップS22で受け付けたアドレス値と、ハッシュ値と、ハッシュ値に対応する走行情報が取得された時刻及びその車両Aを特定する情報と、仮ブロックを出力した車両に関する情報を、登録時刻と合わせてデータベース7に追加する。
【0053】
(ステップS24)
次に、車両A2の制御処理部6は、管理装置10の走行情報データベース12に登録された内容に基づき、自車両A2の制御条件を適宜決定する。制御条件としては、速度、加減速度、進行方向などを例示することができる。
具体的には、
図10に示すように、まずどの車両が車両A2の前後の車両なのかを特定する(ステップS31)。次に、制御処理部6は、最新のブロックの中身をチェックする(ステップS32)。そして、そのブロックに前後の車両A1、A3の走行情報が含まれているかを確認する(ステップS33)。
【0054】
車両A1及びA3の情報を含まれていれば、そのアドレス値をもとに、管理装置10の走行情報データベース12に記憶されている当該アドレス値と一致するブロックから、車両A1及び車両A3の走行情報を取得して、制御条件を決定する(ステップS34)。
【0055】
ステップS33において、車両A1及び車両A3の走行情報が含まれていなければ、一つ前の(一つ古い)ブロックの中身をチェックし(ステップS35)、ステップS33に戻る。
【0056】
本実施形態の運行管理システム21及び運行管理方法によれば、各ノードBのデータベース7には、キャッシュ値とアドレス値しか記憶されていないので、各ノードBのデータベース7に記憶される情報量を少なくすることができ、処理速度を向上させることができる。
【0057】
また、本実施形態によっても、走行情報データベース12に登録された内容につき、害意ある外部の者によって改ざんされたとしても、改ざんを検知することができる。
すなわち、走行情報データベース12のあるブロックが改ざんされた場合、当該ブロックのハッシュ値は変化することから、当該ブロックに対応する各ノードBに記憶されたハッシュ値と異なることになり、改ざんを検知できる。なお、ブロックの対応は、アドレス値によって行うことができる。
【0058】
また、第1の実施形態と同様に、走行情報データベース12に記憶されている走行情報は、ブロックごとに記憶されているところ、前後のブロックはハッシュ値によって連続性が担保されているので、ハッシュ値を根拠に改ざんを検出することができる。
【0059】
なお、上記実施形態では、仮ブロックの走行情報に対応するハッシュ値の形成を管理装置10側のみで行う場合について説明したが、各車両A側でも同時に行っても構わず、管理装置10側からはアドレス値のみを出力するようにしても構わない。
【0060】
[第3の実施形態]
次に、本発明の第3の実施形態の運行管理システム31及び運行管理方法について説明する。
本実施形態の運行管理システム31も第2の実施形態と同様に、各ノードBのデータベース7には、走行情報そのものではなく、走行情報に基づいて形成されたハッシュ値が記憶されているが、第2の実施形態と異なり、管理装置は設けられず、各車両Aに別途データベース15が設けられている。以下では、上述した第1の実施形態及び第2の実施形態と同様の部分については適宜説明を省略する。
【0061】
<運行管理システム>
本実施形態の運行管理システム31は、
図11に示すように、第2の実施形態の運行管理システム21と略同様な構成となっているが、管理装置が設けられておらず、各車両AにノードBに含まれるデータベース7とは別に、データベース15が備えられている。
データベース15には、
図12に示すように、自車両Aの走行情報に関する情報がその走行情報の取得時刻とともに記録されている。
【0062】
各ノードBに含まれるデータベース7には、
図13に示すように、第2の実施形態と略同様に、走行情報そのものは記憶されておらず、特定の車両Aと対応付けられた走行情報のハッシュ値と、ブロックが登録された時刻と、ブロックを出力(登録)した車両に関する情報が、ブロックごとに記憶されている。
なお、第2の実施形態のデータベースとは異なり、本実施形態には管理装置10が設けられていないことから、アドレス値は記録されていない。
【0063】
<運行管理方法>
次に、本実施形態の運行管理システム31を用いた運行管理方法について説明する。なお、以下の説明では、第1の実施形態と同様に、車両A2が新たに走行情報を更新する場合について説明する。
【0064】
(ステップS41)
まず、本実施形態では、
図14に示すように、第1の実施形態と略同様に自車両の更新すべき走行情報を取得する。
但し、第1の実施形態と異なり、本実施形態では、取得した走行情報についてハッシュ値を演算し、このハッシュ値を秘密鍵で暗号化した情報を、当該走行情報を取得した時刻とともに各車両Aに対して出力する。
また、データベース15に、走行情報と、当該走行情報を取得した時刻を記憶させる。
【0065】
(ステップS42)
次に、車両A2は、情報通信部5を介して、ステップS41で暗号化された他の車両Aの走行情報のハッシュ値と、当該走行情報を取得した時刻を取得する。なお、第1の実施形態と同様に、取得するのは、全車両Aの走行情報でも、自車両A2と直接通信できる範囲の車両A全ての走行情報のハッシュ値でも構わない。
【0066】
(ステップS43)
次に、車両A2の記録要求部4が、仮ブロック(記録要求)を生成し、各車両AのノードBに対して出力する。
具体的には、仮ブロックには、
図13に示すように、車両A2が記録を希望する自車両A2及び前後の車両A1及びA3の走行情報のハッシュ値と、走行情報を取得した時刻とを、各車両A1〜A3と対応付けた情報が含まれるようにする。また、仮ブロックには、直前のブロックのハッシュ値と、ブロックを生成した車両が車両A2であるという情報も含まれるようにする。そして、この仮ブロックを車両A1〜AnのノードB1〜Bnの全てに出力する。
仮ブロックを出力する際は、電子署名を付していることが好ましい。
【0067】
なお、仮ブロックを生成する際には、他車両A1及びA3から受領した暗号化されたハッシュ値について、公開鍵をもとに復元化できるか試み、復元できることを確認してからブロックを生成するのが好ましい。
【0068】
(ステップS44)
次に、各車両AのノードBに含まれる合意判定部8は、車両A2の記録要求部4から受け付けた仮ブロックが、共有することについて所定の合意条件を満たしているか否かについて判定する。
合意条件としては、例えば、仮ブロックに電子署名が付されている場合には、公開鍵を用いて電子署名を複合化して得られるハッシュ値と、受信した仮ブロックから演算したハッシュ値が一致するかといった条件や、仮ブロックに含まれる暗号化されたハッシュ値について公開鍵をもとに復元できるかといった条件や、データフォーマットは正しいかといった条件や、仮ブロックに含まれる直前ブロックのハッシュ値が正しいか否かといった条件を挙げることができる。
【0069】
(ステップS45)
次に、ステップS44において各ノードBから出力された仮ブロックを承認する旨の出力が、全ノードBの3分の2以上に達したか否かを判定する。
本ステップにおいて3分の2以上に達しない場合は、不正が行われた可能性があり、本システムでは解決できないため、全列車を緊急停止させ、本運行管理方法を終了し、仮ブロックはデータベース7には記録されない。
【0070】
(ステップS46)
次に、ステップS45にて判定の結果、全ノードBの3分の2以上の数に達した場合は、各ノードBの共有処理部9が仮ブロックを、登録時刻とともに、それぞれデータベース7に追加する。
【0071】
(ステップS47)
次に、車両A2の制御処理部6は、自車両A2の制御条件を適宜決定する。制御条件としては、速度、加減速度、進行方向などを例示することができる。
【0072】
具体的には、
図15に示すように、まずどの車両Aが車両A2の前後の車両Aなのかを特定する(ステップS51)。次に、制御処理部6は、最新のブロックの中身をチェックする(ステップS52)。そして、そのブロックに前後の車両A1、A3の走行情報が含まれているかを確認する(ステップS53)。
【0073】
ステップS53での確認の結果、ブロックに車両A1及びA3の情報が含まれていれば、車両A2の制御処理部6は、そのブロックに含まれる車両A1及びA3の走行情報のハッシュ値、及びこれらの走行情報を取得した時刻を取得する(ステップS54)。なお、ステップS53での確認の結果、ブロックに車両A1及びA3の情報が含まれていなければ、一つ前のブロックをチェックし(ステップS55)、ステップS53に戻る。
【0074】
(ステップS56)
次に、ステップS54で取得した時刻をもとに、車両A2の情報通信部5を介して、車両A1及び車両A3のデータベース15に記憶されている走行情報を問い合わせる。
そして、問合せを受けた車両A1及び車両A3の制御処理部6が、データベース15に記録されている走行情報のうち、問合せを受けた時刻に対応するものを車両A2に出力する。
【0075】
(ステップS57)
車両A2の制御処理部6は、ステップS56で受け付けた走行情報について、ハッシュ値を演算し、ステップS54で取得したハッシュ値と比較する。
比較の結果、一致していれば、ステップS56で取得した車両A1及び車両A3の走行情報をもとに、制御条件を決定する。
比較の結果、一致しなければ、車両A1又は車両A3の走行情報が改ざんされた可能性があるため、本システムでは解決できないことから、全列車を緊急停止させ、本運行管理方法を終了する。
【0076】
本実施形態の運行管理システム31及び運行管理方法によれば、第2の実施形態と同様に、各ノードBのデータベース7には、走行情報自体は記録されておらず、走行情報のハッシュ値しか記憶されていないので、各ノードBのデータベース7に記憶される情報量を少なくすることができる。
加えて、本実施形態では、ブロックを登録するプロセスにおいて、各車両AのノードBから出力される情報は、走行情報のハッシュ値のみであり、走行情報そのものを出力しないで済むことから、通信負荷を下げることができ、処理速度を向上させることができる。
【0077】
また、本実施形態によっても、データベース7に登録された内容につき、害意ある外部の者によって改ざんされたとしても、改ざんを検知することができる。
また、データベース7に記憶されている走行情報は、ブロックごとに記憶されているところ、前後のブロックはハッシュ値によって連続性が担保されているので、ハッシュ値を根拠に改ざんを検出することができる。
【0078】
[第4の実施形態]
次に、本発明の第4の実施形態の運行管理システム41及び運行管理方法について説明する。
本実施形態の運行管理システム41は、
図16に示すように、第1の実施形態の運行管理システム1に加えて、地上側に複数のチェックセンサ16を設けた点に特徴があり、第1の実施形態と同様な部分については説明を省略する。
各チェックセンサ16は、軌道上の特定地点に設けられたセンサ、カメラ、アクセルカウンタ等を備えており、当該地点に車両Aが存在するか否かを検出し、この検出結果を各車両Aに通知する。
また、本実施形態の運行管理方法は、常時、各チェックセンサ16によって、車両Aの有無を検出し、この検出結果を各車両Aに通知する。
【0079】
本実施形態では、常時、チェックセンサ16によって車両Aの有無を検出しているので、各ノードBのデータベース7に記憶された走行情報が正しいか否かを確認することができ、より安全性を向上させることができる。
【0080】
[第5の実施形態]
次に、本発明の第5の実施形態の運行管理システム及び運行管理方法について説明する。
本実施形態の運行管理システムは、第4の実施形態と同様に、地上側に複数のチェックセンサ16を設けているが、運行管理方法が第4の実施形態と異なる。以下の説明では、上述の実施形態と同様の部分については適宜説明を省略する。
【0081】
(ステップS61)
本実施形態では、まず、
図17に示すように、任意の車両Aからの交信が遮断していないかを、各車両Aの制御処理部6が確認する。交信が途絶していない場合は、遮断するまで本ステップを繰り返す。
【0082】
(ステップS62)
ステップS61での結果、交信が遮断した車両Aが存在した場合、データベース7に保存されている最新の走行情報から、交信が遮断した車両Aの位置を特定する。例えば、車両A2との交信が遮断したのであれば、最新の走行情報には遮断直前の車両Aの位置情報が記憶されていることから、この情報をもとに車両A2の位置情報を特定する。
【0083】
(ステップS63)
次に、ステップS62で特定された位置情報をもとに、付近のチェックセンサ16によって、車両Aの有無を検出する。
【0084】
(ステップS64)
ステップS63にて車両を検知した場合、チェックセンサ16は、車両Aを検知した旨を各車両AのノードBに出力する。ここで、車両Bを検知した旨の情報は、チェックセンサ16の置かれている位置に車両Aが存在することを知らせる情報であり、車両Aの位置情報に該当するので、走行情報に該当する。
【0085】
(ステップS65)
次に、各車両AのノードBに含まれる合意判定部8は、ステップS64によって出力されたチェックセンサ16からの走行情報について、共有するための所定の合意条件を満たしているか否かを判定する。
合意条件としては、例えば、真正にチェックセンサ16から出力した走行情報か否かといった条件を例示することができる。
判定の結果、合意条件を満たしていると判断した場合は、合意判定部8は、各ノードBに対して、ステップS64で出力された走行情報を承認する旨の出力をする。
【0086】
(ステップS66)
次に、ステップS65にて、各ノードBから出力された走行情報を承認する旨の出力が、3分の2以上に達したか否かを確認する。
達していない場合は、車両Aとは交信が遮断したが、車両Aの位置は検出できない場合に該当するとして、後述するステップS69に移行する。
【0087】
(ステップS67)
ステップS66において、承認する旨の出力が3分の2以上に達した場合は、共有処理部9が当該走行情報をデータベース7に追加する。
また、各車両Aの制御処理部6は、直ちに各車両Aに対して、緊急アラートを発信するとともに、チェックセンサ16の前後一定距離について、電気的に封鎖するように封鎖情報を発信する。一定距離としては、例えば100m程度を例示できる。
【0088】
封鎖の仕方としては、適宜の方法が考えられるが、例えばチェックセンサ16の後方で一定距離以内にある車両Aについては直ちに停止し、前方で一定距離以内にある車両Aについては、直ちに一定距離以上離れるよう前方に進行させることが考えられる。
【0089】
(ステップS68)
次に、ステップS67での封鎖情報をもとに、各車両Aの制御処理部6は、自車両Aの制御条件や運行区間を適宜決定する。
例えば、チェックセンサ16よりも一定距離以上後方にある車両Aについては、その範囲内で折り返し輸送をし、一定距離以上前方にある車両Aについては、その範囲内において折り返し輸送をすることが考えられる。
【0090】
(ステップS69)
ステップS63にて、車両Aを検知しない場合は、チェックセンサ16は検知しない旨を各ノードBに出力する。
これを受けて、各車両Aの制御処理部6は、直ちに全車両Aに対して、緊急アラートを発信するとともに、チェックセンサ16の前後一定距離について、電気的に封鎖するように発信する。一定距離としては、ステップS67にて定める距離よりも長くすることが好ましく、例えば500m程度を例示することができる。封鎖の仕方としては、ステップS37と同様である。
【0091】
(ステップS70)
次に、ステップS69での封鎖情報をもとに、各車両Aの制御処理部6は、自車両Aの制御条件や運行区間を適宜決定する。具体的にはステップS68の場合と同様な方法で制御すればよい。
【0092】
本実施形態によれば、故障等により通信が遮断される車両Aがあった場合に、人によるチェックを排除し、自動的に緊急アラートを発信することができ、安全性を向上させることができる。また、残りの車両Aについて、安全な範囲において自動的に運転を継続することができる。
【0093】
なお、上述した運行管理システム1,21,31,41における各処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、CD−ROM、DVD−ROM、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしてもよい。
【0094】
また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組
み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。