(57)【要約】【課題】EVのSOCや走行位置などの機器の稼働情報を外部アプリケーションに提供する情報管理システムにおいて、外部アプリケーションに対しどの範囲の情報をどのような手段で提供すべきかといった情報提供に関する定義を生成し、その定義に基づき、時々刻々と値が変化する機器の状況を表す項目に基づいて生成したアクセス条件の定義に従って、外部アプリケーションへの提供情報や提供手段、アクセス可否の制御を行う。【解決手段】機器のユーザなどから入力された契約内容に基づき、該当する定義変換辞書を用いて情報提供の定義を生成する。また、機器から収集する時系列情報項目の値の範囲によりアプリケーションの参照可否の条件を定義し、アクセス可否判定の対象とする時系列情報を期間単位で集約し、その期間内での時系列情報の最大値および最小値とアクセス条件に指定の境界値とを比較することで期間単位でのアクセス可否の判定を行う。【選択図】  図１
2014052679.tif 000002
【特許請求の範囲】
【請求項１】
対象機器の現在状況に応じて当該対象機器に関する情報へのアクセス権を設定する情報管理方法であって、
前記対象機器に関する状態情報をデータベースに蓄積する蓄積ステップと、
前記対象機器に関する情報取得要求を受信する要求ステップと、
前記対象機器の状態情報を前記データベースから取得する状態情報取得ステップと、
前記対象機器に関連するアクセス条件を取得するアクセス条件取得ステップと、
前記取得した状態情報及びアクセス条件とから前記情報取得要求への応答が可能であるかを判定する判定ステップと、
前記判定の結果に基いて前記情報取得要求の送信元に前記対象機器に関する情報送信する情報送信ステップと、
を備えることを特徴とする情報管理方法。
【請求項２】
請求項１に記載の情報管理方法において、
前記情報蓄積ステップは、所定の時間毎に、複数の時点の前記状態情報を蓄積し、
前記判定ステップは、前記複数の時点での前記状態情報のいずれかが前記アクセス条件に該当するかで前記情報取得要求への応答が可能であるかを判定することを特徴とする情報管理方法。
【請求項３】
請求項２に記載の情報管理方法において、
前記複数の時点の前記状態情報とは、前記所定の時間における前記状態情報の最大値と最小値とであることを特徴とする情報管理方法。
【請求項４】
請求項１乃至３のいずれか一項に記載の情報管理方法において、
前記所定の期間は、前記状態情報の変化に応じて変更されることを特徴とする情報管理方法。
【請求項５】
対象機器の現在状況に応じて当該対象機器に関する情報へのアクセス権を設定する情報管理装置であって、
前記対象機器に関する状態情報をデータベースに蓄積する蓄積部と、
前記対象機器に関する情報取得要求を受信する受信部と、
前記対象機器の状態情報を前記データベースから取得する状態情報取得部と、
前記対象機器に関連するアクセス条件を取得し、前記取得した状態情報及びアクセス条件とから前記情報取得要求への応答が可能であるかを判定する判定部と、
前記判定の結果に基いて前記情報取得要求の送信元に前記対象機器に関する情報送信する送信部と、
を備えることを特徴とする情報管理装置。
【請求項６】
請求項５に記載の情報管理装置において、
前記蓄積部は、所定の時間毎に、複数の時点の前記状態情報が蓄積されており、
前記判定部は、前記複数の時点での前記状態情報のいずれかが前記アクセス条件に該当するかで前記情報取得要求への応答が可能であるかを判定することを特徴とする情報管理装置。
【請求項７】
請求項６に記載の情報管理装置において、
前記複数の時点の前記状態情報とは、前記所定の時間における前記状態情報の最大値と最小値とであることを特徴とする情報管理装置。
【請求項８】
請求項５乃至７のいずれか一項に記載の情報管理装置において、
前記所定の期間は、前記状態情報の変化に応じて変更されることを特徴とする情報管理装置。
【請求項９】
複数のインフラ需給機器を含む所定区域毎に設けられる情報管理装置と、前記情報管理装置が保持する前記インフラ需給機器の稼働情報を、前記機器の所有者もしくは使用者の許可を得たうえで参照し、前記所有者もしくは使用者に対し前記稼働情報を活用したサービスを提供する情報利用装置と、を含む情報管理システムであって、
前記情報管理装置は、前記機器から送信される時系列情報を含む稼働情報を受け付け、前記稼働情報に含まれる機器の稼働開始と終了を意味する機器の稼働状態を基に、稼働開始と終了の間の同一稼働範囲内の稼働情報であるか否かを判定し、同一稼働期間内であるならば過去の同一稼働範囲内の稼働情報と、受け付けた稼働情報とで前記稼働情報に含まれる時系列情報の値を比較し、前記同一稼働期間内での時系列情報の最大値と最小値を算出して期間単位稼働情報として保持し、同一稼働範囲内でないならば新規の稼働範囲として受け付けた前記稼働情報の時系列情報から最大値と最小値を抽出して同様に期間単位稼働情報として保持し、
前記情報管理装置は、前記稼働情報に含まれる時系列情報の範囲で定義される前記情報利用装置と前記機器との前記稼働情報の参照許可条件を保持し、
前記情報利用装置からの前記稼働情報の参照要求を受け付け、前記期間単位稼働情報が保持する時系列情報の最大値および最小値と、前記参照許可条件で定義される時系列情報の前記範囲とを比較し、比較の結果、前記範囲内に前記最大値および最小値がいずれも含まれる場合は、前記期間に含まれる稼働情報はすべて参照可能とし、前記範囲内に前記最大値および最小値がいずれも含まれない場合は、前記期間に含まれる稼働情報はすべて参照不可とする、
ことを特徴とする情報管理システム。
【請求項１０】
請求項９に記載の情報管理システムにおいて、
前記情報管理装置は、機器の稼働開始と終了を意味する機器の稼働状態の代わりに、前記機器が稼働情報を計測した日時から、前のタイミングで受け付けた稼働情報から任意の予め指定した時間範囲経過しているか否かで、前記同一稼働期間内に含まれるか否かを判定する、ことを特徴とする情報管理システム。
【請求項１１】
請求項９に記載の情報管理システムにおいて、
前記情報管理装置は、機器の稼働開始と終了を意味する機器の稼働状態の代わりに、前記稼働情報に含まれる他の時系列情報の値が、予め指定した値と一致するもしくは指定した範囲内に含まれるか否かを判定し、その値および範囲が変化したか否かで、前記同一稼働期間内に含まれるか否かを判定する、ことを特徴とする情報管理システム。
【請求項１２】
請求項９に記載の情報管理システムにおいて、
前記情報管理装置は、前記利用者と前記情報利用装置の運用者との間で交わされる、前記情報利用装置の前記稼働情報の利用目的を基に、前記情報管理装置が前記稼働情報を受信した際に前記情報管理装置から前記情報利用装置に前記稼働情報を送付すべきか、前記記憶装置に登録するのみかを表す情報提供手段、および前記稼働情報に含まれる項目およびその値、一致や範囲などの条件を含む情報提供条件を含む前記情報管理装置が保持する情報提供定義を、予め登録された前記利用目的ごとの変換定義を基に作成し保持する、ことを特徴とする情報管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電気自動車（Electric Vehicle: EV）等の機器の稼働情報を収集・管理し、それらの情報をサービス事業者に提供することで、サービス事業者が機器のユーザにサービスを提供することを可能とするシステムに関する。
【背景技術】
【０００２】
地域のエネルギー需給を調整して再生可能エネルギーを有効活用するCEMS（Community Energy Management System）では、地域の需要家が所有する機器から収集した稼働情報を保持する。この稼働情報をエネルギー需給に活用するだけでなく、エネルギーの供給者と需要家以外の第三者のサービス事業者に提供することで、サービス事業者は稼働情報を活用したサービスを需要家に提供することも考えられている。ただし、機器の稼働情報は電源のOn/OffやEVの走行位置など、機器のユーザである需要家のプライバシーに関わる情報である。需要家が契約したサービス事業者のみがその需要家の機器の稼働情報をCEMSから参照でき、契約していないサービス事業者には参照できないようにする仕組みがCEMSには必要である。このように、保持するデータに対し他のサービスが参照する際に、あらかじめ定義されたアクセス権限にしたがって提供するデータをフィルタリングする仕組みとしてデータアクセスコントロール技術がある。例えば特許文献1に記載されている技術では、情報の作成者が誰に対してその情報を公開するかを定義することで、その定義に従ってサービス等の参照者のアクセス時に参照権限があるかどうかを、サービスに提供する公開情報ごとに判定するものである。これにより、データに対するアクセスコントロールを実現している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開2002−269092号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
CEMSでは、契約したサービスに対しては所有する機器の稼働情報をすべて参照可能とするケースのほか、プライバシーの保護の観点から、稼働情報が表す機器の状況に応じ、ある状況では稼働情報の参照可とし、それ以外は参照不可とするケースが想定される。例えばEVでは、サービスとして充電ステーションへのナビゲーションサービスと契約する場合、EVのバッテリーのSOC(State of Charge)が少なくなり、充電が必要な場合の稼働情報のみを参照可能とする、というケースがある。また、サービスとして地域の店舗等の広告情報配信サービスと契約する場合、EVのユーザが見知らぬ土地や目的の観光地を走行している場合のみ、その稼働情報をサービスに提供することでユーザの走行位置に適した店舗の広告情報を配信する、というケースも考えられる。これらの場合、サービスが稼働情報を参照可能となる条件はEVのSOCの値や、走行位置の範囲によって変わる。
【０００５】
特許文献１に記載の技術では、サービスからのアクセス要求を受けた際に、情報作成者が定義したポリシーを参照し、サービスに提供する公開情報ごとにそのポリシーの条件に該当するかどうかを判定する。ポリシーとして設定できるのは参照サービスのIDなどの値が固定的な情報である。この技術を前記のCEMSに適用しようとした場合、SOCや走行位置など、稼働情報のデータ項目の範囲をアクセス可否の条件に定義することは想定されていないため、契約したサービスに対してすべての稼働情報の参照を許すか、一切の稼働情報の参照を許さないかのいずれかのみになり、機器の状況に応じたアクセスコントロールの実施は困難である。
【０００６】
そこで、本発明の第一の目的は、IDなどの値が固定的なデータ項目のみでなくSOCや走行位置など、時々刻々と値が変化する時系列のデータ項目についてもアクセス制御の条件を定義することで、機器の状況に応じてサービスに対するその情報の参照可否を切り分けられる情報管理システムを提供することにある。
また、特許文献１に記載の技術で想定されている公開情報は、加入する会員の属性情報を想定しているため、公開情報の件数は加入する会員数程度でそれほど多くないと考える。ただしCEMSでは、特にEVの稼働情報を収集する場合には高速走行中など走行位置が瞬時に変わるため、少なくとも数分に1度、正確に位置を把握しようとすると数十秒に1度は稼働情報を収集する必要がある。この場合、対象とするEVの台数によりCEMSで保持する稼働情報は膨大になる可能性がある。サービスが稼働情報を参照する際には、任意の日一日分の稼働情報の参照や、指定の条件に該当する稼働情報を過去1年分から検索する、など、参照の対象となる稼働情報も大量となる。この場合でも、稼働情報1件ごとにアクセス制御の定義と比較して参照可否を判定すると、その処理時間も膨大となってしまう。
そこで、本発明の第二の目的は、サービスが参照要求した稼働情報の参照可否の判定、すなわちアクセス制御の定義の内容に該当するか否かの判定処理をできるだけ少ない処理で実現できる情報管理システムを提供することにある。
また、前記のアクセス制御の条件の定義はサービスとEVのユーザとの間の契約内容に基づいて生成され定義されるものである。サービス、EVユーザの数が多くなるとその組み合わせも膨大になるため、情報管理システム運用者の作業簡略化のために定義は契約内容を基に自動的に生成されるべきである。この定義の自動生成においては、サービスとユーザ間で契約されたサービスレベルを満たすのに必要な情報、適切な提供手段の定義を自動的に生成することが求められる。と同時に、サービスの内容は様々であるため、契約内容から定義への変換処理は固定的な処理ではなく、様々な契約内容に対応した適切な定義に変換できる汎用性が求められる。
【０００７】
そこで、本発明の第三の目的は、サービスとユーザの契約内容を情報管理システムの定義に変換する処理において、様々なサービスの内容に対応できる汎用的な処理により定義への変換を実現できる情報管理システムを提供することにある。  上記では、発明を分かり易くするため本発明の目的を複数挙げて説明したが、これら複数の目的は、同時に達成する必要はない。いずれかの目的を達成できれば良い。
【０００８】
なお、発明の更なる目的は、後述する実施形態の記載から明らかになるであろう。
【課題を解決するための手段】
【０００９】
本発明は、複数のインフラ需給機器を含む所定区域毎に設けられる情報管理装置と、前記情報管理装置が保持する前記インフラ需給機器の稼働情報を、前記機器の所有者もしくは使用者の許可を得たうえで参照し、前記所有者もしくは使用者に対し前記稼働情報を活用したサービスを提供する情報利用装置と、を含む情報管理システムであって、前記情報管理装置は、前記機器から送信される時系列情報を含む稼働情報を受け付け、前記稼働情報に含まれる機器の稼働開始と終了を意味する機器の稼働状態を基に、稼働開始と終了の間の同一稼働範囲内の稼働情報であるか否かを判定し、同一稼働期間内であるならば過去の同一稼働範囲内の稼働情報と、受け付けた稼働情報とで前記稼働情報に含まれる時系列情報の値を比較し、前記同一稼働期間内での時系列情報の最大値と最小値を算出して期間単位稼働情報として保持し、同一稼働範囲内でないならば新規の稼働範囲として受け付けた前記稼働情報の時系列情報から最大値と最小値を抽出して同様に期間単位稼働情報として保持し、前記情報管理装置は、前記稼働情報に含まれる時系列情報の範囲で定義される前記情報利用装置と前記機器との前記稼働情報の参照許可条件を保持し、前記情報利用装置からの前記稼働情報の参照要求を受け付け、前記期間単位稼働情報が保持する時系列情報の最大値および最小値と、前記参照許可条件で定義される時系列情報の前記範囲とを比較し、比較の結果、前記範囲内に前記最大値および最小値がいずれも含まれる場合は、前記期間に含まれる稼働情報はすべて参照可能とし、前記範囲内に前記最大値および最小値がいずれも含まれない場合は、前記期間に含まれる稼働情報はすべて参照不可とすることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、IDなどの固定的な情報だけでなく、センサ計測値などの時系列情報でもサービスの参照可否の定義を行うことができ、機器の状況に応じて参照可／不可を切り分けることが可能になる。また、参照要求に該当する全稼働情報について参照可否を判定する方式に比べ、判定処理を削減することが可能になる。また、前記定義をサービスの内容によらない汎用的な処理により生成することが可能になる。
【図面の簡単な説明】
【００１１】
【図１】サーバの全体構成を示すブロック図である。
【図２（ａ）】稼働情報DBが保持する稼動情報テーブルの一例である。
【図２（ｂ）】稼働情報DBが保持する期間単位稼動情報テーブルの一例である。
【図３（ａ）】アクセス制御定義ＤＢが保持するプル用アクセス権限テーブルの一例である。
【図３（ｂ）】アクセス制御定義ＤＢが保持するプル用アクセス条件テーブルの一例である。
【図３（ｃ）】アクセス制御定義ＤＢが保持するプッシュ用アクセス権限テーブルの一例である。
【図３（ｄ）】アクセス制御定義ＤＢが保持するプッシュ用アクセス条件テーブルの一例である。
【図４】サーバの定義変換時の処理シーケンス図である。
【図５】EV充電量監視の場合の契約情報登録画面例である。
【図６】EV充電量監視の場合の定義変換辞書ファイルが保持するデータの一例である。
【図７】期間定義ファイルが保持するデータの一例である。
【図８】EV地域広告配信（自宅付近以外）の場合の契約情報登録画面例である。
【図９】EV地域広告配信（自宅付近以外）の場合の定義変換辞書ファイルが保持するデータの一例である。
【図１０】サーバの稼働情報登録受付時の処理シーケンス図である。
【図１１】プッシュ送信判定プログラムの処理のフローチャートである。
【図１２】期間判定プログラムの処理のフローチャートである。
【図１３】稼働情報キャッシュが保持するデータの一例である。
【図１４】サーバの稼働情報参照受付時の処理シーケンス図である。
【図１５】アクセス権限判定プログラムの処理のフローチャートである。
【発明を実施するための形態】
【００１２】
図１は、本発明の情報管理システムをスマートシティの情報管理に適用した場合のブロック図を表す。図１のサーバ１は、ある地域におけるEV２等の機器の情報管理を行うサーバである。スマートシティとはITを駆使してエネルギーや水などのインフラの需要と供給を調整するなど、資源の有効活用・地球環境の保全と市民の便利で快適な生活を両立した次世代の都市やその概念を意味する。サーバ１は、その都市内のエネルギーの需給に関する稼働情報を機器や設備から収集・保持し、エネルギーの需給調整等のインフラ向けアプリケーションに対しそれらの情報を提供するシステムである。本実施例では機器・設備としてＥＶを例に取り上げる。ＥＶ２とサーバ１はＭ２Ｍ等のキャリア網等のネットワークで直接、もしくはＥＶメーカ等が運営する一つ乃至複数のＥＶ管理システム３を介して接続されている。サーバ１は一つ乃至複数のＥＶ２から定期的に送信される稼働情報を受信し自身のデータベース(DB)に保持する。また、サーバ１はインフラ向けアプリケーション４に対し稼働情報を提供するとともに、第三者のサービス事業者のアプリケーション４にも機器や設備のユーザの許可を得た上でその稼働情報を提供する。アプリケーション４とサーバ１もネットワークを介して接続され、一つ乃至複数のアプリケーション４は定期的もしくは何らかのタイミングでサーバ１に稼働情報参照のリクエストを送信する。サーバ１はそのアプリケーション４に提供可能な稼働情報をレスポンスとして返す。もしくは、サーバ１がEV2から受信した稼働情報をそのままアプリケーション４に送信することもある。なお、サーバ１は後述するように、演算処理を行う際に用いられる記憶手段としてのメモリ１１と、前記演算処理を行う演算処理装置とを少なくとも備えるコンピュータとして構成される。なお、メモリ１１は、RAM（Random Access Memory）などにより構成される。演算処理は、CPU（Central Processing Unit）１２によって構成される演算処理装置が、メモリ１１上のプログラムを実行することで実現される。また、前記コンピュータは、通信のためのネットワークインタフェースを備える。
【００１３】
EV２にはCPU、メモリ、その他ネットワークインタフェースが車載端末２１として組み込まれている。EV２の車載端末は稼働開始／終了、累積の走行距離、充電残量を表すSOC、速度、運転モード、GPSによる走行位置（緯度・経度）などをEVを構成する各種機器から稼働情報として定期的に収集する。更に、車載端末は取得した稼動情報を適宜サーバやEV管理システムに送信する。
【００１４】
なお、運転モードとはEV２の運転者が選択するもので、消費電力は少なくすむが駆動力が低い「ECOモード」や、消費電力は多いが駆動力が高い「DRIVEモード」の２モードがある。
【００１５】
これらの情報を定期的にサーバ１もしくはEV管理システム３に送信する。サーバ１が地域ごとに分かれて設置されている場合は、どのサーバ１に送信すべきかは車載端末２１が自車の走行位置を基に判断するか、M2M通信を管理するM2Mサーバ等がEV２からの情報を受信した基地局を基に該当する送信先のサーバ１を判断する、もしくは後述するEV管理システム３が各EV２の走行位置を基に判断する、などにより適切な地域のサーバ１に送信する。送信間隔はネットワークの帯域にもよるが、少なくとも数分に1回、帯域に余裕があれば数十秒に1回程度を想定する。これはEV２が移動体であるため、間隔が開くとサーバ１が把握するEV２の位置と実際にEV２が走行する位置の誤差が大きくなり、アプリケーション４がEVユーザに提供するサービスの精度に影響するためであり、送信間隔は狭いほうが望ましい。また、サーバ１もしくはEV管理システム３からEV２に配信される情報を受信し、車載端末の画面等に表示して運転者にその内容を通知することが可能である。配信される情報はサーバ１に接続するアプリケーション４がそのサービスの内容に応じて各EV２向けに作成するものである。EV２は直接サーバ１に接続されるものと、EV管理システム３を介して接続されるものを想定する。
【００１６】
EV管理システム３はEVメーカなどが自社のEV２のユーザ向けに対し、情報提供などのサービスを行うために運用するものである。自社の一つ乃至複数のEV２から稼働情報を収集し、その内容をサーバ１に送信する。本実施例ではEV管理システム３を介してサーバ１とEV２が接続する場合もサーバ１とEV2とが直接接続する場合も有意な差はないものとし、以降の記載ではEV管理システム３が介在する場合もEV２とサーバ１が直接接続するものとして説明する。
【００１７】
アプリケーション４はサーバ１とネットワーク等を介して接続され、サーバ１からＥＶ２の稼働情報の取得と、サーバ１を介したＥＶ２への情報の配信を行う。アプリケーション４には大別して二つのアプリケーションがある。一つ目のアプリケーションは電力事業者などのインフラ供給者のアプリケーション（基幹アプリケーション）で、デマンドレスポンス等により地域の電力の需要と供給のバランスを調整するなど、スマートシティのインフラとして稼働するもので、エネルギー需要の把握のためにサーバ１に蓄積されているEV２の稼働情報を参照し、地域のエネルギー需給予測や充電ステーションの予約状況などと合わせてEV２の充電スケジューリングなどを行ってEV２にその結果をサーバ１を介して配信するなどの処理を行う。このアプリケーションは、サーバ１に蓄積されている稼働情報を無条件で参照可能である。二つ目のアプリケーションはインフラの需給に直接は関与しない第三者のサービス事業者が運用するアプリケーション（商用アプリケーション）である。
【００１８】
サービス事業者はＥＶ２のユーザと個々にサービス提供の契約を結んだ上で、契約の内容に基づいてサーバ１に登録されているそのユーザのＥＶ２の稼働情報の参照、およびサーバ１を介したＥＶ２への情報の配信を行う。このアプリケーションは、サーバ１に蓄積されている稼働情報のうち、契約を結んだユーザのＥＶ２の情報のみ、さらに個々の契約の内容に基づいて許可された範囲に該当する稼働情報のみ参照可能である。本実施例では以降、これら二つのアプリケーションのうち後者のアプリケーション（商用アプリケーション）に対象を絞って記載する。
【００１９】
本実施例で想定する具体的なアプリケーション４として、充電ステーションナビと地域広告配信の二つを想定する。充電ステーションナビは充電量が少ないＥＶ２に対し、走行位置の付近に存在する即時充電可能な充電ステーションへのナビゲーション情報を配信するアプリケーションである。ただし、充電ステーションの運営チェーン会社に対するＥＶユーザの好み等を考慮してナビゲートする充電ステーションを選択するために、そのＥＶ２が過去同様の充電量となった際の走行履歴（＝稼働情報）をサーバ１から取得し、その情報を参考にしてナビゲートする充電ステーションを選択する。このアプリケーション４を運営するサービスとＥＶユーザとの間には、ＥＶ２のＳＯＣが何％以下になった場合に稼働情報の参照、ナビ情報の配信を許可するかの契約を事前に結び、アプリケーション４はその契約のＳＯＣの値以下の稼働情報のみをサーバ１から参照することができる。
【００２０】
もう一つのアプリケーション４である地域広告配信は、ＥＶ２の走行位置付近にある店舗の広告情報をＥＶ２に対し配信するアプリケーションである。このアプリケーションもＥＶユーザの好み等を考慮して配信する店舗の広告を選択するために、そのＥＶ２が同じ地域を過去走行した際の走行履歴をサーバ１から取得し、その情報を参考にして配信する広告を選択する。このアプリケーション４を運営するサービスとＥＶユーザとの間にて、ユーザ指定の地域以外を走行中、もしくは指定の地域を走行中だったら稼働情報の参照、広告の配信を許可するかの契約を事前に結ぶ。これは、例えばユーザの自宅付近などの店舗はユーザが既知のため広告配信は不要、もしくは指定の観光地をドライブした際のみ配信を受けたい等の要望に応えるためである。この契約に基づき、アプリケーション４はその契約の地域（4点の緯度・経度により表される四方のエリアにて指定）以外もしくは以内を走行位置とする稼働情報のみをサーバ１から参照することができる。
【００２１】
次にサーバ１の詳細について図１を用いて説明する。サーバ１の通信部１３はＥＶ２がサーバ１へ送信した稼働情報の受信、およびＥＶ２に対する情報の配信を行う。また、アプリケーション４からの稼働情報の参照要求の受付と該当する稼働情報の返信、およびアプリケーション４からのＥＶ２への配信情報要求の受付、アプリケーション４への稼働情報の送信を行う。通信部１３が送信する情報はCPU１２から渡され、通信部１３が受信した情報はCPU１２に送信する。なお、以降の記載ではＥＶ２からの稼働情報の収集とアプリケーション４への提供に関する内容のみとし、アプリケーション４からＥＶ２に対する情報の配信に関しては割愛する。
【００２２】
CPU１２は通信部１３から受信した情報をメモリ１１に展開し、メモリ１１上の各種プログラムを実行して情報の加工やメモリ１１内のキャッシュ、DB、ファイルへの登録・更新を行う。また、同様にメモリ１１上の各種プログラムを実行してメモリ１１内のキャッシュ、DB、ファイルから情報を検索・取得し、メモリ１１に展開して必要に応じて加工し、通信部１３への送信等を行う。CPU１２が実行するプログラムとしては、ＥＶ２から受信した稼働情報をＤＢに登録する稼働情報登録プログラム１１a、稼働情報登録プログラム１１aから呼び出され、稼働情報の後述する「期間」を判定する期間判定プログラム１１b、アプリケーション４からの稼働情報参照要求に対し該当する稼働情報を検索し返信メッセージを作成する稼働情報参照プログラム１１c、稼働情報参照プログラム１１cから呼び出され、アプリケーション４の稼働情報に対するアクセス可否の判定を行うアクセス権限判定プログラム１１d、EV２のユーザやアプリケーション４を運営するサービス事業者から入力されたユーザとサービス事業者の間の契約情報から後述のアクセス制御定義を生成する定義変換プログラム１１f、稼働情報登録プログラム１１aから呼び出され、必要に応じてアプリケーション４への稼働情報の送信を行うプッシュ送信判定プログラム１１g、などがある。これらのプログラムは通常ファイルとしてハードディスク等のストレージに格納されており、必要に応じてメモリ11上に展開される。各プログラムの動作の詳細については後述する。また、メモリ１１上にはキャッシュ情報として後述する稼働情報キャッシュ１１eを保持する。
【００２３】
サーバ１がDBとして保持する情報は主に以下である。稼働情報DB14はＥＶ２の稼働情報を保持するDBである。稼働情報DB14はＥＶ２から送信された稼働情報を保持する稼働情報テーブル14aと、ある期間内に含まれる稼働情報の集合について、期間内の稼働情報の一部項目の最大値と最小値を保持する期間単位稼働情報テーブル１４bとを保持する。
【００２４】
図２(a)に稼働情報テーブル14aの例を記す。このテーブルは一つのレコードが一つの稼働情報を表し、稼働情報を送信したＥＶ２を一意に特定するEV_ID１４a0、稼働情報を計測した日時を表すTIMESTAMP１４a1、累積の走行距離を表すTOTAL_DIST１４a2、バッテリーの充電残量を表すSOC１４a3、走行位置の緯度を表すPOS_X１４a4、走行位置の経度を表すPOS_Y１４a5、稼働開始／終了を表すSTATUS１４a6、速度を表すVEL１４a7、運転モードを表すMODE１４a8、その稼働情報が属する期間のIDを表すPERIOD１４a9、などを保持する。
【００２５】
図２(b)に期間単位稼働情報テーブル１４bの例を記す。このテーブルは一つのレコードが1つの期間を表し、期間を一意に特定するIDであるPERIOD１４b0、期間内の全実績情報のTOTAL_DISTの最大値／最小値を表すTOTAL_DIST_MAX１４b1／TOTAL_DIST_MIN１４b2、SOCの最大値／最小値を表すSOC_MAX１４b3／SOC_MIN１４b4、POS_Xの最大値／最小値を表すPOS_X_MAX１４b5／POS_X_MIN１４b6、POS_Yの最大値／最小値を表すPOS_Y_MAX１４b7／POX_Y_MIN１４b8、などを保持する。稼働情報が保持する項目のうち、期間単位稼働情報テーブル１４bにて最大値／最小値を保持する項目は後述するアクセス制御定義DB15のプル用アクセス条件テーブル１５bにてCOLUMN１５b2に指定される項目と一致する。
アクセス制御定義DB１５はアプリケーション４を提供するサービス事業者とEVユーザとの間の契約内容に基づいて、稼働情報の参照可能な範囲を定義した情報を保持するDBである。
【００２６】
アクセス制御定義DB１５はプル用アクセス権限テーブル１５a、プル用アクセス条件テーブル１５b、プッシュ用アクセス権限テーブル１５c、プッシュ用アクセス条件テーブル１５d、を保持する。なお、ここでいうプル、プッシュとは稼働情報のサーバ１からアプリケーション４への提供形態の種別を表し、プルとはアプリケーション４のトリガーで、アプリケーション４からサーバ１に取得したい情報の検索条件等を含むリクエストが送信され、そのレスポンスという形態でサーバ１が保持する稼働情報をアプリケーション４に送信することを意味する。プッシュとはサーバ１のトリガーで、サーバ１からアプリケーション４へのリクエストという形態で、サーバ１が提供したい稼働情報をアプリケーション４に送信することを意味する。
【００２７】
図３(a)にプル用アクセス権限テーブル１５aの例を記す。このテーブルは一つのレコードが1つのアプリケーション４と、そのアプリケーション４が稼働情報の参照を許可されたEV２との組を表し、アクセス権限を一意に特定するAC_PV_ID１５a0、アプリケーション4を一意に特定するApp_ID１５a1、EV_ID１５a2などを保持する。例えばAC_PV_ID１５a0が「p000002」のアクセス権限では、App_ID１５a1が「App002」のアプリケーションはEV_ID１５a2が「EV001」の稼働情報について参照権限があること（ただし後述するアクセス条件で指定の条件を満たす稼働情報のみ）を表す。
【００２８】
図３(b)にプル用アクセス条件テーブル１５bの例を記す。このテーブルは一つのレコードが1つのアクセス可の場合の条件を表し、アクセス条件を一意に特定するAC_CD_ID１５b0、アクセス条件が紐づくアクセス権限を表すAC_PV_ID１５b1、アクセス可否判定の対象とする稼働情報のカラム名を表すCOLUMN１５b2、アクセス可否判定の境界値となるCOLUMN１５b2の値を表すVALUE１５b3、アクセス可の場合のCOLUMN１５b2のVALUE１５b3の条件を表すCONDITION１５b4などを保持する。なお、本実施例では、「紐付く」という文言は、「関連する」という文言と同義で使用する。CONDITION１５b4は不等号もしくは等号と不等号の組み合わせで表し、例えばAC_PV_ID１５a0(１５b1)がp000002に紐づくアクセス条件は次のようになる。AC_CD_ID１５b0は「c000001」であり、このアクセス条件はCOLUMN１５b2は「SOC」、VALUE１５b3は「50」、CONDITION１５b4は「<=」である。この場合はSOCの値が50%以下の稼働情報は参照可能であることを表す。一つ乃至複数のアクセス条件がアクセス権限と紐づけられており、同じアクセス権限に紐づくアクセス条件間はAND条件となる。また、アクセス権限は同じApp_ID１５a1とEV_ID１５a2の組でも複数のレコードを登録することも可能で、この場合アクセス権限間はOR条件となる。
【００２９】
図３(c)にプッシュ用アクセス権限テーブル１５cが保持するデータ項目を示す。ここに記載のようにプル用アクセス権限テーブル１５aのデータ項目と同一である。プッシュ用アクセス権限テーブル１５dのデータ項目AC_PV_ID１５c0、App_ID１５c1、EV_ID１５c2がそれぞれ１５a0、１５a1、１５a2に一致する。
【００３０】
図３(d)にプッシュ用アクセス条件テーブル１５dが保持するデータ項目を示す。ここに記載のようにプル用アクセス条件テーブル１５bのデータ項目と同一である。プッシュ用アクセス条件テーブル１５dのデータ項目AC_CD_ID１５d0、AC_PV_ID１５c1、COLUMN１５c2、VALUE１５d3、CONDITION１５d4がそれぞれ１５b0、１５b1、１５b2、１５b3、１５b4に一致する。
【００３１】
上記のDBのほか、サーバの定義情報として後述する期間定義ファイル１６、定義変換辞書ファイル１７を保持する。このファイルの内容はサーバ１起動時にメモリ１１にロードされる。期間定義ファイル１６については内容の更新が発生した場合にはその更新内容が都度メモリ１１にロードされる。
上記のほか、図示しないがサーバ１は各EV２やアプリケーション４の属性情報を保持するDBなどを保持する。
【００３２】
次に、サーバ1の各プログラムの動作について説明する。
【００３３】
図４を用いて、定義変換プログラム１１fの動作について説明する。このプログラムは、アプリケーション４を運営するサービス事業者とEV２のユーザとのサービス提供に関わる契約情報の入力をサーバ１が受信した際に動作する。
【００３４】
まず、アプリケーション４のサービス事業者もしくはEV２のユーザはサーバ１が提供する契約内容登録画面を通じて契約情報をサーバ１に入力する。
【００３５】
図５にサービス内容がEV充電量監視の場合の契約内容登録画面1000の例を示す。本画面はブラウザ等によりネットワーク経由で参照および情報の入力が可能であり、入力者（サービス事業者もしくはEV２のユーザ）が各入力欄に対して契約内容に基づき該当する値を入力する。図５の例では、まず契約のカテゴリ（ここでは「EV充電量監視」）を契約選択欄１００１の候補値から選択する。契約選択欄１００１の値を選択すると、画面内の他の入力欄は契約選択欄１００１にて選択された値に沿った入力欄の構成に更新される。EV充電量監視の場合、入力欄はアプリケーションID入力欄１００２と対象機器ID入力欄１００３の二つのみである。前者はサーバ１が保持する稼働情報を取得できるアプリケーション４のアプリケーションID（App_ID）を入力する。後者はアプリケーションID入力欄１００２に入力したアプリケーション４に対し提供する情報の対象となるEVのID(EV_ID)を入力する。入力者はすべての入力欄に値を入力したら登録ボタン１００４を押下する。このボタンが押下されると、入力内容が引数として定義変換プログラム１１fに送信され、定義変換プログラム１１fはその内容を受信する（S301）。
【００３６】
定義変換プログラム１１fはS301で受信した契約選択欄１００１のカテゴリに該当する定義変換辞書ファイル１７の内容を検索する(S302)。
【００３７】
図６に定義変換辞書ファイル17の例を示す。このファイルは、サービス事業者とサーバ１の運用者との間で契約されたサービス事業者のサービス内容（＝前記カテゴリ）ごとに生成され、サービス事業者またはサーバ１の運用者によって生成・登録される。従って、同一のサービス事業者が別のサービスを追加で提供する際には、別途このファイルが生成される。このファイルが保持する内容については順次説明するが、S302ではサービスのカテゴリを表す「CATEGORY」の値が選択された値（EV充電量監視）と同一の定義変換辞書ファイル１７を検索し、そのファイルが保持する内容を取得する。  取得した定義変換辞書ファイル１７の内容から、「PRIORITY」の値を確認する(S303)。本実施例の例ではその値はNORMALかHIGHのいずれかである。NORMALの場合はS305の処理へ、HIGHの場合はS304の処理へ移る。PRIORITYの値がHIGHの場合は緊急度や重要度が高いサービスとし、EV２から稼働情報がサーバ１に送信された際に、定義内容に該当する稼働情報であればサーバ１から指定のアプリケーション４にプッシュ送信する。ただしプルによる情報送信も可能とする。NORMALの場合は緊急度や重要度がそれほど高くないサービスとし、アプリケーション４へはプルによる情報送信のみとする。
【００３８】
PRIORITYの値がHIGHの場合、まずプッシュ用アクセス権限テーブル１５cおよびプッシュ用アクセス条件テーブル１５dに定義を追加する(S304)。新規に採番したAC_PV_ID、S301で入力されたアプリケーションID入力欄１００２と対象機器ID入力欄１００３の値をそれぞれAC_PV_ID１５c0、App_ID１５c1、EV_ID１５c2に登録する。また、アクセス定義変換辞書ファイル１７の「CHECK_COLUMN」部分を参照する。この部分には、アプリケーションに提供すべき情報の判定条件が記載されており、条件の対象項目名である監視対象項目COLUMN_NAMEとその条件内容のBORDERで構成される。BORDERはさらにCOLUMN_NAMEの値の境界値を意味するBORDER_VALUEと、その条件（一致、以上、より小さい、等）を意味するBORDER_VALUE_CONDITIONで構成される。新規に採番したAC_CD_ID、プッシュ用アクセス権限テーブルへの登録時に採番したAC_PV_IDとともに、COLUMN_NAMEの値、および「BORDER」部分のBORDER_VALUEの値、BORDER_VALUE_CONDITIONの値、をそれぞれプッシュ用アクセス条件テーブル１５dのAC_CD_ID１５d0、AC_PV_ID１５d1、COLUMN１５d2、VALUE１５d3、CONDITION１５d4に登録する。図６の例では、項目名SOC１４a3の値が40以下の場合はその情報をアプリケーション４に通知することを意味する。
【００３９】
PRIORITYがHIGHおよびNORMALのいずれの場合も、プル用アクセス権限テーブル１５a、プル用アクセス条件テーブル１５bに定義を追加する(S305)。追加する内容はS304で説明した内容と同一である。従って、PRIORITYがHIGHの場合はプッシュ用とプル用の両方に定義を追加することになる。
【００４０】
次に定義変換辞書ファイル１７の内容に「PERIOD_COLUMN」の部分に記載があるかどうかを確認する。これは、後述する期間定義ファイル１６に追加すべき情報がある場合に記載されているものであり、追加する情報がない場合は省略可能である。ある場合はS307の処理へ移り、ない場合はこのまま定義変換プログラム１１fの処理を終了する（S306）。
「PERIOD_COLUMN」部分に記載がある場合、必要に応じて期間定義ファイル１６への定義追加を行う(S307)。期間定義ファイル１６はEV２から収集する稼働情報を期間ごとに保持するために必要な、期間の定義を保持するファイルである。このファイルは期間判定プログラム１１bによって参照され（参照時の説明は後述）、ここでは定義の追加登録のみ行う。
【００４１】
図７に期間定義ファイル１６の内容例を記す。このファイルの内容は、稼働情報が保持する項目の中で期間を定義する項目とその項目名と、期間を分割すべき値・条件が「=」で結ばれており、その組が1つ乃至複数定義されている。図７の例では、項目名「STATUS」は、値「START」と「STOP」を別の期間とすることを意味し、期間判定プログラム１１bにおいて、前のTIMESTAMP14a1の稼働情報のSTATUS14a6と受信した稼働情報のSTATUS14a6の値を比較し、STARTからSTOP、もしくはその逆になった場合には前と受信した稼働情報を別の期間とすることを意味する。同様に、項目名「TIMESTAMP」では、受信した稼働情報のTIMESTAMP14a1の値が前の稼働情報のTIMESTAMP14a1の値より10分以上経過した場合は別の期間とすることを意味する。複数行指定されている場合はいずれかの条件に該当した場合に別の期間とする。
また、定義変換辞書ファイル１７のPERIOD_COLUMN部分について説明する。PREIOD_COLUMNは上記の期間定義ファイル１６へ追加する定義内容を保持し、期間定義ファイル１６の内容の項目名（「=」の前）を意味するCOLUMN_NAME、および期間を分割すべき値・条件(期間定義ファイル１６の内容の「=」の後)を表す複数のPERIOD_COLUMN_BORDERにて構成される。図５の例ではPERIOD_COLUMN_BORDERが二つ定義されており、項目名MODEの値が前のTIMESTAMP14a1の稼働情報と受信した稼働情報とを比較し、ECOからDRIVE、もしくはその逆になった場合にはそれらを別の期間とすることを意味する。三つ以上定義されている場合も同様である。PERIOD_COLUMNの項目は期間定義ファイル１６の参照時の説明にて後述するように、その値によっては監視対象項目の値の変化に大きな影響を与える項目を選定する。
【００４２】
S307の処理では、PERIOD_COLUMNの内容を取得し、その値と期間定義ファイル１６の内容を比較し、項目名（「=」の前）および値・条件（「=」の後）いずれも同一のものがなければ新規行の追加登録を行い、ある場合は追加登録を行わない。図７の例では、3行目の「MODE=”ECO”/”DRIVE”；」がこの処理によって追加される。
【００４３】
次に、PERIOD_COLUMN内に「EFFECT=HIGH」の記載があるPERIOD_COLUMN_BORDERの有無を確認する(S308)。ある場合はS309の処理へ、ない場合は定義変換プログラム１１fの処理を終了する。EFFECT=HIGHの記載がある場合は、その項目名および条件をプルもしくはプッシュ用アクセス権限テーブル、アクセス条件テーブルに追加登録する(S309)。COLUMN_NAMEで指定の項目は、その値によっては監視対象項目の変化に影響を与えるものであるが、監視対象項目の値の変位量が大きくなる値については定義変換辞書ファイル１７のPERIOD_COLUMN_BORDER部分に「EFFECT=HIGH」を記載する。
この記載をすることで、監視対象項目ではない項目であるがその値の変化に対して大きな影響のある項目および値を保持する稼働情報については、アプリケーションへの情報提供の対象とすることを意味する。例えば図６の例では、項目名MODE１４a8の値がDRIVEの場合、SOC14a3の値の低下量が大きくなることから、たとえSOC14a3の値が40より大きな値であってもアプリケーション４に提供すべき稼働情報であることを意味する。従って、プル/プッシュ用のアクセス権限テーブル15a/15cおよびアクセス条件テーブル15b/15dへの追加登録が必要である。S303の処理にてPRIORITYがHIGHの場合はプッシュ用とプル用の両方のテーブルに、NORMALの場合はプル用のテーブルにのみ登録を行う。AC_PV_IDを再度採番しアクセス権限テーブル15a/15cにレコードを追加登録し、EFFECT=HIGHの記載のあるPERIOD_COLUMN_BORDERの内容をアクセス条件テーブル15b/15dに追加登録する。以上の処理が終わったら、処理を終了する。
以上が、定義変換プログラム１１fの処理の流れである。
【００４４】
以上の説明ではサービスのカテゴリとしてEV充電量監視を例にしたが、次に「EV地域広告配信」を例にした場合について説明する。なお、EV充電量監視の処理と重複する部分については説明を割愛し、差分のある部分のみ説明する。
【００４５】
図８にS301の契約情報登録画面１０００にて、契約選択欄１００１に「EV地域広告配信（自宅付近以外）」を選択した場合の契約情報登録画面1000の例を記す。この図が示すように、「EV地域広告配信（自宅付近以外）」を選択すると1002、1003のほか自宅緯度入力欄１００５と自宅経度入力欄１００６が表示される。入力者はEV２のユーザの自宅の緯度経度を入力する。緯度経度が不明な場合は、ユーザの住所などから緯度経度を算出して入力する。
【００４６】
図９にEV地域広告配信（自宅付近以外）に該当する定義変換辞書ファイル１７の例を示す。このサービスではPRIORITYがNORMALであるため（広告の配信は緊急度・重要度ともに高くないため）、S304の処理は行われず、S305にてプル用アクセス権限テーブル１５a、プル用アクセス条件テーブル１５bへの追加登録のみ行われる。
【００４７】
ここで、図９に示すように、このファイル例ではCEHCK_COLUMNが二つ存在している。複数CHECK_COLUMNを定義する場合は、それらがOR条件なのかAND条件なのかを表すCHECK_COLUMN_CONDITIONを定義する。また、CHECK_COLUMN内のBORDERも複数定義されている。BORDERが複数定義されている場合も同様、BORDER_CONDITIONによりそれらがOR条件なのかAND条件なのかを定義する。図９に示すようにCHECK_COLUMN_CONDITIONがORでBORDER_CONDITIONがORの場合は、各BORDERをそれぞれ別のアクセス権限として定義する。従って、プル用アクセス権限テーブル１５aにはこの場合４つのレコードが追加登録され、それぞれに紐づくプル用アクセス条件テーブル１５bのレコードは一つずつ登録される。CHECK_COLUMN_CONDITIONがORでBORDER_CONDITIONがANDの場合にはプル用アクセス権限テーブル１５aには２つのレコードが追加登録され、それぞれに紐づくプル用アクセス条件テーブル１５bのレコードは二つずつ登録される。
【００４８】
CHECK_COLUMN_CONDITIONがANDでBORDER_CONDITIONがANDの場合にはプル用アクセス権限テーブル１５aには１つのレコードが追加登録され、紐づくプル用アクセス条件テーブル１５bのレコードとして四つのレコードが登録される。
また、図９に示すように、BORDER_VALUEの値として「PARAM_1+0.1」など、PARAM_1やPARAM_2の記載がある。PARAM_1およびPARAM_2はそれぞれ図８に示す契約内容登録画面の自宅緯度入力欄１００５と自宅経度入力欄１００６に対応づいており、自宅緯度入力欄１００５で入力された値に1分足した値もしくは1分引いた値を算出し、算出結果をプル用アクセス条件テーブル１５bに登録する。図９に示す例では、自宅の緯度経度から±１分以内の範囲でない場所（±１分より外）にEV２が位置する場合に、その稼働情報をアプリケーション４が参照可能であることを意味する。
【００４９】
S307の処理においては、図９の場合では稼働情報の項目VEL１４a7の値が連続値であるため、その範囲によって期間を別とすべきか同じとすべきかの定義を期間定義ファイル１６に登録する。図９の例では30以下の場合、30より大きく80以下の場合、80より大きい場合の三つを定義し、それらを跨る遷移が検出されたら期間を別とすることとしている。これは、EV２の速度が大きくなると移動距離も大きくなり、それだけEV２の位置も大きく変わる可能性が高いためであることを意味する。この記載により期間定義ファイル１６に追加される定義は図７の4行目のようになる。また、図９の例ではEFFECT=HIGHの記載があるBORDERがないため、S309の処理は行われない。
【００５０】
なお、以上の処理では契約情報登録画面１０００をカテゴリごとに用意する必要があるが、カテゴリ間の差分は図９の例でいうPARAM_1やPARAM_2などの入力パラメータのみであるため、S301にて契約選択欄１００１の値が選択された際に、該当する変換定義辞書ファイル１７の内容からPARAM_1やPARAM_2の存在を検出し、契約情報登録画面１０００に表示する文言と入力パラメータとの対応を別途設定ファイルで保持しそれを参照することにより、変換定義辞書ファイル１７から自動的に契約情報登録画面１０００あの生成が可能になる。
【００５１】
以上の処理により、サーバ１と接続するアプリケーション４のサービスのカテゴリが様々である場合においても、その数だけ定義変換辞書ファイル１７を用意するのみで契約内容から稼働情報へのアクセス条件等への定義への変換およびそれらの登録を自動で行うことが可能になる。これにより、接続するアプリケーションが追加・拡張される際においても、サーバ１の運用者の手を煩わせることなく稼働情報のアプリケーション４への提供に関する定義の作成・登録が可能になる。
【００５２】
次に、稼働情報登録プログラム11aおよび期間判定プログラム１１b、プッシュ送信判定プログラム１１gの動作について説明する。稼働情報登録プログラム１１aは、前記のようにEV２からの稼働情報（この稼働情報にはPERIOD１４a9は含まれていない。）を受信し、稼働情報DB１４に登録する際に動作する。
【００５３】
図１０はそのときの処理シーケンスを示したものである。以下、この図に沿って説明する。まずEV２より、登録対象の一つ乃至複数の稼働情報を含む稼働情報登録要求のメッセージがネットワークを介してサーバ１に送信される。複数の稼働情報が含まれる場合は、EV２の通信状態が悪くサーバ１に稼働情報が送信できなかった場合に、次の周期の際に纏めてサーバ１に送信する場合などで発生する。通信部１３を介して稼働情報登録プログラム１１aがそのメッセージを受け取ると、二つのスレッドを起こす。一つは受信した稼働情報をアプリケーション４にプッシュ送信すべきかどうか、を判定する処理を行うスレッドで、プッシュ判定プログラム１１gを呼び出す。もう一つのスレッドは受け取った稼働情報の期間を判定するために期間判定プログラム１１bにその稼働情報を送信して呼び出す。これらのスレッドは並行して実行される。  図１１に、プッシュ送信判定プログラム１１gが、受信した稼働情報についてのプッシュ送信判定処理、および必要に応じてアプリケーション４へのプッシュ送信処理を行うときのフローチャートを示す。
【００５４】
受信した稼働情報のEV_ID１４a0を基に、そのEV_IDがEV_ID１５a2と一致するプッシュ用アクセス権限テーブル１５cのレコード（アクセス権限レコード）を検索する(S401)。S401にて該当するレコードが1つでもある場合にはS403の処理へ移る。一つもない場合は、プッシュ送信の必要がないとして処理を終了する(S402)。
【００５５】
S401にて該当するレコードがある場合、以下のS404からS407までの処理を取得したアクセス権限レコードの数だけ繰り返す(S403)。
AC_PV_IDをキーに、処理対象のアクセス権限レコードに紐づくプッシュ用アクセス条件テーブル１５dのレコードを取得する(S404)。受信した稼働情報とS404で取得したアクセス条件の内容とを比較し、条件に該当するかどうかを判定する(S405)。複数の稼働情報が含まれている場合には、すべてについて判定処理を行う。アクセス条件に該当する場合はS407の処理へ、該当しない場合はS408の処理へ移り次のアクセス権限レコードに対するS404以降の処理を行う(S406)。該当する場合はアプリケーション４に対するサーバ１からのプッシュ送信が必要な稼働情報であるため、送信宛先となるアプリケーション４のApp_IDごとにメモリ１１に用意したプッシュ送信リストに該当する稼働情報を追加する(S407)。該当するApp_IDのプッシュ送信リストがない場合は新規に用意して稼働情報を追加する。S407までの処理を終えたら、次のアクセス権限レコードに対するS404以降の処理を行う。すべてのアクセス権限レコードに対する処理を終えたら、S409に移る(S408)。S407にて生成したプッシュ送信リストの送信宛先の数だけ、S410の処理を行う(S409)。プッシュ送信リストのApp_IDを基に、アプリケーション４の属性情報として保持されている送信先のURLを取得する。プッシュ送信リストの内容を基に送信メッセージを生成し、取得したURLに対してメッセージを送信する(S410)。S410の処理を終えたら、次の送信宛先に対するS410の処理を行う。すべての送信宛先に対する処理を終えたら、処理を終了する(S411)。以上がプッシュ送信判定プログラム１１gの処理の流れである。
【００５６】
図１０の処理シーケンスに戻る。期間判定プログラム１１bは、受信した稼働情報について期間判定処理を行う。
【００５７】
図１２はこのときの処理のフローチャートを示したものである。以下、この図に沿って説明する。
【００５８】
受信した稼働情報が複数ある場合には、稼働情報のTIMESTAMP１４a1の昇順で稼働情報をソートする(S101)。
次に、メモリ１１にロードされている期間定義ファイル１６の内容を取得する(S102)。この期間定義ファイル１６の内容例を前記の通り図７に記す。この定義ファイルは、EV２の稼働情報を期間で区切る際の区切り条件を表すものである。繰り返しになるが、図７の例では、1行目は稼働情報のSTATUS１４a6の格納値が、前回受信した稼働情報（複数の稼働情報の場合は前に処理した稼働情報。以下同じ）と比較してSTARTからSTOPもしくはその逆に遷移した場合に、期間を区切ることを意味する。2行目では、受信した稼働情報のTIMESTAMP１４a1が前回受信した稼働情報から10分以上経過した値であれば、期間を区切ることを意味する。3行目では、稼働情報のMODE１４a8の格納値が前回受信した稼働情報と比較して「ECO」から「DRIVE」もしくはその逆に遷移した場合に、期間を区切ることを意味する。4行目では、稼働情報の速度を表すVEL１４a7を30km/h未満、30km/h以上80km/h未満、80km/h以上の三つの区分に分け、前回受信した稼働情報と比較して区分が遷移した値であれば期間を区切ることを意味する。この例のように複数行指定されている場合は、どれか一つでも該当したら期間を区切ることを意味する。この定義は稼働情報として保持する項目についてであればサーバ１構築時に自由に定義することが可能であり、図７の例のいずれかでもよいし、これら以外の稼働情報の項目についてでもよい。区切りの境界値や文字列も稼働情報で収集できる値であれば自由に設定できる。図７の例の1行目の例は頻繁に稼働／停止する個人ユースのEV２が多い場合を想定、2行目の例はトラックやバスなど長時間稼働し続けるEV２が多い場合を想定している。3行目、4行目の例については前記のとおりである。
【００５９】
次に、受信した稼働情報に含まれるEV_ID１４a0を基にメモリ１１の稼働情報キャッシュ１１eの内容を取得する(S103)。
【００６０】
図１３に、この稼働情報キャッシュ１１eの内容例を記す。このキャッシュには大別して二つの情報が含まれ、一つは期間単位キャッシュ１１e0、もう一つは期間判定用キャッシュ１１e1である。前者は前回処理した期間の期間単位稼働情報を保持する。後者は上記の期間定義ファイル１６にて定義されている稼働情報の項目ごとに、前回処理した稼働情報の各項目の該当値を保持している。これらのキャッシュはEV_ID１４a0ごとに保持する。送信元のEV２のEV_ID１４a0が「EV001」の場合は、図１３に記載の内容を取得する。
以下、期間判定プログラム１１bが受信した稼働情報ごとにS115までの処理を繰り返す(S104)。
【００６１】
さらに以下、期間定義ファイル１６で定義されている稼働情報の項目ごとにS113までの処理を繰り返す。図７の例だと「STATUS」、「TIMESTAMP」、「MODE」、「VEL」の4つの項目である(S105)。
【００６２】
処理対象となっている期間定義ファイル１６の項目について、期間判定用キャッシュ１１e1の値と処理対象の稼働情報の該当する項目の値とを比較する(S106)。比較の結果、期間定義ファイル１６に定義の期間の区切りに該当する場合はS108の処理へ、該当しない場合はS111の処理へ移る(S107)。例えばSTATUSのキャッシュ値がSTARTで、稼働情報のSTATUS１４a6がSTARTもしくは値なしの場合は期間の区切りに該当しない。VELのキャッシュ値が30-80で稼働情報のVEL１４a7の値が16km/hであれば、期間の区切りに該当する。
【００６３】
期間の区切りに該当した場合、S105〜S113のループ処理を抜ける。期間を新規登録するため、新規登録する期間のIDであるPERIOD１４b0(１４a9)を採番する(S108)。さらに、稼働情報キャッシュ１１eの期間単位キャッシュ１１e0、期間判定用キャッシュ１１e1の両方を稼働情報の内容で書き換える(S109)。期間単位キャッシュ１１e0には稼働情報の内容で（最大値と最小値は同一の値となる）、期間判定用キャッシュ１１e1には稼働情報の各項目について該当する値もしくは期間定義の値で更新する。そして、稼働情報DB１４の期間単位稼働情報テーブル１４bに期間単位キャッシュ１１e0を更新した内容と同一の内容でレコードを新規登録する(S110)。例えば期間単位キャッシュ１１e0のPERIODの値が「E001P010」の場合、新規のPERIODとして「E001P011」を採番し、このPERIODに該当する期間単位稼働情報として処理対象の稼働情報の内容で期間単位キャッシュ１１e0の更新、および期間単位稼働情報テーブル１４bの新規レコード登録を行う。
【００６４】
期間の区切りに該当しない場合、稼働情報キャッシュ１１eの各項目で更新が必要な項目を更新する(S111)。図１３の例では、期間単位キャッシュ１１e0については稼働情報の各項目がキャッシュの最大値／最小値より大きい／小さい場合に該当する項目の最大値／最小値を更新する。期間判定用キャッシュ１１e1の場合については、TIMESTAMPの値のみを更新する。さらに、期間単位キャッシュ１１e0を更新した場合には、稼働情報DB１４の期間単位稼働情報テーブル１４bの値も更新する(S112)。以上の処理を行ったら、期間定義ファイル１６で定義されている次の項目を処理対象として再度S106の処理を行う。例えば、期間単位キャッシュ１１e0のSOC_MINの値が「45」で、処理対象の稼働情報のSOC１４a3の値が「43」の場合は、期間単位キャッシュ１１e0の「SOC_MIN」の値を43に更新する。
【００６５】
S108〜S110の処理、もしくは期間定義ファイル１６で定義されているすべての項目について期間区切りに該当せずS113までの処理を行ったら、処理対象の稼働情報にPERIOD１４a9の値をセットする(S114)。期間区切りに該当した場合はS108で採番したPERIOD（例：EV001P011）を、該当しなかった場合は期間単位キャッシュ１１e0のPERIOD（例：EV001P010）をセットする。
受信したすべての稼働情報に対しS115までの処理を行ったら、PERIODをセット済みの稼働情報を戻り値で稼働情報登録プログラム１１aに返し(S116)、処理を終了する。
【００６６】
以上が期間判定プログラム１１bの期間判定処理の流れである。
稼働情報登録プログラム１１aは戻り値で受信した稼働情報を、稼働情報DB１４の稼働情報テーブル１４aに登録する。すべての稼働情報を登録したら、EV２に対し登録完了の戻り値を返し、処理を終了する。EV２は登録完了の戻り値を受信したら、サーバ１に送信した稼働情報を破棄する。登録完了の戻り値を受信できなかった場合は次回の稼働情報送信のタイミングで合わせて再度送信する。
【００６７】
以上が稼働情報登録プログラム１１aの処理の流れである。なお、上記の例では期間定義ファイル１６の内容はすべてのEV２で共通の定義としたが、EV２の車種ごとに選択できる運転モードが異なる場合などはEV_ID１４a0ごとの定義としてもよい。
【００６８】
次に、稼働情報参照プログラム１１cおよびアクセス権限判定プログラム１１dの動作について説明する。これらのプログラムは前記のようにアプリケーション４から稼働情報の参照要求を受信した際に動作する。
【００６９】
図１４に稼動情報参照処理とアクセス権限判定処理の処理シーケンスを示したものである。以下、この図に沿って説明する。
まずアプリケーション４より、稼働情報の参照要求メッセージがネットワークを介してサーバ１に送信される。このメッセージには送信元アプリケーション４のApp_ID、参照対象とするEV_IDと検索条件（ここでは稼働情報のTIMESTAMPの日時範囲とする）が含まれる。通信部１３を介して稼働情報参照プログラム１１cがそのメッセージを受け取ると、EV_IDと検索条件を基に稼働情報DB１４の稼働情報テーブル１４aを検索し、これらに該当する稼働情報のリストを取得する。
【００７０】
次に、取得した稼働情報に対し参照要求元（メッセージ送信元）アプリケーション４が参照可能かどうかの判定処理を行うため、アクセス権限判定プログラム１１dを呼び出す。呼び出しの際にはApp_ID、EV_ID、検索結果の稼働情報リストがアクセス権限判定処理に渡される。
【００７１】
図１５はアクセス権限判定処理の詳細なフローチャートを記したものである。以下、この図に沿って説明する。
アクセス権限判定プログラム１１dは受信したApp_ID１５a1、EV_ID１５a2を基にアクセス制御定義DB１５のプル用アクセス権限テーブル１５aを検索する(S201)。該当するアクセス権限がある場合は、そのアクセス権限のAC_PV_ID１５a0を基にさらにプル用アクセス条件テーブル１５bを検索し、該当するアクセス条件を取得する。例えばApp_ID１５a1が「App002」、EV_ID１５a2が「EV001」の場合はAC_PV_ID１５a0が「p000002」のアクセス権限が該当する。さらにプル用アクセス条件テーブル１５bではAC_CD_ID１５b0が「c000001」のアクセス条件が該当する。
【００７２】
該当するアクセス権限のレコードが存在する場合はS204の処理へ、ない場合はS203の処理へ進む(S202)。該当するアクセス権限のレコードがない場合は、参照要求元アプリケーション４は指定のEV_IDの稼働情報に対する参照権限がないとし、空の戻り値をセットする(S203)。  該当するアクセス権限のレコードが存在する場合、アクセス権限判定プログラム１１dが呼び出された際に受信した検索条件に該当した稼働情報のリストを戻り値にセットする（S204）。
【００７３】
以下、S201で取得したアクセス条件ごとにS215までの処理を繰り返す(S205)。
戻り値に設定した稼働情報リストから、それらのPERIOD１４a9を取得する(S206)。例えば、「EV001P009」、「EV001P010」、「EV001P011」のPERIODを取得したとする。
【００７４】
以下、S206で取得したPERIODごとにS214までの処理を繰り返す(S207)。
処理対象のアクセス条件のCOLUMN１５b2に指定されている稼働情報のカラム名に該当する、稼働情報DB１４の期間単位稼働情報テーブル１４bの処理対象のPERIOD１４b0に該当するレコードの最大値と最小値を取得する。取得した最大値と最小値とアクセス条件のVALUE１５b3およびCONDITION１５b4に指定されている値とを比較し、最大値と最小値がいずれも条件に該当するか、いずれも条件に該当しないか、一方は該当しないがもう一方は該当するか、で分類する（S208）。例えば、AC_CD_ID１５b0がc000001の場合はCOLUMN１５b2が「SOC」なので期間単位稼働情報のSOC_MAX１４b3とSOC_MIN１４b4を取得する。アクセス条件のVALUE１５b3およびCONDITION１５b4は<=50であるので、PERIOD：EV001P009の場合はいずれも条件に該当せず、PERIOD:EV001P010の場合は一方のみ該当、PERIOD:EV001P011の場合はいずれも該当することになる。
【００７５】
S208の比較の結果、いずれも該当する場合はS210の処理へ、いずれも該当しない場合はS211の処理へ、一方のみ該当する場合はS212の処理へ移る(S209)。最大値・最小値がいずれも該当する場合は、そのPERIODに該当する稼働情報はすべてアクセス条件に該当する参照可能な稼働情報とし、戻り値に残したままとする(S210)。上記の例ではPERIOD１４a9がEV001P011の稼働情報はすべて参照可能である。最大値・最小値がいずれも該当しない場合は、そのPERIODに該当する稼働情報はすべてアクセス条件に該当しない参照不可な稼働情報とし、戻り値から削除する(S211)。上記の例ではPERIOD１４a9がEV001P009の稼働情報はすべて参照不可である。最大値・最小値の一方のみが該当する場合は、その期間の稼働情報は参照可能なものと参照不可なものとが混在していることを意味する。この場合は稼働情報一件ごとにアクセス条件を満たすかどうかの判定を行う必要がある。上記の例では、PERIOD１４a9がEV001P010に該当する稼働情報が対象となる。判定処理を早く終わらせるため、アクセス条件のCOLUMN１５b2に該当する稼働情報の項目でPERIOD１４a9に該当する稼働情報をソートし(S212)、順にアクセス条件のVALUE１５b3およびCONDITION１５b4と稼働情報の値とを比較してアクセス可否判定を行う。該当する稼働情報から該当しない稼働情報に変わった時点、もしくは該当しない稼働情報から該当する稼働情報に変わった時点で処理を終え、該当しない稼働情報を戻り値から削除する(S213)。
【００７６】
S207からS214までの処理を、S206で取得したPERIODの数だけ行う。すべてのPERIODに対し行い、アクセス条件が複数存在する場合は次のアクセス条件で再度S205からS215までの処理を行う。すべてのアクセス条件について処理を行ったら、最終的に残った戻り値を参照可能稼働情報リストとして稼働情報参照プログラム１１cに返し(S216)、処理を終了する。
【００７７】
以上がアクセス権限判定プログラム１１dのアクセス権限判定処理の流れである。稼働情報参照プログラム１１cは戻り値で受信した稼働情報を検索結果としてアプリケーション４に返信し、処理を終了する。以上が稼働情報参照プログラム１１cの処理の流れである。なお、上記の例ではS201の処理でプル用アクセス権限テーブル１５aのレコードが1件のみ該当した例を記載したが、複数のレコードが該当した場合はOR条件となるため、S204からS215までの処理を各アクセス権限ごとに並行して行い、残った戻り値の稼働情報リストをOR条件で纏めて最終的なアクセス判定処理の戻り値とする。
【００７８】
また、上記の例ではアプリケーション４が指定のEV_IDと検索条件で稼働情報の検索を行ってからアクセス権限判定処理を行ったが、プル用アクセス権限テーブル１５aに該当するApp_ID１５a1とEV_ID１５a2の有無判定だけ検索より先に行うとしてもよい。この場合、プル用アクセス権限テーブル１５aに指定のApp_ID１５a1とEV_ID１５a2がない場合は稼働情報の検索処理を行わずに該当する稼働情報なしと判定することができる。
【００７９】
また、上記の例ではアプリケーション４は検索条件とともにEV_IDを指定して参照要求を行うとしたが、EV_IDの指定はなしとしてもよい。この場合、図１４の処理で稼働情報DB１４の検索を検索条件のみで実行した後、該当した稼働情報からEV_ID１４a0を取得し、その一つ乃至複数のEV_IDを持って図１５に記載のS201以降の処理を行うことになる。
【００８０】
また、上記の例ではアクセス権限に紐づくアクセス条件が存在する例を説明したが、アクセス権限のレコードのみでそれに紐づくアクセス条件がない場合は、アクセス権限にて指定のApp_ID１５a1は指定のEV_ID１５a2の全稼働情報が参照可能であることを意味する。したがって、EV_ID１５a2(１４a0)に該当する稼働情報であれば図１５に記載の処理を行うまでもなく参照可能である。
なお、EV２からの登録要求とアプリケーション４からの参照要求は並行して行われるため、稼働情報登録プログラム１１aの処理中に稼働情報参照プログラム１１cの処理が開始される、または逆に稼働情報参照プログラム１１cの処理中に稼働情報登録プログラム１１aの処理が開始される可能性がある。これらの場合は、稼働情報登録プログラム１１aの処理が完了して初めてその処理で登録された稼働情報および期間単位稼働情報がコミットされるため、処理中の稼働情報と期間単位稼働情報のレコードは稼働情報参照プログラム１１cの参照対象とはならず、すでにコミット済みの稼働情報および期間単位稼働情報のレコードを対象に参照処理が行われる。
【００８１】
以上の処理により、サーバ１はApp_IDとEV_IDの組み合わせの定義による該EV_IDの全稼働情報が参照可か、全稼働情報が参照不可かといった固定的な情報によるアクセス制御の方式のみならず、バッテリーのSOCや走行位置など時々刻々と値が変化する時系列情報の値に応じて、例えばSOCが低い場合に限り稼働情報の参照を許可する、特定のエリアを走行した際の稼働情報のみ参照を許可する、などの稼働情報の参照可／不可の切り分けが可能になる。また、SOCや走行位置による稼働情報の参照可否判定を行う場合、稼働情報の集合である「期間」によって稼働情報を纏め、その期間単位でアクセス条件の内容を満たしているか否かを期間の最大値・最小値を用いて判定することで、稼働情報1件ごとに判定する場合に比べ判定対象とする稼働情報の数を削減することができ、その結果判定処理時間を削減し大量の稼働情報を参照する場合にも現実的な処理時間でアプリケーションの参照要求に対応することが可能となる。
【００８２】
また、期間の区切り方として上記の例に挙げたように運転モード「MODE」の値やEVの速度「VEL」の範囲が変わったら期間を区切る、とすることで、例えばMODEの場合だとSOCの変動幅が小さいECOモードとSOCの変動幅が大きいDRIVEモードとで期間を分けることができる。この結果、変動幅が小さい期間ではアクセス条件の境界値を期間内で跨ぐ可能性が少なくなり、変動幅が小さい期間は図１５のS208の比較処理でS210かS211の処理に振り分けられる可能性が高くなる。これにより、稼働情報の1件ごとの判定が必要なS212以降の処理に振り分けられる稼働情報の数を減らすことができる。「VEL」の場合も同様、走行位置の変動幅が小さい低速度の範囲と、走行位置の変動幅が大きい高速度の範囲とで期間を分けることができる。これらは結果的にアクセス可否の判定処理時間のさらなる削減に寄与する。
【００８３】
以上、本発明を実施するための最良の形態などについて具体的に説明したが、本発明はこれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。例えば、前記のように本実施例ではEVを対象とし、そのSOCと走行位置をアクセス条件の項目としたが、他の機器を対象とし、その機器から収集できる時系列情報をアクセス条件の項目とする場合においても対応が可能である。
また、以上の実施形態では、サーバ1が稼働情報やアクセス権限情報などを一元管理するとして説明したが、情報や機能を分散して保持するなどの場合でも、サーバ1が仮想的に一元管理するなど自由に利用・参照可能であれば、実際の情報・機能の所在場所はどこでも構わない。
【符号の説明】
【００８４】
１      サーバ
２      EV
３      EV管理システム
４      アプリケーション
１１    メモリ
１１a    稼働情報登録プログラム
１１b    期間判定プログラム
１１c    稼働情報参照プログラム
１１d    アクセス権限判定プログラム
１１e    稼働情報キャッシュ
１１f    定義変換プログラム
１１g    プッシュ送信判定プログラム
１２    CPU
１３    通信部
１４    稼働情報DB
１５    アクセス制御定義DB
１６    期間定義ファイル
１７    定義変換辞書ファイル
２１    車載端末
【図１】
2014052679.tif 000003
【図２（ａ）】
2014052679.tif 000004
【図２（ｂ）】
2014052679.tif 000005
【図３（ａ）】
2014052679.tif 000006
【図３（ｂ）】
2014052679.tif 000007
【図３（ｃ）】
2014052679.tif 000008
【図３（ｄ）】
2014052679.tif 000009
【図４】
2014052679.tif 000010
【図５】
2014052679.tif 000011
【図６】
2014052679.tif 000012
【図７】
2014052679.tif 000013
【図８】
2014052679.tif 000014
【図９】
2014052679.tif 000015
【図１０】
2014052679.tif 000016
【図１１】
2014052679.tif 000017
【図１２】
2014052679.tif 000018
【図１３】
2014052679.tif 000019
【図１４】
2014052679.tif 000020
【図１５】
2014052679.tif 000021