(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-07
(45)【発行日】2024-06-17
(54)【発明の名称】データ参照サーバー、データベースシステム及び料金管理システム
(51)【国際特許分類】
G06F 16/24 20190101AFI20240610BHJP
G06F 16/23 20190101ALI20240610BHJP
G06Q 50/40 20240101ALI20240610BHJP
G06F 9/50 20060101ALI20240610BHJP
G07B 15/00 20110101ALI20240610BHJP
【FI】
G06F16/24
G06F16/23
G06Q50/40
G06F9/50 150C
G06F9/50 150D
G07B15/00 L
(21)【出願番号】P 2020151018
(22)【出願日】2020-09-09
【審査請求日】2023-07-07
(73)【特許権者】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(73)【特許権者】
【識別番号】598076591
【氏名又は名称】東芝インフラシステムズ株式会社
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(72)【発明者】
【氏名】大西 直哉
(72)【発明者】
【氏名】松山 拓紀
(72)【発明者】
【氏名】中谷 博司
【審査官】甲斐 哲雄
(56)【参考文献】
【文献】特開2005-173823(JP,A)
【文献】特開2015-095246(JP,A)
【文献】特開2004-102582(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
G06Q 10/00-99/00
G06F 9/50
G07B 15/00
(57)【特許請求の範囲】
【請求項1】
データベースのオリジナルのコピーを記憶する第1の記憶部と、
前記コピーへの処理をクライアント装置からの前記データベースへの要求に基づき行う要求処理部を複数生成し、接続してきたクライアント装置を生成済みの複数の前記要求処理部のいずれかに割り当てる第1の処理部と、を備えるデータ参照サーバー。
【請求項2】
前記要求処理部は、割り当てられた前記クライアント装置から前記データベースへの参照の要求を受けたことに応じて、前記コピーを参照する、請求項1に記載のデータ参照サーバー。
【請求項3】
前記要求処理部は、割り当てられた前記クライアント装置から前記データベースへのデータの登録の要求を受けたことに応じて、前記オリジナルに前記データの登録を要求し、前記コピーに前記データを登録する、請求項1又は請求項2に記載のデータ参照サーバー。
【請求項4】
前記第1の処理部は、プロセッサーのスレッド数以下の前記要求処理部を生成する、請求項1乃至請求項3のいずれか1項に記載のデータ参照サーバー。
【請求項5】
前記第1の処理部は、プロセッサーのコア数以下の前記要求処理部を生成する、請求項1乃至請求項3のいずれか1項に記載のデータ参照サーバー。
【請求項6】
前記第1の処理部は、接続してきたクライアント装置を、前記要求処理部のそれぞれに割り当て済みのクライアント装置の数に応じて、どの前記要求処理部に割り当てるか決定する、請求項1乃至請求項5のいずれか1項に記載のデータ参照サーバー。
【請求項7】
前記第1の処理部は、接続してきたクライアント装置を、要求の頻度に応じてどの前記要求処理部に割り当てるか決定する、請求項1乃至請求項5のいずれか1項に記載のデータ参照サーバー。
【請求項8】
前記第1の処理部は、接続してきたクライアント装置を、前記クライアント装置が行う要求の種類に応じて、どの前記要求処理部に割り当てるか決定する、請求項1乃至請求項5のいずれか1項に記載のデータ参照サーバー。
【請求項9】
前記オリジナルを記憶する第2の記憶部と、
前記オリジナルへの処理を行う第2の処理部と、をさらに備える請求項1乃至請求項8のいずれか1項に記載のデータ参照サーバー。
【請求項10】
前記クライアント装置から受信した情報に基づき、前記クライアント装置から前記データベースへの要求を行う第3の処理部をさらに備える、請求項1乃至請求項9のいずれか1項に記載のデータ参照サーバー。
【請求項11】
データ記憶サーバー及びデータ参照サーバーを含み、
前記データ記憶サーバーは、
データベースのオリジナルを記憶する第2の記憶部と、
前記オリジナルへの処理を行う第2の処理部と、を備え、
前記データ参照サーバーは、
前記オリジナルのコピーを記憶する第1の記憶部と、
前記コピーへの処理をクライアント装置からの前記データベースへの要求に基づき行う要求処理部を複数生成し、接続してきたクライアント装置を生成済みの複数の前記要求処理部のいずれかに割り当てる第1の処理部と、
データベースシステム。
【請求項12】
路側装置及びデータ参照サーバーを含み、
前記路側装置は、
有料道路を通行する車両を識別する車両ID及び前記車両の通過位置を識別する路側IDを含む通知情報を前記データ参照サーバーに送信する通信部を備え、
前記データ参照サーバーは、
データベースのオリジナルのコピーを記憶する第1の記憶部と、
前記コピーへの処理を前記路側装置からの前記データベースへの要求に基づき行う要求処理部を複数生成し、接続してきた路側装置を生成済みの複数の前記要求処理部のいずれかに割り当てる第1の処理部と、を含み、
前記車両ID及び前記路側IDに基づき前記車両の前記有料道路の通行料金の金額を求める金額処理部と、を備える料金管理システム。
【請求項13】
前記金額処理部は、前記路側IDが入口料金所又はジャンクションを示す場合、前記入口料金所又は前記ジャンクションから到達可能な出口料金所から前記車両が出る場合の通行料金の金額を求める、請求項12に記載の料金管理システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、データ参照サーバー、データベースシステム及び料金管理システムに関する。
【背景技術】
【0002】
クライアントサーバー型の時間制約のある制御システムは、多数のクライアントがサーバーのデータベースを参照する際、高頻度な要求、又はクライアントのコネクションの増加によりサーバー側アプリケーションの負荷が増え、応答時間が延びる可能性がある。また、インメモリで動作するデータベースにおいても、定期的にデータをストレージに書き込むことがあり、応答時間が延びることがある。例えば、マルチプロセス構成のデータベースシステムでは、クライアント装置毎にプロセス又はスレッドが生成されるため、クライアント装置の数が多くなると、プロセス切り替え又はスレッド切り替えによる処理のオーバヘッドが発生し、処理が遅延することがある。また、シングルプロセス構成のデータベースシステムでは、複数のクライアントからの要求を順に処理するため、時間のかかる要求の後に受信する要求の応答時間が延びる可能性がある。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明の実施形態が解決しようとする課題は、多数のクライアント装置がデータベースに接続した場合においても、低遅延で処理することができるデータ参照サーバー、データベースシステム及び料金管理システムを提供することである。
【課題を解決するための手段】
【0005】
実施形態のデータ参照サーバーは、第1の記憶部及び第1の処理部を備える。第1の記憶部は、データベースのオリジナルのコピーを記憶する。第1の処理部は、前記コピーへの処理をクライアント装置からの前記データベースへの要求に基づき行う要求処理部を複数生成し、接続してきたクライアント装置を生成済みの複数の前記要求処理部のいずれかに割り当てる。
【図面の簡単な説明】
【0006】
【
図1】第1実施形態に係るデータベースシステム及び当該データベースシステムに含まれる構成要素の要部構成の一例を示すブロック図。
【
図2】
図1中のデータ参照装置のプロセッサー又はデータ参照部による処理の一例を示すフローチャート。
【
図3】
図1中のデータ参照装置のプロセッサー又はデータ参照部による処理の一例を示すフローチャート。
【
図4】
図1中のデータベース装置のプロセッサー又はデータベース部による処理の一例を示すフローチャート。
【
図5】
図1中のクライアント装置のプロセッサー又はアプリケーション部による処理の一例を示すフローチャート。
【
図6】第2実施形態に係るデータベースシステム及び当該データベースシステムに含まれる構成要素の要部構成の一例を示すブロック図。
【
図7】第3実施形態に係るデータベースシステム及び当該データベースシステムに含まれる構成要素の要部構成の一例を示すブロック図。
【
図8】第4実施形態に係るデータベースシステム及び当該データベースシステムに含まれる構成要素の要部構成の一例を示すブロック図。
【
図9】第5実施形態及び第6実施形態に係る料金収受システム及び当該料金収受システムに含まれる構成要素の要部構成の一例を示すブロック図。
【
図10】第5実施形態及び第6実施形態に係る路側装置の一例を示すブロック図。
【
図11】
図9中の入口料金所装置及び経路装置のプロセッサーによる処理の一例を示すフローチャート。
【
図12】
図9中の出口料金所装置のプロセッサーによる処理の一例を示すフローチャート。
【発明を実施するための形態】
【0007】
以下、いくつかの実施形態に係るデータベースシステムについて図面を用いて説明する。なお、以下の実施形態の説明に用いる各図面は、各部の縮尺を適宜変更している場合がある。また、以下の実施形態の説明に用いる各図面は、説明のため、構成を省略して示している場合がある。また、各図面及び本明細書中において、同一の符号は同様の要素を示す。
〔第1実施形態〕
図1は、第1実施形態に係るデータベースシステム1及びデータベースシステム1に含まれる構成要素の要部構成の一例を示すブロック図である。データベースシステム1は、一例として、データベース装置100、データ参照装置200及び複数のクライアント装置300を含む。
【0008】
データ参照装置200及びクライアント装置300は、ネットワークNWに接続する。ネットワークNWは、典型的にはインターネットを含む通信網である。ネットワークNWは、典型的にはWAN(wide area network)を含む通信網である。ネットワークNWは、イントラネットなどのプライベートネットワークを含む通信網であっても良い。ネットワークNWは、LAN(local area network)を含む通信網であっても良い。また、ネットワークNWは、無線回線でも良いし有線回線でも良く、無線回線と有線回線とが混在していても良い。また、ネットワークNWは、専用線又は公衆携帯電話網などを含む通信網であっても良い。第1実施形態のデータ参照装置200は、データ参照サーバーの一例として機能する。
【0009】
データベース装置100は、データベースを記憶するサーバーなどの装置である。あるいは、データベース装置100は、仮想サーバーであっても良い。データベース装置100及びデータ参照装置200は、協働して、クライアントサーバーモデルにおけるサーバーとして機能する。データベース装置100は、一例として、プロセッサー101、ROM(read-only memory)102、RAM(random-access memory)103、補助記憶装置104及び通信インターフェース105を含む。そして、バス106などが、これら各部を接続する。
なお、データベース装置100は、データ記憶サーバーの一例である。
【0010】
プロセッサー101は、データベース装置100の動作に必要な演算及び制御などの処理を行うコンピューターの中枢部分に相当する。プロセッサー101は、ROM102又は補助記憶装置104などに記憶されたファームウェア、システムソフトウェア及びアプリケーションソフトウェアなどのプログラムに基づいて、データベース装置100の各種の機能を実現するべく各部を制御する。また、プロセッサー101は、当該プログラムに基づいて後述する処理を実行する。なお、当該プログラムの一部又は全部は、プロセッサー101の回路内に組み込まれていても良い。プロセッサー101は、例えば、CPU(central processing unit)、MPU(micro processing unit)、SoC(system on a chip)、DSP(digital signal processor)、GPU(graphics processing unit)、ASIC(application specific integrated circuit)、PLD(programmable logic device)又はFPGA(field-programmable gate array)などである。あるいは、プロセッサー101は、これらのうちの複数を組み合わせたものである。また、プロセッサー101は、マルチプロセッサーでも良い。
【0011】
ROM102は、プロセッサー101を中枢とするコンピューターの主記憶装置に相当する。ROM102は、専らデータの読み出しに用いられる不揮発性メモリである。ROM102は、上記のプログラムのうち、例えばファームウェアなどを記憶する。また、ROM102は、プロセッサー101が各種の処理を行う上で使用するデータなども記憶する。
【0012】
RAM103は、プロセッサー101を中枢とするコンピューターの主記憶装置に相当する。RAM103は、データの読み書きに用いられるメモリである。RAM103は、プロセッサー101が各種の処理を行う上で一時的に使用するデータを記憶するワークエリアなどとして利用される。RAM103は、典型的には揮発性メモリである。
【0013】
補助記憶装置104は、プロセッサー101を中枢とするコンピューターの補助記憶装置に相当する。補助記憶装置104は、例えばEEPROM(electric erasable programmable read-only memory)、HDD(hard disk drive)又はフラッシュメモリなどである。補助記憶装置104は、上記のプログラムのうち、例えば、システムソフトウェア及びアプリケーションソフトウェアなどを記憶する。また、補助記憶装置104は、プロセッサー101が各種の処理を行う上で使用するデータ、プロセッサー101での処理によって生成されたデータ及び各種の設定値などを記憶する。
【0014】
また、補助記憶装置104は、データベースを記憶する。当該データベースは、リレーショナルデータベースなどの種々のデータベースである。また、当該データベースは、インメモリデータベースであることが好ましい。インメモリデータベースは、動作が速いためである。なお、補助記憶装置104は、例えば、当該データベースを、RAM103に展開するためのデータ形式で記憶する。
【0015】
通信インターフェース105は、データベース装置100がデータ参照装置200と通信するためのインターフェースである。
【0016】
バス106は、コントロールバス、アドレスバス及びデータバスなどを含み、データベース装置100の各部で授受される信号を伝送する。
【0017】
データ参照装置200は、データベースのコピーを記憶するサーバーなどの装置である。あるいは、データ参照装置200は、仮想サーバーであっても良い。データ参照装置200は、一例として、プロセッサー201、ROM202、RAM203、補助記憶装置204、第1通信インターフェース205及び第2通信インターフェース206を含む。そして、バス207などが、これら各部を接続する。
【0018】
プロセッサー201は、データ参照装置200の動作に必要な演算及び制御などの処理を行うコンピューターの中枢部分に相当する。プロセッサー201は、ROM202又は補助記憶装置204などに記憶されたファームウェア、システムソフトウェア及びアプリケーションソフトウェアなどのプログラムに基づいて、データ参照装置200の各種の機能を実現するべく各部を制御する。また、プロセッサー201は、当該プログラムに基づいて後述する処理を実行する。なお、当該プログラムの一部又は全部は、プロセッサー201の回路内に組み込まれていても良い。プロセッサー201は、例えば、CPU、MPU、SoC、DSP、GPU、ASIC、PLD又はFPGAなどである。あるいは、プロセッサー201は、これらのうちの複数を組み合わせたものである。プロセッサー201は、複数のコアを備えることが好ましい。また、プロセッサー201は、マルチプロセッサーでも良い。
なお、第1実施形態においてプロセッサー201は、第1の処理部の一例である。
【0019】
ROM202は、プロセッサー201を中枢とするコンピューターの主記憶装置に相当する。ROM202は、専らデータの読み出しに用いられる不揮発性メモリである。ROM202は、上記のプログラムのうち、例えばファームウェアなどを記憶する。また、ROM202は、プロセッサー201が各種の処理を行う上で使用するデータなども記憶する。
【0020】
RAM203は、プロセッサー201を中枢とするコンピューターの主記憶装置に相当する。RAM203は、データの読み書きに用いられるメモリである。RAM203は、プロセッサー201が各種の処理を行う上で一時的に使用するデータを記憶するワークエリアなどとして利用される。RAM203は、典型的には揮発性メモリである。
【0021】
補助記憶装置204は、プロセッサー201を中枢とするコンピューターの補助記憶装置に相当する。補助記憶装置204は、例えばEEPROM、HDD又はフラッシュメモリなどである。補助記憶装置204は、上記のプログラムのうち、例えば、システムソフトウェア及びアプリケーションソフトウェアなどを記憶する。また、補助記憶装置204は、プロセッサー201が各種の処理を行う上で使用するデータ、プロセッサー201での処理によって生成されたデータ及び各種の設定値などを記憶する。
また、補助記憶装置204は、要求処理テーブルを記憶する。要求処理テーブルについては後述する。
【0022】
第1通信インターフェース205は、データ参照装置200がデータベース装置100と通信するためのインターフェースである。
【0023】
第2通信インターフェース206は、データ参照装置200がネットワークNWなどを介して通信するためのインターフェースである。なお、第1通信インターフェース205及び第2通信インターフェース206は、共通のインターフェースであっても良い。
【0024】
バス207は、コントロールバス、アドレスバス及びデータバスなどを含み、データ参照装置200の各部で授受される信号を伝送する。
【0025】
クライアント装置300は、クライアントサーバーモデルにおけるクライアントである。クライアント装置300は、一例として、プロセッサー301、ROM302、RAM303、補助記憶装置304及び通信インターフェース305を含む。そして、バス306などが、これら各部を接続する。
【0026】
プロセッサー301は、クライアント装置300の動作に必要な演算及び制御などの処理を行うコンピューターの中枢部分に相当する。プロセッサー301は、ROM302又は補助記憶装置304などに記憶されたファームウェア、システムソフトウェア及びアプリケーションソフトウェアなどのプログラムに基づいて、クライアント装置300の各種の機能を実現するべく各部を制御する。また、プロセッサー301は、当該プログラムに基づいて後述する処理を実行する。なお、当該プログラムの一部又は全部は、プロセッサー301の回路内に組み込まれていても良い。プロセッサー301は、例えば、CPU、MPU、SoC、DSP、GPU、ASIC、PLD又はFPGAなどである。あるいは、プロセッサー301は、これらのうちの複数を組み合わせたものである。
【0027】
ROM302は、プロセッサー301を中枢とするコンピューターの主記憶装置に相当する。ROM302は、専らデータの読み出しに用いられる不揮発性メモリである。ROM302は、上記のプログラムのうち、例えばファームウェアなどを記憶する。また、ROM302は、プロセッサー301が各種の処理を行う上で使用するデータなども記憶する。
【0028】
RAM303は、プロセッサー301を中枢とするコンピューターの主記憶装置に相当する。RAM303は、データの読み書きに用いられるメモリである。RAM303は、プロセッサー301が各種の処理を行う上で一時的に使用するデータを記憶するワークエリアなどとして利用される。RAM303は、典型的には揮発性メモリである。
【0029】
補助記憶装置304は、プロセッサー301を中枢とするコンピューターの補助記憶装置に相当する。補助記憶装置304は、例えばEEPROM、HDD又はフラッシュメモリなどである。補助記憶装置304は、上記のプログラムのうち、例えば、システムソフトウェア及びアプリケーションソフトウェアなどを記憶する。また、補助記憶装置304は、プロセッサー301が各種の処理を行う上で使用するデータ、プロセッサー301での処理によって生成されたデータ及び各種の設定値などを記憶する。
【0030】
通信インターフェース305は、クライアント装置300がネットワークNWなどを介して通信するためのインターフェースである。
【0031】
バス306は、コントロールバス、アドレスバス及びデータバスなどを含み、クライアント装置300の各部で授受される信号を伝送する。
【0032】
以下、第1実施形態に係るデータベースシステム1の動作を
図2~
図5などに基づいて説明する。なお、以下の動作説明における処理の内容は一例であって、同様な結果を得ることが可能な様々な処理を適宜に利用できる。
図2及び
図3は、データ参照装置200のプロセッサー201による処理の一例を示すフローチャートである。プロセッサー201は、例えば、ROM202又は補助記憶装置204などに記憶されたプログラムに基づいて
図2及び
図3の処理を実行する。
図4は、データベース装置100のプロセッサー101による処理の一例を示すフローチャートである。プロセッサー101は、例えば、ROM102又は補助記憶装置104などに記憶されたプログラムに基づいて
図4の処理を実行する。
図5は、クライアント装置300のプロセッサー301による処理の一例を示すフローチャートである。プロセッサー301は、例えば、ROM302又は補助記憶装置304などに記憶されたプログラムに基づいて
図5の処理を実行する。
【0033】
データ参照装置200のプロセッサー201は、例えば、起動にともない
図2及び
図3の処理を開始する。
図2のステップS11においてデータ参照装置200のプロセッサー201は、第1接続要求をデータベース装置100に送信するように第1通信インターフェース205に対して指示する情報である。第1接続要求は、送信先に接続の確立を要求する。送信の指示を受けて第1通信インターフェース205は、当該第1接続要求をデータベース装置100に送信する。送信された当該第1接続要求は、データベース装置100の通信インターフェース105によって受信される。
【0034】
一方、データベース装置100のプロセッサー101は、例えば、起動にともない
図4の処理を開始する。
図4のステップS41においてデータベース装置100のプロセッサー101は、補助記憶装置104に記憶されたデータベースをRAM103に展開する。ただし、プロセッサー101は、ステップS41の処理を、当該データベースがインメモリデータベースである場合に行う。なお、データベース装置100に記憶されたデータベースを以下「第1データベース」という。第1データベースは、データベースのオリジナルの一例である。第1データベースを記憶するRAM103又は補助記憶装置104は、第1の記憶部の一例である。
【0035】
ステップS42においてプロセッサー101は、通信インターフェース105によって第1接続要求が受信されたか否かを判定する。プロセッサー101は、第1接続要求が受信されないならば、ステップS42においてNoと判定してステップS43へと進む。
【0036】
ステップS43においてプロセッサー101は、通信インターフェース105によって第1参照要求が受信されたか否かを判定する。プロセッサー101は、第1参照要求が受信されないならば、ステップS43においてNoと判定してステップS44へと進む。
【0037】
ステップS44においてプロセッサー101は、通信インターフェース105によって第1登録要求が受信されたか否かを判定する。プロセッサー101は、第1登録要求が受信されないならば、ステップS44においてNoと判定してステップS42へと戻る。かくして、プロセッサー101は、第1接続要求、第1参照要求又は第1登録要求が受信されるまでステップS42~ステップS44を繰り返す待受状態となる。なお、第1参照要求及び第1登録要求については後述する。
【0038】
プロセッサー101は、ステップS42~ステップS44の待受状態にあるときに第1接続要求が受信されたならば、ステップS42においてYesと判定してステップS45へと進む。
【0039】
ステップS45においてプロセッサー101は、第1接続応答をデータ参照装置200に送信するように通信インターフェース105に対して指示する。第1接続応答は、第1接続要求への応答として、接続を許可することを示す情報である。送信の指示を受けて通信インターフェース105は、当該第1接続応答をデータ参照装置200に送信する。送信された当該第1接続応答は、データ参照装置200の第1通信インターフェース205によって受信される。プロセッサー101は、ステップS45の処理の後、ステップS42へと戻る。
【0040】
一方、
図2のステップS12においてデータ参照装置200のプロセッサー201は、第1通信インターフェース205によって第1接続応答が受信されるのを待ち受けている。プロセッサー201は、第1接続応答が受信されたならば、ステップS12においてYesと判定してステップS13へと進む。
以上の処理によって、データベース装置100とデータ参照装置200との間の接続が確立される。なお、接続を確立する方法は、以上に示すものとは異なる方法であっても良い。
【0041】
ステップS13においてプロセッサー201は、第1参照要求をデータベース装置100に送信するように第1通信インターフェース205に対して指示する。第1参照要求は、送信先に対して、第1データベースを送信するように要求する情報である。送信の指示を受けて第1通信インターフェース205は、当該第1参照要求をデータベース装置100に送信する。送信された当該第1参照要求は、データベース装置100の通信インターフェース105によって受信される。
【0042】
一方、データベース装置100のプロセッサー101は、
図4のステップS42~ステップS44の待受状態にあるときに第1参照要求が受信されたならば、ステップS43においてYesと判定してステップS46へと進む。
ステップS46においてプロセッサー101は、第1参照応答を生成する。第1参照応答は、RAM103又は補助記憶装置104に記憶された第1データベースのコピーを含む情報である。プロセッサー101は、第1参照応答を生成した後、当該第1参照応答をデータ参照装置200に送信するように通信インターフェース105に対して指示する。この送信の指示を受けて通信インターフェース105は、当該第1参照応答をデータ参照装置200に送信する。送信された当該第1参照応答は、データ参照装置200の第1通信インターフェース205によって受信される。プロセッサー101は、ステップS46の処理の後、ステップS42へと戻る。
【0043】
一方、
図2のステップS14においてデータ参照装置200のプロセッサー201は、第1通信インターフェース205によって第1参照応答が受信されるのを待ち受けている。プロセッサー201は、第1参照応答が受信されたならば、ステップS14においてYesと判定してステップS15へと進む。
【0044】
ステップS15においてプロセッサー201は、ステップS14で受信された第1参照応答に含まれる第1データベースをRAM203に記憶する。あるいは、プロセッサー201は、当該データベースを補助記憶装置204に記憶しても良い。プロセッサー201は、当該データベースがインメモリデータベースである場合、RAM203に記憶することが好ましい。インメモリデータベースは、動作が高速なためである。なお、データ参照装置200に記憶されたデータベースを以下「第2データベース」という。第2データベースは、データベースのコピーの一例である。第2データベースを記憶するRAM203又は補助記憶装置204は、第2の記憶部の一例である。
【0045】
ステップS16においてプロセッサー201は、複数の要求処理部Aを生成する。要求処理部Aは、クライアント装置から送信された、データベースへの要求を処理する。プロセッサー201は、生成した複数の要求処理部Aを並行又は並列で処理する。各要求処理部Aは、それぞれが異なるプロセス又はスレッドで動作する。
また、各要求処理部Aは、それぞれが異なるスレッドで動作することが好ましく、それぞれが異なるプロセッサーコアで動作することがより好ましい。したがって、要求処理部Aの数は、スレッドの数以下であることが好ましく、プロセッサーコアの数以下であることがより好ましい。同じスレッドで複数の要求処理部Aが動作すると、1つの要求処理部Aの動作が、他の要求処理部Aの動作に影響を与える可能性が高くなるためである。また、同じプロセッサーコアで複数の要求処理部Aが動作すると、1つの要求処理部Aの動作が、他の要求処理部Aの動作に影響を与える可能性が高くなるためである。
プロセッサー201は、ステップS16の処理の後、
図3のステップS17へと進む。
【0046】
図3のステップS17においてデータ参照装置200のプロセッサー201は、第2通信インターフェース206によって情報が受信されるのを待ち受ける。
【0047】
一方、クライアント装置300のプロセッサー301は、データ参照装置200の第2データベースにアクセスする場合、
図5に示す処理を開始する。
図5のステップS51においてクライアント装置300のプロセッサー301は、第2接続要求をデータ参照装置200に送信するように通信インターフェース305に対して指示する。第2接続要求は、送信先に接続の確立を要求する情報である。送信の指示を受けて通信インターフェース305は、当該第2接続要求をデータ参照装置200に送信する。送信された当該第2接続要求は、データ参照装置200の第2通信インターフェース206によって受信される。
【0048】
一方、データ参照装置200のプロセッサー201は、情報が受信されたならば、ステップS17においてYesと判定してステップS18へと進む。
ステップS18においてプロセッサー201は、要求処理テーブルを参照して、ステップS17で受信された情報の送信元が要求処理部Aに割り当て済みのクライアント装置300であるか否かを判定する。
【0049】
要求処理テーブルは、
図2のステップS16で生成された各要求処理部Aがどのクライアント装置300についての処理をするかを記憶するテーブルである。要求処理テーブルは、処理ID(identifier)とクライアントIDとを関連付けることで、当該処理IDが示す要求処理部Aが、当該クライアントIDが示すクライアント装置300についての処理をすることを示す。なお、処理IDは、要求処理部Aごとにユニークな識別情報である。処理IDは、例えば、要求処理部Aごとにユニークな通し番号である。また、クライアントIDは、クライアント装置300ごとにユニークな識別情報である。クライアントIDは、例えば、クライアント装置300のIP(Internet Protocol)アドレス又はMAC(media access control)アドレス、又は通し番号などである。なお、プロセッサー201は、データ参照装置200とクライアント装置300が接続するたび、接続したクライアント装置300に新たにクライアントIDを割り当ても良い。
【0050】
プロセッサー201は、ステップS17で受信された情報の送信元が、処理要求テーブルに記憶されているいずれかのクライアントIDで特定されるクライアント装置300であるならば、要求処理部Aに割り当て済みのクライアント装置300であると判定する。プロセッサー201は、送信元が要求処理部Aに割り当て済みのクライアント装置300でないならば、ステップS18においてNoと判定してステップS19へと進む。
【0051】
ステップS19においてプロセッサー201は、ステップS17で受信された情報が第2接続要求であるか否かを判定する。プロセッサー201は、ステップS17で受信された情報が第2接続要求であるならば、ステップS19においてYesと判定してステップS20へと進む。
【0052】
ステップS20においてプロセッサー201は、第2接続要求の送信元であるクライアント装置300を、いずれかの要求処理部Aに割り当てる。すなわち、プロセッサー201は、当該クライアント装置300のクライアントIDと当該要求処理部Aの処理IDとを関連付けて要求処理テーブルに記憶する。
プロセッサー201は、例えば以下の(1)~(6)のいずれかに示すような方法を用いて割り当てを行う。
【0053】
(1)プロセッサー201は、クライアント装置300に割り当てた番号をNで割った余りによって要求受信部を割り当てる。例えば、10個のクライアント装置300に割り当てられた番号が1~10、3個の要求処理部Aに割り当てられた番号が1~3であるとする。この場合、N=3である。プロセッサー201は、クライアント装置300に割り当てた番号を3で割り、例えば、余りが1であるものを1番の要求処理部A、余りが2であるものを2番の要求処理部A、余りが0であるものを3番の要求処理部Aに割り当てる。
【0054】
(2)プロセッサー201は、各要求処理部Aに割り当てられたクライアント装置300の数に応じて、クライアント装置300をどの要求処理部Aに割り当てるか決定する。例えば、プロセッサー201は、割り当てられているクライアント装置300の数が最も少ない要求処理部Aに、クライアント装置300を割り当てる。
【0055】
(3)プロセッサー201は、クライアント装置300が要求を送信する頻度によって割り当てる要求処理部Aを決定する。例えば、プロセッサー201は、1番の要求処理部Aには、比較的に高頻度で要求を送信するクライアント装置300を割り当てる。そして、プロセッサー201は、2番及び3番の要求処理部Aには、比較的に低頻度で要求を送信するクライアント装置300を割り当てる。この場合において、プロセッサー201は、高頻度で要求を送信するクライアント装置300を割り当てる要求処理部Aには、低頻度で要求を送信するクライアント装置300を割り当てる要求処理部Aと比べて少ない数のクライアント装置300を割り当てるようにする。
なお、プロセッサー201は、例えば、過去の実績から所定の頻度より要求が多いクライアント装置300を高頻度で要求を送信するクライアント装置300であるとみなす。あるいは、プロセッサー201は、クライアント装置300が特定の種類のクライアント装置300である場合に、高頻度で要求を送信するクライアント装置300であるとみなす。
【0056】
(4)プロセッサー201は、低遅延で要求を処理する必要があるかどうかに応じてクライアント装置300を割り当てる要求処理部Aを決定する。例えば、プロセッサー201は、1番及び2番の要求処理部Aには、低遅延で要求を処理する必要があるクライアント装置300を割り当てる。そして、プロセッサー201は、2番及び3番の要求処理部Aには、低遅延で要求を処理する必要がないクライアント装置300を割り当てる。この場合において、プロセッサー201は、低遅延で要求を処理する必要があるクライアント装置300を割り当てる要求処理部Aには、低遅延で要求を処理する必要がないクライアント装置300を割り当てる要求処理部Aと比べて少ない数のクライアント装置300を割り当てるようにする。
なお、プロセッサー201は、例えば、クライアント装置300が特定の種類のクライアント装置300である場合に、低遅延で要求を処理する必要があるクライアント装置300であるとみなす。
【0057】
(5)プロセッサー201は、クライアント装置300が送信する要求の種類に応じてクライアント装置300を割り当てる要求処理部Aを決定する。例えば、プロセッサー201は、専ら第2参照要求を送信するクライアント装置300と、専ら第2登録要求を送信するクライアント装置300とを異なる要求処理部Aに割り当てる。また、プロセッサー201は、低遅延での処理が必要な種類の要求を実行する要求処理部Aについては、他の要求処理部Aよりもクライアント装置300を割り当てる数を少なくなるようにしても良い。このために、プロセッサー201は、低遅延での処理が必要な種類の要求を実行する要求処理部Aの数を、他の要求処理部Aの数よりも多くしても良い。
【0058】
(6)プロセッサー201は、通信速度に応じてクライアント装置300を割り当てる要求処理部Aを決定する。例えば、プロセッサー201は、1番及び2番の要求処理部Aには、比較的に通信速度が遅いクライアント装置300を割り当てる。そして、プロセッサー201は、3番の要求処理部Aには、比較的に通信速度が速いクライアント装置300を割り当てる。
【0059】
ステップS21においてプロセッサー201は、第2接続応答を、第2接続要求の送信元のクライアント装置300に送信するように第2通信インターフェース206に対して指示する情報である。第2接続応答は、第2接続要求への応答として、接続を許可することを示す。送信の指示を受けて第2通信インターフェース206は、当該第2接続応答をクライアント装置300に送信する。送信された当該第2接続応答は、クライアント装置300の通信インターフェース305によって受信される。プロセッサー201は、ステップS21の処理の後、ステップS17へと戻る。
なお、プロセッサー201は、ステップS17で受信された情報が第2接続要求でないならば、ステップS19においてNoと判定して受信された情報に応じたその他の処理を行う。
【0060】
一方、
図5のステップS52においてクライアント装置300のプロセッサー301は、通信インターフェース305によって第2接続応答が受信されるのを待ち受けている。プロセッサー301は、第2接続応答が受信されたならば、ステップS52においてYesと判定してステップS53へと進む。
以上の処理によって、データ参照装置200とクライアント装置300との間の接続が確立される。なお、接続を確立する方法は、以上に示すものとは異なる方法であっても良い。
【0061】
ステップS53においてプロセッサー301は、データベースに要求を送信するか否かを判定する。なお、プロセッサー301は、データベースを参照する場合又はデータベースにデータを登録する場合などの、データベースにアクセスする場合に当該要求を送信すると判定する。プロセッサー301は、データベースに要求を送信しないならば、ステップS53においてNoと判定してステップS54へと進む。
【0062】
ステップS54においてプロセッサー301は、データ参照装置200と接続を切断するか否かを判定する。プロセッサー301は、データ参照装置200との接続を切断しないならば、ステップS54においてNoと判定してステップS53へと戻る。かくして、プロセッサー301は、データベースに要求を送信するか、データ参照装置200との接続を切断すると判定するまでステップS53及びステップS54を繰り返す待受状態となる。
【0063】
プロセッサー301は、ステップS53及びステップS54の待受状態にあるときにデータベースに要求を送信すると判定するならば、ステップS53においてYesと判定してステップS55へと進む。
【0064】
ステップS55においてプロセッサー301は、データベースに参照を行うか否かを判定する。プロセッサー301は、当該データベースに参照を行うならば、ステップS55においてYesと判定してステップS56へと進む。
【0065】
ステップS56においてプロセッサー301は、第2参照要求を生成する。第2参照要求は、データベースにデータの参照を要求する情報である。第2参照要求は、参照対象のデータを特定するために必要な情報を含む。プロセッサー301は、第2参照要求を生成した後、当該第2参照要求をデータ参照装置200に送信するように通信インターフェース305に対して指示する。この送信の指示を受けて通信インターフェース305は、当該第2参照要求をデータ参照装置200に送信する。送信された当該第2参照要求は、データ参照装置200の第2通信インターフェース206によって受信される。
【0066】
プロセッサー201は、ステップS17で受信された情報の送信元が要求処理部Aに割り当て済みのクライアント装置300であるならば、ステップS18においてYesと判定してステップS22へと進む。なお、以下に示すステップS22~ステップS32の処理は、当該情報の送信元であるクライアント装置300のクライアントIDに、処理要求テーブルによって関連付けられた処理IDで特定される要求処理部Aが実行する。ただし、いずれの要求処理部Aもプロセッサー201が実行するものであるので、以下の説明ではプロセッサー201がステップS22~ステップS32の処理を行うものとして説明している。
【0067】
ステップS22においてプロセッサー201は、ステップS17で受信された情報が第2参照要求であるか否かを判定する。プロセッサー201は、ステップS17で受信された情報が第2参照要求であるならば、ステップS22においてYesと判定してステップS23へと進む。
【0068】
ステップS23においてプロセッサー201は、第2データベースから、第2参照要求によって要求されているデータを読み出す。
【0069】
ステップS24においてプロセッサー201は、第2参照応答を生成する。第2参照応答は、ステップS23で読み出されたデータを含む情報である。プロセッサー201は、第2参照応答を生成した後、当該第2参照応答をクライアント装置300に送信するように第2通信インターフェース206に対して指示する。この送信の指示を受けて第2通信インターフェース206は、当該第2参照応答をクライアント装置300に送信する。送信された当該第2参照応答は、クライアント装置300の通信インターフェース305によって受信される。プロセッサー201は、ステップS24の処理の後、ステップS17へと戻る。
【0070】
一方、
図5のステップS57においてクライアント装置300のプロセッサー301は、通信インターフェース305によって第2参照応答が受信されるのを待ち受けている。プロセッサー301は、第2参照応答が受信されたならば、ステップS57においてYesと判定してステップS58へと進む。
【0071】
ステップS58において、プロセッサー301は、必要に応じて各種の処理を行う。プロセッサー301は、ステップS58の処理の後、ステップS53へと戻る。
【0072】
また、クライアント装置300のプロセッサー301は、データベースに参照を行わないならば、ステップS55においてNoと判定してステップS58へと進む。
ステップS59においてプロセッサー301は、データベースにデータの登録を行うか否かを判定する。プロセッサー301は、データベースにデータの登録を行うならば、ステップS59においてYesと判定してステップS60へと進む。
【0073】
ステップS60において、プロセッサー301は、必要に応じて各種の処理を行う。
【0074】
ステップS61においてプロセッサー301は、第2登録要求を生成する。第2登録要求は、データベースにデータの登録を要求する情報である。第2登録要求は、登録対象のデータを含む。プロセッサー301は、第2登録要求を生成した後、当該第2登録要求をデータ参照装置200に送信するように通信インターフェース305に対して指示する。この送信の指示を受けて通信インターフェース305は、当該第2登録要求をデータ参照装置200に送信する。送信された当該第2登録要求は、データ参照装置200の第2通信インターフェース206によって受信される。
【0075】
また、プロセッサー301は、データベースにデータの登録を行わないならば、ステップS59においてNoと判定してその他の要求をデータ参照装置200に送信する。
【0076】
一方、データ参照装置200のプロセッサー201は、
図3のステップS17で受信された情報が第2参照要求でないならば、ステップS22においてNoと判定してステップS25へと進む。
ステップS25においてプロセッサー201は、ステップS17で受信された情報が第2登録要求であるか否かを判定する。プロセッサー201は、ステップS17で受信された情報が第2登録要求であるならば、ステップS25においてYesと判定してステップS26へと進む。
【0077】
ステップS26においてプロセッサー201は、第1登録要求を生成する。第1登録要求は、第1データベースにデータの登録を要求する情報である。第1登録要求は、登録対象のデータとして、ステップS17で受信された第2登録要求に含まれる登録対象のデータを含む。プロセッサー201は、第1登録要求を生成した後、当該第1登録要求をデータベース装置100に送信するように第1通信インターフェース205に対して指示する。この送信の指示を受けて第1通信インターフェース205は、当該第1登録要求をデータベース装置100に送信する。送信された当該第1登録要求は、データベース装置100の通信インターフェース105によって受信される。
【0078】
ステップS27においてプロセッサー201は、ステップS17で受信された第2登録要求に含まれる登録対象のデータを、RAM203又は補助記憶装置204に記憶された第2データベースに登録する。
【0079】
一方、データベース装置100のプロセッサー101は、ステップS42~ステップS44の待受状態にあるときに第1登録要求が受信されたならば、ステップS44においてYesと判定してステップS47へと進む。
【0080】
ステップS47においてプロセッサー101は、ステップS44で受信された第1登録要求に含まれる登録対象のデータを、第1データベースに登録する。以上の処理により、第1データベースと第2データベースの両方に同じデータが登録されることとなる。
【0081】
ステップS48においてプロセッサー101は、第1登録応答をデータ参照装置200に送信するように通信インターフェース105に対して指示する。第1登録応答は、第1データベースへのデータの登録が正常に終了したことを示す情報である。この送信の指示を受けて通信インターフェース105は、当該第1登録応答をデータ参照装置200に送信する。送信された当該第1登録応答は、データ参照装置200の第1通信インターフェース205によって受信される。プロセッサー101は、ステップS48の処理の後、ステップS42へと戻る。
【0082】
一方、
図3のステップS28においてデータ参照装置200のプロセッサー201は、第1通信インターフェース205によって第1登録応答が受信されるのを待ち受けている。プロセッサー201は、第1登録応答が受信されたならば、ステップS28においてYesと判定してステップS29へと進む。
【0083】
ステップS29においてプロセッサー201は、第2登録応答をクライアント装置300に送信するように第2通信インターフェース206に対して指示する。第2登録応答は、データベースへのデータの登録が正常に終了したことを示す情報である。この送信の指示を受けて第2通信インターフェース206は、当該第2登録応答をクライアント装置300に送信する。送信された当該第2登録応答は、クライアント装置300の通信インターフェース305によって受信される。プロセッサー201は、ステップS29の処理の後、ステップS17へと戻る。
【0084】
一方、
図5のステップS62においてクライアント装置300のプロセッサー301は、通信インターフェース305によって第2登録応答が受信されるのを待ち受けている。プロセッサー301は、第2登録応答が受信されたならば、ステップS62においてYesと判定してステップS61へと進む。プロセッサー301は、ステップS62の処理の後、ステップS53へと戻る。
【0085】
プロセッサー301は、ステップS53及びステップS54の待受状態にあるときにデータ参照装置200との接続を切断すると判定するならば、ステップS54においてYesと判定してステップS63へと進む。
ステップS63においてプロセッサー301は、切断要求をデータ参照装置200に送信するように通信インターフェース305に対して指示する。切断要求は、送信先に接続の切断を要求する情報である。この送信の指示を受けて通信インターフェース305は、当該切断要求をデータ参照装置200に送信する。送信された当該切断要求は、データ参照装置200の第2通信インターフェース206によって受信される。
【0086】
一方、データ参照装置200のプロセッサー201は、
図3のステップS17で受信された情報が第2登録要求でないならば、ステップS28においてNoと判定してステップS30へと進む。
ステップS30においてプロセッサー201は、ステップS17で受信された情報が切断要求であるか否かを判定する。プロセッサー201は、ステップS17で受信された情報が切断要求であるならば、ステップS30においてYesと判定してステップS31へと進む。
【0087】
ステップS31においてプロセッサー201は、切断応答をクライアント装置300に送信するように第2通信インターフェース206に対して指示する。切断応答は、切断要求への応答として、切断を許可することを示す情報である。この送信の指示を受けて第2通信インターフェース206は、当該切断応答をクライアント装置300に送信する。送信された当該切断応答は、クライアント装置300の通信インターフェース305によって受信される。
【0088】
一方、
図5のステップS64においてクライアント装置300のプロセッサー301は、通信インターフェース305によって切断応答が受信されるのを待ち受けている。プロセッサー301は、切断応答が受信されたならば、ステップS64においてYesと判定して
図5に示す処理を終了する。
以上の処理によって、データ参照装置200とクライアント装置300との間の接続が切断される。なお、接続を切断する方法は、以上に示すものとは異なる方法であっても良い。
【0089】
一方、
図3のステップS32においてプロセッサー201は、切断要求の送信元であるクライアント装置を要求処理部Aの割り当てから解除する。すなわち、プロセッサー201は、要求処理テーブルから当該クライアント装置のクライアントIDを削除するなどして、当該クライアントIDと処理IDとの関連付けを解除する。
なお、プロセッサー201は、ステップS17で受信された情報が切断要求でないならば、ステップS30においてNoと判定して受信された情報に応じたその他の処理を行う。
【0090】
第1実施形態のデータベースシステム1によれば、データ参照装置200は、複数の要求処理部を生成する。そして、データ参照装置200は、接続してきたクライアント装置300をいずれかの要求処理部Aに割り当てる。これにより、データ参照装置200は、要求処理部Aの負荷を均等化することができるので、特定の要求処理部Aに処理が集中することなどによる処理遅延の発生を防ぐことができる。
【0091】
また、第1実施形態のデータベースシステム1によれば、データ参照装置200は、第2の参照要求があった場合、第2のデータベースを参照する。これにより、データ参照装置200は、データベースへのアクセスを第1のデータベースと第2のデータベースに分散させることができ、遅延の発生を防ぐことができる。
【0092】
また、第1実施形態のデータベースシステム1によれば、データ参照装置200は、第2の登録要求があった場合、第1のデータベースと第2のデータベースにデータを登録する。これによりデータ参照装置200は、第1のデータベースと第2のデータベースの同期をとることができる。
【0093】
また、第1実施形態のデータベースシステム1によれば、データ参照装置200は、各要求処理部Aに割り当てられている数に応じてクライアント装置300を割り当てる要求処理部Aを決定する。これにより、データ参照装置200は、要求処理部Aの負荷を均等化することができる。
【0094】
また、第1実施形態のデータベースシステム1によれば、データ参照装置200は、クライアント装置300の要求の頻度に応じてクライアント装置300を割り当てる要求処理部Aを決定する。これにより、データ参照装置200は、要求処理部Aの負荷を均等化することができる。
【0095】
また、第1実施形態のデータベースシステム1によれば、データ参照装置200は、クライアント装置300が行う要求の種類に応じてクライアント装置300を割り当てる要求処理部Aを決定する。これにより、データ参照装置200は、低遅延での処理が必要な要求を低遅延で処理することができる。
【0096】
〔第2実施形態〕
第2実施形態において第1実施形態と同様の部分については説明を省略する。
図6は、第2実施形態に係るデータベースシステム2及びデータベースシステム2に含まれる構成要素の要部構成の一例を示すブロック図である。データベースシステム2は、一例として、データベース装置100及び複数のクライアント装置300を含む。データベース装置100及びクライアント装置300は、ネットワークNWに接続する。第2実施形態のデータベース装置100は、データ参照サーバーの一例として機能する。
【0097】
データベース装置100のプロセッサー101は、複数のコアを備えることが好ましい。
プロセッサー101は、データベース部1011及びデータ参照部1012として動作する。プロセッサー101は、例えば、データベース装置100の起動にともない、データベース部1011及びデータ参照部1012を生成する。プロセッサー101は、データベース部1011とデータ参照部1012とを並行又は並列で処理する。データベース部1011とデータ参照部1012は、異なるプロセス又はスレッドで動作する。また、データベース部1011とデータ参照部1012は、異なるプロセッサーコアで動作しても良い。
なお、データ参照部1012は、第1の処理部の一例である。また、データベース部1011は、第2の処理部の一例である。
【0098】
第2実施形態では、通信インターフェース105は、データベース装置100がネットワークNWなどを介して通信するためのインターフェースである。
【0099】
データベース部1011は、
図4に示す処理を行う。データ参照部1012は、
図2及び
図3に示す処理を行う。そして、クライアント装置300は、第1実施形態と同様に
図5に示す処理を行う。
【0100】
ただし、第2実施形態では、クライアント装置300は、各要求をデータ参照装置200ではなくデータベース装置100に送信する。当該各要求は、データベース装置100の通信インターフェース105によって受信される。
また、第2実施形態では、データ参照部1012は、第2通信インターフェース206に代えて通信インターフェース105を用いて、クライアント装置300に各情報を送信する。
【0101】
また、第2実施形態では、データ参照部1012は、データベース装置100ではなくデータベース部1011に各情報を送信する。なお、当該送信は、プロセス又はスレッド間での情報の受け渡しである。
また、第2実施形態では、データベース部1011は、データ参照装置200ではなくデータ参照部1012に各情報を送信する。なお、当該送信は、プロセス又はスレッド間での情報の受け渡しである。
なお、第2実施形態では、データベース部1011とデータ参照部1012との間での情報の受け渡しには接続の確立は必要ない。このため、第2実施形態では、データベース部1011及びデータ参照部1012は、接続の確立のための処理、すなわち第1接続要求及び第1接続応答の送受信の処理を行う必要はない。
【0102】
第2実施形態のステップS15では、データ参照部1012は、第2データベースをRAM203又は補助記憶装置204に代えて、RAM103又は補助記憶装置104に記憶する。これにより、RAM103又は補助記憶装置104には、第1データベースと第2データベースの2つの同一のデータベースが記憶されることとなる。なお、データベース装置100は、RAM103又は補助記憶装置104を2つ以上備えていても良い。この場合、データベース部1011とデータ参照部1012とは、第1データベースと第2データベースが異なるRAM103又は補助記憶装置104に記憶されるようにしても良い。この場合、データベース装置100は、RAM103又は補助記憶装置104へのアクセス待ちによる遅延を低減することができる。
なお、第2データベースを記憶するRAM103又は補助記憶装置104は、第2の記憶部の一例である。
【0103】
第2実施形態のデータベースシステム2は、第1実施形態と同様の効果が得られる。
また、第2実施形態のデータベースシステム2は、データベース部1011とデータ参照部1012を同一の装置が実行する。したがって、第2実施形態のデータベースシステム2は、データベース部1011とデータ参照部1012との間の情報の受け渡しを高速に行うことができる。このため、第2実施形態のデータベースシステム2は、データベースへのデータ登録の頻度が多い場合に処理負荷が低減される。
【0104】
〔第3実施形態〕
第3実施形態において第2実施形態と同様の部分については説明を省略する。
図7は、第3実施形態に係るデータベースシステム3及びデータベースシステム3に含まれる構成要素の要部構成の一例を示すブロック図である。第3実施形態のデータベース装置100は、データ参照サーバーの一例として機能する。
【0105】
第3実施形態では、データベース装置100のプロセッサー101は、データベース部1011、データ参照部1012及びアプリケーション部1013として動作する。プロセッサー101は、例えば、データベース装置100の起動にともない、データベース部1011、データ参照部1012及びアプリケーション部1013を生成する。プロセッサー101は、データベース部1011、データ参照部1012及びアプリケーション部1013を並行又は並列で処理する。データベース部1011、データ参照部1012及びアプリケーション部1013は、それぞれ異なるプロセス又はスレッドで動作する。また、データベース部1011、データ参照部1012及びアプリケーション部1013は、それぞれ異なるプロセッサーコアで動作しても良い。
なお、アプリケーション部1013は、第3の処理部の一例である。
【0106】
第3実施形態では、アプリケーション部1013は、
図5に示す処理を行う。
第3実施形態では、クライアント装置300は、クライアント装置300で発生したイベントなどの、クライアント装置300の状況を示す情報をデータベース装置100に送信する。通信インターフェース305が当該情報を送信する。当該情報は、データベース装置100の通信インターフェース105によって受信される。アプリケーション部1013は、各クライアント装置300から送信される当該情報に基づき、
図5に示す処理をクライアント装置300に代えて行う。
【0107】
第3実施形態では、アプリケーション部1013は、データベース装置100ではなくデータ参照部1012に各情報を送信する。なお、当該送信は、プロセス又はスレッド間での情報の受け渡しである。
また、第3実施形態では、データ参照部1012は、クライアント装置300ではなくアプリケーション部1013に各情報を送信する。なお、当該送信は、プロセス又はスレッド間での情報の受け渡しである。
なお、第3実施形態では、データ参照部1012とアプリケーション部1013との間での情報の受け渡しには接続の確立は必要ない。このため、第3実施形態では、データ参照部1012及びアプリケーション部1013は、接続の確立のための処理、すなわち第2接続要求及び第2接続応答の送受信の処理を行う必要はない。
【0108】
第3実施形態のデータベースシステム3は、第1実施形態及び第2実施形態と同様の効果が得られる。
また、第3実施形態のデータベースシステム3は、データベース部1011、データ参照部1012及びアプリケーション部1013を同一の装置が実行する。したがって、第3実施形態のデータベースシステム3は、データベース部1011とデータ参照部1012との間の情報の受け渡し及びデータ参照部1012とアプリケーション部1013との間の情報の受け渡しを高速に行うことができる。このため、第3実施形態のデータベースシステム3は、データベースへのデータ参照及びデータ登録の頻度が多い場合に処理負荷が低減される。
【0109】
また、第3実施形態のデータベースシステム3は、アプリケーション部1013が要求を送信するので、クライアント装置300が情報を送信する量及び頻度が低下する。
【0110】
〔第4実施形態〕
第4実施形態において第3実施形態と同様の部分については説明を省略する。
図8は、第4実施形態に係るデータベースシステム4及びデータベースシステム4に含まれる構成要素の要部構成の一例を示すブロック図である。データベースシステム4は、一例として、データベース装置100、データ参照装置200及び複数のクライアント装置300を含む。第3実施形態のデータ参照装置200は、データ参照サーバーの一例として機能する。
【0111】
第4実施形態では、データベース装置100は、第1実施形態と同様に動作する。すなわち、プロセッサー101は、
図4に示す処理を行う。
【0112】
第4実施形態では、データ参照装置200は、データ参照部1012及びアプリケーション部1013として動作する。プロセッサー201は、例えば、データ参照装置200の起動にともない、データ参照部1012及びアプリケーション部1013を生成する。プロセッサー201は、データ参照部1012及びアプリケーション部1013を並行又は並列で処理する。データ参照部1012及びアプリケーション部1013は、それぞれ異なるプロセス又はスレッドで動作する。また、データ参照部1012及びアプリケーション部1013は、それぞれ異なるプロセッサーコアで動作しても良い。
このように、第4実施形態では、データベース装置100のプロセッサー101に代えてデータ参照装置200のプロセッサー201がデータ参照部1012及びアプリケーション部1013として動作する。
【0113】
第4実施形態では、データ参照部1012は、データベース部1011ではなくデータベース装置100との間で各情報を送受信する。すなわち、データ参照部1012は、第1実施形態のデータ参照装置200と同様にしてデータベース部1011と各情報を送受信する。
【0114】
第4実施形態では、データベース装置100及びデータ参照部1012は、データベース装置100とデータ参照部1012との間での接続の確立のための処理を行う。
【0115】
第4実施形態のデータベースシステム4は、第1実施形態と同様の効果が得られる。
また、第4実施形態のデータベースシステム4は、データ参照部1012及びアプリケーション部1013を同一の装置が実行する。したがって、第4実施形態のデータベースシステム4は、アプリケーション部1013との間の情報の受け渡しを高速に行うことができる。このため、第4実施形態のデータベースシステム2は、データベースへのデータ参照及びデータ登録の頻度が多い場合に処理負荷が低減される。このため、第3実施形態のデータベースシステム3は、データベースへのデータ参照及びデータ登録の頻度が多い場合に処理負荷が低減される。
【0116】
また、第4実施形態のデータベースシステム4は、アプリケーション部1013が要求を送信するので、クライアント装置300が情報を送信する量及び頻度が低下する。
【0117】
〔第5実施形態〕
第5実施形態において第3実施形態と同様の部分については説明を省略する。
図9は、第5実施形態に係る料金収受システム5及び料金収受システム5に含まれる構成要素の要部構成の一例を示すブロック図である。料金収受システム5は、
図7に示すデータベースシステム3の一種である。料金収受システム5は、高速道路などの有料道路において料金収受を行うためのシステムである。料金収受システム5は、データベース装置100、入口料金所装置410、経路装置420及び出口料金所装置430を含む。なお、典型的には、入口料金所装置410、経路装置420及び出口料金所装置430は、それぞれ複数ある。
なお、料金収受システム5は、料金管理システムの一例である。
【0118】
入口料金所装置410は、有料道路の入口料金所に設置される。経路装置420は、有料道路のジャンクションなどの本線上に設置される。出口料金所装置430は、有料道路の出口料金所に設置される。入口料金所装置410、経路装置420及び出口料金所装置430を路側装置400と総称するものとする。なお、路側装置400は、クライアント装置としても機能する。
【0119】
図10は、第5実施形態に係る路側装置400の一例を示すブロック図である。路側装置400は、クライアント装置300及び車両通信部401を含む。また、路側装置400は、発進制御装置402を含んでも良い。
【0120】
第5実施形態のクライアント装置300は、プロセッサー301、ROM302、RAM303、補助記憶装置304及び通信インターフェース305に加えて制御インターフェース307を含む。
【0121】
制御インターフェース307は、クライアント装置300が各種の装置と通信して制御するためのインターフェースである。クライアント装置300は、制御インターフェース307を介して車両通信部401及び発進制御装置402と通信する。また、クライアント装置300は、車両通信部401及び発進制御装置402と通信することで、車両通信部401及び発進制御装置402を制御する。
【0122】
車両通信部401は、有料道路を通過する車両を検知する。また、車両通信部401は、当該車両が備える車載装置500と通信する。
【0123】
発進制御装置402は、制御インターフェース307から出力される発進制御情報に基づき発進制御バーの開閉を制御する。発進制御バーは、閉じた状態において料金所のレーンを閉塞し、車両が料金所のレーンを通過することを阻止する。また、発進制御バーは、開いた状態において車両が料金所のレーンを通過することを許可することを示す。
【0124】
車載装置500は、例えば、ETCシステムを利用するための装置である。車載装置500は、ETCカードを挿入可能である。車載装置500は、当該ETCカードに割り当てられたカードIDを読み取ることができる。カードIDは、ETCカードごとにユニークな識別情報である。
【0125】
また、路側装置400の補助記憶装置304は、当該路側装置400に割り当てられた路側IDを記憶する。路側IDは、路側装置400が設置されている位置(料金所及びジャンクション)ごとにユニークに割り当てられた識別情報である。
【0126】
また、第5実施形態のデータベースは、経路テーブルを含む。経路テーブルは、有料道路を通行する車両の通行経路を記憶する。
【0127】
以下、第5実施形態に係るデータベースシステム1の動作を
図11及び
図12などに基づいて説明する。なお、以下の動作説明における処理の内容は一例であって、同様な結果を得ることが可能な様々な処理を適宜に利用できる。
図11は、入口料金所装置410及び経路装置420のプロセッサー301による処理の一例を示すフローチャートである。プロセッサー301は、例えば、ROM302又は補助記憶装置304などに記憶されたプログラムに基づいて
図11の処理を実行する。
図12は、出口料金所装置430のプロセッサー301による処理の一例を示すフローチャートである。プロセッサー301は、例えば、ROM302又は補助記憶装置304などに記憶されたプログラムに基づいて
図12の処理を実行する。なお、
図11と
図12は、ステップS101~ステップS105が共通の処理である。
【0128】
また、データベース部1011は、第3実施形態と同様に、
図4に示す処理を行う。データ参照部1012は、第3実施形態と同様に、
図2及び
図3に示す処理を行う。アプリケーション部1013は、第3実施形態と同様に、
図5に示す処理を行う。
【0129】
図11及び
図12のステップS101において路側装置400のプロセッサー301は、車両通信部401によって通過車両が検知されるのを待ち受ける。プロセッサー301は、車両通信部401によって通過車両が検知されたならば、ステップS101においてYesと判定してステップS102へと進む。
【0130】
ステップS102においてプロセッサー301は、車両通信部401を制御して、車両通信部401によって検知された通過車両の車載装置500との通信を開始する。
【0131】
ステップS103においてプロセッサー301は、車両通信部401を介して、車載装置500からカードIDを取得する。
ステップS104においてプロセッサー301は、現在時刻を取得する。当該現在時刻は、車両の通過時刻である。
【0132】
ステップS105においてプロセッサー301は、路側通知パケットを生成する。路側通知パケットは、補助記憶装置304に記憶された路側ID、ステップS103で取得されたカードID、ステップS104で取得された通過時刻及びパケット種別を含む。路側通知パケットは、当該カードIDで特定される車両が、当該路側IDで特定される位置(料金所又はジャンクション)を、当該通過時刻に通過したことを通知する情報である。パケット種別は、路側通知パケットの送信元が、入口料金所装置410、経路装置420又は出口料金所装置430のいずれの路側装置400であるかを示す。プロセッサー301は、路側通知パケットを生成した後、当該路側通知パケットをデータベース装置100に送信するように通信インターフェース305に対して指示する。この送信の指示を受けて通信インターフェース305は、当該路側通知パケットをデータベース装置100に送信する。送信された当該路側通知パケットは、データベース装置100の通信インターフェース105によって受信される。入口料金所装置410及び経路装置420のプロセッサー301は、ステップS105の後、ステップS101へと戻る。
なお、路側通知パケットは、通知情報の一例である。
【0133】
アプリケーション部1013は、路側通知パケットを受信したならば、
図5のステップS53において要求を送信すると判定する。すなわち、アプリケーション部1013は、ステップS53においてYesと判定してステップS55へと進む。
【0134】
また、アプリケーション部1013は、路側通知パケットのパケット種別が入口料金所装置410又は経路装置420を示すならば、ステップS55においてNoと判定し、ステップS59においてYesと判定する。そして、アプリケーション部1013は、ステップS61において第2登録要求を送信する。当該第2登録要求は、登録対象のデータとして、路側通知パケットに含まれる路側ID、カードID及び通過時刻を含む。
【0135】
アプリケーション部1013が第2登録要求を送信したことに応じて、データベース部1011及びデータ参照部1012は、データベースにデータを登録する。すなわち、データベース部1011及びデータ参照部1012は、
図4のステップS47及び
図3のステップS27において、第1データベース及び第2データベースに、第2登録要求又は第1登録要求に含まれる路側ID、カードID及び通過時刻を登録する。このとき、データベース部1011及びデータ参照部1012は、例えば、当該カードIDに、路側ID及び通過時刻を関連付けて
図13に示すような経路テーブルT1に記憶する。
図13は、経路テーブルT1の一例を示す図である。
【0136】
また、アプリケーション部1013は、路側通知パケットのパケット種別が出口料金所装置430を示すならば、ステップS55においてYesと判定する。そして、アプリケーション部1013は、ステップS56において第2参照要求を送信する。当該第2参照要求は、参照対象のデータを特定するために必要な情報として、路側通知パケットに含まれるカードIDを含む。
【0137】
アプリケーション部1013が第2参照要求を送信したことに応じて、データ参照部1012は、データベースを参照してデータを取得する。すなわち、データ参照部1012は、
図3のステップS23において、第2データベースの経路テーブルを参照して、第2参照要求に含まれるカードIDに関連付けられた路側ID及び通過時刻を取得する。ここで取得された路側ID及び通過時刻は、第2参照応答によってアプリケーション部1013に送信される。アプリケーション部1013は、このように取得された路側ID及び現在時刻により、カードIDで特定される車両がどのような経路で有料道路の入口から出口までどのような経路で通行したかが分かる。また、アプリケーション部1013は、路側通知パケットに含まれる路側IDにより、どの出口から当該車両が出ようとしているかが分かる。したがって、アプリケーション部1013は、車両の通行経路及び時刻から、通行料金の金額を求めることができる。アプリケーション部1013は、
図5のステップS58において通行料金の金額を求める。さらに、ステップS58においてアプリケーション部1013は、路側応答パケットを、路側通知パケットの送信元である路側装置400(出口料金所装置430)に送信するように指示する。路側応答パケットは、路側ID、カードID、パケット種別及び通行料金の金額を含む。このうち、路側ID、カードID、パケット種別は、路側通知パケットと同一である。路側応答パケットは、通行料金の金額を通知する情報である。送信の指示を受けて通信インターフェース105は、当該出口料金所装置430に路側応答パケットを送信する。当該路側応答パケットは、出口料金所装置430の通信インターフェース305によって受信される。また、ステップS58においてアプリケーション部1013は、求めた通行料金の金額分の決済に係る処理を行う。
したがって、アプリケーション部1013は、ステップS58において通行料金の金額を求めることで、金額処理部の一例として機能する。
【0138】
一方、
図12のステップS106において出口料金所装置430のプロセッサー301は、通信インターフェース305によって路側応答パケットが受信されるのを待ち受けている。プロセッサー301は、路側応答パケットが受信されたならば、ステップS106においてYesと判定してステップS107へと進む。
【0139】
ステップS107においてプロセッサー301は、路側応答パケットに含まれる通行料金の金額を示す情報を、車両通信部401を介して車載装置500に送信する。これを受けて、車載装置500は、当該金額を表示する。
【0140】
ステップS108においてプロセッサー301は、発進制御装置402を制御して、発進制御バーを開いた状態にする。なお、プロセッサー301は、ステップS108の処理をスキップしても良い。プロセッサー301は、ステップS108の処理の後、ステップS101へと戻る。
【0141】
第5実施形態の料金収受システム5は、第1実施形態~第4実施形態のデータベースシステムと同様に低遅延での処理が可能である。また、第5実施形態の料金収受システム5は、第3実施形態のデータベースシステム3と同様に処理負荷の低減が可能である。したがって、第5実施形態の料金収受システム5は、通行料金の金額の通知を高速に行うことができる。
【0142】
〔第6実施形態〕
第6実施形態において第5実施形態と同様の部分については説明を省略する。
第6実施形態の料金収受システム5の構成は第5実施形態と同様であるので説明を省略する。
【0143】
第6実施形態のデータベースは、料金テーブルを含む。料金テーブルは、有料道路を通行する車両が各出口から出た場合の通行料金の金額を記憶する。
【0144】
第6実施形態では、アプリケーション部1013は、ステップS60において、路側通知パケットのパケット種別が入口料金所装置410を示すならば、有料道路の通行料金を事前計算する。すなわち、アプリケーション部1013は、当該路側通知パケットに含まれる路側IDが示す入口料金所から到達可能な各出口料金所から出た場合の通行料金の金額をそれぞれ求める。また、アプリケーション部1013は、ステップS60において、路側通知パケットのパケット種別が経路装置420を示すならば、有料道路の通行料金を事前計算する。すなわち、アプリケーション部1013は、当該路側通知パケットに含まれる路側IDが示すジャンクションから到達可能な各出口料金所から出た場合の通行料金の金額をそれぞれ求める。
そして、アプリケーション部1013は、ステップS61において、ステップS60で求めた通行料金、及び路側通知パケットに含まれるカードIDを登録対象のデータとして含む第2登録要求を生成する。
以上より、アプリケーション部1013は、ステップS60において通行料金の金額を求めることで、金額処理部の一例として機能する。
【0145】
第6実施形態では、データベース部1011及びデータ参照部1012は、
図4のステップS47及び
図3のステップS27において、第1データベース及び第2データベースに、第2登録要求又は第1登録要求に含まれる通行料金及びカードIDを登録する。このとき、データベース部1011及びデータ参照部1012は、例えば、当該カードIDに各出口の路側ID及び通行料金の金額を関連付けて
図14に示すような料金テーブルT2に記憶する。
図14は、料金テーブルT2の一例を示す図である。
【0146】
また、第6実施形態では、アプリケーション部1013は、参照対象のデータを特定するために必要な情報として、路側通知パケットに含まれるカードID及び路側IDを含む第2参照要求を送信する。
【0147】
アプリケーション部1013が第2参照要求を送信したことに応じて、データ参照部1012は、データベースを参照してデータを取得する。すなわち、データ参照部1012は、
図3のステップS23において、第2データベースの料金テーブルを参照して、第2参照要求に含まれるカードID及び出口IDに関連付けられた通行料金の金額を取得する。ここで取得された通行料金の金額は、第2参照応答によってアプリケーション部1013に送信される。そして、
図5のステップS58においてアプリケーション部1013は、当該通行料金を含む路側応答パケットを、路側通知パケットの送信元である路側装置400(出口料金所装置430)に送信する。また、ステップS58においてアプリケーション部1013は、当該通行料金の金額分の決済に係る処理を行う。
【0148】
第6実施形態の料金収受システム5は、事前に通行料金の金額を求める。したがって、第6実施形態の料金収受システム5は、通行料金の金額の通知を高速に行うことができる。
【0149】
上記の実施形態は以下のような変形も可能である。
第5実施形態及び第6実施形態の料金収受システム5は、カードIDに代えて車両番号、自動車登録番号、WCN(wireless call number)又は車載器管理番号などを用いても良い。
【0150】
第5実施形態及び第6実施形態の料金収受システム5における構成は、
図7に示すデータベースシステム3と同様の構成である。しかしながら、第5実施形態及び第6実施形態の料金収受システムは、
図1に示すデータベースシステム1、
図6に示すデータベースシステム2又は
図8に示すデータベースシステム4と同様の構成であっても良い。
【0151】
プロセッサー101、プロセッサー201又はプロセッサー301は、上記実施形態においてプログラムによって実現する処理の一部又は全部を、回路のハードウェア構成によって実現するものであっても良い。
【0152】
上記実施形態における各装置は、例えば、上記の各処理を実行するためのプログラムが記憶された状態で各装置の管理者などへと譲渡される。あるいは、当該各装置は、当該プログラムが記憶されない状態で当該管理者などに譲渡される。そして、当該プログラムが別途に当該管理者などへと譲渡され、当該管理者又はサービスマンなどによる操作に基づいて当該各装置に記憶される。このときのプログラムの譲渡は、例えば、ディスクメディア又は半導体メモリなどのようなリムーバブルな記憶媒体を用いて、あるいはインターネット又はLANなどを介したダウンロードにより実現できる。
【0153】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0154】
1,2,3,4……データベースシステム、100……データベース装置、101,201,301……プロセッサー、102,202,302……ROM、103,203,303……RAM、104,204,304……補助記憶装置、105,305……通信インターフェース、106,207,306……バス、200……データ参照装置、205……第1通信インターフェース、206……第2通信インターフェース、300……クライアント装置、307……制御インターフェース、400……路側装置、401……車両通信部、402……発進制御装置、410……入口料金所装置、420……経路装置、430……出口料金所装置、500……車載装置、1011……データベース部、1012……データ参照部、1013……アプリケーション部、A……要求処理部