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

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

▶ キンドリル・インクの特許一覧

特許7551592複数のサービスプロバイダ間でデータを共有するためのコンピュータ実装方法、コンピュータプログラム製品およびコンピュータシステム(コラボレーションチャネルを介したエッジレベルでのサービスプロバイダ間のデータ共有)
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-06
(45)【発行日】2024-09-17
(54)【発明の名称】複数のサービスプロバイダ間でデータを共有するためのコンピュータ実装方法、コンピュータプログラム製品およびコンピュータシステム(コラボレーションチャネルを介したエッジレベルでのサービスプロバイダ間のデータ共有)
(51)【国際特許分類】
   G06F 21/62 20130101AFI20240909BHJP
   H04L 9/14 20060101ALI20240909BHJP
   G06F 16/23 20190101ALI20240909BHJP
【FI】
G06F21/62 318
H04L9/14
G06F16/23
【請求項の数】 19
(21)【出願番号】P 2021174308
(22)【出願日】2021-10-26
(65)【公開番号】P2022094308
(43)【公開日】2022-06-24
【審査請求日】2023-04-24
(31)【優先権主張番号】17/120,571
(32)【優先日】2020-12-14
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】521555742
【氏名又は名称】キンドリル・インク
【氏名又は名称原語表記】Kyndryl Inc.
【住所又は居所原語表記】One Vanderbilt Avenue,15th Floor,New York,New York 10017,USA
(74)【代理人】
【識別番号】110000420
【氏名又は名称】弁理士法人MIP
(72)【発明者】
【氏名】ロサッコ、ヴィト
(72)【発明者】
【氏名】ギアンフェリチ、アンドレア
(72)【発明者】
【氏名】ポセ、ピエルフランチェスコ
【審査官】▲柳▼谷 侑
(56)【参考文献】
【文献】特表2017-532653(JP,A)
【文献】特開2002-091818(JP,A)
【文献】特開2018-195154(JP,A)
【文献】特開2018-63451(JP,A)
【文献】特開2018-5818(JP,A)
【文献】特開2006-178750(JP,A)
【文献】特表2014-526171(JP,A)
【文献】米国特許出願公開第2018/0063123(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/14
G06F 16/23
G06F 21/10
G06F 21/60 - 21/88
H04L 9/14
(57)【特許請求の範囲】
【請求項1】
複数のサービスプロバイダ間でデータを共有するためのコンピュータ実装方法であって、
一連の中央コンピューティングシステムから一連の利用可能通知を受信することであって、当該利用可能通知は、一のプロデューサコンピューティングシステムが、自身が入手可能なデータのデータカテゴリのうち、共有カテゴリのデータの共有に利用可能であることを示すものであることと、
前記一連の中央コンピューティングシステムから権限付与通知を受信することであって、当該権限付与通知は、一のコンシューマコンピューティングシステムに対して、対応するサービスプロバイダの一連のプロデューサコンピューティングシステムによって提供される前記共有カテゴリの前記データを受信する権限を付与することを示すものであることと、
前記一連のプロデューサコンピューティングシステムと、前記共有カテゴリの前記データを受信する権限を付与された一のコンシューマコンピューティングシステムとの間に一連のコラボレーションチャネルを確立することであって、当該コラボレーションチャネルは、プロデューサコンピューティングシステムによって、当該コラボレーションチャネルにおける当該コンシューマコンピューティングシステムに対して当該共有カテゴリの当該データを提供するために用いられるものであることと、
を含み、
それぞれの前記プロデューサコンピューティングシステムが対応する暗号化鍵で共有されるカテゴリのデータを暗号化し、前記コラボレーションチャネルのすべてのコンシューマエッジサーバに対して前記共有カテゴリのデータ、対応するプロデューサコンピューティングシステムの識別値およびデジタル署名を含むレコードをマルチキャストして前記カテゴリの前記データを、ピア・ツウ・ピア(P2P)方式において前記コンシューマエッジサーバの間で共有させ、
それぞれの前記コンシューマエッジサーバが前記デジタル署名に従って前記レコードが対応する前記プロデューサコンピューティングシステムにより提供されたことを検証し、検証されると前記カテゴリの前記データを復号する、方法。
【請求項2】
前記対応するサービスプロバイダは、(i)一連のデータカテゴリのデータを収集するための複数の収集装置と、(ii)当該収集装置の対応する群により収集されたデータを含むデータを前処理するための一連のエッジコンピューティングシステムと、(iii)当該エッジコンピューティングシステムによって提供されたデータを処理するための中央コンピューティングシステムと、を有し、
前記エッジコンピューティングシステムは、前記中央コンピューティングシステムよりも、対応する前記収集装置に物理的に近い、
請求項1に記載の方法。
【請求項3】
前記コラボレーションチャネルの各々における一連の対応するコンシューマコンピューティングシステムと、前記共有カテゴリの各々の一連の暗号鍵とを関連付けることをさらに含み、
前記暗号鍵を用いて、
対応するプロデューサコンピューティングシステムが、前記共有カテゴリの前記データを暗号化して、前記コラボレーションチャネルにおける前記一連の対応するコンシューマコンピューティングシステムに暗号化データとして提供し、
前記共有カテゴリの前記データを受信する権限を付与された前記コラボレーションチャネルにおける前記一連の対応するコンシューマコンピューティングシステムが、前記暗号化データを復号する、
請求項1に記載の方法。
【請求項4】
前記一連の暗号鍵を生成することと、
対応するプロデューサコンピューティングシステムおよび対応するコンシューマコンピューティングシステムに配布するために、前記共有カテゴリの各々の前記一連の暗号鍵を、前記一連の中央コンピューティングシステムに送信することと、をさらに含む、
請求項3に記載の方法。
【請求項5】
前記権限付与通知を受信することは、対応するプロデューサコンピューティングシステムの中央コンピューティングシステムと、対応するコンシューマコンピューティングシステムの中央コンピューティングシステムとの間で、前記共有カテゴリの前記データを共有する合意がなされたことに応じて行われる、
請求項1に記載の方法。
【請求項6】
前記一連のプロデューサコンピューティングシステムおよび対応する共有カテゴリの表示を含む共有情報を、前記一連の中央コンピューティングシステムに提供することをさらに含み、当該一連の中央コンピューティングシステムは当該共有情報を用いて、前記対応するサービスプロバイダの前記コンシューマコンピューティングシステムによるデータ受信の対象となる当該共有カテゴリの各々のプロデューサコンピューティングシステムを発見する、
請求項1に記載の方法。
【請求項7】
各利用可能通知に応答して、前記共有情報を公開することをさらに含む、
請求項6に記載の方法。
【請求項8】
利用可能通知を受信したことに応じて、当該利用可能通知を前記中央コンピューティングシステムにブロードキャストすることをさらに含む、
請求項6に記載の方法。
【請求項9】
前記共有カテゴリの前記データは、対応する前記収集装置によって収集されたデータもしくは対応する前記プロデューサコンピューティングシステムによって前処理されたデータまたはそれらの両方を含む、
請求項2に記載の方法。
【請求項10】
前記収集装置は、前記対応するサービスプロバイダのセンサを含む、
請求項2に記載の方法。
【請求項11】
前記収集装置は、IoT装置を含む、
請求項2に記載の方法。
【請求項12】
複数のサービスプロバイダ間でデータを共有するためのコンピュータプログラムであって、当該コンピュータプログラムはプログラム命令を記憶したコンピュータ可読記憶媒体を含み、当該プログラム命令はコラボレーションコンピューティングシステムによって読み取り可能であり、当該コラボレーションコンピューティングシステムに、
一連の中央コンピューティングシステムから一連の利用可能通知を受信することであって、当該利用可能通知は、一のプロデューサコンピューティングシステムが、自身が入手可能なデータのデータカテゴリのうち、共有カテゴリのデータの共有に利用可能であることを示すものであることと、
前記一連の中央コンピューティングシステムから権限付与通知を受信することであって、当該権限付与通知は、一のコンシューマコンピューティングシステムに対して、対応するサービスプロバイダの一連のプロデューサコンピューティングシステムによって提供される前記共有カテゴリの前記データを受信する権限を付与することを示すものであることと、
前記一連のプロデューサコンピューティングシステムと、前記共有カテゴリの前記データを受信する権限を付与された一のコンシューマコンピューティングシステムとの間に一連のコラボレーションチャネルを確立することであって、当該コラボレーションチャネルは、プロデューサコンピューティングシステムによって、当該コラボレーションチャネルにおける当該コンシューマコンピューティングシステムに対して当該共有カテゴリの当該データを提供するために用いられるものであることと、
を含む方法を実行させ、
それぞれの前記プロデューサコンピューティングシステムが対応する暗号化鍵で共有されるカテゴリのデータを暗号化し、前記コラボレーションチャネルのすべてのコンシューマエッジサーバに対して前記共有カテゴリのデータ、対応するプロデューサコンピューティングシステムの識別値およびデジタル署名を含むレコードをマルチキャストして前記カテゴリの前記データを、ピア・ツウ・ピア(P2P)方式において前記コンシューマエッジサーバの間で共有させ、
それぞれの前記コンシューマエッジサーバが前記デジタル署名に従って前記レコードが対応する前記プロデューサコンピューティングシステムにより提供されたことを検証し、検証されると前記カテゴリの前記データを復号する、コンピュータプログラム。
【請求項13】
前記対応するサービスプロバイダは、(i)一連のデータカテゴリのデータを収集するための複数の収集装置と、(ii)当該収集装置の対応する群により収集されたデータを含むデータを前処理するための1つ以上のエッジコンピューティングシステムと、(iii)当該エッジコンピューティングシステムによって提供されたデータを処理するための中央コンピューティングシステムと、を有し、
前記エッジコンピューティングシステムは、前記中央コンピューティングシステムよりも、対応する前記収集装置に物理的に近い、
請求項12に記載のコンピュータプログラム。
【請求項14】
前記権限付与通知を受信することは、対応するプロデューサコンピューティングシステムの中央コンピューティングシステムと、対応するコンシューマコンピューティングシステムの中央コンピューティングシステムとの間で、前記共有カテゴリの前記データを共有する合意がなされたことに応じて行われる、
請求項12に記載のコンピュータプログラム。
【請求項15】
前記方法は、前記一連のプロデューサコンピューティングシステムおよび対応する共有カテゴリの表示を含む共有情報を、前記一連の中央コンピューティングシステムに提供することをさらに含み、当該一連の中央コンピューティングシステムは当該共有情報を用いて、前記対応するサービスプロバイダの前記コンシューマコンピューティングシステムによるデータ受信の対象となる当該共有カテゴリの各々のプロデューサコンピューティングシステムを発見する、
請求項12に記載のコンピュータプログラム。
【請求項16】
複数のサービスプロバイダ間でデータを共有するためのコンピュータシステムであって、
プロセッサセットと、
コンピュータ可読記憶媒体と、を含み、
前記プロセッサセットは、前記コンピュータ可読記憶媒体に記憶されたプログラム命令を実行するように構成、配置、接続もしくはプログラミングまたはこれらの組み合わせが行われ、
前記プログラム命令は前記プロセッサセットによって実行されることで、当該プロセッサセットに、
一連の中央コンピューティングシステムから一連の利用可能通知を受信することであって、当該利用可能通知は、一のプロデューサコンピューティングシステムが、自身が入手可能なデータのデータカテゴリのうち、共有カテゴリのデータの共有に利用可能であることを示すものであることと、
前記一連の中央コンピューティングシステムから権限付与通知を受信することであって、当該権限付与通知は、一のコンシューマコンピューティングシステムに対して、対応するサービスプロバイダの一連のプロデューサコンピューティングシステムによって提供される前記共有カテゴリの前記データを受信する権限を付与することを示すものであることと、
前記一連のプロデューサコンピューティングシステムと、前記共有カテゴリの前記データを受信する権限を付与された一のコンシューマコンピューティングシステムとの間に一連のコラボレーションチャネルを確立することであって、当該コラボレーションチャネルは、プロデューサコンピューティングシステムによって、当該コラボレーションチャネルにおける当該コンシューマコンピューティングシステムに対して当該共有カテゴリの当該データを提供するために用いられるものであることと、
を含む方法を実行させ、
それぞれの前記プロデューサコンピューティングシステムが対応する暗号化鍵で共有されるカテゴリのデータを暗号化し、前記コラボレーションチャネルのすべてのコンシューマエッジサーバに対して前記共有カテゴリのデータ、対応するプロデューサコンピューティングシステムの識別値およびデジタル署名を含むレコードをマルチキャストして前記カテゴリの前記データを、ピア・ツウ・ピア(P2P)方式において前記コンシューマエッジサーバの間で共有させ、
それぞれの前記コンシューマエッジサーバが前記デジタル署名に従って前記レコードが対応する前記プロデューサコンピューティングシステムにより提供されたことを検証し、検証されると前記カテゴリの前記データを復号する、コンピュータシステム。
【請求項17】
前記対応するサービスプロバイダは、(i)一連のデータカテゴリのデータを収集するための複数の収集装置と、(ii)当該収集装置の対応する群により収集されたデータを含むデータを前処理するための1つ以上のエッジコンピューティングシステムと、(iii)当該エッジコンピューティングシステムによって提供されたデータを処理するための中央コンピューティングシステムと、を有し、
前記エッジコンピューティングシステムは、前記中央コンピューティングシステムよりも、対応する前記収集装置に物理的に近い、
請求項16に記載のコンピュータシステム。
【請求項18】
前記権限付与通知を受信することは、対応するプロデューサコンピューティングシステムの中央コンピューティングシステムと、対応するコンシューマコンピューティングシステムの中央コンピューティングシステムとの間で、前記共有カテゴリの前記データを共有する合意がなされたことに応じて行われる、
請求項16に記載のコンピュータシステム。
【請求項19】
前記方法は、前記一連のプロデューサコンピューティングシステムおよび対応する共有カテゴリの表示を含む共有情報を、前記一連の中央コンピューティングシステムに提供することをさらに含み、当該一連の中央コンピューティングシステムは当該共有情報を用いて、前記対応するサービスプロバイダの前記コンシューマコンピューティングシステムによるデータ受信の対象となる当該共有カテゴリの各々のプロデューサコンピューティングシステムを発見する、
請求項16に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報技術分野に関し、より具体的には、サービスプロバイダ間でのデータ共有に関する。
【背景技術】
【0002】
以下、本開示の背景を、それに関連する技術を説明しながら紹介する。ただし、当該説明において文献、行為、製品などに言及している場合でも、説明されている技術が先行技術の一部であることや、本開示に関連する分野の一般的な知識であることを示唆または表明するものではない。
【0003】
複数の(ソフトウェア)アプリケーションにおいて、種々のデータを収集することが一般に行われている。特に、(通信)ネットワークに基づく分散型アーキテクチャのコンピューティングシステムにおいて、データをローカルで収集した後、その処理のためにデータを遠隔地に送信することがある。その典型例がインターネットにおいて見られ、サービスプロバイダは、対応するサービスを提供するためにデータを収集する。特に、クラウド(コンピューティング)環境の場合、(クラウド)サービスは、クラウド(サービス)プロバイダによって提供される。クラウド(サービス)プロバイダは、要求に応じてそのサービスを実装するのに必要なコンピューティングリソースを準備(provision)、設定およびリリースする(実際の実装は、対応するユーザには完全に不透明である)。
【0004】
しかし、この(集中型)アプローチでは、(ローカルで)収集されたすべてのデータを、(リモートで)処理するためにネットワークを介して送信する必要がある。例えば、インターネットでは、サービスプロバイダに送信するために、複数の収集(コンピューティング)装置によってデータが収集される場合がある。特に、インターネットオブシングス(IoT:Internet of Things)の出現により、多数のIoT(コンピューティング)装置(コンピュータとは異なる物にインターネット接続機能が付加される)が展開され、実質的にあらゆる場所で使用されている。これにより新たなアプリケーションが数多く生まれ、すべての人の日常生活にますます浸透しつつある。
【0005】
エッジアーキテクチャ(edge architecture)では、収集したデータの処理を、物理的に可能な限り、ネットワークのエッジにおける当該処理を必要とする場所の近くに移動させる。エッジアーキテクチャでは、処理を(リモート)サービスプロバイダに委ねる前に、できるだけローカルに集中させる。これにより、(データ処理のために遠隔地にデータを送信する際に生じる)遅延(latency)を減らすことができる。これは、重要なアプリケーションの場合に特に重要となる。さらに、これにより、データのセキュリティとプライバシーを促進することができる。
【0006】
例えば、各サービスプロバイダは、自身のサービスを中央で実行する(1つまたは複数の)データセンタを有している場合がある。さらに、サービスプロバイダは、ローカルで処理すべきデータを収集する複数の収集装置(collection device)を利用する。例えば、収集装置は、現場に配置されたサービスプロバイダのセンサや、サービスプロバイダに登録されているユーザの個人用装置である。さらに、サービスプロバイダは、対応する収集装置群に近接するように、ネットワークのエッジに配置されたエッジサーバを有する。各エッジサーバは、対応する収集装置からデータを収集し、それらをローカルで前処理する。そして、エッジサーバはこれらの(前処理済みの)データをデータセンタにアップロードし、データセンタは必要に応じて、当該データに対する処理を完了する。
【発明の概要】
【発明が解決しようとする課題】
【0007】
本開示は、複数のサービスプロバイダ間でデータを共有するためのコンピュータ実装方法、コンピュータプログラム製品およびコンピュータシステムを提供する。
【課題を解決するための手段】
【0008】
本発明の一の態様において、複数のサービスプロバイダ間でデータを共有するための方法、コンピュータプログラム製品およびシステムは、(i)一連の中央コンピューティングシステムから一連の利用可能通知を受信することであって、当該利用可能通知は、一のプロデューサコンピューティングシステムが、自身が入手可能なデータのデータカテゴリのうち、共有カテゴリのデータの共有に利用可能であることを示すものであることと、(ii)前記一連の中央コンピューティングシステムから権限付与通知を受信することであって、当該権限付与通知は、一のコンシューマコンピューティングシステムに対して、対応するサービスプロバイダの一連のプロデューサコンピューティングシステムによって提供される前記共有カテゴリの前記データを受信する権限を付与することを示すものであることと、(iii)前記一連のプロデューサコンピューティングシステムと、前記共有カテゴリの前記データを受信する権限を付与された一のコンシューマコンピューティングシステムとの間に一連のコラボレーションチャネルを確立することであって、当該コラボレーションチャネルは、プロデューサコンピューティングシステムによって、当該コラボレーションチャネルにおける当該コンシューマコンピューティングシステムに対して当該共有カテゴリの当該データを提供するために用いられるものであることと、を含む。
【図面の簡単な説明】
【0009】
本開示の解決手段、ならびにそのさらなる特徴および効果について、以下、添付の図面と共に、詳細な説明を参照して明らかにしていく。なお、以下の詳細な説明は例示であり、本開示を限定するものではない(説明を簡略化するために、対応する要素は同一または類似の符号で示し、繰り返しの説明は省略する。各事物の名称は総じて、その種類と特性(値、内容、表示など)の両方を表すために用いられる)。
【0010】
図1A図1Aは、本開示の実施形態による解決手段の原理の概略を示す図である。
図1B図1Bは、本開示の実施形態による解決手段の原理の概略を示す図である。
図1C図1Cは、本開示の実施形態による解決手段の原理の概略を示す図である。
図1D図1Dは、本開示の実施形態による解決手段の原理の概略を示す図である。
図2図2は、本開示の実施形態による解決手段を実施可能な、コンピューティングインフラストラクチャの模式ブロック図である。
図3図3は、本開示の実施形態による解決手段の実施に使用可能な、主要なソフトウェアコンポーネントを示す図である。
図4A図4Aは、本開示の実施形態による解決手段の実施に関係する動作フローを示す動作図である。
図4B図4Bは、本開示の実施形態による解決手段の実施に関係する動作フローを示す動作図である。
図4C図4Cは、本開示の実施形態による解決手段の実施に関係する動作フローを示す動作図である。
【発明を実施するための形態】
【0011】
現在行われているデータ通信では、膨大な量のデータ(ビッグデータ)が収集される。しかし、(概ねこうした目的にとった十分な程に)サービスプロバイダの計算能力が増加し続けている一方で、ネットワークの帯域幅は常に十分とは限らない。その結果、ネットワークが混雑してボトルネックが発生する可能性があり、許容可能な転送速度が保証されない場合がある。これにより、時間的制約のある(time-sensitive)重要なアプリケーションのパフォーマンスが悪影響を受ける可能性がある。
【0012】
エッジコンピューティングアーキテクチャでは、物理的な近接性を活かすために各サービスプロバイダは、収集装置を広範囲に分布させて配置する必要がある。このように収集装置を拡散させることは、サービスプロバイダのコスト(例えば、収集装置の設置や維持管理)を増加させ、ひいては、サービスプロバイダが提供する、対応するサービスのコストの増加につながる。さらに、異なるサービスプロバイダが各々の収集装置を拡散させることにより、収集装置が設置されている環境に悪影響を及ぼす可能性がある(例えば、収集装置の視覚的影響が大きい場合など)。
【0013】
いずれにしても、各サービスプロバイダの収集装置には(経済的または物理的な制約による)不可避の制限があるため、全体として、または少なくとも特定の場所において、収集可能なデータ量が制限されてしまう。これが、データ処理によって得られる結果の品質や、ひいては、サービスプロバイダが提供するサービスの制限につながる。
【0014】
さらに、各サービスプロバイダが提供する(それぞれの収集装置が収集した異なるデータに基く)異なるサービスを利用することには問題がある場合がある。例えば、異なるサービスプロバイダから受信した情報の集約には時間がかかる。さらには、このような操作は、困難であるかもしくは信頼性に欠ける、またはこの両方である場合がある。これは特に、収集したデータの信頼性を確保できない場合に顕著である。
【0015】
ここで、本開示の基本的な理解を図るべく、本開示を簡略化した概要を述べる。ただし、この概要は専ら、後述する詳細な説明の前置きとして、本開示のいくつかの概念を簡略化して提示することを目的とする。よって、本開示の重要な要素を特定したり、その範囲を限定したりするものとして解釈すべきものではない。
【0016】
本開示は概して、コラボレーションチャネル(collaboration channels)を介して、エッジレベルで(at edge level)サービスプロバイダ間のデータ共有を行うというアイデアに基づく。
【0017】
具体的には、一の実施形態によれば、異なるサービスプロバイダ間でデータを共有するための方法が提供される。本方法は、(コラボレーションコンピューティングシステム(collaboration computing system)による制御下で)1つ以上のコラボレーションチャネルを確立することを含む。各コラボレーションチャネルは、1つ以上のプロデューサエッジコンピューティングシステム(producer edge computing system)(1つ以上の共有カテゴリ(shared categories)のデータを提供する)と1つ以上のコンシューマエッジコンピューティングシステム(consumer edge computing system)(当該1つ以上の共有カテゴリのデータを受信する権限を付与されている)との間に存在する。そして、各コラボレーションチャネルは、各プロデューサエッジコンピューティングシステムによって使用され、対応する共有カテゴリのデータを、当該データを受信する権限を付与されているコンシューマエッジコンピューティングシステムに提供する。
【0018】
さらなる態様によれば、上記の方法を実行するためのコンピュータプログラムが提供される。
【0019】
さらなる態様によれば、対応するコンピュータプログラム製品が提供される。
【0020】
さらなる態様によれば、対応するシステムが提供される。
【0021】
より具体的には、本開示の1つ以上の態様が独立項に記載され、それらの有利な特徴が従属項に記載される。すべての請求項の用語は、参照によりそのまま本明細書に組み入れられる(いずれかの特定の態様に係る有利な特徴は、必要な変更を加えつつ、他のあらゆる態様に適用される)。
【0022】
図1A~1Dに、本開示の実施形態による解決手段の原理の概略を示す。
【0023】
まず、図1Aから説明する。エッジアーキテクチャに基づく複数のサービスプロバイダ105が、(通信)ネットワーク110を介して、対応するサービス(異なるユーザによって異なる目的で経時的に繰り返し使用できるコンピューティング機能(computing functionalities))を提供する。例えば、サービスプロバイダ105はクラウド(サービス)プロバイダであり、それぞれが、(非常に迅速に準備、設定、リリースされる)仮想コンピューティングリソースによって実現される(クラウド)サービスのプールを提供する。これらのリソースは、パブリック展開(public deployment)モデルの場合、インターネットなどを介して各ユーザに要求に応じて割り当てられる。
【0024】
各サービスプロバイダ105は、複数の収集(コンピューティング)装置115(例えば、各サービスプロバイダの専用センサまたはそのユーザの個人用装置)を有している。収集装置115は、1つ以上の(データ)カテゴリ(写真、健康パラメータ、環境指標など)のデータ(またはディメンション)の収集に使用される。サービスプロバイダ105は、1つ以上のエッジコンピューティングシステム、例えば、エッジサーバ120を有している。各エッジサーバ120は、対応する収集装置群115に(物理的に)近接するように、ネットワーク110のエッジに配置されている(例えば、ネットワーク110のラストマイル(last mile)など、収集装置115から1~2ホップ(hops)以内)。そして、エッジサーバ120は、対応する収集装置群115によって収集されたデータをローカルで前処理するのに使用される。サービスプロバイダ105は、中央コンピューティングシステム、例えば、(1つ以上の)中央データセンタ125を有している。中央データセンタ125(ネットワーク110のより深いところに位置)は、必要に応じて、エッジサーバ120によって中央データセンタ125にアップロードされたデータ(前処理済みの場合もある)の処理を完了する。
【0025】
次に、図1Bに示すように、本開示の実施形態による解決手段では、コラボレーションコンピューティングシステム、例えば(コラボレーション権限者(collaboration authority)の)コラボレーションサーバ130が、異なるサービスプロバイダが収集したデータのローカルでの共有を制御する。簡単に説明すると、自身のデータを(ローカルで)共有することが可能なサービスプロバイダが、その旨をコラボレーション権限者に通知する。具体的には、対応する中央データセンタ125(同一の符号で示す)の(中央)サーバが、コラボレーションサーバ130に対して(利用可能)通知を送信する。当該通知は、符号120pで区別されるサービスプロバイダの1つ以上の(プロデューサ)エッジサーバが、自身が入手可能なデータカテゴリのうち、1つ以上の(共有)カテゴリのデータの共有に利用可能であることを示すものである。
【0026】
次に、図1Cに示すように、サービスプロバイダは、(対応するサービスプロバイダ間での合意に基づき)、自身らの間で共有されるデータを受信する権限(authorizations)を付与したことについて、コラボレーション権限者に通知する。具体的には、(1つ以上のプロデューサエッジサーバ120pのデータを共有する)中央サーバ125が、コラボレーションサーバ130に対して(権限付与)通知を送信する。当該通知は、符号120cで区別される他のサービスプロバイダの1つ以上の(コンシューマ)エッジサーバに対して、(対応する合意がなされた結果として)1つ以上のプロデューサエッジサーバ120が提供する1つ以上のカテゴリのデータを受信する権限が付与されたことを示すものである。
【0027】
次に、図1Dに示すように、コラボレーションサーバ130は、データを(ローカルで)共有するための1つ以上の(コラボレーション)チャネル135を確立する。具体的には、各コラボレーションチャネル135(1つのみ図示)は、1つ以上のプロデューサエッジサーバ120pと、1つ以上の対応するカテゴリのデータを受信する権限を付与された1つ以上のコンシューマエッジサーバ120cとの間に存在する。例えば、コラボレーションチャネル135は、各コラボレーションチャネルにおいて共有されるデータの各カテゴリのコンシューマコンピューティングシステムと、対応する暗号鍵とを関連付けることによって実現される。各プロデューサエッジサーバ120pには、自身が共有するデータのカテゴリについてのすべての暗号鍵が提供される。一方、各コンシューマエッジサーバ120cには、自身が受信する権限を付与されているデータのカテゴリの暗号鍵のみが提供される。そして、プロデューサエッジサーバ120pはコラボレーションチャネル135を用いて、データ(自身の収集装置115によってローカルで収集され、場合により前処理後のデータ)を対応するコンシューマエッジサーバ120cに提供する。例えば、各プロデューサエッジサーバ120pは、共有対象のカテゴリのデータを対応する暗号鍵で暗号化した後、コラボレーションチャネル135上のすべてのコンシューマエッジサーバ120cに対してブロードキャストまたはマルチキャストする。しかし、各コンシューマエッジサーバ120cは、受信する権限が付与されたカテゴリのデータのみを(対応する暗号鍵によって)復号することができる。
【0028】
上記の解決手段によれば、異なるサービスプロバイダ間で、エッジサーバレベルでのピアツーピア(P2P)方式のデータ共有が可能になる。
【0029】
このようにして、エッジサーバと収集装置との物理的な近接性を大幅に損なうことなく、収集装置の数を減らすことができる。実際、コンシューマエッジサーバは、プロデューサエッジサーバの収集装置を利用することで、対応する収集装置がなくても必要なカテゴリのデータを受信できるようになる。
【0030】
その結果、収集装置の分布が減少し、各サービスプロバイダにわたる装置の拡散が抑制され(サービス提供者にとって節約となり、サービスのコスト削減につながる可能性が高い)、環境における装置の拡散が抑制される(装置による視覚的な影響が軽減される)。
【0031】
さらに、各サービスプロバイダが(少なくとも、対応する収集装置を自身が有していない場所において)利用可能なデータ量を増やすことができる。これは、データ処理から得られる結果の品質、ひいてはサービスプロバイダによって提供される対応するサービスの品質に有益な影響を及ぼす。
【0032】
さらに、これにより、異なるサービスプロバイダが収集したデータを、時間効率がよくかつ信頼性の高い方法で集約することが可能になる。実際、この操作はコンシューマエッジサーバにおいて実行される(コンシューマ/プロデューサエッジサーバの収集装置によって現場で(on the field)データが収集された直後に実行される)。さらに、コラボレーションサーバが、異なるサービスプロバイダのエッジサーバ間のコラボレーションを中央で調整し、(例えば、共有されるデータの真正性(authenticity)、完全性(integrity)、否認防止(non-repudiation)、機密性などの観点から)コラボレーションを保証する。
【0033】
このようにして、サービスの応答時間を短縮しながら(これは特に、重要なアプリケーションにとって重要である)、高い品質と信頼性を確保することができる。
【0034】
例えば、気象会社が収集したデータ(風、気温、雨などを測定)や地質調査機関が収集したデータ(雪、湿度、氷、火災、地震波などを測定)を発電所が利用して、(専用の収集装置がなくても)エネルギーの生産計画を立てることができる。他の例として、空港の警備会社が、自社の収集装置で収集したデータ(不審な行動をした人物の生体情報)と、銀行から受信した同様のデータを組み合わせて、脅威の可能性を迅速に察知(そして直ちに介入)することができる。さらに他の例として、スマートフォンが、ユーザのバイタルパラメータ(体温、血圧、心拍数など)を収集すると共に、ユーザの近くに位置するメータで収集された汚染データや気象データを受信して、それらを組み合わせることで、その時々の環境条件に応じてユーザの健康に対するリスクを検出することができる。
【0035】
図2は、本開示の実施形態による解決手段を実施可能な、コンピューティングインフラストラクチャ200の模式ブロック図である。
【0036】
コンピューティングインフラストラクチャ200は、収集装置115と、(異なるサービスプロバイダの)エッジサーバ120および中央サーバ125と、コラボレーションサーバ130とを含む。これらは、ネットワーク110を介して相互に接続されている。
【0037】
例えば、収集装置115は、コンピュータとは異なる物であってインターネット接続機能を有する(なおかつ、従来はインターネット非対応の)物などのIoT装置を含む。具体的には、収集装置115は、日常品(家電製品、車、工具など)に組み込まれた、サービスプロバイダのセンサ(特定のカテゴリのデータを収集するためのもの)で構成される。これに加えて、またはこれに代えて、収集装置115は、サービスプロバイダのユーザの個人用装置(例えば、スマートフォンやタブレットなど)を含み、当該装置には、サービスプロバイダの1つ以上のアプリケーション(個人用装置のセンサを介して特定のカテゴリのデータを収集するためのもの)がインストールされている。エッジサーバ120は、(物理的に近接した)対応する収集装置にインターネットへのアクセスを提供するアクセスプロバイダ(不図示)に直接接続された物理マシンとすることができる。中央サーバ125は、対応するサービスプロバイダの中央データセンタ(不図示)内に実装された仮想マシン(インターネット上の任意の場所)とすることができる。コラボレーションサーバ130は、コラボレーション権限者のデータセンタ(不図示)内に実装された仮想マシンとすることができる。
【0038】
上記のコンピューティングマシン(収集装置115、エッジサーバ120、中央サーバ125、コラボレーションサーバ130)の各々は、バス構造205を介して1つ以上の階層で相互に接続された複数のユニットを備える(コンピューティングマシン115~130の種類に応じて適切にスケーリングされたアーキテクチャを有する)。具体的には、1つ以上のマイクロプロセッサ(μP)210が、コンピューティングマシン115~130のロジック機能を提供し、不揮発性メモリ(ROM)215が、コンピューティングマシン115~130のブートストラップ(bootstrap)用の基本コードを記憶し、揮発性メモリ(RAM)220が、マイクロプロセッサ210のワーキングメモリとして使用される。また、コンピューティングマシン115~130には、プログラムやデータを記憶するための大容量メモリ225が設けられている(例えば、各収集装置115にはフラッシュEEPROMが、各エッジサーバ120には冗長化SSD(redundant SSDs)が、各中央サーバ125およびコラボレーションサーバ130には対応するデータセンタの記憶装置が設けられている)。さらに、コンピューティングマシン115~130は、周辺機器(すなわち入力/出力(I/O)ユニット)230用の複数のコントローラを備えている。例えば、本開示に関連する限りにおいて、各収集装置115の周辺機器230は、対応するカテゴリのデータを収集するためのセンサ(カメラ、温度計、湿度計、レーダーなど)、Wi-Fi(登録商標)タイプの無線ネットワークアダプタ、もしくはアクセスポイントおよび基地局を介してネットワーク110にアクセスするための携帯電話トランシーバまたはこれらの組み合わせを含む。各エッジサーバ120の周辺機器230は、ネットワーク110にアクセスするためのネットワークアダプタを含む。また、各中央サーバ125およびコラボレーションサーバ130の周辺機器230は、中央サーバ125/コラボレーションサーバ130を対応するデータセンタに接続し、さらに制御のためにデータセンタのコンソール(例えば、USBタイプなどのリムーバブル記憶装置に読み書きするためのドライブを備えたパーソナルコンピュータ)に接続したり、ネットワーク110との通信のためにデータセンタのスイッチ/ルータサブシステムに接続したりするためのネットワークアダプタを含む。
【0039】
図3は、本開示の実施形態による解決手段の実施に使用可能な、主要なソフトウェアコンポーネントを示す図である。
【0040】
具体的には、すべてのソフトウェアコンポーネント(プログラムおよびデータ)を、全体として符号300で示す。ソフトウェアコンポーネント300は通常、大容量メモリに記憶され、プログラムの実行時に、オペレーティングシステムおよび他のアプリケーションプログラム(不図示)と共に、関連するコンピューティングマシンのワーキングメモリに(少なくとも部分的に)ロードされる。プログラムは、例えば、リムーバブル記憶装置やネットワークから大容量メモリに最初にインストールされる。この点において、各プログラムは、特定の論理機能を実行するための1つ以上の実行可能命令を含む、モジュール、セグメント、またはコードの一部とすることができる。
【0041】
まず、各収集装置115(1つのみ図示)は、以下のコンポーネントを含む。
【0042】
センサ駆動部303は、収集装置115のセンサ(対応するカテゴリのデータを収集するためのもの)を駆動する。データは例えば、デジタル画像や、温度、湿度、圧力の測定値などである。センサ駆動部303は、データバッファ306への書き込みを行う。データバッファ306は、センサ駆動部303によって収集されたデータを一時的に格納する。アップローダ309は、データバッファ306からデータを読み出し、対応するエッジサーバ120に送信することで、これらのデータをアップロードする。
【0043】
次に、各エッジサーバ120(1つのみ図示)は、以下のコンポーネントを含む。
【0044】
コレクタ312は、対応する収集装置115が収集したデータを(それぞれのアップローダ309から)受信する。コレクタ312は、対応する収集装置115が収集したデータを記憶するデータリポジトリ315への書き込みを行う。プリプロセッサ318は、これらのデータを前処理する。そのために、プリプロセッサ318は、データリポジトリ315を読み取り、受信時の(生の)データを取得する。さらに、プリプロセッサ318は、データリポジトリ315への書き込みを行い、得られた(前処理済みの)データを保存する。例えば、前処理済みのデータとは、人物のデジタル画像から抽出された生体パラメータや、人物の健康パラメータと当該人物がいる場所の環境パラメータとの組み合わせに基づく危険な状態を示すデータなどである。アップローダ321は、生データもしくは前処理済みのデータまたはその両方を、データリポジトリ315から読み出して、対応する中央サーバ125に送信することにより、これらをアップロードする。さらに(図示は省略するが)、アップローダ321は、前処理済みのデータ(すでに有用な状態の場合)を、対応するユーザの個人用装置など、近傍に位置するクライアント装置に送信することもできる。
【0045】
本開示の実施形態によるソリューションでは、共有エンジン(sharing engine)324が、エッジサーバ120が入手可能なデータ(対応する収集装置115が収集した生データもしくはプリプロセッサ318によって得られた前処理済みデータまたはその両方)の共有を制御する。そのために、共有エンジン324は、データリポジトリ315と、プロファイルリポジトリ327とに読み書きする。プロファイルリポジトリ327は、エッジサーバ120が(プロデューサまたはコンシューマとして)登録されているコラボレーションチャネルにアクセスするための(コラボレーション)プロファイルを含む。例えば、各コラボレーションプロファイルは、コラボレーションチャネルを介して共有されるデータのカテゴリのリストを含む。そして、リストは、これらのカテゴリのそれぞれに対するエントリを含む。エントリには、エッジサーバ120がこれらのデータのプロデューサであるかコンシューマであるかを示す役割フラグ(role flag)と、これらのデータを暗号化(プロデューサの場合)または復号(コンシューマの場合)するための暗号鍵が格納されている(エッジサーバ120がプロデューサとしてもコンシューマとしてもカテゴリに登録されていない場合は、空のエントリを含む)。共有エンジン324は、共有されるデータの暗号化/復号に用いられる暗号化エンジン(cryptographic engine)330を利用する。共有エンジン324は、自身が登録されているコラボレーションチャネルにおける他のエッジサーバ(不図示)の共有エンジンと通信する。
【0046】
次に、各中央サーバ125(1つのみ図示)は、以下のコンポーネントを含む。
【0047】
コレクタ333は、対応するエッジサーバ120によって(それぞれのアップローダ321から)提供された(生/前処理済みの)データを受信する。コレクタ333は、データリポジトリ336に対して書き込みを行い、データリポジトリ336がこれらのデータを記憶する。プロセッサ339は、データを処理する(生データの場合はデータの処理全体を実行し、前処理済みデータの場合はデータの処理を完了する)。そのために、プロセッサ339は、データリポジトリ336を読み取り、受信時の(生/前処理済みの)データを取得する。さらに、プロセッサ339は、データリポジトリ336への書き込みを行い、得られた(処理済みの)データを保存する。例えば、処理されたデータは、生体パラメータから認識された不審者に関する識別情報や、重篤な患者に関する医療情報などである。処理されたデータは、例えば、不審者を制圧するために取るべき行動を調整したり、患者に医療支援を行ったりするなど、任意の所望の目的のために使用することができる。
【0048】
本開示の実施形態による解決手段では、共有エンジン342が、(他のサービスプロバイダの(コンシューマ)エッジサーバ120にデータを提供するため、または他のサービスプロバイダの(プロデューサ)エッジサーバ120からデータを受信するためのいずれかを目的とした)コラボレーションチャネルを介したエッジサーバ120によるデータの共有を制御する。そのために、共有エンジン342は、発見エンジン(discovery engine)345を利用する。発見エンジン345は、共有可能なデータ(以下で説明するように、コラボレーションサーバ130によって公開される)の発見に用いられる。共有エンジン342は、各中央サーバ125の共有エンジンと通信して、(提供または受信される)データの共有について交渉する(図示省略)。さらに、共有エンジン342は、対応する各エッジサーバ120の共有エンジン324を制御する。
【0049】
次に、コラボレーションサーバ130は、以下のコンポーネントを含む。
【0050】
共有マネージャ348は、異なるサービスプロバイダのエッジサーバ120間でのデータ共有を管理する。そのために、共有マネージャ348は、各中央サーバ125の共有エンジン342と通信する。共有マネージャ348は、コラボレーション権限者に登録されているサービスプロバイダを特定するサービスプロバイダリポジトリ351を読み取る。例えば、サービスプロバイダリポジトリ351は、各サービスプロバイダについてのエントリを有する。当該エントリには、サービスプロバイダの名前と、その中央サーバの識別子(ホスト名、IPアドレスなど)とが含まれる。また、共有マネージャ348は、パブリッシャ354を制御する。パブリッシャ354は、インターネットに公開されているカテゴリレジストリ357、サーバレジストリ360、およびチャネルレジストリ363への書き込みを行う。カテゴリレジストリ357は、共有可能なデータのすべての(共有)カテゴリを示す。例えば、カテゴリレジストリ357は、これらのカテゴリのそれぞれについてのエントリを有する。当該エントリには、カテゴリの名前およびその説明(例えば、人物のデジタル画像、体温/環境温度、血圧/環境圧力など)と、対応する値の種類(例えば、整数、文字、配列など)と、対応するデータの種類(例えば、生データや前処理済みデータなど)とが含まれる。サーバレジストリ360は、(コラボレーション権限者によって認識/認証された)データの共有が可能な(プロデューサ)エッジサーバ120を示す。例えば、サーバレジストリ360は、これらのエッジサーバ120のそれぞれについてのエントリを有する。当該エントリには、エッジサーバ120の識別子(例えば、ホスト名やIPアドレスなど)と、対応するサービスプロバイダの名前と、エッジサーバ120のデータのうち共有可能なデータの1つ以上の管理カテゴリ(種(species))のリストと、エッジサーバ120が(プロデューサとして)登録されているコラボレーションチャネルのリストとが含まれる。一方、これらの種のリストは、それぞれの種についてのエントリを有する。当該エントリには、種の名前と、対応するデータのカテゴリと、データに関連する1つ以上の(データ)特性とが格納される。これらの特性は例えば、エッジサーバ120または対応する収集装置115の位置(GPS座標や地理的名称など)、精度、セキュリティレベル、リフレッシュルール(refresh rule)などである。チャネルレジストリ363は、異なるサービスプロバイダのエッジサーバ120間で確立されたコラボレーションチャネルを示す(例えば、環境、健康、セキュリティなどの対応するテーマについてそれぞれ確立される)。例えば、チャネルレジストリ363は、各コラボレーションチャネルについてのエントリを有する。当該エントリには、コラボレーションチャネルにおいて共有されるデータのカテゴリのリストと、これらのデータを提供する(プロデューサ)エッジサーバ120のリストとが含まれる。一方、これらのエッジサーバ120のリストは、各エッジサーバ120についてのエントリを有する。当該エントリには、各エッジサーバ120がコラボレーションチャネルに提供するデータカテゴリのリストが格納される。カテゴリレジストリ357、サーバレジストリ360、およびチャネルレジストリ363は、各中央サーバ125の発見エンジン345によって読み取られる。また、チャネルレジストリ363は、各エッジサーバ120の共有エンジン324によっても読み取られる(図示省略)。
【0051】
図4A~4Cは、本開示の実施形態による解決手段の実施に関係する動作フローを示す動作図である。
【0052】
この点において、各ブロックは、関連するコンピューティングマシン上で特定の論理機能を実行するための1つ以上の実行可能命令に対応することができる。具体的には、図4A~4Cは、方法400を用いて、異なるサービスプロバイダのエッジサーバ間でのデータ共有を行うために実行可能なプロセスの例を表す。
【0053】
このプロセスは、一般的なサービスプロバイダの中央サーバのスイムレーン(swim-lane)において、その共有エンジンが、当該サービスプロバイダの(1つ以上の)エッジサーバが入手可能なデータに関して、その共有の利用可能性を変更する利用可能性コマンド(availability command)(例えば、当該サービスプロバイダのシステム管理者によって入力される)を受信するたびに、ブロック402からブロック404へと移行する。この変更は例えば、(プロデューサ)エッジサーバの追加、(プロデューサ)エッジサーバの(共有)カテゴリ(1つ以上)の追加、それらの変更、削除などに関するものとすることができる。共有エンジンはこれに応答して、対応する利用可能通知(availability notification)(プロデューサエッジサーバもしくは共有カテゴリまたはその両方に関する通知)を、コラボレーションサーバに送信する。その後、プロセスはブロック402に戻り、次の利用可能性コマンドを待つ。
【0054】
コラボレーションサーバのスイムレーンに移り、ブロック406にて、共有マネージャがこの利用可能通知を受信する。そして、ブロック408にて、共有マネージャはパブリッシャに対して、当該通知に応じてカテゴリレジストリもしくはサーバレジストリまたはその両方を更新するように命令する。さらに、ブロック410にて、共有マネージャは、コラボレーション権限者に登録されている(対応するリポジトリに示された)他のすべてのサービスプロバイダの中央サーバに対して、同一の通知をブロードキャストまたはマルチキャストする。その後、プロセスはブロック406に戻り、次の通知を待つ。
【0055】
次に、他の各サービスプロバイダの中央サーバのスイムレーンに移り、ブロック412にて、共有エンジンがこの通知を受信する。ここで、動作フローは、通知の内容に応じてブロック414で分岐する。当該通知が、各サービスプロバイダの1つ以上の(コンシューマ)エッジサーバが受信登録しているコラボレーションチャネルにおける、共有されるデータの(1つ以上の)加入済みカテゴリ(subscribed category)に対する変更に関するものである場合、ブロック416に移る。ブロック416にて、共有エンジンはこれらのエッジサーバのそれぞれに通知を行い、図示は省略するが、エッジサーバの共有エンジンがそれに応じた処理を行えるようにする(例えば、受信されるデータのフォーマットの変更に適応する)。これと逆の場合、動作フローはブロック418でさらに分岐する。当該通知が、対応する(プロデューサ)エッジサーバが共有可能としたデータの(1つ以上の新たな)カテゴリの追加に関するものである場合(当該エッジサーバも同様に追加される可能性がある)、動作フローは、当該カテゴリに対するサービスプロバイダの興味に応じて、ブロック420でさらに分岐する。共有エンジンが、このエッジサーバが提供するデータのカテゴリに加入(subscribe)するためのコマンドを受信した場合(コマンドは例えば、インスタントメッセージまたは電子メールなどの対応する通知に応じてシステム管理者によって入力される)、プロセスはブロック432(後述)に続く。そして、プロセスはブロック412に戻り、次の通知を待つ。ここで、ブロック412へは、ブロック416から戻るか、(通知が、サービスプロバイダが未加入の新たなカテゴリの追加に関するものでない場合)ブロック418から直接戻るか、ブロック420を経て新たなカテゴリへの加入を要求した後に戻るか、または当該カテゴリにサービスプロバイダが興味を持たない場合にブロック420から直接戻る。
【0056】
このプロセスは、一般的なサービスプロバイダ(簡単にするため、上記と同じとする)の中央サーバのスイムレーンにおいて、その共有エンジンが、当該サービスプロバイダのいずれの収集装置とも関連付けられていない1つ以上のカテゴリのデータについて、(1つ以上のコンシューマ)エッジサーバのために当該カテゴリに加入するコマンド(例えば、システム管理者によって入力される)を受信するたびに、ブロック422からブロック424へと移行する。これに応答して、発見エンジンは、対応するレジストリでこのカテゴリのデータを検索する。ここで、動作フローは、検索の結果に応じてブロック426で分岐する。カテゴリが発見された場合(これは、対応するデータが他のサービスプロバイダの1つ以上のエッジサーバから共有のために提供されていることを意味する)、ブロック428にて、発見エンジンは(サーバレジストリおよびチャネルレジストリを照会することによって)、当該カテゴリのデータを提供しているプロデューサエッジサーバと、コラボレーションチャネル(すでに確立されている場合)とを特定する。次に、発見エンジンは、対応するサービスプロバイダやデータの種などの観点から、特定の要件(1つ以上のポリシーで定義されるか、システム管理者が手動で入力したもの)を満たすプロデューサエッジサーバと、(場合によっては)コラボレーションチャネルとが存在するか否かを判定する。存在する場合、発見エンジンは、その中から最適なものを選択する(例えば、最も近くにあるプロデューサエッジサーバを選択する)。ここで、動作フローは、この検索の結果に応じてブロック430で分岐する。適切なプロデューサエッジサーバが見つかった場合、プロセスはブロック432に進む。なお、サービスプロバイダが、(おそらく新規の)プロデューサエッジサーバが提供する新たなカテゴリに興味を持った場合も、ブロック420を経て同じポイントに到達する。いずれの場合も、共有エンジンは、プロデューサエッジサーバの中央サーバに対して、データの共有要求を送信する。
【0057】
次に、この中央サーバのスイムレーンに移り、ブロック434にて、共有エンジンがこの要求を受信する。そして、2つの中央サーバの間で交渉が開始される。この交渉は、ブロック436におけるプロデューサエッジサーバの中央サーバと、ブロック438におけるコンシューマエッジサーバの中央サーバとによる、対応する提供内容/要求内容を含む1つ以上のメッセージの交換を含む。交渉は例えば、2つのサービスプロバイダの要件(1つ以上のポリシーで定義されるか、または各々のシステム管理者によって手動で入力されたもの)に基づいて行われる。例えば、提供可能なデータや受信したいデータの特性、データの提供に必要な手数料、データの受信にあたり支払われる対価などの観点から交渉が行われる。その後、コンシューマエッジサーバの中央サーバのスイムレーンでは、プロセスはブロック422に戻り、次の加入要求を待つ。ここで、ブロック422へは、ブロック438から戻るか、カテゴリが発見されなかった場合(これは、対応するデータが他のサービスプロバイダのいずれのエッジサーバからも共有のために提供されていないことを意味する)にブロック426から戻るか、または適切なプロデューサエッジサーバが発見されなかった場合にブロック430から戻る。2つのサービスプロバイダ間でデータ共有の合意に達した場合、ブロック440にて、プロデューサエッジサーバの中央サーバの共有エンジンは、その旨をコラボレーションサーバに通知する。その後、プロセスはブロック434に戻り、次のデータ共有要求を待つ。
【0058】
次に、コラボレーションサーバのスイムレーンに移り、ブロック442にて、共有マネージャがこの通知を受信する。これに応答して、ブロック444にて、共有マネージャがパブリッシャに対して、通知の内容に応じてチャネルレジストリを更新するように命令する。具体的には、必要な場合、パブリッシャは(プロデューサエッジサーバについて)新たなコラボレーションチャネルを作成する。いずれの場合でも、パブリッシャは共有カテゴリおよびコンシューマエッジサーバをコラボレーションチャネルに追加する。さらに、ブロック446にて、共有マネージャは、(対応するリポジトリに示された)コラボレーション権限者に登録されている他のすべてのサービスプロバイダの中央サーバに対して、同一の通知をブロードキャストまたはマルチキャストする。他の各サービスプロバイダの中央サーバの共有エンジンは、ブロック412にてこの通知を受信し、上述した動作を行う。次に、ブロック448にて、共有マネージャは、プロデューサエッジサーバからコンシューマエッジサーバへのコラボレーションチャネルにおいてデータの共有に用いられる暗号鍵を生成する。ブロック450にて、共有マネージャはこの暗号鍵を、プロデューサエッジサーバの中央サーバと、コンシューマエッジサーバの中央サーバとに送信する。その後、プロセスはブロック442に戻り、次の通知を待つ。
【0059】
次に、プロデューサエッジサーバの中央サーバのスイムレーンに移り、ブロック452にて、共有エンジンが暗号鍵を受信する。これに応じて、ブロック454にて、共有エンジンは、プロデューサエッジサーバ上で対応するデータの共有(提供)を実行する。そのために、共有エンジンは、コラボレーションチャネル、共有対象のデータのカテゴリおよび対応する暗号鍵を示す通知を、プロデューサエッジサーバに送信する。その後、プロセスはブロック452に戻り、次の通知を待つ。プロデューサエッジサーバのスイムレーンに移り、ブロック456にて、共有エンジンがこの通知を受信する。これに応じて、ブロック458にて、共有エンジンはプロファイルリポジトリを適宜更新する。その後、プロセスはブロック456に戻り、次の通知を待つ。
【0060】
同時に、コンシューマエッジサーバの中央サーバのスイムレーンでは、ブロック460にて、共有エンジンが同様に暗号鍵を受信する。これに応じて、ブロック462にて、共有エンジンは、コンシューマエッジサーバ上でデータの共有(受信)を実行する。そのために、共有エンジンは、コラボレーションチャネル、共有対象のデータのカテゴリおよび対応する暗号鍵を示す通知を、コンシューマエッジサーバに送信する。その後、プロセスはブロック460に戻り、次の通知を待つ。コンシューマエッジサーバのスイムレーンに移り、ブロック464にて、共有エンジンがこの通知を受信する。これに応じて、ブロック466にて、共有エンジンはプロファイルリポジトリを適宜更新する。その後、プロセスはブロック464に戻り、次の通知を待つ。
【0061】
完全に独立した部分として、プロセスは、各プロデューサエッジサーバのスイムレーンにおいて(リフレッシュ)イベントが発生するとすぐに、ブロック468からブロック470へと移行する。当該イベントは、対応するコラボレーションチャネルにおいて共有可能なデータのリフレッシュを引き起こすもの(プロファイルレポジトリ内の対応するリフレッシュルールに示される)で、例えば、定期的に発生したり、データに対する変更に応じて発生したりする。この時点で、共有エンジンは、データリポジトリから共有対象のデータを取得する。例えば、共有対象のデータの各カテゴリについて、共有エンジンは、(対応するリフレッシュルールによって示される)あらかじめ定義されたタイムフレーム内での最後の利用可能な値(1つまたは複数)を取得する。ブロック472にて、共有エンジンは、暗号化エンジンに対して、(プロファイルリポジトリから取得した)対応する暗号鍵で各カテゴリのデータを暗号化するように命令する。ブロック474にて、共有エンジンは、コラボレーションチャネルにおいて共有するためのレコードを準備する。レコードには、各カテゴリについて得られた(暗号化された)データ(プロデューサエッジサーバの秘密鍵の署名付き)と、プロデューサエッジサーバの識別子と、プロデューサエッジサーバのデジタル証明書とが含まれる。そして、共有エンジンは、例えばコラボレーションチャネルにおける他のすべてのエッジサーバ(対応するリポジトリから取得)に対してブロードキャストまたはマルチキャストすることにより、当該レコードをコラボレーションチャネルに公開する。同時に、共有エンジンは、実行した動作に関する表示(indication)をログに保存してもよい。このログは、追跡のために対応する中央サーバと共有される。その後、プロセスはブロック468に戻り、次のリフレッシュイベントを待つ。
【0062】
次に、各コンシューマエッジサーバのスイムレーンに移り、ブロック476にて、共有エンジンは、当該コンシューマエッジサーバが登録されている各コラボレーションチャネルにおいて共有されたすべてのレコードを受信する。ブロック478にて、共有エンジンは、プロデューサエッジサーバのデジタル署名に基づき、当該レコードが(チャネルリポジトリに示された)コラボレーションチャネルのプロデューサエッジサーバが実際に提供したものであることを検証する。記録が真正なものである場合、ブロック480にて、共有エンジンは、暗号化エンジンに対して、当該コンシューマエッジサーバが受信する権限を付与されている各カテゴリのデータを、(プロファイルリポジトリに示された)対応する暗号鍵で復号するように命令する。ブロック482にて、共有エンジンは、このようにして得られた(復号された)データをデータリポジトリに保存する。その後、プロセスはブロック476に戻り、次のデータの受信を待つ。
【0063】
このようにして、各コラボレーションチャネルにおけるデータの共有を区別することができる。実際、プロデューサエッジサーバがすべてのコンシューマエッジサーバに対して無差別にデータをブロードキャストしたとしても、データを受信する権限を付与されたエッジサーバのみが、データを復号することができる。
【0064】
当然のことながら、局所的かつ特定の要件を満たすために、当業者によって、本開示に対する数多くの論理的もしくは物理的またはその両方の修正および変更が可能である。より具体的には、本開示を1つ以上の実施形態を参照してある程度の具体性をもって説明してきたが、その形態および詳細に対して種々の省略、置換および変更が可能であり、他の実施形態も可能である。特に、より完全な理解を目的として先の説明に記載した特定の詳細(数値など)がなくとも、本開示の異なる実施形態は実施可能である。逆に、不必要な詳細事項によって説明が不明瞭にならないように、公知の特徴については省略または簡略化されている場合がある。さらに、本開示のいずれかの実施形態に関連して記載された特定の要素もしくは方法ステップまたはその両方は、一般的な設計事項として、任意の他の実施形態に組み込めることが明示的に意図されている。さらに、同一のグループで提示された項目および、異なる実施形態、例、または代替案において提示された項目は、事実上互いに同等であると解釈すべきではない(これらは別個の独立した存在である)。いずれの場合でも、各数値は適用可能な許容範囲に応じて変更されるものとして読むべきである。特に、別段の明確な記載がない限り、「実質的に」、「約」、「およそ」などの用語は、10%以内、好ましくは5%以内、さらに好ましくは1%以内と理解すべきである。さらに、数値の各範囲は、その範囲内の(端点を含む)連続体(continuum)に沿った任意の可能な数値を明示的に特定することを意図している。序数詞または他の修飾語は、同じ名称の要素を区別するための表示として使用されているに過ぎず、それ自体は何らの優先順位、序列または順序も意味しない。「含む(include)」、「含む、備える(comprise)」、「有する(have)」、「含む、伴う(involve)」などの用語は、オープンで非網羅的な意味(すなわち、記載された項目に限定されない)として意図されるべきである。また、「~に基づいて(based on)」、「~次第で(dependent on)」、「~に従って(according to)」、「~に応じて(function of)」などの用語は、非排他的な関係(すなわち、さらなる変数が関与する可能性がある)として意図されるべきである。また、「ある、1つの、一の(a/an)」という用語は、(別段の明確な記載がない限り)1つ以上の項目として意図されるべきである。また、「~するための手段(means for)」という用語(または他の何らかのミーンズプラスファンクション形式)は、関連する機能を実行するように適合(adapted)または構成(configured)された任意の構造として意図されるべきである。
【0065】
例えば、一の実施形態によれば、複数のサービスプロバイダ間でデータを共有するための方法が提供される。ただし、データは任意の種類(例えば、生データ、前処理済みデータなど)としてよく、また、任意の数および種類のサービスプロバイダ(例えば、クラウド型、SOA型、クライアント/サーバ型など)の間で共有してよい。
【0066】
一の実施形態において、各サービスプロバイダが複数の収集装置を有している。ただし、収集装置は、任意の数および任意の種類(例えば、サービスプロバイダのセンサ、ユーザの個人用装置など)としてよい。
【0067】
一の実施形態において、収集装置は、1つ以上のデータカテゴリのデータの収集に用いられる。ただし、データカテゴリは、任意の数および任意の種類(例えば、上述したカテゴリの一部のカテゴリや、異なるカテゴリ、追加のカテゴリなど)としてよい。
【0068】
一の実施形態において、各サービスプロバイダは1つ以上のエッジコンピューティングシステムを有している。ただし、エッジコンピューティングシステムは、任意の数および任意の種類(例えば、物理マシン、仮想マシンなど)としてよい。
【0069】
一の実施形態において、各エッジコンピューティングシステムは、対応する収集装置群が収集したデータを含む、自身が入手可能なデータの前処理に用いられる。ただし、各群の収集装置は、任意の数としてよく、かつ任意の態様で配置してよい(例えば、エッジコンピューティングシステムに対して直接接続される、あるいは1つ以上のホップを介して接続されるなど)。さらに、データは、任意の方法で前処理することができる(例えば、上述した工程の一部の工程や、異なる工程、追加の工程を実行するなど)。
【0070】
一の実施形態において、各サービスプロバイダは、エッジコンピューティングシステムから提供されたデータを処理するための中央コンピューティングシステムを有している。ただし、中央コンピューティングシステムは、任意の種類としてよい(例えば、データセンタに実装された仮想マシンまたは物理マシン、スタンドアロンマシンなど)。さらに、データは、任意の方法で処理してよい(例えば、生データ、前処理済みデータ、またはこれらの組み合わせに対して、上述した工程の一部の工程や、異なる工程、追加の工程を実行するなど)。
【0071】
一の実施形態において、各エッジコンピューティングシステムは、中央コンピューティングシステムよりも、対応する収集装置の近くに位置する。ただし、収集装置からエッジコンピューティングシステムまでの距離および中央コンピューティングシステムまでの距離は、任意の値としてよい(物理的な距離/ネットワーク上の距離、ホップ数など、任意の方法で測定される、相対的または絶対的な距離)。
【0072】
一の実施形態において、本方法は、コラボレーションコンピューティングシステムによる制御下で、以下のステップを含む。ただし、コラボレーションコンピューティングシステムは任意の種類としてよい(下記参照)。
【0073】
一の実施形態において、本方法は、(コラボレーションコンピューティングシステムによって)1つ以上の中央コンピューティングシステムから利用可能通知を受信することを含む。ただし、利用可能通知は、任意の数としてよく、かつ任意の方法で受信してよい(例えば、コマンド、メッセージなど)。
【0074】
一の実施形態において、各利用可能通知は、(対応するサービスプロバイダのエッジコンピューティングシステムのうち)少なくとも1つのプロデューサコンピューティングシステムが、(当該プロデューサコンピューティングシステムが入手可能なデータのデータカテゴリのうち)少なくとも1つの共有カテゴリのデータの共有に利用可能であることを示すものである。ただし、各利用可能通知は、任意の数のプロデューサコンピューティングシステムおよび共有カテゴリに関連してよく、かつ、任意の方法で定義してよい(例えば、上述した情報のうち一部の情報や、異なる情報、追加の情報を個別に用いて、または任意に組み合わせて定義するなど)。
【0075】
一の実施形態において、本方法は、(コラボレーションコンピューティングシステムによって)1つ以上の中央コンピューティングシステムから権限付与通知を受信することを含む。ただし、権限付与通知は任意の数としてよく、かつ任意の方法で受信してよい(例えば、コマンド、メッセージなど)。
【0076】
一の実施形態において、各権限付与通知は、(他のサービスプロバイダのエッジコンピューティングシステムのうち)少なくとも1つのコンシューマコンピューティングシステムが、対応するサービスプロバイダの少なくとも1つのプロデューサコンピューティングシステムが提供する少なくとも1つの共有カテゴリのデータを受信する権限を付与されていることを示す。ただし、各権限付与通知は、任意の数のコンシューマコンピューティングシステムおよび共有カテゴリに関連してよく、かつ、任意の方法で定義してよい(例えば、上述した情報のうち一部の情報や、異なる情報、追加の情報を個別に用いて、または任意に組み合わせて定義するなど)。さらに、権限付与通知は例えば、対応するサービスプロバイダ間の交渉に応じて提供してもよいし、あらかじめ定められた条件を満たすすべてのサービスプロバイダに提供してもよいし、すべてのサービスプロバイダに無差別に提供してもよい。
【0077】
一の実施形態において、本方法は、(コラボレーションコンピューティングシステムによって)1つ以上のコラボレーションチャネルを確立することを含む。ただし、コラボレーションチャネルは、任意の数および任意の種類としてよい(例えば、上述したテーマのうち一部のテーマや、異なるテーマ、追加のテーマについて、各々任意の方法で高信頼化されたもの(盗聴および改ざんの両方、盗聴のみ、または改ざんのみに耐性があるなど))。
【0078】
一の実施形態において、各コラボレーションチャネルは、1つ以上のプロデューサコンピューティングシステムと、1つ以上の対応する共有カテゴリのデータを受信する権限を付与された1つ以上のコンシューマコンピューティングシステムとの間に存在する。ただし、各コラボレーションチャネルは、任意の数のプロデューサコンピューティングシステムおよびコンシューマコンピューティングシステムで構成してよく、任意の数の共有カテゴリのデータ共有に用いてよい。
【0079】
一の実施形態において、各コラボレーションチャネルは、当該コラボレーションチャネルの各プロデューサコンピューティングシステムが、当該コラボレーションチャネルのコンシューマコンピューティングシステムに対して共有カテゴリのデータを提供するために用いられる。ただし、データは任意の方法で共有してよい(例えば、データを受信する権限を付与されているコンシューマコンピューティングシステムのみが復号できるように、暗号化した状態でデータをブロードキャストする、あるいは、データを受信する権限を付与されているコンシューマコンピューティングシステムに対してのみデータを送信する、など)。
【0080】
さらなる実施形態によれば、追加の有利な特徴が得られる。ただし、これらは基本的な実装形態においては省略してもよい。
【0081】
具体的には、一の実施形態において、本方法は、対応する暗号鍵を、各コラボレーションチャネルにおける各共有カテゴリのコンシューマコンピューティングシステムに(コラボレーションコンピューティングシステムによって)関連付けることを含む。ただし、暗号鍵は任意の種類としてよく(例えば、対称鍵、非対称鍵など)、かつ任意の方法で共有カテゴリと関連付けてよい(例えば、コラボレーションコンピューティングシステムによって行うか、あるいは対応する中央コンピューティングシステムによって行う、など。また、各コンシューマコンピューティングシステムが、自身の共有カテゴリのそれぞれについて対応する暗号鍵を有するか、あるいは自身のすべての共有カテゴリに共通の暗号鍵を有する、など)。
【0082】
一の実施形態において、各暗号鍵は、対応するプロデューサコンピューティングシステムが共有カテゴリのデータを暗号化して、コラボレーションチャネルにおけるすべてのコンシューマコンピューティングシステムに暗号化データとして提供するために用いられる。ただし、データは任意の方法で暗号化してよい(例えば、コンシューマコンピューティングシステムと共有される対称鍵で暗号化する、あるいはコンシューマコンピューティングシステムの公開鍵で暗号化する、など)。
【0083】
一の実施形態において、各暗号鍵は、共有カテゴリのデータを受信する権限を付与されたコラボレーションチャネルの各コンシューマコンピューティングシステムが、暗号化データを復号するために用いられる。ただし、暗号化データは任意の方法で復号してよい(例えば、プロデューサコンピューティングシステムと共有される同じ対称鍵で復号する、あるいはコンシューマコンピューティングシステムの秘密鍵で復号する、など)。
【0084】
一の実施形態において、本方法は、(コラボレーションコンピューティングシステムによって)暗号鍵を生成することを含む。ただし、他の任意の方法で暗号鍵を提供することも排除されない(例えば、コンシューマエッジコンピューティングシステムまたはその中央コンピューティングシステムによって生成する、あるいは既存の秘密鍵/公開鍵のペアを使用するなど)。
【0085】
一の実施形態において、本方法は、対応する共有カテゴリの暗号鍵を、配布用に各プロデューサコンピューティングシステムおよび各コンシューマコンピューティングシステムの中央コンピューティングシステムに(コラボレーションコンピューティングシステムによって)送信することを含む。ただし、他の任意の方法で暗号鍵を交換することも排除されない(例えば、プロデューサエッジコンピューティングシステムまたはその中央コンピューティングシステムによって暗号鍵を配布する、など)。
【0086】
一の実施形態において、本方法は、プロデューサコンピューティングシステムの中央コンピューティングシステムと、コンシューマコンピューティングシステムの中央コンピューティングシステムとの間で、対応する共有カテゴリのデータを共有する合意がなされたことに応じて、(コラボレーションコンピューティングシステムによって)各権限付与通知を受信することを含む。ただし、合意は任意の方法で行ってよい(例えば、自動的に行う、人による確認を必要とする、手動で行う、要件の数および種類に応じて行う、など)。
【0087】
一の実施形態において、本方法は、プロデューサコンピューティングシステムおよび対応する共有カテゴリの表示を含む共有情報を(コラボレーションコンピューティングシステムによって)中央コンピューティングシステムに提供することを含む。ただし、共有情報は任意の種類としてよい(例えば、上述した情報のうち一部の情報や、異なる情報、追加の情報を個別に用いたものや任意に組み合わせたものなど)。また、共有情報は任意の方法で提供してよい(例えば、公開、ブロードキャスト、送信など)。
【0088】
一の実施形態において、共有情報は、各中央コンピューティングシステムが、対応するサービスプロバイダのコンシューマコンピューティングシステムによるデータ受信の対象となる各共有カテゴリのプロデューサコンピューティングシステムを発見するために用いられる。ただし、対象のプロデューサーコンピューティングシステムは、任意の方法で発見してよい(例えば、上述した要件のうち一部の要件や、異なる要件、追加の要件を個別に用いて、または任意に組み合わせて発見するなど)。
【0089】
一の実施形態において、本方法は、各利用可能通知に応答して、(コラボレーションコンピューティングシステムによって)共有情報を公開することを含む。ただし、共有情報は任意の方法で公開してよく(例えば、任意の数および種類のレジストリ内で、任意の共有場所で、データ共有サービスを用いて、など)、さらに、各利用可能通知に応答して公開する場合に限られない(例えば、定期的に公開する、あらかじめ定められた量の変更があった後に公開する、など)。
【0090】
一の実施形態において、本方法は、利用可能通知を受信したことに応じて、(コラボレーションコンピューティングシステムによって)当該利用可能通知を中央コンピューティングシステムにブロードキャストすることを含む。ただし、利用可能通知は任意の方法でブロードキャストしてよく(例えば、無差別に、直接的に、など)、さらに、各利用可能通知に応答してブロードキャストする場合に限られない(例えば、定期的にブロードキャストする、あらかじめ定められた数に達した場合にブロードキャストする、など)。
【0091】
一の実施形態において、各共有カテゴリのデータは、対応する収集装置によって収集されたデータもしくは対応するプロデューサコンピューティングシステムによって前処理されたデータまたはその両方を含む。ただし、これらのデータは任意の種類としてよい(例えば、収集した生データもしくは受信した生データまたはその両方、あるいは、受信した前処理済みデータもしくは、収集した生データおよび/もしくは受信した前処理済みデータから生成された前処理済みデータまたはその両方、など)。
【0092】
一の実施形態において、収集装置は、対応するサービスプロバイダのセンサを含む。ただし、センサは、任意の数および任意の種類としてよい(例えば、任意の値を感知するもの、スタンドアロン型、任意の装置に組み込まれたもの、IoTタイプ、非IoTタイプなど)であってもよい。
【0093】
一の実施形態において、収集装置は、IoT装置を含む。ただし、IoT装置は任意の種類としてよい(例えば、上述したIoT装置のうち一部の装置や、異なる装置、追加の装置を個別に用いたもの、または任意に組み合わせたものなど)。
【0094】
本発明のいくつかの実施形態は、信頼性のあるコラボレーションシステムを用いて、異なるサービスプロバイダのIoT協調(IoT collaborative)エッジサーバ間で情報を共有するための方法に関する。この方法は、コラボレーション権限者によって、コラボレーションエッジサーバレジストリ、コラボレーションチャネルレジストリ、およびディメンションカテゴリ(dimension categories)レジストリを管理することと、コラボレーション権限者によって、少なくとも1つのサービスプロバイダから、コラボレーションエッジサーバレジストリにコラボレーションエッジサーバを追加する要求を受信することと、コラボレーション権限者によって、追加されたコラボレーションエッジサーバに関する通知を(例えば、ブロードキャストにより)送信することと、コラボレーション権限者によって、1つ以上のサービスプロバイダから、コラボレーションチャネルレジストリにコラボレーションチャネルを追加する要求を受信することと、コラボレーション権限者によって、追加されたコラボレーションチャネルに関する通知を1つ以上のサービスプロバイダに(例えば、ブロードキャストにより)送信することと、コラボレーション権限者によって、サービスプロバイダから、少なくとも1つのコラボレーションエッジサーバをコラボレーションチャネルに加入させる要求を受信することと、コラボレーション権限者によって、サービスプロバイダから、ディメンションカテゴリレジストリに対するディメンションカテゴリの追加/変更を行う要求を受信することと、コラボレーション権限者によって、追加/変更されたディメンションカテゴリに関する通知をサービスプロバイダに送信(ブロードキャスト)することと、を含む。
【0095】
概して、同一の解決手段を同等の方法で(より多くのステップと同じ機能を有する同様のステップまたはその一部を用いたり、一部の必須でないステップを削除したり、任意のステップを追加したりするなどして)実施する場合も、同様の考慮事項が適用される。さらに、これらのステップは異なる順序で行ってもよいし、同時に行ってもよいし、(少なくとも部分的に)交互に行ってもよい。
【0096】
一の実施形態によれば、コンピューティングシステムに上記の方法を実行させるように構成されたコンピュータプログラムが提供される。また、一の実施形態によれば、コンピュータプログラム製品が提供され、当該コンピュータプログラム製品は、プログラム命令がまとめて記憶された1つ以上のコンピュータ可読記憶媒体を含む。当該プログラム命令は、コンピューティングシステムによって読み取り可能であり、当該コンピューティングシステムに上記と同一の方法を実行させる。ただし、コンピュータプログラムは、スタンドアロンのモジュールとして実装してもよいし、既存のソフトウェアアプリケーション(例えば、サービスプロバイダの制御モジュール)のプラグインとして実装してもよいし、既存のソフトウェアアプリケーションの中に直接実装してもよい。さらに、コンピュータプログラムは、任意のコンピューティングシステム(後述)上で実行してもよい。いずれの場合も、本開示の実施形態による解決手段は、ハードウェア構造(例えば、半導体材料の1つ以上のチップに集積された電子回路による)であっても、適切にプログラムされるかまたは他の方法で構成されたソフトウェアとハードウェアの組み合わせであっても実施することができる。
【0097】
一の実施形態によれば、上記の方法のステップを実行するように構成された手段を含むシステムが提供される。また、一の実施形態によれば、上記の方法の各ステップを実行するための回路(例えば、ソフトウェアによって適切に構成された任意のハードウェア)を含むシステムが提供される。ただし、システムは、任意の数および種類のコンピューティングマシン(例えば、物理マシンもしくは仮想マシンまたはその両方)を含んでよく、かつ任意のコンピューティング環境で用いてもよい(例えば、任意の種類の(有線もしくは無線またはその両方の)接続を利用したローカル、広域、グローバル、セルラーまたは衛星ネットワーク)。例えば、システムは、コラボレーションコンピューティングシステム、各中央コンピューティングシステム、各エッジコンピューティングシステム、またはこれらの任意の組み合わせであってもよい。
【0098】
概して、システムの構造が異なっている場合、同等の構成要素で構成されている場合、または他の動作特性を持っている場合も、同様の考慮事項が適用される。いずれの場合も、システムの各構成要素をより多くの要素に分離してもよいし、2つ以上の構成要素を組み合わせて1つの要素にしてもよい。さらに、対応する動作の並行実行をサポートするために、各構成要素を複製してもよい。さらに、別段の記載がない限り、異なる構成要素間の相互作用は一般的に連続的である必要はない。相互作用は直接的なものであってもよいし、1つ以上の仲介物を介した間接的なものであってもよい。
【0099】
本発明は、任意の可能な技術詳細レベルで統合されたシステム、方法もしくはコンピュータプログラム製品またはそれらの組み合せとすることができる。コンピュータプログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を記憶したコンピュータ可読記憶媒体を含んでよい。コンピュータ可読記憶媒体は、命令実行装置によって使用される命令を保持し、記憶することができる有形の装置とすることができる。コンピュータ可読記憶媒体は、一例として、電子記憶装置、磁気記憶装置、光学記憶装置、電磁記憶装置、半導体記憶装置またはこれらの適切な組み合わせであってよい。コンピュータ可読記憶媒体のより具体的な一例としては、ポータブルコンピュータディスケット、ハードディスク、RAM、ROM、EPROM(またはフラッシュメモリ)、SRAM、CD-ROM、DVD、メモリスティック、フロッピーディスク、パンチカードまたは溝内の隆起構造などに命令を記録した機械的に符号化された装置、およびこれらの適切な組み合せが挙げられる。本明細書で使用されるコンピュータ可読記憶装置は、電波もしくは他の自由に伝播する電磁波、導波管もしくは他の伝送媒体を介して伝播する電磁波(例えば、光ファイバケーブルを通過する光パルス)、またはワイヤを介して送信される電気信号のような、一過性の信号それ自体として解釈されるべきではない。本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピュータ装置/処理装置へダウンロード可能である。あるいは、ネットワーク(例えばインターネット、LAN、WANもしくはワイヤレスネットワークまたはこれらの組み合わせ)を介して、外部コンピュータまたは外部記憶装置へダウンロード可能である。ネットワークは、銅製伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータもしくはエッジサーバまたはこれらの組み合わせを備えることができる。各コンピュータ装置/処理装置内のネットワークアダプタカードまたはネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、当該コンピュータ可読プログラム命令を、各々のコンピュータ装置/処理装置におけるコンピュータ可読記憶媒体に記憶するために転送する。本発明の動作を実施するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用構成データ、または、スモールトークやC++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語や類似のプログラミング言語などの手続き型プログラミング言語を含む、1つ以上のプログラミング言語の任意の組み合わせで記述されたソースコードもしくはオブジェクトコードのいずれかとすることができる。コンピュータ可読プログラム命令は、スタンドアロン型ソフトウェアパッケージとして完全にユーザのコンピュータ上で、または部分的にユーザのコンピュータ上で実行可能である。あるいは、部分的にユーザのコンピュータ上でかつ部分的にリモートコンピュータ上で、または、完全にリモートコンピュータもしくはサーバ上で実行可能である。後者の場合、リモートコンピュータは、LANやWANを含む任意の種類のネットワークを介してユーザのコンピュータに接続してもよいし、外部コンピュータに(例えば、インターネットサービスプロバイダを使用してインターネットを介して)接続してもよい。いくつかの実施形態において、例えばプログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブル論理アレイ(PLA)を含む電子回路は、本発明の態様を実行する目的で当該電子回路をカスタマイズするために、コンピュータ可読プログラム命令の状態情報を利用することによって、コンピュータ可読プログラム命令を実行することができる。本発明の各態様は、本明細書において、本発明の実施形態に係る方法、装置(システム)、およびコンピュータプログラム製品のフローチャートもしくはブロック図またはその両方を参照して説明されている。フローチャートもしくはブロック図またはその両方における各ブロック、および、フローチャートもしくはブロック図またはその両方における複数のブロックの組み合わせは、コンピュータ可読プログラム命令によって実行可能である。上記のコンピュータ可読プログラム命令は、機械を生産するために、コンピュータまたは他のプログラマブルデータ処理装置のプロセッサに提供してよい。これにより、かかるコンピュータまたは他のプログラマブルデータ処理装置のプロセッサを介して実行されるこれらの命令が、フローチャートもしくはブロック図またはその両方における1つ以上のブロックにて特定される機能/動作を実行するための手段を創出する。上記のコンピュータ可読プログラム命令はさらに、コンピュータ、プログラマブルデータ処理装置もしくは他の装置またはこれらの組み合わせに対して特定の態様で機能するよう命令可能なコンピュータ可読記憶媒体に記憶してよい。これにより、命令が記憶された当該コンピュータ可読記憶媒体は、フローチャートもしくはブロック図またはその両方における1つ以上のブロックにて特定される機能/動作の態様を実行するための命令を含む製品を構成する。また、コンピュータ可読プログラム命令を、コンピュータ、他のプログラマブル装置、または他の装置にロードし、一連の動作ステップを当該コンピュータ、他のプログラマブル装置、または他の装置上で実行させることにより、コンピュータ実行プロセスを生成してもよい。これにより、当該コンピュータ、他のプログラマブル装置、または他の装置上で実行される命令が、フローチャートもしくはブロック図またはその両方における1つ以上のブロックにて特定される機能/動作を実行する。図面におけるフローチャートおよびブロック図は、本発明の種々の実施形態に係るシステム、方法およびコンピュータプログラム製品の可能な実装形態のアーキテクチャ、機能性、および動作を示している。この点に関して、フローチャートまたはブロック図における各ブロックは、特定の論理機能を実行するための1つ以上の実行可能な命令を含む、命令のモジュール、セグメント、または部分を表すことができる。他の一部の実装形態において、ブロック内に示した機能は、各図に示す順序とは異なる順序で実行してもよい。例えば、連続して示される2つのブロックは、実際には、関係する機能に応じて、1つの工程として達成してもよいし、同時もしくは略同時に実行してもよいし、部分的もしくは全体的に時間的に重複した態様で実行してもよいし、または場合により逆順で実行してもよい。なお、ブロック図もしくはフローチャートまたはその両方における各ブロック、および、ブロック図もしくはフローチャートまたはその両方における複数のブロックの組み合わせは、特定の機能または動作を行う専用ハードウェアベースのシステムによって、または専用ハードウェアとコンピュータ命令との組み合わせによって実行可能である。
図1A
図1B
図1C
図1D
図2
図3
図4A
図4B
図4C