JP7387734B2 - イベント駆動型アプリケーションのルールに基づく割り当て - Google Patents
イベント駆動型アプリケーションのルールに基づく割り当て Download PDFInfo
- Publication number
- JP7387734B2 JP7387734B2 JP2021530235A JP2021530235A JP7387734B2 JP 7387734 B2 JP7387734 B2 JP 7387734B2 JP 2021530235 A JP2021530235 A JP 2021530235A JP 2021530235 A JP2021530235 A JP 2021530235A JP 7387734 B2 JP7387734 B2 JP 7387734B2
- Authority
- JP
- Japan
- Prior art keywords
- event
- driven application
- component
- node set
- driven
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 claims description 99
- 230000015654 memory Effects 0.000 claims description 26
- 238000003860 storage Methods 0.000 claims description 18
- 238000005192 partition Methods 0.000 description 40
- 238000004891 communication Methods 0.000 description 28
- 238000004458 analytical method Methods 0.000 description 27
- 230000008569 process Effects 0.000 description 27
- 230000004044 response Effects 0.000 description 27
- 238000000638 solvent extraction Methods 0.000 description 26
- 230000009471 action Effects 0.000 description 23
- 230000006870 function Effects 0.000 description 20
- 230000018109 developmental process Effects 0.000 description 17
- 238000011161 development Methods 0.000 description 16
- 230000000875 corresponding effect Effects 0.000 description 13
- 238000012545 processing Methods 0.000 description 13
- 238000007726 management method Methods 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 9
- 239000008186 active pharmaceutical agent Substances 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 8
- 230000010354 integration Effects 0.000 description 8
- 230000000007 visual effect Effects 0.000 description 8
- 230000027455 binding Effects 0.000 description 7
- 238000009739 binding Methods 0.000 description 7
- 238000005057 refrigeration Methods 0.000 description 7
- 230000008878 coupling Effects 0.000 description 6
- 238000010168 coupling process Methods 0.000 description 6
- 238000005859 coupling reaction Methods 0.000 description 6
- 239000003795 chemical substances by application Substances 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 238000001514 detection method Methods 0.000 description 4
- 230000037406 food intake Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 238000012384 transportation and delivery Methods 0.000 description 4
- 238000012800 visualization Methods 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 239000007789 gas Substances 0.000 description 3
- 230000033001 locomotion Effects 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000001276 controlling effect Effects 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 230000005291 magnetic effect Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 241000282412 Homo Species 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000009118 appropriate response Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000036772 blood pressure Effects 0.000 description 1
- 230000036760 body temperature Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000002079 cooperative effect Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000013481 data capture Methods 0.000 description 1
- 238000013079 data visualisation Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005553 drilling Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000003344 environmental pollutant Substances 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 230000008921 facial expression Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000012010 growth Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 231100000719 pollutant Toxicity 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000008261 resistance mechanism Effects 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000002207 retinal effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000011179 visual inspection Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/10—Requirements analysis; Specification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
- G06F8/433—Dependency analysis; Data or control flow analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/75—Structural analysis for program understanding
Description
いくつかの例示的な実施形態による、イベントベースのアプリケーションを分割する技術およびメカニズムが、本明細書において説明される。具体的には、サービスとしてのプラットフォーム(Platform-as-a-Service : PaaS)100が説明され、これは、分散型コンピューティング環境内のノードセットを特定し、さらにイベントベースのアプリケーションにおいてイベントの識別を使用して、当該イベントベースのアプリケーションの自動分割を行うように作動するデプロイメントマネージャ(deployment manager)を含む。このために、デプロイメントマネージャ、より具体的には、デプロイメントマネージャの一部を形成する分割システムがイベント駆動型アプリケーションのソースコードを分析して、イベント駆動型アプリケーションの構成要素間の関係を推定する。分割システムは、次いで、ルールシステム(例えば、アサインルール)を介して、既知の関係のナレッジベース(knowledge base)を適用して、分割作業を行う。次いで、分割システムは、1つまたは複数の設定ファイルとして、自動分割を反映する設定(configurations)を出力する。
いくつかの例示的な実施形態によると、メッシュイベントブローカーが提供され、当該メッシュイベントブローカーは、1つまたは複数のイベントエコシステムに参加する分散ノードにイベントの取得、拡張および配信を分散し、当該分散ノードは、イベント発行者、イベントサブスクライバおよび仲介者を含む。いくつかの実施形態では、メッシュイベントブローカーは、メディエータを単一障害点(single point of failure)として除き、作業負荷を分散し、スケーリングを単純化および拡大し、異なるネットワーク内のイベント発行者とイベントサブスクライバとの相互接続を提供することを図る。
いくつかの例示的な実施形態によると、イベント駆動型アプリケーションは、応答性、ロバストネスおよびセキュリティを改善するために、分散されるようにデプロイしてもよい。本明細書で説明されるとき、イベント駆動型アプリケーションは、1つのクラウドロケーションで開発されてから、自動的に分割されてもよく、その結果、アプリケーションの構成要素は、ノードがクラウドホスト型か、データセンターホスト型か、エッジのインテリジェントデバイスか、またはそれらの組合せかどうかを問わず、実行のために最適なノードに分散されることになる。ロジックは、それが最も効果的なところに配置される。星型、階層型およびピアツーピア型などの広範囲のシステムトポロジがサポートされる。これらのネットワークのプロビジョニングと管理は、自動化されて、本明細書で説明するサービスとしてのプラットフォーム(PaaS)100のインテリジェント機能によって管理される。アプリケーション構成要素は、システムが動作している間、何千または何万のノードのための分散型環境のどこでも動的に変更することができる。
・入力は、例えば長期間かけて、多数のセンサから受信する。センサは、例えば、物理的センサ、他のエンタープライズシステムによって生成されるデータストリームまたは公開データストリームとしてもよい。
・センサデータを分析して、情報およびコンテキストからなるイベントを発生させ、それに対して自動化、推奨(recommendation)および協調の決定が行われる。追加のコンテキストを他のシステムから抽出して、センサデータを拡張してもよい。
・イベントは、リアルタイムで評価して、取る必要のあるアクションを決定する。例えば、リアルタイム評価を行うために、個別的ルールおよび機械学習戦略のうちの少なくとも一方を使用してもよい。
・アクションを、実施を担当するシステムに伝送するか、または担当者によって人間と機械の協調を開始し、現状に対して最も適切な応答を決定する。
・センサの生データから導出されるロケーション、加速度、音声、映像および行動パターンを含むセンサデータをホストする携帯機器
・腕時計、活動量計、ヘルスモニタ、音声および映像ヘッドセットなどのウェアラブルデバイス
・産業機械、陸上および航空輸送機関、家電、ならびに感知と制御のうちの少なくとも一方ができる任意の機械的または電子的機器を含む機械。例えば、様々な破砕点(crush points)を有しうる物体にかかる圧力を変えるために圧力センサを装備されているロボットのマニピュレータを想像されたい。
・数多くデプロイされる独立型センサ。例えば、作物の成長率を最大化しながら、水消費量を最小化するために、農場中に分散される水分センサ。
・センサデータと考えることができるものを大量に生成する映像および音声フィード。認識ソフトウェアを使用して映像が表すものを決定し、映像をより個別的なイベントに翻訳して、自動化の決定がそれに依存できるようにする。
・トランザクションのストリームを生成する既存のエンタープライズアプリケーション。
分析中に検出されうるイベントまたは状況の例には、単なる例として、以下のものが含まれる。
・高温または低速などの条件があり予想通りに機能していない機器。
・店舗または施設内の関心のある場所に到着した顧客。例えば、顧客がレジまたは特定の商品ディスプレイのところに立っている。
・ユーザが安全ではないエリアにいて、助けが必要である。
・製品管理の注意を要する注文の配送が変更された。
・コンシューマの現在の状況に基づいて、コンシューマに関連のある応答を与えること(例えば、セール中のアイテム、施設の地図、緊急時対応の推奨)。
・異常な状態に対してインテリジェントに応答すること(例えば、弁を閉じる、スプリンクラーをオンにする、誤作動するロボットを停止する)。
・現在の状況に基づいて、機会/問題をスタッフに早めに警告すること(例えば、利用可能な追加の配送トラック、サプライチェーンの一部の不足)。
・生産性と顧客満足度とのうちの少なくとも一方を上げるために、ユーザまたはビジネスリソースを最適化すること(例えば、組立ラインのスピードアップ、スポーツ参加者に自家用車までの最短経路を知らせる)。
・データストリームが、根本原因を一意に明らかにして最善なアクションの方針を決定するには十分ではない例外状況。
・オペレーションチームが、システムには入手できない追加情報を知りうる立場にある状況。
・システムの側に、オンラインで制御できない手動アクションを取らなければならない状況。
・アクションを行えるようになる前に、ポリシーまたは規制により、より徹底的な状況分析が要求される状況。
図1は、説明される技術の例示的な実施形態をデプロイしてもよいサービスとしてのプラットフォーム(PaaS)100の高レベルの機能性を示すブロック図である。サービスとしてのプラットフォーム(PaaS)100は、リアルタイムのビジネスアプリケーションの開発、デプロイメントおよび動作をサポートするように設計され、構築される。具体的には、サービスとしてのプラットフォーム(PaaS)100は、開発者ポータル102を含み、それを使用して開発者は、イベント駆動型アプリケーション104を開発し、これをさらに分散型ランタイムノード106にデプロイする。システムモニタ108は、分散型ランタイムノード(distributed run-time nodes)106上のイベント駆動型アプリケーション104の動作を監視し、開発者がイベント駆動型アプリケーション104を進化させることができるように、開発者ポータル102にフィードバックをする。
イベント駆動型アプリケーション104は、イベントベースのアーキテクチャ、およびリアクティブプログラミングの利点をもたらす一方で、開発者ポータル102は、「ローコード(low-code)」開発ツールの提供によりJavaScriptおよびSQLを理解するだけでよい。開発ツールは、イベント駆動型アプリケーション104のより複雑な要素のための高生産性かつ高水準の、スクリプティングがビジュアル開発に向かない構成要素のビジュアル宣言をサポートする。具体的には、開発者ポータル102は、ルール、タイプ、ソース、協調、トピックおよび設定のためのビジュアルエディタと、ルールおよびプロシージャのためのスクリプトエディタと、既存のスキルを活用するためにSQLおよびJavaScriptに基づいてドメイン固有言語(domain-specific language : DSL)とを提供してもよい。加えて、開発者ポータル102は、ルール及びプロシージャデバッガ(rule and procedure debugger)による検査能力、トレーシングおよびロギングファシリティ(tracing and logging facilities)、リアルタイムのサブスクリプションサポートおよびデータ視覚化、合成データ生成器、および増分デプロイメントを提供する。さらに、開発者ポータル102は、分散型構成によるデプロイメント(例えば、クラウド、プライベートクラウド、オンプレミス、ハイブリッドおよびエッジ)と、ビジュアルデプロイメントツール(例えば、以下に説明されるようなイベントバインディング(event binding)を可能にするイベントバインディングツール110)とをサポートする。
図2は、いくつかの例示的な実施形態による、サービスとしてのプラットフォーム(PaaS)100のイベント駆動型アプリケーション104のアーキテクチャ200に関するさらなる詳細を示すブロック図である。
1.データ取得:IoTおよびエンタープライズソースからデータを取得し、データをフィルタリングして、それを自動決定エンジンに利用できるようにする技術。
2.イベントおよび状況分析:データをリアルタイムで分析し、その結果に基づいて決定を行う決定エンジン。
3.アクション:制御情報をデバイスに送信し、自動化ソリューションによって行うその後のアクションに関する決定または推奨を外部システムおよびユーザに通知するための技術。複雑な状況に対する最適な応答を引き出すために、自動化システムと担当者との協調を管理する技術。
・プッシュおよびプル(push and pull)の両モデル
・同期モデルおよび非同期モデル
・RPC(Remote Procedure Call : 遠隔手続き呼出し)、ならびに蓄積交換式メッセージングシステム
・ソースは、文書化された指定フォーマットをマッチングしてデータを送信する選択をしてもよく、または100にネイティブソースフォーマットを受け入れさせて、フィルタリングシステムを使用してそれを内部処理用に適切なフォーマットに変換する選択をすることができる。
・複数のストリームからのデータを、状況分析を助けるために相関付けることができる。開発者は、SQLから導出される単純なドメイン固有言語を使用して、あるストリームで検出されたイベントを別のストリームのイベントの前か後にこなければならない、または両方のイベントがどちらの順序で起こっても特定の時間枠内に生じなければならないと指定する。イベントが起こらない場合でも、一般的なエラーインジケータを単純なやり方で指定することができる。複雑な条件の指定を単純にするイベント制約をどのレベルにも構成することができる。例えば、自動化システムは、機械的デバイスの2つのセンサストリームを監視してもよく、第1のストリームが速度を報告し、第2のものが位置を報告する。自動化システムがデバイスに停止要求を送る場合、第1センサで読み取られるデバイスの速度がゼロになり、速度ゼロの読み取りが確認されたら、デバイスの位置は変わらないままであることが確認されると予想する。速度ゼロになった「後」の位置変化が報告された場合、警告が発せられる。また、速度ゼロが報告されてから30秒以内に位置が報告され「なけれ」ば、デバイス制御システムの故障の可能性を示す警告が発せられる。
・あるストリーミングデータは、即座に処理されるか、または短時間のみ保持されて、時系列構造を促進する一方、他のデータは、より長期間維持されなければならない長期的な時系列または履歴データを表してもよい。100は、連続データおよび集合データをその一時的および永続的形式の両方で表すために使用される抽象化を一元化することによって、一時的および永続的データの両方の使用を単純にする。
・データは、ルールの個別的な集合体により、または機械学習システムによって生成されるアルゴリズムにより分析され、その後アプリケーションに統合される。
・データをSQLベースのドメイン固有言語を使用して分散型トポロジの他のノードに転送し、分散型環境全体でリアルタイム処理を容易にサポートするための完全なサービスセットが利用できる。
協調ルール212は、人間のユーザとサービスとしてのプラットフォーム(PaaS)100の構成要素との間に、人間と機械との協調を実施するために使用される。協調ルール212は、人間のユーザとサービスとしてのプラットフォーム(PaaS)100内の機械とが、状況に応じて、できるだけ独立してまたは協調的に働き、互いの要求を調整することを可能にすることを図る(例えば、システムが反応しているときに人間のユーザが動作(operations)を駆動する(drives)、またはユーザが反応しているときにシステムが動作を駆動する)。
・通知-SMS、EMAIL、プッシュ通知およびメッセージングシステムを介して通知および応答を処理する。
・アサイン-タスクへのユーザのアサインをネゴシエートする。
・ロケーション追跡-ユーザが指定目的地に到着するとき、およびその目的地に向かって移動中のユーザの現在のロケーションを知るタスクを大幅に簡素化する。
・会話-サードパーティメッセージングシステムによりユーザ間の会話を媒介する。
・エスカレーション-タスク完了の重大な遅延に応答する。
サービスとしてのプラットフォーム(PaaS)100は、分散型および連合型のトポロジの一般的モデルをサポートする。分散型アプリケーション(例えば、イベント駆動型アプリケーション104)は、各ノードが設備(installation)を表す2以上のノードからなってもよい。設備は、1つのサービスインスタンスまたはサービスインスタンスのクラスタを含むことができる。設備がメッセージ交換を望む少なくとも1つの「ピア」ノードを設備が宣言すると、設備は、分散型トポロジにアセンブルされる。
・星型-1つの親ノードと任意の数の子ノードとからなる。
・木型-根ノードと任意の数の子ノードとからなり、各子ノードが任意の数の子ノードの親として機能してもよい。
図3は、一例示的な実施形態による、イベント駆動型アプリケーション104のデプロイメント300を示す図表示である。具体的には、サービスとしてのプラットフォーム(PaaS)100はデプロイメントマネージャ304を含み、これが、分散型コンピューティング環境216などのターゲット環境へのイベント駆動型アプリケーション104のデプロイメントを操作管理する。図3は、デプロイメントマネージャ304が動作しているノードから直接的または間接的のいずれかで到達可能な多数のノードからなるものとして、分散型コンピューティング環境216を示している。分散型コンピューティング環境216内の物理ノードは、ノードセットに組織化してもよく、そこで、ノードセットについて確立された基準を満たす記述的特性を有することに基づいて、ノードは、特定のノードセットのメンバーとなる。
図4は、いくつかの例示的な実施形態によるデプロイメント環境400のさらなる詳細を示すブロック図である。デプロイメント環境400は、デプロイメントマネージャ304を含み、これは、プロジェクト(例えば、プロジェクト404、プロジェクト408およびプロジェクト412)のデプロイメントに集中することにより、開発者の開発タスクを簡素化するように作動する。
・デフォルトパーティションの自動作成および各パーティションへ開発アーチファクトをアサインすること。
・ターゲット環境340で定義されるノードへパーティションを自動的にアサインすること。
・ユーザによる設定338、環境340およびデプロイメント342のカスタマイズを可能にすること。
・プロジェクトをデプロイし、デプロイメント作業のステータスを視覚化すること。
・CLIを介して、デプロイメント作業をスクリプトツールおよび自動化ツールに利用できるようにすること。
設定(CONFIGURATIONS)
設定338は、設定の一部であるアーチファクトのマニフェストと、それがデプロイされるパーティションの定義とを含む。設定は、1つのパーティションとそのパーティションにアサインされるアーチファクトとを定義してもよい。プロジェクトは、1つまたは複数の設定を含んでもよく、各設定が一意のパーティションにデプロイされるアーチファクトを記述する。アーチファクトは、2以上の設定のメンバーとしてもよい。設定は、そのマニフェストに他の設定を含んでもよい。このような場合、子設定(child configuration)は、パーティションにデプロイされてもよく、さらにその後、子設定は、デプロイメントマネージャを使用して、ターゲットパーティションにアサインされるノードにデプロイされる。
設定338に含まれ、パーティションに配置されるアーチファクトは、以下のものを含む。
・ルール
・ソース
・タイプ
・プロシージャ
・トピック
・ビジュアルルール
・設定
・クライアント
・RCS要求
・RCSペイロード
・協調タイプ
アプリケーションおよび協調は設定338に含まれるが、これらは、より根本的な、分割可能なルールおよびプロシージャから構成される。
環境340の各々は、環境のメンバーであるノードセットを列挙する。ノードは、環境が定義されるプロジェクトのメンバーであってもよい。
デプロイメントは、プロジェクトを環境にデプロイする目的で、開発プロジェクトと環境との間のバインディングを特定する。デプロイメントに適用されるデプロイメント動作の結果は、プロジェクトの設定が環境内で定義されるノードにデプロイされるというアーチファクトである。
具体的にプロジェクト(例えば、プロジェクト404、プロジェクト408、またはプロジェクト412)に移ると、各プロジェクトは、名前空間内で定義されるアーチファクトのサブセットを含む。したがって、プロジェクトは、デプロイ可能な機能性の単位を表し、これは、略式にはアプリケーションまたはサービスとして示されることがある。アプリケーションとサービスとの区別に関して、アプリケーションは、そのようなイベントストリームが外部システム(例えば、MQTTキュー)によって発生されるか、またはユーザイベントを介してユーザによって発生されるかに関係なく、インバウンドイベントストリーム(inbound event stream)を作動的に受け入れてもよい。他方で、サービスは、RESTインターフェースを介して配信される、またはスクリプトによって直接呼び出されることにより配信される呼出し要求に応答する。サービスは、独立してデプロイされ、透明性をもって管理されるため、「マイクロサービス(micro-services)」と考えてもよい。図4に図示されるように、プロジェクトは、デプロイメントの単位でもあり、デプロイメントの結果は、インバウンド要求に対して実行するアクティブなアプリケーションまたはサービスとなる。
上で述べたように、デプロイメントマネージャ304は、設定338(設定エディタ418構成要素を使用して)、環境340(環境エディタ420構成要素を使用して)、およびデプロイメント342(デプロイメントエディタ422構成要素を使用して)を視覚化および編集するためのグラフィカル環境402(またはビジュアルエディタ)を開発者に与える。
・イベント構成要素704
・ソース構成要素706
・ルール構成要素708
・プロシージャ構成要素710、および
・タイプ構成要素712。
分割システム416で行われるような分割プロセス916は、いくつかの例示的な実施形態において、イベント駆動型アプリケーション104の構成要素が分散型コンピューティング環境216内のノードに割り当てられる記法に基づくので、イベント駆動型アプリケーション104の正当性を確保するとともに、イベント駆動型アプリケーション104のパフォーマンスおよび可用性を最適化する。しかし、アプリケーション開発プロセス中に特定のノードにアサインすることは難しい。その理由は、開発者が、アプリケーション開発中にはターゲット分散型コンピューティング環境216の最終的なトポロジの抽象観(abstract view)しかもたないことがあるからである。この技術的な課題に対処するため、分割プロセス916および分割システム416は、いくつかの例示的な実施形態では、特定のノードセットに関連付けられているプロパティを示す1つまたは複数のノードを表すノードセットを特定することにより、分散型コンピューティング技術の抽象モデルを定義する。開発者が、冷蔵ユニットに関連付けられる計算リソース(例えば、計算ノード)がIoTアプリケーション内に存在することはわかっているが、多数の当該ノード(a number of such nodes)、そのロケーションおよびアイデンティティ(identities)は、デプロイメントプロセス(動作910)の後半まで、さらにイベント駆動型アプリケーション104の構成要素の計算リソースへの割当てが完了してからずっと後になるまで不明なままである場合の例を考えてみる。いくつかの例示的な実施形態による分割システム416および分割プロセス916は、宣言型モデルをサポートすることによりこれらのアサインを抽象化し、そこで開発者は、計算リソースが満たさなければならない論理的な制約を指定することにより、構成要素への参照を指定する。論理的な制約は、その後でノードセットとして正式なものとされ、これは、最終デプロイメントトポロジに1つまたは複数のノードを含んでもよい。冷蔵ユニットの例に戻ると、冷蔵ユニットに関連付けられる計算リソースは、例えば、処理制約によって以下のように指定してもよい。
アプリケーション分析
特に分割プロセス916を参照すると、動作1000で、いくつかのソースコードアナライザ720は、検出および構成要素アサイン作業のノードセットの準備のために、イベント駆動型アプリケーション104を分析する。
例えば、ステートメント(statement): EXECUTE PROCEDURE checkRefrigerationSettings(“temperature”) PROCESSED BY ManagedEquipment == “refrigeration” により、プロシージャ「checkRefrigerationSettings」は、「ManagedEquipment」を表すノードセットに分割される(partitioned)。別の例として、ステートメント:SELECT * FROM Person WHERE age > 21 PROCESSED BY department == “HR”により、タイプ「Person」が複数のHRロケーションをサポートするノードセット内のすべてのノードに分割される。これは、データがすべての「HR」ノードに分散されることを意味する。続いて、SELECT * FROM Person PROCESSED BY department == “HR”等のクエリは、複数のHRロケーションをサポートするノードセット内のすべてのノードのすべてのPersonタイプに対して分散されたクエリを実行して完全な結果セットを作成する。
図9に戻ると、動作1100において、分割システム416のいくつかのソースコードアナライザ720は複数のノードセットの識別に進む。
図9に戻ると、動作902において、ルールシステム800は、イベント駆動型アプリケーションの複数の構成要素を、動作1100において識別された複数のノードセットに割り当てる。具体的には、ルールシステム800は、動作1200において、すべての構成要素タイプに適用可能な一組の一般ルール802を再帰的に適用し、次いで、動作904において、単一の構成要素タイプのみに適用可能なより特殊な一組のルール、すなわち、構成要素タイプ固有ルール806を適用することによって、これらの構成要素の割り当てを実行する。最後に、一組のカスタムルール804が、動作914においてルールシステム800によって適用される。これらのカスタムルール804は、特定クラスのアプリケーションのためのものであり、そのような特定クラスのアプリケーションのための複数のノードセットにより最適に割り当てられた複数の構成要素に適用され得る。たとえば、プログラマーは、イベント駆動型アプリケーションのすべての電力管理構成要素を、電力消費量の多い機器(たとえば、複数の冷凍ユニット)を管理する複数のノードセットに割り当てたい場合がある。カスタムルール804は、そのような追加のパーティショニングセマンティクス(partitioning semantics)の組み込みをサポートする。
複数のイベント808 イベントは、それが生成されるノードセットに分割される。より具体的には、複数のイベントは、タイプ、ルール、プロシージャ、ソース、および外部要求によって生成され得る。
複数のプロシージャ814:複数のプロシージャ814は、プロシージャを参照する構成要素を含むすべてのノードセットに分割される。なお、外部インターフェースを介して呼び出されたプロシージャに利用可能な情報がない場合がある。既知の参照がなく、したがって外部インターフェースを介して呼び出される可能性が高い複数のプロシージャは、デフォルトのノードセットに分割される。
複数のソース816:複数のソース816は、デフォルトでデフォルトのノードセットに分割される。ソースによって生成されたイベントが、明示的に分割されたルールをトリガーする場合、ソースは、トリガーされたルールと同じノードセットに配置される。複数のソース816は、データを取得するための最良の場所を知っている開発者によって手動で分割され得る。この手動配置は、手動配置を固定として使用して自動パーティション化(automatic partitioning)を駆動する。
1.分散型コンピューティング環境内のイベント駆動型アプリケーションの複数のイベント駆動型アプリケーション構成要素をデプロイする方法であって、
1つまたは複数のプロセッサを用いて、イベント駆動型アプリケーションのアプリケーションソースコードを自動的に分析して複数のイベント駆動型アプリケーション構成要素間の複数の関係を識別すること、
1つまたは複数のプロセッサを用いて、一組のルールを適用して、
前記自動的に分析することに基づいて、分散型コンピューティング環境内の複数の計算ノードへの複数のイベント駆動型アプリケーション構成要素の割り当てを記録する割り当てデータを生成すること、
分散型コンピューティング環境内で割り当てられた計算ノードでの実行をサポートするために必要な複数のイベント駆動型アプリケーション構成要素の各々の構成要素要件を決定すること、を備える、方法。
3.前記割り当てデータを生成することは、複数のノードセットのうちの対応するノードセットの各ノードに、共通の一組のイベントアプリケーション構成要素を割り当てることを含む、前述の請求項のいずれか1つまたは複数に記載の方法。
8.前記アプリケーションソースコードの分析は、記法宣言を分析して、特定のイベント駆動型アプリケーション構成要素によって指定されるプログラミング指示が実行される計算ノードのクラスを識別すること、を含む、前述の請求項のいずれか1つまたは複数に記載の方法。
プロセッサと、
複数の命令を記憶するメモリと、を備え、
プロセッサによって実行されると、複数の命令は、前記装置を、
1つまたは複数のプロセッサを用いて、イベント駆動型アプリケーションのアプリケーションソースコードを自動的に分析して複数のイベント駆動型アプリケーション構成要素間の複数の関係を識別すること、
1つまたは複数のプロセッサを用いて、一組のルールを適用して、
前記自動的に分析することに基づいて、分散型コンピューティング環境内の複数の計算ノードへの複数のイベント駆動型アプリケーション構成要素の割り当てを記録する割り当てデータを生成すること、
分散型コンピューティング環境内で割り当てられた計算ノードでの実行をサポートするために必要な複数のイベント駆動型アプリケーション構成要素の各々の構成要素要件を決定すること、を実行させるように設定する、コンピューティング装置。
複数の命令は、コンピュータによって実行されると、前記コンピュータに、
1つまたは複数のプロセッサを用いて、イベント駆動型アプリケーションのアプリケーションソースコードを自動的に分析して複数のイベント駆動型アプリケーション構成要素間の複数の関係を識別すること、
1つまたは複数のプロセッサを用いて、一組のルールを適用して、
前記自動的に分析することに基づいて、分散型コンピューティング環境内の複数の計算ノードへの複数のイベント駆動型アプリケーション構成要素の割り当てを記録する割り当てデータを生成すること、
分散型コンピューティング環境内で割り当てられた計算ノードでの実行をサポートするために必要な複数のイベント駆動型アプリケーション構成要素の各々の構成要素要件を決定すること、を実行させる、非一時的なコンピュータ可読記憶媒体。
Claims (20)
- 分散型IoT(Internet of Things)コンピューティング環境内のイベント駆動型アプリケーションの複数のイベント駆動型アプリケーション構成要素をデプロイする方法であって、前記イベント駆動型アプリケーションは、前記分散型IoT(Internet of Things)コンピューティング環境内の複数のセンサーからイベントデータを受信するように構成されており、前記方法は、
1つまたは複数のプロセッサを用いて、前記イベント駆動型アプリケーションのアプリケーションソースコードを自動的に分析することであって、
前記複数のイベント駆動型アプリケーション構成要素間の複数の関係を識別すること、
割り当てられた計算ノードにおいてサポートされるべき前記複数のイベント駆動型アプリケーション構成要素の複数の構成要素要件を決定すること、
前記複数のイベント駆動型アプリケーション構成要素への割り当てのために複数のノードセットのうちの抽象ノードセットを識別することであって、前記複数のイベント駆動型アプリケーション構成要素のサブセット内の各イベント駆動型アプリケーション構成要素によるリモート参照の記法宣言を識別することを含む前記抽象ノードセットを識別すること、
前記複数のイベント駆動型アプリケーション構成要素の前記複数の構成要素要件、および前記複数のイベント駆動型アプリケーション構成要素間の識別された前記複数の関係に基づいて、前記複数のイベント駆動型アプリケーション構成要素を前記抽象ノードセットに割り当てること、
を含む前記イベント駆動型アプリケーションのアプリケーションソースコードを自動的に分析すること、
前記分散型IoT(Internet of Things)コンピューティング環境の実際のノードセットを前記抽象ノードセットに割り当てること、
1つまたは複数のプロセッサを用いて、前記複数のイベント駆動型アプリケーション構成要素を、前記分散型IoT(Internet of Things)コンピューティング環境の前記実際のノードセットに自動的にデプロイすることであって、前記実際のノードセットは、前記抽象ノードセットに割り当てられている、前記実際のノードセットに自動的にデプロイすること、を備える方法。 - 各リモート参照は、論理コンピューティングリソース制約を満たす抽象的な一組のコンピューティングリソースを表し、前記リモート参照の前記記法宣言は、前記リモート参照の論理コンピューティングリソース制約の宣言を含む、請求項1に記載の方法。
- 前記複数のイベント駆動型アプリケーション構成要素を前記抽象ノードセットに割り当てることは、割り当てルールにさらに基づく、請求項2に記載の方法。
- 前記複数のイベント駆動型アプリケーション構成要素間の複数の関係を識別することは、第1のイベント駆動型アプリケーション構成要素による第2のイベント駆動型アプリケーション構成要素への参照を識別することを含み、
前記複数のイベント駆動型アプリケーション構成要素についての複数の構成要素要件を識別することは、前記第1のイベント駆動型アプリケーション構成要素についての前記複数の構成要素要件を識別することを含み、
前記抽象ノードセットを識別することは、前記第1のイベント駆動型アプリケーション構成要素による第1のリモート参照の記法宣言を識別することを含む、請求項3に記載の方法。 - 前記複数のイベント駆動型アプリケーション構成要素を前記抽象ノードセットに割り当てることは、
前記第1のイベント駆動型アプリケーション構成要素の前記複数の構成要素要件に基づいて、前記第1のイベント駆動型アプリケーション構成要素を前記抽象ノードセットに割り当てること、
前記割り当てルール及び前記第1のイベント駆動型アプリケーション構成要素による前記参照に基づいて、前記第2のイベント駆動型アプリケーション構成要素を前記抽象ノードセットに割り当てること、を含む、請求項4に記載の方法。 - 前記第2のイベント駆動型アプリケーション構成要素は、プロシージャ構成要素またはタイプ構成要素である、請求項4に記載の方法。
- 前記複数のイベント駆動型アプリケーション構成要素間の複数の関係を識別することは、第3のイベント駆動型アプリケーション構成要素によるイベント構成要素の生成を識別することを含み、
前記複数のイベント駆動型アプリケーション構成要素を前記抽象ノードセットに割り当てることは、
前記イベント構成要素を前記抽象ノードセットに割り当てること、
前記割り当てルール及び前記第3のイベント駆動型アプリケーション構成要素による識別された前記生成に基づいて、前記第3のイベント駆動型アプリケーション構成要素を前記抽象ノードセットに割り当てること、を含む、請求項3に記載の方法。 - 前記複数のイベント駆動型アプリケーション構成要素を前記抽象ノードセットに割り当てることは、共通の一組のイベントアプリケーション構成要素を、前記複数のノードセットの対応する抽象ノードセットの各ノードに割り当てることをさらに含む、請求項1に記載の方法。
- 対応するイベント駆動型アプリケーション構成要素が割り当てられる前記抽象ノードセットは、前記対応するイベント駆動型アプリケーション構成要素に割り当てられる最小コードの決定に基づいて識別される、請求項1に記載の方法。
- 前記アプリケーションソースコードを分析することは、
特定のイベント駆動型アプリケーション構成要素の実行を動作的にトリガーするリソースを決定することを含む、請求項1に記載の方法。 - 前記アプリケーションソースコードを分析することは、
特定のイベント駆動型アプリケーション構成要素によって参照されるリソースを決定することを含む、請求項1に記載の方法。 - 前記アプリケーションソースコードを分析することは、
特定のイベント駆動型アプリケーション構成要素の識別されたコードセグメントの依存関係を識別することを含む、請求項1に記載の方法。 - コンピューティング装置であって
少なくとも1つのプロセッサと、
複数の命令を記憶するメモリと、を備え、前記複数の命令は、前記少なくとも1つのプロセッサによって実行されると、前記コンピューティング装置を、
分散型IoT(Internet of Things)コンピューティング環境内のイベント駆動型アプリケーションのアプリケーションソースコードを自動的に分析することであって、前記イベント駆動型アプリケーションは、前記分散型IoT(Internet of Things)コンピューティング環境内の複数のセンサーからイベントデータを受信するように構成されており、
前記イベント駆動型アプリケーションの複数のイベント駆動型アプリケーション構成要素間の複数の関係を識別すること、
割り当てられた計算ノードにおいてサポートされるべき前記複数のイベント駆動型アプリケーション構成要素の複数の構成要素要件を決定すること、
前記複数のイベント駆動型アプリケーション構成要素への割り当てのために複数のノードセットのうちの抽象ノードセットを識別することであって、前記複数のイベント駆動型アプリケーション構成要素のサブセット内の各イベント駆動型アプリケーション構成要素によるリモート参照の記法宣言を識別することを含む前記抽象ノードセットを識別すること、
前記複数のイベント駆動型アプリケーション構成要素の前記複数の構成要素要件、および前記複数のイベント駆動型アプリケーション構成要素間の識別された前記複数の関係に基づいて、前記複数のイベント駆動型アプリケーション構成要素を前記抽象ノードセットに割り当てること、
を含む前記イベント駆動型アプリケーションのアプリケーションソースコードを自動的に分析すること、
前記分散型IoT(Internet of Things)コンピューティング環境の実際のノードセットを前記抽象ノードセットに割り当てること、
1つまたは複数のプロセッサを用いて、前記複数のイベント駆動型アプリケーション構成要素を、前記分散型IoT(Internet of Things)コンピューティング環境の前記実際のノードセットに自動的にデプロイすることであって、前記実際のノードセットは、前記抽象ノードセットに割り当てられている、前記実際のノードセットに自動的にデプロイすること、
を実行するように設定する、コンピューティング装置。 - 各リモート参照は、論理コンピューティングリソース制約を満たす抽象的な一組のコンピューティングリソースを表し、前記リモート参照の前記記法宣言は、前記リモート参照の論理コンピューティングリソース制約の宣言を含む、請求項13に記載のコンピューティング装置。
- 前記複数のイベント駆動型アプリケーション構成要素を前記抽象ノードセットに割り当てることは、割り当てルールにさらに基づく、請求項14に記載のコンピューティング装置。
- 前記複数のイベント駆動型アプリケーション構成要素間の複数の関係を識別することは、第1のイベント駆動型アプリケーション構成要素による第2のイベント駆動型アプリケーション構成要素への参照を識別することを含み、
前記複数のイベント駆動型アプリケーション構成要素についての複数の構成要素要件を識別することは、前記第1のイベント駆動型アプリケーション構成要素についての前記複数の構成要素要件を識別することを含む、請求項15に記載のコンピューティング装置。 - 前記複数のイベント駆動型アプリケーション構成要素を前記抽象ノードセットに割り当てることは、
前記第1のイベント駆動型アプリケーション構成要素の前記複数の構成要素要件に基づいて、前記第1のイベント駆動型アプリケーション構成要素を前記抽象ノードセットに割り当てること、
前記割り当てルール及び前記第1のイベント駆動型アプリケーション構成要素による前記参照に基づいて、前記第2のイベント駆動型アプリケーション構成要素を前記抽象ノードセットに割り当てること、を含む、請求項16に記載のコンピューティング装置。 - 複数の命令を含む非一時的なコンピュータ記憶媒体であって、前記複数の命令は、少なくとも1つのコンピュータによって実行されると、前記少なくとも1つのコンピュータに複数の動作を実行させ、前記複数の動作は、
分散型IoT(Internet of Things)コンピューティング環境内のイベント駆動型アプリケーションのアプリケーションソースコードを自動的に分析することであって、前記イベント駆動型アプリケーションは、前記分散型IoT(Internet of Things)コンピューティング環境内の複数のセンサーからイベントデータを受信するように構成されており、
前記イベント駆動型アプリケーションの複数のイベント駆動型アプリケーション構成要素間の複数の関係を識別すること、
割り当てられた計算ノードにおいてサポートされるべき前記複数のイベント駆動型アプリケーション構成要素の複数の構成要素要件を決定すること、
前記複数のイベント駆動型アプリケーション構成要素への割り当てのために複数のノードセットのうちの抽象ノードセットを識別することであって、前記複数のイベント駆動型アプリケーション構成要素のサブセット内の各イベント駆動型アプリケーション構成要素によるリモート参照の記法宣言を識別することを含む前記抽象ノードセットを識別すること、
前記複数のイベント駆動型アプリケーション構成要素の前記複数の構成要素要件、および前記複数のイベント駆動型アプリケーション構成要素間の識別された前記複数の関係に基づいて、前記複数のイベント駆動型アプリケーション構成要素を前記抽象ノードセットに割り当てること、
を含む前記イベント駆動型アプリケーションのアプリケーションソースコードを自動的に分析すること、
前記分散型IoT(Internet of Things)コンピューティング環境の実際のノードセットを前記抽象ノードセットに割り当てること、
1つまたは複数のプロセッサを用いて、前記複数のイベント駆動型アプリケーション構成要素を、前記分散型IoT(Internet of Things)コンピューティング環境の前記実際のノードセットに自動的にデプロイすることであって、前記実際のノードセットは、前記抽象ノードセットに割り当てられている、前記実際のノードセットに自動的にデプロイすること、を含む、非一時的なコンピュータ記憶媒体。 - 前記複数のノードセットはデフォルトノードセットを含み、各イベント駆動型アプリケーション構成要素は、前記自動的に分析することの前に前記デフォルトノードセットに割り当てられる、請求項1に記載の方法。
- 前記複数のノードセットはデフォルトノードセットを含み、各イベント駆動型アプリケーション構成要素は、前記自動的に分析することの前に前記デフォルトノードセットに割り当てられる、請求項13に記載のコンピューティング装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862773142P | 2018-11-29 | 2018-11-29 | |
US62/773,142 | 2018-11-29 | ||
PCT/US2019/060999 WO2020112349A1 (en) | 2018-11-29 | 2019-11-12 | Rule-based assignment of event-driven application |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2022510227A JP2022510227A (ja) | 2022-01-26 |
JPWO2020112349A5 JPWO2020112349A5 (ja) | 2022-11-21 |
JP7387734B2 true JP7387734B2 (ja) | 2023-11-28 |
Family
ID=69160236
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021530235A Active JP7387734B2 (ja) | 2018-11-29 | 2019-11-12 | イベント駆動型アプリケーションのルールに基づく割り当て |
Country Status (4)
Country | Link |
---|---|
US (2) | US20220091897A1 (ja) |
EP (1) | EP3887951A1 (ja) |
JP (1) | JP7387734B2 (ja) |
WO (1) | WO2020112349A1 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7387734B2 (ja) | 2018-11-29 | 2023-11-28 | バンティック インコーポレイテッド | イベント駆動型アプリケーションのルールに基づく割り当て |
US11799952B2 (en) * | 2019-01-07 | 2023-10-24 | Intel Corporation | Computing resource discovery and allocation |
JP7181974B1 (ja) | 2021-08-13 | 2022-12-01 | ソフトバンク株式会社 | 情報提供システム、情報提供システムの制御方法、及び情報提供システムの制御プログラム |
US20230368106A1 (en) * | 2022-05-13 | 2023-11-16 | Oracle International Corporation | Efficient network graph decomposition using unconstrained resource nodes |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008176364A (ja) | 2007-01-16 | 2008-07-31 | Hitachi Ltd | プログラム部品化支援装置 |
JP2009110311A (ja) | 2007-10-30 | 2009-05-21 | Yokogawa Electric Corp | 複合コンポーネント配置システム |
US20140068560A1 (en) | 2012-09-06 | 2014-03-06 | Digital Rapids Corporation | Systems and methods for partitioning computing applications to optimize deployment resources |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5325526A (en) * | 1992-05-12 | 1994-06-28 | Intel Corporation | Task scheduling in a multicomputer system |
AU681433B2 (en) | 1993-08-03 | 1997-08-28 | Sun Microsystems, Inc. | Flexible multi-platform partitioning for computer applications |
US6983463B1 (en) * | 1998-10-02 | 2006-01-03 | Microsoft Corporation | Network independent profiling of applications for automatic partitioning and distribution in a distributed computing environment |
US7549153B2 (en) | 2002-07-22 | 2009-06-16 | Amberpoint, Inc. | Apparatus and method for content and context processing of web service traffic |
US20040194017A1 (en) * | 2003-01-06 | 2004-09-30 | Jasmin Cosic | Interactive video interface |
US20050120344A1 (en) * | 2003-12-02 | 2005-06-02 | International Business Machines Corporation | Optimal component installation |
US8381207B2 (en) * | 2003-12-02 | 2013-02-19 | International Business Machines Corporation | Script generation engine and mapping semantic models for target platform |
US7865582B2 (en) * | 2004-03-24 | 2011-01-04 | Hewlett-Packard Development Company, L.P. | System and method for assigning an application component to a computing resource |
US7861247B1 (en) * | 2004-03-24 | 2010-12-28 | Hewlett-Packard Development Company, L.P. | Assigning resources to an application component by taking into account an objective function with hard and soft constraints |
US20060123401A1 (en) * | 2004-12-02 | 2006-06-08 | International Business Machines Corporation | Method and system for exploiting parallelism on a heterogeneous multiprocessor computer system |
US7607129B2 (en) * | 2005-04-07 | 2009-10-20 | International Business Machines Corporation | Method and apparatus for using virtual machine technology for managing parallel communicating applications |
US8024737B2 (en) * | 2006-04-24 | 2011-09-20 | Hewlett-Packard Development Company, L.P. | Method and a system that enables the calculation of resource requirements for a composite application |
US20080294777A1 (en) * | 2007-05-25 | 2008-11-27 | Alexei Karve | Method and apparatus for template-based provisioning in a service delivery environment |
US8789059B2 (en) * | 2007-11-02 | 2014-07-22 | International Business Machines Corporation | Dynamic scheduling feasibility analysis of event-driven applications based on reducing tasks of overlapping events |
US10225335B2 (en) * | 2011-02-09 | 2019-03-05 | Cisco Technology, Inc. | Apparatus, systems and methods for container based service deployment |
US9047133B2 (en) * | 2012-03-02 | 2015-06-02 | Vmware, Inc. | Single, logical, multi-tier application blueprint used for deployment and management of multiple physical applications in a cloud environment |
US8918448B2 (en) * | 2012-05-11 | 2014-12-23 | International Business Machines Corporation | Application component decomposition and deployment |
US9804945B1 (en) * | 2013-01-03 | 2017-10-31 | Amazon Technologies, Inc. | Determinism for distributed applications |
CA3128629A1 (en) * | 2015-06-05 | 2016-07-28 | C3.Ai, Inc. | Systems and methods for data processing and enterprise ai applications |
EP3479531A4 (en) * | 2016-07-01 | 2019-12-11 | INTEL Corporation | AUTOMATED CONFIGURATION OF MACHINE TO MACHINE SYSTEMS |
US10601871B2 (en) * | 2017-01-18 | 2020-03-24 | International Business Machines Corporation | Reconfiguration of security requirements for deployed components of applications |
US10360012B2 (en) * | 2017-11-09 | 2019-07-23 | International Business Machines Corporation | Dynamic selection of deployment configurations of software applications |
JP7387734B2 (ja) | 2018-11-29 | 2023-11-28 | バンティック インコーポレイテッド | イベント駆動型アプリケーションのルールに基づく割り当て |
-
2019
- 2019-11-12 JP JP2021530235A patent/JP7387734B2/ja active Active
- 2019-11-12 WO PCT/US2019/060999 patent/WO2020112349A1/en unknown
- 2019-11-12 US US17/297,963 patent/US20220091897A1/en active Pending
- 2019-11-12 EP EP19836205.5A patent/EP3887951A1/en active Pending
-
2021
- 2021-05-28 US US17/334,048 patent/US11397620B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008176364A (ja) | 2007-01-16 | 2008-07-31 | Hitachi Ltd | プログラム部品化支援装置 |
JP2009110311A (ja) | 2007-10-30 | 2009-05-21 | Yokogawa Electric Corp | 複合コンポーネント配置システム |
US20140068560A1 (en) | 2012-09-06 | 2014-03-06 | Digital Rapids Corporation | Systems and methods for partitioning computing applications to optimize deployment resources |
Also Published As
Publication number | Publication date |
---|---|
WO2020112349A1 (en) | 2020-06-04 |
US20220091897A1 (en) | 2022-03-24 |
JP2022510227A (ja) | 2022-01-26 |
US20210294665A1 (en) | 2021-09-23 |
US11397620B2 (en) | 2022-07-26 |
EP3887951A1 (en) | 2021-10-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11614975B2 (en) | Mesh-based event broker for distributed computing | |
JP7387734B2 (ja) | イベント駆動型アプリケーションのルールに基づく割り当て | |
US11048498B2 (en) | Edge computing platform | |
Ranjan et al. | The next grand challenges: Integrating the internet of things and data science | |
US10007513B2 (en) | Edge intelligence platform, and internet of things sensor streams system | |
JP2017142798A (ja) | 改善されたインターフェースを備えるステートマシンビルダー及び状態非依存イベントの処理 | |
CN108701152A (zh) | 管理和呈现工业资产的数据 | |
US20170255373A1 (en) | Method, system, and program storage device for analytics in an industrial internet of things | |
US20190260831A1 (en) | Distributed integrated fabric | |
US20180276508A1 (en) | Automated visual information context and meaning comprehension system | |
Raj et al. | Edge/Fog Computing Paradigm: The Concept, Platforms and Applications. | |
Prist et al. | Cyber-physical manufacturing systems: An architecture for sensor integration, production line simulation and cloud services | |
Kaur et al. | Interoperability among Internet of Things (IoT) components using model-driven architecture approach | |
Okhovat et al. | Monitoring the Smart City Sensor Data Using Thingsboard and Node-Red | |
Hiessl | Optimizing the placement of stream processing operators in the fog | |
Mala et al. | A Novel Machine Learning Approach in Edge Analytics with Mathematical Modeling for IoT Test Optimization | |
Vouyioukas et al. | EPIKOUROS—Virtualized platforms using heterogeneous sensor services in cloud computing environment | |
Grundy et al. | Knowledge Management via Human-Centric, Domain-Specific Visual Languages for Data-Intensive Software Systems | |
Agapiou | Andreas Gavrielides 1 (), Marios Sophocleous¹, Christina C. Lessi², George Agapiou³, Jakub Špaňhel, Adrian Lendinez, Renxi Qiu³℗, and Dayou Li5 eBOS Technologies Ltd., Arch. Makariou III and Mesaorias 1, 2090 Lakatamia, Nicosia | |
Bhatnagar et al. | Cloud IoT: An Emerging Computing Paradigm for Smart World | |
Cuadra Gómez et al. | OpenFog-Compliant Application-Aware Platform: A Kubernetes Extension | |
Saberikamarposhti et al. | Real-Time Scheduling in IoT Applications: A Systematic Review | |
Fasihi | Rule based inference and action selection based on monitoring data in IoT | |
Khan | Microservices in context: Internet of Things: Infrastructure and Architecture | |
Καλκάνωφ | Study and implementation of an IoT service for device provisioning and controlling, data collection and visualization |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20221111 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20221111 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230913 |
|
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: 20231024 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20231115 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7387734 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |