(57)【要約】  地理的エリアにおける資産を管理又は追跡するためのコンピュータストレージ媒体上に符号化されたコンピュータプログラムを含む方法、システム、及び装置。１つの方法は、複数のチャネルの１又は２以上のチャネルで複数の資産からの１又は２以上の第１メッセージを受信する段階を含む。１又は２以上の第１メッセージは、地理的エリアに位置付けられた複数の資産のライブ地理的位置を示すことができる。本方法はまた、グラフィカルユーザインタフェースを介して、地理的エリアのマップ上に複数の資産のライブ地理的位置を表示する段階を含む。本方法は更に、目的地に移動するという第１ユーザデバイスからの要求を示すメッセージを第２チャネルで受信する段階を含む。本方法は更に、目的地までの１又は２以上の移動ルートを決定する段階を含む。１又は２以上の移動ルートは、目的地に第１ユーザデバイスを運ぶ異なる資産を使用することができる。本方法は更に、１又は２以上の移動ルートを指示する１又は２以上の第２メッセージを第３チャネルで発行する段階を含む。【選択図】図８
2020515818.tif 000002
【特許請求の範囲】
【請求項１】
複数の資産から、地理的エリアに位置付けられた前記複数の資産のライブの地理的位置を示す１又は２以上の第１メッセージを複数のチャネルの１又は２以上の第１チャネルで受信する段階と、
グラフィカルユーザインタフェースを介して、前記地理的エリアのマップ上に前記複数の資産のライブの地理的位置を表示する段階と、
目的地への移動の要求を指示する第１ユーザデバイスからのメッセージを第２チャネルで受信する段階と、
前記目的地までの１又は２以上の移動ルートを決定する段階であって、前記１又は２以上の移動ルートは前記目的地に移動するための異なる資産を使用するようにする段階と、
前記１又は２以上の移動ルートを指示する１又は２以上の第２メッセージを第３チャネルで発行する段階と、
を含む方法。
【請求項２】
前記複数の資産の各々のライブユーザ需要をモニタする段階と、
前記地理的エリアの一部分に位置付けられた１又は２以上の第１輸送資産に対する複数のユーザからの増加した需要を識別する段階と、
前記地理的エリアの一部分に位置付けられた１又は２以上の第２輸送資産を再割り当てして、前記ユーザからの増加した需要を満たす段階と、
を更に含む、ことを特徴とする請求項１に記載の方法。
【請求項３】
前記１又は２以上の第１輸送資産の代わりに前記１又は２以上の第２輸送資産を使用するようユーザを奨励するために前記１又は２以上の第１及び第２輸送資産の情報を変更する段階を更に含む、ことを特徴とする請求項２に記載の方法。
【請求項４】
グラフィカルユーザインタフェースを介して、前記地理的エリアにおける前記複数の資産の各々のライブ性能メトリクスを表示する段階を更に含む、ことを特徴とする請求項１に記載の方法。
【請求項５】
前記複数の資産の各々のライブ到着時間を予測する段階を更に含む、ことを特徴とする請求項１に記載の方法。
【請求項６】
グラフィカルユーザインタフェースを介して、前記複数の資産の各々のライブ予測到着時間を表示する段階を更に含む、ことを特徴とする請求項５に記載の方法。
【請求項７】
前記１又は２以上の移動ルートから第１移動ルートを指示する第２メッセージを前記第２チャネルで前記第１ユーザデバイスから受信する段階を更に含む、ことを特徴とする請求項１に記載の方法。
【請求項８】
前記第１移動ルートに沿って前記第１ユーザデバイスを継続的に追跡する段階と、
前記第１移動ルートによって使用された前記資産のこれから来る部分における途絶の検出に応答して第２移動ルートを前記第１ユーザデバイスに薦める段階と、
を更に含む、ことを特徴とする請求項７に記載の方法。
【請求項９】
前記複数の資産の各々の到着時間をリアルタイムで予測する段階を含む、ことを特徴とする請求項１に記載の方法。
【請求項１０】
前記到着時間を予測する段階は、
予め決められた期間にわたるそれぞれのルートに対して各資産によって取られた以前のトリップの履歴を分析して、前記それぞれのルートに対する各資産の複数のトリップモデルを生成する段階と、
前記それぞれのルートに対して各資産によって取られた現在のトリップを分析する段階と、
上記に基づいて、前記複数のトリップモデルの１つを選択する段階と、
を含む、ことを特徴とする請求項９に記載の方法。
【請求項１１】
複数の資産から、地理的エリアに位置付けられた前記複数の資産のライブの地理的位置を示す１又は２以上の第１メッセージを複数のチャネルの１又は２以上の第１チャネルで受信し、
グラフィカルユーザインタフェースを介して、前記地理的エリアのマップ上に前記複数の資産のライブ地理的位置を表示し、
目的地への移動の要求を指示する第１ユーザデバイスからのメッセージを第２チャネルで受信し、
前記目的地までの１又は２以上の移動ルートを決定し、前記１又は２以上の移動ルートは前記目的地まで移動するために異なる資産を使用するようにし、
前記１又は２以上の移動ルートを指示する１又は２以上の第２メッセージを第３チャネルで発行する、
１又は２以上のコンピュータプロセッサを備えた装置。
【請求項１２】
前記１又は２以上のコンピュータプロセッサは更に、
前記複数の資産の各々に対するライブユーザ需要をモニタし、
前記地理的エリアの一部分に位置付けられた１又は２以上の第１輸送資産に対する複数のユーザからの増加した需要を識別し、
前記地理的エリアの一部に位置付けられた１又は２以上の第２輸送資産を再割り当てして、前記ユーザからの増加した需要を満たす、
ようにする、ことを特徴とする請求項１１に記載の装置。
【請求項１３】
前記１又は２以上のコンピュータプロセッサは更に、前記１又は２以上の第１輸送資産の代わりに前記１又は２以上の第２輸送資産を使用するようユーザを奨励するために、前記１又は２以上の第１及び第２輸送資産の情報を変更するようにする、ことを特徴とする請求項１２に記載の装置。
【請求項１４】
前記１又は２以上のコンピュータプロセッサは更に、前記複数の資産の各々のライブ到着時間を予測するようにする、ことを特徴とする請求項１１に記載の装置。
【請求項１５】
前記１又は２以上のコンピュータプロセッサは更に、グラフィカルユーザインタフェースを介して、前記複数の資産の各々のライブ予測到着時間を表示するようにする、ことを特徴とする請求項１４に記載の装置。
【請求項１６】
前記１又は２以上のコンピュータプロセッサは更に、前記１又は２以上の移動ルートから第１移動ルートを指示する第２メッセージを前記第２チャネルで前記第１ユーザデバイスから受信するようにする、ことを特徴とする請求項１１に記載の装置。
【請求項１７】
前記１又は２以上のコンピュータプロセッサは更に、
前記第１移動ルートに沿って前記第１ユーザデバイスを継続的に追跡し、
前記第１移動ルートによって使用された前記資産の次に来る部分における途絶の検出に応答して、前記第１ユーザデバイスに第２移動ルートを薦める、
ようにする、ことを特徴とする請求項１６に記載の装置。
【請求項１８】
前記１又は２以上のコンピュータプロセッサは更に、前記複数の資産の各々の到着時間をリアルタイムで予測するようにする、ことを特徴とする請求項１１に記載の装置。
【請求項１９】
前記到着時間を予測するために、前記１又は２以上のコンピュータプロセッサは更に、
予め決められた期間にわたるそれぞれのルートに対して各資産によって取られた以前のトリップの履歴を分析して、前記それぞれのルートに対して各資産の複数のトリップモデルを生成し、
前記それぞれのルートに対して各資産によって取られた現在のトリップを分析し、
上記に基づいて、前記複数のトリップモデルの１つを選択する、
ようにする、ことを特徴とする請求項１８に記載の装置。
【請求項２０】
１又は２以上のコンピュータプロセッサによって実行された時に、前記１又は２以上のコンピュータプロセッサに、
複数の資産から、地理的エリアに位置付けられた前記複数の資産のライブの地理的位置を示す１又は２以上の第１メッセージを複数のチャネルの１又は２以上の第１チャネルで受信し、
グラフィカルユーザインタフェースを介して、前記地理的エリアのマップ上に前記複数の資産のライブ地理的位置を表示し、
目的地への移動の要求を指示する第１ユーザデバイスからのメッセージを第２チャネルで受信し、
前記目的地までの１又は２以上の移動ルートを決定し、前記１又は２以上の移動ルートは前記目的地まで移動するために異なる資産を使用するようにし、
前記１又は２以上の移動ルートを指示する１又は２以上の第２メッセージを第３チャネルで発行する、
ようにさせる命令を格納した非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、２０１７年１月９日に出願された米国仮特許出願第６２／４４４,０６２号明細書及び２０１７年１月１３日に出願された米国仮特許出願第６２／４４６,１０４号明細書の利益を主張する２０１８年１月８日に出願された米国出願第１５／８６５,２０５号明細書の利益を主張する。上記に引用した出願の開示内容は、全体が引用により本明細書に組み入れられる。
【０００２】
本明細書は、データ通信システムに関し、特に、地理的エリアにおける資産（asset）を管理又は追跡するシステム及び方法に関する。
【背景技術】
【０００３】
発行−購読（又は「ＰｕｂＳｕｂ」）パターンは、いわゆる発行者が、トピックに対するメッセージを発行し、いわゆる購読者が、彼らが購読している特定のトピックに関するメッセージを受信するソフトウエアシステムによって実施されるデータ通信メッセージング取り決めである。トピック毎に１又は２以上の発行者が存在する可能性があり、発行者は、一般的に、どの購読者が、もし居れば、発行されたメッセージを受信するかの知識を持っていない。発行者が大量のメッセージを発行する可能性があり、且つ購読者が多くのトピック（又は「チャネル」）を購読する可能性があるので、特定のチャネル及び／又は購読者に向けられるメッセージの全体の量を管理することが困難な場合がある。
【図面の簡単な説明】
【０００４】
【図１Ａ】ＰｕｂＳｕｂ通信パターンをサポートする例示的システムを示す図である。
【図１Ｂ】例示的クライアントデバイス上のソフトウエアの機能層を示す図である。
【図２】例示的メッセージングシステムの図である。
【図３Ａ】データをストリームレットに書き込む例示的方法のデータ流れ図である。
【図３Ｂ】ストリームレットからデータを読み取る例示的方法のデータ流れ図である。
【図４Ａ】メッセージをメッセージングシステム内のチャネルに発行する例示的方法のデータ流れ図である。
【図４Ｂ】メッセージングシステム内のチャネルを購読する例示的方法のデータ流れ図である。
【図４Ｃ】メッセージングシステム内のチャネルのメッセージを格納するための例示的データ構造の図である。
【図５Ａ】メッセージングシステムのメッセージを発行及び複製する例示的方法のデータ流れ図である。
【図５Ｂ】メッセージングシステムに格納されたメッセージを取り出す例示的方法のデータ流れ図である。
【図５Ｃ】メッセージングシステム内のデータのコピーの連鎖を修復する例示的方法のデータ流れ図である。
【図５Ｄ】メッセージングシステム内のデータのコピーの連鎖を修復する例示的方法のデータ流れ図である。
【図６】メッセージングシステム内の基準をフィルタリングするアプリケーションの例示的データ流れ図である。
【図７Ａ】期間ベースのパラメータを含む問合せ（クエリー）命令を用いてどのようにメッセージを処理できるかを示す図である。
【図７Ｂ】期間ベースのパラメータを含むクエリー命令を用いてどのようにメッセージを処理できるかを示す図である。
【図７Ｃ】期間ベースのパラメータを含むクエリー命令を用いてどのようにメッセージを処理できるかを示す図である。
【図７Ｄ】期間ベースのパラメータを含むクエリー命令を用いてどのようにメッセージを処理できるかを示す図である。
【図８】組織エンティティに関連付けることができる資産を管理及び追跡するために用いることができる例示的システムアーキテクチャの図である。
【図９】輸送資産などの資産の到着時間を予測又は推定できるルーティング構成要素の図である。
【図１０】地理的位置での資産の到着時間を予測又は推定する例示的方法の流れ図である。
【図１１】資産構成要素によって提示することができる例示的グラフィカルユーザインタフェース（ＧＵＩ）を示す図である。
【図１２】資産構成要素を動作するための例示的方法の流れ図である。
【図１３】クライアント構成要素によって提示することができる例示的ＧＵＩを示す図である。
【図１４】クライアント構成要素によって提示することができる例示的ＧＵＩを示す図である。
【図１５】クライアント構成要素を動作するための例示的方法の流れ図である。
【図１６】クライアント構成要素又は資産構成要素によって提示することができる例示的ＧＵＩを示す図である。
【図１７】資産管理構成要素によって提示することができる例示的ＧＵＩを示す図である。
【図１８】資産管理構成要素によって提示することができる例示的ＧＵＩを示す図である。
【図１９】資産管理構成要素によって提示することができる例示的ＧＵＩを示す図である。
【図２０】資産管理構成要素を動作するための例示的方法の流れ図である。
【図２１】ビデオデータを処理又は分析する例示的方法の流れ図である。
【図２２】資産管理システムの例示的認証手順を示す図である。
【発明を実施するための形態】
【０００５】
本発明の所与の態様に関して説明する例又は実施形態の要素は、本発明の別の態様の様々な実施形態にも用いることができる。例えば、１つの独立請求項に従属する従属請求項の特徴は、他の独立請求項の何れかの装置、システム、及び／又は方法に用いることができることは企図される。
【０００６】
本明細書で説明する主題の１又は２以上の実施形態の詳細は、添付の図面及び以下の説明に示されている。本主題の他の特徴、態様、及び利点は、説明、図面、及び請求項から明らかになるであろう。
【０００７】
資産を追跡及び管理するためのシステムアーキテクチャは、メッセージングシステムを含むことができる。このメッセージングシステムは、ＰｕｂＳｕｂ通信パターンをサポートすることができ、発行者及び購読者がライブメッセージを発行及び受信するのを可能にすることができる。資産のオペレータ、資産のユーザ、及び管理者、監督者、マネージャ、検査者、又は資産に関連付け得る組織エンティティの他の同等のユーザは、メッセージングシステムの発行者及び購読者とすることができる。資産、或いはバスドライバー、駐車場の係員などの資産のオペレータは、資産のライブの地理的位置、条件、利用、性能メトリクスなどを示すためメッセージを発行することができる。管理者、監督者、マネージャ、検査者、又は組織エンティティの組織エンティティの他の同等のユーザは、メッセージを閲覧することができ、且つ地理的エリアを資産が移動する時の資産のライブの地理的位置を閲覧することができる。管理者、監督者、マネージャ、検査者、又は組織エンティティの組織エンティティの他の同等のユーザはまた、資産のライブの性能メトリクスを閲覧することができ、資産を管理又は制御することができる。
【０００８】
バスの乗客、駐車場などを使用するドライバーなどの資産のユーザはまた、資産のライブの地理的位置を追跡し、資産のライブの性能メトリクスを閲覧することができる。ユーザは、ユーザを異なる地理的位置に運ぶよう資産に要求することができる。本システムアーキテクチャは、異なる資産（例えば、異なる輸送資産）を使用することができる異なる移動ルートを識別することができ、ユーザが異なる移動ルートの１つを選択するのを可能にする。
【０００９】
本明細書で説明する実施、実施形態及び実施例は、ユーザを特定の地理的位置に（例えば、目的地に）運ぶための資産をユーザがより容易且つ効率的に選択するのを可能にすることができる。例えば、本システムアーキテクチャは、異なる移動ルートで用いられる資産の適時性をユーザに通知することができる。これは、ユーザが時間通りに目的地に到着する可能性が最も高い移動ルートをユーザが選択できるようにすることができる。本システムアーキテクチャはまた、異なる移動ルートの価格に関してユーザに通知することができ、これにより、ユーザは、最も費用対効果の高いルートを選択するのを可能にすることができる。
【００１０】
図１Ａは、ＰｕｂＳｕｂ通信パターンをサポートする例示的システム１００を示している。発行者クライアント（例えば、発行者１）は、システム１００によってメッセージを指名チャネル（例えば、「チャネル１」）に発行することができる。メッセージは、テキスト、画像コンテンツ、音声コンテンツ、マルチメディアコンテンツ、ビデオコンテンツ、及びバイナリデータなどの１又は２以上を含むあらゆるタイプの情報を含むことができる。メッセージデータの他のタイプも可能である。購読者クライアント（例えば、購読者２）は、システム１００を使用して指名チャネルを購読予約し、亜ｋつ購読要求後に又は所与の位置（例えば、メッセージ番号又は時間オフセット）から発生するメッセージの受信を開始することができる。クライアントは、発行者及び購読者の両方とすることができる。
【００１１】
構成に応じて、ＰｕｂＳｕｂシステムは、以下のように分類することができる。
・１対１（１：１）。この構成では、チャネル毎に１人の発行者及び１人の購読者がいる。典型的な使用事例は、プライベートメッセージングである。
・１対多数（１：Ｎ）。この構成では、チャネル毎に１人の発行者と複数の購読者がいる。典型的な使用事例は、放送メッセージ（例えば、株価）である。
・多数対多数（Ｍ：Ｎ）。この構成では、単一チャネルに発行する多くの発行者がいる。
メッセージは、次に、複数の購読者に配信される。典型的な使用事例は、地図アプリケーションである。
【００１２】
指名チャネルを生成するのに必要な個別の動作（operation）はない。チャネルが購読された時又はメッセージがチャネルに発行された時にチャネルが暗黙的に生成される。一部の実施では、チャネル名は、名前空間によって限定することができる。名前空間は、１又は２以上のチャネル名を含む。異なる名前空間は、曖昧さを生じることなく同じチャネル名を有することができる。名前空間名は、名前空間及びチャネネームがドット又は他の適切な分離記号によって分けられる場合のチャネル名の接頭辞とすることができる。一部の実施では、チャネル許可設定を指定する時に名前空間を使用することができる。例えば、メッセージングシステム１００は、ａｐｐ１．ｆｏｏ及びａｐｐ１．ｓｙｓｔｅｍ．ｎｏｔｉｆｉｃａｔｉｏｎｓチャネルを有することができ、ここで「ａｐｐｌ」は、名前空間の名称である。本発明のシステムは、クライアントがａｐｐｌ．ｆｏｏチャネルを購読及び発行することを可能にすることができる。しかし、クライアントは、ａｐｐｌ．ｓｙｓｔｅｍ．ｎｏｔｉｆｉｃａｔｉｏｎｓチャネルを発行しないが購読のみとすることができる。
【００１３】
図１Ｂは、例示的クライアントデバイス上のソフトウエアの機能層を示している。クライアントデバイス（例えば、クライアント１０２）は、例えば、パーソナルコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、スマートウォッチ、又はサーバコンピュータのようなデータ処理装置である。他のタイプのクライアントデバイスも可能である。アプリケーション層１０４は、ＰｕｂＳｕｂシステム１００に統合することになるエンド−ユーザアプリケーションを含む。メッセージング層１０６は、アプリケーション層１０４がチャネル購読、メッセージ発行、メッセージ取り出し、ユーザ認証、及びユーザ許可のようなシステム１００のサービスを利用するプログラミングインタフェースである。一部の実施では、メッセージング層１０６との間で送られるメッセージは、ＪａｖａＳｃｒｉｐｔ（登録商標）オブジェクト表記（ＪＳＯＮ）オブジェクトとして符号化される。他のメッセージ符号化方式も可能である。
【００１４】
オペレーティングシステム１０８層は、クライアント１０２のオペレーティングシステムソフトウエアを含む。様々な実施では、持続的又は非持続的接続を使用してシステム１００にメッセージを送信する及びシステム１００からメッセージを受信することができる。持続的接続は、例えば、ネットワークソケットを使用して生成することができる。ＴＣＰ／ＩＰ層１１２のようなトランスポートプロトコルは、メッセージング層１０６によって使用されるシステム１００とのトランスポート制御プロトコル／インターネットプロトコル通信を実施し、接続を通してシステム１００にメッセージを送信する。例えば、ユーザデータグラムプロトコル（ＵＤＰ）を含む他の通信プロトコルも可能である。更に別の実施では、任意的なトランスポート層セキュリティ（ＴＬＳ）層１１０を利用してメッセージの機密性を保証することができる。
【００１５】
図２は、例示的メッセージングシステム１００の図である。システム１００は、ＰｕｂＳｕｂ通信パターンを実施するための機能性を提供する。本発明のシステムは、例えば、１又は２以上の地理的な場所で１又は２以上のデータセンタ１２２に配備することができるソフトウエア構成要素及びストレージを含む。本発明のシステムは、ＭＸノード（例えば、ＭＸノード又は多重化ノード２０２、２０４、及び２０６）、Ｑノード（例えば、Ｑノード又は待ち行列ノード２０８、２１０、及び２１２）、１又は２以上の構成マネージャノード（例えば、構成マネージャ２１４）、及び任意的に１又は２以上のＣノード（例えば、Ｃノード又はキャッシュノード２２０及び２２２）を含む。各ノードは、仮想機械又は物理機械（例えば、データ処理装置）で実行することができる。各ＭＸノードは、外部ネットワーク２１６を通じた１又は２以上の発行者及び／又は購読者接続の終端ポイントとして機能することができる。ＭＸノード、Ｑノード、Ｃノード、及び構成マネージャ間の内部通信は、例えば、内部ネットワーク２１８を通じて行うことができる。例示的に、ＭＸノード２０４をクライアント１０２からの購読者接続の終端とすることができる。各Ｑノードは、ＭＸノードによって消費するチャネルデータをバッファに入れる。チャネルに発行されたメッセージの順序付けられたシーケンスが論理的チャネルストリームである。例えば、３つのクライアントが所与のチャネルにメッセージを発行する場合に、クライアントによって発行された複合メッセージは、チャネルストリームを含む。メッセージは、チャネルストリーム内で、例えば、クライアントによる発行の時間により、ＭＸノードによる受信の時間により、又はＱノードによる受信の時間によって順序付けることができる。チャネルストリームのメッセージを順序付けるための他の方法も可能である。１よりも多いメッセージが順序の同じ位置に割り当てられる場合に、順序の後ろのシーケンスを有するメッセージの１つを（例えば、ランダムに）選択することができる。各構成マネージャノードは、例えばチャネルをＱノードに割り当てる及び／又はチャネルストリームをいわゆるストリームレットに分割することによってＱノードの負荷を管理する役割を果たす。ストリームレットは以下に詳しく説明する。任意的Ｃノードは、キャッシュ及びＱノードからの負荷除去を提供する。
【００１６】
例示的メッセージングシステム１００では、１又は２以上のクライアントデバイス（発行者及び／又は購読者）は、ＭＸノード（例えば、ＭＸノード２０４）へのそれぞれの持続的接続（例えば、ＴＣＰ接続）を設定する。ＭＸノードは、これらの接続の終端ポイントとして機能する。例えば、これらの接続によって運ばれた外部メッセージ（例えば、それぞれのクライアントデバイスとＭＸノード間）は、外部プロトコル（例えば、ＪＳＯＮ）に基づいて符号化することができる。ＭＸノードは、外部プロトコルを終了して外部メッセージを内部通信に翻訳し、逆も同様である。ＭＸノードは、クライアントの代わりにストリームレットを発行及び購読する。従って、ＭＸノードは、同じチャネルを購読又は発行するクライアントデバイスの要求を多重化及び融合することができ、従って、１つずつの代わりに１つとして複数のクライアントデバイスを表している。
【００１７】
例示的メッセージングシステム１００では、Ｑノード（例えば、Ｑノード２０８）は、１又は２以上のチャネルストリームの１又は２以上のストリームレットを格納することができる。ストリームレットは、チャネルストリームの一部分のためのデータバッファである。ストリームレットは、そのストレージが満杯である時に書込に対して閉じることになる。ストリームレットは、ストリームレットの有効期間（ＴＴＬ）が満了した時に読取及び書込に対して閉じて割り当てを解除する。例示的に、ストリームレットは、１ＭＢの最大サイズ及び３分のＴＴＬを有することができる。異なるチャネルは、異なるサイズ及び／又は異なるＴＴＬによって制限されるストリームレットを有することができる。例えば、１つのチャネル内のストリームレットは、３分まで存在することができる一方、別のチャネル内のストリームレットは、１０分まで存在することができる。様々な実施では、ストリームレットは、Ｑノードで実行されるコンピュータ処理に対応する。コンピュータ処理は、ストリームレットのＴＴＬが満了した後に終了することができ、従って、例えば、Ｑノードに戻るコンピュータリソース（ストリームレット）を解放する。
【００１８】
クライアントデバイスから発行要求を受信した時に、ＭＸノード（例えば、ＭＸノード２０４）は、構成マネージャ（例えば、構成マネージャ２１４）に要求してストリームレットへのアクセスを許可し、発行されるメッセージを書き込む。しかし、ＭＸノードがチャネル内のストリームレットへの書込アクセスを予め許可される（且つチャネルが書込に対して閉じていない）場合に、ＭＸノードは、ストリームレットにアクセスする許可を要求する必要なくこのストリームレットにメッセージを書き込むことができることに注意されたい。メッセージがチャネル内のストリームレットに書き込まれた状態で、メッセージは、ＭＸノードによって読み取られ、このチャネルの購読者に提供することができる。
【００１９】
同様に、クライアントデバイスからチャネル購読要求を受信した時に、ＭＸノードは、チャネル内のストリームレットへのアクセスのための許可を構成マネージャに要求してストリームレットからメッセージが読み取られる。ＭＸノードがチャネル内のストリームレットへの読取アクセスを予め許可されている（且つチャネルのＴＴＬが読取に対して閉じていない）場合に、ＭＸノードは、ストリームレットにアクセスする許可を要求する必要なくストリームレットからメッセージを読み取ることができる。読取メッセージは、チャネルに購読予約したクライアントデバイスに転送することができる。様々な実施では、ストリームレットから読み取られたメッセージは、ＭＸノードによってキャッシュに入れられ、それによってＭＸノードは、ストリームレットから読み取るのに必要な時間数を低減することができる。
【００２０】
例示的に、ＭＸノードは、ＭＸノードが特定のチャネル内のストリームレットを格納する特定のＱノードのストリームレットにデータのブロックを格納することを可能にする構成マネージャからの許可を要求することができる。例示的ストリームレット許可要求及び許可データ構造は以下の通りである。
2020515818.tif 000003
【００２１】
ＳｔｒｅａｍｌｅｔＧｒａｎｔＲｅｑｕｅｓｔデータ構造は、ストリームｃｈａｎｎｅｌの名前及びＭＸノードがストリームレットからの読取又はストリームレットへの書込を意図するか否かを示すモードを格納する。ＭＸノードは、ＳｔｒｅａｍｌｅｔＧｒａｎｔＲｅｑｕｅｓｔを構成マネージャノードに送信する。構成マネージャノードは、相応にＭＸノードにＳｔｒｅａｍｌｅｔＧｒａｎｔＲｅｓｐｏｎｓｅデータ構造を送信する。ＳｔｒｅａｍｌｅｔＧｒａｎｔＲｅｓｐｏｎｓｅは、ストリームレットの識別子（ｓｔｒｅａｍｌｅｔ−ｉｄ）、ストリームレットの最大サイズ（ｌｉｍｉｔ−ｓｉｚｅ）、ストリームレットが格納することができるメッセージの最大数（ｌｉｍｉｔ−ｍｓｇｓ）、ＴＴＬ（ｌｉｍｉｔ−ｌｉｆｅ）、及びストリームレットが存在するＱノードの識別子（ｑ−ｎｏｄｅ）を含有する。ＳｔｒｅａｍｌｅｔＧｒａｎｔＲｅｑｕｅｓｔ及びＳｔｒｅａｍｌｅｔＧｒａｎｔＲｅｓｐｏｎｓｅはまた、ストリームレットから読み取るためのストリームレットの位置（又はチャネルの位置）を示す位置フィールドを有することができる。
【００２２】
許可は、ストリームレットが閉じた状態で無効になる。例えば、ストリームレットは、ストリームレットのＴＴＬが満了した状態で読取及び書込に対して閉じ、ストリームレットのストレージが満杯の時はストリームレットが書込に対して閉じる。許可が無効になった時に、ＭＸノードは、ストリームレットから読み取る又はストリームレットに書き込むための構成マネージャからの新しい許可を要求することができる。新しい許可は、異なるストリームレットを参照することになり、且つ新しいストリームレットが存在する場所に応じて同じか又は異なるＱノードを意味することになる。
【００２３】
図３Ａは、様々な実施形態でデータをストリームレットに書き込む例示的方法のデータ流れ図である。図３Ａでは、ストリームレットに書き込むためのＭＸノード（例えば、ＭＸノード２０２）要求が、上述のように構成マネージャ（例えば、構成マネージャ２１４）によって許可された時に、ＭＸノードは、構成マネージャ（３０２）から受信した許可応答で識別されたＱノード（例えば、Ｑノード２０８）との送信制御プロトコル（ＴＣＰ）接続を確立する。ストリームレットは、複数の書込許可（例えば、複数の発行者クライアントによって発行されたメッセージに対する）によって同時に書き込むことができる。ＭＸノードとＱノード間の接続プロトコルの他のタイプも可能である。
【００２４】
ＭＸノードは、次に、ＭＸノードがＱノードに書き込みたいストリームレットの識別子を備えた準備−発行メッセージを送信する（３０４）。ストリームレット識別子及びＱノード識別子は、上述のように書込許可で構成マネージャによって提供することができる。Ｑノードは、識別されたストリームレットのハンドラ処理３０１（例えば、Ｑノードで実行されるコンピュータ処理）にメッセージを渡す（３０６）。ハンドラ処理は、ＭＸノードに肯定応答を送信することができる（３０８）。肯定応答を受信した後に、ＭＸノードは、次に識別されたストリームレットに受信したデータを格納するハンドラ処理へのメッセージの書込（発行）（例えば、３１０、３１２、３１４、及び３１８）を開始する。ハンドラ処理はまた、受信したデータの肯定応答（３１６、３２０）をＭＸノードに送信することができる。一部の実施では、肯定応答は、抱き合わせ又は累積的とすることができる。例えば、ハンドラ処理は、予め決められたデータ量が受信される毎に（例えば、１００メッセージが受信される毎に）、又は予め決められた時間毎に（例えば、１ミリ秒毎に）ＭＸノードに肯定応答を送信することができる。ネーグルのアルゴリズムのような他の肯定応答スケジューリングアルゴリズムを使用することもできる。
【００２５】
ストリームレットが、発行されたデータをそれ以上受け入れられない場合（例えば、ストリームレットが満杯の時）、ハンドラ処理は、問題を示す否定応答（ＮＡＫ）メッセージ（３３０）、次に、ＥＯＦ（ファイルの終わり）メッセージ（３３２）を送信する。従って、ハンドラ処理は、発行許可のためのＭＸノードとのアソシエーションを閉じる。ＭＸノードが格納する追加のメッセージを有する場合に、ＭＸノードは、構成マネージャから別のストリームレットの書込許可を要求することができる。
【００２６】
図３Ｂは、様々な実施形態におけるストリームレットからデータを読み取る例示的方法のデータ流れ図である。図３Ｂでは、ＭＸノード（例えば、ＭＸノード２０４）は、構成マネージャ（例えば、構成マネージャ２１４）に特定のメッセージから始まる特定のチャネル又はチャネルの時間オフセットを読み取るための要求を送信する。構成マネージャは、特定のメッセージを含有するストリームレットの識別子、特定のメッセージに対応するストリームレットにおける位置、及び特定のストリームレットを含有するＱノード（例えば、Ｑノード２０８）の識別子を含む読取許可をＭＸノードに戻す。ＭＸノードは、ＱノードとのＴＣＰ接続を確立する（３５２）。ＭＸノードとＱノード間の接続プロトコルの他のタイプも可能である。
【００２７】
ＭＸノードは、ストリームレットの識別子（Ｑノード内）及びＭＸノードがそこから読み取りたいストリームレットの位置を備えた購読メッセージ（３５４）をＱノードに送信する（３５６）。Ｑノードは、購読メッセージをストリームレットのハンドラ処理３５１に渡す（３５６）。ハンドラ処理は、ＭＸノードに肯定応答を送信することができる（３５８）。ハンドラ処理は、ストリームレットの位置で開始されるメッセージ（３６０、３６４、３６６）をＭＸノードに送信する。一部の実施では、ハンドラ処理は、ストリームレットのメッセージの全てをＭＸノードに送信することができる。特定のストリームレット内の最後のメッセージを送信した後に、ハンドラ処理は、最後のメッセージの通知をＭＸノードに送信することができる。ＭＸノードは、特定のチャネル内の次のメッセージを含有する別のストリームレットに対する別の要求を構成マネージャに送信することができる。
【００２８】
特定のストリームレットが閉じた場合（例えば、特定のストリームレットのＴＴＬが満了した後）、ハンドラ処理は、非購読メッセージ（３９０）、次に、ＥＯＦメッセージ（３９２）を送信して読取許可のためのＭＸノードとのアソシエーションを閉じることができる。ＭＸノードは、ＭＸノードが特定のチャネル内のメッセージのために別のストリームレットに移る（例えば、構成マネージャによって示されたように）時にハンドラ処理とのアソシエーションを閉じることができる。ＭＸノードは、ＭＸノードが、対応するクライアントデバイスから非購読メッセージを受信した場合に、ハンドラ処理とのアソシエーションを閉じることができる。
【００２９】
様々な実施では、ストリームレットは、同じ時間インスタンスに書き込み、且つ読み取ることができる。例えば、同じ時間インスタンスに有効読取許可及び有効書込許可を存在させることができる。様々な実施では、複数の読取許可（例えば、複数の発行者クライアントによって購読されるチャネルに対する）によって同時にストリームレットを読み取ることができる。ストリームレットのハンドラ処理は、例えば、到着時間に基づいて同時書込許可からのメッセージを順序付けし、その順序に基づいてメッセージを格納することができる。従って、複数の発行者クライアントからチャネルに発行されたメッセージは、チャネル内のストリームレットにシリアル化して格納することができる。
【００３０】
メッセージングシステム１００では、１又は２以上のＣノード（例えば、Ｃノード２２０）は、１又は２以上のＱノードからのデータ転送をアンロードすることができる。例えば、特定のチャネルのためのストリームレットをＱノードから要求する多くのＭＸノードが存在する場合に、ストリームレットをアンロードして１又は２以上のＣノードをキャッシュに入れることができる。ＭＸノード（例えば、構成マネージャから読取許可によって命令される）は、代わりにＣノードからストリームレットを読み取ることができる。
【００３１】
上述のように、メッセージングシステム１００内のチャネルのためのメッセージは、チャネルストリームで順序付けされる。構成マネージャ（例えば、構成マネージャ２１４）は、それぞれのＱノードに各々が存在する固定サイズストリームレットにチャネルストリームを分割する。従って、チャネルストリームの格納は、多くのＱノード間で共有することができ、各Ｑノードは、チャネルストリームの一部分（１又は２以上のストリームレット）を格納する。より具体的には、ストリームレットは、例えば、Ｑノード上のコンピュータ処理に関連付けられたレジスタ及び／又は動的メモリ要素に格納することができ、従って、ハードディスクのような持続性低速ストレージデバイスにアクセスする必要性を回避する。これは高速のメッセージアクセスをもたらす。構成マネージャは、Ｑノードのそれぞれの仕事量をモニタし、いかなる１つのＱノードの過負荷も回避する方法でストリームレットを割り当てることにより、メッセージングシステム１００のＱノード間の負荷の均衡を取ることができる。
【００３２】
様々な実施では、構成マネージャは、各アクティブストリームレット、ストリームレットが存在するそれぞれのＱノード、ストリームレットの第１のメッセージの位置の識別、及びストリームレットが書込に対して閉じているか否かを識別するリストを維持する。一部の実施では、Ｑノードは、満杯であるために又はストリームレットのＴＴＬが満了した時にストリームレットが閉じていることをストリームレットに発行している構成マネージャ及び／又はあらゆるＭＸノードに通知する。ストリームレットが閉じている時に、ＭＸノードがストリームレットからメッセージの取り出しを継続することができるようにストリームレットのＴＴＬが満了するまでアクティブストリームレットの構成マネージャのリストにストリームレットが残る。
【００３３】
ＭＸノードが所与のチャネルに対する書込許可を要求して書き込むことができるチャネルのためのストリームレットがない時に、構成マネージャは、Ｑノードの１つに新しいストリームレットを割り当て、ストリームレットのアイデンティティ及びＳｔｒｅａｍｌｅｔＧｒａｎｔＲｅｓｐｏｎｓｅのＱノードを戻す。そうでなければ、構成マネージャは、ストリームレット及び対応するＱノードをＳｔｒｅａｍｌｅｔＧｒａｎｔＲｅｓｐｏｎｓｅに書き込むために現在開いているというアイデンティティを戻す。ＭＸノードは、ストリームレットが満杯になるか又はストリームレットのＴＴＬが満了するまでストリームレットにメッセージを発行することができ、この後で新しいストリームレットを構成マネージャによって割り当てることができる。
【００３４】
ＭＸノードが所与のチャネルの読取許可を要求して読み取ることができるチャネルのためのストリームレットがない時に、構成マネージャは、Ｑノードの１つに新しいストリームレットを割り当て、ストリームレットのアイデンティティ及びＳｔｒｅａｍｌｅｔＧｒａｎｔＲｅｓｐｏｎｓｅのＱノードを戻す。そうでなければ、構成マネージャは、ストリームレットのアイデンティティ及びＭＸノードが読み取りたい位置を含有するＱノードを戻す。Ｑノードは、送信するストリームレットのメッセージがなくなるまで指定された位置で始まるストリームレットからＭＸノードへのメッセージの送信を開始することができる。新しいメッセージがストリームレットに発行された時に、このストリームレットを購読しているＭＸノードは、新しいメッセージを受信する。ストリームレットのＴＴＬが満了した場合に、ハンドラ処理３５１は、ＥＯＦメッセージ（３９２）をストリームレットを購読する何れのＭＸノードにも送信することができる。
【００３５】
一部の実施では、メッセージングシステム１００は、複数の構成マネージャ（例えば、構成マネージャ２１４に加えて１又は２以上の他の構成マネージャ）を含むことができる。複数の構成マネージャは、弾力性を提供して単一障害点を回避する。例えば、１つの構成マネージャは、それが維持するストリームレットと現在の許可のリストとを別の「スレーブ」構成マネージャに複製することができる。別の例として、複数の構成マネージャは、例えば、Ｐａｘｏｓ又はＲａｆｔプロトコルのような分散コンセンサスプロトコルを使用して複数の構成マネージャ間で動作を調整することができる。
【００３６】
図４Ａは、メッセージングシステム内のチャネルにメッセージを発行する例示的方法のデータ流れ図である。図４Ａでは、発行者（例えば、発行者クライアント４０２、４０４、４０６）が、図２に関して上述したメッセージングシステム１００にメッセージを発行する。例えば、発行者４０２は、接続４１１をそれぞれ確立して発行要求をＭＸノード２０２に送信する。発行者４０４は、接続４１３をそれぞれ確立して発行要求をＭＸノード２０６に送信する。発行者４０６は、接続４１５をそれぞれ確立して発行要求をＭＸノード２０４に送信する。ここでＭＸノードは、内部ネットワーク２１８を通じてメッセージングシステム１００の構成マネージャ（例えば、構成マネージャ２１４）及び１又は２以上のＱノード（例えば、Ｑノード２１２及び２０８）と通信することができる（４１７）。
【００３７】
例証として、発行者からＭＸノードへの各発行要求（例えば、ＪＳＯＮキー／値ペアにおける）は、チャネル名及びメッセージを含む。ＭＸノード（例えば、ＭＸノード２０２）は、発行要求のメッセージを発行要求のチャネル名（例えば、「ｆｏｏ」）に基づいてメッセージングシステム１００の別々のチャネルに割り当てることができる。ＭＸノードは、構成マネージャ２１４によって割り当てられたチャネルを確認することができる。チャネル（購読要求で指定）がメッセージングシステム１００にまだ存在しない場合、構成マネージャは、メッセージングシステム１００内で新しいチャネルを生成且つ維持することができる。例えば、構成マネージャは、チャネルのストリームの各アクティブストリームレットを識別するリスト、ストリームレットが存在するそれぞれのＱノード、及び上述のようなストリームレットの最初と最後のメッセージの位置の識別を維持することによって新しいチャネルを維持することができる。
【００３８】
特定のチャネルのメッセージに関して、ＭＸノードは、メッセージングシステム１００の１又は２以上のバッファ又はストリームレットにメッセージを格納することができる。例えば、ＭＸノード２０２は、発行者４０２からチャネルｆｏｏへの発行要求メッセージＭ１１、Ｍ１２、Ｍ１３、及びＭ１４を受信する。ＭＸノード２０６は、発行者４０４からチャネルｆｏｏへの発行要求メッセージＭ７８及びＭ７９を受信する。ＭＸノード２０４は、発行者４０６からチャネルｆｏｏへの発行要求メッセージＭ２６、Ｍ２７、Ｍ２８、Ｍ２９、Ｍ３０及びＭ３１を受信する。
【００３９】
ＭＸノードは、チャネルｆｏｏのためのメッセージを格納する１又は２以上のストリームレットを識別することができる。上述のように、各ＭＸノードは、ＭＸノードがチャネルｆｏｏのストリームレットにメッセージを格納するのを可能にする構成マネージャ２１４からの書込許可を要求することができる。例えば、ＭＸノード２０２は、構成マネージャ２１４からＱノード２１２上のストリームレット４１０１にメッセージＭ１１、Ｍ１２、Ｍ１３、及びＭ１４を書き込む許可を受信する。ＭＸノード２０６は、構成マネージャ２１４からストリームレット４１０１にメッセージＭ７８及びＭ７９を書き込む許可を受信する。ここでストリームレット４１０１は、チャネルｆｏｏのメッセージを格納するチャネルストリーム４３０のストリームレットのシーケンスの最後のストリームレット（この時点で）である。ストリームレット４１０１は、ストリームレット４１０１に以前に格納されたがまだ開いているチャネルｆｏｏのメッセージ（４２１）を有し、すなわち、ストリームレット４１０１は、メッセージを格納する空間をまだ有しており、且つストリームレットのＴＴＬが満了していない。
【００４０】
ＭＸノード２０２は、各メッセージがＭＸノード２０２によって受信されたそれぞれの時間に基づいてチャネルｆｏｏのためのメッセージを例えばＭ１１、Ｍ１３、Ｍ１４、Ｍ１２（４２２）のように並べ、受信したメッセージを並べられた通りにストリームレット４１０１に格納することができる。すなわち、ＭＸノード２０２は、最初にＭ１１、次に、Ｍ１３、Ｍ１４、及びＭ１２を受信する。同様に、ＭＸノード２０６は、各メッセージがＭＸノード２０６によって受信されたそれぞれの時間に基づいてチャネルｆｏｏのためのメッセージを例えばＭ７８、Ｍ７９（４２３）のように並べ、受信したメッセージを並べられた通りにストリームレット４１０１に格納することができる。チャネルのためのメッセージの他の配置又は順序付けも可能である。
【００４１】
ＭＸノード２０２（又はＭＸノード２０６）は、例えば図３Ａに関して上述したストリームレットにデータを書き込む方法を使用して受信メッセージを格納することができる。様々な実施では、ＭＸノード２０２（又はＭＸノード２０６）は、チャネルｆｏｏのための受信メッセージをバッファに（例えばローカルデータバッファに）入れて、バッファメッセージが事前に決められた数又はサイズ（例えば、１００メッセージ）に達した時に、又は事前に決められた時間（例えば、５０ミリ秒）が経過した時に、チャネルｆｏｏのストリームレット（例えば、ストリームレット４１０１）に受信メッセージを格納することができる。すなわち、ＭＸノード２０２は、ある時間に又は５０ミリ秒毎にストリームレットに１００メッセージを格納することができる。ネーグルのアルゴリズムのような他の適切なアルゴリズム及び技術もバッファメッセージを管理するために使用することができる。
【００４２】
様々な実施では、Ｑノード２１２（例えばハンドラ処理）は、チャネルｆｏｏのメッセージをＭＸノード２０２及びＭＸノード２０６によって並べられた順序でストリームレット４１０１に格納する。Ｑノード２１２は、Ｑノード２１２がメッセージを受信する順序でチャネルｆｏｏのメッセージをストリームレット４１０１に格納する。例えば、Ｑノード２１２は、最初に（ＭＸノード２０６から）メッセージＭ７８、次にメッセージＭ１１及びＭ１３（ＭＸノード２０２から）、Ｍ７９（ＭＸノード２０６から）、及びＭ１４及びＭ１２（ＭＸノード２０２から）を受信すると仮定されたい。Ｑノード２１２は、ストリームレット４１０１に以前に格納されたメッセージ４２１の直後に、受信した順序、例えば、Ｍ７８、Ｍ１１、Ｍ１３、Ｍ７９、Ｍ１４、及びＭ１２でストリームレット４１０１にメッセージを格納する。従って、複数の発行者（例えば、４０２、４０４）からチャネルｆｏｏに発行されたメッセージは、特定の順序で並べてチャネルｆｏｏのストリームレット４１０１に格納することができる。チャネルｆｏｏを購読する異なる購読者は、図４Ｂに関して詳しく説明するように同じ特定の順序でチャネルｆｏｏのメッセージを受信することになる。
【００４３】
図４Ａの例では、メッセージＭ１２がストリームレット４１０１に格納された後の時間インスタンスで、ＭＸノード２０４は、構成マネージャ２１４からチャネルｆｏｏに書き込む許可を要求する。構成マネージャ２１４は、ストリームレット４１０１が書込にまだ開いている場合にストリームレット４１０１へのメッセージの書込許可をＭＸノード２０４に提供する。ＭＸノード２０４は、各メッセージがＭＸノード２０４によって受信されたそれぞれの時間に基づいてチャネルｆｏｏのためのメッセージを例えばＭ２６、Ｍ２７、Ｍ３１、Ｍ２９、Ｍ３０、Ｍ２８（４２４）のように並べ、チャネルｆｏｏのために並べられた通りにメッセージを格納する。
【００４４】
例証として、メッセージＭ２６がストリームレット４１０１の最後の利用可能な位置に格納されると仮定されたい。ストリームレット４１０１が現在満杯であるので、Ｑノード２１２は、ＭＸノード２０４にＮＡＫメッセージ、次にＥＯＦメッセージを送信し、図３Ａに関して上述したように書込許可のためのＭＸノード２０４とのアソシエーションを閉じる。次に、ＭＸノード２０４は、チャネルｆｏｏのための追加のメッセージ（例えば、Ｍ２７、Ｍ３１など）のための構成マネージャ２１４からの別の書込許可を要求する。
【００４５】
構成マネージャ２１４は、メッセージングシステム１００の利用可能なＱノードのそれぞれの仕事量（例えばどのくらいのストリームレットが各Ｑノード上に存在しているか）をモニタすることができる。構成マネージャ２１４は、何れの所与のＱノードに対しても過負荷（例えば、ストリームレットが多すぎる又は読取又は書込許可が多すぎる）を回避できるようにＭＸノード２０４からの書込要求にストリームレットを割り当てることができる。例えば、構成マネージャ２１４は、メッセージングシステム１００の最小負荷Ｑノードを識別してＭＸノード２０４からの書込要求に対して最小負荷Ｑノードに新しいストリームレットを割り当てることができる。図４Ａの例では、構成マネージャ２１４は、Ｑノード２０８上の新しいストリームレット４１０２を割り当てて、ストリームレット４１０２へのチャネルｆｏｏの書込メッセージに対する書込許可をＭＸノード２０４に提供する。図４Ａに示すように、Ｑノードは、ＭＸノード２０４によって並べられた順序Ｍ２７、Ｍ３１、Ｍ２９，Ｍ３０、及びＭ２８で（この時点でストリームレット４１０２に対して他の同時書込許可がないと仮定して）ＭＸノード２０４からのメッセージをストリームレット４１０２に格納する。
【００４６】
構成マネージャ２１４が、ＭＸノード（例えば、ＭＸノード２０４）からのチャネル（例えば、ｆｏｏ）への書込許可の要求に対して新しいストリームレット（例えば、ストリームレット４１０２）を割り当てる時に、構成マネージャ２１４は、チャネルのストリームに既に存在する他のストリームレットのＴＴＬの後に満了することになるＴＴＬをストリームレットに割り当てる。例えば、構成マネージャ２１４は、ストリームレットを割り当てる時にチャネルｆｏｏのチャネルストリームの各ストリームレットに３分のＴＴＬを割り当てることができる。すなわち、各ストリームレットは、構成マネージャ２１４によって割り当てられた（生成された）後に３分で満了することになる。前のストリームレットが閉じた（例えば、完全に満杯になった又は満了した）後に新しいストリームレットが割り当てられるので、チャネルｆｏｏのチャネルストリームは、従って、前のストリームレットが満了した後に各々が順次満了するストリームレットを含む。例えば、図４Ａのチャネルｆｏｏの例示的チャネルストリーム４３０に示されるように、ストリームレット４０９８及び４０９８の前のストリームレットは満了している（点線の網掛けボックスによって表示）。これらの満了したストリームレットに格納されたメッセージは、チャネルｆｏｏの購読者が読み取ることはできない。ストリームレット４０９９、４１００、４１０１、及び４１０２は、アクティブのままである（満了していない）。ストリームレット４０９９、４１００、及び４１０１は、書込に対して閉じているが、読み取ることはできる。ストリームレット４１０２は、メッセージＭ２８がストリームレット４１０２に格納された時点で読み取り、且つ書き込むことができる。後の時間にストリームレット４０９９が満了し、次にストリームレット４１００、４１０１が満了することになる等々である。
【００４７】
図４Ｂは、メッセージングシステム内のチャネルを購読する例示的方法のデータ流れ図である。図４Ｂでは、購読者４８０は、メッセージングシステム１００のＭＸノード４６１との接続４６２を確立する。購読者４８２は、ＭＸノード４６１との接続４６３を確立する。購読者４８５は、メッセージングシステム１００のＭＸノード４６８との接続４６７を確立する。ここで、ＭＸノード４６１及び４６８は、内部ネットワーク２１８を通じてメッセージングシステム１００内の構成マネージャ２１４及び１又は２以上のＱノードとそれぞれ通信することができる（４６４）。
【００４８】
購読者（例えば、購読者４８０）は、接続を確立する（例えば、４６２）及びチャネルｆｏｏのメッセージを購読する要求をＭＸノード（例えば、ＭＸノード４６１）に送信することによってメッセージングシステム１００のチャネルｆｏｏを購読することができる。要求（例えば、ＪＳＯＮキー／値ペアにおける）は、チャネル名「ｆｏｏ」を含むことができる。購読要求を受信した時に、ＭＸノード４６１は、構成マネージャ２１４にチャネルｆｏｏのチャネルストリーム内のストリームレットの読取許可に対する要求を送信することができる。
【００４９】
例証として、現時点でチャネルｆｏｏのチャネルストリーム４３１が図４Ｂに示すようにアクティブストリームレット４１０２、４１０３、及び４１０４を含むと仮定されたい。ストリームレット４１０２及び４１０３は各々が満杯である。ストリームレット４１０４は、位置４７７３１に格納された最後のメッセージ（現時点で）を含むチャネルｆｏｏのメッセージを格納する。ストリームレット４１０１及び４１０１の以前のストリームレットは、このそれぞれのＴＴＬが満了しているので無効である。ストリームレット４１０１のＴＴＬが満了しているためにストリームレット４１０１はもう有効でないので、図４Ａに関して上述したストリームレット４１０１に格納されたメッセージＭ７８、Ｍ１１、Ｍ１３、Ｍ７９、Ｍ１４、Ｍ１２、及びＭ２６はチャネルｆｏｏの購読者に利用できない点に注意されたい。上述のように、チャネルｆｏｏのチャネルストリームの各ストリームレットは、３分のＴＴＬを有し、従って、現在の時間から３分以内にチャネルｆｏｏに発行された（すなわち、チャネルのストリームレットに格納された）メッセージ（チャネルｆｏｏのストリームレットに格納されたもの）だけがチャネルｆｏｏの購読者に利用可能になる。
【００５０】
例えば、購読者４８０がチャネルｆｏｏの新しい購読者である時に、ＭＸノード４６１は、チャネルｆｏｏの全ての利用可能なメッセージの読取許可を要求することができる。要求に基づいて、構成マネージャ２１４は、チャネルｆｏｏのアクティブストリームレットの最も早期のストリームレット（すなわち、アクティブストリームレットのシーケンスの第１）であるストリームレット４１０２（Ｑノード２０８上）の読取許可をＭＸノード４６１に提供する。ＭＸノード４６１は、例えば図３Ｂに関して上述したストリームレットからデータを読み取る方法を使用して、Ｑノード２０８からのストリームレット４１０２内のメッセージを取り出すことができる。ストリームレット４１０２から取り出されたメッセージは、ストリームレット４１０２に格納されたのと同じ順序を維持する点に注意されたい。しかし、ストリームレット内のメッセージの他の配置又は順序付けも可能である。様々な実施では、ストリームレット４１０２に格納されたメッセージをＭＸノード４６１に提供する時に、Ｑノード２０８は、メッセージをバッファに（例えば、ローカルデータバッファに）入れて、バッファメッセージが事前に決められた数又はサイズ（例えば、２００メッセージ）に達した又は事前に決められた時間（例えば、５０ミリ秒）が経過した時にＭＸノード４６１にメッセージを送信することができる。すなわち、Ｑノード２０８は、ある時間に又は５０ミリ秒毎に２００メッセージでチャネルｆｏｏのメッセージ（ストリームレット４１０２からの）をＭＸノード４６１に送信することができる。ネーグルのアルゴリズムのような他の適切なアルゴリズム及び技術をバッファメッセージを管理するために使用することもできる。
【００５１】
ストリームレット４１０２の最後のメッセージを受信した後で、ＭＸノード４６１は、肯定応答をＱノード２０８に送信し、構成マネージャ２１４にチャネルｆｏｏのチャネルストリームの次のストリームレットに対する別の要求（例えば、読取許可の要求）を送信することができる。要求に基づいて、構成マネージャ２１４は、チャネルｆｏｏのアクティブストリームレットのシーケンスでストリームレット４１０２に論理的に続くストリームレット４１０３（Ｑノード４７２上）の読取許可をＭＸノード４６１に提供する。ＭＸノード４６１は、例えば、ストリームレット４１０３に格納された最後のメッセージを取り出すまで図３Ｂに関して上述したストリームレットからデータを読み取る方法を使用して、ストリームレット４１０３に格納されたメッセージを取り出すことができる。ＭＸノード４６１は、次のストリームレット４１０４（Ｑノード４７４上）のメッセージに対する読取許可の別の要求を構成マネージャ２１４に送信することができる。読取許可を受信した後で、ＭＸノード４６１は、位置４７７３１の最後のメッセージまでストリームレット４１０４に格納されたチャネルｆｏｏのメッセージを取り出す。同様に、ＭＸノード４６８は、ストリームレット４１０２、４１０３、及び４１０４からメッセージを取り出して（図４Ｂに点線の矢印で図示）、メッセージを購読者４８５に提供することができる。
【００５２】
ＭＸノード４６１は、Ｑノード２０８、４７２、又は４７４からメッセージを受信すると共に購読者４８０に（接続４６２を通じて）チャネルｆｏｏの取り出されたメッセージを送信することができる。様々な実施では、ＭＸノード４６１は、ローカルバッファに取り出されたメッセージを格納することができる。従って、取り出されたメッセージは、他の購読者がチャネルｆｏｏを購読してチャネルのメッセージを要求した時に別の購読者（例えば、購読者４８２）に提供することができる。ＭＸノード４６１は、事前に決められた期間を超えた発行の時間を各々が有するローカルバッファに格納されたメッセージを取り除くことができる。例えば、ＭＸノード４６１は、３分を超える発行のそれぞれの時間を有するメッセージ（ローカルバッファに格納された）を取り除くことができる。一部の実施では、ＭＸノード４６１のローカルバッファにメッセージを維持する事前に決められた期間は、所与の時点でチャネルのストリームから取り出されたメッセージが既に満了しているそれぞれの有効期間を有するストリームレットに含まれないので、チャネルｆｏｏのチャネルストリーム内のストリームレットの有効期間と同じか又は類似とすることができる。
【００５３】
チャネルストリーム４３１から取り出されて購読者４８０に（ＭＸノード４６１によって）送信されたメッセージは、メッセージがチャネルストリームに格納されたのと同じ順序で並べられるが、メッセージの他の配置又は順序付けも可能である。例えば、チャネルｆｏｏに発行されたメッセージは、特定の順序（例えば、Ｍ２７、Ｍ３１、Ｍ２９、Ｍ３０など）で並べられてストリームレット４１０２に格納され、続いてストリームレット４１０３及びストリームレット４１０４に格納される。ＭＸノードは、チャネルストリーム４３１からメッセージを取り出して、メッセージがチャネルストリームに格納されたのと同じ順序Ｍ２７、Ｍ３１、Ｍ２９、Ｍ３０などで取り出されたメッセージを購読者４８０に提供し、次にストリームレット４１０３の順序付けられたメッセージ、及び次にストリームレット４１０４の順序付けられたメッセージが続く。
【００５４】
チャネルストリーム４３１の全ての利用可能なメッセージを取り出す代わりに、ＭＸノード４６１は、特定の位置、例えば位置４７２０２のメッセージから開始するチャネルストリーム４３１に格納されたメッセージに対する読取許可を要求することができる。例えば、位置４７２０２は、購読者４８０がチャネルｆｏｏを（例えば、メッセージングシステム１００のＭＸノード４６１又は別のＭＸノードへの接続を通して）最後に購読した時の早期のインスタンス（例えば、現在の時間の１０秒前）に対応することができる。ＭＸノード４６１は、位置４７２０２で開始するメッセージに対する読取許可の要求を構成マネージャ２１４に送信することができる。要求に基づいて、構成マネージャ２１４は、ストリームレット４１０４（Ｑノード４７４上）の読取許可及びチャネルストリーム位置４７２０２に対応するストリームレット４１０４上の位置をＭＸノード４６１に提供する。ＭＸノード４６１は、提供された位置から開始するストリームレット４１０４のメッセージを取り出して、取り出されたメッセージを購読者４８０に送信することができる。
【００５５】
図４Ａ及び４Ｂに関して上述したように、チャネルｆｏｏに発行されたメッセージは、特定の順序で並べられてチャネルのストリームレットに格納される。構成マネージャ２１４は、ストリームレットのそれぞれの有効期間を通して生成される場合のストリームレットの順序付けられたシーケンスを維持する。ＭＸノード（例えば、ＭＸノード４６１、又はＭＸノード４６８）によってストリームレットから取り出されて購読者に提供されたメッセージは、一部の実施では、メッセージがストリームレットの順序付けられたシーケンスで格納されるのと同じ順序にすることができる。従って、異なる購読者（例えば、購読者４８０、購読者４８２、又は購読者４８５）に送信されるメッセージは、購読者が接続されるＭＸノードに関わらず（メッセージがストリームレットに格納されるのと）同じ順序にすることができる。
【００５６】
様々な実施では、ストリームレットは、メッセージのブロックのセットにメッセージを格納する。各ブロックは、幾つかのメッセージを格納する。例えば、ブロックは、２００キロバイトのメッセージを格納することができる（メッセージのブロックの他のサイズも可能である）。各ブロックは、ブロックを保持するストリームレットの有効期間よりも短い可能性がある固有の有効期間を有する。ブロックのＴＴＬが満了した状態で、図４Ｃに関して以下に詳しく説明するように、ブロックを保持するストリームレットからこのブロックを廃棄することができる。
【００５７】
図４Ｃは、メッセージングシステム内のチャネルのメッセージを格納するための例示的データ構造である。図４Ａ及び４Ｂに関してチャネルｆｏｏで説明したように、現時点で、チャネルｆｏｏのチャネルストリーム４３２が図４Ｃに示すようにアクティブストリームレット４１０４及び４１０５を含むと仮定されたい。ストリームレット４１０３及び４１０３の以前のストリームレットは、このそれぞれのＴＴＬが満了しているので無効である。ストリームレット４１０４はその容量の点で既に満杯であり（例えば、対応する書込許可によって決定されるように）、追加のメッセージ書込に対しては閉じられている。ストリームレット４１０４は、メッセージを読み取ることができる。ストリームレット４１０５は開かれており、メッセージ書込及び読取に利用可能である。
【００５８】
例証として、ストリームレット４１０４（例えば、図４Ｂに示したＱノード４７４で実行されるコンピュータ処理）は、現在２ブロックのメッセージを保持する。ブロック４９４は、チャネル位置４７３０１から４７８５０のメッセージを保持する。ブロック４９５は、チャネル４７８５１から４８０００のメッセージを保持する。ストリームレット４１０５（例えば、メッセージングシステム１００の別のＱノードで実行されるコンピュータ処理）は、現在２ブロックのメッセージを保持する。ブロック４９６は、チャネル位置４８００１から４８２００のメッセージを保持する。ブロック４９７は、チャネル位置４８２０１から開始するメッセージを保持し、チャネルｆｏｏの追加のメッセージを依然として受け入れる。
【００５９】
ストリームレット４１０４が（例えば書込許可によって）生成された時に、第１のブロック（サブバッファ）４９２は、メッセージ、例えば、チャネル位置４７０１０から４７１００のメッセージを格納するために生成される。その後に、ブロック４９２がその容量に達した後で、別のブロック４９３がメッセージ、例えば、チャネル位置４７１１１から４７３００のメッセージを格納するために生成される。ブロック４９４及び４９５は、追加のメッセージを格納するために続けて生成される。その後に、ストリームレット４１０４は、追加のメッセージ書込に対して閉じられ、チャネルｆｏｏの追加のメッセージを格納するための追加のブロックを備えたストリームレット４１０５が生成される。
【００６０】
この例では、ブロック４９２及び４９３のそれぞれのＴＴＬは満了している。これらの２つのブロックに格納されたメッセージ（チャネル位置４７０１０から４７３００）は、チャネルｆｏｏの購読者によって読み取ることはできない。ストリームレット４１０４は、例えばブロック４９２及び４９３に対するメモリ空間の割り当てを解除することによって、これらの２つの満了したブロックを廃棄することができる。ブロック４９４又は４９５は満了になり、ストリームレット４１０４自体が無効になる前にストリームレット４１０４によって廃棄することができる。これに代えて、ストリームレット４１０４自体は、ブロック４９４又は４９５が満了する前に無効になることができる。従って、ストリームレットは、例えばストリームレット及びブロックのそれぞれのＴＴＬに応じて、１又は２以上のメッセージのブロックを保持できるか又はメッセージのブロックを包含しなくてもよい。
【００６１】
ストリームレット、又はメッセージングシステム１００のＱノードで実行されるコンピュータ処理は、Ｑノードからメモリ空間の一定のサイズを割り当てることによってチャネルのメッセージを格納するためのブロックを生成することができる。ストリームレットは、ある時間の１つのメッセージをメッセージングシステム１００のＭＸノードから受信し、受信したメッセージをブロックに格納することができる。これに代えて、ＭＸノードは、メッセージのグループをアセンブリし（すなわちバッファに入れ）、メッセージのグループをＱノードに送信することができる。ストリームレットは、メモリ空間のブロック（Ｑノードからの）を割り当てて、メッセージのグループをブロックに格納することができる。ＭＸノードは、例えば各メッセージから共通ヘッダを取り除くこと又は他の適切な圧縮技術を実行することによって、メッセージのグループに圧縮を行うこともできる。
【００６２】
上述のように、Ｑノード上に存在するストリームレット（データバッファ）は、メッセージングシステム１００内のチャネルのメッセージを格納する。メッセージが失われる可能性があるというＱノードの失敗（単一障害点）を回避するために、メッセージングシステム１００は、以下に詳しく説明するように複数のＱノード上にメッセージを複製することができる。
【００６３】
図５Ａは、メッセージングシステム１００のメッセージを発行及び複製する例示的方法５００のデータ流れ図である。図４Ａに関して上述したように、ＭＸノード２０４は、発行者４０６から（チャネルｆｏｏの）メッセージを受信する。構成マネージャ２１４は、ＭＸノード２０４に（例えば、書込許可によって）Ｑノード２０８上のストリームレット４１０２にメッセージを格納するように命令することができる。図５Ａでは、単一のノード（例えば、Ｑノード２０８）にメッセージを格納する代わりに、構成マネージャ２１４は、これらのＱノード上のストリームレット４１０２の複数のコピーを格納するために複数のＱノードを割り当てる。
【００６４】
例証として、構成マネージャ２１４は、ストリームレット４１０２のコピーを格納するためにメッセージングシステム１００にＱノード２０８、５０２、５０４、及び５０６を割り当てる。構成マネージャ２１４は、チャネルｆｏｏのためのメッセージ（例えば、メッセージＭ２７、Ｍ３１、Ｍ２９、Ｍ３０、及びＭ２８）をＱノード２０８に送信するようにＭＸノード２０４に命令する（５１２）。Ｑノード２０８で実行されるコンピュータ処理は、ストリームレット４１０２の第１のコピー（コピー＃１）にメッセージを格納する。メッセージを格納した後に肯定応答メッセージをＭＸノード２０４に送信する代わりに、Ｑノード２０８はＱノード５０２にメッセージを転送する（５１４）。Ｑノード５０２で実行されるコンピュータ処理は、ストリームレット４１０２の別のコピー（コピー＃２）にメッセージを格納する。一方で、Ｑノード５０２は、Ｑノード５０４にメッセージを転送する（５１６）。Ｑノード５０４で実行されるコンピュータ処理は、ストリームレット４１０２の更に別のコピー（コピー＃３）にメッセージを格納する。Ｑノード５０４は、Ｑノード５０６にメッセージを転送する（５１８）。Ｑノード５０６で実行されるコンピュータ処理は、ストリームレット４１０２の更に別のコピー（コピー＃４）にメッセージを格納する。Ｑノード５０６は、メッセージ（Ｍ２７、Ｍ３１、Ｍ２９、Ｍ３０、及びＭ２８）の全てがストリームレットコピー＃１、＃２、＃３、及び＃４に成功裏に格納されていることを示す肯定応答メッセージをＭＸノード２０４に送信することができる。
【００６５】
一部の実施では、最後のコピー（コピー＃４）の格納が成功した後に、Ｑノード５０６は、肯定応答が第１のコピー（コピー＃１）を格納するＱノード２０８に送信されるまで、肯定応答をその上流Ｑノード（５０４）に送信することができ、上流Ｑノードがその上流Ｑノード（５０２）に肯定応答を送信する等々である。Ｑノード２０８は、全てのメッセージがストリームレット４１０２（すなわち、コピー＃１、＃２、＃３及び＃４）に成功裏に格納されていることを示す肯定応答メッセージをＭＸノード２０４に送信することができる。
【００６６】
このようにして、ストリームレット４１０２の４つのコピー（及びストリームレットの各メッセージ）は、４つの異なるＱノードに格納される。ストリームレットのコピーの他の数（例えば、２、３、５、又は他の適切な数）も可能である。この例証では、４つのコピーは、コピー＃１のヘッドコピー及びコピー＃４のテールコピーを含むコピーの連鎖を形成する。新しいメッセージがストリームレット４１０２に発行された時に、メッセージは、最初にＱノード２０８上のヘッドコピー（コピー＃１）に格納される。メッセージは、次に、メッセージがＱノード５０６上のテールコピー、コピー＃４に格納されるまで、次の隣接コピー、ストレージのためのＱノード５０２上のコピー＃２、次にストレージのためのＱノード５０４上のコピー＃３に下流転送される。
【００６７】
メッセージ毎に格納及び転送することに加えて、ストリームレットのコピーを格納するＱノードで実行されるコンピュータ処理は、図４Ｃに関して上述したようにメッセージのブロック毎にメッセージを格納及び転送することができる。例えば、Ｑノード２０８上のストリームレット４１０２のコピー＃１を格納するコンピュータ処理は、例えば２００キロバイトのメッセージ（メッセージのブロックの他のサイズも可能であるが）のメモリを割り当ててブロックを格納し、ブロックメッセージがＱノード５０６上のテールコピー（コピー＃４）に格納されるまで、ストレージのための連鎖のうちの次の隣接コピー（コピー＃２）にメッセージのブロックを転送することができる。
【００６８】
ストリームレット４１０２のメッセージは、ストリームレット４１０２のコピーの１つから取り出してチャネルｆｏｏの購読者に配信することができる。図５Ｂは、メッセージングシステム１００に格納されたメッセージを取り出す例示的方法５５０のデータ流れ図である。例えば、購読者４８０は、図４Ｂに関して上述したように、チャネルのメッセージを購読する要求をＭＸノード４６１に送信することができる。構成マネージャ２１４は、ストリームレット４１０２のコピーの１つに対する読取許可をＭＸノード４６１に提供することができる。ＭＸノード４６１は、ストリームレット４１０２のコピーを格納するＱノードの１つからストリームレット４１０２のメッセージを取り出し、取り出したメッセージを購読者４８０に提供することができる。例えば、ＭＸノード４６１は、Ｑノード５０６に格納されたコピー＃４（テールコピー）からメッセージを取り出すことができる（５２２）。別の例として、ＭＸノード４６１は、Ｑノード５０２に格納されたコピー＃２からメッセージを取り出すことができる（５２４）。従って、ストリームレットの複数のコピー（例えば、ストリームレット４１０２のコピー＃１、＃２、＃３、及び＃４）は、ストリームレットのただ１つのコピーがメッセージングシステム１００に格納されている場合に複製と失敗に対する冗長性とを提供する。様々な実施では、構成マネージャ２１４は、例えば、ストリームレット４１０２のコピーを格納している他のＱノードと比較してより少ない現在の読取及び書込許可を有する特定のＱノードにＭＸノード４６１を（例えば、読取許可と共に）ダイレクトすることによってストリームレット４１０２のコピーを格納しているＱノード間の仕事量の均衡を取ることができる。
【００６９】
ストリームレットのコピーの連鎖に特定のコピーを格納しているＱノードは失敗する場合があり、例えば、特定のコピーを格納しているＱノード上のコンピュータ処理がフリーズすることがある。Ｑノードの他の失敗モードも考えられる。ＭＸノードは、失敗ノードを検知し（例えば、失敗ノードの非応答性から）、失敗ノードをメッセージングシステム１００の構成マネージャ（例えば、構成マネージャ２１４）に報告することができる。ピアＱノードも失敗Ｑノードを検知して失敗ノードを構成マネージャに報告することができる。例えば、上流Ｑノードは、下流Ｑノードが応答しない時、例えば、上述のように上流Ｑノードからのメッセージストレージ要求の肯定応答に失敗した時に、失敗下流Ｑノードを検知することができる。特定のチャネルストリームの特定のストリームレットのコピーを格納しているＱノードの失敗は、特定のストリームレット又は特定のチャネルストリームの発行又は購読動作には関係しない点に注意されたい。別のストリームレット又は別のチャネルストリームでの動作から生じる失敗は、メッセージングシステム１００のＱノードの失敗に関して構成マネージャに警告することができる。
【００７０】
ストリームレットのコピーの連鎖に特定のコピーを格納しているＱノードが失敗した時に、メッセージングシステム１００の構成マネージャは、失敗したノードを取り除くことによって又は例えば新しいコピーのための新しいノードを連鎖に挿入することによって、連鎖を修復することができる。図５Ｃ及び５Ｄは、メッセージングシステム１００のストリームレットのコピーの連鎖を修復する例示的方法のデータ流れ図である。図５Ｃでは、例えば、Ｑノード５０４が失敗したことを検知した後に、構成マネージャ２１４は、Ｑノード５０２上のストリームレット４１０２のコピー＃３に格納されるよう意図されたメッセージをＱノード５０６上のストリームレット４１０２のコピー＃４にリダイレクトすることによってコピーの連鎖を修復することができる。この例では、メッセージ（又はメッセージのブロック）は、最初にＭＸノード２０４からストリームレット４１０２のコピー＃１へのストレージのためのＱノード２０８に送信される（５７２）。次に、メッセージは、ストリームレット４１０２のコピー＃２へのストレージのためのＱノード５０２に転送される（５７４）。次に、メッセージは、ストリームレット４１０２のコピー＃４へのストレージのためのＱノード５０６に転送される（５７６）。Ｑノード５０６は、メッセージが成功裏に格納されたことを示す肯定応答メッセージを構成マネージャ２１４に送信することができる。
【００７１】
ここで、失敗ノードは、コピーの連鎖のヘッドコピー及びテールコピーを格納するノードである可能性もある。例えば、Ｑノード２０８が失敗した場合に、構成マネージャ２１４は、ストリームレット４１０２のコピー＃２へのストレージのためのＱノード５０２にメッセージを送信するように最初にＭＸノード２０４に命令することができる。次に、メッセージは、メッセージがテールコピーに格納されるまで、ストレージのための連鎖のうちの次の隣接コピーに転送される。
【００７２】
Ｑノード５０６が失敗した場合に、構成マネージャ２１４は、Ｑノード５０４上のコピー＃３が連鎖のテールコピーになるようにストリームレット４１０２のコピーの連鎖を修復することができる。メッセージは、最初にＱノード２０８上のコピー＃１に格納され、次に、続けてＱノード５０２上のコピー＃２及びＱノード５０４上のコピー＃３に格納される。次に、Ｑノード５０４は、メッセージが成功裏に格納されたことを示す肯定応答メッセージを構成マネージャ２１４に送信することができる。
【００７３】
図５Ｄでは、構成マネージャ２１４は、新しいＱノード５０８を割り当ててストリームレット４１０２のコピーの連鎖のうちのコピー＃５を格納することによって失敗ノードＱノード５０４を置き換える。この例では、構成マネージャ２１４は、メッセージ（発行者４０６からの）をストリームレット４１０２のコピー＃１へのストレージのためのＱノード２０８に送信するようにＭＸノード２０４に命令する（５８２）。次に、メッセージは、ストリームレット４１０２のコピー＃２へのストレージのためのＱノード５０２に転送される（５８４）。次に、メッセージは、ストリームレット４１０２のコピー＃５へのストレージのためのＱノード５０８に転送される（５８６）。次に、メッセージは、ストリームレット４１０２のコピー＃４へのストレージのためのＱノード５０６に転送される（５８８）。Ｑノード５０６は、メッセージが成功裏に格納されたことを示す肯定応答メッセージを構成マネージャ２１４に送信することができる。
【００７４】
図６は、各チャネルへの且つ各チャネルを通じた個々の購読者へのメッセージの配信を管理するためのリアルタイムのメッセージの選択可能フィルタリグ、サーチ、変換、問合せ、集約及び変換のアプリケーションを示すデータ流れ図６００である。例えば、スマートフォン、タブレット、及び他のインターネット接続デバイスなどのクライアントデバイス上のアプリケーションを動作するユーザは、購読者（例えば、図４Ｂの購読者４８０、図６の購読者６０２）としてふるまう。このアプリケーションは、例えば、１又は２以上の主題及び／又はチャネルに帰属する発行メッセージに頼るニュース、輸送、スポーツ、天気又は他の主題に関するリアルタイムの情報を提供するメッセージの消費者とすることができる。メッセージ発行者６０４は、例えば、ステータスデータ、トランザクションデータ又は購読に基づいて購読者６０２に利用可能になる他の情報を提供する何れかのインターネット接続サービスとすることができる。一部のバージョンでは、発行者とチャネルの関係は１：１であり、すなわち、１つと、特定のチャネルにメッセージを提供する１人の購読者とが存在する。他の事例では、関係は、多対１（１より多い発行者が１つのチャネルにメッセージを提供する）、１対多（発行者のメッセージが１つより多いチャネルに送信される）、又は多対多（１より多い発行者が１より多いチャネルにメッセージを提供する）とすることができる。一般的には、購読者が１つのチャネルを購読する時に、購読者は、発行されるとすぐにチャネルに発行された全メッセージ及び全メッセージデータを受信する。しかし、この結果、多くの購読者が、使用できるよりも多くのデータ（又は更なる処理を必要とするデータ）を受信することがある。追加のフィルタリング又はデータに対する機能のアプリケーションが、購読者アプリケーションに過度の処理要件を課し、好ましいフォーマットでのデータの提示を遅らせることがある。
【００７５】
フィルタ６０６は、例えば購読者６０２がチャネル６０８を購読する時に適切なクエリー（問合せ）命令を提供することによって生成することができる。指定されるフィルタ６０６は、チャネル６０８に発行された全メッセージ（例えば、一度に１メッセージ）に適用することができ、購読者６０２がメッセージを受信する前に評価することができる（例えば、図６のブロック２を参照）。先験的に、すなわち、チャネル６０８の購読時にデータがチャネル６０８に受信される前に、購読者６０２がクエリー命令を生成できるようにすることによって、メッセージのフィルタリング及び処理の負担はデータソースに近づき、チャネルレベルで管理することができる。この結果、メッセージは、購読者６０２に転送される前に事前フィルタリング及び／又は事前処理される。この場合も同様に、クエリー命令は、着信メッセージの形式又は内容の何れかの先験的知識に基づく必要はない。クエリー命令を用いて、例えば、リアルタイムモニタリングサービス（輸送、ヘルスケア、ニュース、スポーツ、天気など）及びダッシュボード（例えば、産業モニタリングアプリケーション、金融市場など）などのアプリケーションのデータを事前処理して、データのフィルタリング、データの要約、及び／又は異常検出を行うことができる。１又は２以上のフィルタ６０６を各チャネル６０８に適用することができる。
【００７６】
クエリー命令は、リアルタイムのサーチ及びクエリーを実施し、データを集約又は要約し、或いは、購読者アプリケーションによる使用のためにデータを変換することができる。ＪＳＯＮフォーマット化メッセージを実施するものを含む、一部の実施形態では、クエリー命令を用いてメッセージを生成、解析及び解釈することができ、事前定義方式がない（従来のＲＤＢＭＳ／ＳＱＬベースのアプリケーションとは異なって）ことは、方式又はアプリケーション層の変更を必要とすることなく、クエリー命令が、変化しているビジネスニーズに適応できることを意味する。これにより、クエリー命令をチャネル内のメッセージレベルで選択的に適用できるようになり、従って、チャネル内でメッセージをフィルタリング及び／又は集約することができる。一部の事例では、クエリーは、発行者レベルで適用することができ、これは、１人より多い発行者からのメッセージを受信するチャネルが、特定の発行者からのメッセージに対して一定のフィルタを適用することができることを意味する。クエリー命令は、将来ベースで、すなわち新しく到着するメッセージのみに対して適用することができる、及び／又は、場合によっては、クエリー命令は、チャネル待ち行列に既に存在する履歴メッセージに適用することができる。
【００７７】
クエリー命令は、ＰｕｂＳｕｂサービスの入口及び出口側の何れか又は両方で加えることができる。出口側では、クエリー命令は、メッセージチャネルに対する接続毎のフィルタとして機能を果たし、各購読者が固有のフィルタの独自のセットを管理するのを可能にする。入口側では、クエリー命令は、全発行メッセージに適用される集中化システムワイドフィルタとして動作する。
【００７８】
例証の目的であり限定ではなく、メッセージ入口の間に適用できるクエリー命令の例は以下を含む。
・メッセージを複数のチャネル又は異なるチャネルに（例えば、メッセージのジオロケーションに基づいて、又はメッセージのある値のハッシュ関数に基づいて）配信することができる。
・スパムフィルタリング又はＤｏＳ規則（例えば、発行者が所与の期間に送信できるメッセージの数を制限する）に起因してメッセージをドロップすることができる。
・何れかのチャネルに到着するある事象で管理チャネルに警報メッセージを送信することができる（例えば、ｃｐｕ＿ｔｅｍｐ＞閾値）。
【００７９】
例証の目的であり限定ではなく、メッセージ出口（ｅｇｒｅｓｓ）の際に適用できるクエリー命令の例は以下を含む。
・チャネル、ユーザがデータソースのサブセットだけに関心を持つ様々なセンサからの事象を包含する。
・単純集約、この場合、システムが、ｃｐｕ使用、センサ温度などのリアルタイム事象を報告し、デバイス報告の数又は報告頻度、例えば、ａｖｅｒａｇｅ（ｃｐｕ＿ｌｏａｄ）（（平均）（ｃｐｕ＿負荷））、ｍａｘ（ｔｅｍｐｒａｔｕｒｅ）（最大（温度））、ｃｏｕｎｔ（ｎｕｍｂｅｒ＿ｏｆ＿ｕｓｅｒｓ）（カウント（ユーザの数））、ｃｏｕｎｔ（ｎｕｍｂｅｒ＿ｏｆ＿ｕｓｅｒｓ）（カウント（メッセージの数））の国毎のグループに関係なく、短期間にわたるある形式の集約を受信することを望む。
・変換、この場合、システムがリアルタイム事象を報告し、メタデータが、大部分が静的な外部テーブルから追加され、例えば、ＩＰアドレスに基づいて都市名を追加し、広告ＩＤをマーケティングキャンペーンＩＤ又はマーケティングパートナーＩＤに変換する。
・このような値が特定のデバイスに存在しない事象ストリームにデフォルト値を追加すること。
・高度集約、この場合、システムがリアルタイム事象を報告し、何らかの大部分が静的な外部テーブルデータをリアルタイムで集約に組み合わせ、例えばパートナー毎に広告クリックを分類し事象の数をカウントする。
・ユーザ事象の数のカウント、ａ／ｂテストセル割り当て毎の分類。
【００８０】
一部の実施形態では、クエリー命令を用いて、インデックス又は他の適切な一時的データ構造を定義することができ、これらは、サーチ可能な要素としてデータ要素の再使用を可能にするためにチャネルに受信されたときにメッセージに対して適用することができる。このような場合、特定のデータ要素が参照される時間数（一般的な、又は所与の期間で）又はこの要素がどのように使用されるかを記述するために問合せ（クエリー）頻度を維持することができる。データ要素がクエリーで使用される頻度がある閾値を超えた場合、インデックスは、着信メッセージでの次の使用のために格納することができるが、インデックスが１度だけ（又はまれに）使用される他の事例では、廃棄することができる。一部の事例では、クエリー命令は、インデックスの生成の前にチャネルに到着しているメッセージに適用することができる。従って、メッセージは、クエリー命令に記述されたデータ要素に従ってインデックス化されないが、これに関わらずクエリー命令を使用して処理され、他方、インデックスの作成後に到着するメッセージは、インデックスを用いてフィルタ及び処理することができる。インデックスが作成できる時間にまたがるクエリー又は他の購読に対しては、インデックスによって受信及び処理されたメッセージにクエリー命令を適用した結果は、クエリー命令の受信前に受信されたインデックス化されていないメッセージにクエリー命令を適用した結果と組み合わせることができる。
【００８１】
例証の目的であり限定ではなく、このようなフィルタリングアプリケーションの１つの使用ケースは、都市全体の全てのバスの位置のような公共輸送データフィードを購読するマッピングアプリケーションである。発行されるメッセージは、例えば、バスの位置、ステータス、バス会社、ＩＤ番号、ルート番号、及びルート名を示す地理的データを含むことができる。事前定義されたクエリー命令がない場合、クライアントアプリケーションは、全てのバスの個々のメッセージを受信することになる。しかしながら、例えば、非作動のルート及びバスをフィルタ除去して、例えば、バス会社毎のバスのカウントを集約するクエリー命令を提供することができる。購読者アプリケーションは、リアルタイムでフィルタ処理されたバスデータを受信し、レポート、チャート及びデータの他のユーザ定義の表示を作成することができる。新しいデータがチャネルに発行されると、期間パラメータに基づいてリアルタイムでレポートを更新することができる（以下に詳しく説明）。
【００８２】
クエリー命令は、（例えば、購読者がチャネルを購読した時に）何れかの適切なフォーマット又は構文で提供することができる。例えば、以下は、フィルタを購読要求に追加することに固有のＰＤＵキーを備えたサンプル購読要求プロトコルデータユニット（ＰＤＵ）の幾つかのフィールドの構造を示している。
2020515818.tif 000004
上記の購読要求ＰＤＵでは、「ｃｈａｎｎｅｌ（チャネル）」フィールドが、購読者が購読したいチャネルの名前の値（例えば、ストリング又は他の適切な値又は宛先）とすることができる。「ｆｉｌｔｅｒ（フィルタ）」フィールドは、クエリー命令又は他の適切なフィルタコマンド、命令文、又は購読者に返すためのチャネルメッセージにおけるキー／値の種類を定義する構文を提供することができる。「ｐｅｒｉｏｄ（期間）」パラメータは、購読者に返す前のメッセージを保存するための例えば数秒の時間期間（例えば、１から６０の整数値、例えば１のデフォルト）を指定する。「ｐｅｒｉｏｄ（期間）」パラメータは、以下に詳細に論じる。購読要求ＰＤＵは、何れかの他の適切なフィールド、パラメータ、又は値を含むことができる点に留意されたい。
【００８３】
クエリー命令の１つの例は、全てのデータ要素（例えば、「ｓｅｌｅｃｔ．*」）又は選択したデータ要素（例えば、「ｓｅｌｅｃｔ．ｎａｍｅ」）”に対する最新（又は「ｔｏｐ（上位）」）値を選択する「ｓｅｌｅｃｔ（選択）」フィルタである。以下の例では、フィルタ列は、フィルタフィールドとして購読の一部としてクエリー命令で送信されたフィルタ値を示す。メッセージデータ列は、チャネルメッセージデータの入力と、出力としてクライアントに送信されたメッセージデータとを列挙している。この例では、「ｓｅｌｅｃｔ」フィルタが結果の第１レベルだけを返し、何れかの入れ子式キー値を返さない場合に、「余分の」キーの値は出力に現れない。
【表１】
2020515818.tif 000005
【００８４】
集約関数に対して、ＧＲＯＵＰ  ＢＹ文節に含まれるクエリー命令を満足する全メッセージを組み合わせることができる。集約値は、集約期間の終わりに購読者に単一のメッセージとして発行することができる。集約されるメッセージの数は、例えば、フィルタに対する期間値でチャネルに受信されるメッセージの数に依存する。例えば、期間パラメータが１に設定され、１秒で１００メッセージが受信される場合、全ての１００メッセージが、購読者への送信のために単一のメッセージに集約される。例として、以下に示すクエリー命令は、オブジェクトに対する位置データを集約するフィルタを含み、これはｏｂｊ＿ｉｄ毎に分類し、１の期間を有する。
2020515818.tif 000006
この例では、同じｏｂｊ＿ｉｄを持つ前の秒に発行された全メッセージが分類されバッチとして購読者に送信される。
【００８５】
一部の実施形態では、ＭＥＲＧＥ（*）関数を用いて、集約メッセージデータが統合される方法を変更できる。ＭＥＲＧＥ（*）関数は、ある期間にわたる着信メッセージの再帰ユニオンを返すことができる。ＭＥＲＧＥ関数は、例えば物体の位置データを追跡するために使用でき、購読者は、集約メッセージのセットに包含される全てのキー／値ペアの最新の値に関心を持つ。以下の命令文は、ＭＥＲＧＥ（*）関数の例示的構文を示す。
2020515818.tif 000007
【００８６】
以下の例は、チャネルメッセージの様々なタイプにクエリー命令内でどのようにＭＥＲＧＥ（*）関数を適用できるかを示す。以下の例では、フィルタ列が、ＦＩＬＴＥＲフィールドとして購読要求の一部としてクエリー命令に含まれるフィルタ値を示す。メッセージデータ列は、入力チャネルメッセージデータと、出力として購読者に送信された結果として得られたメッセージデータとを列挙する。フィルタは、出力メッセージデータ内の列名として識別されるストリングＭＥＲＧＥを備えた、入力メッセージで識別されるキーの最新の値を返す。以下の第１の例は、メッセージデータに対して出力における列名として入力からのキーを用いて戻されるワイルドカードを有するフィルタ内のＭＥＲＧＥ（*）関数を示す。
【表２】
2020515818.tif 000008
次の例は、ワイルドカード及びＭＥＲＧＥの値を有する「ＡＳ」命令文を用いてフィルタ内のＭＥＲＧＥ（*）関数の使用を示す。出力データは列名としてＭＥＲＧＥを含む。
【表３】
2020515818.tif 000009
【００８７】
一般的に、ＳＥＬＥＣＴ（ｅｘｐｒ）命令文だけを含む集約関数及びフィルタに対して、受信された最後のメッセージからメッセージデータの何れかのＪＳＯＮキーの最新の値だけを格納し返すことができる。従って、フィルタ命令文を満足する受信された最新のメッセージが、以前に処理されたメッセージで識別されたキー値を紛失している場合、この値は集約に含まれず、データ損失を結果として生じることがある。しかしながら、ＭＥＲＧＥ（*）関数を含むフィルタは、メッセージに現れる全てのキーに対する最新の値を、制限されないＪＳＯＮオブジェクト深度に保持することができる。従って、全てのキー値の最新バージョンを集約に保持することができる。
【００８８】
ＭＥＲＧＥ（*）関数を用いて、集約期間中に何れかのメッセージに現れる全てのキーの関連付けられる値が最終集約メッセージにも現れることを保証できる。例えば、チャネルは、３次元、ｘ、ｙ、及びｚの物体の物理的位置を追跡することができる。１秒の集約期間中、２つのメッセージがチャネルに発行され、１つが２つのパラメータ、ＯＢＪ｛ｘ：１、ｙ：２、ｚ：３｝及びＯＢＪ｛ｘ：２、ｙ：３｝だけを有する。第２のメッセージでは、ｚ値が変化せず、第２メッセージに含まれなかった。ＭＥＲＧＥ（*）関数なしでは、出力結果はＯＢＪ｛ｘ：２、ｙ：３｝になる。ｚ値が集約期間の最後のメッセージに存在しなかったので、ｚ値は最終集約に含まれなかった。しかしながら、ＭＥＲＧＥ（*）関数によって、結果はＯＢＪ｛ｘ：２、ｙ：３、ｚ：３｝である。
【００８９】
以下の表は、データのタイプに応じてメッセージ内のデータを集約するために用いることができる規則の１つのセットを示す。アレイに対して、要素を統合する必要はないが、代わりにＪＳＯＮ値を、受信された最後のアレイ値との集約でアレイに対して上書きすることができる。
【表４】
2020515818.tif 000010
【００９０】
クエリー命令は、１又は２以上の適切なフィルタコマンド、命令文、関数、又は構文から構成することができる。例証の目的であり限定ではなく、ＳＥＬＥＣＴ及びＭＥＲＧＥ関数に加えて、クエリー命令は、例えば、ABS(expr)、 AVG(expr)、COALESCE(a[, b…])、CONCAT(a[, b…])、COUNT(expr), COUNT_DISTINCT(expr)、 IFNULL(expr1, expr2)、 JSON(expr)、MIN(expr[, expr1,…])、 MAX(expr[, expr1,…])、SUBSTR(expr, expr1[, expr2])、SUM(expr)、 MD5(expr)、 SHA1(expr)、FIRST_VALUE(expr) OVER (ORDER BY expr1)、及び／又は LAST_VALUE(expr) OVER (ORDER BY expr1)などのフィルタ命令文又は関数を含むことができ、ここで「ｅｘｐｒ」は、例えばＳＱＬ又はＳＱＬのような式などのフィルタ命令文又は関数によって処理することができる何れかの適切な式とすることができる。他の適切なフィルタコマンド、命令文、関数、又は構文も、クエリー命令に対して実施可能である。
【００９１】
本発明により、フィルタ処理されていないクエリーは、何れかのＪＳＯＮ又は他の同様の処理なしに購読者へのメッセージの即時複製に翻訳することができる。ＳＥＬＥＣＴフィルタコマンド（集約なし）を含むクエリーは、即時フィルタに翻訳することができる。メッセージがＪＳＯＮを用いてフォーマット化される事例では、各メッセージを個々に構文解析することができ、何れのＷＨＥＲＥ文節も、インデックス又は他の一時的データ構造を生成する必要なく、到着した個々のメッセージに直接実行することができる。メッセージがＷＨＥＲＥ文節フィルタをパスした場合、ＳＥＬＥＣＴ文節は、オリジナルフォーマット又は構造（例、ＪＳＯＮ）に変換し購読者に送信できるフィルタ化メッセージを結果として生じる。
【００９２】
例えば、ＣＯＵＮＴ（）、ＳＵＭ（）、ＡＶＧ（）などの集約関数は即時アグリゲータに翻訳することができる。メッセージがＪＳＯＮを用いてフォーマット化される事例では、各メッセージを個々に解析することができ、インデックス又は他の一時的データ構造を生成する必要なく到着した個々のメッセージに直接何れかのＷＨＥＲＥ文節を実行することができる。ＷＨＥＲＥ文節が評価された場合、このような基準をパスするメッセージが、前の累積値及び個々のメッセージからの値を用いて集約される（例えば、ＳＥＬＥＣＴ文節の集約が実行され、これによってＣＯＵＮＴ、ＳＵＭ、ＡＶＧなどを累積する）。１つの集約期間につき一度（例えば１秒毎に）、集約がコンピュータ計算され（例えば、ＡＶＧ＝ＳＵＭ／ＣＯＵＮＴ）、ＳＥＬＥＣＴ文節が、オリジナルフォーマット又は構造（例えば、ＪＳＯＮ）に変換され購読者に送信される集約メッセージを出力する。
【００９３】
例えば、ＧＲＯＵＰ  ＢＹ、ＪＯＩＮ、ＨＡＶＩＮＧなどのより複雑な集約関数は、ハッシュテーブルアグリゲータに翻訳することができる。一定のメモリを使用することができるＳＥＬＥＣＴ又は他の同様の関数とは異なり、線形的に拡張するメモリ要件が、ＧＲＯＵＰ  ＢＹ文節の結果に依存することがある。大体、固有の値（例えば、ＳＳＮなど）毎の分類は、各個々のメッセージに対するグループを結果として生じることができるが、多くの場合、共通データ要素毎の分類（例えば、ｕｓｅｒ＿ｉｄ又は他の繰り返し値）は、かなり少ないグループを結果として生じることがある。特に、各メッセージは、（例えば、ＪＳＯＮフォーマットから）解析される。ＷＨＥＲＥ文節は、インデックス又は他の時間構造を生成することなく、到着した個々のメッセージに直接実行することができる。ＷＨＥＲ文節が満足された場合、ＧＲＯＵＰ  ＢＹ式を直接コンピュータ計算することができ、これを用いてグループのハッシュキーを組み立てることができる。ＳＥＬＥＣＴ文節における集約関数を実行することができ、ハッシュキー（グループ）に固有の以前の累積値及び個々のメッセージからの値を用いて、ＣＯＵＮＴ、ＳＵＭ、ＡＶＧ、又は他の関数を累積する。１つの集約期間につき一度（例えば、１秒毎に）、集約が各ハッシュキー（グループ）に対してコンピュータ計算され（例えば、ＡＶＧ＝ＳＵＭ／ＣＯＵＮＴ）、ＳＥＬＥＣＴ文節が、オリジナルフォーマット又は構造（例えば、ＪＳＯＮ）に変換され購読者に送信される各ハッシュキーに対する集約メッセージ（例えば、１つのハッシュキー（グループ）につき１メッセージ）を出力することができる。
【００９４】
集約期間が制限され（例えば、１秒−６０秒）且つネットワークカード又は他のハードウエア／スループット速度が制限される（例えば、１０／ｇｂｐｓ）実施形態では、全体的な最大メモリ消費を、時間*速度（例えば、１秒につき１ＧＢ、又は１分につき６０ＧＢ）として計算することができる。従って、上限は、購読者の数とは関係がない。一定の実施構成では、一度だけ（例えば、複数のフィルタが複数のクライアントによって設定される場合）、且つクエリー命令に基づいて必要な場合のみ、エンプティフィルタがメッセージの解析を必要としない時に各メッセージを解析する必要がある。
【００９５】
図７Ａを参照すると、購読は、一般的には例えば秒で定義された「期間」パラメータを含むことができ、一部の実施形態では、１から６０秒に及ぶことができるが、他の時間増分及び時間範囲も可能である。期間パラメータは、純粋に順次的（例えば、序数）及び／又は時間ベース（例えば、時間）とすることができ、自己記述データに含むことができるので、クエリー、集約及び同様のものに利用可能である。例えば図７Ａは、１秒の期間を有する最初の３秒間の本発明によるフィルタ処理を示す。この例では、購読は、ｔ＝０から始まる。クエリー命令から作成されたフィルタは、各１秒期間中に受信された全メッセージ（例えば、一度に１つのメッセージ）に対して適用される。各期間の結果はバッチ処理され、購読者に転送される。使用されたクエリー命令に応じて、メッセージデータが購読者に送信される前に以前論じた集約関数を用いてメッセージを集約することができる。
【００９６】
場合によっては、処理は、クエリー命令を満足させる新しい着信メッセージのみを購読者に送信することをデフォルトにする。しかしながら、購読者は、履歴付きで購読し、フィルタを使用して、購読者に送信された第１メッセージ又は複数のメッセージが、フィルタを適用された履歴メッセージになるようにすることができる。ｍａｘ＿ａｇｅの期間及び／又は「ｎｅｘｔ」パラメータを使用することで、履歴メッセージの取り出し及びフィルタリングを可能にする追加の機能を提供する。
【００９７】
より詳細には、クエリー命令と共に含まれるｍａｘ＿ａｇｅパラメータは、このパラメータを満足させる履歴メッセージの取り出しを容易にすることができる。図７Ｂは、クエリー命令に提供される２秒のｍａｘ＿ａｇｅパラメータ（１秒の期間を有する）の例を示す。クエリー命令から生成されたフィルタが、ｔ−２からｔ＝０に到着したチャネルからの履歴メッセージ（ｔ＝０は購読を開始した時間である）に及び第１期間（ｔ＝０からｔ＋１）に到着したメッセージに適用される。これらのメッセージは、単一のバッチで購読者に（グループ１として）送信することができる。フィルタは、各後続の期間（例えば、グループ２としてのｔ＋１からｔ＋２）に適用され、この期間内のクエリー命令を満足する全てのメッセージをバッチ処理する。各バッチは、次に購読者に転送される。
【００９８】
購読者がフィルタを有するチャネルの「次」パラメータを購読した時に、チャネルの次の値から現在のメッセージストリーム位置までの全てのメッセージにフィルタを適用することができ、結果を、例えば単一のバッチで購読者に送信することができる。例えば、図７Ｃに示すように、次のパラメータに、クエリー命令（１秒の期間）が含まれる。次のパラメータは、クエリー命令から作成されたフィルタを「次の位置」から現在のストリーム位置（例えば、ｔ＝０まで）の各メッセージに且つ第１期間（ｔ＝０からｔ＋１）に到着したメッセージに適用する処理を指示する。これらのメッセージは、単一のバッチで購読者に（グループ１として）送信することができる。フィルタは、各後続の期間（例えば、グループ２としてのｔ＋１からｔ＋２）の各メッセージに適用され、この期間内のクエリー命令を満たす全メッセージをバッチ処理する。各バッチは次に、購読者に転送される。
【００９９】
購読者が次のパラメータを購読し、チャネル上の履歴メッセージの受信を選び、且つ購読にフィルタを含む時に、購読者は、複数のバッチ内の現在のメッセージストリーム位置に更新することができる。図７Ｄは、クエリー命令の１つのセットに組み合わせることができる２秒のｍａｘ＿ａｇｅパラメータ（１秒の期間を持つ）及び次のパラメータの例を示す。クエリー命令から生成されたフィルタは、履歴の終わりから購読の「次の」値までに到着したチャネルからの履歴メッセージ（すなわち、次の値の前の２秒から次の値まで）に、次の値から現在のストリーム位置までのメッセージ（例えば、最大ｔ＝０）に、且つ第１期間（ｔ＝０からｔ＋１）に到着したメッセージに適用される。これらのメッセージは、単一のバッチで購読者に（グループ１として）送信することができる。フィルタは、各後続の期間の各メッセージ（例えば、グループ２としてのｔ＋１からｔ＋２）に適用され、この期間内のクエリー命令を満足する全メッセージをバッチ処理する。次に各バッチは購読者に転送される。この結果、履歴メッセージを、特定の期間指示子に始まるメッセージと組み合わせて購読者への送信のためにバッチ処理することができる。
【０１００】
クエリー命令は、１又は２以上のフィルタが何れかの適切な方式で着信メッセージに適用される方法を定義することができる。例えば、結果として生じるフィルタは、各期間に到着した何れかの又は全てのメッセージに、複数の期間にわたって到着した何れかの又は全てのメッセージに、選択期間に到着した何れかの又は全てのメッセージに、又は連続又はほぼ連続ベースで到着した何れかの又は全てのメッセージに（すなわち、購読者にメッセージを返す前にメッセージが保存されないような期間パラメータを使用することなく）適用することができる。このようなフィルタ処理されたメッセージは、何れかの適切な方式でバッチ処理するか、又は個々に（例えば、一度に１つのメッセージ）購読者に送信することができる。詳細には、フィルタ処理されたメッセージは、何れかの適切なフォーマット又は構文で購読者に送信することができる。例えば、以下は、フィルタ要求からのメッセージ結果を包含するサンプルチャネルＰＤＵの幾つかのフィールドの構造を示す。
2020515818.tif 000011
上記のチャネルＰＤＵでは、「ｃｈａｎｎｅｌ（チャネル）」フィールドは、購読者が購読しているチャネル名の値（例えば、ストリング又は他の適切な値又は宛先）とすることができる。「ｎｅｘｔ（次）」フィールドは、チャネルＰＤＵで戻されたメッセージのバッチのチャネルストリーム位置を提供することができる。「ｍｅｓｓａｇｅｓ（メッセージ）」フィールドは、指定されたフィルタのアプリケーションから生じたメッセージのチャネルデータを提供する。１又は２以上のメッセージは、このようなチャネルＰＤＵの「ｍｅｓｓａｇｅｓ（メッセージ）」フィールドで返すことができる。チャネルＰＤＵは、何れかの他の適切なフィールド、パラメータ、値、又はデータを含むことができることに留意されたい。
【０１０１】
図８は、組織エンティティに関連付けることができる資産を管理及び追跡するために使用できる例示的システムアーキテクチャ８００の図である。このシステムアーキテクチャ８００は、資産管理構成要素８１０、メッセージングシステム８２０、クライアントデバイス８３０、及び資産８４０を含む。１実施形態では、システムアーキテクチャ８００は、組織エンティティによって動作することができる。組織エンティティは、会社、政府機関（例えば、市役所、州政府など）、又は地理的エリアにおける資産８４０を追跡及び管理することを意図することができる他の何らかの組織とすることができる。管理者、監督者、マネージャ、検査者、又は地理的エリアにおける資産８４０を追跡且つ管理することを意図することができる組織エンティティの他の同様のユーザを、本明細書では管理者又は管理ユーザと呼ぶことができる。
【０１０２】
１実施形態では、資産８４０を、組織エンティティに関連付けることができる人又は物理的対象とすることができる。例えば、資産は、会社又は企業の従業員とすることができる。別の例では、資産は、都市の１又は２以上のルートに沿った公共輸送を提供するバスとすることができる。資産８４０は、資産８４０が組織エンティティによって所有され、組織エンティティによって使用され、組織エンティティによって動作され、組織エンティティに対して機能し、又は地理的エンティティに関連付けられる地理的エリアに位置付けられる場合、組織エンティティに関連付けることができる。例えば、会社又は企業は、従業員を運ぶためにシャトルバスを購入する場合がある。別の例では、駐車場が都市の境界又は境目に位置付けられることがある。１実施形態では、資産８４０が物理的対象である時に資産８４０がオペレータを有する場合がある。例えば、バス（例えば、資産８４０）がバスドライバー（例えば、オペレータ）を有することがある。別の例では、駐車場（例えば、資産８４０）が、駐車場を所有する又は動作する駐車場係員又は人（例えば、オペレータ）を有することがある。資産８４０のオペレータを本明細書ではオペレータと呼ぶ。
【０１０３】
１実施形態では、資産８４０は輸送資産とすることができる。輸送資産は、地理的エリアの公共輸送又は私的輸送サービスを提供することができる物理的対象とすることができる。輸送資産の例は、限定されないが、車、バス、長距離バス、タクシー、客車、通勤列車、フェリー、信号機、相乗り車両、街路灯、駐車スペース、駐車メータ、駐車ガレージ、駐車場、道路工事、交通標識、防犯カメラ、トロリーバス、小型レール、路面電車、地下鉄、高速輸送、ロープウェイ、原動機付き軽三輪車、スクールバス、郵便サービス車両、緊急対応車両（例えば、パトカー、救急車、消防車）、空中ドローン、自律車両などを含むことができる。
【０１０４】
各資産８４０は、資産構成要素８４１を含むことができる。１実施形態では、資産構成要素８４１は、コンピュータデバイス（例えば、スマートフォン、タブレット又はラップトップコンピュータ、ＰＤＡなど）を含むことができ、又は資産８４０に位置付けられた１又は２以上のコンピュータデバイスで実行されるソフトウエア構成要素（例えば、アプリケーション、ソフトウエア、ａｐｐ、ソフトウエアサービス）を含むことができる。例えば、資産構成要素８４１は、スマートフォンとすることができ、又はスマートフォンで実行されるアプリケーションとすることができる。資産構成要素８４１は、様々なグラフィカルユーザインタフェース（ＧＵＩ）を資産８４０のオペレータに提示又は表示することができる。例えば、資産構成要素８４１は、マップ上にルートを表示する、乗客が待っている地理的位置などを表示する、その他を行うことができるＧＵＩを表示するａｐｐ（アプリ）とすることができる。資産構成要素８４１によって提供、提示、又は表示されるＧＵＩは、本明細書ではオペレータＧＵＩと呼ぶことができる。資産構成要素８４１は、無線周波数識別（ＲＦＩＤ）センサ、デバイス、スキャナ又は読取装置、物のインターネット（ＩｏＴ）センサ又はデバイス、バーコードスキャナ又は読取装置、カード読取装置、全地球測位システム（ＧＰＳ）受信機又は資産８４０のライブ位置などを決定することができる他の適切なデバイスなどの他の種類のデバイスを含むこともできる。
【０１０５】
１実施形態では、資産構成要素８４１は、チャネル８２１Ａから８２１Ｚの１又は２以上に１又は２以上のメッセージを発行することができる。これは、資産構成要素８４１がシステムアーキテクチャ８００の様々な他の構成要素又は部分にメッセージを発行するのを可能にすることができる。例えば、これは、資産構成要素８４１が資産管理構成要素８１０に、他の資産８４０に、又はクライアント構成要素８３１にメッセージを発行するのを可能にすることができる。別の実施形態では、資産構成要素８４１は、チャネル８２１Ａから８２１Ｚの１又は２以上を購読することもできる。これは、資産構成要素８４１がシステムアーキテクチャ８００の様々な他の構成要素又は部分からメッセージを受信するのを可能にすることができる。例えば、これは、資産構成要素８４１が、資産管理構成要素８１０から、他の資産８４０又は資産構成要素８４１から、又はクライアント構成要素８３１からメッセージを受信するのを可能にすることができる。
【０１０６】
一部の実施形態では、１又は２以上の資産８４０をそれぞれの資産８４０を使用するための価格又は料金（例えば、時間にかかる費用）に関連付けることができる。例えば、バス（例えば、資産８４０）を、ルートに沿ってバスが移動する時のバスに乗るための価格に関連付けることができる。別の例では、駐車スペース（例えば、資産８４０）に、駐車スペースに駐車するための価格又は料金を関連付けることができる。以下に詳細に論じるように、１又は２以上の資産８４０に関連付けられる価格又は料金を資産管理構成要素８１０によって変更又は更新することができる。資産８４０は、複数の価格又は料金に関連付けることもできる。例えば、駐車スペースは、勤務時間中の第１価格及び勤務時間後の第２価格を有することができる。
【０１０７】
１実施形態では、クライアントデバイス８３０は、資産８４０の１又は２以上を利用又は使用することができるユーザのコンピュータ又は電子デバイスとすることができる。ユーザは、資産８４０に対する条件、適時性、待ち時間などを知ることを要求できる。コンピュータ又は電子デバイスの例は、スマートフォン、携帯情報端末（ＰＤＡ）、タブレットコンピュータ、ラップトップコンピュータ、デスクトップコンピュータ、ゲームコンソール、セルラーフォン、媒体プレーヤなどを含むことができる。各クライアントデバイス８３０はクライアント構成要素８３１を含む。１実施形態では、クライアント構成要素８３１は、クライアントデバイス８３０で実行されるソフトウエア構成要素を含むことができる。例えば、クライアント構成要素８３１は、クライアントデバイス８３０で実行されるアプリケーション、ソフトウエア、ａｐｐ、ソフトウエアサービスなどとすることができる。クライアント構成要素８３０は、クライアントデバイス８３０のユーザに様々なグラフィカルユーザインタフェース（ＧＵＩ）を提供、提示、又は表示することができる。例えば、クライアント構成要素８３１は、マップ、テーブル、チャート、テキスト、画像などを含むＧＵＩを表示するａｐｐ（アプリケーション）とすることができる。別の例では、クライアント構成要素８３１は、クライアントデバイス８３０で実行されるウェブブラウザとすることができる。クライアント構成要素８３１によって提供、提示、又は表示されるＧＵＩを本明細書ではユーザＧＵＩと呼ぶことができる。
【０１０８】
１実施形態では、クライアント構成要素８３１は、チャネル８２１Ａから８２１Ｚの１又は２以上に１又は２以上のメッセージを発行することができる。これは、クライアント構成要素８３１がシステムアーキテクチャの様々な他の構成要素又は部分にメッセージを発行するのを可能にすることができる。例えば、これは、クライアント構成要素８３１が資産管理構成要素８１０に、１又は２以上の資産８４０に、又は他のクライアント構成要素８３１にメッセージを発行するのを可能にすることができる。別の実施形態では、クライアント構成要素８３１は、チャネル８２１Ａから８２１Ｚの１又は２以上を購読することもできる。これは、クライアント構成要素８３１がシステムアーキテクチャ８００の様々な他の構成要素又は部分からメッセージを受信するのを可能にすることができる。例えば、これは、クライアント構成要素８３１が、資産管理構成要素８１０から、資産８４０又は資産構成要素８４１から、又は他のクライアント構成要素８３１からメッセージを受信するのを可能にすることができる。クライアント構成要素８３１は以下に詳細に論じる。
【０１０９】
１実施形態では、メッセージングシステム８２０は、図１Ａから５Ｄに関して上述したように、ＰｕｂＳｕｂ通信パターンをサポートすることができる。メッセージングシステム８２０は、ＰｕｂＳｕｂシステム又はＰｕｂＳｕｂメッセージングシステムと呼ぶことができる。メッセージングシステム８２０は、例えば、チャネル８２１Ａから８２１Ｚなどの何れかの適切な数のチャネルを含むか又はそうでなければサポートすることができる。チャネル８２１Ａから８２１Ｚ（例えば、チャネルストリーム）に発行されたメッセージは、図１Ａから５Ｄに関して上述したように、メッセージングシステム８２０のＱノード内に格納することができるストリームレットに分割することができる。メッセージングシステム８２０のＣノードを用いて、１又は２以上のＱノードからのデータ転送をオフロードする（例えば、Ｑノードに格納されたストリームレットの一部をキャッシュに入れる）ことができる。クライアントデバイス８３０及び資産８４０は、１又は２以上のＭＸノードとのそれぞれの永続性接続（例えば、ＴＣＰ接続など）を確立することができる。１又は２以上のＭＸノードは、図１Ａから５Ｄに関して前述したようにこれらの接続に対する終端ポイントとして機能することができる。構成マネージャ（図２に図示）は、ユーザ（例えば、クライアント構成要素８３１）及び資産（例えば、資産構成要素８４１）がチャネルを購読及びチャネルに発行するのを可能にすることができる。例えば、構成マネージャは、ユーザがチャネルへの発行を許可されるかどうか決定するためにユーザを認証することができる。別の例では、構成マネージャは、車両がチャネルの購読を許可されるかどうか決定するために車両を認証することができる。
【０１１０】
１実施形態では、チャネル８２１Ａから８２１Ｚを介して発行又は受信されたメッセージは、資産８４０に関連付けられる情報又はデータを含むことができる。例えば、メッセージは、ライブの地理的位置、ステータス、尺度又は他の性能に関する情報、利用料金、又は資産８４０の他の同様の情報又はデータ又は資産８４０に関する他の同様の情報又はデータを含むことができる。各メッセージは、メッセージに関連付けられるチャネルのためのそれぞれのバッファに格納することができる。それぞれのバッファのメッセージは、上述のように順序に従って格納することができる。例えば、バッファのメッセージは、メッセージがそれぞれのチャネルに発行された順序で格納することができる。各バッファは、上述のようにバッファがそれぞれのチャネルに割り当てられた時に基づいて満了時間を有することができる。メッセージングシステム８２０は、満了していないチャネルに割り当てられた１又は２以上のバッファから特定のチャネルへのメッセージを順序に従って取り出すことができる。
【０１１１】
１実施形態では、資産管理構成要素８１０は、１又は２以上のコンピュータデバイス（例えば、１又は２以上のサーバコンピュータ）を含むことができ、又は１又は２以上のコンピュータデバイスで実行されるソフトウエア構成要素を含むことができる。例えば、資産管理構成要素８１０は、１又は２以上のサーバコンピュータで実行されるか又はこの間に分散されるアプリケーションとすることができる。図８に示すように、資産管理構成要素８１０は、例えば、認証構成要素８１１、ビデオ構成要素８１２、ルーティング構成要素８１３、価格設定構成要素８１４、モニタリング構成要素８１５、通信構成要素８１６、ユーザインタフェース構成要素８１７、及びフィルタリング構成要素８１７を含むことができる。
【０１１２】
１実施形態では、資産管理構成要素８１０は、管理者が組織エンティティに関連付けられる資産８４０を管理、追跡、利用、及び制御すること、並びにこれと通信することを可能にすることができる。例えば、資産管理構成要素８１０は、管理者又はユーザが、資産８４０のライブ地理的位置又は資産８４０に関する他の適切な情報を閲覧するのを可能にすることができる。別の例では、資産管理構成要素８１０は、管理者ユーザが資産８４０の利用料金を閲覧するのを可能にすることができる。更に他の例では、資産管理構成要素８１０は、管理者が資産８４０の価格設定を制御するのを可能にすることができる。別の例では、資産管理構成要素８１０は、管理者又はユーザが資産８４０の性能メトリクスを決定するのを可能にすることができる。更に他の例では、資産構成要素８１０は、管理者が資産８４０の状態又はステータスを閲覧する（例えば、バスのガスタンクのレベルを見る、バスの１又は２以上のタイヤのタイヤ圧力を見る、バスのタイヤがパンクしていると決定するなど）を可能にすることができる。一般的に、資産管理構成要素８１０は、ユーザが、管理、収集、追跡などができる資産８４０に関する何れの種類の情報又はデータも見るのを可能にすることができる。例えば、資産管理構成要素８１０は、各資産に関する様々な尺度、統計値、性能情報などを表示、提示、又は提供することができる。１実施形態では、資産管理構成要素８１０は、単一の管理者（例えば、１人）が地理的なエリア内の資産８４０の全てをモニタ、制御、且つ管理するのを可能にすることができる。例えば、資産管理構成要素８１０は、一人の人が、都市（又は他の地理的エリア）内の輸送資産の全てをモニタ、制御、及び管理するのを可能にすることができる。
【０１１３】
１実施形態では、資産管理構成要素８１０は、管理者が、システムアーキテクチャ８００に１又は２以上の資産８４０を追加するか又はシステムアーキテクチャ８００から１又は２以上の資産８４０を取り除くのを可能にすることができる。例えば、資産管理構成要素８１０は、管理者がシステムアーキテクチャ８００にバスを追加するのを可能にすることができる。別の例では、資産管理構成要素８１０は、ユーザがシステムアーキテクチャ８００からシャトルを取り除くのを可能にすることができる。資産管理構成要素８１０は、管理者が資産８４０に対する識別情報（例えば、シリアルナンバー、車の製造又はモデルナンバーなど）を提供するのを可能にできる１又は２以上の管理者ＧＵＩを提供することができる。資産管理構成要素８１０は、管理者が資産８４０の使用の価格を指示できるようにする。資産管理構成要素８１０は、ユーザが資産８４０に関連付けられる様々な他の情報又はデータを提供するのを可能にすることができる。
【０１１４】
１実施形態では、資産管理構成要素８１０は、管理者が資産８４０の１又は２以上のオペレータを追加する、資産８４０の１又は２以上のオペレータを取り除く、及び異なるオペレータを異なる資産８４０に関連付けるのを可能にすることができる。例えば、資産管理構成要素８１０は、バスのドライバーを１人の人から別の人に変更することができる。別の例では、資産管理構成要素８１０は、管理者が、異なるバス又はシャトルの運転に割り当てることができる新しいドライバーをシステムアーキテクチャ８００に追加するのを可能にすることができる。資産管理構成要素８１０は、オペレータを追加する、取り除く、又は異なる資産８４０に関連付ける（例えば、オペレータを異なる資産８４０に割り当てる）のを可能にできる１又は２以上の管理者ＧＵＩを提供することができる。
【０１１５】
１実施形態では、資産管理構成要素８１０は、管理者が、追跡、収集又は管理しなくてはならないデータ、情報、統計値、又は性能メトリクスの種類及び量を指定又は指示するのを可能にすることができる。例えば、資産管理構成要素８１０は、資産８４０が毎秒、又は２秒毎にライブの地理的位置を提供しなければならないことをユーザが指示するのを可能にすることができる。別の例では、資産管理構成要素８１０は、資産８４０が資産の燃料消費又は燃料効率に関してではなくその速度に関する情報を提供しなければならないことを管理者が指示するのを可能にすることができる。資産管理構成要素８１０は、追跡、収集又は管理しなければならないデータ、情報、統計値、又は性能メトリクスの種類及び量を管理者が指定又は指示するのを可能にできる１又は２以上の管理者ＧＵＩを提供することができる。
【０１１６】
１実施形態では、資産管理構成要素８１０は、管理者が、異なる資産８４０のための移動ルートを追加、取り除く、又は変更するのを可能にすることができる。例えば、資産管理構成要素８１０は、管理者がシステムアーキテクチャ８００に新しいルートを追加するのを可能にすることができる。資産管理構成要素８１０は、管理者が、移動ルートの停止地点（例えば、バスなどの資産８４０が乗客を乗せるために移動ルートに沿って停止しなければならない地理的位置）を指示するのを可能にすることができる。別の例では、資産管理構成要素８１０は、管理者がシステムアーキテクチャからバスルートを取り除くのを可能にすることができる。更に他の例では、資産管理構成要素８１０は、管理者が移動ルートを修正又は変更するのを可能にすることができる。例えば、資産管理構成要素８１０は、管理者が移動ルートに停止地点を追加する、移動ルートの停止地点を動かす、移動ルートの停止地点を取り除く、移動ルートで使用される道路又は高速道路を変更する、移動ルートの距離又は長さを変更することなどを可能にすることができる。資産管理構成要素８１０は、管理者が移動ルートに異なる資産８４０を関連付けるのを可能にすることができる。例えば、資産管理構成要素８１０は、管理者が第１バスを１日の移動ルートに関連付ける、及び第２バスを次の日の同じ移動ルートに関連付ける（例えば、第２バスを次の日の移動ルートに再割り当てする）のを可能にすることができる。資産管理構成要素８１０は、管理者が異なる資産８４０の移動ルートを追加、除く、又は変更するのを可能にできる１又は２以上の管理者ＧＵＩを提供することができる。
【０１１７】
１実施形態では、モニタリング構成要素８１５は、資産管理構成要素８１０が資産８４０の地理的位置及び移動を追跡するのを可能にすることができる。例えば、モニタリング構成要素８１５は、メッセージングシステム８２０のチャネルを介して郵便サービス車両（例えば、資産８４０）からメッセージを受信することができ、郵便サービス車両は、その現在の地理的位置に関するメッセージを発行する。モニタリング構成要素８１５は、車両によって（又は車両に代わって）発行されたメッセージに基づいて郵便サービス車両の地理的位置を決定し且つ郵便サービス車両の動きを追跡することができる。
【０１１８】
１実施形態では、ルーティング構成要素８１３が、資産８４０に対する到着時間のライブ予測又は推定を決定することができる。例えば、クライアントデバイス８３０又はユーザがシャトルの現在のステータス又は地理的位置の閲覧を要求した時、ルーティング構成要素８１３は、シャトルが一定の時間にユーザの位置に到着するライブ予測を提供することができる。別の実施形態では、ルーティング構成要素８１３は、資産８４０の出発時間のライブ予測又は推定を決定することもできる。例えば、ルーティング構成要素８１３は、資産８４０の地理的位置（例えば、ＧＰＳ座標）を示す資産８４０によって発行されたメッセージを分析することができる。ルーティング構成要素８１３は、資産８４０がルートに沿った停止地点に以前滞在した時間を決定することができる。ルーティング構成要素８１３は、資産８４０が停止地点に以前滞在した時間に基づいて停止地点からの推定出発時間を推定することができる。
【０１１９】
１実施形態では、ルーティング構成要素８１３は、資産８４０の複数のトリップモデルを生成するために事前に決められた期間にわたって資産８４０によって取られた以前のトリップの履歴を分析することができる。例えば、ルーティング構成要素８１３は、地理的エリアにおける資産８４０によって移動された最後の幾つかのトリップ又はルートを分析することができる。ルーティング構成要素８１３は、資産８４０の速度、速度の変化、信号又は交通信号などで待つ時間などを分析することができる。この分析に基づいて、ルーティング構成要素８１３は、以下に詳細に論じるように、複数のトリップモデルを生成することができる。このトリップモデルを用いて、以下に詳細に論じるように資産８４０の到着時間を予測又は推定することができる。例えば、ルーティング構成要素８１３は、資産８４０の現在のルート又はトリップを分析することができる。ルーティング構成要素８１３は、資産８４０の現在のルート又はトリップに最も近いトリップモデルを選択することができる。例えば、ルーティング構成要素８１３は、資産８４０がルート又はトリップに沿って渋滞を経験していると決定することができる。ルーティング構成要素８１３は、使用できるトリップモデルを選択して、渋滞の期間中（例えば、ラッシュアワー時）の到着時間を予測することができる。
【０１２０】
１実施形態では、ユーザインタフェース構成要素８１７は、ライブの地理的位置、ライブの到着時間、又は資産８４０の何れかの他の適切な情報又は資産８４０に関する何れかの他の適切な情報を１又は２以上の管理者に表示することができる。例えば、ユーザインタフェース構成要素８１７は、ユーザインタフェース構成要素８１７によってホストされるウェブページを介して管理者に表示することができるグラフィカルユーザインタフェース（ＧＵＩ）を提示することができる。管理者は、管理者のコンピュータデバイス上に位置付けられたブラウザを用いてウェブブラウザを閲覧することができる。例えば、管理者は、管理者のテーブルコンピュータ上のウェブブラウザを用いて、管理者にＧＵＩを提示することができるウェブページを閲覧することができる。ＧＵＩは、以下に詳細に論じるように、例えば、地理的エリアのマップ、マップ上の資産８４０のライブの地理的位置、又は資産８４０の１又は２以上の推定到着時間、統計情報、利用、性能情報などの資産に関する情報などの資産８４０の又は資産８４０に関する様々な種類の情報を表示することができる。本明細書で説明する資産８４０に関する情報の種類は単に例に過ぎず，資産８４０に関する情報の他の種類も、資産管理構成要素８１０によって管理、収集、追跡、又は表示することができる。管理者に提供、提示、又は表示することができる様々なＧＵＩを管理者ＧＵＩと呼ぶことができる。管理者ＧＵＩは、管理者が、地理的エリアにおける資産８４０の何れか又は全てを管理、モニタ、且つ制御するのを可能にすることができる。一部の実施形態では、資産管理構成要素８１０は、クライアント構成要素８３１に情報を提供し、クライアント構成要素８３１が資産８４０のライブ地理的位置又はライブ到着時間の１又は２以上を表示できるようにする。例えば、資産管理構成要素８１０は、メッセージングシステム８２０の１又は２以上のチャネル８２１Ａから８２１Ｚにメッセージを発行することができる。このメッセージは、資産８４０のライブの地理的位置又はライブの到着時間を指示することができる。クライアント構成要素８３１は、メッセージを受信して、ユーザＧＵＩをユーザに提示し、ライブの地理的位置又はライブの推定到着時間を表示することができる。
【０１２１】
１実施形態では、モニタリング構成要素８１５は、資産８４０に対するライブのユーザ需要をモニタすることができる。例えば、モニタリング構成要素８１５は、バスルート又はバスのライブの地理的位置を現在見たいと思っているユーザの数を決定することができる。別の例では、モニタリング構成要素８１５は、シャトルの乗車を現在予約しているユーザの数を決定することができる。別の実施形態では、モニタリング構成要素８１５が、資産８４０に対するユーザからの需要の（ライブ）変化を識別することもできる。例えば、モニタリング構成要素８１５は、特定のバスを現在要求しているユーザの数が増加していると決定することができる。別の例では、モニタリング構成要素８１５は、駐車場で利用できる駐車スペースがますます増えていると決定することができる。
【０１２２】
１実施形態では、モニタリング構成要素８１５が、ライブユーザ需要に基づいて１又は２以上の資産８４０を再割り当て又はリルートすることができる。例えば、モニタリング構成要素は、ルートに沿って乗車を要求しているユーザの数が増加中であるという決定に応答してルートに追加のバスを加えることができる。別の例では、モニタリング構成要素８１５は、駐車ガレージに駐車しているユーザの数が増加中であると決定することができる。モニタリング構成要素８１５は、駐車スペースの追加のスペース及び／又はレベルを開けて多くのユーザが駐車ガレージに駐車するのを可能にすることができる。
【０１２３】
１実施形態では、価格設定構成要素８１４が、１又は２以上の資産８４０に対するユーザ需要の変化に基づいて１又は２以上の資産８４０の価格設定を変更することができる。価格設定構成要素８１４は、資産８４０の価格設定へのライブ変更を行い、ユーザが異なる又は代わりのタイプの資産８４０を使用するのを奨励することができる。例えば、スポーツスタジアムで駐車場の駐車スペースが少なくなっている場合、価格設定構成要素８１４は、スタジアムの駐車場の残っている駐車スペースの価格を上げることができる。価格設定構成要素８１４は、スポーツスタジアムに移動するルートを有するバス及び列車の価格を相応に下げることができる。これは、スポーツスタジアムへ運転するよりもバス及び列車を使うようユーザを奨励することができる。
【０１２４】
１実施形態では、ルーティング構成要素８１３は、第１地理的位置から第２地理的位置にユーザが移動したいというユーザからの指示を受信することができる。ルーティング構成要素８１３は、１つの地理的位置から別の地理的位置への移動ルートを決定することができる。ルーティング構成要素８１３は、例えば、資産８４０のライブの地理的位置及び資産８４０のライブの推定到着時間、並びに他の適切なルートプランニング情報の１又は２以上に基づいて移動ルートを決定することができる。ルーティング構成要素８１３は、資産８４０に関する性能メトリクス、統計値、及び他のデータに基づいて移動ルートを決定することもできる。例えば、ルーティング構成要素８３１は、異なる移動ルートに沿った交通信号の待ち時間を用いて１つの移動ルートが別の移動ルートより早いかどうかを決定することができる。ルーティング構成要素８１３は、ユーザに移動ルートを薦めることができる。例えば、ルーティング構成要素８１３は、ルートを指示するデータを備えたメッセージをクライアント構成要素８３１に発行することができ、クライアント構成要素８３１はこのようなデータを用いて、クライアント構成要素８３１によって提供、提示、又は表示されるユーザＧＵＩを介してマップ上でユーザにルートを表示することができる。ルーティング構成要素８１３は、第２の地理的位置のユーザの推定到着時間を決定することができ、又は推定移動時間を決定することができる。例えば、ルーティング構成要素８１３は、移動ルートに対する推定到着時間を決定することができ、推定到着時間を指示するメッセージをメッセージングシステム８２０のチャネルに発行することができる。クライアント構成要素は、チャネルを介してメッセージを受信することができ、クライアント構成要素８３１によって提示されたユーザＧＵＩが推定到着時間を表示することができる。一部の実施形態では、移動ルートは、複数の種類の資産を使用することができ、又はマルチ様式輸送を使用することができる。例えば、移動ルートは、公共輸送資産（例えば、バス、市街電車、路面電車などの公共交通）と私的輸送資産（例えば、タクシー、相乗り車両など）の両方を用いることができる。
【０１２５】
１実施形態では、ルーティング構成要素８１３は、特定の地理的位置に移動するためのユーザからの資産８４０に対する要求を受信することができる。例えば、ユーザは、ユーザを地理的位置に連れて行く資産８４０を要求するメッセージをメッセージングシステム８２０の特定のチャネルで発行することができる。このメッセージは、ユーザの識別子（例えば、ユーザ名、電子メール（Ｅメール）アドレス、英数字値、識別番号、電話番号、ユーザを識別するために使用することができる値など）を含むことができる。ルーティング構成要素８１３は、ルートを変更するためのこれらの要求をユーザから受信するための特定のチャネルを購読することができる。ルーティング構成要素８３１は、指定された地理的位置でユーザを乗せるようオペレータに命じるメッセージを資産構成要素８４１に発行することができる。
【０１２６】
ルーティング構成要素８１３は、地理的位置の資産８４０の推定到着時間を示すメッセージを発行することができ、資産８４０が地理的位置の閾値距離内（例えば、２００メートル又は他の適切な距離内）にあることを示すメッセージを発行することができ、又はある期間内（例えば、次の５分又は他の適切な期間内）に地理的位置に資産８４０が到着することを指示するメッセージを発行することができる。各メッセージは、例えば、時間（例えば、５分以内）又は距離（例えば、２００メートル以内）及び地理的位置を含むことができる。このようなメッセージにおける他の情報も可能である。
【０１２７】
１実施形態では、ルーティング構成要素８１３は、ユーザが１又は２以上の資産８４０を用いて移動ルートに沿って旅行又は移動する時のユーザ又はユーザのクライアントデバイス８３０を追跡することができ、又はユーザによって使用される資産８４０のライブの地理的位置を追跡することができる。例えば、ユーザのクライアントデバイス８３０のクライアント構成要素８３１は、クライアントデバイス８３０の現在の地理的位置を示すメッセージをチャネル８２１Ａから８２１Ｚの１又は２以上に継続的に又は定期的に発行することができる。別の例では、資産構成要素８４１は、クライアントデバイス８３１の現在の地理的位置を示すメッセージを毎秒、２秒毎などにチャネル８２１Ａから８２１Ｚの１又は２以上に継続的に又は定期的に発行することができる。
【０１２８】
ルーティング構成要素８１３は、クライアント構成要素８３１又は資産構成要素８４１によって発行されたメッセージの１又は２以上を分析して、ユーザが推定到着時間によって又は推定到着時間の閾値内に第２地理的位置に到着するかどうかを決定することができる。ユーザが推定到着時間によって又は推定到着時間の閾値内に第２地理的位置に到着できない可能性があるとルーティング構成要素８１３が決定した場合、ルーティング構成要素８１３は、ユーザが第２地理的位置に迅速に到着できるようにする第２移動ルート又は更新移動ルートを決定することができる。例えば、渋滞、自動車事故、不良の交通信号などのせいでユーザの移動ルートに沿った混乱又は問題が生じることがあり、これによってユーザを推定到着時間後に到着させることがある。ルーティング構成要素８１３は、上述のように資産８４０のライブの地理的位置及び資産８４０のライブの推定到着時間の１又は２以上に基づいて第２移動ルートを決定することができる。第２移動ルートは異なる資産８４０を使用することができ、又は第１移動ルートで使用された資産８４０の一部を使用することができる。ルーティング構成要素８１３は、上述のようにユーザに第２移動ルートを薦めることができる。ユーザが迅速に第２地理的位置に到着できるようにする第２移動ルートをルーティング構成要素８１３が決定できない場合、ルーティング構成要素８１３は、第１移動ルートに対する修正された推定到着時間を提供することができる。
【０１２９】
ルーティング構成要素８１３は、ユーザが推定到着時間によって又は推定到着時間の閾値内に第２地理的位置に到着するかどうかの決定に基づいて資産８４０のオペレータに新しい移動ルートを提供することもできる。例えば、ビデオ構成要素８１２によって分析された高速道路のビデオに基づいて資産８４０の第１移動ルートで使用された高速道路に渋滞があることをルーティング構成要素８１３が決定した場合、ルーティング構成要素８１３は、高速道路の使用を避けることができる１又は２以上の他の移動ルートを識別することができる。ルーティング構成要素８１３は、１又は２以上のメッセージをメッセージングシステム８２０のチャネルに発行して、１又は２以上の移動ルートを資産８４０に提供することができる。資産８４０は、高速道路を避ける１又は２以上の移動ルートの１つを選択することができる。
【０１３０】
１実施形態では、モニタリング構成要素８１５は、１又は２以上の管理者ＧＵＩを、組織エンティティの管理者、監督者、マネージャ、検査者、又は他の同等のユーザに提供することができる。組織エンティティの管理者、監督者、マネージャ、検査者、又は他の同等のユーザは、システムアーキテクチャ８００を用いて、資産８４０の使用、利用、ステータス、性能、状態、地理的位置、問題などをモニタすることができる。モニタリング構成要素８１５は、乗客などのクライアントデバイス８３０のユーザのライブの地理的位置をモニタすることもできる。ユーザのライブの地理的位置は、ルーティング構成要素８１３がそのライブの地理的位置に基づいてユーザのための移動ルート又はトリップを決定するのを可能にすることができる。ユーザに提示される１又は２以上の管理者ＧＵＩは、組織エンティティの管理者、監督者、マネージャ、検査者、又は他の同等のユーザが、組織エンティティに関連付けることができる資産８４０の全てを見る、及び、例えば、性能メトリクス、統計値、利用、事件、問題などの資産８４０に関する情報を見るのを可能にすることができる。
【０１３１】
１実施形態では、モニタリング構成要素８１５は、地理的位置における資産８４０のライブ位置を表示することができる。例えば、モニタリング構成要素は、都市の数平方ブロック、都市、市町村、郡、州、地方、田舎、又は他の適切な地理的領域などの地理的エリアのマップを表示する管理者ＧＵＩを提示することができる。マップは、地理的エリア内の資産８４０のライブの地理的位置を表示することができる。資産８４０の地理的位置は、資産８４０が地理的エリアを移動する時にマップ上でライブで更新することができる。例えば、別の地理的位置に移動中の資産８４０の地理的位置は、１秒、数秒内などで更新することができる。別の実施形態では、モニタリング構成要素８１５は、地理的位置における資産８４０のユーザのライブの位置を表示することもできる。例えば、モニタリング構成要素８１５は、特定の資産８４０の使用を要求している全乗客のライブ位置を表示することができる。
【０１３２】
１実施形態では、モニタリング構成要素８１５は、地理的エリア内の資産８４０の各々又は集まりのライブ性能メトリクスを表示することができる。例えば、モニタリング構成要素８１５は、資産８４０のリストを表示する管理者ＧＵＩを提示することができる。このリストは、リストに資産８４０の１又は２以上のライブ性能メトリクスを提示することもできる。例えば、１又は２以上のライブ性能メトリクスは、それぞれの資産８４０の隣りに表示することができる。別の例では、管理者が、管理者ＧＵＩを介して資産８４０の１つを選択することができ、選択された資産８４０のライブ性能メトリクスを管理者に表示することができる。
【０１３３】
上述のように、資産８４０は、バス、列車、シャトルなどの輸送資産とすることができる。１実施形態では、性能メトリクスは、輸送資産の使用、到着時間などを示すことができる。例えば、性能メトリクスは、サービス中の資産８４０のカウント、サービス中の各資産８４０のユーザのカウント、サービス中の各資産８４０の販売されたチケットのカウント、サービス中の各資産８４０の利用率、サービス中の全資産８４０の平均利用率、サービス中の各資産８４０の速度、サービス中の全資産８４０の平均速度、且つサービス中の各資産８４０の適時性（例えば、バスが時間通りに又は指定された時間のウィンドウ内に停止地点に到着するかどうか、バスが停止地点にどのくらい遅く又は早く到着するかなど）を含むことができる。他の性能メトリクスも可能である。
【０１３４】
１実施形態では、モニタリング構成要素８１５は、資産構成要素８４１によって発行されたメッセージの一部又は全部を転送又は再発行することができる。これは、ユーザ（例えば、クライアントデバイス８３０又はクライアント構成要素８３１）が資産８４０のライブ位置を示すメッセージを受信するのを可能にすることができる。これは、モニタリング構成要素８１５が、資産構成要素８４１によって発行されたメッセージのサブセットを選択的に発行するのを可能にすることができる。例えば、バスが非番である可能性がある（例えば、乗客を運んでいないことがある）ので、資産管理構成要素８１０はバスからのメッセージを（図６−７Ｄに関して上述したように）取り除くことができる。別の例では、資産構成要素８４１は、毎秒又は他の適切な期間にメッセージを発行することができ、モニタリング構成要素８１５は、資産構成要素８４１によって発行されたメッセージを１つおきに発行して、メッセージングシステム８２０に発行されるメッセージの量を低減することができる。別の実施形態では、ユーザは、資産構成要素８４１がメッセージを発行するチャネルを購読することができる。これは、ユーザが資産構成要素８４１によって発行されたメッセージを直接受信するのを可能にすることができる。
【０１３５】
１実施形態では、モニタリング構成要素８１５は、資産８４０又はクライアントデバイス８３０の１又は２以上のデータ履歴を記録することができる。例えば、資産８４０のデータ履歴は、資産８４０の適時性（例えば、資産が時間通りであるかどうか、資産がどのくらい遅れているかなど）を示すことができる。モニタリング構成要素８１５は、管理者ＧＵＩ上で１又は２以上の資産８４０の記録されたデータ履歴の少なくとも一部分を表示又は提示することができる。例えば、モニタリング構成要素８１５は、資産８４０が時間通りであるかどうか又は資産がルートに沿った様々な停止地点でどのくらい遅延したかを示すグラフを表示することができる。
【０１３６】
１実施形態では、フィルタリング構成要素８１８は、チャネル８２１Ａから８２１Ｚに発行された１又は２以上のメッセージをフィルタして、資産８４０のユーザ（例えば、乗客）によって又は管理者によって要求される１又は２以上の資産８４０の少なくとも１つの特性に関する情報を変換することができる。例えば、フィルタリング構成要素８１８は、輸送資産によって少なくとも１つのメッセージングチャネルに発行されたメッセージをサーチ問合せして、ユーザによって要求された１又は２以上の輸送資産の少なくとも１つの特性に関する情報を検査することができる。例えば、ユーザは、ユーザがバスだけを使用して移動したいことを指示できる。資産の種類（例えば、バス）は、１又は２以上の資産８４０の特性とすることができる。フィルタリング構成要素８１８は、資産８４０のライブ地理的位置を示すメッセージをフィルタして、ユーザによって発行されたメッセージだけを識別できる。別の事例では、管理者は、管理者が地理的エリア内の全列車の推定到着時間を見ようとしていることを指示できる。
【０１３７】
１実施形態では、ビデオ構成要素８１２は、資産８４０のオペレータ、クライアントデバイス８３０のユーザ、又は管理者が、１又は２以上の資産８４０によって提供されるライブビデオフィードを管理、閲覧、分析、処理などができるようにする。例えば、資産８４０の１又は２以上は、ライブビデオを取り込むためのビデオカメラ、デジタルカメラ、又は他の適切なデバイスとすることができ、又はこれを含むことができる。資産８４０は、ライブビデオ及び／又はライブ音声を記録又は取り込むことができ、ライブビデオ及び／又はライブ音声を備えたメッセージをチャネル８２１Ａから８２１Ｚの１又は２以上に発行することができる。ビデオ構成要素８１２は、ビデオ構成要素８１２がビデオを受信するのを可能にできるメッセージングシステム８２０の１又は２以上のチャネルを購読することができる。
【０１３８】
１実施形態では、ビデオ構成要素８１２は、メッセージングシステム８２０の他のチャネルでライブビデオ及び／又はライブ音声を備えたメッセージを転送又は再発行することができる。これは、ビデオ構成要素８１２が資産８４０によって取り込まれたライブビデオ及び／又はライブ音声へのアクセスをクライアント構成要素８３１及び資産構成要素８４１に提供するのを可能にすることができる。これは、ビデオ構成要素８１２が、ライブビデオ及び／又はライブ音声の一部分をユーザ構成要素８３１及び資産構成要素８４１に選択的に提供するのを可能にすることができる。例えば、ビデオ構成要素８１２は、交通カメラから受信されたライブビデオ及び／又はライブ音声を再発行できるが、タクシーによって取り込まれたライブビデオ及び／又はライブ音声は再発行できない。別の実施形態ではユーザは、資産８４０がライブビデオ及び／又はライブ音声を備えたメッセージを発行できるチャネルを直接購読することができる。例えば、ユーザは、交通カメラが交通カメラによって取り込まれたライブビデオを含むメッセージを発行できるチャネルを直接購読することができる。
【０１３９】
１実施形態では、ビデオ構成要素８１２は、１又は２以上の資産８４０によって取り込まれたライブビデオ及び／又はライブ音声を分析することができる。例えば、交通カメラは、交差点を通過する車のライブビデオを提供することができる。ビデオ構成要素８１２はライブビデオを分析することができ、ある期間中の交差点を通る車の数をカウントすることができる。ビデオ構成要素８１２は、交差点を運転する車の車種を決定することもできる。例えば、ビデオ構成要素８１２は、交差点を運転するセダン、トラック、ＳＵＶ、大きなトラック、オートバイなどの数を決定することができる。
【０１４０】
１実施形態では、ビデオ構成要素８１２は、１又は２以上の資産８４０によって取り込まれたライブビデオ及び／又はライブ音声を処理することができる。例えば、ビデオ構成要素８１２は、無料高速道路の区画のライブビデオを分析してライブビデオに現れるナンバープレートの番号を識別することができる。ビデオ構成要素８１２は、修正されたライブビデオを再発行する前にライブビデオにおけるナンバープレートの番号を除くか又はぼかすことができる。これは、ビデオ構成要素８１２が、無料高速道路の区画を運転している人のプライバシーを保護すると同時に、資産８４０のユーザ、管理者、及びオペレータがライブビデオを閲覧するのを可能にすることができる。
【０１４１】
１実施形態では、ビデオ構成要素８１２は、１又は２以上の資産８４０によって取り込まれたライブビデオのライブ分析又はライブ処理を実行することができる。例えば、ビデオ構成要素８１２は、ライブビデオを受信中の数ミリ秒又は数秒内でライブビデオを分析又は処理することができる。これによって、ビデオ構成要素８１２がクライアントデビス８３０のユーザ、資産８４０のオペレータ、又は管理者にライブ情報を提供するのを可能にすることができる。例えば、道路上の突然の自動車事故のせいで渋滞が発生した時に、ビデオ構成要素８１２は、事故から１秒又は数秒以内に事故が起こったことを乗客、バスドライバー、タクシードライバー、シャトルドライバーなどに指示することができる。これによって、バスドライバー、タクシードライバー、シャトルドライバーなどは、事故が起こった道路を回避できる代替のルートの発見を試みることができる。これによって乗客も、事故が起こった道路を回避できる代替のトリップ又はルートを探すことができる。これによって、ルーティング構成要素８１３は、事故が起こった道路を回避できる１又は２以上の代替のルートを識別することができる。ルーティング構成要素８１３は、事故が起こった道路を使用する移動ルートにある資産８４０の資産構成要素８４１に１又は２以上の代替のルートを指示するメッセージを発行することができる。
【０１４２】
他の実施形態では、資産８４０は、様々な他の種類のセンサ又はデータ収集デバイスを含むことができる。例えば、資産８４０は、温度センサ又は湿度センサを含むことができる。別の例では、資産８４０は、大気質センサを含むことができる。更に他の例では、資産８４０は光センサを含むことができ、光センサの近くの光の量を検出することができる。資産管理構成要素８１０は、センサから受信されたデータに基づいて資産８４０の異なる種類を備えた移動ルートを薦めることができる。例えば、センサが無料高速道路上に凍った状態を検出した場合、ルーティング構成要素８１３は、自動車の代わりに列車を使用する移動ルートを薦めることができる。別の例では、センサが悪い大気質を検出した場合、価格設定構成要素８１４は、公共輸送資産（例えば、バス、小型レールなど）の価格を下げて大気質の改善を試みることができる。
【０１４３】
１実施形態では、認証構成要素８１１は、システムアーキテクチャ８００へのアクセスを許可する前に、クライアントデバイス８３０の１又は２以上のユーザ、資産８４０のオペレータ、又は組織エンティティの管理者を認証することができる。クライアントデバイス８３０のユーザ、資産８４０のオペレータ、又は組織エンティティの管理者は、以下に詳細に論じるようにアカウントを作成することによって資産管理システム８１０に登録することができる。認証構成要素８１１は、ユーザ又はオペレータがアカウントにアクセスするためのクレデンシャル（例えば、ユーザ名、パスワードなど）を作成するのを可能にでき、且つ後で使用するためにこれらのクレデンシャルを格納することができる。認証構成要素８１１は、ユーザ又はオペレータがそのアカウントにログインした時（例えば、オペレータが資産管理構成要素８１０にログインした時又はユーザがクライアントデバイス８３０上のクライアント構成要素８３１にログインした時）にユーザ又はオペレータを認証することができる。認証構成要素８１１は、システム管理者、情報技術（ＩＴ）人員、ネットワーク管理者などのセキュリティ人員が、資産管理システム８１０にアクセスするために管理者のクレデンシャルを作成できるようにする。例えば、認証構成要素８１１は、セキュリティ人員が管理者に対してユーザ名及びパスワードを作成できるようにする。認証構成要素８１１は、セキュリティ人員が、管理者に対する異なる許可又は様々な異なる管理者によって実行することができる異なる行為を指定できるようにする。
【０１４４】
１実施形態では、管理者に、ユーザ又はオペレータよりも多くのアクセス、情報、データ及び能力を提供することができる。例えば、管理者は資産８４０の価格設定を変更できるがオペレータ及びユーザは変更できない。オペレータには、ユーザよりも多くのアクセス、情報、データ及び能力を提供することができる。別の例では、オペレータは、他のオペレータと（１又は２以上の通信チャネルを介して）通信することが許可され、ユーザは他のオペレータとの通信が許可されない。
【０１４５】
１実施形態では、認証構成要素８１１は、管理者、ユーザ、又はオペレータがログインした後に、管理者、ユーザ、又はオペレータにセキュリティトークンを出すことができる。このセキュリティトークンを用いて、通信チャネル８２１Ａから８２１Ｚの１又は２以上へのアクセスを管理者、ユーザ、又はオペレータに許可することができる。例えば、セキュリティトークンは、オペレータが第１チャネルでメッセージを発行するか又は第２チャネルを購読するのを可能にすることができる。同じセキュリティトークンをシステムアーキテクチャ８００の異なる構成要素にわたって使用することができる。例えば、資産８４０のオペレータを乗客にすることもできる。オペレータは、同じセキュリティトークンを使用して、乗客としてログインし且つ資産８４０の使用を要求することができる。管理者、ユーザ、又はオペレータのプリファレンスは、そのアカウントに結び付けることもできる。例えば、乗客は、その移動ルートで公共輸送を使いたい可能性がある。認証構成要素８１１はプリファレンスを格納することができ、これらのプリファレンスを乗客のアカウントに関連付けることができる。
【０１４６】
資産管理構成要素８１０が図８ではメッセージングシステム８２０と切り離して図示されているが、資産管理構成要素８１０又は資産構成要素８１０の一部を他の実施形態ではメッセージングシステム８２０の一部として含むことができる。例えば、資産管理構成要素８１０を１又は２以上のＱノードの一部とすることができ、又は構成マネージャの一部とすることができる。別の例では、認証構成要素８１０を構成マネージャの一部とすることができる。一部の実施形態では、資産管理構成要素８１０又はメッセージングシステム８２０の１又は２以上を、データセンタ又はクラウドコンピュータシステム又はアーキテクチャの中に位置付けることができる。
【０１４７】
図８に示したチャネル８２１Ａから８２１Ｚの構成（例えば、チャネルの数、及びチャネル８２１から８２１Ｚの発行者又は購読者）は単なる例に過ぎず且つ他の構成を他の実施形態に使用できることを理解すべきである。例えば、２又は３以上のチャネルを単一のチャネルに組み合わせることができ、例えば、ユーザ、管理者、又はオペレータによって提供される基準に基づいて資産管理構成要素８１０によってメッセージをフィルタリングすることができる。別の例では、各資産８４０が、メッセージをメッセージングシステム８２０のその固有のチャネルに発行することができる。更に他の例では、各クライアント構成要素８３１が、輸送資産の使用を要求するメッセージを、地理的エリアに対する全てのこのような要求が受信される１つのチャネルに発行することができる。
【０１４８】
上述のように、資産８４０は、近所、都市、繁華街などの地理的エリアを移動又は旅行することができる輸送資産とすることができる。例えば、一部の資産８４０を、上述のように異なる地理的位置に乗客を輸送するシャトル、バス、又はバンとすることができる。１実施形態では、資産８４０の資産構成要素８４１は、資産８４０の地理的位置を継続的に又は定期的に決定することができる。例えば、資産構成要素８４１は、資産８４０のＧＰＳ座標を継続的に又は定期的に決定することができるＧＰＳ受信機などを含むことができる。１実施形態では、資産構成要素８４１は、資産８４０の現在の地理的位置を示すメッセージをチャネル８２１Ａから８２１Ｚの１又は２以上に発行することができる。例えば、資産構成要素８４１は、資産８４０の現在のＧＰＳ座標、現在の住所、現在の経度及び緯度などを指示するメッセージを毎秒又は他の適切な期間に発行することができる。このメッセージは、資産８４０の位置を示すための資産８４０の識別子（例えば、英数字値、名前、識別番号など）及びデータ（例えば、ＧＰＳ座標）を含むことができる。
【０１４９】
１実施形態では、資産構成要素８４１は、資産８４０のルート又は更新されたルートを示すメッセージをルーティング構成要素８１３から受信することができる。例えば、バスが最初にスイッチを入れられた時に、バスの資産構成要素８４１は、バスが沿って移動しなければならないルートを指示できるルーティング構成要素８１３によって発行されるメッセージを受信することができる。別の例では、資産構成要素８４１は、バスが異なるルートに再割り当てされた時のバスの新しいルートを指示するルーティング構成要素８１３からのメッセージを受信することができる。資産構成要素８４１は、資産８４０のドライバーがルート及び更新されたルートを見るのを可能にするマップをオペレータＧＵＩを介して提示することができる。１実施形態では、資産構成要素８４１は、チャネル８２１Ａから８２１Ｚの１又は２以上を購読して、ルートを指示するメッセージを受信することができる。当該技術の普通の技能を有する人は、ルーティング構成要素８１３が様々なルート決定アルゴリズム、機能、動作などを用いてルートを生成できることを理解する。例えば、ルーティング構成要素８１３は、ルートを生成するために、ダイクストラのアルゴリズム、経路発見アルゴリズム、加重経路発見アルゴリズムなどを用いることができる。別の実施形態では、資産構成要素８４１は、資産８４０のオペレータが地理的エリアにある他の資産８４０のライブの地理的位置を見るのを可能にすることができる。例えば、資産構成要素８４１は、都市内、バスの数平方ブロック内などの他のバスのライブの地理的位置をバスドライバーが見るのを可能にすることができる。
【０１５０】
１実施形態では、資産構成要素８４１は、資産８４０のオペレータ（例えば、バス又はシャトルのドライバー）が、他の資産８４０の他のオペレータ、クライアントデバイス８３０のユーザ、及び管理者（例えば、組織エンティティの管理者、監督者、マネージャ、検査者など）と通信するのを可能にすることができる。例えば、資産構成要素８４１は、資産８４０のオペレータが、チャネル８２１Ａから８２１Ｚの１又は２以上にビデオの一部を含むメッセージを発行することによって、ビデオ（例えば、ビデオデータ、ビデオストリームなど）を別の資産８４０の別のオペレータに送信するのを可能にすることができる。別の例では、資産構成要素８４１は、チャネル８２１Ａから８２１Ｚの１又は２以上に音声の一部を含むメッセージを発行することによって、資産８４０の到着を待っているユーザに音声（例えば、音声データ、音声ストリームなど）を送信するのを可能にすることができる。更に他の例では、資産構成要素８４１は、資産８４０のオペレータが、問題又は事件を示すメッセージを他のオペレータ、他の乗客、又は管理者に発行するのを可能にすることができる。
【０１５１】
一部の実施形態では、資産構成要素８４０は、資産８４０のオペレータ、クライアントデバイス８３０のユーザ、又は管理者が、２方向ラジオ（例えば、ウォーキートーキー）に類似の方法で互いに通信するのを可能にすることができる。例えば、バスの第１ドライバーは、資産構成要素８４１によって提示されたオペレータＧＵＩ上のボタンを押して他のドライバーと話すことができる。第１ドライバーが話している音声はメッセージに含まれメッセージングシステムのチャネルに発行される。他のドライバー又は管理者は、このチャネルを購読することができ、第１ドライバーが話している音声を含むメッセージを受信することができる。
【０１５２】
一部の実施形態では、システムアーキテクチャ８００は、様々な目的のための複数の通信チャネルを含むことができる。例えば、第１通信チャネルは、オペレータが市の第１の部署と通信するのを可能にでき、第２通信チャネルは、オペレータが警察と通信するのを可能にすることができる。別の例では、通信チャネルは、資産８４０のオペレータが、資産８４０のルートに沿った交通状態、道路状態、自動車事故などに関する情報を交換するのを可能にすることができる。通信構成要素８１６は通信チャネルを管理することができ、通信チャネルへのアクセスを許可又はそうでなければ可能にすることができる。例えば、通信構成要素８１６は、新しい通信チャネルを作成、通信チャネルの除去、通信チャネルの再命名などをすることができる。通信構成要素８１６は、ユーザ、オペレータ、又は管理者が、通信チャネルに加わるのを可能にでき、通信チャネルからユーザ、オペレータ、又は管理者を除くことができ、且つ異なる通信チャネルへの異なる許可をユーザ、オペレータ、又は管理者に与えることができる。
【０１５３】
一部の実施形態では、資産構成要素８４１は、資産８４０のオペレータが加わることができる通信チャネルのリストを提示することができる。例えば、資産構成要素８４１によって提示されたオペレータＧＵＩは、資産８４０の他のオペレータが互いに話すことができる音声通信チャネル（例えば、ライブ音声データが伝送されるチャネル）のリストを提示することができる。別の例では、資産構成要素８４１によって提示されるオペレータＧＵＩは、クライアントデバイス８３０のユーザ及び資産８４０のオペレータが互いにビデオチャットすることができるビデオ通信チャネル（例えば、ライブビデオデータが伝送されるチャネル）のリストを提示することができる。この通信チャネルはチャネル８２１Ａから８２１Ｚを使用してデータを伝送することができる。例えば、通信チャネルの音声データ又はビデオデータは、チャネル８２１Ａから８２１Ｚの１又は２以上を介して発行又は受信することができる。資産構成要素８４１は、オペレータが異なる通信チャネルに加わるか又は離れる（例えば、異なる通信チャネルに接続又は異なる通信チャネルから切断する）のを可能にすることができる。一部の実施形態では、資産構成要素８４１は、オペレータの音声を別の種類のデータに変換することができ、この変換したデータを通信チャネル８２１Ａから８２１Ｚの１又は２以上に発行することができる。例えば、資産構成要素８４１は、オペレータの発話をテキストに変換することができる（例えば、発話−テキスト変換を実行することができる）。資産構成要素８４１は通信チャネル８２１Ａから８２１Ｚの１又は２以上にテキストを発行することができる。これは、オペレータが、通信チャネル８２１Ａから８２１Ｚを介して、電子メールメッセージ、テキストメッセージなどのメッセージを送信するのを可能にすることができる。
【０１５４】
一部の実施形態では、資産構成要素８４１は、資産８４０のオペレータが、資産８４０の動作中に起こることがある様々な事件を報告できるようにする。例えば、資産構成要素８４１は、シャトルがルートに沿って運転している間の１又は２以上の事件をシャトルドライバーが報告するのを可能にすることができる。事件の例は、資産８４０を伴う衝突、資産８４０に関わる問題（例えば、車の故障、タイヤのパンク、車が始動できないなど）、乗客に関わる事件（例えば、乗客のけんか、秩序を乱す又は敵意のある乗客など）、及び医療事故（例えば、乗客が怪我をした、心臓発作を起こしたなど）を含むことがある。
【０１５５】
資産８４０のオペレータ、クライアントデバイス８３０のユーザ、及び／又は管理者間で通信できることによって、資産構成要素８４１は、有用な情報を交換することができる。例えば、バスのドライバーは、ドライバーと通信して特定の道路で交通事故があったことをドライバーに知らせることができる。これは、他のユーザ又はオペレータが、代替の道路又はルートを発見することによって渋滞を回避するのを可能にすることができる。別の例では、資産８４０のオペレータが第１応答者（例えば、救急車）と通信して交通事故で負傷者があることを第１応答者に知らせることができる。これは、第１応答者が迅速に交通事故に到着し負傷者を助けるのを可能にする。
【０１５６】
１実施形態では、資産構成要素８４１は、複数の地理的位置を指示できる要求をユーザから受信することができる。これらの要求は、第１地理的位置からユーザを乗せて且つ１又は２以上の他の地理的位置にユーザを運ぶための資産８４０に対するクライアントデバイス８３０のユーザからの要求とすることができる。例えば、資産構成要素８４１は、ユーザの家からユーザを乗せて且つユーザの職場にユーザを運ぶユーザからの要求を受信することができる。別の実施形態では、資産構成要素８４１は、複数の地理的位置を指示できる資産管理構成要素８１０から（例えば、ルーティング構成要素８１３から）の要求を受信することができる。例えば、資産管理構成要素８１０はユーザのための旅行を計画することができる。資産８４０を用いて、旅行の一部にユーザを運ぶことができる。資産管理構成要素８１０は、ユーザを駅で乗せて空港で降ろさなくてはならないことを指示するメッセージを資産構成要素８４１に発行することができる。
【０１５７】
一部の実施形態では、資産構成要素８４１は、オペレータが様々な地理的位置に移動する要求を受け付けるかどうか資産８４０のオペレータが指示するのを可能にすることができる。例えば、資産構成要素８４１は、オペレータがオペレータの作業位置からユーザを乗せてユーザをバス乗り場に運ぶかどうかをタクシーのオペレータが指示するのを可能にすることができる。資産構成要素８４１は、オペレータがユーザの要求を受け付けたか又は拒否したかを指示するのを可能にするオペレータＧＵＩを提示することができる。
【０１５８】
１実施形態では、資産構成要素８４１は、資産８４０の使用に対するクライアントデバイス８３０のユーザからの支払いを受け付けることができる。例えば、資産構成要素８４１は、目的地までシャトルに乗車するためのシャトルの乗客からの支払いを受け付けることができる。資産構成要素８４１は、資産構成要素８４１が支払いを受け付けるのを可能にするデバイスに結合できるか又はデバイスを含むことができる。例えば、資産構成要素８４１は、カード読取装置、近距離通信（ＮＦＣ）読取装置、スマートチップ読取装置、又は他の販売時点管理デバイスなどを含むことができる。
【０１５９】
１実施形態では、資産構成要素８４１は、資産８４０のオペレータが資産管理構成要素８１０に登録するのを可能にすることができる。例えば、資産構成要素８４１は、オペレータがシステムアーキテクチャ８００の一部として資産８４０を含むのを可能にする資産管理構成要素８１０とのアカウントをオペレータがセットアップするのを可能にするオペレータＧＵＩを提供することができる。１実施形態では、資産管理構成要素８１０は、オペレータが資産管理構成要素８１０に登録しない限り、システムアーキテクチャ８００内で又はこれを用いてオペレータが資産８４０を動作できないようにする。例えば、資産管理構成要素８１０は、タクシーのドライバーが資産管理構成要素８１０によって資産構成要素８４１に登録しない限り、タクシーのドライバーが見込み乗客からの乗車の要求を受け付けられないようにする。
【０１６０】
１実施形態では、資産構成要素８４１は、オペレータが資産構成要素８４１に特定の資産８４０を関連付けるのを可能にすることができる。例えば、都市のユーザに異なるルートを提供するために用いられる複数のバスが存在することがある。資産構成要素８４１は、バスのドライバーが、資産構成要素８４１を特定のバスに関連付けるか又はリンクするのを可能にすることができる。オペレータは、資産８４０の識別子を入力することによって資産構成要素８４１と資産８４０をリンクすることができる。例えば、オペレータは、車両識別番号（ＶＩＮ）、シリアルナンバー、ナンバープレート番号などを入力することができる。別の例では、オペレータは、資産８４０に位置付けられるバーコード又はＱＲコード（登録商標）を走査することができる。一部の実施形態では、オペレータは、前の資産８０４から資産構成要素８４１を切り離し、資産構成要素８４１に新しい資産８４０を再関連付けすることができる。例えば、ドライバーは、毎日異なるバスを運転することがある。ドライバーは、ドライバーの資産構成要素８４１を前のバスと切り離し、ドライバーの資産構成要素８４１に毎日新しいバスを関連付けることができる。
【０１６１】
１実施形態では、クライアント構成要素８３１は、ユーザ（例えば、乗客、駐車場に駐車したいユーザなど）が、１又は２以上の資産８４０のライブの地理的位置、ライブの使用又は利用、及びライブステータス又は状態を見るのを可能にすることができる。１実施形態では、クライアント構成要素８３１は、ユーザＧＵＩをユーザに提供又は表示することができる。ユーザＧＵＩは、資産８４０の１又は２以上のライブの地理的位置を表示することができ且つ資産８４０の１又は２以上の推定される又は予測到着時間を表示することもできる。例えば、ユーザＧＵＩは、資産８４０のライブの地理的位置を指示することができるアイコン、画像、グラフィクスなどを含むマップを表示することができる。資産８４０の地理的位置は、マップ上でライブで更新することもできる。例えば、資産８４０の地理的位置は、毎秒、数秒毎、又は他の適切な期間に更新することができる。資産８４０の地理的位置は、資産の位置を送信している資産の数秒内又は他の適切な期間にユーザに表示することができる。別の例では、ユーザＧＵＩは、資産８４０のリスト及び資産８４０のリストの各資産８４０の推定又は予測される到着時間を提示することができる。ユーザＧＵＩは、資産が推定又は予測到着時間に到着する地理的位置（例えば、バス停留所、シャトル停留所、通りの角、住所、建物など）を指示することもできる。
【０１６２】
１実施形態では、クライアント構成要素８３１は、ユーザが移動したい１又は２以上の地理的位置をユーザが要求又は指示するのを可能にすることができる。例えば、クライアント構成要素８３１は、ユーザが移動したい地理的位置の名前又は住所をユーザが入力できるようにするテキストフィールドを提供することができる。クライアント構成要素８３１は、ユーザが複数の目的地の地理的位置を入力するのを可能にすることができる。例えば、クライアント構成要素８３１は、ユーザが移動したい住所の３又は幾つかの適切な数をユーザが入力するのを可能にすることができる。これは、ユーザがマルチレッグトリップ又はルートを指定するのを可能にすることができる。クライアント構成要素８３１は、ユーザが輸送の種類の複数の様式を使用したいかどうかユーザが指示するのを可能にすることができる。例えば、ユーザは、公共輸送（例えば、公共交通車両）だけを使用したい場合がある。別の例では、ユーザは、公共輸送及び私的輸送（例えば、公共交通車両とタクシー）の両方を使用したい場合がある。
【０１６３】
１実施形態では、クライアント構成要素８３１は、資産８４０のオペレータがユーザに資産８４０の使用を許可するかどうかに関する指示をユーザに提供することができる。例えば、ユーザは、特定の地理的位置でオペレータがユーザを乗せることを要求することができる。クライアント構成要素８３１は、資産８４０のオペレータが特定の地理的位置でユーザを乗せられるかどうか指示するメッセージをユーザＧＵＩに表示することができる。別の例では、ユーザは、駐車場の特定の駐車スペースを要求することができる。クライアント構成要素８３１は、駐車スポットがユーザによって完全に予約されているかどうか指示するメッセージをユーザＧＵＩに表示することができる。
【０１６４】
上述のように、資産管理構成要素８１０は、クライアント構成要素８３１から開始地理的位置から異なる目的地の地理的位置への移動の要求を受信することができる。資産管理構成要素８１０は、チャネル８２１Ａから８２１Ｚの第１チャネルを介して１又は２以上の移動ルートを指示するメッセージを発行することができる。１又は２以上の移動ルートは、ユーザがユーザによって要求された目的地の地理的位置に移動できるようにする薦められる移動ルートとすることができる。１実施形態では、クライアント構成要素８３１は、第１チャネルを購読することによって１又は２以上の移動ルートを受信することができる。クライアント構成要素８３１は、クライアント構成要素８３１のユーザＧＵＩによって表示されたマップ上に薦められる移動ルートを提示することができる。クライアント構成要素８３１は、ユーザが薦められる移動ルートの１つを選択するのを可能にすることができる。１実施形態では、資産管理構成要素８１０は、選択された移動ルートの一部である資産８４０にメッセージを発行して、オペレータが一定の地理的位置及び一定の時間にユーザを乗せなければならないことを資産８４０のオペレータに知らせることができる。
【０１６５】
１実施形態では、クライアント構成要素８３１は、様々な条件に基づいて資産管理構成要素８１０によって提供される異なる移動ルートをユーザがフィルタリングするのを可能にすることができる。例えば、クライアント構成要素８３１は、ユーザが、輸送の持続時間の範囲、費用の範囲、到着時間、出発時間、種類などに基づいて移動ルートをフィルタリングするのを可能にすることができる。
【０１６６】
１実施形態では、クライアント構成要素８３１は、１又は２以上の資産８４０のスケジュールされた且つ推定される到着時間を表示することができる。例えば、クライアント構成要素８３１は、地理的エリアにおける複数の資産８４０を表示するマップを提示することができる。ユーザは、資産８４０の１つを選択することができる。クライアント構成要素８３１は、選択された資産８４０に対する地理的位置（例えば、バス停止地点）のスケジュールされた到着時間を表示することができる。クライアント構成要素８３１は、選択された資産８４０に対する地理的位置の推定される到着時間を表示することもできる。推定される到着時間は、スケジュールされた到着時間とは異なることがある。例えば、推定到着時間は、スケジュールされた到着時間より遅い又は早いことがある。同様に、クライアント構成要素８３１は、１又は２以上の資産８４０のスケジュールされた及び推定される出発時間を表示することもできる。一部の実施形態では、クライアント構成要素８３１は、資産８４０のリスト、及び資産８４０のリスト上の各資産に対する推定到着時間、スケジュール到着時間、推定出発時間、及びスケジュール出発時間の１又は２以上を表示することができる。
【０１６７】
一部の実施形態では、クライアント構成要素８３１は、資産８４０の１又は２以上の特性を示す情報又はデータを表示することもできる。例えば、クライアント構成要素８３１は、バスに乗っている乗客の数を指示することによって（例えば、バスがどのくらい満杯であるか指示することによって）バスの利用を示すデータを表示することができる。別の例では、クライアント構成要素８３１は、駐車場に残っているフリースペースの数を指示するデータを表示することができる。更に他の例では、クライアント構成要素８３１は、地理的位置にある輸送資産の種類をユーザが決定できるようにする。クライアント構成要素８３１は、輸送資産が、バス、シャトル、列車、相乗り車両、タクシーなどかどうか指示することができる。更に他の例では、クライアント構成要素８３１は、地理的エリアにおける異なる交通信号の待ち時間を示すデータを表示することができる。ユーザが、信号が緑に変わるまで待つのに費やすことができる時間を計算に入れられるので、ユーザが１又は２以上の地理的位置に歩く又は運転を開始しなければならない時間を適切に計画できるようになる。更に他の例では、クライアント構成要素８３１は、地理的エリアで利用可能な駐車スペースの種類を表示することができる。クライアント構成要素８３１は、駐車スペースがスポーツ用車両（ＳＵＶ）などの大型車両を収容できるかどうか表示することができる。クライアント構成要素８３１は、駐車スペースが駐車スペースを使用するための時間制限（例えば、２時間の時間制限など）を有するかどうか表示することもできる。
【０１６８】
１実施形態では、クライアント構成要素８３１は、異なる資産８４０を使用するためのライブ価格又はライブの推定価格を表示することができる。例えば、クライアント構成要素８３１は、バス又はシャトルのライブの料金を表示することができる。別の例では、クライアント構成要素８３１は、地理的エリアにおけるタクシーの現在のユーザ需要に基づいてタクシーのライブの推定価格を表示することができる。更に他の例では、クライアント構成要素８３１は、駐車スペースが駐車スペースを使用するための均一料金（例えば、全日の料金）又は時間ごとの料金に関連付けられるか表示することができる。上述のように、資産８４０を使用する価格又は費用を変更することができる。例えば、バスを使用する料金を下げることができ、駐車スペースの価格を上げて、コンサートスタジアムに車で行くよりも公共輸送を利用するようユーザを奨励することができる。クライアント構成要素８３１は、価格設定構成要素８３１が資産８４０の価格設定の変更を示すメッセージを発行することができるメッセージングシステム８２０のチャネルを購読することができる。クライアント構成要素８３１はユーザＧＵＩを介してこれらのメッセージを受信することができ且つ更新された価格をユーザに提示することができる。
【０１６９】
上述のように、資産管理構成要素８１０は、ユーザのための更新ルート又はトリップを識別又は決定することができる。例えば、空港への推定到着時間が渋滞のせいで閾値時間量だけスケジュール到着時間を超える場合、資産管理構成要素８１０は、ユーザが以前にスケジュールされた到着時間又は以前にスケジュールされた到着時間近くに到着できるようにするユーザのための代替のルート又はトリップを識別することができる。資産管理構成要素８１０は、更新された又は代替のルートを指示する１又は２以上のメッセージをユーザに発行することができる。メッセージは、ユーザが更新された又は代替のルートに使用すべきである異なる資産８４０を指示することができる。クライアント構成要素８３１は、ユーザＧＵＩによって提示されたマップで更新又は代替ルートをユーザに表示することができる。クライアント構成要素８３１は、ユーザが代替のルートを確認又は選択するのを可能にできるか、又はユーザがオリジナルルートの使用を続けるのを可能にすることができる。
【０１７０】
１実施形態では、クライアント構成要素８３１は、ユーザが異なる地理的エリアを選択するのを可能にすることができる。例えば、クライアント構成要素８３１は、ユーザが位置付けられる郵便番号制度（ＺＩＰ）コードを入力するのを可能にすることができる。別の例では、クライアント構成要素８３１は、ＧＰＳ受信機を起動してクライアントデバイス８３０又はクライアント構成要素８３１の地理的位置を自動的に決定することができる。クライアント構成要素８３１は、資産管理構成要素８１０にメッセージを発行して、クライアント構成要素８３１の地理的位置を資産管理構成要素８１０に通知することができる。資産管理構成要素８１０は１又は２以上のメッセージをメッセージングシステム８２０のチャネルに発行して、クライアント構成要素８３１にクライアント構成要素８３１が位置付けられる地理的エリアで利用可能な資産８４０を知らせることができる。例えば、資産管理構成要素８１０は、資産８４０のリスト、資産の価格、資産の能力又は利用料金、資産のスケジュール、推定到着時間、性能メトリクスなどをチャネル８２１Ａから８２１Ｚの１又は２以上に発行することができる。これは、ユーザがユーザの位置に基づいて（例えば、ユーザ構成要素８３１の位置に基づいて）資産８４０及び資産８４０に関連付けられる情報を見ることを可能にすることができる。例えば、これは、ユーザにローカルである資産８４０をユーザが見ることができるようにする。
【０１７１】
１実施形態では、クライアント構成要素８３１は、クライアント構成要素８３１を使用してユーザが資産８４０の使用に支払うのを可能にすることができる。例えば、クライアント構成要素８３１は、ユーザのクレジットカード情報又は銀行口座情報を含むことができる。別の例では、クライアント構成要素８３１は、支払いサービスの他の種類の請求情報を含むことができる。ユーザが資産８４０を要求又は使用した時に、クライアント構成要素８３１は、ユーザのアカウント情報（例えば、クレジットカード番号、満了日付、銀行口座番号など）を備えたメッセージを資産管理構成要素８１０に自動的に発行することができる。資産管理構成要素８１０は、資産８４０の使用に対するユーザのアカウント又は他の支払いサービスにチャージすることができる。
【０１７２】
上述のように、システムアーキテクチャ８００は、様々な目的のための複数の通信チャネルを含むことができる。１実施形態では、クライアント構成要素８３１は、通信チャネルの１又は２以上に加わることができる。例えば、クライアント構成要素８３１は、音声通信チャネル（例えば、ライブ音声データが伝送されるチャネル）のリストを提示することができ、ユーザは、加入する音声チャネル通信の１又は２以上を選択することができる。これは、ユーザが他のユーザ、資産８４０のオペレータ、及び管理者と話すのを可能にすることができる。
【０１７３】
一部の実施形態では、クライアント構成要素８３１は、資産を使用している時に起こることがある様々な事件をクライアントデバイス８３０のユーザが報告するのを可能にすることができる。例えば、クライアント構成要素８３１は、資産８４０のオペレータの運転行動（例えば、オペレータが無謀なドライバーであるかどうか）をユーザが報告するのを可能にすることができる。事件の他の例は、資産８４０を伴う衝突、資産８４０に関わる問題（例えば、車の故障、タイヤのパンク、車が始動できないなど）、乗客に関わる事件（例えば、乗客同士のけんか、秩序を乱す又は敵意のある乗客など）、及び医療事象（例えば、乗客が負傷した、心臓発作を起こしたなど）を含むことがある。
【０１７４】
１実施形態では、クライアント構成要素８３１は、ユーザが資産管理構成要素８１０に登録するのを可能にすることができる。クライアント構成要素８３１は、ユーザの氏名、ユーザ名、パスワード、ユーザのメールアドレス、請求又はアカウント情報、電話番号などのユーザからの様々な種類の情報を要求することができる。１実施形態では、資産管理構成要素８１０は、ユーザが資産管理構成要素８１０に登録するまでユーザが資産８４０を使用できないようにする。例えば、資産管理構成要素８１０は、ユーザが資産管理構成要素８１０にクライアント構成要素８３１を登録するまでユーザが資産８４０を要求又は移動ルートを受信できないようにする。
【０１７５】
図９は、輸送資産などの資産の到着時間を予測又は推定することができるルーティング構成要素８１３の図である。上述のように、ルーティング構成要素８１３は、１又は２以上の地理的位置で資産（例えば、バス、シャトルなどの図８に示した資産８４０）の到着時間を予測又は推定することができる。１又は２以上の地理的位置は、資産８４０が移動するルートに沿った停止地点とすることができる。例えば、１又は２以上の地理的位置は、バスが移動するルートに沿った停止地点とすることができる。
【０１７６】
１実施形態では、ルーティング構成要素８１３は、資産のライブの地理的位置を指示できる位置データ９１１を受信することができる。例えば、ルーティング構成要素８１３は、資産がルートに沿って移動する資産のライブのＧＰＳ座標を示すメッセージを受信することができる。このメッセージは、上述のようにメッセージングシステムの１又は２以上のチャネルを介して（例えば、図８に示したチャネル８２１Ａから８２１Ｚの１又は２以上を介して）資産によって発行することができる。ルーティング構成要素８１３は、資産のスケジュールデータ９１２を受信又は取得することもできる。例えば、ルーティング構成要素８１３は、資産のスケジュールデータ９１２が格納されるデータストア又はデータベースにアクセスすることができる。スケジュールデータ９１２は、資産がそれに沿って移動するルートを指示することができる。例えば、スケジュールデータ９１２は、資産が移動する異なる道路及び交差点に沿った車両の経路を指示することができる。スケジュールデータ９１２は、資産が乗客を乗せるか又は降ろすために停車する複数の停止地点を指示することができる。例えば、スケジュールデータ９１２は、バス停留所又はシャトル停留所を指示することができる。スケジュールデータ９１２は、停留所間のホップを指示することもできる。ホップは、停留所間の１又は２以上のセグメントとすることができる。例えば、ホップは、道路に沿った２つの異なる信号の間とすることができる。
【０１７７】
１実施形態では、ルーティング構成要素８１３は、複数の資産から短期データ９１３を受信又は取得することもできる。例えば、ルーティング構成要素８１３は、地理的エリアにおける異なるルートに沿って移動する複数のバス又はシャトルから短期データ９１３を受信することができる。短期データ９１３は、短い期間にわたる複数の資産の地理的位置を指示することができる。例えば、短期データ９１３は、過去３０分、１時間、又はある他の適切な期間の地理的エリアにおける資産の全てのＧＰＳ座標を指示することができる。ルーティング構成要素８１３は、複数の資産から長期データ９１４を受信又は取得することもできる。例えば、ルーティング構成要素８１３は、地理的エリアにおける異なるルートに沿って移動する複数のバス又はシャトルから長期データ９１４を受信することができる。長期データ９１４は、長い期間にわたる複数の資産の地理的位置を指示することができる。例えば、長期データ９１４は、過去数週間、数か月、又はある他の適切な期間の地理的エリアにおける資産の全てのＧＰＳ座標を指示することができる。
【０１７８】
バスなどの資産は、事前に定義されたルートを移動することが多く、複数の輸送資産は、同じルートを運航して乗客の待ち時間を低減することができる。資産は、ルートに沿って資産の前又は資産の後ろを移動する他の資産とその資産のタイミングを同期することができる。これは、同じルートに沿って移動している資産が異なる停止地点での到着時間を等しく広げるのを可能にすることができる。１実施形態では、ルートを移動している資産のタイミングを同期することで、資産の遅延に関する履歴データの有用性を低減することができる。資産のタイミングが同期された時に、同じルートに沿って移動している他の資産のライブの地理的位置を用いて推定到着時間を予測することが有用となる。加えて、予測到着時間は、異なる日のルートに沿った異なる交通パターンによる高変動に影響を受けることがある。例えば、人が週末の金曜日に早く職場を離れる可能性があるので金曜日の渋滞は早く始まることがある。別の例では、スポーツスタジアム周辺の交通量は、スポーツスタジアムでゲームが行われる時に増える可能性がある。遅延の平均を取ることは、交通量パターンの変動のために有用でないことがある。しかしながら、ルートに沿って移動する資産の遅延がグラフに示される場合、遅延の量がＹ軸且つルートに沿った異なる停止地点又はホップがＸ軸である場合、異なる遅延の一般的な形は、推定到着時間を予測するために用いることができるパターンを形成できる。資産の行動は、ルートに沿って動的に変わることがある。例えば、バスが予定より遅れる場合、バスドライバーは、時間通りに次の停留所に着くために速度を上げて運転することがある。別の例では、バスがスケジュールより早い場合、バスドライバーは、バスが次の停留所に早く着きすぎないように速度を落として運転することがある。
【０１７９】
１実施形態では、ルーティング構成要素８１３は、ルートに沿った１又は２以上の停止地点での資産の到着時間を予測又は推定するために使用できる複数のモデル９２１を生成することができる。モデル９２１の１つの例は、絶対デルタモデルと呼ぶことができる。絶対デルタモジュールは、現在の停止地点と次の停止地点の平均絶対履歴遅延におけるデルタ（例えば、差又は変化）を使用することができ、これを測定された現在遅延に加えて将来の停止地点の到着時間を予測することができる。モデル９２１の別の例は、履歴減衰モデルと呼ぶことができる。履歴減衰モデルは、現在遅延（ｃｕｒｒｅｎｔ＿ｄｅｌａｙ）を用いることができ、ホップカウントの指数的加重関数（ｈｏｐ＿ｃｎｔ）を用いて将来の停止地点の履歴遅延（ｈｉｓｔｏｒｉｃ＿ｄｅｌａｙ）で現在遅延を平均化する。加重（ｗｔ）は、次式、ｗｔ＝ｅｘｐ（−１．０*ｈｏｐ＿ｃｎｔ）を用いて決定することができる。遅延の量は、次式、ｄｅｌａｙ＝ｈｉｓｔｏｒｉｃ＿ｄｅｌａｙ*（１−ｗｔ）＋ｃｕｒｒｅｎｔ＿ｄｅｌａｙ*ｗｔを用いて決定することができる。モデル９２１の他の例は、差デルタモデルと呼ぶことができる。差デルタモデルは、全ての次の停止地点セグメントの履歴中央遅延を計算又は決定することができる。全ての次の停止地点セグメントの履歴中央遅延を現在遅延に加えて、推定到着時間を作ることができる。モデル９２１の別の例は、ルックアヘッドデルタモデルと呼ぶことができる。このルックアヘッドデルタモデルは、ルートの次の停止地点又はセグメントを移動した他の資産（例えば、他のバス）を識別することができ、且つこれらの停止地点又はセグメントにおける遅延と現在遅延の差を記録することができる。資産の前に移動している他の資産がない停止地点又はセグメントでは、平均履歴差遅延を使用することができる。
【０１８０】
１実施形態では、ルーティングモジュール８１３は、遅延曲線の値に一致するのではなく遅延曲線の形状を見ることによってルートに沿った他の資産の類似のトリップの識別を試みることができる。遅延曲線は、平均遅延によって標準化することができ、ルーティングモジュール８１３は、現在と過去のトリップの間の余弦距離を決定することができる。資産のトリップ又はルートの開始から始まる遅延曲線を用いるのではなく時間のスライディングウィンドウを用いることができる。資産の現在遅延曲線に最も近く一致する遅延曲線を用いて、将来の停止地点の到着時間を予測するために相似のレベルに従って加重平均値を計算することができる。現在遅延は、ルートに沿った資産のトリップ中は一定と考えることができる。これは、資産の行動が資産の過去の行動とはばらつきがある場合に正確でない予測の回避を助けることができる。
【０１８１】
上述のように、異なるモデルは、異なる状況でうまく作用し資産の推定到着時間を予測することができる。例えば、モデルは、一定のトリップに対する到着時間を正確に予測することができるが、他のトリップに対しては正確でないことがある。１実施形態では、ルーティング構成要素８１３は、異なるモデルの全ての予測到着時間を分析することができ且つ異なるモデルの全てからの予測到着時間におけるエラー又は不正確さを見ることができる。ルーティング構成要素８１３は、過去の予測の閾値数を見ることができ、過去の予測の最後の閾値数の間に最も正確であったモデルを選択することができる。例えば、ルーティング構成要素８１３は、最後の５予測到着時間に最も正確であったモデルを選択することができる。これは、現在のモデルが正確な予測到着時間を提供できない場合にルーティングモジュール８１３が異なるモデルを使用するのを可能にする。
【０１８２】
図１０は、地理的位置の資産の到着時間を予測又は推定する例示的方法１０００の流れ図である。方法１０００は、ハードウエア（例えば、回路、専用論理、プログラマブル論理、プロセッサ、処理デバイス、中央処理ユニット（ＣＰＵ）、システムオンチップ（ＳｏＣなど）、ソフトウエア（例えば、処理デバイスで起動／実行される命令）、ファームウエア（例えば、マイクロコード）、又はこれらの組合せを含むことができる処理論理によって実行することができる。例えば、この方法は、例えば、コンピュータデバイス、資産管理構成要素（例えば、図８に示した資産管理構成要素８１０）、ルーティング構成要素（例えば、図８に示したルーティング構成要素８１３）、アプリケーション、ソフトウエア構成要素などを用いて実施することができる。方法１０００は、上述のように、ブロック１００５で、位置データ、スケジュールデータ、短期データ（例えば、異なる資産の地理的位置の短期履歴）、及び長期データ（例えば、異なる資産の地理的位置の長期履歴）の１又は２以上を受信することによって開始する。方法１０００は、上述のように、位置データ、スケジュールデータ、短期データ、及び長期データの１又は２以上の基づいて複数のモデルを生成することができる（ブロック１０１０）。方法１０００は、上述のように資産の予測到着時間を決定するために用いる複数のモデルの１つを選択することができる（ブロック１０１５）。例えば、方法１０００は、最後の幾つかの予測到着時間で最も正確だったモデルを選択することができる。方法１０００は、上述のように選択されたモデルに基づいて予測到着時間を生成又は決定することができる（ブロック１０２０）。
【０１８３】
図１１は、資産構成要素（例えば、図８に示した資産構成要素８４１）によって提示することができる例示的ＧＵＩ１１００を示す図である。ＧＵＩ１１００は、オペレータＧＵＩと呼ぶことができる。上述のように、資産（例えば、シャトル、バスなど）は、資産が乗客を乗せるために移動すべきルートを指示するメッセージを受信することができる。資産構成要素は、ＧＵＩ１１００を資産のオペレータに提示して資産のルートを表示することができる。例えば、ＧＵＩ１１００をスマートフォン又はタブレットコンピュータで実行されるアプリケーションによってバスのドライバーに提示することができる。他の実施形態では、ＧＵＩ１１００は、テキストフィールド、サーチバー、ボタン、ラジオボタン、ドロップダウンメニュー、リスト、アイコン、テキスト画像、グラフィクス、テキストボックス又は他のユーザインタフェースウィジェットなどの様々な他のユーザインタフェース要素を含むことができる。
【０１８４】
ＧＵＩ１１００はマップ１１０５を含む。マップ１１０５は、資産がそれに沿って乗客を乗せて且つ降ろすルート１１１０を含む地理的エリアを表示することができる。資産の現在の地理的位置は、アイコン１１２０（例えば、三角）を用いて表示される。地理的エリア内の他の資産の地理的位置は、アイコン１１２５を用いて表示される。図１１に示すように、ＧＵＩ１１００は１０人の乗客が資産からの乗車を要求していることを指示する。
【０１８５】
上述のように、資産構成要素は、オペレータが、乗客、他のオペレータ、第１応答者、又は組織エンティティのユーザと通信するのを可能にすることができる。例えば、資産構成要素は、１又は２以上の通信チャネルに加わることができ、オペレータが２方向ラジオなどに類似の方式で他のオペレータと通信するのを可能にすることができる。ボタン１１１５は、オペレータが通信チャネルを用いて通信するのを可能にすることができる。例えば、ユーザは、ユーザが、通信チャネルの一部である他のユーザ、オペレータなどと話したい時にボタン１１１５を押す又はタップすることができる。
【０１８６】
図１２は、資産構成要素を動作するための例示的方法１２００の流れ図である。方法１２００は、ハードウエア（例えば、回路、専用論理、プログラマブル論理、プロセッサ、処理デバイス、中央処理ユニット（ＣＰＵ）、システムオンチップ（ＳｏＣ）など）、ソフトウエア（例えば、処理デバイスで起動／実行される命令）、ファームウエア（例えば、マイクロコード）、又はこれらの組合せを含むことができる処理論理によって実行することができる。例えば、本発明の方法は、例えば、コンピュータデバイス、資産構成要素（例えば、図８に示した資産構成要素８４１）、アプリケーション、ソフトウエア構成要素などを用いて実施することができる。本方法１２００は、移動ルートを受信することによって開始する（ブロック１２０５）。例えば、方法１２００は、資産管理構成要素（例えば、図８に示した資産管理構成要素８１０）から移動ルートを受信することができる。移動ルートは、上述のように資産がそれに沿って移動しなければならないルート又は経路を指示することができる。
【０１８７】
方法１２００は、資産のオペレータに移動ルートを提示することができる。例えば、方法１２００は、シャトル又はバスのドライバーにＧＵＩ（例えば、図１１に示したＧＵＩ１１００）でマップを提示することができる。マップは、上述のようにバスのドライバーに移動ルートを指示することができる。方法１２００は、資産が移動ルートに沿って移動している間の資産のライブの地理的位置を決定することができる。例えば、方法１２００は、上述のように毎秒、数秒毎などに資産のＧＰＳ座標を継続的に又は定期的に決定することができる。方法１２００は、上述のように、メッセージングシステムの１又は２以上のチャネルに（例えば、図８に示したチャネル８２１Ａから８２１Ｚの１又は２以上に）資産のライブの地理的位置を指示するメッセージを継続的に発行することができる。これは、資産管理構成要素、他のオペレータ、乗客、又は他のユーザが、上述のように１又は２以上のチャネルを購読することによって資産のライブの地理的位置を決定するのを可能にすることができる。
【０１８８】
図１３は、クライアント構成要素（例えば、図８に示したクライアント構成要素８３１）によって提示することができる例示的ＧＵＩ１３００を示す図である。ＧＵＩ１３００は、ユーザＧＵＩと呼ぶことができる。上述のように、クライアント構成要素は、ユーザが第１地理的位置から第２地理的位置にユーザを運ぶ資産を要求できるようにする。クライアント構成要素は、ＧＵＩ１３００をクライアントデバイスのユーザに提示することができる。例えば、ＧＵＩ１３００を、スマートフォン又はタブレットコンピュータで実行されるアプリケーションによって乗客に提示することができる。他の実施形態では、ＧＵＩ１３００は、テキストフィールド、サーチバー、ボタン、ラジオボタン、ドロップダウンメニュー、リスト、アイコン、テキスト画像、グラフィクス、テキストボックス又は他のユーザインタフェースウィジェットなどの様々な他のユーザインタフェース要素を含むことができる。
【０１８９】
ＧＵＩ１３００はテキストフィールド１３０５及び１３１０を含む。テキストフィールド１３０５は、ユーザが第１地理的位置（例えば、開始位置）を指示するのを可能にし、テキストフィールド１３１０は、ユーザが第２地理的位置（例えば、目的地位置）を指示するのを可能にすることができる。ＧＵＩ１３００はボタン１３２５から１３２９を含む。ボタン１３２５から１３２９は、ユーザが第１地理的位置から第２地理的位置に移動するために使いたい資産の種類をユーザが指示するのを可能にする。例えば、ボタン１３２５は、ユーザがバスを使用したいことをユーザが指示するのを可能にする。ボタン１３２６は、ユーザがシャトルを使用したいことをユーザが指示するのを可能にする。ボタン１３２７は、ユーザが相乗り車両を使用したいことをユーザが指示するのを可能にする。ボタン１３２８は、ユーザがタクシーを使用したいことをユーザが指示するのを可能にする。ボタン１３２９は、ユーザがヘリコプターを使用したいことをユーザが指示するのを可能にする。ユーザは、ボタン１３２５から１３２９の１又は２以上を選択して、ユーザが使用したい輸送のモードを指定（例えば、単一又は複数モード輸送を指定）することができる。輸送の他の種類又はモードの追加の又は代替のボタンも可能である。
【０１９０】
ＧＵＩ１３００はマップ１３１５を含む。マップ１３１５は、ユーザに対して薦められる移動ルート１３２０を含む地理的エリアを表示することができる。移動ルート１３２０は、第１地理的位置（例えば、出発位置）及び第２地理的位置（例えば、第２地理的位置）を指示することもできる。ＧＵＩ１３００は、資産及び薦められる移動ルート１３２０に関する他の情報をユーザに指示することもできる。例えば、ＧＵＩ１３００は、ユーザが午前１１時３５分頃に到着するはずであること及びトリップが約２４分かかることを指示することができる。ＧＵＩ１３００は、トリップの価格が４．５０ドルと１５．００ドルの間になることも指示できる。
【０１９１】
図１４は、クライアント構成要素（例えば、図８に示したクライアント構成要素８３１）によって提示することができる例示的ＧＵＩ１４００を示す図である。ＧＵＩ１４００をユーザＧＵＩと呼ぶことができる。上述のように、クライアント構成要素は、ユーザが第１地理的位置から第２地理的位置にユーザを運ぶ資産を要求するのを可能にすることができる。クライアント構成要素は、ＧＵＩ１４００をクライアントデバイスのユーザに提示することができる。例えば、ＧＵＩ１４００を、スマートフォン又はタブレットコンピュータで実行されるアプリケーションによって乗客に提示することができる。他の実施形態では、ＧＵＩ１４００は、テキストフィールド、サーチバー、ボタン、ラジオボタン、ドロップダウンメニュー、リスト、アイコン、テキスト画像、グラフィクス、テキストボックス又は他のユーザインタフェースウィジェットなどの様々な他のユーザインタフェース要素を含むことができる。
【０１９２】
ＧＵＩ１４００は、テキストフィールド１４０５及び１４１０を含む。テキストフィールド１４０５は、ユーザが第１地理的位置（例えば、出発位置）を指示できるようにし、テキストフィールド１４１０は、ユーザが第２地理的位置（例えば、目的地の位置）を指示できるようにする。ＧＵＩ１４００はリスト１４１５も含む。リスト１４１５は、ユーザを第１地理的位置から第２地理的位置に運ぶことができる輸送資産のリストを示すことができる。例えば、リスト１４１５は、パロアルトからサンカルロスにユーザを運ぶことができる列車のリストを表示することができる。リスト１４１５は、ユーザに利用可能な異なる資産に関する情報も示す。例えば、リスト１４１５は、列車番号１５９（次に利用可能な列車）が午後３時４７分頃にパロアルトを出発し午後４時１分ごろにサンカルロスに到着することを指示でき、且つ列車番号１５９がサンカルロスに到着するのに約１４分かかることを指示できる。リスト１４１５は、パロアルトを既に出発した同じルートの前の列車（例えば、列車番号１５５及び列車番号２５７）とこれらの出発及び到着時間を含むこともできる。前の列車は、リスト１４１５で暗くすることができる（又は異なる色で表示することができる）。
【０１９３】
図１５は、クライアント構成要素を動作するための例示的方法１５００の流れ図である。方法１５００は、ハードウエア（例えば、回路、専用論理、プログラマブル論理、プロセッサ、処理デバイス、中央処理ユニット（ＣＰＵ）、システムオンチップ（ＳｏＣ）など）、ソフトウエア（例えば、処理デバイスで起動／実行される命令）、ファームウエア（例えば、マイクロコード）、又はこれらの組合せを含むことができる処理論理によって実行することができる。例えば、この方法は、例えば、コンピュータデバイス、クライアント構成要素（例えば、図８に示したクライアント構成要素８３１）、アプリケーション、ソフトウエア構成要素などを用いて実施することができる。方法１５００は、ユーザから目的地の位置を受信することによって開始する（ブロック１５０５）。例えば、ユーザは、上述のように、図１４に示したＧＵＩ１４００などのＧＵＩのテキストフィールドを用いて出発位置及び目的地位置を入力することができる。方法１５００は、ブロック１５１０で資産管理構成要素（例えば、図８に示した資産管理構成要素８１０）に目的地位置を提供することができる。例えば、方法１５００は、出発位置及び目的地位置を示すメッセージをメッセージングシステムの１又は２以上のチャネルに発行することができる。
【０１９４】
方法１５００は、移動ルートのリストを受信することができ、且つ移動ルートのリストをユーザに提示することができる（ブロック１５１５）。移動ルートのリストは、上述のように、移動ルートに使用される資産の種類、移動ルートの合計推定時間、推定到着時間、価格設定情報などの情報を含むことができる。方法１５００は、移動ルートのリストから移動ルートの１つを選択するユーザからの入力を受信することができる（ブロック１５２０）。例えば、ユーザは、ＧＵＩを使用して移動ルートのリストから１つの移動ルートをタップ又は選択することができる。方法１５００は、ブロック１５２５でトリップを開始してユーザにライブの地理的位置を表示することができる。例えば、方法１５００は、出発位置でユーザを乗せてトリップを開始するよう１又は２以上の資産に要求することができる。方法１５００は、ユーザのライブの地理的位置を継続的に又は定期的に決定することもできる。方法１５００は、ユーザが選択された移動ルートに沿って移動した時にユーザの生の地理的位置をマップに表示することができる。
【０１９５】
図１６は、クライアント構成要素（例えば、図８に示したクライアント構成要素８３１）又は資産構成要素（例えば、図８に示した資産構成要素８４１）によって提示することができる例示的ＧＵＩ１６００を示す図である。ＧＵＩ１６００はユーザＧＵＩとすることができ、又はオペレータＧＵＩとすることができる。上述のように、クライアント構成要素又は資産構成要素は、資産を使用又は動作している時にユーザ又はオペレータが事件又は問題を報告するのを可能にすることができる。クライアント構成要素又は資産構成要素は、ＧＵＩ１６００をユーザ又はオペレータに提示することができる。例えば、ＧＵＩ１６００は、スマートフォン又はタブレットコンピュータで実行されるアプリケーションによって乗客に提示することができる。他の実施形態では、ＧＵＩ１６００は、テキストフィールド、サーチバー、ボタン、ラジオボタン、ドロップダウンメニュー、リスト、アイコン、テキスト画像、グラフィクス、テキストボックス又は他のユーザインタフェースウィジェットなどの様々な他のユーザインタフェース要素を含むことができる。
【０１９６】
ＧＵＩ１６００は、ボタン１６０５、１６１０、１６１５、及び１６２０を含む。ボタン１６０５から１６２０は、ユーザが資産管理構成要素（例えば、図８に示す資産管理構成要素８１０）に異なる種類の問題又は事件を報告するのを可能にすることができる。例えば、ボタン１６０５は、資産のオペレータがタイヤのパンクを報告し且つ道路沿いの助けを要求するのを可能にすることができる。別の例では、ボタン１６１０は、乗客が使用している資産が交通事故に巻き込まれたことを乗客が報告するのを可能にすることができる。更に他の例では、ボタン１６１５は、オペレータが規則に従わないか又は非協力的な乗客を報告するのを可能にすることができる。別の例では、ボタン１６２０は、ユーザが医療的緊急事態にある（例えば、心臓発作、発作など）を資産のオペレータが報告するのを可能にすることができる。他の追加の又は代替のボタンも可能である。
【０１９７】
図１７は、資産管理構成要素（例えば、図８に示した資産管理構成要素８１０）によって提示できる例示的ＧＵＩ１７００を示す図である。ＧＵＩ１７００は、管理者ＧＵＩと呼ぶことができる。上述のように、資産管理構成要素は、地理的エリア内の様々な資産を管理又は追跡することができる。資産管理構成要素は、組織エンティティのユーザ（例えば、管理者、マネージャなど）にＧＵＩ１７００を提示して、ユーザが様々な資産のライブの地理的位置及び様々な資産に関する他の情報を見るのを可能にすることができる。例えば、ＧＵＩ１７００は、スマートフォン、タブレットコンピュータ、ラップトップコンピュータ、デスクトップコンピュータなどで実行されるアプリケーション（例えば、ウェブブラウザ）によってユーザに提示することができる。他の実施形態では、ＧＵＩ１７００は、テキストフィールド、サーチバー、ボタン、ラジオボタン、ドロップダウンメニュー、リスト、アイコン、テキスト画像、グラフィクス、テキストボックス又は他のユーザインタフェースウィジェットなどの様々な他のユーザインタフェース要素を含むことができる。
【０１９８】
ＧＵＩ１７００は、地理的エリアのマップ１７０５を含む。マップ１７０５は、地理的エリア内の資産のライブの地理的位置を指示できる様々なアイコン１７１０を含む。アイコン１７１０の位置は、異なる資産が地理的エリアにおけるルートに沿って移動する時に変わることができる。例えば、バス番号２２６を表すアイコン１７１０は、バスがマップ１７０５上の高速道路９に沿って北に運転する時に移動することができる。アイコン１７１０は上述のようにライブで更新することができる。例えば、アイコン１７１０は、資産の移動から１秒、数秒以内などで更新することができる。
【０１９９】
図１８は、資産管理構成要素（例えば、図８に示した資産管理構成要素８１０）によって提示できる例示的ＧＵＩ１８００を示す図である。ＧＵＩ１８００は、管理者ＧＵＩと呼ぶことができる。上述のように、資産管理構成要素は、地理的エリア内の様々な資産を管理又は追跡することができる。資産管理構成要素は、組織エンティティのユーザ（例えば、管理者、マネージャなど）にＧＵＩ１８００を提示して、ユーザが地理的エリア内の資産に関する様々な情報（例えば、性能メトリクス、利用率など）を見るのを可能にすることができる。例えば、ＧＵＩ１８００は、スマートフォン、タブレットコンピュータ、ラップトップコンピュータ、デスクトップコンピュータなどで実行されるアプリケーション（例えば、ウェブブラウザ）によってユーザに提示することができる。他の実施形態では、ＧＵＩ１８００は、テキストフィールド、サーチバー、ボタン、ラジオボタン、ドロップダウンメニュー、リスト、アイコン、テキスト画像、グラフィクス、テキストボックス又は他のユーザインタフェースウィジェットなどの様々な他のユーザインタフェース要素を含むことができる。
【０２００】
ＧＵＩ１８００は、特定のルートでサービスを提供できる資産に関する情報を含む。例えば、ＧＵＩ１８００は、ルートＷＥＳＴに沿って移動する列車に関する情報を含む。例証の目的で且つ制限ではなく、ＧＵＩ１８００は、ルートＷＥＳＴを移動する１７の列車があることを示す。ＧＵＩ１８００は、現在ゼロである列車の利用率を指示することもできる。ＧＵＩ１８００は、ルートＷＥＳＴ上の様々な停止地点を列挙できるリスト１８０５を含む。リスト１８０５は、停留所の名前（例えば、「ヘンダスン」、「スワンソン」など）、停留所に到着する次の列車の識別子（例えば、ＡＭ４７１、ＡＭ６８７など）、停留所の次の列車のスケジュール到着時間、及び列車が時間通りかどうか（例えば、ＯＴ）などの情報を含む。
【０２０１】
図１９は、資産管理構成要素（例えば、図８に示した資産管理構成要素８１０）によって提示できる例示的ＧＵＩ１９００を示す図である。ＧＵＩ１９００は、管理者ＧＵＩと呼ぶことができる。上述のように、資産管理構成要素は、地理的エリア内の様々な資産を管理又は追跡することができる。資産管理構成要素は、組織エンティティのユーザ（例えば、管理者、マネージャなど）にＧＵＩ１９００を提示して、地理的エリア内の資産に関する情報（例えば、性能メトリクス、利用率など）をユーザが見るのを可能にすることができる。例えば、ＧＵＩ１９００は、スマートフォン、タブレットコンピュータ、ラップトップコンピュータ、デスクトップコンピュータなどで実行されるアプリケーション（例えば、ウェブブラウザ）によってユーザに提示することができる。他の実施形態では、ＧＵＩ１９００は、テキストフィールド、サーチバー、ボタン、ラジオボタン、ドロップダウンメニュー、リスト、アイコン、テキスト画像、グラフィクス、テキストボックス又は他のユーザインタフェースウィジェットなどの様々な他のユーザインタフェース要素を含むことができる。
【０２０２】
ＧＵＩ１９００は、ユーザによって選択された資産に関する情報を含む。例えば、図１８に関して、ユーザは、リスト１８０５から１又は２以上の資産を選択することができる。これに代えて、ユーザは、図１７に示したＧＵＩ１７００から１又は２以上のアイコン１７１０を選択することができる。ＧＵＩ１９００をユーザに提示して選択された資産に関する情報を提供することができる。ＧＵＩ１９００は、選択された資産に関する情報を提供できる資産情報１９０５を表示することができる。例えば、資産情報１９０５は、選択された資産が列車であることを識別子ＡＭ６４６で指示することができる。この資産情報は、列車の次の停留所、列車の現在の速度、列車の利用率などを指示することもできる。ＧＵＩ１９００はリスト１９１０も含む。リスト１９１０は、列車が止まった様々な停留所及び停留所の各々のスケジュール到着時間を示すこともできる。リスト１９１０は、列車が停留所に遅れて又は時間通りに到着したかどうか示すこともできる。例えば、ユーザによって選択された資産の種類に応じて、選択された資産に関する何れの適切な情報も、資産情報１９０５として及び／又はリスト１９１０に表示することができる。
【０２０３】
図２０は、資産管理構成要素を動作するための例示的方法の流れ図である。方法２０００は、ハードウエア（例えば、回路、専用論理、プログラマブル論理、プロセッサ、処理デバイス、中央処理ユニット（ＣＰＵ）、システムオンチップ（ＳｏＣ）など）、ソフトウエア（例えば、処理デバイスで起動／実行される命令）、ファームウエア（例えば、マイクロコード）、又はこれらの組合せを含むことができる処理論理によって実行することができる。例えば、この方法は、例えば、コンピュータデバイス、資産管理構成要素（例えば、図８に示した資産管理構成要素８１０）、資産管理構成要素の副構成要素（例えば、モニタリング構成要素、ルーティング構成要素など）、アプリケーション、ソフトウエア構成要素などを用いて実施することができる。方法２０００は、複数の資産のライブの地理的位置を指示する１又は２以上のメッセージを受信することによって開始する（ブロック２００５）。このメッセージは、メッセージングシステムの１又は２以上のチャネルに複数の資産によって発行することができる。
【０２０４】
方法２０００は、複数の資産のライブの地理的位置を表示することができる（ブロック２０１０）。例えば、方法２０００は、地理的エリアのマップを含むＧＵＩを表示することができる。このマップは、図１７に示すように複数の資産のライブの地理的位置を示すアイコンを含むことができる。方法２０００は、目的地に移動する要求をユーザから受信することができる（ブロック２０１５）。例えば、方法２０００は、通信チャネルでユーザによって発行されたメッセージを受信することができ、このメッセージは目的地を指示することができる。方法２０００は、ユーザが指定された目的地に移動するのを可能にする１又は２以上の移動ルートを決定することができる（ブロック２０２０）。１又は２以上の移動ルートは異なる資産を使用できるが、資産の一部は、１又は２以上の移動ルートの間で共有することができる。方法２０００は、１又は２以上の移動ルートを指示する１又は２以上のメッセージをユーザに発行する（ブロック２０２５）。
【０２０５】
図２１は、ビデオデータを処理又は分析する例示的方法２１００の流れ図である。方法２１００は、ハードウエア（例えば、回路、専用論理、プログラマブル論理、プロセッサ、処理デバイス、中央処理ユニット（ＣＰＵ）、システムオンチップ（ＳｏＣ）など）、ソフトウエア（例えば、処理デバイスで起動／実行される命令）、ファームウエア（例えば、マイクロコード）、又はこれらの組合せを含むことができる処理論理によって実行することができる。例えば、この方法は、例えば、コンピュータデバイス、資産管理構成要素（例えば、図８に示した資産管理構成要素８１０）、ビデオ構成要素（例えば、図８に示したビデオ構成要素８１２）、アプリケーション、ソフトウエア構成要素などを用いて実施することができる。方法２１００は、１又は２以上の資産からライブのビデオデータを受信することによって開始する（ブロック２１０５）。例えば、資産は、ビデオカメラ又は他の適切なビデオ／カメラソースを含むことができ、上述のように、ライブビデオを含むメッセージをメッセージングシステムの１又は２以上のチャネルに発行することができる。
【０２０６】
方法２１００は、任意的にビデオを処理且つ分析することができる（ブロック２１１０）。例えば、方法２１００は、上述のようにライブのビデオデータに現れる車の数をカウントすることができる。別の例では、方法２１００はライブのビデオデータを処理して、ライブのビデオデータに現れる車からナンバープレートを除く又はぼかすことができる。方法２１００は、ライブビデオデータを１又は２以上のユーザに提供することができる（ブロック２１１５）。例えば、方法２１００は、ライブビデオデータをメッセージングシステムの１又は２以上のチャネルに再発行して資産の乗客及びオペレータがライブビデオを見るのを可能にすることができる。方法２１００は、ライブビデオデータの分析を任意的に１又は２以上のユーザに提供することができる（ブロック２１２０）。例えば、方法２１００は、ライブビデオデータの分析に基づいて渋滞が検出されたことをユーザに指示できる。別の例では、方法２１００は、ライブビデオデータの分析に基づいて事故が地理的位置に検出されたことをユーザに指示できる。
【０２０７】
図２２は、資産管理システムの例示的認証手順を示す図である。上述のように、資産のオペレータ、資産の乗客又はユーザ、及び１又は２以上の組織エンティティのユーザは、資産管理システムの使用を許可される前に資産管理システムによって自らを認証することができる。例えば、乗客は、乗客が資産管理システムによって認証されるまでトリップに資産を要求することはできない。別の例では、資産のオペレータは、オペレータが資産管理システムによって認証されるまで乗客から要求を受信することはできない。更に他の例では、組織エンティティのユーザは、組織エンティティのユーザが資産管理システムによって認証されるまで地理的エリア内の資産のステータス及び位置を見ることはできない。
【０２０８】
乗客（例えば、資産のユーザ）は、認証クレデンシャルを認証構成要素８１１にブロック（Ｃ１）で提供することによって資産管理システムに自らを認証することができる。乗客は、メッセージングシステム８２０によって使用できるセキュリティトークンを要求して、メッセージングシステム８２０における異なるチャネルへのアクセスが乗客に許可される。乗客のセキュリティトークンは、クライアント構成要素８３１が資産管理構成要素を使用、異なる資産を要求、資産の使用に対する支払いなどをするのを可能にすることができる。ブロック（Ｃ２）で、クライアント構成要素８３１は、乗客のセキュリティトークンをメッセージングシステム８２０に提供することができ、乗客の地理的位置を提供することができる。メッセージングシステム８２０は、乗客のセキュリティトークンが有効である（例えば、満了していない）ことを検証でき、且つ、例えば、セキュリティトークンの許可に基づいて且つ乗客の地理的位置に基づいて乗客がアクセスを持つはずのメッセージングシステム８２０のチャネルを決定することができる。
【０２０９】
資産のオペレータは、ブロック（Ａ１）で認証クレデンシャルを認証構成要素８１１に提供することによって資産管理システムに自らを認証することができる。オペレータは、メッセージングシステム８２０によって使用できるセキュリティトークンを要求して、メッセージングシステム８２０の異なるチャネルへのアクセスがオペレータに許可される。オペレータのセキュリティトークンは、資産構成要素８４１が資産構成要素を使用する、ユーザからの乗車の要求を受信する、要求を受け付けることができるようにする。ブロック（Ａ２）で、資産構成要素８４１は、オペレータのセキュリティトークンをメッセージングシステム８２０に提供することができ、オペレータの地理的位置を提供することができる。メッセージングシステム８２０は、オペレータのセキュリティトークンが有効であることを検証でき、例えば、セキュリティトークンの許可に基づいて及びオペレータの地理的位置に基づいてオペレータがアクセスを有するはずのメッセージングシステム８２０のチャネルを決定することができる。
【０２１０】
組織エンティティのユーザは、ブロック（ＯＥ１）で認証クレデンシャルを認証構成要素８１１に提供することによって資産管理システムに自らを認証することができる。組織エンティティのユーザは、メッセージングシステム８２０によって使用できるセキュリティトークンを要求して、メッセージングシステム８２０の異なるチャネルへのアクセスがユーザに許可される。ユーザのセキュリティトークンは、資産構成要素８４１が、資産管理構成要素を使用して、地理的エリアにおける資産のライブ地理的位置、利用、ステータス、状態などをモニタするのを可能にすることができる。ブロック（ＯＥ２）で、資産構成要素８４１は、ユーザのセキュリティトークンをメッセージングシステム８２０に提供することができ、ユーザの地理的位置を提供することができる。メッセージングシステム８２０は、ユーザのセキュリティトークンが有効であることを検証でき、例えば、セキュリティトークンの許可に基づいて及びユーザの地理的位置に基づいてユーザがアクセスを有するはずのメッセージングシステム８２０のチャネルを決定することができる。
【０２１１】
本明細書に説明する主題及び動作の実施形態は、本明細書及び本明細書の構造的均等物又はこれらの１又は２以上の組合せで開示する構造を含むデジタル電子回路、又はコンピュータソフトウエア、ファームウエア、又はハードウエアを用いて実施することができる。本明細書に説明する主題の実施形態は、１又は２以上のコンピュータプログラムとして、すなわち、デジタル処理装置によって実行するために又はその動作を制御するためにコンピュータストレージ媒体上に符号化されるコンピュータプログラム命令の１又は２以上のモジュールとして実施することができる。これに代えて又はこれに加えて、プログラム命令は、人工的に生成された伝播信号、例えば、データ処理装置によって実行するのに適する受信装置に送信する情報を符号化するために生成される機械発生式電気、光学、又は電磁信号で符号化することができる。コンピュータストレージ媒体は、コンピュータ可読ストレージデバイス、コンピュータ可読ストレージ基板、ランダム又はシリアルアクセスメモリアレイ又はデバイス、又はこれらの１又は２以上の組合せとすることができ、又はこれらに含めることができる。更に、コンピュータストレージ媒体は伝播信号ではないが、コンピュータストレージ媒体は、人工的発生式伝播信号で符号化されたコンピュータプログラム命令のソース又は宛先とすることができる。コンピュータストレージ媒体は、１又は２以上の個別の物理的構成要素又は媒体（例えば、複数のＣＤ、ディスク、又は他のストレージデバイス）とすることができ、又はこれらに含めることができる。
【０２１２】
本明細書に説明する動作は、１又は２以上のコンピュータ可読ストレージデバイスに格納されたか又は他のソースから受信したデータにデータ処理装置によって実行される動作として実施することができる。
【０２１３】
「データ処理装置」という語は、一例として、プログラマブルプロセッサ、コンピュータ処理デバイス、コンピュータ、システムオンチップ、又はマルチプロセッサ、又は上述の組合せを含むデータを処理するための全ての種類の装置、デバイス、及び機械を網羅する。コンピュータ処理デバイスは、専用論理回路、例えば、ＦＰＧＡ（フィールドプログラマブルゲートアレイ）又はＡＳＩＣ（特定用途向け集積回路）、中央処理ユニット（ＣＰＵ）、マルチコアプロセッサなどを含むことができる１又は２以上のプロセッサを含むことができる。装置は、ハードウエアに加えて、問題のコンピュータプログラムのための実行環境を生成するコード、例えば、プロセッサファームウエア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォーム実行時間環境、仮想機械、又はこれらの１又は２以上の組合せを構成するコードを含むことができる。装置及び実行環境は、ウェブサービス、分散コンピュータ及びグリッドコンピュータインフラストラクチャーのような様々な異なるコンピュータモデルインフラストラクチャーを実現することができる。
【０２１４】
コンピュータプログラム（プログラム、ソフトウエア、ソフトウエアアプリケーション、スクリプト、又はコードとしても公知）は、コンパイル又は解釈言語、宣言、手順、又は機能言語を含むプログラミング言語のあらゆる形態で書くことができ、独立プログラムとして又はモジュール、構成要素、サブルーチン、オブジェクト、又はコンピュータ環境に使用するのに適する他のユニットとして含む何れの形態でも配備することができる。コンピュータプログラムは、ファイルシステムのファイルに対応することができるが、対応する必要はない。プログラムは、他のプログラム又はデータ（例えば、マークアップ言語リソースに格納された１又は２以上のスクリプト）を保持するファイルの一部分に、問題のプログラム専用単一ファイルに、又は複数の調節されたファイル（例えば、１又は２以上のモジュール、サブプログラム、又はコードの一部分を格納するファイル）に格納することができる。コンピュータプログラムは、１つのコンピュータ又は１つのサイトに位置するか又は複数のサイトにわたって分散されて通信ネットワークによって相互接続された複数のコンピュータで実行されるように配備される。
【０２１５】
本明細書に説明した処理及び論理フローは、１又は２以上のコンピュータプログラムを実行する１又は２以上のプログラマブルプロセッサによって実行され、入力データを演算して出力を生成することによってアクションを実行することができる。処理及び論理フローは、専用論理回路、例えば、ＦＰＧＡ（フィールドプログラマブルゲートアレイ）又はＡＳＩＣ（特定用途向け集積回路）によって実行することができ、装置は、専用論理回路、例えば、ＦＰＧＡ（フィールドプログラマブルゲートアレイ）又はＡＳＩＣ（特定用途向け集積回路）として実施することができる。
【０２１６】
コンピュータプログラムの実行に適するプロセッサは、一例として、汎用及び専用マイクロプロセッサの両方、及びあらゆる種類のデジタルコンピュータの何れか１つ又はそれよりも多いプロセッサを含む。一般的に、プロセッサは、読取専用メモリ又はランダムアクセスメモリ又はこれらの両方から命令及びデータを受信する。コンピュータの基本的な要素は、命令に従ってアクションを実行するためのプロセッサ、及び命令及びデータを格納するための１又は２以上のメモリデバイスである。一般的にコンピュータは、データを格納するための１又は２以上の大容量ストレージデバイス、例えば、磁気ディスク、磁気光学ディスク、又は光学ディスク、又は固体ドライブを含むか、これらからデータを受信するか又はデータを転送し、又はこの両方のために動作的に結合される。しかしながら、コンピュータは、そのようなデバイスを有する必要はない。コンピュータは、別のデバイス、幾つか挙げると、例えば、スマートフォン、移動音声又は映像プレーヤ、ゲームコンソール、全地球測位システム（ＧＰＳ）受信機、又は携帯式ストレージデバイス（例えば、ユニバーサルシリアルバス（ＵＳＢ）フラッシュドライブ）に組み込むことができる。コンピュータプログラム命令及びデータを格納するのに適するデバイスは、一例として、半導体メモリデバイス、例えば、ＥＰＲＯＭ、ＥＥＰＲＯＭ、及びフラッシュメモリデバイス、磁気ディスク、例えば、内部ハードディスク又は着脱可能ディスク、磁気光学ディスク、及びＣＤ−ＲＯＭ及びＤＶＤ−ＲＯＭディスクを含む不揮発性メモリ、媒体、及びメモリデバイスの全ての形態を含む。プロセッサ及びメモリは、専用論理回路によって補足又は専用論理回路に組み込むことができる。
【０２１７】
ユーザとの対話を提供するために、本明細書に説明する主題の実施形態は、ディスプレイデバイス、例えば、ユーザに情報を表示するためのディスプレイデバイス、例えば、ＣＲＴ（ブラウン管）又はＬＣＤ（液晶ディスプレイ）モニタ、及びキーボード及びポインティングデバイス、ユーザがコンピュータに入力を与えることを可能にする例えば、マウス、トラックボール、タッチパッド、又はスタイラスを有するコンピュータを用いて実施することができる。他の種類のデバイスを使用して、同様にユーザとの対話を提供することができ、例えば、ユーザに提供されるフィードバックは、センサ式フィードバックのあらゆる形態、例えば、視覚フィードバック、聴覚フィードバック、又は触知フィードバックとすることができ、ユーザからの入力は、音響、音声、又は触知入力を含むあらゆる形態で受信することができる。コンピュータは、ユーザによって使用されるデバイスにリソースを送信し、デバイスからリソースを受信することにより、例えば、ウェブブラウザから受信した要求に応じてユーザのクライアントデバイスのウェブブラウザにウェブページを送信することによってユーザと対話することができる。
【０２１８】
本明細書に説明する主題の実施形態は、バックエンド構成要素を例えば、データサーバとして含むか、又はミドルウエア構成要素、例えば、アプリケーションサーバを含むか、又はフロントエンド構成要素、例えば、ユーザが本明細書に説明する主題の実施と対話することを可能にするグラフィカルユーザインタフェース又はウェブブラウザを有するクライアントコンピュータ、又は１又は２以上のこれらのバックエンド、ミドルウエア、又はフロントエンド構成要素のあらゆる組合せを含むコンピュータシステムを用いて実施することができる。システムの構成要素は、デジタルデータ通信のあらゆる形態又は媒体、例えば、通信ネットワークによって相互接続することができる。通信ネットワークの例は、ローカルエリアネットワーク（「ＬＡＮ」）及びワイドエリアネットワーク（「ＷＡＮ」）、インターネットワーク（例えば、インターネット）及びピアツーピアネットワーク（例えば、アドホックピアツープアネットワーク）を含む。
【０２１９】
コンピュータシステムは、クライアント及びサーバを含むことができる。クライアント及びサーバは、一般的に互いから遠隔にあり、一般的に通信ネットワーク上で対話する。クライアントとサーバの関係は、それぞれのコンピュータで実行されて互いにクライアント−サーバ関係を有するコンピュータプログラムによって発生する。一部の実施形態では、サーバは、データ（例えば、ＨＴＭＬページ）をクライアントデバイスに送信する（クライアントデバイスと対話するユーザにデータを表示してユーザからユーザ入力を受信するために）。クライアントデバイスで生成されたデータ（例えば、ユーザ対話の結果）は、サーバでクライアントデバイスから受信することができる。
【０２２０】
１又は２以上のコンピュータのシステムは、動作中にシステムにアクションを実行させるシステム上にインストールされたソフトウエア、ファームウエア、ハードウエア、又はその組合せを有することによって特定の動作又はアクションを実行するように構成することができる。１又は２以上のコンピュータプログラムは、データ処理装置によって実行された時に装置にアクションを実行させる命令を含むことによって特定の動作又はアクションを実行するように構成することができる。
【０２２１】
本明細書は多くの特定の実施の詳細を含有するが、それらは、何れの発明又は主張することができる範囲の制限として解釈すべきではなく、逆に特定の発明の特定の実施形態に固有の特徴の説明として解釈しなければならない。個別の実施形態の関連で本明細書に説明するある一定の特徴は、単一実施形態に組み合わせて実施することができる。対照的に、単一実施形態の関連で説明する様々な特徴は、複数の実施形態で別々に又はあらゆる適切な部分組合せを用いて実施することができる。更に、特徴は、ある一定の組合せで作用するように上述し、更にそのように最初に主張したが、主張した組合せからの１又は２以上の特徴は、一部の事例では組合せから削除することができ、主張した組合せを部分組合せ又は部分組合せの変形に向けることができる。
【０２２２】
同様に、動作は、特定の順序で図面に示されているが、これは、望ましい結果を達成するためにそのような動作を示された特定の順序又は連続的な順序で実行し、又は全ての例示された動作を実行することが望ましいとして理解すべきではない。ある状況では、マルチタスク及び並列処理が有利である場合がある。上述の実施形態における様々なシステム構成要素の分離は、全ての実施形態においてそのような分離を要求するものとして理解すべきではなく、説明したプログラム構成要素及びシステムは、一般的に単一ソフトウエア製品に互いに統合するか又は複数のソフトウエア製品にパッケージ化することができることを理解しなければならない。
【０２２３】
すなわち、本主題の特定の実施形態を説明した。他の実施形態も特許請求の範囲内である。一部の事例では、特許請求の範囲に説明するアクションを異なる順序で実行して望ましい結果を達成することができる。更に、添付の図に示す処理は、望ましい結果を達成するために必ずしも示す特定の順序又は連続的な順序を必要としない。ある一定の実施構成では、マルチタスク及び並列処理が有利である場合がある。
【符号の説明】
【０２２４】
８１０  資産管理構成要素
８１１  承認構成要素
８１２  ビデオ構成要素
８１３  ルーティング構成要素
８１４  価格設定構成要素
８１５  モニタリング構成要素
８１６  通信構成要素
８１７  ユーザインタフェース構成要素
８１８  フィルタリング構成要素
８２０  メッセージングシステム
ＣＨＡＮＮＥＬ  ８２１Ａ  チャネル８２１Ａ
ＣＨＡＮＮＥＬ  ８２１Ｚ  チャネル８２１Ｚ
８３０  クライアントデバイス
８３１  クライアント構成要素
８３０  クライアントデバイス
８３１  クライアント構成要素
８４０  資産
８４１  資産構成要素
８４０  資産
８４１  資産構成要素
【図１Ａ】
2020515818.tif 000012
【図１Ｂ】
2020515818.tif 000013
【図２】
2020515818.tif 000014
【図３Ａ】
2020515818.tif 000015
【図３Ｂ】
2020515818.tif 000016
【図４Ａ】
2020515818.tif 000017
【図４Ｂ】
2020515818.tif 000018
【図４Ｃ】
2020515818.tif 000019
【図５Ａ】
2020515818.tif 000020
【図５Ｂ】
2020515818.tif 000021
【図５Ｃ】
2020515818.tif 000022
【図５Ｄ】
2020515818.tif 000023
【図６】
2020515818.tif 000024
【図７Ａ】
2020515818.tif 000025
【図７Ｂ】
2020515818.tif 000026
【図７Ｃ】
2020515818.tif 000027
【図７Ｄ】
2020515818.tif 000028
【図８】
2020515818.tif 000029
【図９】
2020515818.tif 000030
【図１０】
2020515818.tif 000031
【図１１】
2020515818.tif 000032
【図１２】
2020515818.tif 000033
【図１３】
2020515818.tif 000034
【図１４】
2020515818.tif 000035
【図１５】
2020515818.tif 000036
【図１６】
2020515818.tif 000037
【図１７】
2020515818.tif 000038
【図１８】
2020515818.tif 000039
【図１９】
2020515818.tif 000040
【図２０】
2020515818.tif 000041
【図２１】
2020515818.tif 000042
【図２２】
2020515818.tif 000043
【国際調査報告】
2020515818.tif 000044
2020515818.tif 000045
2020515818.tif 000046