JP2015505404A - クラウド・エッジ・トポロジー - Google Patents

クラウド・エッジ・トポロジー Download PDF

Info

Publication number
JP2015505404A
JP2015505404A JP2014550337A JP2014550337A JP2015505404A JP 2015505404 A JP2015505404 A JP 2015505404A JP 2014550337 A JP2014550337 A JP 2014550337A JP 2014550337 A JP2014550337 A JP 2014550337A JP 2015505404 A JP2015505404 A JP 2015505404A
Authority
JP
Japan
Prior art keywords
cloud
edge
query
graph
race
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2014550337A
Other languages
English (en)
Other versions
JP6172721B2 (ja
Inventor
チャンドラモウリ,バドリッシュ
ケー. ナス,スーマン
ケー. ナス,スーマン
チョウ,ウェンチャオ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2015505404A publication Critical patent/JP2015505404A/ja
Application granted granted Critical
Publication of JP6172721B2 publication Critical patent/JP6172721B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24568Data stream processing; Continuous queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation
    • H04L43/045Processing captured monitoring data, e.g. for logfile generation for graphical visualisation of monitoring data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/06Generation of reports
    • H04L43/065Generation of reports related to network devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/83Admission control; Resource allocation based on usage prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/54Presence management, e.g. monitoring or registration for receipt of user log-on information, or the connection status of the users
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • H04W4/023Services making use of location information using mutual or relative location information between multiple location based services [LBS] targets or of distance thresholds

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Databases & Information Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

この説明は、クラウド・エッジ・トポロジーに関係するものである。ある種の態様は、様々なクラウド・エッジ・トポロジー内のクラウド・エッジ・アプリケーションおよびリソース使用量に関係するものである。本発明のクラウド・エッジ・トポロジーの別の態様は、一時性言語を使用するクラウド・エッジ・アプリケーションの仕様記述に関係するものであり得る。さらなる態様は、クエリ部分を走らせるためにクラウドおよびクラウド・エッジ・コンピュータ上でデータ・ストリーム管理システム(DSMS)エンジンを走らせるアーキテクチャを必然的に含み得る。

Description

一実施形態は、クラウドコンピューティングに関し、より具体的にはクラウド・エッジ・トポロジーに関する。
消費者によるスマートフォンなどの「スマート」ポータブル・コンピューティング・デバイスの採用が普及し、莫大な量のクラウド・ベース・コンピューティング・リソースが利用可能であることが、「クラウド・エッジ・トポロジー」として知られているものをもたらした。これらのスマート・ポータブル・コンピューティング・デバイスは、プロセッサおよびメモリの発達によって、これらのデバイスが、ユーザに利用可能な相当のコンピューティング・リソースを有することが可能になるという点で、「スマート」と呼ばれている。スマート・ポータブル・コンピューティング・デバイスは、GPS位置、バッテリ消費、速度等のようなリアルタイム・データを生成することが可能である。これらのスマート・ポータブル・コンピューティング・デバイスを、個々のデバイスとクラウド・ベース・リソースとの間の通信をエッジと考えることが可能であるという点で、クラウド・エッジ・デバイスと考えることもまた可能である。
スマート・ポータブル・コンピューティング・デバイス上で利用可能な相当のコンピューティング・リソースが与えられる場合、ユーザは、自分のデバイス上で走る様々なアプリケーションを選択することが可能である。これらのアプリケーションの多くは、アプリケーション・インスタンスがスマート・ポータブル・コンピューティング・デバイス上で走り、別のアプリケーション・インスタンスがクラウド・ベース・コンピューティング・リソース上で走るという点で、クラウド・エッジ・アプリケーションと呼ばれる場合がある。複数のスマート・ポータブル・コンピューティング・デバイスにわたるデータとクラウドとを相関させてアプリケーションの機能性を実現する、広範な部類のクラウド・エッジ・アプリケーションが存在する。一例は、ユーザに、だれか友人がすぐそばにいるかどうかを通知するように機能する友人探し(friend−finder)アプリケーションである。このアプリケーションの機能性は、リアルタイム位置とソーシャル・ネットワークなどの遅く変化するデータとの相関によって決まる。大量のコンピューティング・リソースがスマート・ポータブル・コンピューティング・デバイスおよびクラウド・ベース・リソース上で利用可能である一方で、通信リソースなどのリソース使用量が、多数のスマート・ポータブル・コンピューティング・デバイスがクラウド・エッジ・アプリケーションを走らせているときには意味をもつものとなり得る。
この説明は、クラウド・エッジ・トポロジーに関係するものである。ある種の態様は、様々なクラウド・エッジ・トポロジー内のクラウド・エッジ・アプリケーションおよびリソース使用量に関係するものである。一例では、複数の異なるエッジ・コンピューティング・デバイスからのデータを利用するリアルタイム・ストリーミング・クエリを評価することが可能である。複数の異なるエッジ・コンピューティング・デバイスは、クラウド・ベース・リソースと通信するように、ただし、相互に直接通信しないように構成され得る。個々のエッジ・コンピューティング・デバイスは、宣言型一時性言語(declarative temporal language)の形で伝えられるアプリケーションのインスタンス化を含む。この例では、第1のシナリオと第2のシナリオとの間でリソース使用量を比較することが可能である。第1のシナリオは、処理のために、複数の異なるエッジ・コンピューティング・デバイスからクラウド・ベース・リソースにクエリ・データをアップロードすることを必然的に含む。第2のシナリオは、処理のために、複数の異なるエッジ・コンピューティング・デバイスの1つのノードを除くすべてからクラウド・ベース・リソースにクエリ・データをアップロードし、複数の異なるエッジ・コンピューティング・デバイスの1つのノードにクエリ・データをダウンロードすることを必然的に含む。
本発明のクラウド・エッジ・トポロジーの別の態様は、一時性言語を使用するクラウド・エッジ・アプリケーションの仕様記述に関係するものであり得る。さらなる態様は、クエリ部分を走らせるためにクラウドおよびクラウド・エッジ・コンピュータ上でデータ・ストリーム管理システム(DSMS)エンジンを走らせるアーキテクチャを必然的に含み得る。
上記の列挙した例は、読者の一助となる迅速な参照を提供することが意図されるものであり、本明細書で説明する概念の範囲を定義することは意図されない。
付随する図面は、本出願において伝えられる概念の実装形態を例示するものである。例示する実装形態の特徴を、付随する図面に連関して行う以下の説明を参照することにより、より容易に理解することが可能である。様々な図面において類似する参照番号が、類似する要素を指示することが可能な限り使用される。さらに、各々の参照番号の最も左の数字は、その参照番号が最初に導入される図および関連する論考を伝えるものである。
ある種の実装形態による、本発明のクラウド・エッジ・アプリケーション・リソース使用量概念を適用することが可能であるシステムの例を示す図である。 ある種の実装形態による、本発明のクラウド・エッジ・アプリケーション・リソース使用量概念を適用することが可能であるシステム・アーキテクチャの例を示す図である。 ある種の実装形態による、本発明のクラウド・エッジ・アプリケーション・リソース使用量概念を適用することが可能であるグラフ例を示す図である。 ある種の実装形態による、本発明のクラウド・エッジ・アプリケーション・リソース使用量概念を適用することが可能であるグラフ例を示す図である。 ある種の実装形態による、本発明のクラウド・エッジ・アプリケーション・リソース使用量概念を適用することが可能であるグラフ例を示す図である。 ある種の実装形態による、本発明のクラウド・エッジ・アプリケーション・リソース使用量概念を適用することが可能であるグラフ例を示す図である。 ある種の実装形態による、本発明のクラウド・エッジ・アプリケーション・リソース使用量概念を適用することが可能であるグラフ例を示す図である。 ある種の実装形態による、本発明のクラウド・エッジ・アプリケーション・リソース使用量概念を適用することが可能であるグラフ例を示す図である。 ある種の実装形態による、本発明のクラウド・エッジ・アプリケーション・リソース使用量概念を適用することが可能であるグラフ例を示す図である。 本発明の概念のある種の実装形態による、クラウド・エッジ・アプリケーション・リソース使用量技法の例のフローチャートを示す図である。
概要
本発明の概念は、クラウド・ベース・システム、ならびに、クラウド・ベース・システムおよび接続されたデバイス上で走るアプリケーションによる動的なリソース認識の処理に関係するものである。
解説の目的で、本発明の概念を実装することが可能であるシステム100の例を示す導入の図1を考えてみる。システム100は、3つのクラウド・エッジ・コンピューティング・デバイス(以降、「コンピューティング・デバイス」)102(1)、102(2)、および102(N)を含む(ここでNは、任意の数のコンピューティング・デバイスを利用することが可能であることを物語る)。コンピューティング・デバイス102(1)〜102(N)は、それぞれ線108(1)〜108(3)により指示するように、ネットワーク106を介してクラウド104と通信することが可能である。この例では個々のコンピューティング・デバイスは、クラウド104を通して相互に通信することは可能であるが、他のコンピューティング・デバイスと直接通信することは可能でない。クラウド104は、莫大な量のコンピューティング・リソース110を供与することが可能であるが、これらのコンピューティング・リソースの正確な物理的位置は、容易には明らかになり得ないものである。クラウド・コンピューティングは、クラウド・コンピューティングが供与するコンピューティング・リソースが比較的安価であり豊富であるので、人気が増し続けている。
コンピューティング・デバイス102(1)〜102(N)は、任意のタイプのコンピューティング・デバイスであり得る。普通はこれらのコンピューティング・デバイスは、スマート・フォンおよびタブレット・コンピュータなどのポータブル・コンピューティング・デバイスである。本明細書では用語「コンピュータ」または「コンピューティング・デバイス」は、ある程度の量の処理能力を有する任意のタイプのデバイスを意味し得る。そのようなデバイスの具体的な例を解説の目的で例示するが、そのようなデバイスの他の例は、パーソナル・コンピュータ、セル電話、スマート・フォン、携帯情報端末などの従来のコンピューティング・デバイス、または、無数の絶えず進化している、もしくはまだ開発されていないタイプのデバイスの任意のものを含み得る。さらに独立型ではなく、コンピュータは別のデバイスに組み込まれる場合がある。例えばダッシュボード・コンピュータは、車または他の乗物に含まれ得る。
1つの観点から考察すると、コンピューティング・デバイス102(1)〜102(N)を、クラウド104およびネットワーク106によりサポートされるトポロジー内の「エッジ・デバイス」と考えることが可能である。これらのエッジ・デバイスの多くには、ユーザのGPS位置、速度、現在のアクティビティ、デバイスのバッテリ使用量等のようなリアルタイム・データの高頻度または継続的なストリームを生み出すセンサが装備される。加えて、例えばデータ市場によって、クラウドで利用可能にされている、ソーシャル・ネットワーク・グラフおよびガソリンスタンドでの燃料価格などの、ますます量が増える、より遅く変化する参照データが存在し得る。コンピューティング・デバイスおよびデータがこのように急増することが後押しして、新興の部類のリアルタイム・クラウド・エッジ・アプリケーション(または略してクラウド・エッジ・アプリ)への関心がますます高まってきている。これらのクラウド・エッジ・アプリは、多数のエッジ・コンピューティング・デバイスおよびクラウドから収集されるリアルタイム・フィードに基づいて、通知または推奨などのサービスを提供することが可能である。
ある種のシナリオではコンピューティング・デバイス102(1)〜102(N)は、クラウド・コンピューティング・リソース110上で走る1つまたは複数のサービス・プロバイダによる処理のために、クラウド104にそれらのコンピューティング・デバイスのデータを伝達する。例えば解説の目的で、1つのそのようなサービスが、ユーザに、自分の友人のだれかが自分の現在の位置の近くにいるときはいつでも通知する友人探しサービスであるということを仮定する。ある種の実装形態では友人探しサービスを、クラウド・コンピューティング・リソース110上で走る友人探しアプリケーション、および、個々のコンピューティング・デバイス102(1)〜102(N)上で走る対応する友人探しアプリケーションにより達成することが可能である。
友人探しアプリケーションを可能にするには、ユーザのスマートフォン(例えばコンピューティング・デバイス102(1)〜102(N))からのリアルタイム位置と、(友人関係を定義する)ソーシャル・ネットワークなどの遅く変化する参照データとの相関が必然的に必要となる。解説しやすいように、コンピューティング・デバイス102(1)および102(2)のみを考えるものとし、コンピューティング・デバイス102(1)はユーザ1に属するということ、および、コンピューティング・デバイス102(2)はユーザ2に属するということを仮定する。さらに、ユーザ1およびユーザ2は「友人」とみなされているということを仮定する。各々のコンピューティング・デバイスは、矢印112(1)および112(2)により指示するように、クラウドにデータを時折アップロードすることが可能である。アップロードされたデータを、クラウド・コンピューティング・リソース110上で動作するサービス・プロバイダにより処理することが可能である。サービス・プロバイダは、各々のコンピューティング・デバイスに対する結果を決定し、それぞれのコンピューティング・デバイス102(1)および102(2)に戻すようにそれらの結果を伝達することが可能である。ある種の場合ではそのような処理では、クラウド104とコンピューティング・デバイス102(1)および102(2)との間での、ネットワーク106を介した、大きな数のアップロードする通信およびダウンロードする通信が必然的に必要になる場合がある。本発明の概念によって、代替的な選択肢が可能になり得る。この代替的な選択肢は、動的なリソース認識の選択肢と考えることが可能であるものである。動的なリソース認識の選択肢では、コンピューティング・デバイス102(1)および102(2)の一方は、個々のコンピューティング・デバイスが、クラウドから他方のコンピューティング・デバイスのデータを取得し、個々のコンピューティング・デバイス上で局所的に処理に対処することにより、これらのネットワーク通信などのシステム・リソース使用量を削減することが可能であると決定することが可能である。(ネットワーク通信を、数により、および/またはネットワーク帯域幅使用量により考慮することが可能である。)そのような場合、その個々のコンピューティング・デバイスはアップロードしない。他方の(残りの)コンピューティング・デバイスは通常のようにアップロードし、その個々のコンピューティング・デバイスはダウンロードする。この動的なリソース認識の選択肢は、リソース使用量算出が、シナリオが変化する際に変化し得るという点で動的と考えることが可能である。1つのそのような例を、コンピューティング・デバイスが位置データを生成しているレートに関して下記で説明する。リソース使用量算出は、位置データのレートが変化するときに異なる結果を生み出す場合がある。したがって1回の決定であるのではなく、決定を、条件またはパラメータが変化する際に反復型の様式で繰り返す場合がある。
この削減されるリソース使用量を例示するために、コンピューティング・デバイス102(1)はユーザ1に属するものとし、コンピューティング・デバイス102(2)はユーザ2に属するものとする。さらに、ユーザ1は自分の職場で仕事をしており(例えば、比較的動かない)、ユーザ2は近くの界隈で車を運転しているということを仮定する。上記で説明した一定の構成において、既存の友人探しアプリは、ユーザ2(コンピューティング・デバイス102(2)に、クラウドがユーザ1の位置と相関させるためにユーザ2の最新の位置を知るように、高頻度で(例えば10秒ごとに1回)ユーザ2の位置をアップロードする(112(2))ように求めることになる。これに対してユーザ1(コンピューティング・デバイス102(1))は、ユーザ1はあまり移動していないので、低頻度で(例えば1時間に1回)ユーザ1の位置をアップロードする(112(1))ことが可能である。この例では、ユーザ1およびユーザ2の全体の通信オーバーヘッドは、ネットワーク106を介して(最終的な通知メッセージを無視して)1時間あたり361メッセージとなる。このネットワーク使用量は、特にユーザが、多くの友人を有する、または多くのそのようなアプリを走らせるときには高価なものとなり得る。このことは、ユーザのデータを相関させる頻度の程度を制限することをアプリケーションが強制され、そのことによって通知のレイテンシが大きくなる結果になるので、アプリケーションの有用性を厳しく制限する可能性がある。さらにユーザは、アプリケーションのリソース使用量が高いことに起因して、アプリケーションを単にオフにする場合がある。しかしながらこの非効率性に関しては、動的なリソース認識の選択肢によって上記の例において容易に対応処理することが可能である。クラウドで相関させる方法論を使用する代わりに、ユーザ1の位置を、ユーザ2のコンピューティング・デバイス102(2)に(それぞれ矢印114および116により指示するようにクラウド104を通して)送出することが可能である。次いで相関を、ユーザ2のコンピューティング・デバイスにより遂行することが可能である。この場合、ユーザ2は自分の位置をどこかに送出する必要がなく、全体のコストは1時間あたり2メッセージのみ(一方はユーザ1からクラウドへ、および他方はクラウドからユーザ2へ)となる。ユーザ1が自宅に進行しているときなど、その後の時点では、動的なリソース認識の選択肢は、クラウド104で処理するなど異なる手法を決定し得ることに留意されたい。
要約すると、動的なリソース認識の選択肢は、(あるとすれば)何の計算をプッシュすべきか、および、どのエッジ・コンピューティング・デバイスに対してその計算をプッシュすべきかに関して決定することが可能である。この決定を、ネットワーク・トポロジー、データ・ストリームのレート、データのアップロードおよびダウンロードのコスト、相関させるべきストリームの対などのような様々な要因によって決まる最適化問題と考えることが可能である。さらに、これらのパラメータは経時的に変化し得る(例えばユーザ1のレートは、ユーザ1が職場での時間の後に進行を開始するときに変化し得る)ので、決定は動的に更新され得るものである。1つの動的なリソース認識の選択肢の実装形態は、RACEと呼ばれるものであり、下記で詳細に説明する。
手短に言えばRACE(リアルタイム・アプリケーション・オーバー・クラウド・エッジ(Real−time Applications over Cloud−Edge)を表す)は、クラウド・エッジ・アプリを仕様記述し効率的に実行するためのフレームワークおよびシステムである。RACEは、データベース技法を使用して2つの主な態様に関して対応処理することが可能である。第1にRACEは、リアルタイム・クラウド・エッジ・アプリケーションの仕様記述に関して対応処理する。第2にRACEは、リアルタイム・クラウド・エッジ・アプリケーションの実行に関連するシステム・リソース使用量に関して対応処理する。システム・リソース使用量は高められ得る、および/または最適化され得る(以降では簡潔にするために、用語「最適化される」は「高められる、および/または最適化される」を意味する)。
クラウド・エッジ・アプリケーションの仕様記述
RACEは、1組のストリーミング・データ・ソースにわたってプラットフォーム非依存の継続的クエリ(CQ)としてクラウド・エッジ・アプリのコア・ロジックを抽出することにより、リアルタイム・クラウド・エッジ・アプリケーションの仕様記述に関して対応処理する。
クラウド・エッジ・アプリは、Objective C、Java(登録商標)、またはC#などの標準的な命令型言語の形で表記されることが多い。アプリケーション開発者は、クロス・デバイス通信、データ・ストリームに対するパブリッシュおよびサブスクライブ、ならびに、一時性結合(temporal join)およびウィンドウが設定された計算などのアプリケーション・ロジック内の時間に関係する意味規則に対処する機構を手動で実装するように求められる。この処理は、時間がかかりエラーが起こりやすいものである。RACEは、大多数のクラウド・エッジ・アプリにより共有される共通の機能性に対するプラットフォーム・サポートを追加することが可能である。したがってアプリケーション設計者は、実装形態細部ではなくコア・アプリケーション・ロジックに重点を置くことが可能である。
本発明の実装形態は、異なるクラウド・エッジ・アプリが多様な特定用途の特徴(例えば、視覚化およびプライバシーに対するサポート)を有する一方で、それらのクラウド・エッジ・アプリはある種の共通性を共有することが可能であるという事実を活用する。例えば、クラウド・エッジ・アプリに対するデータおよびコア・アプリケーション・ロジックの両方は本質的に一時性であることが多い。換言すればクラウド・エッジ・アプリを、大規模分散システムにおいて、リアルタイムのデータと、より遅く変化する(ただしそれでも一時性の)参照データとを継続的に相関させる継続的クエリとみなすことが可能である。
例えば友人探しアプリを、エッジ・デバイスのリアルタイムGPS位置と、より遅く変化するソーシャル・ネットワーク・ストリームとの間の一時性結合と考えることが可能である。位置認識のクーポン・アプリケーションは、(履歴の時間ウィンドウにわたって計算された)ユーザのプロファイルを伴う現在のユーザ位置情報と現在の広告とを相関させる。したがってある種の実装形態では、クラウド・エッジ・アプリに対する仕様記述言語は、一時性意味規則に対するネイティブ・サポートを包含すべきである。そのようなサポートによって、一時性結合およびウィンドウが設定された集約などの時間指向の動作の誤りのない表現が可能になる。代替的または追加的に、言語は他の特質を有し得る。例えば1つのそのような特質は、仕様記述言語の宣言型の性質である。このことによってアプリケーション設計者は、宣言型の、およびネットワーク・トポロジー非依存の様式でアプリケーションを仕様記述することが可能になり得るものであり、その場合アプリケーション設計者は、アプリケーションが「どのように」実装されるかではなく、アプリケーションが「何」であるかに重点を置くことが可能である。実装形態細部は、アプリケーション設計者にとって意識されないようなものであり得るものであり、その代わりに表層下のプラットフォームにより自動的に対処され得る。別の特質は、簡明性に関係し得るものである。アプリケーションの仕様記述は簡明であり得るものであり、アプリケーション設計者による生産的なプロトタイピング、デプロイメント、およびデバッグを可能にし得る。簡明性は、当然ながら宣言型仕様記述を採用することに適合している。柔軟性は、別の特質であり得る。仕様記述言語は、アプリケーション設計者が異なる入出力ソースおよび構成によってアプリケーションを容易にカスタマイズすることが可能であるように柔軟であり得る。
次に仕様記述言語の設計空間を、これらの特質に照らして説明する。SQLおよびDatalog(およびその異形、例えばNetwork Datalog)などの宣言型言語によって、分散環境での継続的クエリの簡明で柔軟な仕様記述が可能になり得る。しかしながらこれらの言語は、一時性意味規則に対するネイティブ・サポートを有しておらず、そのことは大多数のクラウド・エッジ・アプリにとっては重大であり得る。他方でデータ・ストリーム管理システム(DSMS)は、所望の特質を満たす宣言型一時性言語を使用する。例は、StreamInsight(商標)に対するLINQ(商標)、およびOracle(登録商標)CEPに対するStreamSQL(商標)、およびStreamBase(商標)を含む。下記の説明は、仕様記述言語としてStreamInsightに対するLINQを利用するが、他の構成に適用可能である。LINQは、一時性クエリの宣言型仕様記述を可能にするものであり、クラウド・エッジ・アプリの一時性の性質に十分に適する、良好に定義された代数および意味規則に基づく。
後に続く論考では、クラウド・エッジ・アプリ仕様記述の例を提供する。友人探しクエリは、条件:1)ユーザ2はユーザ1の友人である、および、2)2人のユーザは所与の時間に相互に地理的に近い、を満たすすべてのユーザ対(ユーザ1,ユーザ2)を探し出すということを想起されたい。この点で、解説の目的で、友人関係が非対称である、すなわち、ユーザ2がユーザ1の友人であるということが、ある時点で考えると必ずしも逆のことを含意するとは限らないということを仮定する。友人探しアプリに対する2つの入力、すなわち、エッジ・デバイスにより報告されるGPS位置ストリーム、およびソーシャル・ネットワーク・データが存在する。GPS位置はランタイムに活発に収集され、一方でソーシャル・ネットワーク・データは、比較的遅く変化し、一般的にはクラウドで利用可能である。友人探しを、下記に例示するように2つの段階の一時性結合クエリとして表記することが可能である。
Figure 2015505404
第1のクエリ(query0)は、GPS位置ストリーム(location)をソーシャル・ネットワーク参照ストリーム(socialNetwork)に結合し、結果として得られる出力ストリームが、友人の各々の対の間の距離をチェックするために、(query1において)再度GPS位置に結合される。最終的な出力は、2人のユーザが友人であり相互に地理的に近い、対(ユーザ1,ユーザ2)のストリームである。
上記のクエリ仕様記述は、一時性結合としてクエリの高レベル・ロジックを定義し、locationストリームおよびsocialNetworkストリームのスキーマを参照する。そのクエリ仕様記述は、ソーシャル・ネットワーク・ストリームおよび概念的に統合されるGPS位置ストリーム入力に対して表記され、したがってネットワーク・トポロジー非依存である。別の例として、所望の機能が、ここ1週間以内に特定の位置(例えば料理店)を訪れた友人を探し出すことであるということを仮定する。このことを仕様記述するために、本発明の概念では、query1でのlocation入力をlocation.AlterEventDuration(TimeSpan.FromDays(7))で置き換えることを可能にし得る。このことによって、locationイベントの「存続時間」が7日間に延び、そのことによって結合が、ここ1週間以内の友人からのイベントを考慮することが可能になる。
要約するとRACEは、クラウド・エッジ・アプリの宣言型仕様記述を利用することが可能である。RACEは、エッジ・デバイスおよびクラウドから構成される分散システム上でロジックを実行することが可能である。RACEは、修正されないDSMSをブラック・ボックスとして使用して、個々のエッジ・デバイスおよびクラウド上でクエリを局所的に実行することが可能である。ある種のRACE実装形態は、DSMSが、(実行されることになる継続的クエリを定義する)クエリ、(入力データ・ストリームのスキーマを指定する)イベント・タイプ、ならびに、(ストリーミング・データが外側の世界からDSMSに、およびその逆にどのように到達するかを定義する)入力および出力のアダプタを付託するために、ユーザに管理アプリケーション・プログラム・インターフェース(API)を提供するという仮定を基に動作する場合がある。さらにAPIによって、ユーザがDSMS上のクエリを開始および停止することもまた可能になる。
言い換えればある種の実装形態は、異なるデータ・ストリーム(またはストリームの一部)をクラウドに、および/または、クラウドを介して他のエッジ・コンピューティング・デバイスに移動させることが可能である。ある種の他のデータ・ストリームは、デバイスで局所的に保持され得るものであり、クラウドにはアップロードされ得ない。さらにこれらの様々な(移動させられた、および局所的な)ストリームは、様々な位置で(デバイスのサブセットなど、またはクラウドでも)走るアプリケーション・クエリ・セグメントへの入力として役立ち得るものである。そのようなクエリの出力ストリームは、それら自体は、さらなる計算のために局所的に保持されるか、クラウドにアップロードされる(および、その後場合によっては他のデバイスに転送される)かのいずれかであり得る。全体的には、エンド・ユーザにより仕様記述される計算を、分散型の様式で遂行することが可能である。
RACEアーキテクチャ
図2は、1つのRACE実装形態の全体的なシステムまたはシステム・アーキテクチャ200を示す。システム・アーキテクチャ200は、図1からコンピューティング・デバイス102(1)〜102(N)、クラウド104、およびネットワーク106を引き継いでいる。システム・アーキテクチャ200は、RACE管理サービス202およびRACEプロセッサ204を導入する。RACEプロセッサは、グラフ・コンストラクタ206、オプティマイザ208、およびクエリ・コンストラクタ210を含む。システム・アーキテクチャ200は、統計データ214、参照データ216、制御プレーン218、およびデータ・プレーン220もまた含む。コンピューティング・デバイス102(1)〜102(N)は、それぞれDSMS222(1)〜222(3)のインスタンスを含む。DSMSインスタンス222(4)がさらに、クラウド104内に見出される。
システム・アーキテクチャ200を、アプリケーション開発者224にもたらされる使用感に関して解説する。アプリケーション開発者は、LINQ226などの宣言型および一時性の言語の形でアプリケーションを表記することにより、RACE管理サービス202とインターラクションすることが可能である。解説の目的で、アプリケーションは友人探しアプリ228であるということを仮定する。友人探しアプリの機能性は、図1に関して上記で紹介している。友人探しアプリ228は、それぞれ友人探しアプリ・インスタンス化228(1)〜228(3)として個々のコンピューティング・デバイス102(1)〜102(N)上で、および、友人探しアプリ・インスタンス化228(4)としてクラウド104上で顕在化し得る。さらに、簡潔にするためにコンピューティング・デバイス102(1)に関して例示するだけであるが、個々のコンピューティング・デバイスは、様々なハードウェア230を含み得る。この例では例示するハードウェアは、プロセッサ232、記憶装置234、および、他のもの236である。上記で述べた要素を、下記でより詳細に説明する。
プロセッサ232は、コンピュータ可読命令の形式でのデータを実行して、友人探し機能性などの機能性を提供することが可能である。コンピュータ可読命令などのデータを、記憶装置234上に記憶することが可能である。記憶装置は、コンピューティング・デバイスの内部または外部にあり得るものである。記憶装置234は、揮発性もしくは不揮発性のメモリ、ハード・ドライブ、および/または、光記憶デバイス(例えばCD、DVD等)などの、いずれか1つまたは複数を含み得る。
コンピュータ102(1)を、記憶装置234からのコンピュータ可読命令の形式でのデータを受信および/または生成するように構成することもまた可能である。コンピュータ102(1)は、ネットワーク106を介して、コンピュータ可読命令の形式でのデータを受信することもまた可能であり、そのデータは次いで、コンピュータのプロセッサによる実行のためにコンピュータ上に記憶される。
代替的な構成ではコンピュータ102(1)を、システム・オン・チップ(SOC)タイプの設計として実装することが可能である。そのような場合では、コンピュータにより提供される機能性を、単一のSOCまたは複数の連結したSOC上に集積することが可能である。ある種の構成ではコンピューティング・デバイスは、共有リソースおよび専用リソースを含み得る。インターフェース(複数可)によって、共有リソースと専用リソースとの間の通信が容易になる。その名前が含意するように、専用リソースを、具体的な機能性を実現することに対して専用である個々の一部分を含むと考えることが可能である。共有リソースは、複数の機能性により使用され得る記憶装置、処理ユニット等であり得る。
一般的に、本明細書で説明する機能のいずれも、ソフトウェア、ファームウェア、ハードウェア(例えば固定論理回路)、手動処理、またはこれらの実装形態の組み合わせを使用して実装することが可能である。本明細書では用語「ツール」、「コンポーネント」、または「モジュール」は一般的に、ソフトウェア、ファームウェア、ハードウェア、デバイスもしくはネットワークの全体、またはそれらの組み合わせを表す。例えばソフトウェア実装形態の場合、これらの用語は、プロセッサ(例えば、CPUまたは複数のCPU)上で実行されるときに、指定されたタスクを遂行するプログラム・コードを表し得る。プログラム・コードを、コンピュータ可読記憶媒体などの1つまたは複数のコンピュータ可読メモリ・デバイス内に記憶することが可能である。コンポーネントの特徴および技法はプラットフォームから独立しており、このことは、それらの特徴および技法を、種々の処理構成を有する種々の市販のコンピューティング・プラットフォーム上で実装することが可能であることを意味する。
本明細書では用語「コンピュータ可読媒体」は、一時的および非一時的な命令を含み得る。対照的に用語「コンピュータ可読記憶媒体」は、一時的なインスタンスを除外する。コンピュータ可読記憶媒体は、「コンピュータ可読記憶デバイス」を含み得る。コンピュータ可読記憶デバイスの例は、RAMなどの揮発性記憶媒体、ならびに、ハード・ドライブ、光ディスク、およびフラッシュ・メモリ等のような不揮発性記憶媒体を含む。
他のハードウェア236は、様々なコンピューティング・デバイス上で実装され得るディスプレイ、入出力デバイス、センサ等を含み得る。
RACE管理サービス202は、クラウド104内で走り得るものであり、DSMSの管理APIと完全に互換性がある管理サービスを公開し得る。したがって個々のコンピューティング・デバイス102(1)〜102(N)は、それぞれのDSMS222(1)〜222(N)によりサポートされる正規の一時性宣言型クエリとして、RACE管理サービス202にコンピューティング・デバイス102(1)〜102(N)の宣言型クラウド・エッジ・アプリ・ロジックを付託することが可能である。エッジ・デバイスの観点(例えばコンピューティング・デバイス102(1)〜102(N))からは、それらのデバイスは単に通常のDSMSエンジンと通信するように見えるということに留意されたい。
別の観点から考察すると、RACE管理サービス202を、クラウド上で、および、クラウドと通信している個々のエッジ・コンピューティング・デバイスで実行するアプリケーションとインターラクションするように構成されると考えることが可能である。RACE管理サービス202は、DSMSエンジンを模倣して、個々のエッジ・コンピューティング・デバイスから一時性宣言型クエリを受信するように構成され得る。
手短に言えばRACEプロセッサ204を、友人探しアプリ228を走らせる個々のコンピューティング・デバイス102(1)〜102(N)からの入来するクエリ、アダプタ、およびタイプを、インターセプトおよびパースすると考えることが可能である。次いでRACEプロセッサ204は、これらの入力を元のクエリのオブジェクト表現にコンパイルする。オブジェクト表現はグラフ・コンストラクタ・モジュール206に渡され、グラフ・コンストラクタ・モジュール206は、元のクエリをより大きなクエリ・グラフに変換する。例えばより大きなクエリ・グラフは、エッジごとの入力ストリームおよび演算子を含み得る。クエリ・グラフは、最適演算子配置を確定するためにオプティマイザ・モジュール208に渡される。最終的にクエリ・コンストラクタ・モジュール210が、個々のコンピューティング・デバイス102(1)〜102(N)上で、またはクラウド104で実行されることになる、タイプ、アダプタ、および(サブ)クエリのオブジェクト表現を生成することが可能である。これらのオブジェクトは、分散型の方式でアプリケーション・ロジックを実行するために、それぞれのコンピューティング・デバイスの個々のDSMSに(それらの管理APIによって)送出される。この構成では、RACE管理サービス202およびRACEプロセッサ204はクラウド104上で実装されるが、他の実装形態では代替的または追加的に、RACE管理サービスおよび/またはRACEプロセッサを、コンピューティング・デバイス102(1)〜102(N)の1つまたは複数上で実装することが可能であるということに留意されたい。コンピューティング・デバイス上で実装されるRACE管理サービスおよび/またはRACEプロセッサは、独立型である場合があり、または、クラウド上の対応するRACE管理サービスおよび/もしくはRACEプロセッサのインスタンス化とともに協働的な様式で作動する場合がある。
グラフ・コンストラクタ206を、ストリーム・レートに関する統計値および各々の入力に関するメタデータ情報とともに、入力としてクエリのオブジェクト表現を受け取ると考えることが可能である。グラフ・コンストラクタは最初に、クエリのオブジェクト表現を使用して、拡大されたクエリ・グラフを生成するためのテンプレートまたはスケルトンを表すクエリ・パターンを生成することが可能である。例えば図3は、段落25に関して上記で説明した友人探しクエリに対してグラフ・コンストラクタ206により出力されるクエリ・パターン302を例示する。
クエリ・パターン302内の入力ストリームのある種のものは、GPS位置ソースなどのデバイスごとのデータ・ストリームを指す。グラフ・コンストラクタ206は、クエリ・パターンの複数のインスタンスを、そのようなストリームを、エッジごとに1つである複数の入力に分割することにより発生させることが可能である。ソーシャル・ネットワークなどの遅く変化する参照データ入力を、生成されるクエリ・グラフのサイズを制限するように具現することが可能である。例えば図4は、4人のユーザP、Q、R、およびSのソーシャル・ネットワーク400を示す。図5は、友人探しクエリに対しての対応するインスタンス化されたクエリ・パターン502(1)、502(2)、および502(3)を示す。情報共有を可能にし、インスタンス化されたクエリ・パターン内の重複したエッジを回避するために、インスタンス化されたソースおよび結合演算子は、図5に示すように慎重に名前が付けられることに留意されたい。最終的なステップは、インスタンス化されたクエリ・パターン502(1)〜502(3)を完成したクエリ・グラフにまとめることである。
図6は、図5に示すインスタンス化されたクエリ・パターンから導出される最終的なクエリ・グラフ602を示す。インスタンス化されたクエリ・パターンを組み合わせるとき、同じ名前を伴う(インスタンス化されたパターン内の)頂点は、最終的なクエリ・グラフ内の同じ頂点にマッピングされることに留意されたい。例えば、結合<GPS−P,SNP>頂点は、エッジ(P;R)および(P;S)に対するインスタンス化されたパターンにより共有されている。
図2に戻ると、オプティマイザ・モジュール208が、入力として最終的なクエリ・グラフ602を受け入れ、アプリケーションの全体の、または集合的な通信コストが最小限に抑えられる(または少なくとも削減される)ように、クエリ・グラフ内の各々の演算子(例えばクエリ部分)をどこで実行すべきかを確定する。数千、または数百万ものユーザがクラウド・エッジ・システムに参加する状態では、最終的なクエリ・グラフは、数百万の演算子を包含する巨大なものとなり得る。そのような大きなクエリ・グラフに対しては、最適演算子配置は自明なことではない。RACEオプティマイザ・モジュールは、様々な技法を利用して、最適演算子配置を決定することが可能である。1つのそのような技法を、下記で「最適演算子配置」の見出しの下で説明する。RACEは、周期的な再最適化を遂行して、クエリ・グラフおよび/または統計値の変化に対して配置を調整することが可能である。
高められた/最適演算子配置に関する確定が行われた後、RACEプロセッサ204は、(各々が一時性演算子の有向非巡回グラフ(DAG)からなる)1組の根の付いたクエリ・グラフを有する。各々のそのようなグラフは、ある種の位置(エッジまたはクラウド)に対応する。クエリ・コンストラクタ・モジュール210は、各々のグラフに対する(イベント・タイプ、アダプタ、およびクエリを含む)クエリ・コンポーネントのオブジェクト表現を生成することが可能である。次いでクエリ・コンストラクタ・モジュールは、制御プレーン218によって対応するDSMSにオブジェクト表現を付託することが可能である。2つの追加的なアダプタを各々のDSMSインスタンスに設置することが可能であり、1つはデータ・プレーン220にイベント・データを送出するためのものであり、もう1つはデータ・プレーンからイベント・データを受信するためのものであるということに留意されたい。
RACE制御プレーン218は、DSMSの管理APIを使用して、DSMSのクラウド・インスタンスおよびエッジ・インスタンスに、生成されたクエリ・フラグメントおよびメタデータをデプロイするために使用される。厄介な問題となるのが、エッジ・デバイス(例えば電話)は、普通はRACE管理サービス202からは直接到達可能またはアドレス指定可能ではないということである。代わりにRACE管理サービスは、エッジ・デバイスが、エッジ上のDSMSインスタンスに転送される管理コマンドを受信するために永続的な接続を発生させ維持する相手であるサーバを維持することが可能である。クエリ実行中に、イベントがエッジ・デバイスとクラウドとの間を流れる。RACE管理サービス202は、クラウド104でのサーバとして公開されている離隔したデータ・プレーン220を使用することが可能であり、データ・プレーン220にエッジ・コンピューティング・デバイス102(1)〜102(N)は、制御プレーン218によって接続することが可能である。エッジ・コンピューティング・デバイスおよびクラウド上の生成されたクエリは、データ・プレーン220に登録される名前が付けられたストリームに関するサブスクライブおよびパブリッシュを行う。データ・プレーンは、クラウド104からエッジ・コンピューティング・デバイス102(1)〜102(N)に、およびその逆にイベントをルーティングする。
数千、または数百万ものユーザがクラウド・エッジ・システムに参加する状態では、最終的なクエリ・グラフは、数百万の演算子を包含する巨大なものとなり得る。データ・ソースは分散されている(例えば、様々なユーザのGPSデータ・ストリームは、それらのユーザのエッジ・デバイスから発出させられる)ので、あらゆる演算子の配置は、その影響をクエリ評価のオーバーヘッドに与える。演算子配置の指数関数的に多くの異なる組み合わせが存在する。設計空間全体を検索する単純な手法は、実現可能ではない場合がある。加えて中間結果を共有することを考慮すると、問題はさらに難しくなる。
以下の論考は、クラウド・エッジ・システムの特別な「スター」トポロジーを活用することによる、最適演算子配置のための効率的なアルゴリズムの例に関係するものである。ある種の実装形態に関して、アルゴリズムが正しいことを、下記で述べる2つの仮定が与えられる場合に証明することが可能である。さらに、最適配置を探し出すオーバーヘッドは非常に低くなり得る。
仮定1.クエリの最終的な出力は、入力ストリーミング・データより比較的はるかに小さく、したがってそのコストは無視され得る。
この仮定は、クラウド・エッジ・アプリの一般的な性質を考え合わせると合理的なものである。加えてプライバシーの考慮に基づいて、ある種の実装形態は、演算子の許される位置を制約する場合がある。例えばストリーミング・データは、取り扱いに注意を要する個人情報(例えば、携帯電話の地理的位置追跡)を含み得る。エッジ・クライアントは、未加工の情報が(結合演算の最終的な結果から取り扱いに注意を要するデータを除外することにより)適正に処理されないならば、またはその未加工の情報が、許可されているノードに単に輸送されるならば、その未加工の情報を公開することを望まない場合がある。
仮定2.任意の結合
[外1]
Figure 2015505404
(ただしAおよびBは、結合の入力ストリームである)に関して、結合演算は、AまたはBが発出した、クラウドで、またはノード上でのいずれかで遂行される。
この仮定は、配置問題を簡単にはせず、依然として指数関数的な数の可能な演算子配置が存在することに留意されたい。その論拠および提案するアルゴリズムを提示する前に、いくつかのグラフに基づく明示的意味を説明する。
定義(要求).対(v,v)として、ストリーミング・データ・ソースvが、別のソースvにより生成されるデータを「要求する」(すなわち、その生成されるデータと相関することを必要とする)ということが意味され得る。
定義(要求グラフ).クラウド・エッジ・アプリが与えられる場合、要求グラフG=(V,E)が次のように定義される:頂点集合V={v|vはストリーミング・データ・ソースである}、およびE={(v,v)|(v,v)は要求対である}。各々のエッジe=(i,)∈Eは、vにより要求されるvのストリームのレートを指示するレートrijに関連する。
Figure 2015505404
図7は、図4に示すソーシャル・ネットワークが与えられる場合の、友人探しクエリに対する対応する要求グラフ702を示す。要求グラフ702内のエッジは、要求関係を例示する。例えばエッジ(GPS−P,SN)は、Pから読み出すGPS(GPS−P)がソーシャル・ネットワーク(SN)と相関させられるべきであるということを指示する。要求グラフでは結合演算子は、(結合演算子はストリームとして結合結果を生み出しているので)要求グラフ内の仮想的なデータ・ソースとして扱われる。実際には、要求グラフとクエリ・グラフとの間に1対1のマッピングが存在する。クエリ・グラフG=(V,E)が与えられる場合、アルゴリズム1は対応する要求グラフG=(V,E)を生成する。クエリ・グラフを、同様のアルゴリズムにしたがうことにより要求グラフからリエンジニアリングすることが可能である。
割り当て(assignment):ダウンロード対アップロード.一般的には、分散クエリ評価のための最適演算子配置を確定することは難しい問題であることが知られている。提案するアルゴリズムの本質は、クラウド・エッジ・アーキテクチャの特別なネットワーク特質を活用することに根付くものである。この場合エッジ・コンピューティング・デバイスは、直接相互に通信することは可能でない。代わりに情報を交換するために、エッジ・コンピューティング・デバイスは、クラウド側のサーバを通してデータをアップロードまたはダウンロードしなければならない。
定義(アップロードおよびダウンロード).要求グラフG=(V,E)が与えられる場合、エッジ(I,j)∈Eに対して、この実装形態は、vがどこに配置されるかに関わらず(エッジ・コンピューティング・デバイスまたはクラウド・サーバのいずれでも)、vが常に、(vにより要求される)対応するストリームをクラウド・サーバで利用可能にするための活動を行うならば、(I,j)上で「アップロードする」とvを特徴付け、そうでないならば、vは(i,j)上で「ダウンロードする」と特徴付けられる。
直観的には、頂点がエッジ上でアップロードすることを確定すると(このことは、データ相関が求められていることを表す)、(データはすでにクラウド側で利用可能にされているので)相関はクラウド側で単に遂行され得るため、その頂点がクラウド側のサーバからこの相関のために何らかのデータをダウンロードする理由はない。以下の補助定理を考えてみる。
補助定理1.要求グラフG=(V,E)が与えられる場合、その要求グラフの最適演算子配置、∀(i,j)∈Eにおいて、(i,j)は2つの状態の1つ、すなわち、vが(i,j)上でアップロードしている(ただしダウンロードしていない)か、ダウンロードしている(ただしアップロードしていない)かのいずれかでなければならない。
証明.頂点v∈Vが、(i,)上でアップロードおよびダウンロードの両方を行うことを確定するものとする。対応する相関のための結合演算子を、(仮定2によって)3つの位置、すなわちv、v、およびクラウドに配置することが可能である。この場合結合演算子は、vがvのストリームをすでにアップロードしている際は、最適配置においてvに配置され得ない。結合演算はクラウドで遂行され得たものであり、その場合クラウドは、vにvのデータをダウンロードするための通信コストを節約する。したがってvは、(vに配置される結合演算子がないので)(i,)上でダウンロードしていない。
補助定理1は、要求グラフG=(V,E)が与えられる場合、その要求グラフの最適配置から、G内の各々の頂点に関して行われる1組のアップロード対ダウンロードの確定へのマッピングが存在するという結論に対する裏付けを供与する。そのような1組の確定を、割り当てと定義する。
定義(割り当て).要求グラフG=(V,E)が与えられる場合、割り当てA:E→{D,U}が次のように定義される:頂点vがエッジ(i,j)上でvのストリーミング・データをアップロードすることを確定するならばAi,j=Uであり、そうでないならばAi,j=Dである。
最適配置、およびその最適配置の対応する割り当てを、PoptおよびAoptと表すことが可能である。図8は、図7の要求グラフ702に対する最適配置(Popt)を示す。図9は、対応する割り当て(Aopt)を示す。最適演算子配置において、GPS−PとSNとの間の結合がノードPで遂行され、このことは、区分化されたソーシャル・ネットワーク・グラフSNがノードPに輸送されるべきである、すなわち、SNがクラウドに「アップロードされ」、GPS−Pはアップロードされないということを意味する。このことは、図9で与える割り当てと整合している。
疑問1)AoptからPoptへの逆のマッピングが存在するかどうか、および、2)要求グラフが与えられる場合、Aoptを探し出す効率的なアルゴリズムが存在するかどうかを問うのは当然のことである。下記の論考は、最初は第1の疑問に関係するものであり、次いで徐々に第2の疑問に対する答えを展開する。
すべての割り当てを、実行可能な評価プランにマッピングすることが可能であるとは限らない。結合はすべてのその入力が同じ場所に位置することを求めるという、基本的な制約が存在する。したがって、異なるソース(エッジ・デバイス)から入力を受け取るどの結合に関しても、多くても1つのデバイスがダウンロードしている。
定義(実行可能性およびコンフリクト).要求グラフG=(V,E)が与えられる場合、割り当てAが次の条件:∀e=(i,)∈E、Ai,j≠D∨Aj,i≠Dを満たすならば、その割り当てAは実行可能である。この条件を破るエッジを、コンフリクト・エッジと呼ぶ。
例えば図9は、どの相関に対しても、多くても1つのデータ・ソースがダウンロードすることを確定しているような、図7に示す要求グラフが与えられる場合の実行可能な割り当てを例示する。ASNP,GPS−Pがダウンロードするように変更されるならば、そのことによって、エッジ(SN,GPS−C)がコンフリクト・エッジであるので、割り当ては無効になることになる。
Figure 2015505404
補助定理2.実行可能な割り当てAが与えられる場合、Aを、対応する演算子配置にマッピングすることが可能である。
証明.構造様式により証明する。演算子配置は、(アルゴリズム2として示す)ボトムアップ方式で確定される。基本の場合として、クエリ・グラフ内の葉頂点の位置が知られている(自明ではあるが、ストリーム・ソースである)。内部頂点(すなわち、結合演算子を表す仮想的な頂点)に関して、仮定2によれば、その内部頂点は、クラウド側のサーバに配置され得るものであり、そうでなければ、その内部頂点の入力の1つと同じ場所に位置する。すべてのその内部頂点の入力ソースがアップロードすることを確定するならば、結合演算子はクラウドに配置されるべきであり、そうでないならば、(割り当てAが実行可能であることが与えられる場合)ダウンロードすることを確定する唯一無二の入力ソースが存在し、したがって結合演算子は、その入力ソースと同じ場所に位置させられるべきである。
定理4.5.最適演算子配置問題を、(補助定理1および補助定理2から直接導出される)最適コストによって実行可能な割り当てを探し出すことに転化させることが可能である。
単一レベル結合クエリ
この論考は、アプリケーションが単一レベル結合クエリとして仕様記述される単純型のシナリオによって開始する。この論考を、後に続く論考においてマルチレベル結合クエリに拡張する。
同じ要求レート
論考では最初に、要求グラフ内の任意の頂点iに関して、すべての外出するエッジに対するストリーム・レートが同じである、すなわち、∀(i,j)∈E;ri,j=rである、単一レベル結合クエリの特別な場合を考える。基本的に結合演算子は、結合演算を遂行するために各々の入力ストリームからの完全なストリーミング・データを求める。このことは、(射影または選択などの)フィルタリングが結合の前に遂行されないクエリに対応する。
割り当てのコストを直接考慮する代わりに、ある種の実装形態では、基本の実行可能な割り当て、すなわち、すべての頂点がそれらのストリーミング・データをアップロードすることを確定するという単純な解決策と比較して、(正にも負にもなり得る)アップロードおよびダウンロードを切り替えることの利得を計算することが可能である。アップロードからダウンロードに頂点iを切り替えることにより、利得を次のように計算することが可能である:利得=r−Σ(i,j)∈E。すなわち利得を、iのストリームと相関させられるすべてのストリームをダウンロードすることを代償としてiのストリーミング・データをアップロードしないことの利益と考えることが可能である。
定義(大域的最適性).要求グラフG=(V,E)が与えられる場合、大域的最適割り当てに対するものが、全体の利得を最大化する実行可能な割り当てAである。
大域的最適性を与える割り当てAoptを探し出すための以下の技法は、要求グラフ内の各々の頂点が、その頂点自体の利益に基づいて割り当て確定を局所的に行う貪欲な手法を考慮する。
定義(局所的最適性).要求グラフG=(V,E)が与えられる場合、各々の頂点v∈Vに対して、vに対する局所的最適割り当ては、局所的利得を最大化するAに関する局所的確定である。具体的には、利得>0である場合にのみA=Dである。
局所的最適性が実際には大域的最適性と整合するということを証明することが可能であり、そのことには2つの含意がある。第1に、局所的最適性を計算することに関するオーバーヘッドは低く、要求グラフ内の頂点の次数の数に対して線形である。第2にそのことは、割り当て問題を、区分化し並列に解くことが可能であることを意味する。このことは、この技法はクラウドでの莫大な計算リソースを活用して効率的にその割り当て問題を解くことが可能であるので、要求グラフが巨大である場合には特に重要である。
定理1.要求グラフG=(V,E)が与えられる場合、割り当てA={A|A=vでの局所的最適割り当て、v∈V}は実行可能である。
証明.矛盾により証明する。A=DおよびA=Dであることを意味する、コンフリクト・エッジe=(i,j)が存在するものとする。A=Dであることは、利得=r−Σ(i,j)∈E>0であるということを規定する。したがってr>rである。同様に、r>rであることをA=Dであることから導出することが可能である。したがって矛盾する。
定理2.局所的最適性は大域的最適性と整合する、すなわち、大域的最適性を、局所的最適性を個々に適用することにより導出することが可能である。
証明.1)定理1は、局所的最適性を個々に適用することにより導出される割り当てが実行可能であることを示す。2)各々の局所的最適性は、隔離された物理的リンクに対する最大利得を計算することであり、大域的最適性は単に、物理的リンクに関する利得の加算である。
異なる要求レート
次に論考を、所与の頂点iに対して、他の頂点の各々により要求されるストリーム・レートが異なる場合があるシナリオを考慮するように拡張する。例えば友人探しアプリの場合では、特定のユーザに対するイベント・レートは、そのユーザの友人の各々に関して異なる場合がある。ここでは、より低いレートを伴うストリームを、より高いレートを伴うストリームを使用して構築することが可能であるということを仮定するものであり、このことは、サンプリング・フィルタを適用するクエリに対応する。換言すれば、xイベント/秒をサンプリングする必要があるフィルタを、任意のy≧xに対しての、yイベント/秒をサンプリングする別のフィルタにより提供することが可能である。そのようなシナリオでは、アップロードすること対ダウンロードすることに関する確定を、要求グラフ内の(各々の頂点ではなく)各々のエッジに対して行う必要がある。
レート
[外2]
Figure 2015505404
が、
[外3]

Figure 2015505404
であるように頂点iでソートされていると仮定すると、p個のソートされたエッジに対する最適割り当てが、パターン[U,…,U,D,…,D]を有さなければならないということを確かめることは難しくない。
定義(局所的最適性).ある割り当てにおいての利得
[外4]
Figure 2015505404
を考えてみる。ある種の実装形態では、
[外5]

Figure 2015505404
を選択し、上記で説明したパターンでの割り当てを構成することが可能である。
補助定理4.8.頂点iで局所的最適性を適用した後は、
[外6]

Figure 2015505404
であること、そのことには、
[外7]

Figure 2015505404
であることが含意されている。
証明.矛盾により証明する。
[外8]

Figure 2015505404
であるとする。局所的最適性の定義によれば、
[外9]

Figure 2015505404
となる。
[外10]

Figure 2015505404
であるので、j>kであることに注目されたい。また、
[外11]

Figure 2015505404
である。このことにより、(
[外12]

Figure 2015505404
が最適であるので)矛盾が発生する。
定理3.実行可能性定理(定理1)は依然として有効である。
証明.矛盾により証明する。コンフリクト・エッジe(v,v)が存在するものとする。補助定理3を適用することで、Av1,v2=Dからrv1,v2>rv2,v1が、および、Av2,v1=Dからrv2,v1>rv1,v2が与えられ、このことが矛盾を生み出す。
マルチレベル結合クエリ
マルチレベル結合クエリを考慮するとき、単一レベル結合クエリに対して開発されたアルゴリズムを単純に適用することを妨げる困難が存在し得る。例えば単一レベル結合クエリに関しては、結合演算子に対する出力ストリームのコストは、(最終的な出力が、入力ストリームと比較して無視できるということを仮定するので)考慮されない。しかしながらそのことは、マルチレベル結合クエリに関しての実情ではない。例えば、前のセクションで提示したアルゴリズムを単純に適用するとき、エッジ・デバイスは、他のストリームをダウンロードし、局所的に計算を遂行することを個々に確定することが可能である。しかしながら、出力ストリームがその後、(その最適配置がクラウド側である)より高いレベルの結合演算子に対して求められるという事実をエッジ・デバイスが認識しているならば、そのエッジ・デバイスは異なる確定を行う場合がある。下記の論考は、この課題が、単一レベル結合に対するアルゴリズムを拡張することによりどのように解決されるかに関係するものである。
仮定3.所与のエッジからのデータ・ストリームは、クエリ・グラフ内の任意の演算子の1つ以下の子部分木に現れる。
このことは合理的な仮定であり、その理由は、同じエッジ・デバイスからのストリームを単一のストリームに単に組み合わせること、または、これらのストリームが必然的に含まれる必要な計算を局所的に遂行することが可能であるからというものである。この仮定はソースまたは中間結果の共有を排除せず、特にその仮定は、クエリ・パターンが、異なるデータ・ソースにわたる左深木(left−deep tree)である場合に常に有効であるということに留意されたい。
トップダウン方式での演算子配置
クエリ・グラフ内の内部結合演算子を、仮想的なストリーム・ソースとみなすことが可能であるが、それらの内部結合演算子の位置は確定される必要がある。直観的にはクエリ・グラフが与えられる場合、本発明の技法は、トップダウン方式で演算子に対するアップロード対ダウンロードの確定を行うことが可能である。例えば確定を、結合演算子に対応する所与の頂点vに対して、その結合演算子の出力が輸送されるべき位置(その結合演算子の親演算子により行われる配置確定に基づく)が知られている限りにおいて行うことが可能である。単一レベル結合クエリに対するアルゴリズムを、行先に出力ストリームを輸送するコストを追加的に含むことにより、直接的に拡張することが可能である。
考慮されるただ1つの行先はクラウド側であるということに留意されたい。例えば、行先が別のエッジ・デバイスである(出力ストリームが、そのエッジ・デバイスに位置する別の頂点vにより求められるため)場合でも、この技法では、輸送コストのダウンロードする部分(すなわち、クラウド側からそのエッジ・デバイスに出力ストリームを送出するコスト)に関しては、このダウンロードするコストは、vに対する利得を算出する際にすでに考慮されているので、考慮する必要がない。仮定1および3によって、頂点vを考慮するとき、実際の配置確定は、その行先に関しては、それが、クラウドに、そうでなければ、v(またはその部分木)が重複しない何か他のエッジに確かに配置されることになるので、無視され得るということが確実になるということに留意されたい。この主要な知見によってアルゴリズムの拡張が可能になるとともに、拡張されたアルゴリズムが依然として、実行可能で最適な割り当てを保証するということを容易に示すことが可能である。
トップダウン方式でのアップロード対ダウンロード
(単一レベル結合クエリに対する)先の手法は、アップロード対ダウンロードの確定が行われた後に、ボトムアップ方式で演算子の配置を導出するということに注目されたい。アルゴリズム3を、親演算子の配置ではなく(その配置が利用可能でない際に)親演算子の割り当てに基づいて、アップロード対ダウンロードの割り当てを確定するように微調整することが可能である。
親頂点vの確定が知られると、ある種の実装形態は、子頂点vに対して何の確定が行われるべきかを考慮することが可能である。やはりvは、アップロードまたはダウンロードのいずれかという、2つの選定対象を有する。
1つのシナリオでは、親頂点vの確定がダウンロードであるならば、そのことは、出力をクラウド・サーバで利用可能にするための活動を行う必要性がないことを意味する。したがって、vに対する局所的最適性を探し出すときには、出力ストリームのコストは利得を計算する際に考慮されない。
別のシナリオでは、親頂点vの確定がアップロードであるならば、そのことは、vの出力ストリームがクラウド・サーバで利用可能にされるべきであることを意味する。したがって、vに対する局所的最適性を探し出すときには、出力ストリームのコストは考慮されるべきである。
アルゴリズム3は、入力として要求グラフG=(V,E)を受け取り、最適演算子配置を計算する。アルゴリズムは包括的なシナリオに適用されるものであり、そのシナリオでは、マルチレベル結合クエリ、およびエッジごとの要求レートを仮定する(すなわち、所与の頂点から開始する要求エッジに関連するレートは異なる場合がある)。定理1および2によって、導出される割り当てが実行可能であり最適であるということを確かめることは難しくない。
Figure 2015505404
非対称アップロード/ダウンロード・コスト
ここまでは上記の技法は、アップロード・コストおよびダウンロード・コストが同じであるという仮定を基に動作していた。しかしながら現実では、そのことが実情ではない場合がある。例えば、アップロードすることおよびダウンロードすることに対する帯域幅利用の単位あたりの価格は異なる場合がある(例えばクラウド・サービス・プロバイダは、ユーザがクラウド内にデータを給送することを勧奨するために非対称コストを導入する場合がある)。別の例としてエッジ・デバイスは、アップロードすることおよびダウンロードすることに対して異なるバッテリ消費を呈する場合がある。
後に続く論考は、非対称アップロード/ダウンロード・コストを考慮するものである。アップロードすることおよびダウンロードすることに対する単位あたりのコストを、CおよびCと表す。C<Cであるシナリオに対しては、先のセクションで提示したC=Cに対する結果が依然として有効である。基本的に、主要な実行可能性定理(定理1)の論拠は有効である。
他方で、最適演算子配置を確定することは、C>Cである場合に関してはより難しい問題である。C=0である特別な場合に関しては、最適演算子配置問題は、古典的な重み付き最小頂点被覆(weighted min vertex cover)(WMVC)問題からの転化により難しいことが証明可能であるということを示すことが可能である。本質的には、実行可能性定理はこれらの場合では破綻し、したがって、エッジ・デバイスに局所的最適性を個々に適用させることが、コンフリクトをもたらす場合がある。そのような場合、実行可能な割り当てを、より高いレートでアップロードするように要求グラフ内のある種の頂点を設定することによりコンフリクトを解決することにより取得することが依然として可能である。したがって問題は、効率的な一般解を欠く、残余グラフにおけるWMVC問題に転化する。以下の論考は、条件に関係するものである。条件が満たされるならば、最適演算子配置問題を効率的に解くことが可能である。
定義.要求グラフG=(V,E)が与えられる場合、頂点v∈VのスキューSは、vからの外出するエッジに関連する最大レートと最小レートとの間の比として定義される。すなわち、S=max(v,i)∈E,i)v,i/min(v,j)∈Ev,jである。
定義.要求グラフG=(V,E)が与えられる場合、Gのスキューは、G内のノードの中の最大スキューとして定義される。すなわち、S=maxv∈Vである。
Figure 2015505404
表1:演算子配置アルゴリズムの要約を示す。大域的最適性がすべての場合において実現される。
補助定理4.グラフGのスキューSが与えられる場合、C<C<(1+1/S)・Cであるならば、すべての頂点に関して局所的最適性を適用した後、コンフリクト・エッジからなる残余グラフG’は非巡回である(すなわち、離隔した木である)。
証明.矛盾により証明する。残余グラフG’内に巡回(v,v)、(v,v)、…、(v(p−1),v)、(v,v)が存在するものとする。提示の目的で、v=vおよびv(p+1)=vということを意味するとする。巡回内のあらゆるエッジはコンフリクト・エッジであるので、∀1≦i≦pに対して、
[外13]

Figure 2015505404
という、閉じていない範囲が存在する。
これらの不等式を加算することにより、次式を導出することが可能である。
[外14]

Figure 2015505404
したがってこの実装形態は、以下の矛盾を導出し得る。
[外15]

Figure 2015505404
定理4.C<C<(1+1/S)・Cであるならば、最適演算子配置をP時間内に探し出すことが可能である。
証明.そのことを、G’は非巡回であるという補助定理4を適用することにより結論付けることが可能である。この論考は、残余グラフG’内の各々の木に対して、その重み付き最小頂点被覆を、動的プログラム・アルゴリズムを使用して線形時間で探し出すことが可能であるということを示す。
葉頂点から開始して、各々の頂点vに対して、被覆集合内のvを有する(または有さない)、(vが根となる)部分木に対する頂点被覆のコストを考えてみる。任意の内部頂点vに対して、vが被覆集合内にないならば、vのすべての子は被覆集合内にあるべきである。したがって、コスト =Σi∈子(v)コスト である。他方でvが被覆集合内にあるならば、各々の部分木は、その部分木の頂点被覆を独立的に選定することが可能であり、
[外16]

Figure 2015505404
である。
異なる友人により求められるストリーム・レートが同じである特別な場合に関しては、(大部分の実際的なシナリオにおいて有効である)C<C<2・Cであるならば、最適配置をP時間内に探し出すことが可能であるということに留意されたい。経験的にはC≧2・Cである場合でも、コンフリクトするエッジは依然として隔離された木を形成する。
要約
表1は、提案する演算子配置アルゴリズムが、クエリ複雑度、選択条件、およびアップロード/ダウンロード・コスト比の様々な組み合わせが与えられる場合の、理論的結果および時間複雑度を要約したものである。
演算子配置アルゴリズムは、要求グラフ内の各々の頂点に対する局所的最適性を個々に考慮することにより、大域的最適解を計算する。この論考では、(C≦Cであるならば)局所的最適性は大域的最適性と整合するということを証明する。効率的な貪欲アルゴリズムを、局所的最適性を計算するために提案する。この効率的な貪欲アルゴリズムによって、各々のノードは、局所的利得を最大化する解を個々に選定する。
このアルゴリズムは、単一レベル結合クエリ、および、より複雑なマルチレベル結合クエリの両方に対処する。マルチレベル結合クエリの場合、クエリ・グラフ内の内部結合演算子は仮想的な頂点として扱われる。局所的最適性を、トップダウン方式で各々の個々の頂点に対して計算することが可能である。加えて、残余グラフが(C>Cに対して)非巡回であるよくある場合では、要求グラフに対する最適割り当てを探し出すための効率的な動的計画法(DP)アルゴリズムが存在する。したがって、クエリ・グラフに対する最適演算子配置を決定することが可能である。ブラック・ボックス演算子を伴う一般的なクエリ・グラフに対するこれらの概念の拡張を、さらに解説する。
(普通はリアルタイム・データにわたる相関である)クラウド・エッジ・アプリの性質が与えられる場合に、上記の論考では主に(サンプリング・フィルタを伴う)結合クエリに重点を置いた。後に続く論考は、提案するアルゴリズムを、クラウド・エッジ・トポロジー内の一般的なクエリ・グラフをサポートするためにどのように適用することが可能であるかに関係するものである。論考ではさらに、クエリ・グラフおよびイベント・レートの変化などのランタイム動態にどのように対処することが可能であるかを解説する。
一般的なクエリ・グラフへの対処
クエリ・グラフGは、1組のブラック・ボックス演算子(Oと表す)にわたる有向非巡回グラフ(DAG)と定義され、ここでG内の葉をソースと呼び、根をシンクと呼ぶ。O内の各々の演算子は、ゼロ(ソースを表す)以上の入力を受け取ることが可能であり、その演算子の出力は、他の演算子への入力として使用され得る。選択および射影は1入力演算子の例であり、一方で結合演算は、2入力演算子(または、低木のような結合に関しては多入力演算子)の例である。演算子配置アルゴリズムの高レベルの直観的事実は、各々の演算子が、その演算子の局所的コストを最適化するためにその演算子の出力をその演算子がアップロードするべきか(それともダウンロードするべきか)を、(トップダウンの順序で)個々に確定することが可能であるという点で、依然として有効である。この場合、割り当ての実行可能性は依然として前のように保証される。さらに、演算子がブラック・ボックスとみなされるということを考え合わせると、異なる演算子の出力にわたる共有を用いる機会はもはや存在しない。この場合、局所的最適状態と大域的最適状態との間の整合性は、定理2と同様の論拠にしたがって、依然として有効である。したがってここでも問題を、最適なアップロード/ダウンロード割り当てを探し出すことに転化させることが可能であり、提案する効率的な局所的最適性アルゴリズムを使用することが可能である。
動態への対処
アルゴリズムのある種の実例では、クエリ・グラフ、およびすべてのストリームに対するレート統計値が利用可能であることを仮定する。最適配置は、最適化段階で収集されたこの情報に基づいて計算される。しかしながらクエリ・グラフは、例えば、ソーシャル・ネットワーク内のエッジの追加および除去に起因して、経時的に変化する場合がある。同様に、イベント・レートもまた経時的に変化する場合がある。したがって、ランタイムの間のこれらの変化に適合することが必要である場合がある。提案する最適化アルゴリズムが非常に効率的であるということを考え合わせると、周期的な再最適化が実行可能な解決策である。しかしながら再最適化は、デプロイメント・オーバーヘッド(例えば、クエリ定義などの制御プレーン・メッセージを送出すること)に直面する場合がある。実装形態が非常に高頻度で再最適化するならば、再最適化オーバーヘッドによって最適化の利益が見劣りする場合がある。
この板挟み状態を解決するためには、1つの解決策は、コスト・ベース・オンライン・アルゴリズムを使用することである。例えばそのようなアルゴリズムは、再最適化を遂行しないことに起因する蓄積される損失を推定および維持し、蓄積された損失が再最適化のオーバーヘッドを上回るならば再最適化を遂行することを選定することが可能である。この手法の潜在的に有益な特質は、その手法が3倍の競争力がある(3−competitive)、すなわち、全体的なコストが(変化が演繹的にわかるとしても)最適状態の3倍により範囲が定められることが保証されるということである。
上記の論考は、具体的なRACE実装形態のきわめて詳細な部分を供与する。RACEは、広範な部類のリアルタイム・クラウド・エッジ・アプリケーションをサポートすることが可能である。RACEは、2つの主な技術的課題、すなわち(1)そのようなアプリケーションの仕様記述、および(2)クラウド・エッジ・トポロジー内でのそれらのアプリケーションの最適化された実行に関して対応処理した。(1)に関しては論考では、(StreamInsightに対するLINQなどの)宣言型一時性クエリ言語を使用してこれらのアプリケーションを表現することが、非常に強力であり直観的であるということを示している。(2)に関しては、DSMSエンジンの使用が、エッジ・デバイスおよびクラウド上で、処理を共有し、アプリケーション・ロジックの異なる一部分を実行するために提案されている。ここでは新規のアルゴリズムは、高度に効率的であり、それにもかかわらず証明可能であるように大域的ネットワーク・コストを最小限に抑え、一方で非対称ネットワーク、一般的なクエリ・グラフ、および中間結果の共有に対処する。上記のRACE実装形態は、市販で入手可能なDSMSであるMicrosoft(登録商標)StreamInsight(登録商標)とともに作動するように構成される。他の実装形態を、他のDSMS選択肢を使用するように構成することが可能である。
現実のデータセットに対する実験は、RACEオプティマイザが、現況技術の最適配置技法より何桁か効率的であるということを指し示した。さらに本発明の実装形態により実現される配置は、8:6百万のエッジを伴う現実的なソーシャル・ネットワーク・グラフに対しての友人探しアプリに関して、より単純型の体系より何倍か低いコストをもたらした。RACEは、クラウド内部で容易に並列化可能である。RACEはさらに、最高500までのエッジ・クライアントを伴う現実のデプロイメントに関して、まさに単一のマシンを使用することを良好にスケーリングする。ある種の実装形態の細部は、細かいレベルの粒度で、上記で説明されている。下記の論考は、上記で述べた実装形態に、および/または他の実装形態に関係する場合がある、より広範な説明を供与するものである。
さらなる方法例
図10は、本発明の概念の少なくともある種の実装形態に整合する技法または方法1000のフローチャートを例示する。
ブロック1002では方法は、複数のエッジ・デバイスおよびクラウド・ベース・リソースを含むクラウド・エッジ・トポロジー内で宣言型ストリーミング・クエリを取得することが可能である。
ブロック1004では方法は、宣言型ストリーミング・クエリを、複数のエッジ・デバイスを反映するクエリ・グラフに変換することが可能である。
ブロック1006では方法は、クラウド・エッジ・トポロジーに関するリソース使用量に基づいて、クエリ・グラフの演算子を個々のエッジ・デバイス上で実行すべきか、それともクラウド・ベース・リソース上で実行すべきかを決定することが可能である。
上記で述べた方法を説明する順序は限定と解釈されることは意図されておらず、任意の数の説明したブロックを任意の順序で組み合わせて、その方法または代替の方法を実装することが可能である。さらに方法を、コンピューティング・デバイスが方法を実装することが可能であるように、任意の適したハードウェア、ソフトウェア、ファームウェア、またはそれらの組み合わせで実装することが可能である。1つの場合では方法は、コンピューティング・デバイスによる実行によってコンピューティング・デバイスが方法を遂行することになるように、1組の命令としてコンピュータ可読記憶媒体上に記憶される。
結論
クラウド・エッジ・リソースおよびそれらの割り振りに関係のある、技法、方法、デバイス、システム等を、構造的特徴および/または方法論的行為に対しての具体的な文言で説明しているが、添付の特許請求の範囲において定義される主題は、説明した具体的な特徴または行為に必ずしも限定されないということを理解されたい。むしろ具体的な特徴および行為は、請求する方法、デバイス、システム等を実装する例示的な形式として開示されるものである。


Claims (10)

  1. 複数のエッジ・デバイスおよびクラウド・ベース・リソースを含むクラウド・エッジ・トポロジー内で宣言型ストリーミング・クエリを取得するステップと、
    前記宣言型ストリーミング・クエリを、前記複数のエッジ・デバイスを反映するクエリ・グラフに変換するステップと、
    前記クラウド・エッジ・トポロジーに関するリソース使用量に基づいて、前記クエリ・グラフの演算子を個々のエッジ・デバイス上で実行すべきか、それとも前記クラウド・ベース・リソース上で実行すべきかを決定するステップと
    を含む方法。
  2. 前記エッジ・コンピューティング・デバイスが、ネットワークを介して前記クラウド・ベース・リソースと直接通信するように構成されるスマート・コンピューティング・デバイスを備え、前記ネットワークが、個々のスマート・コンピューティング・デバイスが相互に直接通信することを可能にするように構成されず、むしろ前記個々のスマート・コンピューティング・デバイスが、前記クラウド・ベース・リソースを介して間接的に相互に通信する、請求項1に記載の方法。
  3. 決定する前記ステップが、ネットワーク帯域幅リソース使用量に関係する前記クラウド・ベース・リソースに対する大域的最適条件を決定するステップを含む、請求項1に記載の方法。
  4. 大域的最適条件を決定する前記ステップが、前記クエリ・グラフのノードが貪欲な方途で局所的確定を行うことを可能にするステップを含み、前記局所的確定が、累積的に考察される場合に前記大域的最適条件を生み出す、請求項3に記載の方法。
  5. クラウド上で、および、前記クラウドと通信している個々のエッジ・コンピューティング・デバイスで実行するアプリケーションとインターラクションするように構成される、リアルタイム・アプリケーション・オーバー・クラウド・エッジ(RACE)クラウド・ベース管理サービスであって、データ・ストリーム管理システム(DSMS)エンジンを模倣して、前記個々のエッジ・コンピューティング・デバイスから一時性宣言型クエリを受信するように構成される、RACEクラウド・ベース管理サービスと、
    前記一時性宣言型クエリをインターセプトするように、ならびに、個々の一時性宣言型クエリをオブジェクト表現にパースおよびコンパイルするように構成されるRACEプロセッサと
    を備えるシステム。
  6. 前記RACEプロセッサが、前記オブジェクト表現からクエリ・パターンを生成するように構成されるグラフ・コンストラクタを備える、請求項5に記載のシステム。
  7. 前記クエリ・パターンが、各々のエッジ・コンピューティング・デバイスからのデータ・ストリームを指す入力ストリームを含むインスタンスにおいて、前記グラフ・コンストラクタが、前記クエリ・パターンの複数のインスタンスを含むクエリ・グラフを、前記データ・ストリームを、前記クエリ・グラフのエッジごとに1つの入力ストリームを伴う前記クエリ・パターンの複数のインスタンスに分割することにより発生させるようにさらに構成される、請求項6に記載のシステム。
  8. 前記RACEプロセッサが、前記エッジ・コンピューティング・デバイスとクラウド・ベース・リソースとの間の全体の通信コストを削減するために、前記クエリ・グラフの個々の演算子をどこで実行すべきかを決定するように構成されるオプティマイザを備える、請求項7に記載のシステム。
  9. 前記オプティマイザが、前記エッジ・コンピューティング・デバイスと前記クラウド・ベース・リソースとの間の全体の通信コストを最小限に抑えるために、前記クエリ・グラフの個々の演算子をどこで実行すべきかを決定するように構成される、請求項8に記載のシステム。
  10. 前記RACEプロセッサが、各々のエッジ・コンピューティング・デバイス上で、または前記クラウドで実行されることになる、タイプ、アダプタ、およびサブクエリのオブジェクト表現を生成するように構成されるクエリ・コンストラクタを備える、請求項5に記載のシステム。


JP2014550337A 2011-12-27 2012-12-19 クラウド・エッジ・トポロジー Active JP6172721B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/337,291 US9098344B2 (en) 2011-12-27 2011-12-27 Cloud-edge topologies
US13/337,291 2011-12-27
PCT/US2012/070427 WO2013101563A1 (en) 2011-12-27 2012-12-19 Cloud-edge topologies

Publications (2)

Publication Number Publication Date
JP2015505404A true JP2015505404A (ja) 2015-02-19
JP6172721B2 JP6172721B2 (ja) 2017-08-02

Family

ID=48315598

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014550337A Active JP6172721B2 (ja) 2011-12-27 2012-12-19 クラウド・エッジ・トポロジー

Country Status (12)

Country Link
US (2) US9098344B2 (ja)
EP (1) EP2798512B1 (ja)
JP (1) JP6172721B2 (ja)
KR (1) KR102008242B1 (ja)
CN (1) CN103108031B (ja)
AU (1) AU2012362829B2 (ja)
BR (1) BR112014016099B1 (ja)
CA (2) CA2859500C (ja)
IN (1) IN2014CN04218A (ja)
MX (1) MX346690B (ja)
RU (1) RU2628208C2 (ja)
WO (1) WO2013101563A1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10303138B2 (en) 2016-12-22 2019-05-28 Fuji Xerox Co., Ltd. Equipment control system, image forming device, and non-transitory computer readable storage medium
US10958716B2 (en) 2017-10-02 2021-03-23 Fujitsu Limited Distributed process management system, distributed process management method for suppressing number of messages between computers, and information processing apparatus
KR20210041056A (ko) 2019-05-28 2021-04-14 가부시끼가이샤 히다치 세이사꾸쇼 정보 처리 시스템, 및 정보 처리 시스템의 제어 방법
WO2021260970A1 (ja) * 2020-06-26 2021-12-30 ソニーグループ株式会社 ネットワークの制御方法、および、データ処理システム
US11539788B2 (en) 2019-05-28 2022-12-27 Hitachi, Ltd. Information processing system and method of controlling information processing system

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120030343A1 (en) 2010-07-29 2012-02-02 Apple Inc. Dynamic migration within a network storage system
WO2013065056A1 (en) 2011-10-31 2013-05-10 Hewlett-Packard Development Company, L.P. Rendering permissions for rendering content
US9098344B2 (en) * 2011-12-27 2015-08-04 Microsoft Technology Licensing, Llc Cloud-edge topologies
US9462080B2 (en) * 2012-04-27 2016-10-04 Hewlett-Packard Development Company, L.P. Management service to manage a file
US20130290511A1 (en) * 2012-04-27 2013-10-31 Susan Chuzhi Tu Managing a sustainable cloud computing service
US9002822B2 (en) * 2012-06-21 2015-04-07 Sap Se Cost monitoring and cost-driven optimization of complex event processing system
US9842140B2 (en) * 2012-06-26 2017-12-12 Telefonaktiebolaget Lm Ericsson (Publ) Dynamic input streams handling in DSMS
US8856386B2 (en) * 2012-08-21 2014-10-07 Cisco Technology, Inc. Cloud resource placement using placement pivot in physical topology
WO2014036717A1 (zh) * 2012-09-07 2014-03-13 运软网络科技(上海)有限公司 虚拟资源对象组件
US9106721B2 (en) 2012-10-02 2015-08-11 Nextbit Systems Application state synchronization across multiple devices
US8745261B1 (en) * 2012-10-02 2014-06-03 Nextbit Systems Inc. Optimized video streaming using cloud computing platform
GB2507338A (en) 2012-10-26 2014-04-30 Ibm Determining system topology graph changes in a distributed computing system
EP2731362A1 (en) * 2012-11-08 2014-05-14 Alcatel Lucent Configuration of electronic device
US9654538B1 (en) * 2013-03-11 2017-05-16 DataTorrent, Inc. Dynamic partitioning of instances in distributed streaming platform for real-time applications
US9769675B2 (en) * 2013-03-15 2017-09-19 Hewlett Packard Enterprise Development Lp Cloud-based connectivity
US8805972B1 (en) * 2013-06-26 2014-08-12 Kaspersky Lab Zao Multi-platform operational objective configurator for computing devices
CN105765575B (zh) * 2013-11-11 2019-11-05 亚马逊科技公司 数据流摄取和持久性技术
US9720989B2 (en) 2013-11-11 2017-08-01 Amazon Technologies, Inc. Dynamic partitioning techniques for data streams
US9553822B2 (en) 2013-11-12 2017-01-24 Microsoft Technology Licensing, Llc Constructing virtual motherboards and virtual storage devices
US20160197837A1 (en) * 2015-01-05 2016-07-07 L&M Ip Method for Conveying Media to a Cloud Computing Environment
US9632846B2 (en) 2015-04-02 2017-04-25 Microsoft Technology Licensing, Llc Complex event processor for historic/live/replayed data
US10217053B2 (en) 2015-06-23 2019-02-26 International Business Machines Corporation Provisioning service requests in a computer system
US10063428B1 (en) * 2015-06-30 2018-08-28 Apstra, Inc. Selectable declarative requirement levels
US20170154080A1 (en) * 2015-12-01 2017-06-01 Microsoft Technology Licensing, Llc Phasing of multi-output query operators
US10313206B1 (en) * 2015-12-23 2019-06-04 Apstra, Inc. Verifying service status
US10523762B2 (en) 2016-06-30 2019-12-31 Red Hat, Inc. Persistent real-time communication channels with cloud computing systems
WO2018037151A1 (en) * 2016-08-23 2018-03-01 Teleste Oyj A method for providing information to information representation units
US20180150511A1 (en) * 2016-11-29 2018-05-31 International Business Machines Corporation Processing a data query
US20190109877A1 (en) 2017-10-11 2019-04-11 Microsoft Technology Licensing, Llc Secure application metering
WO2019081001A1 (en) 2017-10-25 2019-05-02 Huawei Technologies Co., Ltd. DEVICES AND METHODS FOR TRANSFORMING USER PLANE SIGNALING FROM A REMOTE LATERAL BINDING CONTROL SERVER INTO CONTROL PLANE SIGNALING
US10432462B2 (en) 2018-03-05 2019-10-01 International Business Machines Corporation Automatic selection of cut-point connections for dynamically-cut stream processing systems
CN109788074A (zh) * 2018-03-19 2019-05-21 南京邮电大学 一种边缘智能服务系统
WO2020020442A1 (en) 2018-07-24 2020-01-30 Huawei Technologies Co., Ltd. Edge computing topology information exposure
US11902092B2 (en) * 2019-02-15 2024-02-13 Samsung Electronics Co., Ltd. Systems and methods for latency-aware edge computing
CN110022234B (zh) * 2019-04-16 2022-02-22 中国人民解放军国防科技大学 面向边缘计算的非结构化数据共享机制实现方法
US11075805B1 (en) 2019-04-24 2021-07-27 Juniper Networks, Inc. Business policy management for self-driving network
US11075812B2 (en) * 2019-06-20 2021-07-27 Kaloom Inc. Server and methods for synchronizing networking information with client devices
CN111177178B (zh) * 2019-12-03 2023-06-06 腾讯科技(深圳)有限公司 一种数据处理方法及相关设备
US10771569B1 (en) * 2019-12-13 2020-09-08 Industrial Technology Research Institute Network communication control method of multiple edge clouds and edge computing system
TWI752401B (zh) * 2019-12-13 2022-01-11 財團法人工業技術研究院 多邊緣雲之網路通訊控制方法及邊緣運算裝置與系統
CN111182076B (zh) * 2020-01-02 2022-08-02 合肥工业大学 云边协同的智能电网监测系统及其资源分配和调度方法
KR20210136761A (ko) * 2020-05-08 2021-11-17 삼성전자주식회사 에지 컴퓨팅 서비스 관련 정보 관리 방법 및 장치
SE545287C2 (en) * 2020-08-28 2023-06-20 Stream Analyze Sweden Ab Method and system for data processing
SE545771C2 (en) 2020-08-28 2024-01-09 Stream Analyze Sweden Ab Method and system for data processing
SE545286C2 (en) * 2020-08-28 2023-06-20 Stream Analyze Sweden Ab Method and system for data processing
CN112132202B (zh) * 2020-09-18 2023-11-17 嘉兴学院 一种基于综合信任评价的边缘计算协同盟员发现方法
US11343315B1 (en) * 2020-11-23 2022-05-24 International Business Machines Corporation Spatio-temporal social network based mobile kube-edge auto-configuration
JP7247161B2 (ja) 2020-12-24 2023-03-28 株式会社日立製作所 情報処理システム及び情報処理システムにおけるデータ配置方法
EP4272471A1 (en) * 2021-02-10 2023-11-08 Samsung Electronics Co., Ltd. Method and device for identifying service area in wireless communication system
US11977907B2 (en) 2021-03-16 2024-05-07 Red Hat, Inc. Hybrid push and pull event source broker for serverless function scaling
US11720602B2 (en) 2021-05-10 2023-08-08 Bank Of America Corporation Systems and methods providing streamlined data correlation in edge computing
US11720425B1 (en) 2021-05-20 2023-08-08 Amazon Technologies, Inc. Multi-tenant radio-based application pipeline processing system
US11800404B1 (en) 2021-05-20 2023-10-24 Amazon Technologies, Inc. Multi-tenant radio-based application pipeline processing server
US11916999B1 (en) 2021-06-30 2024-02-27 Amazon Technologies, Inc. Network traffic management at radio-based application pipeline processing servers
US11539582B1 (en) 2021-08-30 2022-12-27 Amazon Technologies, Inc. Streamlined onboarding of offloading devices for provider network-managed servers
US11936517B2 (en) 2022-03-31 2024-03-19 Cisco Technology, Inc. Embedding custom container images and FaaS for an extensibility platform
US11985065B2 (en) 2022-06-16 2024-05-14 Amazon Technologies, Inc. Enabling isolated virtual network configuration options for network function accelerators
US11824943B1 (en) 2022-06-29 2023-11-21 Amazon Technologies, Inc. Managed connectivity between cloud service edge locations used for latency-sensitive distributed applications
CN115243303B (zh) * 2022-07-25 2024-05-07 中国人民解放军63891部队 用于频谱监测的边缘计算设备的部署方法、系统以及介质
US11937103B1 (en) 2022-08-17 2024-03-19 Amazon Technologies, Inc. Enhancing availability of radio-based applications using multiple compute instances and virtualized network function accelerators at cloud edge locations
CN116257692B (zh) * 2023-05-15 2023-08-18 鹏城实验室 一种基于云边协同的资产共享及推荐方法及系统

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6671276B1 (en) 1997-11-18 2003-12-30 Nec Corporation Switch based network architecture for IP multicast and integrated services
US6332163B1 (en) 1999-09-01 2001-12-18 Accenture, Llp Method for providing communication services over a computer network system
US6578054B1 (en) * 1999-10-04 2003-06-10 Microsoft Corporation Method and system for supporting off-line mode of operation and synchronization using resource state information
US8463839B2 (en) 2000-03-28 2013-06-11 Cybernet Systems Corporation Distributed computing environment
US6959320B2 (en) * 2000-11-06 2005-10-25 Endeavors Technology, Inc. Client-side performance optimization system for streamed applications
US7680916B2 (en) * 2007-04-24 2010-03-16 Hyperformix, Inc. System for improving the performance of a computer software application in a server network
JP5119844B2 (ja) 2007-10-09 2013-01-16 沖電気工業株式会社 ファイル転送システム、ファイル転送方法、ファイル転送プログラム及びインデックスサーバ
US8099720B2 (en) 2007-10-26 2012-01-17 Microsoft Corporation Translating declarative models
US8051069B2 (en) * 2008-01-02 2011-11-01 At&T Intellectual Property I, Lp Efficient predicate prefilter for high speed data analysis
US8797178B2 (en) 2008-03-10 2014-08-05 Microsoft Corporation Efficient stream sharing for multi-user sensor data collection
CN101981570A (zh) 2008-04-01 2011-02-23 雅虎公司 用于与内容对象集成、关联和交互的开放式架构
US8291006B2 (en) 2008-05-30 2012-10-16 International Business Machines Corporation Method for generating a distributed stream processing application
US8285681B2 (en) 2009-06-30 2012-10-09 Commvault Systems, Inc. Data object store and server for a cloud storage environment, including data deduplication and data management across multiple cloud storage sites
WO2011009101A1 (en) 2009-07-16 2011-01-20 Bluefin Lab, Inc. Estimating and displaying social interest in time-based media
US20110072489A1 (en) 2009-09-23 2011-03-24 Gilad Parann-Nissany Methods, devices, and media for securely utilizing a non-secured, distributed, virtualized network resource with applications to cloud-computing security and management
US20110126168A1 (en) 2009-11-25 2011-05-26 Crowdsource Technologies Ltd. Cloud plarform for managing software as a service (saas) resources
US9106591B2 (en) * 2009-12-24 2015-08-11 Delphix Corporation Adaptive resource management using survival minimum resources for low priority consumers
US8806014B2 (en) * 2010-03-19 2014-08-12 Novell, Inc. Techniques for intelligent service deployment
US9898342B2 (en) * 2010-05-14 2018-02-20 Micro Focus Software Inc. Techniques for dynamic cloud-based edge service computing
CN101977242A (zh) 2010-11-16 2011-02-16 西安电子科技大学 一种分层分布式云计算体系结构及服务提供方法
RU2435236C1 (ru) * 2010-12-13 2011-11-27 Государственное образовательное учреждение высшего профессионального образования "Санкт-Петербургский государственный электротехнический университет "ЛЭТИ" им. В.И. Ульянова (Ленина) Система и способ записи данных в облачное хранилище
US9098344B2 (en) * 2011-12-27 2015-08-04 Microsoft Technology Licensing, Llc Cloud-edge topologies

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
大喜 恒甫, 渡辺 陽介, 北川 博之, 天笠 俊之, 川島 英之: "対象情報源の動的変化を考慮した分散ストリーム処理最適化手法の提案", 情報処理学会研究報告 2008-DBS-146, vol. 2008, no. 88, JPN6016046496, 14 September 2008 (2008-09-14), JP, pages 265 - 270 *
大喜 恒甫, 渡辺 陽介, 北川 博之, 川島 英之: "対象情報源を動的に選択可能なストリーム処理の実装と評価", 情報処理学会論文誌 論文誌トランザクション 平成21年度▲1▼ [CD-ROM], vol. 第2巻, 第3号, JPN6017018768, 15 November 2009 (2009-11-15), JP, pages 1 - 17 *
石井 惇志, 鈴村 豊太郎: "クラウド環境を利用したElasticなデータストリーム処理", 情報処理学会 先進的計算基盤システムシンポジウム(SACSIS)2011, JPN6016046498, 18 May 2011 (2011-05-18), JP, pages 189 - 196 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10303138B2 (en) 2016-12-22 2019-05-28 Fuji Xerox Co., Ltd. Equipment control system, image forming device, and non-transitory computer readable storage medium
US10958716B2 (en) 2017-10-02 2021-03-23 Fujitsu Limited Distributed process management system, distributed process management method for suppressing number of messages between computers, and information processing apparatus
KR20210041056A (ko) 2019-05-28 2021-04-14 가부시끼가이샤 히다치 세이사꾸쇼 정보 처리 시스템, 및 정보 처리 시스템의 제어 방법
US11539788B2 (en) 2019-05-28 2022-12-27 Hitachi, Ltd. Information processing system and method of controlling information processing system
WO2021260970A1 (ja) * 2020-06-26 2021-12-30 ソニーグループ株式会社 ネットワークの制御方法、および、データ処理システム
US11997017B2 (en) 2020-06-26 2024-05-28 Sony Group Corporation Network control method and data processing system

Also Published As

Publication number Publication date
CA3099664A1 (en) 2013-07-04
CA2859500A1 (en) 2013-07-04
EP2798512A4 (en) 2015-09-23
KR102008242B1 (ko) 2019-08-07
BR112014016099B1 (pt) 2021-04-20
US20150296000A1 (en) 2015-10-15
MX346690B (es) 2017-03-29
WO2013101563A1 (en) 2013-07-04
US20130166712A1 (en) 2013-06-27
RU2628208C2 (ru) 2017-08-15
US9098344B2 (en) 2015-08-04
RU2014126065A (ru) 2016-01-27
AU2012362829A1 (en) 2014-07-17
MX2014008007A (es) 2014-08-21
US9876851B2 (en) 2018-01-23
IN2014CN04218A (ja) 2015-07-17
CA2859500C (en) 2021-01-12
AU2012362829B2 (en) 2017-08-31
BR112014016099A8 (pt) 2017-07-04
BR112014016099A2 (pt) 2017-06-13
KR20140111266A (ko) 2014-09-18
CN103108031B (zh) 2016-08-17
CN103108031A (zh) 2013-05-15
EP2798512A1 (en) 2014-11-05
CA3099664C (en) 2022-03-01
EP2798512B1 (en) 2024-03-13
JP6172721B2 (ja) 2017-08-02

Similar Documents

Publication Publication Date Title
JP6172721B2 (ja) クラウド・エッジ・トポロジー
CN107678790B (zh) 流计算方法、装置及系统
US10521738B2 (en) Automated collaboration workflow generation in thing-sourcing environments
US11314554B2 (en) System and method for grouping nodes by analyzing and associating nodes of a computer system by shared characteristics
US20150161616A1 (en) System and Method of Creating and Using a Reference Device Profile
US10516729B2 (en) Dynamic graph adaptation for stream processing over hybrid, physically disparate analytics platforms
EP2980701B1 (en) Stream processing with context data affinity
US20150006631A1 (en) Collaborative analytics with edge devices
US20210406227A1 (en) Linking, deploying, and executing distributed analytics with distributed datasets
US20220413989A1 (en) Cloud service provider selection based on digital twin simulation
US10554498B2 (en) Shadow agent projection in multiple places to reduce agent movement over nodes in distributed agent-based simulation
Ganchev et al. A cloud-based service recommendation system for use in UCWW
Ganchev et al. A conceptual framework for building a mobile services' recommendation engine
Chandramouli et al. Supporting distributed feed-following apps over edge devices
US11496356B2 (en) Device lifecycle management via a central identity service
US20230176831A1 (en) Microservices recommendation framework
CN111062682B (zh) 一种工单处理方法和装置
CN116324734A (zh) 生成和更新性能报告
Gherari et al. Describing ubiquitous mobile cloud systems

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151124

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161206

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170306

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170530

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20170614

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170628

R150 Certificate of patent or registration of utility model

Ref document number: 6172721

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250