説明

駅務機器、駅務システム

【課題】運賃計算に障害が発生した場合でも、プログラムを修正することなく同様な障害の発生を事前に防止する。
【解決手段】運賃計算プログラムの不具合により特定の媒体情報に対して障害が発生した場合の障害発生パターンと、当該障害を回避するための障害回避アクションとの組を、障害防止ルールとして記憶手段に記憶しておく。乗車媒体から読み取った媒体情報が記憶手段に記憶されている障害発生パターンと一致するか否かを判定し、媒体情報と障害発生パターンとの一致を判定した場合に、当該障害発生パターンに対応する障害防止ルールで指定された障害回避アクションを実行する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、自動改札機や自動精算機などの駅務機器に関し、特に、運賃計算プログラムの不具合による障害発生を防止するための技術に関する。
【背景技術】
【0002】
自動改札機や自動精算機などの駅務機器には、運賃計算プログラムが搭載されており、このプログラムに従って利用料金の算出が行われる。例えば、自動改札機にプリペイドカードや、定期券とプリペイドカードの機能を併せ持つ複合券などの乗車媒体が投入されると、運賃計算プログラムを用いて運賃計算を行い、算出した運賃を乗車媒体の残額から引き去って徴収するようにしている。
【0003】
しかるに、プログラムの欠陥が原因で、運賃の計算に誤りが発生し、正規の運賃よりも高い運賃を徴収してしまうことがある。このような障害が発生すると、利用者に不測の損害を与えることになるから、プログラムの不具合による料金の誤収受を防ぐための対策が必要となる。この対策としてよく知られているのが、プログラム多重化システムである。
【0004】
プログラム多重化システムは、プログラムの信頼性を向上させるため、独立して開発された同じ動作を行なうプログラムを2つ以上具備し、入力データに対して各プログラムを実行させて、それらの実行結果を突合して全てに差異がないことを確認することにより、プログラムの実行結果の正しさを検証する冗長系システムである。運賃計算にプログラム多重化を適用した駅務システムはすでに運用されており、後掲の特許文献1〜3にもこのようなシステムが開示されている。
【0005】
特許文献1では、乗車媒体から読み取った媒体情報が、障害を発生するパターンと一致するか否かを判定し、一致する場合はただちにNG処理を行い、一致しない場合は読み取った媒体情報に対して、2つの運賃計算プログラムで算出した結果の突合(実行結果を出力項目ごとに比較すること)を実行し、結果が一致しない場合は、新たな障害発生パターンとして登録した後にNG処理を行うシステムが開示されている。
【0006】
特許文献2では、自動改札機と他の駅務機器のそれぞれにおいて運賃計算プログラムによる運賃計算を実行し、それらの計算結果を突合して、突合結果が一致しない場合は、精算処理を中断して係員対応とするシステムが開示されている。また、自動改札機において運賃計算プログラムに不具合があることが判明した場合に、他の駅務機器へ問合せを行い、他の駅務機器での算出結果を用いて自動改札機での精算処理を実行するシステムが開示されている。さらに、自動改札機において特定条件下で運賃計算の誤りが発生することが判明した場合は、係員対応によって、当該条件についてのみ他の駅務機器での算出結果を用いて精算処理を行うように設定することも開示されている。
【0007】
特許文献3では、複数のプログラムを用いて利用料金を算出し、それぞれの料金を照合して、料金が不一致の場合は所定の処理を禁止するとともに、不一致データを上位装置へ通知し、上位装置で係員がデータを確認し、正しい料金となる新たなプログラムデータを作成し、各駅務機器へ新しいプログラムデータを送信してプログラムを修正するシステムが開示されている。
【0008】
【特許文献1】特開2006−293677号公報
【特許文献2】特開2005−135270号公報
【特許文献3】特開2007−114848号公報
【発明の開示】
【発明が解決しようとする課題】
【0009】
運賃計算プログラムに多重化を採用することで、各プログラムの計算結果に差異が生じた場合に、障害発生を検知することができるが、プログラムが2つの二重化システムの場合は、どちらかのプログラムに欠陥があることが判るにとどまり、どちらが正しいプログラムかは自動的に判断できない。したがって、障害発生が検知された場合、従来は、特許文献1のように、検知時点で扉を閉じるなどのNG処理を実行するしかなく、正しい計算結果に基づいて処理を行うことはできなかった。しかし、この方法では障害発生時に一律にNG処理へ移行するため、その都度係員の対応が必要となるとともに、利用者の円滑な通行が妨げられる割合が高くなるという問題がある。
【0010】
一方、特許文献2に開示されている、他の駅務機器での計算結果を用いて処理を行う方法を採用すれば、自動改札機の稼動を停止させなくて済むため、上述した係員対応や通行阻害の問題は解消される。しかしながら、この方法では、他の駅務機器の運賃計算プログラムにも不具合があった場合には、依然として運賃計算の誤りが発生することになり、運賃の誤収受を防止することができないという問題がある。
【0011】
したがって、最終的には、特許文献3のように、係員が障害発生に係るデータを検証したうえで、運賃計算プログラムの欠陥を除去する作業が必要となる。ところが、欠陥除去のためにプログラムを修正すると、予期しない動作を引き起す可能性があり、この場合、修正による影響が波及する範囲を事前に完全に把握することは至極困難である。このため、現場で障害が発生した場合に、プログラム修正で危急に対応することは、予想外の二次障害を誘発する可能性があり、リスクが高い。
【0012】
本発明は、上述した事情に鑑み、運賃計算に障害が発生した場合でも、プログラムを修正することなく同様な障害の発生を事前に防止できる駅務機器および駅務システムを提供することを目的とする。
【課題を解決するための手段】
【0013】
本発明に係る駅務機器は、乗車媒体に記録されている媒体情報を読み取り、当該媒体情報に基づき運賃計算プログラムにより利用料金を算出する駅務機器であって、運賃計算プログラムの不具合により特定の媒体情報に対して障害が発生した場合の障害発生パターンと、当該障害を回避するための障害回避アクションとの組が、障害防止ルールとして記憶されている記憶手段を備えている。また、読み取られた媒体情報が記憶手段に記憶されている障害発生パターンと一致するか否かを判定する判定手段と、この判定手段が媒体情報と障害発生パターンとの一致を判定した場合に、当該障害発生パターンに対応する障害防止ルールで指定された障害回避アクションを実行する処理手段とを備えている。
【0014】
このような本発明によると、運賃計算プログラムの不具合に基づく障害が発生した際に、その障害発生パターンに対応する障害回避アクションが抽出され、当該アクションが実行される。このため、障害発生時の対応としてプログラムを修正しなくても、あらかじめ用意された障害回避アクションを実行することで、処理が適正に行われ、同様の障害が発生するのを未然に防止することができる。
【0015】
本発明においては、運賃計算プログラムが複数のプログラムからなる場合、障害回避アクションに、複数のプログラムから選択されたいずれかの運賃計算プログラムのプログラム名を記述しておき、処理手段が、選択された運賃計算プログラムを実行するような実施形態を採用することができる。これによると、正しく動作する運賃計算プログラムを障害回避アクションにおいて指定しておくことにより、運賃計算プログラムの修正を行なわなくとも、正しい運賃計算結果を用いた処理を行うことが可能となる。
【0016】
本発明においては、障害回避アクションに、ネットワーク上のリソースとして指定された運賃計算プログラムのプログラム名を記述しておき、処理手段が、指定された運賃計算プログラムを実行するような実施形態を採用してもよい。これによると、他の装置が保有する運賃計算プログラムを指定して実行することにより、同じ端末内でプログラムを多重化する必要がなくなり、多重化システムの設計を柔軟に行なえる利点がある。
【0017】
本発明においては、障害回避アクションに、予め算出した正しい運賃計算結果を記述しておき、処理手段が、運賃計算プログラムを実行することなく、上記運賃計算結果に基づく利用料金を用いて処理を行うような実施形態を採用してもよい。これによると、事前に正しい計算結果を求めて、これをアクション中に含めておくことにより、運賃計算プログラムの修正を行なわなくとも、正しい運賃計算結果を用いた処理を行うことが可能となる。
【0018】
次に、本発明に係る駅務システムは、上述した駅務機器と、当該駅務機器に接続された管理装置とを有する駅務システムであって、障害が発生した媒体情報についての障害発生パターンを生成して管理装置へ送信する障害発生パターン生成手段を備えている。管理装置は、障害発生パターン生成手段から送られてきた障害発生パターンに対する障害回避アクションを作成するための障害回避アクション編集手段を有する。また、管理装置は、障害発生パターンと、これに対応して障害回避アクション編集手段で作成された障害回避アクションとの組を、障害防止ルールとして登録し管理する障害防止ルール管理手段を有する。
【0019】
このような本発明によると、駅務機器で運賃計算プログラムの不具合に基づく障害が発生した際に、その障害発生パターンが管理装置へ送信されるので、当該パターンの検証に基づき、障害回避アクション編集手段により障害回避アクションを作成することができる。そして、障害が発生した都度、障害発生パターンと障害回避アクションの組からなる障害防止ルールを登録することができる。このため、障害発生時の対応としてプログラムを修正しなくても、障害発生パターンに対応した障害回避アクションを実行することで、処理が適正に行われ、同様の障害が発生するのを未然に防止することができる。
【0020】
本発明においては、駅務機器が複数の駅務機器からなる場合、障害防止ルール管理手段が、登録した障害防止ルールを各駅務機器へ配信する実施形態を採用してもよい。これによると、管理装置から各駅務機器へ障害防止ルールを一斉に配信することで、どの駅務機器においても運賃計算の障害が発生するのを未然に防止することができる。
【0021】
本発明においては、障害発生パターンを論理式で記述して作成するための障害発生パターン編集手段を更に備えている実施形態を採用してもよい。これによると、論理式によって障害発生パターンを汎化(包括化)して記述することもできるため、障害を引き起こす全ての媒体情報を障害発生パターンとして生成する必要がなく、障害防止ルールの管理が容易になるとともに、パターン照合の高速化が可能となる。
【発明の効果】
【0022】
本発明によれば、運賃計算に障害が発生した場合でも、プログラムを修正することなく、同様な障害の発生を事前に防止することができる効果がある。
【発明を実施するための最良の形態】
【0023】
最初に、後述の実施形態の前提となるプログラム多重化システムについて簡単に説明する。プログラム多重化システムは、突合を行なうタイミングにより、「同期突合型」と「遅延突合型」の2つのタイプに分けられる。以下では、説明を単純化するため、2つのプログラムを具備した二重化冗長システムを例に挙げる。
【0024】
図15は、同期突合型のプログラム多重化システムを示している。同期突合型の場合は、対象システム(例えば自動改札装置)が2つのプログラムA、Bを保有し、入力情報に対してそれぞれのプログラムによる処理を同時に実行し、それらの実行結果を突合する。つまり、突合のタイミングはプログラムA、Bの実行時である。突合結果において双方の実行結果に差異がある場合は、2つのプログラムA、Bのどちらかに障害を発生させる欠陥があるとみなす。
【0025】
図16は、遅延突合型のプログラム多重化システムを示している。遅延突合型の場合は、対象システム(例えば自動改札装置)が1つのプログラムAを保有するとともに、上位装置(例えばPC)がもう1つのプログラムB(対照プログラム)を保有している。そして、対象システムがプログラムAによる処理を実行した一定期間内のすべての入力情報に対して、一定期間経過後に上位装置が同じ入力情報に対してプログラムBによる処理を実行し、双方の実行結果を事後的に突合する。つまり、突合のタイミングは、プログラムAの実行から一定期間経過後である。この場合も、突合結果において双方の実行結果に差異があれば、2つのプログラムA、Bのどちらかに障害を発生させる欠陥があるとみなす。
【0026】
以下、本発明の実施形態につき、図を参照しながら説明する。
【0027】
図1は、本発明の第1実施形態のシステム構成図である。ここでは、本発明に関係する構成要素のみを機能ブロックとして表してある。本実施形態においては、上述した同期突合型のプログラム多重化システムを採用している。
【0028】
1は駅に設置された駅務機器としての自動改札装置、2は自動改札装置1と回線で接続された管理装置である。自動改札装置1は実際には複数台設置されるが、図1では1台のみ図示してある。管理装置2は、例えば駅の係員室や管理センターなどに設置されたサーバからなる。自動改札装置1および管理装置2により駅務システムが構成される。
【0029】
自動改札装置1は、運賃算出処理部10を備えている。運賃算出処理部10において、11は、乗車券から読み取った媒体情報aと、後述の障害防止ルールfとに基づいて、運賃計算障害の発生を防止するための処理を行う障害防止処理部である。12は運賃計算プログラムAにより運賃計算を行う運賃計算部、13は運賃計算プログラムBにより運賃計算を行う運賃計算部、14は運賃計算部12,13での計算結果b、cを突合して突合結果dを出力する計算結果突合部である。15は、計算結果突合部14での突合において計算結果b、cが一致しない場合に、後述する障害発生パターンeを生成して管理装置2へ送信する障害発生パターン生成部である。16は、管理装置2から配信される障害防止ルールfを管理するローカル障害防止ルール管理部、17は当該障害防止ルールfを蓄積したローカル障害防止ルールDB(DBはデータベース;以下同様)である。
【0030】
管理装置2は、マスター障害防止ルール管理部21、マスター障害防止ルールDB22、障害回避アクション編集部23、障害発生パターン編集部24を備えている。マスター障害防止ルール管理部21は、自動改札装置1から送られてくる障害発生パターンeを受信・収集して、マスター障害防止ルールDB22に格納して管理する。また、障害発生パターン編集部24で作成された障害発生パターンと、障害回避アクション編集部23で作成された障害回避アクションとの組を障害防止ルールとしてマスター障害防止ルールDB22に格納する。さらに、マスター障害防止ルールDB22に格納されている障害防止ルールを一定時間毎に自動改札装置1に送信し、自動改札装置1における障害防止ルールを更新する。
【0031】
障害回避アクション編集部23は、UIF(ユーザーインターフェイス)から構成される。ここでは、自動改札装置1から送られてくる障害発生パターンeに対して、UIFの操作により、障害を回避するための障害回避アクションを作成する。
【0032】
障害発生パターン編集部24もUIFから構成される。ここでは、自動改札装置1から送られてくる障害発生パターンeに対する障害原因や影響範囲などの精査結果に基づき、UIFの操作により、障害発生に関係のない属性を削除したり、障害発生を引き起す属性の範囲を設定したりして、新たな障害発生パターンを論理式で記述して作成する。
【0033】
図2は、自動改札装置1の構成をハードウェアのブロックで示した図である。30はLAN(Local Area Network)などの通信回線100を介して管理装置2と通信を行うための通信制御装置である。31は運賃の計算、障害発生の判定、通行可否の判定などの処理を実行するとともに、自動改札装置1の動作を制御するCPUである。32はデータを一時的に格納するためのメモリである。33は切符や定期券、プリペイドカードなどの乗車媒体に記録されている媒体情報を読み取る媒体読取部である。媒体読取部33は、磁気券の情報を読み取る磁気ヘッドや、非接触カードの情報を読み取るアンテナから構成される。34はCPU31での通行可否の判定結果に基づき、自動改札装置1に備わるゲート扉(図示省略)の開閉を制御する扉開閉制御部である。35は利用客に対して案内表示などを行う表示部である。
【0034】
36はハードディスクなどからなる記憶装置であって、運賃計算プログラム(A)41、運賃計算プログラム(B)42、計算結果突合プログラム43が格納されている。37もハードディスクなどからなる記憶装置であって、障害防止処理プログラム44、障害発生パターン生成プログラム45、ローカル障害防止ルール管理プログラム46、および図1に示したローカル障害防止ルールDB17が格納されている。この例では、2つの記憶装置36,37が設けられているが、1つの記憶装置にすべてのプログラム41〜46とデータベース17を格納してもよい。
【0035】
運賃計算プログラム41、42は、ICカードや磁気券などの乗車媒体に記録されている媒体情報を入力とし、運賃データに基づいて運賃計算や残額計算を行うとともに、不正使用の有無や有効期間内の使用か否かなどの判定を行い、それらの結果を出力するプログラムである。
【0036】
計算結果突合プログラム43は、運賃計算プログラム41、42のそれぞれから出力される計算結果を比較して、差異の有無を調べるプログラムである。計算結果に差異が全くない場合は、両プログラムは正しく動作していると判断し、その計算結果を出力する。計算結果に差異がある場合は、いずれかのプログラムに欠陥があると判断し、NG判定(False値)を出力する。
【0037】
障害防止処理プログラム44は、媒体情報が読み取られる度に、ローカル障害防止ルールDB17から障害防止ルールを1つずつ取り出して、入力媒体情報と障害発生パターンとの照合を行い、一致した場合はそのルールで指定されている障害回避アクションを実行するプログラムである。
【0038】
障害発生パターン生成プログラム45は、計算結果突合プログラム43による突合結果に差異があった場合に、入力媒体情報に基づく障害発生パターンを生成し、これをマスター障害防止ルール管理部21に送信するプログラムである。
【0039】
ローカル障害防止ルール管理プログラム46は、マスター障害防止ルール管理部21から送信される障害防止ルールを受信して、ローカル障害防止ルールDB17に格納したり、ローカル障害防止ルールDB17から障害防止ルールを取り出したりするためのプログラムである。
【0040】
CPU31と運賃計算プログラム(A)41により図1の運賃計算部12が構成され、CPU31と運賃計算プログラム(B)42により運賃計算部13が構成され、CPU31と計算結果突合プログラム43により計算結果突合部14が構成される。また、CPU31と障害防止処理プログラム44により障害防止処理部11が構成され、CPU31と障害発生パターン生成プログラム45により障害発生パターン生成部15が構成され、CPU31とローカル障害防止ルール管理プログラム46によりローカル障害防止ルール管理部16が構成される。
【0041】
図3は、管理装置2の構成をハードウェアのブロックで示した図である。50はLANなどの通信回線100を介して自動改札装置1と通信を行うための通信制御装置である。51は管理装置2の動作を制御するCPUである。52はデータを一時的に格納するためのメモリである。53は障害発生パターンや障害回避アクションの作成を行うためのUIF(ユーザーインターフェイス)であって、キーボードなどから構成される操作部54と、液晶ディスプレイなどから構成される表示部55とを備えている。56はハードディスクなどからなる記憶装置であって、マスター障害防止ルール管理プログラム61、障害回避アクション編集プログラム62、障害発生パターン編集プログラム63、および図1に示したマスター障害防止ルールDB22が格納されている。
【0042】
マスター障害防止ルール管理プログラム61は、各自動改札装置1から送られてくる障害発生パターンをマスター障害防止ルールDB22に格納したり、障害回避アクション編集部23で作成された障害回避アクションや、障害発生パターン編集部24で作成された障害発生パターンをマスター障害防止ルールDB22に格納したり、マスター障害防止ルールDB22に格納されている障害防止ルールを一定時間毎に各自動改札装置1に送信したりするプログラムである。
【0043】
障害回避アクション編集プログラム62は、ある障害発生パターンに対して、当該障害を回避する処理である障害回避アクションを作成するためのプログラムである。
【0044】
障害発生パターン編集プログラム63は、自動改札装置1から送信されてくる個々の障害発生パターンの解析結果に基づいて、例えば障害発生条件を集合で表現するなどして汎化した新たな障害発生パターンを作成するためのプログラムである。
【0045】
CPU51とマスター障害防止ルール管理プログラム61により図1のマスター障害防止ルール管理部21が構成され、CPU51とUIF53と障害回避アクション編集プログラム62により障害回避アクション編集部23が構成され、CPU51とUIF53と障害発生パターン編集プログラム63により障害発生パターン編集部24が構成される。
【0046】
以上の構成において、記憶装置37は、本発明における記憶手段の一実施形態を構成する。障害防止処理部11は、本発明における判定手段および処理手段の一実施形態を構成する。障害発生パターン生成部15は、本発明における障害発生パターン生成手段の一実施形態を構成する。マスター障害防止ルール管理部21は、本発明における障害防止ルール管理手段の一実施形態を構成する。障害回避アクション編集部23は、本発明における障害回避アクション編集手段の一実施形態を構成する。障害発生パターン編集部24は、本発明における障害発生パターン編集手段の一実施形態を構成する。
【0047】
次に、障害発生パターンについて説明する。障害発生パターンは、プログラムの欠陥が原因で障害が発生する場合の、媒体情報の属性(項目)と各属性についての入力値(乗車媒体から読み取ったデータ)との組として表現される。
【0048】
図4は、1つの障害発生パターンの例である。ここでは、属性として券種、利用種別、乗車駅、最新乗降駅、定期区間発駅、定期区間着駅、残額の各項目が挙げられている。本例は、入力値として、券種がIC複合券で、利用種別が大人で、乗車駅がY電鉄C駅で、最新乗降駅がY電鉄U駅で、定期区間発駅がX電鉄A駅で、定期区間着駅がX電鉄B駅で、残額が2000円である乗車券の場合に、障害が発生する(すなわち運賃計算部12,13での計算結果b、cが一致しない)例である。この障害発生パターンを論理式による条件式で記述すると、次のようになる。
障害発生パターン:
([券種]=IC複合券)and([利用種別]=大人)and([乗車駅]=Y電鉄C駅)and([最新乗降駅]=Y電鉄U駅)and([定期区間発駅]=X電鉄A駅)and([定期区間着駅]=X電鉄B駅)and([残額]=2000円) ・・・(1)
【0049】
ところで、運賃計算における障害は、ある1つの媒体情報のみに関して発生するとは限らず、他の媒体情報でも同じ障害が発生することがある。例えば、図4の例では、乗車駅がY電鉄C駅の場合だけでなく、Y電鉄全駅について同じ障害が発生するようなケースや、定期区間発駅がX電鉄A駅の場合だけでなく、A駅〜G駅の区間にある場合に同じ障害が発生するようなケースである。こうした場合、障害を引き起こす全ての媒体情報を障害発生パターンとして個々に生成すると、データ量が膨大になるが、所定の属性についての入力値を、大小関係や集合的な包含関係により条件付けた論理式で表現することにより、障害発生パターンが汎化され、データ量を抑制することができる。
【0050】
図5は、そのような汎化された障害発生パターンの例である。本例は、券種がIC複合券で、利用種別が大人か子供のいずれかで、乗車駅がY電鉄のすべての駅で、残額が0でない乗車券の場合に、障害が発生する例である。この障害発生パターンを論理式による条件式で記述すると、次のようになる。
障害発生パターン:
([券種]=IC複合券)and([利用種別]=大人or[利用種別]=子供)and([乗車駅]⊂Y電鉄全駅)and([残額]>0円) ・・・(2)
【0051】
次に、障害回避アクションについて説明する。障害回避アクションは、障害の発生を回避するために実行すべき処理内容を記述した指示情報であり、1つの障害発生パターンに対して1つの障害回避アクションが作成される。この作成は、運賃計算仕様について判断のできる事業者やシステム開発者等によって行われる。
【0052】
図6は、障害回避アクションの例を示している。この例は、複数の運賃計算プログラムから選択されたいずれかの運賃計算プログラム(正しく動作することが検証済のプログラム)のプログラム名を記述しておき、このプログラムを実行する「選択実行アクション」である。図6(a)では、自動改札装置1に搭載された運賃計算プログラムA、Bのうち、運賃計算プログラムAが指定されており、このプログラムを実行することで障害発生を回避する。図6(b)では、自動改札装置1の外部にネットワーク上のリソースとして配置された運賃計算プログラムのURL(Uniform Resource Locator)が指定されており、このプログラムを実行することで障害発生を回避する。
【0053】
図7は、障害回避アクションの他の例を示している。この例は、予め算出した正しい運賃計算結果を記述しておき、この結果をそのまま適用する「正当結果適用アクション」である。このアクションにおいては、運賃計算プログラムは実行されない。なお、本アクションでは、結果に対して入力値が一意に定まらなければならないため、対応する障害発生パターンの条件式は、図4の場合の前記(1)式のように、すべて等号で記述される必要があり、図5の場合の前記(2)式のような、集合や不等号を含む記述は許されない。
【0054】
図8は、媒体情報が障害発生パターンに該当しない場合の「突合実行アクション」を示している。これは障害回避アクションではなく、通常の動作の場合に実行されるデフォルトアクションとして設定されているものである。この場合は、通常通り2つの運賃計算プログラムA、Bによる運賃計算を実行し、それらの計算結果の突合が行われる。
【0055】
以上の図6〜図8のアクションは、同期突合型のプログラム多重化システムで採用されるアクションである。遅延突合型のプログラム多重化システムでは、図9や図10のアクションが採用されるが、これについては後述する。
【0056】
次に、障害防止ルールについて説明する。障害防止ルールは、障害発生パターンと障害回避アクションとの組からなり、1つの障害防止ルールは、1つの障害発生パターンと、これに対応する1つの障害回避アクションとから構成される。
【0057】
図11は、障害防止ルールの一例を示している。この例は、図4の障害発生パターンに合致する媒体情報が入力された場合に、運賃計算プログラムBで計算を実行すると計算誤りが発生し、運賃計算プログラムAで計算を実行すると正しい計算結果が得られたため、障害回避アクションのプログラム名に運賃計算プログラムAを指定した例である。すなわち、「図4のような障害発生パターンに対しては、運賃計算プログラムAを実行する」というルールを規定したものである。運賃計算プログラムAの実行により正しい計算結果が得られ、障害は発生しない。
【0058】
図12は、障害防止ルールの他の例を示している。この例は、図5の障害発生パターンに合致する媒体情報が入力された場合に、運賃計算プログラムAで計算を実行すると計算誤りが発生し、運賃計算プログラムBで計算を実行すると正しい計算結果が得られたため、障害回避アクションのプログラム名に運賃計算プログラムBを指定した例である。すなわち、「図5のような障害発生パターンに対しては、運賃計算プログラムBを実行する」というルールを規定したものである。運賃計算プログラムBの実行により正しい計算結果が得られ、障害は発生しない。
【0059】
次に、図1のシステムの動作を具体的な事例に基づいて説明する。
【0060】
[事例1]
自動改札装置1において、媒体情報aが記録された乗車券が投入された場合を想定する。障害防止処理部11は、この媒体情報aが、ローカル障害防止ルールDB17に記憶されている障害防止ルールの障害発生パターンfと一致しなければ、図8の突合実行アクションを実行する。これにより、運賃計算部12,13は、それぞれ運賃計算プログラムA,Bに従って運賃計算を行う。そして、計算結果突合部14で、それぞれの計算結果b,cの突合を行った結果、それらが一致せず、例えば運賃計算部12で計算された引き去り金額が、運賃計算部13で計算された引き去り金額より100円多いという差異が発生したとする。
【0061】
この場合、障害発生パターン生成部15は、計算結果突合部14での突合結果が不一致となった媒体情報aの障害発生パターンeを、管理装置2へ送信する。この送信は、通信制御装置30(図2)により通信回線100を介して行われる。管理装置2では、自動改札装置1から送られてきた障害発生パターンeを、マスター障害防止ルール管理部21が受信する。本例では、障害発生パターンeが図4のパターンであったとする。この障害発生パターンに対して、例えば図6(a)のような障害回避アクションが、障害回避アクション編集部23において人手により作成され、作成された障害回避アクションと障害発生パターンとの組を、図11のような障害防止ルールとして、マスター障害防止ルールDB22に登録する。
【0062】
その後、マスター障害防止ルール管理部21は、新たに登録された障害防止ルールfをマスター障害防止ルールDB22から読み出して、管理装置2に接続されている全ての自動改札装置1へ配信する。この配信は、通信制御装置50(図3)により通信回線100を介して行われる。自動改札装置1では、管理装置2から配信される障害防止ルールfをローカル障害防止ルール管理部16が受信し、ローカル障害防止ルールDB17へ格納する。
【0063】
自動改札装置1では、乗車券の媒体情報が媒体読取部33で読み取られて入力される度に、障害防止処理部11の障害防止処理プログラム44(図2)が起動される。このプログラムが起動されると、ローカル障害防止ルール管理部16は、ローカル障害防止ルールDB17から障害防止ルールfを1つずつ取り出し、取り出された障害防止ルールfと入力された媒体情報aとの照合が、障害防止処理部11において行われる。
【0064】
この照合の結果、媒体情報aと障害防止ルールfの障害発生パターンとが一致しない場合は、次の障害防止ルールfを取り出して媒体情報aとの照合を行い、全ての障害防止ルールとの照合が完了するまで、これを繰り返す。一方、図4のパターンに該当する媒体情報が記録されている乗車媒体が投入された場合は、媒体情報aと障害防止ルールfの障害発生パターンとが一致するため、当該障害防止ルールfで指定された障害回避アクションを実行する。すなわち、図11のルールに従って、選択実行アクションが実行され、運賃計算プログラムAによる運賃計算が行われる。この障害回避アクションの実行により運賃計算は正しく行われるので、一度登録された障害防止ルールfの障害発生パターンと同じパターン(図4のパターン)の媒体情報が記録された乗車券に対して、障害が発生するのを未然に防止することができる。
【0065】
[事例2]
各駅の自動改札装置1から管理装置2に送信された障害発生パターンを解析した結果、券種がIC複合券で、利用種別が大人か子供のいずれかで、乗車駅がY電鉄のすべての駅で、残額が0でない乗車券の場合に、同じ障害が発生することが判明したとする。
【0066】
この場合、障害発生パターン編集部24において、図5のような汎化された障害発生パターンが人手により作成される。また、プログラムを検証した結果、例えば、運賃計算プログラムAに欠陥があり、運賃計算プログラムBは正しく動作することが判明したものとすると、障害回避アクション編集部23において、運賃計算プログラムBを選択実行する障害回避アクションが作成される。そして、これらの障害発生パターンと障害回避アクションとの組を、図12のような障害防止ルールとして、マスター障害防止ルールDB22に登録する。
【0067】
その後、マスター障害防止ルール管理部21は、新たに登録された障害防止ルールfをマスター障害防止ルールDB22から読み出して、管理装置2に接続されている全ての自動改札装置1へ配信する。自動改札装置1では、管理装置2から配信される障害防止ルールfをローカル障害防止ルール管理部16が受信し、ローカル障害防止ルールDB17へ格納する。
【0068】
自動改札装置1では、乗車券の媒体情報が媒体読取部33で読み取られて入力される度に、障害防止処理部11の障害防止処理プログラム44(図2)が起動される。このプログラムが起動されると、ローカル障害防止ルール管理部16は、ローカル障害防止ルールDB17から障害防止ルールfを1つずつ取り出し、取り出された障害防止ルールfと入力された媒体情報aとの照合が、障害防止処理部11において行われる。
【0069】
この照合においては、前回の障害検知時の媒体情報と異なる媒体情報が入力された場合でも、障害発生パターンが汎化されているため、当該パターンの条件式(前記の式(2))を満たす媒体情報であれば、照合結果は一致と判定され、図12の障害防止ルールで指定された障害回避アクション、すなわち運賃計算プログラムBの選択実行アクションが実行される。この結果、運賃計算は正しく行われ、一度登録された障害防止ルールfの障害発生パターン(図5のパターン)に含まれる媒体情報が記録された乗車券に対して、障害が発生するのを未然に防止することができる。
【0070】
図13は、本発明の第2実施形態のシステム構成図である。ここでは、本発明に関係する構成要素のみを機能ブロックとして表してある。本実施形態においては、遅延突合型のプログラム多重化システムを採用している。
【0071】
図13では、図1と同一または対応する部分には、同一符号を付してある。1は駅に設置された駅務機器としての自動改札装置、3は自動改札装置1と回線で接続された上位装置、2は自動改札装置1および上位装置3と回線で接続された管理装置である。自動改札装置1は実際には複数台設置されるが、図13では1台のみ図示してある。管理装置2は、例えば駅の係員室や管理センターなどに設置されたサーバからなる。上位装置3は、例えばPC(Personal Computer)から構成され、係員室や管理センターなどに設置される。自動改札装置1、管理装置2および上位装置3により駅務システムが構成される。
【0072】
自動改札装置1の運賃算出処理部10の各ブロックと、上位装置3の各ブロックとは、図1の運賃算出処理部10に含まれる各ブロックと同じ機能を有しているので、個々のブロックについての詳細な説明は省略する。また、管理装置2の各ブロックも、図1の管理装置2の各ブロックと同じ機能を有しているので、個々のブロックについての詳細な説明は省略する。
【0073】
図13のシステムでは、自動改札装置1の運賃計算部12が運賃計算プログラムAによる処理を実行した一定期間内のすべての媒体情報に対して、一定期間経過後に上位装置3の運賃計算部13が運賃計算プログラムBによる処理を実行し、それぞれの計算結果b、cを突合部14で事後的に突合する。これ以降の処理については、図1の場合と同様であるので、重複説明は省略する。
【0074】
但し、図13のように遅延突合型のプログラム多重化システムを採用した場合は、自動改札装置1での運賃計算が運賃計算プログラムAのみによって行われるため、障害回避アクションとして図6のような「選択実行アクション」を用いることはできない。そこで、これに代わるものとして、図9に示した「運賃計算回避アクション」を用いる。このアクションは、運賃計算実行による障害発生を回避するため、運賃計算を実行しないでNG判定を出力し、係員対応とするものである。なお、このような運賃計算回避アクション以外に、図7で示した「正当結果適用アクション」を用いることも可能である。
【0075】
図10は、媒体情報が障害発生パターンに該当しない場合の「運賃計算実行アクション」を示している。これは障害回避アクションではなく、通常の動作の場合に実行されるデフォルトアクションとして設定されているものである。この場合は、通常通り運賃計算プログラムAによる運賃計算が実行される。
【0076】
図14は、以上述べた第1および第2実施形態における障害防止処理部11の処理内容を表したフローチャートである。前述したように、媒体情報が読み取られる毎に、障害防止処理プログラム44が起動されて、図14の手順が実行される。
【0077】
媒体情報が読み取られると、ステップS1において、ローカル障害防止ルール管理部16が、ローカル障害防止ルールDB17から障害防止ルールを1つ取り出す。そして、障害防止ルールが存在すれば(ステップS2:YES)、ステップS3へ進む。ステップS3では、読み取った媒体情報と、取り出した障害防止ルールの障害発生パターンとを照合し、ステップS4で、パターンが一致するか否かを判定する。パターンが一致しない場合は(ステップS4:NO)、ステップS1へ戻って、ローカル障害防止ルールDB17から次の障害防止ルールを取り出し、ステップS2〜S4を実行する。
【0078】
パターンが一致する場合は(ステップS4:YES)、ステップS5へ進み、障害防止ルールで指定されている障害回避アクションを実行する。すなわち、第1実施形態(図1)の場合は、前述の「選択実行アクション」や「正当結果適用アクション」が実行され、第2実施形態(図13)の場合は、前述の「運賃計算回避アクション」や「正当結果適用アクション」が実行される。
【0079】
また、ステップS2でルールが存在しない場合は(ステップS2:NO)、ステップS6へ進み、デフォルトアクションを実行する。すなわち、第1実施形態の場合は前述の「突合実行アクション」、第2実施形態の場合は前述の「運賃計算実行アクション」がそれぞれ実行される。
【0080】
以上説明した各実施形態によれば、運賃計算プログラムの不具合に基づく障害が発生した際に、その障害発生パターンに対応する障害回避アクションが抽出され、当該アクションが実行される。このため、障害発生時の対応としてプログラムを修正しなくても、あらかじめ用意された障害回避アクションを実行することで、処理が適正に行われ、同様の障害が発生するのを未然に防止することができる。
【0081】
また、障害回避アクションとして図6のような「選択実行アクション」を採用する場合は、障害防止ルールにおいて正しく動作する運賃計算プログラムを指定しておくことにより、運賃計算プログラムの修正を行なわなくとも、正しい運賃計算結果を用いた処理を行うことが可能となる。
【0082】
また、選択実行アクションにおけるプログラム名として、図6(b)のようにネットワーク上のリソースとして指定された運賃計算プログラムを記述しておけば、自動改札装置以外の機器が保有する運賃計算プログラムを指定して実行することができるため、自動改札装置内でプログラムを多重化する必要がなくなり、多重化システムの設計を柔軟に行なえる利点がある。
【0083】
また、障害回避アクションとして図7のような「正当結果適用アクション」を採用する場合は、事前に正しい計算結果を求めて、これをアクション中に含めておくことにより、運賃計算プログラムの修正を行なわなくとも、正しい運賃計算結果を用いた処理を行うことが可能となる。
【0084】
また、上述した駅務システムでは、自動改札装置1で運賃計算プログラムの不具合に基づく障害が発生した際に、その障害発生パターンが管理装置2へ送信されるので、当該パターンの検証に基づき、障害回避アクション編集部23により障害回避アクションを作成することができる。そして、障害が発生した都度、障害発生パターンと障害回避アクションの組からなる障害防止ルールを、マスター障害防止ルールDB22に登録することができる。このため、障害発生時の対応としてプログラムを修正しなくても、障害発生パターンに対応した障害回避アクションを実行することで、処理が適正に行われ、同様の障害が発生するのを未然に防止することができる。
【0085】
また、マスター障害防止ルール管理部21が、マスター障害防止ルールDB22に登録された障害防止ルールを複数の自動改札装置1へ一斉に配信することによって、どの自動改札装置においても運賃計算の障害が発生するのを未然に防止することが可能となる。
【0086】
さらに、障害発生パターン編集部24において新たな障害発生パターンを作成するにあたって、パターンを論理式により汎化して記述することによって、障害を引き起こす全ての媒体情報を障害発生パターンとして生成する必要がなく、障害防止ルールの管理が容易になるとともに、パターン照合を高速に行うことが可能となる。
【0087】
以上述べた実施形態では、駅務機器として自動改札装置を例に挙げたが、本発明は自動精算機や窓口処理機などの駅務機器にも適用することができる。
【図面の簡単な説明】
【0088】
【図1】本発明の第1実施形態のシステム構成図である。
【図2】自動改札装置の構成をハードウェアのブロックで示した図である。
【図3】管理装置の構成をハードウェアのブロックで示した図である。
【図4】障害発生パターンの例である。
【図5】汎化された障害発生パターンの例である。
【図6】障害回避アクションの例である。
【図7】障害回避アクションの他の例である。
【図8】デフォルトアクションの例である。
【図9】障害回避アクションの例である。
【図10】デフォルトアクションの例である。
【図11】障害防止ルールの例である。
【図12】障害防止ルールの他の例である。
【図13】本発明の第2実施形態のシステム構成図である。
【図14】障害防止処理部の処理内容を表したフローチャートである。
【図15】同期突合型のプログラム多重化システムを示す図である。
【図16】遅延突合型のプログラム多重化システムを示す図である。
【符号の説明】
【0089】
1 自動改札装置
2 管理装置
3 上位装置
10 運賃算出処理部
11 障害防止処理部
12 運賃計算部
13 運賃計算部
14 計算結果突合部
15 障害発生パターン生成部
16 ローカル障害防止ルール管理部
17 ローカル障害防止ルールデータベース
21 マスター障害防止ルール管理部
22 マスター障害防止ルールデータベース
23 障害回避アクション編集部
24 障害発生パターン編集部
31 CPU
33 媒体読取部
37 記憶装置
a 媒体情報
f 障害防止ルール

【特許請求の範囲】
【請求項1】
乗車媒体に記録されている媒体情報を読み取り、当該媒体情報に基づき運賃計算プログラムにより利用料金を算出する駅務機器において、
前記運賃計算プログラムの不具合により特定の媒体情報に対して障害が発生した場合の障害発生パターンと、当該障害を回避するための障害回避アクションとの組が、障害防止ルールとして記憶されている記憶手段と、
読み取られた媒体情報が前記記憶手段に記憶されている障害発生パターンと一致するか否かを判定する判定手段と、
前記判定手段が媒体情報と障害発生パターンとの一致を判定した場合に、当該障害発生パターンに対応する障害防止ルールで指定された障害回避アクションを実行する処理手段と、
を備えたことを特徴とする駅務機器。
【請求項2】
請求項1に記載の駅務機器において、
前記運賃計算プログラムは複数のプログラムからなり、
前記障害回避アクションには、前記複数のプログラムから選択されたいずれかの運賃計算プログラムのプログラム名が記述されており、
前記処理手段は、前記選択された運賃計算プログラムを実行することを特徴とする駅務機器。
【請求項3】
請求項1に記載の駅務機器において、
前記障害回避アクションには、ネットワーク上のリソースとして指定された運賃計算プログラムのプログラム名が記述されており、
前記処理手段は、前記指定された運賃計算プログラムを実行することを特徴とする駅務機器。
【請求項4】
請求項1に記載の駅務機器において、
前記障害回避アクションには、予め算出した正しい運賃計算結果が記述されており、
前記処理手段は、前記運賃計算プログラムを実行することなく、前記運賃計算結果に基づく利用料金を用いて処理を行うことを特徴とする駅務機器。
【請求項5】
請求項1ないし請求項4のいずれかに記載の駅務機器と、当該駅務機器に接続された管理装置とを有する駅務システムであって、
障害が発生した媒体情報についての障害発生パターンを生成して前記管理装置へ送信する障害発生パターン生成手段を備え、
前記管理装置は、
前記障害発生パターン生成手段から送られてきた障害発生パターンに対する障害回避アクションを作成するための障害回避アクション編集手段と、
障害発生パターンと、これに対応して前記障害回避アクション編集手段で作成された障害回避アクションとの組を、障害防止ルールとして登録し管理する障害防止ルール管理手段と、
を有することを特徴とする駅務システム。
【請求項6】
請求項5に記載の駅務システムにおいて、
前記駅務機器は、複数の駅務機器からなり、
前記障害防止ルール管理手段は、登録した障害防止ルールを各駅務機器へ配信することを特徴とする駅務システム。
【請求項7】
請求項5に記載の駅務システムにおいて、
前記障害発生パターンを論理式で記述して作成するための障害発生パターン編集手段を更に備えていることを特徴とする駅務システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate


【公開番号】特開2009−87290(P2009−87290A)
【公開日】平成21年4月23日(2009.4.23)
【国際特許分類】
【出願番号】特願2007−259588(P2007−259588)
【出願日】平成19年10月3日(2007.10.3)
【出願人】(000002945)オムロン株式会社 (3,542)
【Fターム(参考)】