IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社 ミックウェアの特許一覧

特許7467672情報処理システム、処理装置及び情報処理方法
<>
  • 特許-情報処理システム、処理装置及び情報処理方法 図1
  • 特許-情報処理システム、処理装置及び情報処理方法 図2
  • 特許-情報処理システム、処理装置及び情報処理方法 図3
  • 特許-情報処理システム、処理装置及び情報処理方法 図4
  • 特許-情報処理システム、処理装置及び情報処理方法 図5
  • 特許-情報処理システム、処理装置及び情報処理方法 図6
  • 特許-情報処理システム、処理装置及び情報処理方法 図7
  • 特許-情報処理システム、処理装置及び情報処理方法 図8
  • 特許-情報処理システム、処理装置及び情報処理方法 図9
  • 特許-情報処理システム、処理装置及び情報処理方法 図10
  • 特許-情報処理システム、処理装置及び情報処理方法 図11
  • 特許-情報処理システム、処理装置及び情報処理方法 図12
  • 特許-情報処理システム、処理装置及び情報処理方法 図13
  • 特許-情報処理システム、処理装置及び情報処理方法 図14
  • 特許-情報処理システム、処理装置及び情報処理方法 図15
  • 特許-情報処理システム、処理装置及び情報処理方法 図16
  • 特許-情報処理システム、処理装置及び情報処理方法 図17
  • 特許-情報処理システム、処理装置及び情報処理方法 図18
  • 特許-情報処理システム、処理装置及び情報処理方法 図19
  • 特許-情報処理システム、処理装置及び情報処理方法 図20
  • 特許-情報処理システム、処理装置及び情報処理方法 図21
  • 特許-情報処理システム、処理装置及び情報処理方法 図22
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-05
(45)【発行日】2024-04-15
(54)【発明の名称】情報処理システム、処理装置及び情報処理方法
(51)【国際特許分類】
   G06F 11/20 20060101AFI20240408BHJP
【FI】
G06F11/20 620
【請求項の数】 8
(21)【出願番号】P 2022559259
(86)(22)【出願日】2021-10-29
(86)【国際出願番号】 JP2021040021
(87)【国際公開番号】W WO2022092264
(87)【国際公開日】2022-05-05
【審査請求日】2023-01-25
(31)【優先権主張番号】P 2020183058
(32)【優先日】2020-10-30
(33)【優先権主張国・地域又は機関】JP
(31)【優先権主張番号】P 2021014004
(32)【優先日】2021-01-29
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】504050275
【氏名又は名称】株式会社 ミックウェア
(74)【代理人】
【識別番号】100140486
【弁理士】
【氏名又は名称】鎌田 徹
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100137947
【弁理士】
【氏名又は名称】石井 貴文
(72)【発明者】
【氏名】藤吉 正也
【審査官】三坂 敏夫
(56)【参考文献】
【文献】特開2018-147339(JP,A)
【文献】特開2017-41015(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/14-11/20
(57)【特許請求の範囲】
【請求項1】
ソフトウェアに基づいて所定の機能を実行するモジュールを構成する制御部と、前記制御部の制御に基づいて通信する通信部とをそれぞれ備える2以上の処理装置でネットワークを形成する情報処理システムであって、
前記制御部の少なくともいずれか1つは、
前記モジュールのいずれか1つである第1候補と、前記第1候補と同一の前記機能を実行し、かつ、前記第1候補よりも所定の基準に基づく順位が低い前記モジュールである第2候補とを選択し、
前記第1候補と前記第2候補とに前記機能を実行させる命令を伝達し、
前記第1候補が前記命令を実行した第1実行結果、及び、前記第2候補が前記命令を実行した第2実行結果を受け取れることを特徴とする情報処理システム。
【請求項2】
前記制御部の少なくともいずれか1つは、前記第1候補及び前記第2候補の選択と、前記第1候補及び前記第2候補への前記命令の伝達と、前記第1実行結果及び前記第2実行結果の受け取りを行う機能実行部を有し、
前記機能実行部は、
前記第1候補と前記第2候補とに前記命令を伝達した後、所定の時間が経過しても、前記第1実行結果を受け取れない場合、前記第2実行結果に基づく情報を、画像データ及び音声データの少なくともいずれか一方を出力する出力部に出力させることを特徴とする請求項1に記載の情報処理システム。
【請求項3】
前記基準は、前記機能実行部を備える第1処理装置と、前記第1処理装置と異なる第2処理装置との間で単位時間あたりに送受信できるデータの量である通信速度の大きさ、前記命令に対応する前記ソフトウェアのバージョンの新しさ、又は、前記機能としてナビゲーションが実行される場合に利用される地図データのバージョンの新しさであることを特徴とする請求項2に記載の情報処理システム。
【請求項4】
前記機能実行部は、
前記第1処理装置が前記命令に沿った前記機能を実行できる場合、前記第1処理装置に組み込まれた前記モジュールを、前記第1候補又は前記第2候補として選択することを特徴とする請求項3に記載の情報処理システム。
【請求項5】
前記機能実行部は、
前記所定の時間が経過しても、前記第1実行結果及び前記第2実行結果を受け取れない場合、所定の基準に基づいて、再度、前記第1候補及び前記第2候補をそれぞれ選択することを特徴とする請求項4に記載の情報処理システム。
【請求項6】
前記機能実行部は、
通信の状態がオンラインの前記処理装置に組み込まれた前記モジュールの中から、前記第1候補及び前記第2候補をそれぞれ選択することを特徴とする請求項4又は請求項5に記載の情報処理システム。
【請求項7】
ソフトウェアに基づいて所定の機能を実行するモジュールを構成する制御部と、前記制御部の制御に基づいて通信する通信部とを備える処理装置であって、
他の前記処理装置とともにネットワークを形成し、
前記制御部は、
前記モジュールのいずれか1つである第1候補と、前記第1候補と同一の前記機能を実行し、かつ、前記第1候補よりも所定の基準に基づく順位が低い前記モジュールである第2候補とを選択し、
前記第1候補と前記第2候補とに前記機能を実行させる命令を伝達し、
前記第1候補が前記命令を実行した第1実行結果、及び、前記第2候補が前記命令を実行した第2実行結果を受け取れることを特徴とする処理装置。
【請求項8】
ソフトウェアに基づいて所定の機能を実行するモジュールを構成する制御部と、前記制御部の制御に基づいて通信する通信部とをそれぞれ備える2以上の処理装置でネットワークを形成する情報処理システムで実行される処理方法であって、
前記制御部の少なくともいずれか1つによって、
前記モジュールのいずれか1つである第1候補と、前記第1候補と同一の前記機能を実行し、かつ、前記第1候補よりも所定の基準に基づく順位が低い前記モジュールである第2候補とを選択するステップと、
前記第1候補と前記第2候補とに前記機能を実行させる命令を伝達するステップと、
前記第1候補が前記命令を実行した結果である第1実行結果、及び、前記第2候補が前記命令を実行した結果である第2実行結果を受け取れるステップと、が実行されることを特徴とする処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークを構成する2以上の処理装置で実行された処理の結果を相互に利用する技術等に関する。
【背景技術】
【0002】
従来、例えば特許文献1には、ナビゲーションに関して異なる機能別に分割された複数の機器を備えるナビゲーションシステムが開示されている。ナビゲーションシステムは、一方の機器から、他方の機器に指示を与え、指示を与えられた他方の機器は、指示に対して機能に応じた処理を行なって当該処理の結果を返すように構成されている。
【0003】
2以上の機器でネットワークを構成する技術に関して、特許文献2には、指定FAX装置にFAX送信指示情報が送信され、結果情報"回線BUSY"を受信したと判断した場合、代替装置にFAX送信指示情報を送信する技術が開示されている。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2018-028518号公報
【文献】特開2018-201112号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
例えば、車両がトンネルを通過しているときなどの通信状態が悪い場合、ナビゲーション装置はサーバと通信することができない。特許文献1に記載のナビゲーションシステムでは、一方の機器から指示を与えられた他方の機器がこのように通信できない状態になった場合に、一方の機器が処理の結果を受け取ることができなかった。このような状況に対応するため、たとえば、特許文献2に記載の技術を採用して代替装置を利用することが考えられる。しかし、特許文献2に記載の技術では、指定機器が処理を実行できないことが判明した後に代替機器を利用するため、指定機器による処理の結果と、代替装置による処理の結果との両方を得られず、指定機器及び代替装置による処理の結果の信頼性が低下する。また、特許文献2に記載の技術では、代替機器による処理の結果が得られるまでのタイムラグが大きくなる。
【0006】
本発明の目的は、信頼性のある結果を、タイムラグを抑えて得られる情報処理システムなどを提供することにある。
【課題を解決するための手段】
【0007】
本開示の第一態様に係る情報処理システムは、2以上の処理装置でネットワークを形成する。処理装置のそれぞれは、通信部と、制御部とを備える。制御部は、ソフトウェアに基づいて所定の機能を実行するモジュールを構成する。通信部は、制御部の制御に基づいて通信する。制御部の少なくともいずれか1つは、第1候補と第2候補とを選択する。第1候補は、モジュールのうちのいずれか1つである。第2候補は、第1候補と同一の機能を実行する。かつ、第2候補は、第1候補よりも所定の基準に基づく順位が低いモジュールである。制御部の少なくともいずれか1つは、第1候補と第2候補とに命令を伝達する。命令は、機能を実行させる命令である。制御部の少なくともいずれか1つは、第1実行結果、及び、第2実行結果を受け取れる。第1実行結果は、第1候補が命令を実行した結果である。第2実行結果は、第2候補が命令を実行した結果である。
【0008】
第一態様の情報処理システムでは、第1実行結果及び第2実行結果を受け取ることができるので、得られる結果の信頼性が高く、また、もし第1実行結果を受け取ることができなかった場合に、第2実行結果を早く受け取ることができる。そのため、情報処理システムは、信頼性のある結果を、タイムラグを抑えて取得できる。
【0009】
第一態様の情報処理システムにおいて、以下の構成とすることができる。制御部の少なくともいずれか1つは、機能実行部を有する。機能実行部は、第1候補及び第2候補の選択を行う。機能実行部は、第1候補及び第2候補への命令の伝達を行う。機能実行部は、第1実行結果及び第2実行結果の受け取りを行う。機能実行部は、第2実行結果に基づく情報を、出力部に出力させる。出力部は、画像データ及び音声データの少なくともいずれか一方を出力する。機能実行部は、第1候補と第2候補とに命令を伝達した後、所定の時間が経過しても、第1実行結果を受け取れない場合、上記の出力を行う。
【0010】
上記構成によれば、第1実行結果の取得に時間を要する場合、又は、第1実行結果を取得できない場合に、第2実行結果を出力部から出力することで、所定の機能を実行した結果である実行結果を出力するのに長時間を要することを防止できる。
【0011】
第一態様の情報処理システムにおいて、基準を、通信速度の大きさ、命令に対応するソフトウェアのバージョンの新しさ、又は地図データのバージョンの新しさとする。通信速度は、機能実行部を備える第1処理装置と、第1処理装置と異なる処理装置である第2処理装置との間で単位時間あたりに送受信できるデータの量である。地図データは、機能としてナビゲーションが実行される場合に利用される地図のデータである。
【0012】
上記構成によれば、基準を、通信速度の大きさにした場合には、通信速度が大きいモジュールを第1候補及び第2候補として選択するため、実行結果の送受信に要する時間を短くすることができる。そのため、実行結果を早く取得しやすくできる。また、基準を、命令に対応するソフトウェアのバージョンの新しさにした場合には、例えば機能改善されたソフトウェアに基づくモジュールを第1候補及び第2候補として選択する。そのため、より優れた実行結果を取得しやすくすることができる。また、基準を、地図データのバージョンにした場合には、より新しい地図を用いたナビゲーションの実行結果を取得することができる。
【0013】
第一態様の情報処理システムにおいて、以下の構成とすることができる。機能実行部は、第1処理装置が命令に沿った機能を実行できる場合、第1処理装置に組み込まれたモジュールを第1候補又は第2候補として選択する。
【0014】
上記構成によれば、出力部に実行結果の情報を出力させる制御部を備えた第1処理装置に組み込まれたモジュールを第1候補又は第2候補として選択する。そのため、通信ができないことなどが原因で第1実行結果及び第2実行結果の双方が得られない状況を避けやすくできる。
【0015】
第一態様の情報処理システムにおいて、以下の構成とすることができる。機能実行部は、所定の時間が経過しても、第1実行結果及び第2実行結果を受け取れない場合、所定の基準に基づいて、再度、第1候補及び第2候補をそれぞれ選択する。
【0016】
上記構成によれば、所定時間が経過した後に改めて第1候補及び第2候補を選択することで、実行結果がいつまでも取得できない状況を回避することができる。
【0017】
第一態様の情報処理システムにおいて、機能実行部が、通信の状態がオンラインの処理装置に組み込まれたモジュールの中から、第1候補及び第2候補をそれぞれ選択する構成とすることができる。
【0018】
上記構成によれば、通信の状態がオフラインの処理装置に組み込まれたモジュールを第1候補又は第2候補として選択することをなくすことができる。
【0019】
本開示の一の態様に係る処理装置は、他の処理装置とともにネットワークを形成する。処理装置は、制御部と通信部とを備える。制御部は、ソフトウェアに基づいて所定の機能を実行するモジュールを構成する。通信部は、制御部の制御に基づいて通信する。制御部は、第1候補と第2候補とを選択する。第1候補は、モジュールのいずれか1つである。第2候補は、第1候補と同一の機能を実行する。かつ、第2候補は、第1候補よりも所定の基準に基づく順位が低いモジュールである。制御部は、第1候補と第2候補とに命令を伝達する。命令は、機能を実行させる命令である。制御部は、第1実行結果、及び、第2実行結果を受け取れる。第1実行結果は、第1候補が命令を実行した結果である。第2実行結果は、第2候補が命令を実行した結果である。
【0020】
上記の処理装置では、第1実行結果及び第2実行結果を受け取ることができるので、得られる結果の信頼性が高く、またもし第1実行結果を受け取ることができなかった場合に、第2実行結果を早く受け取ることができる。そのため、処理装置は、信頼性のある結果を、タイムラグを抑えて取得できる。
【0021】
本開示の一の態様に係る処理方法は、情報処理システムで実行される処理方法である。情報処理システムは、2以上の処理装置でネットワークを形成する。処理装置は、それぞれ、通信部と、制御部とを備える。制御部は、ソフトウェアに基づいて所定の機能を実行するモジュールを構成する。通信部は、制御部の制御に基づいて通信する。処理方法は、第1候補と第2候補とを選択するステップを有する。第1候補は、モジュールのいずれか1つである。第2候補は、第1候補と同一の機能を実行する。第2候補は、第1候補よりも所定の基準に基づく順位が低いモジュールである。処理方法は、第1候補と第2候補とに命令を伝達するステップを有する。命令は、機能を実行させる命令である。処理方法は、第1実行結果、及び、第2実行結果を受け取れるステップを有する。これらのステップは、制御部の少なくともいずれか1つによって実行される。
【0022】
上記の処理方法では、第1実行結果及び第2実行結果を受け取ることができるので、得られる結果の信頼性が高く、またもし第1実行結果を受け取ることができなかった場合に、第2実行結果を早く受け取ることができる。そのため、処理方法では、信頼性のある結果を、タイムラグを抑えて取得できる。
【0023】
本開示の第一態様に係る処理装置は、制御部と通信部とを備える。制御部は、ソフトウェアに基づく制御を行う。通信部は、制御部によって通信が制御される。ソフトウェアは、第1実行プログラムを含む。第1実行プログラムは、制御部に所定の機能を実行させる。制御部は、論理ネットワークを形成する。論理ネットワークは、機能の実行によって得られる結果を通信する。制御部は、通信部を介して接続できる他の処理装置のうち、第1実行プログラムが実行される場合と同一の機能を実行する他の処理装置と接続する。他の処理装置は、第2実行プログラムに基づいて機能を実行する。又は、他の処理装置は、第2利用データに基づいて機能を実行する。第2実行プログラムは、第1実行プログラムと少なくとも一部が異なる。第1利用データは、第1実行プログラムが実行される場合に利用される。第2利用データは、第1利用データと少なくとも一部が異なる。
【0024】
上記第一態様の処理装置は、第1実行プログラムが実行される場合と同一の機能を、第2実行プログラム又は第2利用データに基づいて実行する他の処理装置と選択的に接続するので、それぞれ同一の機能に対して第1実行プログラムが実行される場合と異なる結果を得ることができる他の処理装置と接続できる。そのため、第一態様の処理装置は、それぞれ同一の機能に対して同一の結果しか得られない2以上の処理装置が論理ネットワークに含まれることを抑制でき、利用されない処理装置が含まれる可能性を低減した論理ネットワークを形成できる。
【0025】
第一態様の処理装置において、具体的に、第1実行プログラムを含むソフトウェアと第2実行プログラムを含むソフトウェアとは、作成又は改訂された時系列上の順番がそれぞれ異なる。また、第1利用データと第2利用データとは、作成又は改訂された時系列上の順番がそれぞれ異なる。
【0026】
第一態様の処理装置において好ましくは、制御部は、他の処理装置と接続する場合、第1実行プログラムを含むソフトウェアと第2実行プログラムを含むソフトウェアのそれぞれのバージョン、又は、第1利用データと第2利用データのそれぞれのバージョンを比較する。
【0027】
上記構成によれば、制御部は、接続する他の処理装置を容易に判別できる。
【0028】
第一態様の処理装置において好ましくは、制御部は、第1実行プログラムを含むソフトウェア又は第1利用データが更新された場合、他の前記処理装置と接続する処理を再度行う。
【0029】
上記構成によれば、処理装置は、利用されない処理装置が論理ネットワークに含まれにくい状態を維持できる。
【発明の効果】
【0030】
本発明によれば、信頼性のある実行結果を、タイムラグを抑えて得ることができる。
【図面の簡単な説明】
【0031】
図1】本発明の実施形態に係る情報処理システムの概略構成図である。
図2】実施形態に係る処理装置のひとつであるナビゲーション装置の構成図である。
図3】実施形態に係る処理装置のひとつであるサーバの構成図である。
図4】実施形態に係る処理装置のひとつであるモバイル端末の構成図である。
図5】論理ネットワークの構築の手順を示すフローチャートである。
図6】論理ネットワークの構築方法を説明するためのイメージ図である。
図7】データベースに登録されるロケーション情報の一例を示す表である。
図8】通常ノードのロケーション情報がデータベースに登録される場合のタイミングチャートである。
図9】子ノードのロケーション情報がデータベースに登録される場合のタイミングチャートである。
図10】ノード情報の構成例を示す概念図である。
図11】シグナリングサーバから送信されるコンタクトリストの一例を示す表である。
図12】処理装置間におけるセッション開始の判断の処理を示すフローチャートである。
図13】処理装置間におけるセッション開始の処理を示すタイミングチャートである。
図14】ハートビートに関する処理の具体例を示す図である。
図15】所定の機能が実行された結果を取得する処理を示すフローチャートである。
図16】候補選択処理を示すフローチャートである。
図17】機能実行処理を示すフローチャートである。
図18】命令伝達の処理の実施例1を示すタイミングチャートである。
図19】命令伝達の処理の比較例を示すタイミングチャートである。
図20】命令伝達の処理の実施例2を示すタイミングチャートである。
図21】実施形態に係る処理装置のハードウェア構成図である。
図22】変形例における候補選択処理を示すフローチャートである。
【発明を実施するための形態】
【0032】
≪実施形態≫
図1に示す本発明の一実施形態である情報処理システム1は、2以上の処理装置2を備える。図1に示すように、情報処理システム1は、2以上の処理装置2で論理ネットワーク3を構成する。論理ネットワーク3は、論理ネットワーク3に接続された機器のうち、ユーザが所有している処理装置2及び同一のグループのメンバーがそれぞれ所有している処理装置2で構成されるネットワークである。
【0033】
本実施形態において、論理ネットワーク3を構成する各処理装置2は、所定の機能を2以上有する。処理装置2が有する機能の種類及び数は、処理装置2ごとに異なる。各処理装置2は、1又は2以上の他の処理装置2と同一の機能を有する。各処理装置2は、他の処理装置2にない機能を有している場合もある。
【0034】
情報処理システム1は、それぞれ同一の機能を有する2以上の処理装置2間で、論理ネットワーク3を介して、機能が実行された結果を伝達する。論理ネットワーク3を構成する処理装置2のうち、それぞれ同一の機能を実行できる2以上の処理装置2をリンクさせて相互に利用する機能を、「リンク機能」と呼ぶ。情報処理システム1は、リンク機能によって、ユーザに良好な結果を提供できる。
【0035】
本実施形態において、処理装置2には、論理ネットワーク3に直接アクセスする処理装置2だけでなく、論理ネットワーク3に間接的にアクセスする処理装置2も含まれる。以下、論理ネットワーク3に直接アクセスする処理装置2を「親ノード」とも呼ぶ。論理ネットワーク3に間接的にアクセスする処理装置2は、「子ノード」とも呼ぶ。子ノードは、親ノードを介して論理ネットワーク3にアクセスする。子ノードは、たとえば、SIM(Subscriber Identity Module)カードを挿入できず、LTE(Long Term Evolution)接続を行えないタブレット端末等が挙げられる。子ノードは、例えば、ホームネットワークなどではワイファイ(WiFi(登録商標))による通信でインターネットに接続できるが、外出先などワイファイによる通信を行えない場合、インターネットに直接接続できない。なお、「ノード」は処理装置2を示す別名である。論理ネットワーク3に直接アクセスする処理装置2は、子ノードと区別するために「通常ノード」と呼ばれる場合もある。
【0036】
本実施形態において、処理装置2は、論理ネットワーク3を構成し、かつ同一の機能を実行できる2以上の処理装置2のうち、通信速度などの所定の条件に基づいて2つの処理装置2を第1候補及び第2候補として選択する。処理装置2は、第1候補及び第2候補を同時又はタイムラグを抑えて利用する。そのため、処理装置2は、論理ネットワーク3を構成する2以上の処理装置2がそれぞれ所定の機能を実行する場合に得られる結果の中から最善の結果を第1候補から取得できる。処理装置2は、通信不良などが原因で第1候補を利用できない場合でも、第2候補を利用することで、所定の機能を実行した結果として、第1候補から得られる結果の次に良好な結果を早く取得できる。
【0037】
論理ネットワーク3を構成する2以上の処理装置2同士は、無線又は有線で接続される。論理ネットワーク3において、処理装置2同士の接続の手法には、無線と有線とが混在してもよい。本実施形態において、処理装置2は、ナビゲーション装置2Aと、サーバ2Bと、モバイル端末2Cとである。
【0038】
2以上の同一の種類のサーバ2B、及び、サーバ2Bと種類の異なる2以上のサーバは、サーバ群2Zを構成する。サーバ2Bと種類の異なるサーバとしては、図6に示すシグナリングサーバ2B1が挙げられる。シグナリングサーバ2B1は、サーバ群2Zに含まれるサーバの中で、中心的な役割を果たす。シグナリングサーバ2B1は、論理ネットワーク3の構築に利用される。シグナリングサーバ2B1は、各処理装置2の通信状態の把握に利用される。
【0039】
本実施形態において、ナビゲーション装置2A、及びモバイル端末2Cは、それぞれ1つの電子機器としての処理装置2である。モバイル端末2Cは、例えば、スマートフォンまたはタブレット機器等である。
【0040】
図2~4に示す処理装置2は、制御部21、通信部23、記憶部24、操作部25、表示部26、音声出力部27、及び測位部28を含む。各処理装置2に含まれる構成は、同じ符号を付してそれぞれの説明を省略している。
【0041】
図2に示すように、ナビゲーション装置2Aは、制御部21であるナビ制御部21A、通信部23であるナビ通信部23A、記憶部24であるナビ記憶部24A、操作部25であるナビ操作部25A、表示部26であるナビ表示部26A、及び音声出力部27であるナビ音声出力部27Aを備える。
【0042】
図3に示すように、サーバ2Bは、制御部21であるサーバ制御部21Bと、通信部23であるサーバ通信部23Bと、記憶部24であるサーバ記憶部24Bとを備える。
【0043】
図4に示すように、モバイル端末2Cは、制御部21であるモバイル制御部21Cと、通信部23であるモバイル通信部23Cと、記憶部24であるモバイル記憶部24Cと、操作部25であるモバイル操作部25Cと、表示部26であるモバイル表示部26Cと、音声出力部27であるモバイル音声出力部27Cと、測位部28であるモバイル測位部28Cを備える。
【0044】
なお、ナビゲーション装置2A、サーバ2B、またはモバイル端末2Cの構成は上記に限定されず、上記の構成の一部を含まなくてもよいし、構成に加えて他の構成を含んでもよい。
【0045】
本実施形態において、制御部21は、モジュール4として、機能実行部211と、通信制御部212と、出力制御部213と、誘導部214と、検索部215と、探索部216と、地図描画部217と、交通情報部218と、マップマッチング部219と、差分更新部220と、状態確認部221と、リンク機能部222との少なくともいずれか1つを含む。モジュール4は、装置、機械、システム及びソフトウェア等の少なくとも一部を構成する、機能的にまとまった部分である。それぞれのモジュール4は、制御部21の上記機能のいずれか1つを実行するためのハードウェア及びソフトウェアの一部である。モジュール4は、エンジンと呼ばれる場合がある。
【0046】
モジュール4は、所定の機能を実行する。所定の機能は、例えば、機能実行、通信制御、出力制御、誘導、検索、探索、地図描画、交通情報、マップマッチング、差分更新、状態確認、及び、リンク機能である。以下、本明細書では、モジュール4が所定の機能を実行した結果を「実行結果」という。また、第1候補による実行結果を「第1実行結果」、第2候補による実行結果を「第2実行結果」ともいう。
【0047】
ナビ制御部21A、サーバ制御部21B、及びモバイル制御部21Cは、それぞれモジュール4の少なくとも一部を構成する。制御部21を含む処理装置2では、当該制御部21で実行可能な、モジュール4に対応するソフトウェアであるプログラムが記憶部24に記憶される。以下では、ソフトウェアに含まれるプログラムのうち、上記機能を実行するためのプログラムを実行プログラム242と呼ぶ。
【0048】
ナビゲーション装置2Aでは、機能実行部211、通信制御部212、出力制御部213、誘導部214、検索部215、探索部216、地図描画部217、交通情報部218、マップマッチング部219、差分更新部220、状態確認部221、及び、リンク機能部222に対応する実行プログラム242が、ナビ記憶部24Aにそれぞれ記憶される。
【0049】
サーバ2Bでは、通信制御部212、検索部215、探索部216、交通情報部218、マップマッチング部219、差分更新部220、状態確認部221、及び、リンク機能部222に対応する実行プログラム242が、サーバ記憶部24Bにそれぞれ記憶される。モバイル端末2Cは、ナビゲーション装置2Aと同様である。
【0050】
制御部21は、通信部23、記憶部24、操作部25、表示部26、音声出力部27、及び測位部28をそれぞれ制御する。制御部21は、例えば、CPU(Central Processing Unit)またはMPU(Micro Processing Unit)等の制御装置が記憶部24に記憶されているプログラムを実行することで実現される。
【0051】
モジュール4は、所定の機能を実行する場合に、利用データを利用できる。利用データは、例えば地図データである。モジュール4は、例えば、検索、探索、地図描画、マップマッチングなどの機能を実行する場合に、地図データを利用する。
【0052】
制御部21は、それぞれバージョンの異なるソフトウェアを用いて、同じ機能を実行するモジュール4を2以上備えてもよい。なお、モジュール4に対応するソフトウェアのバージョンを、便宜的にモジュール4のバージョンという。
【0053】
≪論理ネットワーク3の構築方法≫
処理装置2及びシグナリングサーバ2B1は、図5に示す構築処理を行うことで論理ネットワーク3を構築する。情報処理システム1は、論理ネットワーク3を介して、それぞれ同一の機能を実行できる処理装置2間で実行結果を伝達する。そのため、実行結果は、同一の機能に対して同一の結果しか得られない処理装置2間では伝達される必要がない。論理ネットワーク3は、同一の機能を実行した場合にそれぞれ異なる実行結果が得られる処理装置2同士を接続して形成される。このような論理ネットワーク3を利用することで、情報処理システム1は、リンク機能を効果的に実現できる。
【0054】
リンク機能部222は、論理ネットワーク3を構築するための処理を行う。本実施形態において、リンク機能部222は、処理装置2が起動した場合に自動で論理ネットワーク3の構築処理を開始する。リンク機能部222は、例えば、論理ネットワーク3の構築を開始するためのボタンを表示部26に表示させ、表示部26に表示されたボタンがユーザに押された場合に論理ネットワーク3の構築が開始される構成であってもよい。論理ネットワーク3の構築には、すでに構築されている論理ネットワーク3に処理装置2が新たに参加することも含まれる。
【0055】
以下では、すでに構築されている論理ネットワーク3に、処理装置2が新たに参加する場合について記載する。なお、論理ネットワーク3が一から構築される場合も、処理装置2及びシグナリングサーバ2B1が行う処理は同様である。
【0056】
ステップS1において、リンク機能部222は、通信部を介して、図6に示すシグナリングサーバ2B1と接続する。シグナリングサーバ2B1は、2以上設けられる。論理ネットワーク3を構築しようとする処理装置2が複数ある場合、各処理装置2は、処理負荷の分散のために、いずれか1つのシグナリングサーバ2B1と接続される。処理装置2は、論理ネットワーク3から離脱するまで、本ステップS1で接続されたシグナリングサーバ2B1との接続を維持する。本実施形態において、処理装置2は、電源が切られると論理ネットワーク3から離脱する。処理装置2は、例えば、ソフトウェア又は利用データの更新のために再起動した場合、論理ネットワーク3から離脱する。
【0057】
リンク機能部222は、シグナリングサーバ2B1と接続する場合、通信部23を介してシグナリングサーバ2B1に接続要求を送信する。接続要求は、図示しないロードバランサ-によって選択されたシグナリングサーバ2B1に伝達される。ロードバランサ-は、シグナリングサーバ2B1の処理の負荷を監視する装置である。シグナリングサーバは、接続要求を受信した場合、処理装置2との接続を確立する。
【0058】
ステップS2において、データベース2B3は、ロケーション情報を登録する。ロケーション情報は、処理装置2同士の通信に関する情報である。リンク機能部222は、シグナリングサーバ2B1との接続が確立した場合、シグナリングサーバ2B1にロケーション情報の登録要求を行う。リンク機能部222は、通信部23を介してシグナリングサーバ2B1にロケーション情報を送信することで、ロケーション情報の登録要求を行う。ロケーション情報を受信したシグナリングサーバ2B1は、データベース2B3にロケーション情報を登録する。ロケーション情報は、処理装置2が登録要求を行った場合に、処理装置2に接続されたシグナリングサーバ2B1を介してデータベース2B3に登録される。
【0059】
図7に示すように、ロケーション情報は、処理装置2のデバイスID、ユーザID、親ノードのデバイスID、接続サーバ、IPアドレス、ポート、オンライン状態、ロケーション情報の有効期限、及びロケーション情報の更新日時をそれぞれ示す。
【0060】
デバイスIDは、処理装置2を識別する情報である。デバイスIDは、各処理装置2に対してユニークな情報として与えられる。ユーザIDは、処理装置2を使用しているユーザを識別する情報である。ユーザIDは、例えば、メールアドレスなどである。親ノードのデバイスIDは、親ノードを識別する情報である。接続サーバは、処理装置2が接続するシグナリングサーバ2B1である。IPアドレスは、インターネットに接続された機器を判別するための情報である。IPアドレスは、各処理装置2に付与される。ポートは、処理装置2が通信に使用するポート番号である。オンライン状態の情報は、処理装置2の通信状態がオンラインかどうかを示す。例えば、通信状態がオンラインであることは、「1」で示す。ロケーション情報の有効期限は、データベース2B3に登録された処理装置2のロケーション情報が有効に機能する期限である。データベース2B3は、ロケーション情報が有効期限を迎えると、対応する処理装置2のロケーション情報を更新する。このとき、既にシグナリングサーバ2B1と処理装置2との接続が解除されている場合には、データベース2B3は、ロケーション情報を更新せずに削除する。更新日時は、ロケーション情報がデータベース2B3に登録または更新された日時である。なお、ロケーション情報はこれらの情報に限定されるものではない。
【0061】
処理装置2及びシグナリングサーバ2B1は、例えば、図8のタイミングチャートに沿って、ステップS1の処理と、ステップS2の処理を行う。
【0062】
まず、図8に示すA300の処理で、処理装置2は、WebSocketの通信規格での通信を可能な状態にするため、シグナリングサーバ2B1に対してWebSocketの接続要求を行う。これにより、A310に示すように、処理装置2とシグナリングサーバ2B1との間でWebSocketによるコネクションが確立される。通常、HTTP(Hyper Text Transfer Protocol)通信は、クライアントからのリクエストに対して、サーバがレスポンスを返す場合に利用され、クライアントとサーバの双方向の通信には利用されない。HTTP通信が利用される場合、サーバ側は、クライアントへPUSH配信を行えない。これに対して、処理装置2とシグナリングサーバ2B1とは、WebSocketによって、双方方向で通信を行える。WebSocketであれば、処理装置2とシグナリングサーバ2B1とのコネクションが継続的に確立されるため、任意のタイミングでシグナリングサーバ2B1から処理装置2に情報をPUSH配信できる。またWebSocketを使用した通信は、双方向通信を低コストで実現できる。
【0063】
次に、A320の処理で、処理装置2は、シグナリングサーバ2B1にロケーション情報の登録要求を示すコマンドを送信する。
【0064】
次に、A330の処理で、シグナリングサーバ2B1は、処理装置2から受信したロケーション情報をデータベース2B3に記憶させる。これによって、データベース2B3には、処理装置2のロケーション情報が登録される。データベース2B3にロケーション情報が登録されることで、処理装置2は、シグナリングサーバ2B1を介して、データベース2B3に登録された他の処理装置2のロケーション情報を参照できるようになる。
【0065】
次に、A340の処理で、シグナリングサーバ2B1は、処理装置2に対してロケーション情報の有効期限に関する情報を送信する。これにより、処理装置2は、データベース2B3に登録された自身のロケーション情報の有効期限を認識することができる。
【0066】
処理装置2は、ロケーション情報が有効期限を迎えるタイミングで、A350に示すように、ロケーション情報の更新のために、ロケーション情報の登録要求をシグナリングサーバ2B1に再度送信する。
【0067】
子ノードが論理ネットワーク3に参加する場合、子ノード、親ノード及びシグナリングサーバ2B1は、例えば、図9のタイミングチャートに沿って、ステップS1の処理と、ステップS2の処理を行う。
【0068】
子ノードをシグナリングサーバ2B1に接続する場合、A400に示すように、親ノードとシグナリングサーバ2B1との間では、WebSocketによるコネクションが確立されていることが必要である。
【0069】
子ノードは、例えばA410の処理で、近距離無線通信によって、親ノード2D3との接続を要求する。子ノードは、シグナリングサーバ2B1などに直接接続する手段を有していない。子ノードは、例えば、近距離無線通信、又はUSB接続などで親ノードに接続される。子ノードは、親ノードを介してシグナリングサーバ2B1に接続される。近距離無線通信としては、例えば、Bluetooth(登録商標)接続が挙げられる。
【0070】
次に、A420の処理で、親ノードは、子ノードに対して近距離無線通信による接続が可能となったことを通知する。
【0071】
次に、A430の処理で、子ノードは、親ノードを介して、シグナリングサーバ2B1に、データベース2B3へのロケーション情報の登録を要求する。
【0072】
次に、A440の処理で、親ノードは、子ノードからのロケーション情報の登録要求を、子ノードに代理してシグナリングサーバ2B1に行う。
【0073】
次に、A450の処理で、シグナリングサーバ2B1は、受信した子ノードのロケーション情報をデータベース2B3に記憶させる。これによって、データベース2B3には、子ノードのロケーション情報が登録される。処理装置2は、シグナリングサーバ2B1を介して、データベース2B3に登録された子ノードのロケーション情報を参照できるようになる。
【0074】
次に、A460の処理で、シグナリングサーバ2B1は、親ノードに対して、子ノードのロケーション情報の有効期限に関する情報を送信する。次に、A470の処理で、親ノードは子ノードに対して、子ノードのロケーション情報の有効期限に関する情報を送信する。これにより、子ノードは、データベース2B3に登録された自身のロケーション情報の有効期限を認識できる。
【0075】
上記処理によって、論理ネットワーク3を構築しようとする各処理装置2は、データベース2B3を参照することで互いのロケーション情報を確認できる状態となる。なお、処理装置2とシグナリングサーバ2B1との接続に用いられる通信規格及びプロトコルなどは、任意に変更してよい。
【0076】
ステップS3において、リンク機能部222は、ノード情報を作成する。図10に示すように、ノード情報には、セッション記述部とメディア記述部とが含まれる。セッション記述部には、処理装置2のユーザID、IPアドレス、及びデバイスIDが記述される。メディア記述部には、処理装置2で実行する、または他の処理装置2に実行させて結果を受信したい機能ごとに、機能名、ポート番号、バージョン情報、並びに、当該機能の実行結果を提供可能か否か、及び要求するか否か、が記述される。機能名は、例えば、検索、及び探索などの機能が示される。バージョン情報には、当該機能を実行させる実行プログラム242を含むソフトウェアのバージョンが示される。
【0077】
ステップS4において、リンク機能部222は、接続されたシグナリングサーバ2B1からコンタクトリストを取得する。リンク機能部222は、コンタクトリストに基づき、論理ネットワーク3を構築するためにノード情報を送信する送信対象となる他の処理装置2を決定する。
【0078】
コンタクトリストを取得する際、リンク機能部222は、通信部23を介して、接続されたシグナリングサーバ2B1にコンタクトリストを要求する。コンタクトリストの要求を受信したシグナリングサーバ2B1は、処理装置2に対して図11に示すコンタクトリストを送信する。
【0079】
図11に示すように、コンタクトリストには、論理ネットワーク3を構築できる可能性のある各処理装置2のデバイスID、ユーザID、親ノード、及び接続サーバを示す情報がそれぞれ含まれる。コンタクトリストは、図7に示したロケーション情報のうち、セッションを確立するために必要な情報により構成される。リンク機能部222は、ロケーション情報に基づき、例えば、処理装置2と同一のユーザIDを有する他の処理装置2に対してノード情報を送信する。
【0080】
ステップS5において、リンク機能部222は、他の処理装置2にセッション開始の要求を行う。ここで、図12及び図13を参照して処理装置2間におけるセッション開始の処理について説明する。
【0081】
リンク機能部222は、上述のように、まずS400、ならびにA500及びA510の処理で、通信部23を介してノード情報を他の処理装置2に送信する。本実施形態において、ノード情報の送付対象となる他の処理装置2は、処理装置2とユーザIDが同一の他の処理装置2とするが、これに限定されるものではない。
【0082】
次に、S410の処理で、ノード情報を受信した他の処理装置2に備わるリンク機能部222は、ノード情報に基づき、ノード情報を送信した処理装置2とノード情報を受信した他の処理装置2との少なくとも一方が必要とする機能を、ノード情報を送信した処理装置2が有するかどうかを判断する。すなわち、ノード情報を受信した他の処理装置2は、ノード情報を送付した処理装置2とのセッションを開始して論理ネットワーク3を構築するか否かを判断する。
【0083】
具体的に、ノード情報を送信した処理装置2がモバイル端末2Cであり、ノード情報を受信した他の処理装置2がナビゲーション装置2Aの場合を例に説明する。ナビゲーション装置2Aに備わるリンク機能部222は、S400、ならびにA500及びA510の処理で受信したモバイル端末2Cのノード情報と、ステップS5の処理で作成したナビゲーション装置2Aのノード情報とを比較する。ナビゲーション装置2Aに備わるリンク機能部222は、それぞれ同一の機能を実行するナビゲーション装置2Aのモジュール4とモバイル端末2Cのモジュール4とで、対応するソフトウェアのバージョンが異なるか否か判断する。ここでの機能は、モバイル端末2Cがナビゲーション装置2Aに求め、かつ、ナビゲーション装置2Aがモバイル端末2Cに提供できる機能である。ナビゲーション装置2Aに備わるリンク機能部222は、各モジュール4に対応するソフトウェアのバージョンがそれぞれ異なる場合、モバイル端末2Cが必要とする機能を有すると判断する。
【0084】
また、ナビゲーション装置2Aに備わるリンク機能部222は、ナビゲーション装置2Aがモバイル端末2Cに求め、かつ、モバイル端末2Cがナビゲーション装置2Aに提供できる機能についても、当該機能を実行するモジュール4に対応するソフトウェアのバージョンがそれぞれ異なるかどうかを判断する。ナビゲーション装置2Aに備わるリンク機能部222は、各モジュール4に対応するソフトウェアのバージョンがそれぞれ異なる場合、ナビゲーション装置2Aが必要とする機能をモバイル端末2Cが有すると判断する。
【0085】
各モジュール4に対応するソフトウェアのバージョンがそれぞれ異なる場合、各モジュール4に対応するソフトウェアに含まれる実行プログラム242は、少なくとも一部がそれぞれ異なる。それぞれ異なる実行プログラム242のうち、ノード情報を送信した処理装置2で実行される実行プログラム242は、第1実行プログラムに相当する。それぞれ異なる実行プログラム242のうち、ノード情報を受信した他の処理装置2で実行される実行プログラム242は、第2実行プログラムに相当する。第2実行プログラムは、第1実行プログラムと少なくとも一部が異なる。なお、リンク機能部222は、各ソフトウェアのバージョンを比較する構成に限定されない。リンク機能部222は、各モジュール4の実行プログラム242の少なくとも一部が、それぞれ異なるか否か判断できる構成であればよい。そのため、リンク機能部222は、各ソフトウェアのバージョンを比較することなく、各ソフトウェアが作成又は改訂された時系列上の順番がそれぞれ同じか否か、又はそれぞれ異なるか否か判断する構成であってもよい。ここでの作成は、既存のソフトウェアが改訂されてバージョンの新しいソフトウェアが作られることではなく、前のバージョンがないソフトウェアが新しく作られることを意味する。
【0086】
なお、リンク機能部222は、各モジュール4に対応するソフトウェアのバージョンを比較する代わりに、各モジュール4が利用する利用データのバージョンを比較する構成であってもよい。この構成の場合、リンク機能部222は、利用データのバージョンがそれぞれ異なると、処理装置2が必要とする機能を他の処理装置が有すると判断する。それぞれ異なる利用データのうち、第1実行プログラムが実行される場合に利用される利用データは、第1利用データに相当する。それぞれ異なる利用データのうち、第2実行プログラムが実行される場合に利用される利用データは、第2利用データに相当する。第2利用データは、第1利用データと少なくとも一部が異なる。なお、リンク機能部222は、各利用データのバージョンを比較する構成に限定されない。リンク機能部222は、各モジュール4によって利用される利用データの少なくとも一部が、それぞれ異なるか否か判断できる構成であればよい。そのため、リンク機能部222は、各利用データのバージョンを比較することなく、各利用データが作成又は改訂された時系列上の順番がそれぞれ同じか否か、又はそれぞれ異なるか否か判断する構成であってもよい。ここでの作成は、既存の利用データが改訂されてバージョンの新しい利用データが作られることではなく、前のバージョンがない利用データが新しく作られることを意味する。
【0087】
リンク機能部222は、各ソフトウェアのバージョン及び各利用データのバージョンを両方とも比較する構成であってもよい。
【0088】
処理装置2と他の処理装置2の各モジュール4は、実行プログラム242又は利用データがそれぞれ異なる場合、たとえ同一の機能を実行した場合でも、それぞれ異なる実行結果を得ることができる。
【0089】
このようにして、ノード情報を受信した他の処理装置2に備わるリンク機能部222は、ノード情報を送信した処理装置2とセッションを開始すべきかを判断する。ノード情報を受信した他の処理装置2に備わるリンク機能部222は、通信部23を介して、A520及びA530の処理で、判断結果とノード情報とを、ノード情報を送信した処理装置2に返送する。
【0090】
ノード情報を送信した処理装置2に備わるリンク機能部222は、他の処理装置2から、少なくとも一方の処理装置2が必要とする機能を有するという判断結果及びノード情報を受信した場合、S420及びA540の処理で、通信部23を介して、セッションを開始するための要求を他の処理装置2に送信する。一方、ノード情報を送信した処理装置2に備わるリンク機能部222は、他の処理装置2から互いに必要とする機能を有さないという判断結果を受信した場合、S430及びA550の処理で、通信部23を介して、セッションの開始が不要であることを通知するための情報を他の処理装置2に送信する。
【0091】
セッションを開始する要求を受信した他の処理装置2は、セッションの開始を要求した処理装置2との間でセッションを開始し、セッションを確立する。各処理装置2は、セッションを確立するため、アドレス候補の収集等の処理を行う。
【0092】
なお、論理ネットワーク3の構築は、処理装置2が新たに論理ネットワーク3に接続される場合だけでなく、実行プログラム242を含むソフトウェア、又は地図データ241等の利用データの更新を処理装置2が行った場合にも、改めて行われる。リンク機能部222は、実行プログラム242を含むソフトウェア又は利用データが更新された場合、論理ネットワーク3を構築するために他の処理装置2と接続する処理を再度行う。
【0093】
以上のように、処理装置2に備わるリンク機能部222は、通信部23を介して接続できる他の処理装置2のうち、第2実行プログラム又は第2利用データに基づき、第1実行プログラムが実行される場合と同一の機能を実行する他の処理装置2と接続して論理ネットワーク3を形成する。そのため、他の処理装置2による所定の機能の実行により得られる実行結果は、自身の処理装置である自処理装置における所定の機能の実行により得られる結果とは異なるものとなり得る。すなわち、処理装置2における所定の機能の実行により得られる実行結果と同一の実行結果を得る他の処理装置2ではなく、異なる実行結果が得られる他の処理装置2と論理ネットワーク3を形成することとなる。これにより、処理装置2は、所定の機能の実行において有益な結果をもたらす処理装置2に限定して接続を確立でき、管理コストを下げることができる論理ネットワーク3を形成できる。
【0094】
≪論理ネットワーク3を構成する各装置の詳細な構成≫
サーバ群2Zは、情報処理の負荷分散及びデータのバックアップ等のため、2以上のサーバ2Bで構成される。2以上のサーバ2Bは、機能ごとに分けられるとともに、同じ機能を有するサーバ2Bが2以上設けられている。
【0095】
リンク機能を実行するために、処理装置2同士の間で送信及び受信される送信情報には、それぞれにユーザID、コマンドID、要求ID、タイムスタンプを示す情報、及び結果を示す情報の少なくともいずれか1つが含まれる。ユーザIDは、それぞれの処理装置2の使用者を特定する識別情報である。コマンドIDは、実行すべき命令を示す識別情報である。要求IDは、それぞれの命令ごとに与えられたユニークな識別情報である。タイムスタンプは、送信される情報が送信された時刻を示す。結果を示す情報は、コマンドIDに関わる命令が実行された結果を示す。
【0096】
各処理装置2は、所定の機能を実行させる命令を他の処理装置2に伝達する場合、少なくともコマンドID及び要求IDを含む送信情報を他の処理装置2に送信する。各処理装置2は、命令が実行された結果を他の処理装置2に伝達する場合、少なくとも要求ID及び結果を示す情報を含む送信情報を他の処理装置2に送信する。
【0097】
情報処理システム1は、ナビゲーション装置2A又はモバイル端末2Cからサーバ群2Zに送信情報が送信された場合、サーバ2Bの処理負荷を分散させるため、送信情報を異なるサーバ2Bに振り分ける。情報処理システム1は、送信情報を、対応する処理装置2ごとに振り分ける。送信情報が振り分けられるサーバ2Bの情報は、少なくとも一定の期間、サーバ2Bに記憶される。当該一定の期間に次の送信情報が送信されると、その送信情報は、以前と同じサーバ2Bに再度振り分けられる。一方、一定の期間が経過すると、送信情報が振り分けられるサーバ2Bの情報はリセットされる。
【0098】
リンク機能を実行するため、各処理装置2は、シグナリングサーバ2B1と、ハートビートと呼ばれる通信を行う。シグナリングサーバ2B1は、ハートビートを行うことで、各処理装置2の通信の状態がオンラインか、又はオフラインかを判断する。
【0099】
シグナリングサーバ2B1は、図14に示すように、処理装置2にピン(Ping)フレームを送り、処理装置2の状態確認部221は、シグナリングサーバ2B1にポン(Pong)フレームを送り返すように構成される。具体的には以下のとおりである。
【0100】
ここでは、2つの処理装置2、2つのシグナリングサーバ2B1、並びにデータベース2B3を含む構成で行われるハートビートの具体例を説明する。データベース2B3はサーバ群2Zを構成するサーバの一つである。A100の処理で、一方のシグナリングサーバ2B1が一方の処理装置2に対してピンフレームを送ると、A101の処理で、ピンフレームが送られた処理装置2はシグナリングサーバ2B1にポンフレームを送り返す。ピンフレームとポンフレームとのやり取りは、所定の時間間隔で行われる。所定の時間間隔は、一定でもよく、変則でもよい。このようなピンフレームとポンフレームとのやり取りが正常に行われている間は、処理装置2の通信の状態はオンラインである。ここで、A110の処理でシグナリングサーバ2B1が処理装置2に対してピンフレームを送ったにもかかわらず、A111のように処理装置2からの応答がなければ、処理装置2の通信の状態がオフラインになっている。このとき、A112の処理で、シグナリングサーバ2B1はデータベース2B3に対して、通信の状態を管理するレコードの更新を行うよう要求する。これにより、データベース2B3の通信の状態を管理するレコードが更新される。また、A113の処理で、シグナリングサーバ2B1は、もう一方のシグナリングサーバ2B1に対しても、処理装置2の通信の状態がオフラインであることを通知する。
【0101】
もう一方のシグナリングサーバ2B1は、もう一方の処理装置2の通信の状態を確認する。そして、A114の処理で、もう一方のシグナリングサーバ2B1は、もう一方の処理装置2に対して、処理装置2の通信状態がオフラインであることを通知する。
【0102】
処理装置2の通信の状態がオフラインであるときも、A120の処理で、シグナリングサーバ2B1は処理装置2に対して所定の時間間隔でピンフレームを送る。所定の時間間隔は、一定でもよく、変則でもよい。そして、処理装置2の通信状態がオンラインになると、A121の処理で、処理装置2からポンフレームが送り返されてくる。A122の処理で、シグナリングサーバ2B1はデータベース2B3に対して、通信の状態を管理するレコードの更新を行うよう要求する。また、A123の処理で、シグナリングサーバ2B1は、もう一方のシグナリングサーバ2B1に対しても、処理装置2の通信の状態がオンラインになったことを通知する。そして、A124の処理で、もう一方のシグナリングサーバ2B1は、もう一方の処理装置2に対して、処理装置2の通信状態がオンラインとなったことを通知する。
【0103】
このようなピンフレームとポンフレームのやり取りによって、シグナリングサーバ2B1は、それぞれの処理装置2の通信の状態を確認できる。例えば、処理装置2がナビゲーション装置2Aの場合、トンネル又は地下駐車場などの電波が届かない場所に車両が進入すると、シグナリングサーバ2B1がナビゲーション装置2Aにピンフレームを送信してもポンフレームの応答がなくなる。このような場合、上記処理によって、論理ネットワーク3に含まれる各処理装置2は、ナビゲーション装置2Aの通信の状態がオフラインであると認識する。なお、処理装置2の通信の状態は、ハートビート以外の方法で確認されてもよい。
【0104】
機能実行部211は、リンク機能を実行する場合、予め定められた基準である選択基準に基づいて各モジュール4の優先順位を決定し、優先順位の最も高い第1候補と、第1候補に次ぐ優先順位の第2候補とをそれぞれ選択する。第1候補は、最も良好な実行結果を得られると推定されるモジュール4である。第2候補は、第1候補と同じ機能を実行でき、第1候補の次に良好な実行結果を得られると推定されるモジュール4である。モジュール4の選択基準は、例えば、より正確な実行結果を受け取れる、又は、より早く実行結果を受け取れる、等である。機能実行部211は、モジュール4のバージョン、地図データ241のバージョン、及び通信速度のいずれか1つに基づいて、第1候補と第2候補とをそれぞれ選択する。通信速度は、所定の機能を実行させる命令を伝達する処理装置2と、他の処理装置2との間で単位時間あたりに送受信できるデータの量である。機能実行部211は、通信の状態がオンラインの処理装置2に組み込まれたモジュール4の中から、第1候補と第2候補とをそれぞれ選択する。すなわち、通信の状態がオフラインの処理装置2に組み込まれたモジュール4は、第1候補及び第2候補のいずれとしても選択されない。機能実行部211は、選択基準をモジュール4のバージョンとした場合、バージョンが新しいモジュール4の優先順位を高くする。機能実行部211は、選択基準を地図データ241のバージョンとした場合、バージョンが新しいモジュール4の優先順位を高くする。機能実行部211は、優先条件を通信速度とした場合、通信速度が速い処理装置2に組み込まれたモジュール4の優先順位を高くする。なお、選択基準は、予め決められていてもよく、ユーザによって変更できるように処理装置2が構成されてもよい。この場合、選択基準は記憶部24に記憶されていてもよい。また、処理装置2は、機械学習によって選択基準が決定されるように構成されてもよい。
【0105】
ここで、機能実行部211は、論理ネットワーク3を構成する2以上の処理装置2の中から第1候補と第2候補とを選択する。処理装置2は、通信部23を介して論理ネットワーク3を形成する他の処理装置2と通信することで、所定の機能の実行によって得られた実行結果を送信及び受信することができる。このとき、処理装置2は、他の処理装置2から取得できる実行結果が、処理装置2に備わるモジュール4で実行した場合に得られる実行結果と同一であると、他の処理装置2から実行結果を受信する必要性が低い。そのため、機能実行部211は、論理ネットワーク3を構成する2以上の処理装置2の中から第1候補と第2候補とを選択する。論理ネットワーク3は、実行プログラム242を含むソフトウェアのバージョン、及び実行プログラム242が実行されるときに利用される利用データのバージョンの少なくともいずれかが異なる処理装置2同士を接続して形成される。そのため、機能実行部211は、それぞれ異なる実行プログラム242を含むソフトウェア、又は、それぞれ異なる地図データ241などの利用データを用いて同一の機能を実行できる2以上の処理装置2の中から、第1候補と第2候補とを選択する。論理ネットワーク3には、利用される可能性の低い処理装置2が含まれにくいので、情報処理システム1は、機能実行部211が第1候補と第2候補とを選択する場合の選択肢を効果的に絞ることができ、処理の負荷を低減できる。
【0106】
機能実行部211は、第1候補及び第2候補にそれぞれ所定の機能を実行させる命令を伝達する。なお、ここでいう伝達とは、命令、すなわち送信情報を送ることであって、送ったことを確認することを含まない。機能実行部211は、第1候補及び第2候補に対して、同時に命令を伝達する。なお、機能実行部211は、複数の処理を並列して行うことが可能であれば、第1候補に命令を伝達するための処理と、第2候補に命令を伝達するための処理とを並行して行う。機能実行部211は、並列処理を行うことができない場合、命令を伝達するための処理を、第1候補に命令を伝達するための処理、第2候補に命令を伝達するための処理の順に行う。この場合、機能実行部211は、第1候補に命令を伝達するための処理を行った直後に、第2候補に命令を伝達するための処理を行う。なお、第1候補に命令を伝達した直後とは、第1候補に命令を伝達した後遅滞なくという意味である。機能実行部211は、第1候補に命令を伝達してから1秒以内に第2候補に命令を伝達することが好ましい。また、機能実行部211は、第1候補に命令を伝達してから0.5秒以内に第2候補に命令を伝達することがより好ましい。また、機能実行部211は、第1候補に命令を伝達してから0.1秒以内に第2候補に命令を伝達することがさらに好ましい。また、機能実行部211は、第1候補に命令を伝達してから0.05秒以内に第2候補に命令を伝達することが特に好ましい。また、機能実行部211は、第1候補に命令を伝達してから0.01秒以内に第2候補に命令を伝達することがきわめて好ましい。これによって、機能実行部211は、第1実行結果を認識する処理を行うよりも前に、第2候補に命令を伝達するための処理を行うことができる。これらの命令を伝達する処理の具体例については後述する。機能実行部211は、並列処理を行うことができない場合、第1候補に命令を伝達するための処理と第2候補に命令を伝達するための処理とを時間的に分割した仮想的な並列処理で行ってもよい。
【0107】
機能実行部211は、第1候補での実行結果、または第2候補での実行結果を利用する。機能実行部211は、所定の時間以内に、第1候補の実行結果を取得した場合、第1候補の実行結果を、表示部26に表示させ、音声出力部27から出力することを決定する。機能実行部211は、所定の時間を超えて、第1候補の実行結果を取得しなかった場合、第2候補の実行結果を、表示部26に表示させ、音声出力部27から出力させることを決定する。なお、第1候補又は第2候補が、機能実行部211が含まれる処理装置2に含まれる場合は、機能実行部211が当該処理装置2の第1候補または第2候補の実行結果を取得する。一方、第1候補または第2候補が、機能実行部211が含まれる処理装置2以外の処理装置2に含まれる場合には、機能実行部211は通信部23を介して第1候補または第2候補の実行結果を取得する。
【0108】
通信制御部212は、通信部23を制御して、処理装置2同士の間で送信情報の送受信を行わせる。具体的には、通信制御部212は、処理装置2同士の間で確立したコネクションを管理し、通信を行うべき相手となる処理装置2を特定する。通信制御部212は、機能を実行させる命令を伝達する相手を特定することで、第1候補又は第2候補を含む他の処理装置2を特定し、特定した処理装置2に対して命令を伝達するよう通信部23を制御する。また、通信制御部212は、上記で特定した処理装置2から送信されてきた実行結果が、命令を伝達した処理装置2から送信された実行結果であることを特定する。
【0109】
出力制御部213は、表示部26及び音声出力部27をそれぞれ制御する。出力制御部213は、第1候補または第2候補の実行結果に基づく情報に基づいて生成された画像データを表示部26に出力し、音声データを音声出力部27に出力する。
【0110】
誘導部214は、経路に沿って、音声及び表示の少なくともいずれか一方でユーザを誘導するための情報を生成する。
【0111】
検索部215は、操作部25を介して、ユーザによって入力された施設名及び電話番号等の情報に基づき、地図データ241に基づいて施設を検索する。施設としては、例えば、ガソリンスタンド、充電スタンド、病院、警察署、消防署、鉄道駅、コンビニエンスストア、公園、山、その他の特定の場所などが挙げられる。地図データ241は、経路案内及び地図の表示に必要な各種の情報を含む。地図データ241は、道路情報と、施設情報とを含む。道路情報は、ノードとリンクの組み合わせで表される。ノードは、例えば、交差点や道路の末端等に設定される。リンクは、例えば、隣り合うノードをつなぐ位置に設定される。施設情報は、建物やPOI(Point Of Interest)を表す情報である。この地図データは、リンクごとに、道路の形状、道路の緯度および経度、道路の曲率、道路の勾配、道路の方位、ならびに道路の通行方向等を表す情報を含んでもよい。また地図データは、高速道路や一般道等の道路の種別に関する情報等も含んでもよい。地図データは、一般的に、バージョンが新しいほど現状に合った内容となっている。地図データは、例えば、複数のパーセルにそれぞれ対応するデータによって構成されている。パーセルは、緯度及び経度に基づいて地表を所定のサイズの矩形に区割りして設定される。
【0112】
探索部216は、地図データ241に基づいて、出発地から目的地までの経路を探索する。
【0113】
地図描画部217は、地図データ241に基づき、表示部26に地図を表示するためのデータを生成する。この地図は、例えば、処理装置2を搭載する車両、又は処理装置2を保持する人の現在地、及び、現在地から目的地までの経路を示す。本実施形態において、車両は自動車である。なお、車両は、例えば、自動二輪車、自転車又は電車であってもよい。
【0114】
交通情報部218は、交通情報部218は、交通情報に関する各種の処理を行う。本実施形態において、ナビゲーション装置2A及びモバイル端末2Cの場合、交通情報部218は、必要に応じて交通情報をユーザに通知する。交通情報の通知は、表示部26に表示させる、又は、音声出力部27から音声を出力させることで行われる。交通情報は、渋滞に関する情報、事故車の存在に関する情報、及び周囲または進行中の経路の先に存在する危険に関する情報などである。例えばナビゲーション装置2Aの場合、交通情報部218は、ナビゲーション装置2Aを特定する識別情報、位置情報、及び時刻などの情報をサーバ2Bに送信してもよい。
【0115】
マップマッチング部219は、現在地を示す位置情報を基に、マップマッチング処理を行う。マップマッチング処理は、例えば、車両に備わるGPS(Global Positioning System)センサが取得した緯度情報および経度情報を、地図データが示す道路上の位置に修正する処理である。マップマッチング部219は、緯度情報および経度情報によって示される車両の現在地を地図情報に重畳させ、その重畳させた位置に対応するリンクを求める。上記地図描画部217で用いられる現在地に関する情報は、マップマッチング部219で修正された現在地の情報である。なお、マップマッチング部219は、車両に備わるGPSでなく、処理装置2に搭載された測位部28により緯度情報及び経度情報などの現在地に関する情報を取得してもよい。
【0116】
差分更新部220は、記憶部24に記憶された地図データ241を更新する。例えば、ナビゲーション装置2Aは、地図データ241Aを更新する処理である地図更新を自動で行うように構成されている。ナビゲーション装置2Aは、サーバ2Bから地図差分データを所定のタイミングでダウンロードし、ダウンロードした地図差分データをナビ記憶部24A又は図示しない記録媒体に書き込むように構成されている。記録媒体は、例えばSDカードなどである。記録媒体は、ナビゲーション装置2Aの図示しないインターフェースを介して、ナビゲーション装置2Aに接続される。地図差分データは、以前のバージョンの地図データと相違する部分の地図データである。地図差分データは、例えば、パーセル単位で取得される。処理装置2では、地図更新に地図差分データが用いられることで、地図データ全体がダウンロードされる場合よりも地図更新に要する時間を短くできる。
【0117】
状態確認部221は、当該処理装置2の状態を確認できるようにするため、通信部23を介して、他のシグナリングサーバ2B1にポン(Pong)フレームを送信する。
【0118】
通信部23は、ナビ通信部23A、サーバ通信部23B、及びモバイル通信部23Cを含む。通信部23は、ネットワークを介して、それぞれ互いにデータを送受信することで通信する。ナビ通信部23Aは、例えば、TCU(Telecommunication Control Unit、またはTelematics Control Unit)、またはDCM(Data Communication Mudule)などの通信機能を有する構成で実現される。
【0119】
操作部25は、ナビ操作部25A、及びモバイル操作部25Cを含む。操作部25は、ユーザの指示を検知し、制御部21に検知した操作を示す情報を出力する。ナビ操作部25A及びモバイル操作部25Cは、ナビ表示部26A及びモバイル表示部26Cがそれぞれタッチパネルで構成される場合、タッチパネルである。
【0120】
表示部26は、ナビ表示部26A、及びモバイル表示部26Cを含む。表示部26は、それぞれ、地図データ241に基づいて地図を表示する。表示部26は、例えば、液晶ディスプレイ又は有機ELディスプレイ等である。
【0121】
記憶部24は、ナビ記憶部24A、サーバ記憶部24B、及びモバイル記憶部24Cを含む。記憶部24は、各種の情報を記憶する。本実施形態において、記憶部24は、地図データ241と、ソフトウェアとを記憶する。ソフトウェアは、処理装置2が実行する各種のプログラムを含む。これらのプログラムとしては、処理装置2を起動させるためのプログラム、地図更新のためのプログラム、及び、検索、探索及びリンク機能等を実行するための実行プログラム242等が挙げられる。
【0122】
音声出力部27は、ナビ音声出力部27A及びモバイル音声出力部27Cを含む。音声出力部27は、経路に沿ってユーザを誘導する際に、案内情報を音声として出力する。音声出力部27は、スピーカである。
【0123】
測位部28は、モバイル測位部28Cを含む。測位部28は、当該測位部28を有する処理装置2の現在地を、緯度情報及び経度情報として取得する。測位部28は、例えば、GPSセンサである。
【0124】
≪実行結果取得処理≫
次に、所定の機能を実行する際に第1候補及び第2候補を用いて実行結果を取得する実行結果取得処理について、図15から図17に示すフローチャートを参照しながら説明する。なお、以下の説明では、実行結果を表示部26及び音声出力部27に出力する処理装置2を「自ノード」という。「自ノード」は第1処理装置に相当する。すなわち、多くの場合において自ノードはユーザが操作している自己の処理装置2である。自ノードは、例えばナビゲーション装置2Aである。一方、自ノード以外の処理装置2を「他ノード」という。他ノードは、例えばモバイル端末2C又はサーバ2Bである。「他ノード」は第2処理装置に相当する。
【0125】
図15に示されるように、まず、ステップS100において、機能実行部211は、試行回数の値をリセットして0にする。次に、ステップS110において、機能実行部211は、候補選択処理を実行する。
【0126】
なお、本実施形態において、候補選択処理は、自ノードに備わる機能実行部211によって行われるが、これに限定されない。他ノードに備わる機能実行部211が第1候補及び第2候補を選択し、他ノードに備わる機能実行部211によって選択された第1候補及び第2候補が自ノードに伝えられる構成であってもよい。このような構成の場合、自ノードに備わる機能実行部211は、他ノードに備わる機能実行部211が選択した結果を受容する判断を行う。そのため、上記の構成の場合にも、自ノードに備わる機能実行部211は、第1候補及び第2候補を選択すると言える。
【0127】
≪候補選択処理≫
図16に示した候補選択処理のステップS200において、まず、機能実行部211は、候補となるモジュール4が論理ネットワーク3に存在するかどうかを判断する。すなわち、機能実行部211は、実行しようとする所定の機能を実行できるかどうか判断する。ステップS200において、論理ネットワーク3に所定の機能を実行できるモジュール4が存在しなければ、機能実行部211は候補選択処理を終了する。
【0128】
ステップS200において、論理ネットワーク3に所定の機能を実行できるモジュール4が存在した場合、ステップS210において、機能実行部211は、そのモジュール4の中から、所定の選択基準に基づいて第1候補を選択する。ここでの選択基準は上述のとおりであるため省略する。
【0129】
次に、ステップS220において、機能実行部211は、選択した第1候補が他ノードかどうか判断する。選択した第1候補が他ノードではなく自ノードのモジュール4であった場合、ステップS221において、機能実行部211は、第2候補を選択することなく、候補選択処理を終了する。一方、第1候補が他ノードのモジュール4であった場合、ステップS230において、機能実行部211は、第1候補以外に候補が存在するか否かを判断する。第1候補以外に候補が存在しない場合には、ステップS221において、機能実行部211は、第2候補を選択することなく、候補選択処理を終了する。
【0130】
一方、第1候補以外に候補となるモジュール4が存在する場合、ステップ240において、機能実行部211は、候補となるモジュール4が自ノードに存在するか否かを判断する。自ノードに候補となるモジュール4が存在した場合、ステップS241において、機能実行部211は、自ノードに組み込まれたモジュール4を第2候補として選択する。一方、自ノードに候補となるモジュール4が存在しなかった場合、ステップS242において、機能実行部211は、選択基準において第1候補の次に最適なモジュール4を第2候補として選択して、候補選択処理を終了する。
【0131】
図15に示すように、上記候補選択処理のステップS120において、所定の機能を実行するモジュール4の候補が1つも選択されなかった場合、機能実行部211は、ステップS121において、表示部26及び音声出力部27を介して、エラーが発生したことをユーザに通知する。また、機能実行部211は、制御部21にエラーが発生したことを通知する。一方、所定の機能を実行するモジュール4の候補が少なくとも1つ選択された場合、ステップS130において機能実行処理に進む。
【0132】
≪機能実行処理≫
図17の機能実行処理において、まず、ステップS300において、機能実行部211は、第1候補及び第2候補に、所定の機能を実行させる命令を伝達する。その後、所定時間の間に第1候補から実行結果を取得した場合は、ステップS311において、機能実行部211は、この第1候補の実行結果を利用する。具体的には、機能実行部211は、第1候補の実行結果に基づく情報に基づいて、表示部26に画像データを出力し、音声出力部27に音声データを出力する。
【0133】
一方、所定時間が経過しても第1候補から実行結果を取得しない場合には、ステップS330において、機能実行部211は、第2候補から実行結果を取得しているか否かを確認する。機能実行部211が第2候補から実行結果を取得していた場合、ステップS331において、機能実行部211は、この第2候補の実行結果を利用する。一方、第2候補からも実行結果を取得していなかった場合、機能実行部211はそのまま処理を終了する。
【0134】
図15の実行結果取得処理の説明に戻る。上記機能実行処理のステップS140において、第1候補及び第2候補の少なくとも一方から実行結果を取得した場合、機能実行部211は実行結果取得処理を終了する。一方、ステップS140において第1候補及び第2候補のどちらからも実行結果を取得しなかった場合、機能実行部211は、この時点での試行回数の数を確認する。ステップS150において、試行回数が試行回数上限よりも少なかった場合、ステップS151において、機能実行部211は試行回数に1を加算して、ステップS110以降の処理を繰り返す。一方、試行回数が試行回数上限になった場合、ステップS152において、機能実行部211は、表示部26及び音声出力部27を介して、エラーが発生したことをユーザに通知する。また、機能実行部211は、制御部21にエラーが発生したことを通知する。
【0135】
すなわち、機能実行部211は、試行回数上限まで、第1候補及び第2候補を選択し、実行結果の取得を試みる。このとき、制御部21は、所定時間以内に第1候補の実行結果が得られた場合には第1候補の実行結果を利用し、そうでない場合には第2候補の実行結果を利用する。
【0136】
なお、図16に示す上記候補選択処理では、第1候補が自ノードまたは他ノードのいずれに組み込まれていてもよいが、第1候補が自ノードに組み込まれている場合、機能実行部211は、第2候補の選択を行わない。しかしながらこの構成に限定されず、第1候補が自ノードに組み込まれていた場合に、機能実行部211が、第2候補を選択する構成であってもよい。また、上記候補選択処理では、第1候補及び第2候補が、いずれも他ノードに組み込まれたモジュール4である場合がある。
【0137】
ここで、処理装置2から第1候補及び第2候補に所定の機能を実行する命令を伝達してから、その実行結果を受信するまでの処理の実施例及び比較例について、タイミングチャートを参照しながら具体的に説明する。
【0138】
≪命令伝達の実施例1≫
図18に示されるように、処理装置2がCPUなどの処理用のコアを2以上有する場合には、機能実行部211は、第1候補に命令を伝達する処理A201と、第2候補に命令を伝達する処理A202とを並列に処理する。機能実行部211から命令が伝達されると、第1候補及び第2候補は、それぞれ命令を受信する処理A211及びA221を行い、命令を実行する処理A212及びA222を行う。その後、第1候補及び第2候補は、それぞれ実行結果を送信する処理A213及びA223を行う。その後、機能実行部211は、実行結果を受信して、それぞれの実行結果を認識する処理A231及びA232を行う。なお、第1候補または第2候補が、自ノードに組み込まれている場合には、バスなどを介して命令が伝達される。一方、第1候補または第2候補が、他ノードに組み込まれている場合には、通信部23を介して命令が伝達される。
【0139】
≪命令伝達の比較例≫
ここで、図19に示された比較例をみると、機能実行部211が第1候補に命令を伝達する処理A201Xを行った後、機能実行部211はすぐには第2候補に対して命令を伝達しない。その後、第1候補が命令を受信する処理A211Xを行うと、第1候補は、第1候補を含む処理装置2がBUSY状態であり命令を実行できないこと示す情報を送信する処理A214Xを行う。第1候補に命令を伝達した機能実行部211が、第1候補を含む処理装置2がBUSY状態であることを示す情報を受信する処理A231Xを行うと、機能実行部211は、第2候補に命令を伝達する処理A202Xを行う。第2候補が命令を受信する処理A221Xを行うと、第2候補は命令を実行するための処理A222Xを行い、実行結果を送信する処理A223Xを行う。この比較例では、上記の実施例1と比較して、機能実行部211が第2候補からの実行結果を受け取るまでの時間が長くなる。
【0140】
≪命令伝達の実施例2≫
図20に示されるように、処理装置2がCPUなどの処理用のコアを1つだけ有する場合には、機能実行部211は、第1候補に命令を伝達する処理A201A、A201B、及びA201Cと、第2候補に命令を伝達する処理A202A、A202B、及びA202Cとを、時間的に分割して仮想的な並列処理で処理する。その後、第1候補及び第2候補は、それぞれ命令を受信する処理A211及びA221を行い、命令を実行する処理A212及びA222を行い、その後、実行結果を送信する処理A213及びA223を行う。その後、機能実行部211は、実行結果を受信し、それぞれの実行結果を認識する処理A231A、A231B、A232A、及びA232Bを行う。この場合、第1候補への命令の伝達が、第2候補への命令の伝達より早くなるが、第1候補及び第2候補への命令の伝達は、上記の実施例1よりも遅くなる。ただし、比較例と比較すると、機能実行部211が第2候補から実行結果を受け取るまでの時間が短くなる。
【0141】
このように、情報処理システム1では、機能実行部211は、第1候補に命令を伝達した直後に第2候補に命令を伝達するが、命令伝達の方法には様々な態様がある。いずれの場合でも、機能実行部211は、第1候補の実行結果を受け取ることになる時点よりも前に、第2候補へ命令を伝達することとなる。言い換えれば、機能実行部211が第1候補に命令を伝達して第1実行結果を受け取るまでの時間と、機能実行部211が第2候補に命令を伝達して第2実行結果を受け取るまでの時間が重なっているともいえる。すなわち、比較例と比較すると、機能実行部211が第1候補に命令を伝達したことに対する結果を確認せずに、遅滞なく第2候補に命令を伝達する態様としている。
【0142】
情報処理システム1では、上述のとおり、処理装置2の機能実行部211が、第1候補及び第2候補に所定の機能を実行する命令を伝達し、第1実行結果及び第2実行結果を受け取れる。これにより、第1実行結果と第2実行結果との双方を踏まえてその後の処理を行うことができる。例えば、第1実行結果の信頼性が低いと判断された場合には、第2実行結果を利用することで、より信頼性の高い実行結果を利用することが可能となる。また、第1実行結果を待たずに第2候補に命令を伝達することで、信頼性の高い実行結果を得るためのタイムラグが生まれることを抑制できる。
【0143】
また、情報処理システム1では、処理装置2の機能実行部211が、第1候補及び第2候補に所定の機能を実行する命令を伝達した後、この命令に対する第1候補からの応答を受信する前に、第2候補に命令を伝達している。なお、第1候補からの応答とは、実行結果の受信、及び第1候補を含む処理装置2が例えばBUSY状態であることの情報の受信を含む。そのため、所定の機能の実行結果が第1候補から取得できなかった場合に、改めて第2候補に所定の機能を実行させる命令を伝達する構成と比較して、実行結果を早く取得することができる。また、例えば、第2候補よりバージョンが新しいモジュールを第1候補として選択したものの、第1候補の実行結果が長時間取得できないような場合に、古いバージョンである第2候補の実行結果を利用することができる。
【0144】
また、情報処理システム1では、第1実行結果及び第2実行結果を受信できるので、受信した第1実行結果がもしデータ不備などで使用できない場合でも、第2実行結果を利用することで、実行結果の信頼性を担保できる。
【0145】
また、情報処理システム1では、機能実行部211は、第1候補及び第2候補にそれぞれ命令を伝達した後、所定の時間が経過しても第1候補の実行結果である第1実行結果を取得できない場合、第2候補の実行結果である第2実行結果を示す画像データまたは音声データを、それぞれ表示部26または音声出力部27に出力してよい。これにより、第1実行結果の取得に時間を要する場合に、第2実行結果に基づいて表示部26に画像を表示させ、音声出力部27から音声を出力することで、所定の機能を実行した結果である実行結果を出力するのに長時間を要することを防止できる。
【0146】
機能実行部211による第1候補及び第2候補の選択基準を通信速度の大きさとした場合には、より早く所定の機能を実行した結果を取得しやすくすることができる。また、選択基準を、モジュール4のバージョンとした場合には、所定の機能を実行した結果として、より良好な結果を取得しやすくなる。また、選択基準を地図データ241のバージョンとした場合には、例えば、より新しい地図データ241に基づいた経路の探索結果を得ることができる。
【0147】
なお、命令を伝達した機能実行部211を含む処理装置2の地図データ241のバージョンと、命令が伝達された第1候補または第2候補を含む処理装置2の地図データ241のバージョンとが異なる場合には、実行結果と地図データ241との間に矛盾が生じる場合がある。具体的には、目的地までの経路となる道路に対応する地図データ241が、命令を伝達した機能実行部211の地図データ241に含まれない場合などが考えられる。このような場合には、機能実行部211は、実行結果を表示するために必要な部分の地図データを送信するよう、第1候補または第2候補が組み込まれた処理装置2に要求する。例えば、機能実行部211は、第1候補または第2候補が組み込まれた処理装置2に対して、現在地から目的地までの経路を含むパーセルのデータを送信するよう要求する。これにより、自ノードである処理装置2において、第1候補または第2候補の実行結果を利用する際に矛盾が発生することを防止することができる。
【0148】
また、経路に矛盾が生じない場合であっても、地図データ241のバージョンの違いにより、経路の沿線の施設に関する情報が異なる場合がある。このような場合には、自ノードに備わる機能実行部211が、第1候補または第2候補を含む処理装置2に対して、上記同様に現在地から目的地までの経路を含むパーセルのデータを送信するよう要求してもよい。
【0149】
機能実行部211は、少なくとも第1候補または第2候補を、自ノードに組み込まれたモジュール4の中から選択してもよい。自ノードに組み込まれたモジュール4から実行結果が得られないことは通常発生しないため、このようにすることで、所定の機能の実行結果が取得できない状態を回避することができる。
【0150】
機能実行部211は、所定の時間が経過しても、第1候補及び第2候補のいずれからも実行結果が得られない場合には、所定の選択基準に基づいて、再度、第1候補及び第2候補を選択し直してもよい。これにより、通信の状態が変化したことに起因して、第1候補及び第2候補から実行結果が取得できない場合に、改めて実行結果を取得するための処理をし直すことができる。本実施形態において、機能実行部211は、前の候補選択処理で求めた順位を利用して、第1候補及び第2候補を再度選択する。この場合、機能実行部211は、前の候補選択処理で選択された第2候補の次に順位が低いモジュール4を、新たに第1候補として選択する。機能実行部211は、新たに選択された第1候補の次に順位が低いモジュール4を新たに第2候補に選択する。なお、この構成に限定されず、機能実行部211は、候補選択処理を再度行う場合に、選択基準を変更してもよい。
【0151】
機能実行部211は、第1候補及び第2候補を選択する際に、通信の状態がオンラインの処理装置2に組み込まれたモジュール4のみから選択する。これによって、機能実行部211は、通信の状態がオフラインの処理装置2に組み込まれたモジュール4を選択対象から除外できるので、モジュール4から実行結果が取得できない状況を避けやすくすることができる。
【0152】
≪ハードウェアによる実現例≫
図21に示すように、処理装置2のうちのナビゲーション装置2Aは、CPU51と、ROM(Read Only Memory)52と、RAM(Random Access Memory)53と、I/Oインターフェース54と、タッチパネル55と、TCU56と、ストレージ装置57と、SDホストモジュール58と、バス59と、表示部60と、音声出力部61とを備える。これらの構成は、1以上のハードウェアである半導体集積回路であるが、これに限定されない。
【0153】
CPU51は、演算処理装置および制御装置として機能する。CPU51は、各種プログラムに従ってナビゲーション装置2Aの動作全般を制御する。CPU51は、ROM52に記憶されている各種プログラムを、RAM53を作業領域として実行する。CPUは、プログラムを実行することで処理装置2の制御部21として機能する。
【0154】
ROM52は、CPU51が使用するプログラムや演算パラメータ等を記憶する。ROM52は、例えば、制御部21で実行されるモジュールのプログラムを記憶する。ROM52は、処理装置2の記憶部24の一部である。
【0155】
RAM53は、CPU51が制御を実行する際に使用するプログラムを一時的に記憶する。またRAM53は、CPU51が制御を実行する際に適宜変化する変数等を一時的に記憶する。RAM53は、処理装置2の記憶部24の一部である。
【0156】
I/Oインターフェース54は、ナビゲーション装置2Aに接続された機器との間でデータの入出力を行う。I/Oインターフェース54は、車両に搭載されたナビゲーション装置用のセンサまたは入力デバイスから、ユーザによる入力操作の情報及び位置情報のデータ等を受け取る。I/Oインターフェース54は、読み取ったデータ等を、必要に応じてRAM53を介してCPU51に提供する。
【0157】
タッチパネル55は、ユーザによる入力操作を検出する。タッチパネル55は、処理装置2の操作部25である。タッチパネル55は、表示部60と一体であってもよい。
【0158】
TCU56は、サーバ2B及びモバイル端末2Cとそれぞれ通信する。ナビゲーション装置2Aは、モバイル端末2Cと近距離無線通信により通信してもよい。TCU56は、処理装置2の通信部23である。
【0159】
ストレージ装置57は、例えば磁気記憶デバイス、半導体記憶デバイス、光記憶デバイス、または、光磁気記憶デバイス等によって実現される。磁気記憶部デバイスは、例えばHDD(Hard Disk Drive)である。ストレージ装置57は、CPU51が実行するプログラム、および外部から取得したデータを含む各種のデータ等を格納する。ストレージ装置57は、処理装置2の記憶部24の一部である。
【0160】
SDホストモジュール58は、挿入されている記録媒体であるSDカードに対して、情報の読み出し及び書き込みを行う。SDホストモジュール58は、記録媒体から読み出した情報を、例えばRAM53に出力する。
【0161】
表示部60は、入力された画像データに基づいて画像を出力する。表示部60は、処理装置2の表示部26であって、液晶ディスプレイ又は有機ELディスプレイ等である。
【0162】
音声出力部61は、入力された音声データに基づいて音声を出力する。音声出力部61は、処理装置2の音声出力部27であって、スピーカである。
【0163】
バス59は、ナビゲーション装置2Aの各構成を接続する。これによりナビゲーション装置2Aの各構成が、相互にデータの送受信を行うことできる。
【0164】
処理装置2のうちのモバイル端末2Cは、上記のナビゲーション装置2Aと同様の構成であるが、例えば、図示しないGPSセンサを備える点で相違する。GPSセンサは、処理装置2の測位部28である。
【0165】
≪候補選択処理の変形例≫
実施形態の候補選択処理は、図22に示す以下の変形例により行われてもよい。本変形例では、第1候補及び第2候補を、自ノードか他ノードかを考慮することなく選択する点で、実施形態の候補選択処理と異なる。
【0166】
まず、ステップS200において、機能実行部211は、実行しようとする所定の機能を実行できるモジュール4が論理ネットワーク3に存在するかどうかを判断する。論理ネットワークに所定の機能を実行できるモジュール4が存在しなければ、機能実行部211は候補選択処理を終了する。
【0167】
論理ネットワーク3に所定の機能を実行できるモジュール4が存在した場合、ステップS210において、機能実行部211は、そのモジュール4の中から、所定の選択基準に基づいて第1候補を選択する。ここでの選択基準は上述のとおりであるため省略する。
【0168】
次に、S230において、機能実行部211は、機能実行部211は、第1候補以外に候補が存在するか否かを確認する。第1候補以外に候補が存在しない場合には、S221において、機能実行部211は、第2候補を選択することなく、候補選択処理を終了する。
【0169】
一方、第1候補以外に候補が存在する場合、S242Aにおいて、機能実行部211は、選択基準に対して第1候補の次に最適なモジュール4を第2候補として選択して、候補選択処理を終了する。
【0170】
なお、候補選択処理は、実施形態または上記変形例1のような態様に限定されない。例えば、機能実行部211は、第1候補として他ノードまたは自ノードのモジュールを優先的に選択してもよい。すなわち、第1候補及び第2候補を選択する選択基準のひとつとして、自ノードまたは他ノードを優先的に選択するという基準が用いられてもよい。
【0171】
≪論理ネットワーク3を構築する際の特徴≫
上記のように、処理装置2は、接続できる他の処理装置2のうち、同一の機能を実行する他の処理装置2と論理ネットワーク3を形成する。自処理装置2及び他の処理装置2の記憶部24は、それぞれ制御部21で実行される実行プログラム242を含むソフトウェアと、この実行プログラム242が実行される場合に利用される地図データ241などの利用データを記憶する。論理ネットワーク3を形成する自処理装置2と他の処理装置2とでは、上記ソフトウェア、及び利用データの少なくとも一部が異なる。好ましくは、論理ネットワーク3を形成する自処理装置2と他の処理装置2とでは、上記ソフトウェア、及び利用データのバージョンが異なる。このようにして論理ネットワーク3を形成することで、他の処理装置2による所定の機能の実行により得られる結果は、自処理装置2における所定の機能の実行により得られる結果とは異なるものとなる。すなわち、自処理装置2における所定の機能の実行により得られる結果と同一の結果を得る他の処理装置2ではなく、異なる結果が得られる他の処理装置2と論理ネットワーク3を形成することとなる。これにより、処理装置2は、所定の機能の実行において有益な結果をもたらす他の処理装置2に限定して接続を確立して論理ネットワーク3を形成し、論理ネットワーク3の管理コストを下げることができる。
【0172】
なお、論理ネットワーク3を形成する他の処理装置2は、ソフトウェア及び利用データの少なくとも一方のバージョンが異なるものに加え、ソフトウェア及び利用データの少なくとも一方が作成された時系列上の順番が異なるものとしてもよい。
【0173】
好ましくは、処理装置2の制御部21は、自身の実行プログラム242を含むソフトウェアのバージョン、又は利用データのバージョンが変更されたとき、論理ネットワーク3を形成し直す。このようにすることで、処理装置2の実行プログラム242又は利用データのバージョンが変更された場合でも、これらとは異なるバージョンの実行プログラム242及び利用データの少なくとも一方に基づいて同一の機能を実行する他の処理装置2と、適宜ネットワークを形成し直すことができる。
【0174】
なお、実施形態の例では、ノード情報を受信した処理装置2がセッションを開始すべきか否かの判断を行ったが、この方法に限定されない。例えば、新たにシグナリングサーバ2B1に接続された処理装置2がノード情報を要求する信号を他の処理装置2に送信し、他の処理装置2からノード情報を受信して、セッションを開始すべき他の処理装置2を決定するような処理を行ってもよい。
【0175】
≪その他の変形例≫
機能実行部211によって候補として選択されるモジュールは、3つ以上であってもよい。すなわち、機能実行部211は、第1候補から第3候補までを選択する構成であってもよい。
【0176】
機能実行部211は、通信の状態がオンラインの処理装置2に組み込まれたモジュール4、及び、通信の状態がオフラインの処理装置2に組み込まれたモジュール4の中から、第1候補と第2候補とを選択する構成であってもよい。
【0177】
機能実行部211は、第1候補の実行結果または第2候補の実行結果を利用するとき、必ずしも表示部26に表示させ、音声出力部27から出力させなくてもよい。この場合、第1候補の実行結果及び第2候補の実行結果の少なくとも一方は、出力以外の処理に利用されてもよい。また、第1候補の実行結果及び第2候補の実行結果の少なくとも一方は、記憶部24に記憶されてもよい。
【0178】
論理ネットワーク3には、処理装置2としてテレビが含まれてもよい。同じ種類の処理装置2が同一の論理ネットワーク3に含まれても良い。テレビは、例えば有線でインターネット、すなわち論理ネットワーク3につなげられてもよい。
【0179】
情報処理システム1において、サーバ2Bの制御部21であるサーバ制御部21Bが、機能実行部211を備える構成であってもよい。
【0180】
論理ネットワーク3を構成する処理装置2は、それぞれが1つの電子機器であるが、2以上の電子機器が1つの処理装置2とみなされて論理ネットワークが構成されてもよい。この場合、グループIDで論理ネットワーク3が管理される。これにより、情報処理システム1は、同じグループ内の処理装置2をつなぐことができる。
【0181】
実施形態では、モジュール4が主にソフトウェアである形態について説明したが、モジュール4は、ハードウェア、またはソフトウェアとハードウェアとの組み合わせであってもよい。
【0182】
機能実行部211は、通信速度ではなく、応答速度に応じて候補となるモジュール4を選択してもよい。すなわち、所定の機能を実行させる命令を伝達する処理装置2と、他の処理装置2との間でデータを送受信したときに応答に要する時間をモジュール4の選択基準としてもよい。
【0183】
機能実行部211によるモジュールの選択基準は、いずれか1つの指標に基づくものではなく、複数の指標を組み合わせたものであってもよい。例えば、機能実行部211は、通信速度、モジュール4のバージョン、及び地図のバージョン等の指標に基づくスコアリングを行い、スコアの高いモジュール4を第1候補または第2候補として選択してもよい。
【0184】
本発明は上述した各実施形態に限定されるものではなく、種々の変更が可能であり、変形例にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【符号の説明】
【0185】
1…情報処理システム、2…処理装置、21…制御部、23…通信部、3…論理ネットワーク、4…モジュール、211…機能実行部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22