JP2017010541A - 分散コンピューティング環境でシステムのプロセスの検証を行うための方法 - Google Patents

分散コンピューティング環境でシステムのプロセスの検証を行うための方法 Download PDF

Info

Publication number
JP2017010541A
JP2017010541A JP2016112344A JP2016112344A JP2017010541A JP 2017010541 A JP2017010541 A JP 2017010541A JP 2016112344 A JP2016112344 A JP 2016112344A JP 2016112344 A JP2016112344 A JP 2016112344A JP 2017010541 A JP2017010541 A JP 2017010541A
Authority
JP
Japan
Prior art keywords
partition
attributes
nodes
verification
processor
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
JP2016112344A
Other languages
English (en)
Other versions
JP6232470B2 (ja
Inventor
デサイ クリシュナジ
DESAI Krishnaji
デサイ クリシュナジ
シヴァルドライア ヴィジェタ
SHIVARUDRAIAH Vijetha
シヴァルドライア ヴィジェタ
伊藤 信治
Shinji Ito
信治 伊藤
宮崎 邦彦
Kunihiko Miyazaki
邦彦 宮崎
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of JP2017010541A publication Critical patent/JP2017010541A/ja
Application granted granted Critical
Publication of JP6232470B2 publication Critical patent/JP6232470B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

【課題】検証システムを使用して、分散コンピューティング環境でシステムのプロセスの検証を行うための方法を提供すること。【解決手段】検証システムは、プロセス及びシステムに関連する属性を受け取り、その属性及び、そのプロセスに関連するコンテキスト・データに基づいてパーティション・コンテキストを生成する。検証システムはパーティション・コンテキストに基づいて、プロセス及び属性を分散コンピューティング環境内のパーティション・ノードに分散させ、各パーティション・ノードにメタデータを埋め込む。メタデータは、プロセス及び属性に基づく、パーティション・ノード及びパーティション・ノード間の依存関係に関する情報を含む。検証システムは、各ノードでプロセスに対する属性の検証を行い、結果データを得る。各ノードの結果データは集計されて、属性についてシステムのプロセスが検証される。【選択図】図4

Description

本開示は一般にモデル検査に関し、より具体的には分散コンピューティング環境でシステム/モデルのプロセスの検証を行うための方法及びシステムに関するが、それに限定されない。
一般に、モデル検査とは、システム/プロセスが所与の仕様/属性を満たすか検証することを指す。実例として、仕様には、デッドロック及び、システムをクラッシュさせる可能性のある危機的状態がないことなどの安全要件が含まれてもよい。モデル検査は、属性についてのシステムの正当性を自動的に検証するための技法である。システムは決定的/非決定的な挙動及び並列動作を有する1つ又は複数のプロセス/1つ又は複数のイベントを含んでもよい。
現在は、モデル検査を行うために、仕様は数学的表現で表され、また、方法を使用して分散コンピューティング環境にモデル検査のプロセスが分散される。次にモデルは、分散コンピューティング環境内でアクセプタンス・サイクルなどの属性検査のために検証される。これらの方法の問題は、分散コンピューティング環境全体にわたる属性サイクルの計算の非効率性である。図1(従来技術)は、分散コンピューティング環境でのモデル検査方法を示す状態遷移図である。図1に示されるように、分散コンピューティング環境内に1つ又は複数のパーティション・ノードがあり、この場合は2つのパーティション、すなわちP1及びP2がある。パーティションP1はパーティション状態ノード0、2、4、6、8、10、12、14、16及び18の間に分散している。パーティションP2は、パーティション状態ノード1、3、5、7、9、11、13、15、17及び19の間に分散している。第1のパーティションP1内の属性/サイクルを検証するには第2のパーティションの複数の状態を横断する必要があるので、属性の検証にかかる時間が長くなり、また、属性/アクセプタンス・サイクルの計算が困難にもなる。属性サイクル/アクセプタンス・サイクルの計算の非効率性は、属性サイクルの検査中にコンテキストの認識が欠如していることに起因し、また、分散コンピューティング環境内の直近のノード間の通信に制限があることにも起因する。このアルゴリズム手法を使用することの問題の中には、この他に、分散コンピューティング環境内のノード間に相互排他性が欠如していることに起因して、1つのノードでの属性サイクルの検査中のエラーで他のノードのフローに影響するものがあることがある。また、各ノードで属性サイクルの計算が冗長になる可能性があり、それに起因して計算に要する時間が増大し、リソースの消費も増大する。
分散モデル検査の分野の従来の手法には他に、モデル・スライシング、データ/制御の依存関係グラフ分割、状態空間分割などがある。しかし、これらの手法では属性に関連するコンテキスト・データは得られず、分散コンピューティング環境での検証サイクルの計算の最適化に役立つモデルも得られない。
したがって、従来のモデル検査システムの欠点及び制限を克服する、分散コンピューティング環境でシステムのプロセスの検証を行うための方法が必要である。
本開示によって従来技術の1つ又は複数の短所が克服され、長所が追加される。追加される特徴及び長所は、本開示の技法によって実現される。本開示のその他の実施例及び態様が本明細書に詳細に記載され、また、特許請求された開示の一部と見なされる。
したがって、本開示は分散コンピューティング環境でシステムのプロセスの検証を行うための方法に関する。この方法は、検証システムによって、1つ又は複数のプロセス及び、そのプロセスに関連する1つ又は複数の属性を受け取ることを含む。プロセス及び1つ又は複数の属性を受け取ると、検証システムは、その1つ又は複数の属性及び、そのプロセスに関連する1つ又は複数のコンテキスト・データに基づいて、1つ又は複数のパーティション・コンテキストを生成する。この方法は、その1つ又は複数のパーティション・コンテキストに基づいて、プロセス及び1つ又は複数の属性を分散コンピューティング環境内の複数のパーティション・ノードに分散させることをさらに含む。検証システムは複数のパーティション・ノードのそれぞれにメタデータを埋め込む。その後、複数のパーティション・ノードのそれぞれが、1つ又は複数の属性についてプロセスを検証する。検証システムはシステムのプロセスを検証するために、複数のパーティション・ノードのそれぞれから受け取った結果データを集計し、1つ又は複数の属性についてのプロセスの検証に結果データが関連付けられる。
さらに、本開示は分散コンピューティング環境でシステムのプロセスの検証を行うための検証システムに関する。このシステムはプロセッサと、プロセッサに通信可能に結合されたメモリとを備え、メモリはプロセッサ実行可能な命令を保存しており、この命令は実行されると、1つ又は複数のプロセス及び、そのプロセスに関連する1つ又は複数の属性をプロセッサに受け取らせる。プロセッサは、その1つ又は複数の属性及び、そのプロセスに関連する1つ又は複数のコンテキスト・データに基づいて、1つ又は複数のパーティション・コンテキストを生成する。その後、プロセッサは、その1つ又は複数のパーティション・コンテキストに基づいて、プロセス及び1つ又は複数の属性を分散コンピューティング環境内の複数のパーティション・ノードに分散させる。また、プロセッサは複数のパーティション・ノードのそれぞれにメタデータを埋め込む。さらに、複数のパーティション・ノードのそれぞれが、1つ又は複数の属性についてプロセスを検証する。プロセッサはシステムのプロセスを検証するために、複数のパーティション・ノードのそれぞれから受け取った結果データを集計し、1つ又は複数の属性についてのプロセスの検証に結果データが関連付けられる。
さらに、本開示は命令を保管して有する非一時的コンピュータ可読媒体に関し、この命令が少なくとも1つのプロセッサによって処理されると、検証システムに、プロセス及びそのプロセスに関連する1つ又は複数の属性を受け取る動作と、その1つ又は複数の属性及び、そのプロセスに関連する1つ又は複数のコンテキスト・データに基づいて1つ又は複数のパーティション・コンテキストを生成する動作と、その1つ又は複数のパーティション・コンテキストに基づいてプロセス及び1つ又は複数の属性を分散コンピューティング環境内の複数のパーティション・ノードに分散させる動作とを行わせる。命令はさらにプロセッサに、複数のパーティション・ノードのそれぞれにメタデータを埋め込ませる。複数のパーティション・ノードのそれぞれが、1つ又は複数の属性についてプロセスを検証する。さらに命令はシステムのプロセスを検証するために、プロセッサに、複数のパーティション・ノードのそれぞれから受け取った結果データを集計させ、1つ又は複数の属性についてのプロセスの検証に結果データが関連付けられる。
上記の概要は説明のみを目的とし、制限を意図するものでは決してない。前述した説明目的の態様、実施例及び特徴に加えて、図面及び下記の詳細な説明を参照することによって、さらなる態様、実施例及び特徴が明らかになる。
添付の図面は本開示に組み込まれて本開示の一部を成し、例示的実施例を示すと共に、下記の説明と併せて、本開示の原理を説明する役割を果たす。図において、参照番号の左端の桁はその参照番号が最初に使用される図を示す。すべての図で、同様の特徴及び構成要素を指すために同じ番号が使用される。本主題の実施例によるいくつかのシステム及び/又は方法の実施例について、添付図面を参照しながら単なる実例として説明する。
従来技術による、分散コンピューティング環境でのモデル検査方法を示す状態遷移図である。 本開示のいくつかの実施例による、システムのプロセスを検証するための検証システムのブロック図である。 本開示のいくつかの実施例による、分散コンピューティング環境でのモデル検査方法を示す状態遷移図である。 本開示のいくつかの実施例による検証システムの詳細なブロック図である。 本開示のいくつかの実施例による検証システムを使用してシステムのプロセスを検証するための例示的環境を示す図である。 本開示のいくつかの実施例によるメタデータの例示的表現を示す図である。 本開示のいくつかの実施例による検証システムを使用してシステムのプロセスを検証するための方法を示すフローチャートである。 本開示に従う実施例を実装するための例示的コンピュータ・システムのブロック図である。
本明細書内のブロック図がいずれも本発明の主題の原理を具現化する説明目的のシステムの概念図を表していることを、当業者には理解されたい。同様に、フローチャート、フロー図、状態遷移図、擬似コードなどはいずれも様々なプロセスを表し、それらのプロセスが実質的にコンピュータ可読媒体内に表現され、且つ、コンピュータ又はプロセッサが明示的に示されているか否かに関わらずコンピュータ又はプロセッサによって実行されてもよいことが理解される。
本明細書内で使用されるとき、「例示的」という語は「例、事例、又は説明の役割をする」ことを意味する。本明細書に記載される、本発明の主題のいかなる実施例又は実装形態も、必ずしも他の実施例よりも好ましい、又は有利であるとは解釈されないものである。
本開示には様々な修正形態及び代替形態の余地があるが、本開示の特定の実施例が実例として図面に示されており、下記に詳細に説明される。ただし、開示される特定の形態に本開示を限定することは意図されておらず、逆に、本開示が本開示の範囲内のすべての修正、等価物及び代替物を対象とすることが理解されるべきである。
用語「含む(comprises)」、「含んでいる(comprising)」又はそれらの他の変形はいずれも非排他的な包含を対象とすることを意図し、列挙された構成要素又はステップを含む装備、装置又は方法はそれらの構成要素又はステップを包含するだけでなく、明示的に列挙されていない、又はそのような装備、装置若しくは方法に固有の、他の構成要素又はステップを包含してもよい。換言すれば、「を含む」という句の付けられた、システム又は装置内の1つ又は複数の要素は、さらなる制約なしに、そのシステム又は装置内の他の要素又は追加要素の存在を排除しない。
本開示は、検証システムを使用して分散コンピューティング環境でシステムのプロセスを検証するための方法に関する。システムは、ハードウェア、ソフトウェア、又はファームウェアの形で実装されてもよい。システムは1つ又は複数のプロセス(或いは、イベントとも呼ばれる)を含む。システムのモデル検査は、1つ又は複数の属性についてシステムを検証することを伴う。一実施例では、属性はシステムの論理、時間、及び挙動のパスの組み合わせによって表される仕様である。検証システムは、プロセスに関連する属性に基づいてパーティション・コンテキストを生成する。パーティション・コンテキストにはコンテキスト情報が含まれ、この情報に基づいて、分散コンピューティング環境内の1つ又は複数のパーティション・ノードの間にプロセスが分散される。分散コンピューティング環境内の各パーティション・ノードは、プロセスが属性に適合するか否か検証し、結果データを生成する。各パーティション・ノードからの結果データは検証システムに提供される。検証システムは、各パーティション・ノードからの結果データに基づいて、プロセスを属性について検証する。
本開示の実施例の下記の詳細な説明では本明細書の一部を成す添付図面が参照され、それらの図面には説明の目的で特定の実施例が示されており、それらの実施例にて本開示が実施されてもよい。これらの実施例は当業者が本開示を実施できるように十分詳細に説明されており、他の実施例が利用されてもよいこと及び、本開示の範囲を逸脱することなく変更が行われてもよいことが理解される。したがって、下記の説明は限定的に解釈されてはならない。
図2Aは、本開示のいくつかの実施例による、システムのプロセスを検証するための検証システム200のブロック図である。
図2Aに示されるように、検証システム200はI/Oインタフェース201、メモリ203、及びプロセッサ205を備える。検証システム200はモデル検査を行うために構成される。実例として、あるシステムがモデルの観点から表現されている。このシステムは1つ又は複数のプロセス/イベントを含む。1つ又は複数の属性がシステムの要件を満たすか否かを検証するためにモデル検査が行われる。1つ又は複数の属性は、システムの論理、時間、及び挙動のパスの組み合わせによって表される仕様である。例示的な一実施例ではモデルを信号制御ソフトウェア・システムなどの鉄道システムと考え、モデル内のプロセスを「列車に信号を送ること」、検証される属性を「衝突」と考える。すなわち、このモデルは列車間のあらゆる衝突を防ぐために検証される。その他のシステムには、財務などの企業システム、保険システム、年金システム、自動車制御システムなどの組込システム、ビッグ・データ・システム、ツール開発システム及び工学システムなどのインフラストラクチャ・システムなどが含まれてもよいが、これらに限定されない。モデル検査を行うために、プロセス及び属性が分散コンピューティング環境に分散される。検証される属性、すなわち「衝突」が、分散コンピューティング環境内の1つ又は複数のパーティション・ノードの間に分散される。プロセス及び属性が分散されるのは、各パーティション・ノード内の検証属性を確認するため、すなわち、各パーティション・ノードでプロセスに対してそれらの属性を検証するか否か確認するためである。
検証システム200のI/Oインタフェース201は、システムからプロセス及び属性を受け取る。受け取られた属性及びプロセスはメモリ203に保管される。メモリ203はプロセッサ205に通信可能に結合されている。プロセッサ205はプロセス及び属性を受け取って、1つ又は複数のパーティション・コンテキストを生成する。1つ又は複数のパーティション・コンテキストは、プロセスに関連するコンテキスト・データに基づく。1つ又は複数のパーティション・コンテキストは、プロセス及び属性を受け取ったときにプロセッサ205によって自動的に生成されるか、又は、システムのユーザの入力に基づいて生成されてもよい。コンテキスト・データは、プロセス及び属性に基づくシステムの挙動(behavior)を指す。一実施例では、コンテキスト・データはシステムのユーザによって提供されてもよい。プロセッサ205は属性及びプロセスを、1つ又は複数のパーティション・コンテキストに基づいて各パーティション・ノードに分散させる。プロセッサ205はまた、1つ又は複数のパーティション・ノードのそれぞれにメタデータ情報を埋め込む。メタデータは、パーティション・ノード及びパーティション・ノード間の依存関係に関する情報を含む。各パーティション・ノードは、そのパーティション・ノード内にアクセプタンス・サイクルが存在するか否かの検証、すなわち、属性がプロセスに適合するか否かの確認を行う。検証に基づいて、各パーティション・ノードは結果データを提供する。各パーティション・ノードの結果データは検証システム200に提供される。検証システム200のプロセッサ205は各パーティション・ノードの結果データを集計して、分散コンピューティング環境内のシステムのプロセスを検証する。
図2Bは、本開示のいくつかの実施例による、分散コンピューティング環境でのモデル検査方法を示す状態遷移図である。
図2Bに示されるように、2つのパーティション、すなわちP1及びP2がある。検証される属性は、プロセス「列車に信号を送る」の「衝突」である。図2Bに示されるように、パーティションP1はパーティション状態0、1、2、5、6、7、8、9の間に分散し、パーティションP2はパーティション状態10、11、12、15、16、17、18、19の間に分散している。属性「衝突」は、第1のパーティションP1と第2のパーティションP2で並行して検証される。このシナリオでは、属性サイクルはパーティションP1内で満たされる。このシナリオでは属性サイクルの計算は簡単で、図1に示される従来技術と比較して費やされる時間が少なくなる。その理由は、パーティションがコンテキスト・データ、すなわちプロセスの挙動データに基づいて分散されているからである。
図2Cは、本開示のいくつかの実施例による検証システム200の詳細なブロック図である。
一実装形態では、検証システム200はシステムから入力データを受け取る。実例として、受け取られた入力データはメモリ203に保管される。一実施例では、入力データはシステムのプロセス及び属性に関連するデータを含む。検証システム200はメタデータ及びその他のデータもまた含んでもよい。メタデータはパーティション・ノード及びパーティション・ノード間の依存関係に関する情報を含む。図2Cに示される1つ又は複数のモジュールについて、本明細書で詳細に説明する。
一実施例では、データは様々なデータ構造の形でメモリ203に保管されてもよい。加えて、前述のデータは、関係型又は階層型のデータ・モデルなどのデータ・モデルを使用して組織化することができる。検証システム200の様々な機能を行うためのモジュールによって生成された一時データ及び一時ファイルを含む、他のデータが保管されてもよい。
一実施例では、メモリ203に保管されたデータは検証システム200のモジュールによって処理される。
一実装形態では、モジュールは、例えば、受信モジュール207、パーティション・コンテキスト生成モジュール209、コンテキストベース分散モジュール211、メタデータ共有モジュール213、集計モジュール215、及び他のモジュール217を含んでもよい。他のモジュール217は、検証システム200の各種の様々な機能を行うために使用されてもよい。前述のそのようなモジュールは単一のモジュールとして、又は異なるモジュールの組み合わせとして表されてもよいことが理解される。
一実施例では、受信モジュール207はシステムからプロセス及び属性を受け取るように構成される。一実施例では、受信モジュール207はまた、システムに関連する1つ又は複数のプロセス及び1つ又は複数の属性を受け取ってもよい。実例として、検証される属性は、安全性の検出、アサーション検査(ローカル及びグローバルなアサーション)、アクセプタンス状態、非進行サイクル、不変量、及びデッドロック検出などを含んでもよいが、これらに限定されない。分割(パーティションする)時に、依存関係に基づいて、元のパーティションの事後条件に基づく従属パーティションの事前条件を導出することができる。また、分割時に、必要な仮定も導出することができる。一実施例では、アクセプタンス状態を使用して状態空間内のアクセプタンス・サイクルが探索される。アクセプタンス・サイクルは安全性の属性の検査に有用で、無限実行に対処する。
一実施例では、デッドロックは、終端状態すなわち外向き遷移のない状態を有する、収束しない逐次プログラム(すなわち無限ループ)を指す。ある状態が外向き遷移を有さず、且つ終了状態とマークされていない場合、又は、ある状態からの遷移が同じ状態に戻る場合に、システムはデッドロックしていると言われる。
一実施例では、パーティション・コンテキスト生成モジュール209は1つ又は複数のパーティション・コンテキストを生成するように構成される。1つ又は複数のパーティション・コンテキストは、受け取られた属性及びプロセスのコンテキスト・データに基づいて生成される。実例として、コンテキスト・データは、プロセスのローカル及びグローバルな遷移、プロセスの1つ又は複数のフロー、プロセスの1つ又は複数のパス、プロセスに関連する決定的及び非決定的なパラメータ、プロセスの反復、プロセスの事前条件及び事後条件、プロセスに関連する仮定アスペクト、並びにプロセスの影響を含んでもよいが、これらに限定されない。コンテキスト・データは検証システム200によって自動的に生成されてもよいし、又はユーザからの入力に基づいて生成されてもよい。
一実施例では、コンテキストベース(context based)分散モジュール211は、パーティション・コンテキストに基づいてプロセス及び属性を分散ネットワーク環境に分散させるように構成される。コンテキストベース分散モジュール211は、パーティション・コンテキストに基づいてプロセス及び属性を各パーティション・ノードに分散させる。実例として、デッドロックに関する属性が1つのパーティションに与えられてもよく、アクセプタンス・サイクルに関する属性が別のパーティションに与えられてもよい。
一実施例では、メタデータ共有モジュール213は、分散コンピューティング・ネットワーク内の各パーティション・ノードにメタデータ情報を埋め込むように構成される。メタデータ情報はパーティション・ノード及びパーティション・ノード間の依存関係についての情報を含む。実例として、3つのパーティション・ノード、すなわち第1のパーティション・ノード、第2のパーティション・ノード及び第3のパーティション・ノードがある。メタデータ情報は、分散コンピューティング環境でアクセプタンス・サイクルをさらに計算するために、どのパーティション・ノードを参照すべきかの指示を提供する。例えば、第1のパーティション・ノード内のメタデータ情報が、さらなる計算のために第3のパーティション・ノードを指示する。したがって、モデル検査を行うために、検証システム200は第3のパーティション・ノードを直接参照してもよい。一実施例では、依存関係はコンテキストを認識しているので、非近隣のパーティション・ノードをリンクすることができる。コンテキストを認識する依存関係は、不変量、仮定、及びその他の環境的制約であることができる。一実施例では、不変量はシステムの一定の状態を表す変数の述語であり、その不変量の範囲に従って一貫して変化せずに維持される。
一実施例では、集計モジュール215は各パーティション・ノードからの結果データを集計するように構成される。各パーティション・ノードはアクセプタンス・サイクルの確認、すなわち、属性が所与のプロセスに適合するか否かの検証を行い、結果データを提供する。各パーティション・ノードの結果データは検証システム200の集計モジュール215に提供される。集計モジュール215は各パーティションの結果データを集計して、システムのプロセスを検証する。
図3Aは、本開示のいくつかの実施例による検証システム200を使用してシステムのプロセスを検証するための例示的環境300を示す図である。
図3Aに示されるように、環境300はシステム301、検証システム200及び分散コンピューティング環境304を含む。システム301は、1つ又は複数のプロセス、すなわちプロセス1 305〜プロセスn 305(集合的にプロセス305と称される)を含む。環境300は、システムのプロセスについて検証される必要のある1つ又は複数の属性、すなわち307〜307(集合的に属性307と称される)もまた含む。分散コンピューティング環境304は1つ又は複数のパーティション・ノード、すなわちパーティション・ノード1 309、パーティション・ノード2 309〜パーティション・ノードn 309を含む。各パーティション・ノードはプロセッサ、メモリ、及びプロセス検証ユニットを備える。実例として、属性1がアクセプタンス・サイクル、属性2が非進行サイクル、属性3がデッドロックの検出などであってもよい。一実施例では、非進行サイクルは、明示的に進行プロセスとマークされていないすべてのグローバルなシステム状態で「真」であり、その他のすべての状態で「偽」であると定義される。少なくとも1つのアクティブなプロセスがユーザ定義の進行ラベルでマークされたローカル制御状態にある場合、又は現在のグローバルなシステム状態がプロセス・トレース定義内に進行ラベルでマークされている場合、システムは進行状態にある。検証システム200は、分散コンピューティング環境304内でシステムのプロセスを検証するように構成される。検証システム200の受信モジュール207は、プロセス及び、プロセスについて検証される属性を受け取る。例えば、鉄道システムで検証される属性は衝突である。すなわち、列車間で衝突があってはならない。パーティション・コンテキスト生成モジュール209はプロセス及び属性を受け取って、プロセスのコンテキスト・データ(contextual data)に基づいて1つ又は複数のパーティション・コンテキストを生成する。コンテキスト・データは、プロセスの1つ又は複数のフロー、プロセスの1つ又は複数のパス、プロセスに関連する決定的又は非決定的パラメータ、プロセスの反復、プロセスの事前条件及び事後条件、プロセスに関連する仮定アスペクト、及びプロセスの影響を含んでもよいが、これらに限定されない。コンテキストベース分散モジュール211は属性及びプロセスを、パーティション・コンテキストに基づいて各パーティション・ノードに分散させる。実例として、コンテキスト・データがプロセスの1つ又は複数のフローである場合には、そのフローに適する1つ又は複数の属性がパーティション・ノード1に提供される。同様に、コンテキスト・データが決定的及び非決定的なパラメータである場合には、分散コンピューティング環境のパーティション・ノード2に決定的な属性が提供され、パーティション・ノード3に非決定的な属性が提供される。
一実施例では、コンテキストベース分散モジュール211はまた、各パーティション・ノードにメタデータ情報を提供する。図3Bはメタデータの表現を示す。メタデータはパーティション・ノード並びに、検証されるプロセス及び属性についての依存関係の情報を含む。メタデータはまた、境界及び内部パーティション・ノードIDの情報も含み、これはパーティション境界の境界又は内部の状態を指す。図3Bに示されるように、属性「アクセプタンス・サイクル」及びコンテキスト・データ「影響」についての目標パーティションIDは2、すなわちパーティション・ノード2である。パーティション・ノード2の近隣パーティション・ノードのパーティション・ノードIDも示されている。同様に、属性が「非進行」でコンテキスト・データが「仮定」である場合は、目標パーティションIDは3及び5、すなわちパーティション・ノード3及びパーティション・ノード5である。属性「非進行」がパーティション・ノード3及びパーティション・ノード5で検証される。一実施例では、各パーティション・ノードはプロセス検証ユニットを含む。パーティション・ノード2のプロセス検証ユニットは、属性「アクセプタンス・サイクル」がプロセスによって満たされるか否かを検証する。同様に、パーティション・ノード3及びパーティション・ノード5は、属性「非進行」がプロセスによって満たされるか否かを検証する。各パーティション・ノードのプロセス検証ユニットは、検証プロセスの結果データを提供する。集計モジュール215が結果データを集計して、プロセスの属性が満たされているか否かを検証する。
一実施例では、パーティション・ノードがプロセスの仕様を満たさない場合には、反例トレースが生成される。これらの反例トレースは属性についてのプロセスの不正な挙動の是正に役立つ。集計モジュールが各パーティション・ノードからの反例トレースを集約して、属性についてシステムのプロセスを検証する。
1つの例示的実施例では、本開示は、パーティション・ノード間の依存関係についてプロセスを分割する方法を開示する。検証システム200がプロセスを受け取り、依存関係主導のコンテキストを生成して、モデル検査/システム検証を行うために最適な複数のパーティションにプロセスを分割する。実例として、プロセスは、1つ又は複数の条件を有するプログラムである。分割の基準は、パーティション・ノード間の依存関係及び属性関係に基づいて生成された異なるパーティション・コンテキスト間の関係である。これは、プログラム内のIF、LOOP及びGUARDの様々な条件を分類することによって行われ、それにより、様々な影響関係及び帰結関係が導出され、よって、様々な証明責務が導出される。
上記はプログラム内で確認される条件である。上記の各カテゴリについて、それぞれ異なる依存関係主導のコンテキストが生成される。これらのコンテキストに基づいて、モデル状態空間/プロセスが別々のパーティションに最適に分散される。上記のコンテキストにいくつかの事前条件及び事後条件を結びつけることができる。
表1に示されるように、グローバルな不変量INVを、INVL1、INVL2、及びINVL3のような、いくつかのローカルな不変量に分割することができ、それらはモデルの一定のブロック、モデルの一定のイベント、モデルのイベントの一定のグループなどに対して特定である。不変量は、システムの一定の状態を表す変数の述語であり、その不変量の範囲に従って一貫して変化せずに維持される。
表2に示されるように、異なる基準に基づいた分割にEVENT GRD条件を使用することができる。例えば、順序付けのケースに対してはGRD及びGRDが1つのパーティションP1にまとめられ、分離性の(disjunctive)ケースに対してはGRDが2つのパーティションP01及びP02に分けられる。
GRDと同様に、EVENT/ACTアクションもまた、異なる基準に基づいて分割することができる。表3に示されるように、特定のEVENTのアクションがコンテキストに基づいて非原子的なパーティションP01及びP02に分割される。アクションは、パーティションP1について示されるように、共有の可変依存関係に基づいてグループ化することができる。順序付けられたアクションのセットはパーティションP2に割り当てられる。
表4に示されるように、異なるループ条件の制約に基づいて、異なるパーティションが存在し得る。ループ条件の制約LC1内ではまた、反復回数の範囲に基づいてパーティションがP11及びP12に分けられる。同様に、分岐条件BC21、BC22に基づいて、さらにP21及びP22への分割が行われる。
表5に示されるように、分岐条件自体を、分離性(disjunctive)ケースに基づいて異なるパーティションに割り当てることができる。各パーティションをさらに、EVENT/GRD(EG21及びEG22)及びEVENT/ACTに基づいて分割することができる。
一実施例では、前述した様々な制約を、モデルの構造及び挙動のフローに基づいてさらに階層的に分割することができる。また、様々な制約に基づき、再グループ化、順序付け、分離(disjunction)によって分割の再調節が可能である。表6は様々な可能性の全体図を示し、分散の結果がパーティションになる。
一実施例では、コンテキスト情報に基づく分割では良い結果が得られないことがある。よって、最初の高位の分割プロセスの後、低位のグラフ・カット・アルゴリズムを行うことが必要になる場合もある。最適化エッジに基づいて、厳密な依存関係の影響を特定してパーティション間の関連を定めなければならない。実例として、より高位の抽象レベルで最適なパーティションを特定するために、INV、LC、BCなどの「様々なコンテキスト制約の交差(intersection)」を特定する様々な組み合わせを考慮することができる。これは、交差の状態空間が定量化可能で、後に並べ替え/順序付けして最適な組み合わせを見つけることができる場合に可能である。
一実施例では、他のパーティションとの重複があるパーティションでは、依存関係は「Before−After述語」で影響関係を記号的に使用して取得される。主パーティションについて交差・に基づく状態空間領域の重複が考慮され、状態遷移の方向に基づいて従属パーティションに向かう依存関係の影響が特定される。よって、計算及び保管は主パーティションで一度だけ行われ、仮定及び事前条件の形での依存関係の影響によって従属パーティションの計算が可能になることになる。しかし、各パーティションでの計算は完全に独立するわけではなく、複数の異なるパーティションを使用して計算の有効性及び正確さが達成される。表7は、複数の異なる影響IMP、IMP〜IMPを有する依存(DEP)関係を示す。これらの影響は、分散を行うとき、及び後に計算を行うときに集計のために、異なるパーティション間の関連を確立する。
図4は、本開示のいくつかの実施例による検証システム200を使用してシステムのプロセスを検証するための方法を示すフローチャートである。
図4に示されるように、方法400は検証システム200を使用して分散コンピューティング環境内でシステムのプロセスを検証するための1つ又は複数のブロックを含む。方法400は、コンピュータ実行可能な命令の一般的な文脈で記載されてもよい。一般に、コンピュータ実行可能な命令は、ルーティン、プログラム、オブジェクト、コンポーネント、データ構造、プロシージャ、モジュール及び関数を含むことができ、これらは特定の機能を実行するか、又は特定の抽象データ型を実装する。
方法400が記載された順序は制限と見なされることを意図しておらず、記載された方法ブロックのうち任意の数を任意の順序で組み合わせて方法を実装することができる。加えて、本明細書に記載された主題の趣旨及び範囲を逸脱することなく、個々のブロックを方法から削除してもよい。さらに、この方法は任意の適切なハードウェア、ソフトウェア、ファームウェア、又はそれらの組み合わせに実装することができる。
ブロック401で、システムのプロセス及び属性が受け取られる。一実施例では、検証システム200の受信モジュール207が、1つ又は複数の属性についてプロセスを検証するために、プロセス及び属性を受け取る。
ブロック403で、1つ又は複数のパーティション・コンテキストが生成される。一実施例では、パーティション・コンテキスト生成モジュール209が、受け取られた属性及びプロセスに基づいて1つ又は複数のパーティション・コンテキストを生成する。
ブロック405で、プロセス及び属性が分散コンピューティング環境内のパーティション・ノードの間に分散される。一実施例では、コンテキストベース分散モジュール211によって、パーティション・コンテキストに基づき、プロセス及び属性がパーティション・ノード間に分散される。どのパーティション・ノードにどのプロセス及び属性の情報を検証のために提供すべきかを示すために、コンテキスト情報が提供される。
ブロック407で、各パーティション・ノードにメタデータ情報が埋め込まれる。一実施例では、メタデータ共有モジュール213が各パーティション・ノードにメタデータ情報を提供する。メタデータ情報はパーティション・ノード間の依存関係の情報を含む。メタデータ情報はまた、プロセスについて検証する必要のある属性の情報を含んでもよい。
ブロック409で、プロセスについて属性が検証される。各パーティション・ノードがプロセスについて属性を検証する。パーティション・ノードは所与のプロパティについてプロセスを確認する。検証に基づいて、各パーティション・ノードが結果データを提供する。
ブロック411で、各パーティション・ノードの結果データが集計される。一実施例では、検証システム200の集計モジュール215が各パーティション・ノードの結果データを集計して、システムのプロセスを検証する。
図5は、本開示に従う実施例を実装するための例示的コンピュータ・システム500のブロック図である。一実施例では、コンピュータ・システム500は、検証システム200を使用してシステムのプロセスを検証するために使用される。コンピュータ・システム500は、中央処理ユニット(「CPU」又は「プロセッサ」)502を含んでもよい。プロセッサ502は、ユーザ又はシステムによって生成された業務プロセスを実行するためのプログラム構成要素を実行するために少なくとも1つのデータ・プロセッサを含んでもよい。ユーザは、人物、本発明に含まれる装置などの装置を使用する人物、又はそのような装置自体を含んでもよい。プロセッサ502は、統合システム(バス)コントローラ、メモリ管理制御ユニット、浮動小数点ユニット、グラフィック処理ユニット、デジタル信号処理ユニットなどの専用処理ユニットを含んでもよい。
プロセッサ502は、入出力(I/O:input/output)インタフェース501を介して1つ又は複数のI/O装置(511及び512)と通信状態に置かれてもよい。I/Oインタフェース501は、音声、アナログ、デジタル、ステレオ、IEEE−1394、シリアル・バス、ユニバーサル・シリアル・バス(USB:Universal Serial Bus)、赤外線、PS/2、BNC、同軸、コンポーネント、コンポジット、デジタル・ビジュアル・インタフェース(DVI:Digital Visual Interface)、高精細度マルチメディア・インタフェース(HDMI(登録商標):high−definition multimedia interface)、無線周波(RF:Radio Frequency)アンテナ、S−Video、ビデオ・グラフィックス・アレイ(VGA:Video Graphics Array)、IEEE802.n /b/g/n/x、Bluetooth(登録商標)、セルラー(例えば、符号分割多元接続(CDMA:Code−Division Multiple Access)、高速パケットアクセス(HSPA+:High−Speed Packet Access)、グローバル・システム・フォー・モバイル・コミュニケーションズ(GSM(登録商標):Global System For Mobile Communications)、ロングターム・エボリューション(LTE:Long−Term Evolution)、WiMaxなど)などの通信プロコトル/方法を使用してもよいが、これらに制限されない。
I/Oインタフェース501を使用して、コンピュータ・システム500は1つ又は複数のI/O装置(511及び512)と通信してもよい。
いくつかの実施例では、プロセッサ502がネットワーク・インタフェース503を介して通信ネットワーク509と通信状態に置かれてもよい。ネットワーク・インタフェース503は通信ネットワーク509と通信してもよい。ネットワーク・インタフェース503は、直接接続、Ethernet(登録商標)(例えばツイスト・ペア10/100/1000BASE−T)、TCP/IP(Transmission Control Protocol/Internet Protocol)、トークン・リング、IEEE802.11a/b/g/n/xなどの接続プロトコルを使用してもよいが、これらに限定されない。ネットワーク・インタフェース503及び通信ネットワーク509を使用して、コンピュータ・システム500は1つ又は複数のユーザ装置510(a〜n)と通信してもよい。通信ネットワーク509は、イントラネット又はローカル・エリア・ネットワーク(LAN:Local Area Network)及び組織内ネットワークなどの様々なタイプのネットワークの1つとして、実装することができる。通信ネットワーク509は、専用ネットワーク又は共有ネットワークのいずれであってもよく、例えば、HTTP(Hypertext Transfer Protocol)、TCP/IP(Transmission Control Protocol/Internet Protocol)、WAP(Wireless Application Protocol)などの各種プロトコルを使用して相互に通信する様々なタイプのネットワークの連合を表す。さらに、通信ネットワーク509は、ルータ、ブリッジ、サーバ、コンピューティング装置、ストレージ装置などを含む各種ネットワーク装置を含んでもよい。1つ又は複数のユーザ装置510(a〜n)は、パーソナル・コンピュータ、携帯電話などのモバイル装置、スマートフォン、タブレット・コンピュータ、電子書籍リーダ、ラップトップ・コンピュータ、ノートブック、ゲーム・コンソールなどを含んでもよいが、これらに限定されない。
いくつかの実施例では、プロセッサ502はストレージ・インタフェース504を介してメモリ505(例えば、図5に示されていないRAM、ROMなど)と通信状態に置かれてもよい。ストレージ・インタフェース504は、メモリ・ドライブ、取り外し可能ディスク・ドライブなどを含むがこれらに限定されないメモリ505に、シリアルATA(SATA:Serial Advanced Technology Attachment)、IDE(Integrated Drive Electronics)、IEEE−1394、ユニバーサル・シリアル・バス(USB)、光ファイバー・チャネル、SCSI(Small Computer Systems Interface)などの接続プロトコルを使用して接続してもよい。メモリ・ドライブはさらに、ドラム、磁気ディスク・ドライブ、光磁気ドライブ、光ドライブ、RAID(Redundant Array of Independent Disc)、ソリッドステート・メモリ・デバイス、ソリッドステート・ドライブなどを含んでもよい。
メモリ505は、ユーザ・インタフェース・アプリケーション506、オペレーティング・システム507、ウェブ・サーバ508などを含むがこれらに限定されないプログラム又はデータベース構成要素の集合を保管してもよい。いくつかの実施例では、コンピュータ・システム500は、本発明に記載されるようにデータ、変数、レコードなどのユーザ・データ/アプリケーション・データ506を保管してもよい。そのようなデータベースは、Oracle又はSybaseなどの耐故障性、リレーショナル、スケーラブル、セキュアなデータベースとして実装されてもよい。
オペレーティング・システム507がコンピュータ・システム500の資源管理及び運用を促進してもよい。オペレーティング・システムの実例は、Apple Macintosh OS X、UNIX(登録商標)、Unixライクなシステム・ディストリビューション(例えば、BSD(Berkeley Software Distribution)、FreeBSD、NetBSD、OpenBSDなど)、Linux(登録商標)ディストリビューション(例えば、Red Hat、Ubuntu、Kubuntuなど)、IBM(International Business Machines) OS/2、Microsoft Windows(登録商標)(XP、Vista/7/8など)、Apple iOS、Google Android、Blackberryオペレーティング・システム(OS)などを含むが、これらに限定されない。ユーザ・インタフェース506は、テキスト又はグラフィック機能を通してプログラム構成要素の表示、実行、対話、操作、又は動作を促進してもよい。例えば、ユーザ・インタフェースはコンピュータ・システム500に動作可能に接続されたディスプレイ・システム上に、カーソル、アイコン、チェック・ボックス、メニュー、スクローラ、ウィンドウ、ウィジェットなどのコンピュータ対話インタフェース要素を提供してもよい。Apple Macintoshオペレーティング・システムのAqua、IBM OS/2、Microsoft Windows(登録商標)(例えば、Aero、Metroなど)、Unix(登録商標) X−Windows(登録商標)、ウェブ・インタフェース・ライブラリ(例えば、ActiveX、Java(登録商標)、JavaScript(登録商標)、AJAX、HTML、Adobe Flashなど)などを含むがこれらに限定されないグラフィカル・ユーザ・インタフェース(GUI)が使用されてもよい。
いくつかの実施例では、コンピュータ・システム500はウェブ・ブラウザ508ストアド・プログラム・コンポーネントを実装してもよい。ウェブ・ブラウザは、Microsoft Internet Explorer、Google Chrome、Mozilla Firefox、Apple Safariなどのハイパーテキスト閲覧アプリケーションでもよい。HTTPS(Secure Hypertext Transport Protocol) SSL(Secure Sockets Layer)、TSL(Transport Layer Security)などを使用して安全なウェブ閲覧が提供されてもよい。ウェブ・ブラウザは、AJAX、DHTML、Adobe Flash、JavaScript(登録商標)、Java(登録商標)、アプリケーション・プログラミング・インタフェース(API)などの機能を利用してもよい。いくつかの実施例では、コンピュータ・システム500はメール・サーバ・ストアド・プログラム・コンポーネントを実装してもよい。メール・サーバは、Microsoft Exchangeなどのインターネット・メール・サーバでもよい。メール・サーバは、Active Server Pages(ASP)、ActiveX、米国国家規格協会(ANSI) C++/C#、Microsoft .NET、CGIスクリプト、Java(登録商標)、JavaScript(登録商標)、Perl、PHP、Python、WebObjectsなどの機能を利用してもよい。メール・サーバは、IMAP(Internet Message Access Protocol)、MAPI(Messaging Application Programming Interface)、Microsoft Exchange、POP(Post Office Protocol)、SMTP(Simple Mail Transfer Protocol)などの通信プロトコルを使用してもよい。いくつかの実施例では、コンピュータ・システム500はメール・クライアント・ストアド・プログラム・コンポーネントを実装してもよい。メール・クライアントは、Apple Mail、Microsoft Entourage、Microsoft Outlook、Mozilla Thunderbirdなどのメール閲覧アプリケーションであってもよい。
さらに、本発明に従う実施例の実装に1つ又は複数のコンピュータ可読ストレージ媒体が使用されてもよい。コンピュータ可読ストレージ媒体とは、プロセッサによる読み取りが可能な情報又はデータが保管されてもよい任意のタイプの物理メモリを指す。よって、コンピュータ可読ストレージ媒体は、本明細書に記載される実施例に従うステップ又は段階をプロセッサに遂行させるための命令を含む、1つ又は複数のプロセッサによって実行されるための命令を含んでもよい。用語「コンピュータ可読媒体」は、有形物を含み、搬送波及び過渡信号を除外する、すなわち非一時的であると理解されるべきである。その実例には、ランダム・アクセス・メモリ(RAM:Random Access Memory)、読出し専用メモリ(ROM:Read−Only Memory)、揮発性メモリ、不揮発性メモリ、ハード・ドライブ、コンパクト・ディスク(CD:Compact Disc)ROM、デジタル・ビデオ・ディスク(DVD:Digital Video Disc)、フラッシュ・ドライブ、ディスク、及びその他任意の知られている物理ストレージ媒体が含まれる。
本開示の実施例の利点を以下に説明する。
一実施例では、本開示は、プロセスの依存関係を影響として、属性コンテキストと共に維持することができる方法を提供する。
一実施例では、本開示は、分散コンピューティング環境での属性サイクルの検索中/検出中に、複数のパーティション・ノードにわたってエラー状態が最小化される方法を提供する。
本開示はいずれのモデル検査手法にも適用可能であり、有界モデル検査に限定されない。
一実施例では、本開示は、検索がコンテキスト・ベースであるためにパーティション・ノードによる検索実施中の冗長性が減少する方法を提供する。
一実施例では、本開示は、分散コンピューティング環境で、より高速なモデル検査の検索計算を提供する。
本開示は、遠隔のパーティション・ノードにわたる非近隣の状態に関する依存関係管理のためにコンテキストを認識する影響を提供する。
本開示は、クラウド上に検証プラットフォームを提供する。
本開示は、ラベル伝播アルゴリズム及びコンテキスト関係の使用に起因する通信オーバヘッドを減少させる。
図示されたステップは示された例示的実施例を説明するために提示されており、特定の機能が遂行される様式が現在進行中の技術開発によって変更されることが予想されるべきである。これらの実例は本明細書内で、制限ではなく説明の目的で提示されている。さらに、本明細書内で機能構築ブロックの境界は説明の便宜のために任意に定められている。指定された機能及びそれらの関係が適切に遂行される限り、代替の境界を定めることができる。代替形態(本明細書に記載された形態の等価、拡張、変形、逸脱の形態などを含む)が、本明細書に含まれる教示に基づき当業者には明らかになる。そのような代替形態は本開示の実施例の範囲及び趣旨の中に収まる。また、「備える(comprising)」、「有する(having)」、「包含する(containing)」、「含む(including)」及びその他の類似した語は意味において等価であり、且つオープン・エンドであると意図されており、したがって、それらの語のいずれかが付けられた項目又は複数の項目は、そのような項目又は複数の項目の網羅的なリストを意味することはなく、また、列挙された項目又は複数の項目のみに限定されることを意味することもない。また、本明細書及び添付の特許請求の範囲の中で使用されるとき、明確に断りのない限り、単数形「a」、「an」、及び「the」は複数参照を含むことに留意されたい。
さらに、本開示に従う実施例の実装に1つ又は複数のコンピュータ可読ストレージ媒体が使用されてもよい。コンピュータ可読ストレージ媒体とは、プロセッサによる読み取りが可能な情報又はデータを保管してもよい任意のタイプの物理メモリを指す。よって、コンピュータ可読ストレージ媒体は、本明細書に記載される実施例に従うステップ又は段階をプロセッサに遂行させるための命令を含む、1つ又は複数のプロセッサによって実行されるための命令を保管してもよい。用語「コンピュータ可読媒体」は、有形物を含み、搬送波及び過渡信号を除外する、すなわち非一時的であると解釈されるべきである。その実例には、ランダム・アクセス・メモリ(RAM)、読出し専用メモリ(ROM)、揮発性メモリ、不揮発性メモリ、ハード・ドライブ、CD ROM、DVD、フラッシュ・ドライブ、ディスク、及びその他任意の知られている物理ストレージ媒体が含まれる。
本開示及び実例は、単に例示的であると見なされ、本開示の実施例の真の範囲及び趣旨は添付の特許請求の範囲によって示されることが意図されている。
200 検証システム
201 インタフェース
203 メモリ
205 プロセッサ
207 受信モジュール
209 パーティション・コンテキスト生成モジュール
211 コンテキストベース分散モジュール
213 メタデータ共有モジュール
215 集計モジュール
217 他のモジュール
300 環境
301 システム
305 プロセス
304 分散コンピューティング環境
307 属性
309 パーティション・ノード

Claims (20)

  1. 分散コンピューティング環境でシステムのプロセスの検証を行うための方法であって、
    検証システムによって、前記プロセス及び前記プロセスに関連する1つ又は複数の属性を受け取るステップと、
    前記検証システムによって、前記1つ又は複数の属性及び、前記プロセスに関連する1つ又は複数のコンテキスト・データに基づいて、1つ又は複数のパーティション・コンテキストを生成するステップと、
    前記検証システムによって、前記1つ又は複数のパーティション・コンテキストに基づいて、前記プロセス及び前記1つ又は複数の属性を前記分散コンピューティング環境内の複数のパーティション・ノードに分散させるステップと、
    前記検証システムによって、前記複数のパーティション・ノードのそれぞれにメタデータを埋め込むステップと、
    前記複数のパーティション・ノードのそれぞれによって、前記1つ又は複数の属性について前記プロセスを検証するステップと、
    前記検証システムによって、前記システムの前記プロセスを検証するために、前記複数のパーティション・ノードのそれぞれから受け取った結果データを集計するステップとを含み、前記1つ又は複数の属性についての前記プロセスの前記検証に前記結果データが関連付けられる、方法。
  2. 前記1つ又は複数の属性が、前記システムの時間、論理、及び挙動のパスによって表される、請求項1に記載の方法。
  3. 前記1つ又は複数のコンテキスト・データが、前記プロセスのローカル及びグローバルな遷移、前記プロセスの1つ又は複数のフロー、前記プロセスの1つ又は複数のパス、前記プロセスに関連する決定的及び非決定的パラメータ、前記プロセスの反復、前記プロセスの事前条件及び事後条件、前記プロセスに関連する仮定アスペクト、並びに前記プロセスの影響のうち少なくとも1つに基づいて生成される、請求項1に記載の方法。
  4. 前記メタデータが前記パーティション・ノード及び前記パーティション・ノード間の依存関係に関する情報を含む、請求項1に記載の方法。
  5. 前記依存関係が、演繹的推論と前記1つ又は複数の属性のコンテキスト情報とのうち少なくとも1つに基づいて特定される、請求項4に記載の方法。
  6. 前記1つ又は複数のパーティション・コンテキストが、前記検証システムによって自動的に生成されること、及び前記システムのユーザの入力に基づいて生成されることのうち少なくとも1つである、請求項1に記載の方法。
  7. 前記1つ又は複数のパーティション・ノードのそれぞれがプロセッサ、メモリ、及びプロセス検証ユニットを含む、請求項1に記載の方法。
  8. 前記プロセス検証ユニットが前記1つ又は複数の属性を前記プロセスについて検証し、前記結果データを生成する、請求項7に記載の方法。
  9. 分散コンピューティング環境でシステムのプロセスの検証を行うための検証システムであって、
    プロセッサと、
    前記プロセッサに通信可能に結合されたメモリとを備え、前記メモリがプロセッサ実行可能な命令を保存しており、前記命令が実行されると前記プロセッサに、
    前記プロセス及び前記プロセスに関連する1つ又は複数の属性を受け取る動作と、
    前記1つ又は複数の属性、及び前記プロセスに関連する1つ又は複数のコンテキスト・データに基づいて1つ又は複数のパーティション・コンテキストを生成する動作と、
    前記プロセス及び前記1つ又は複数の属性を、前記1つ又は複数のパーティション・コンテキストに基づいて、前記分散コンピューティング環境内の複数のパーティション・ノードに分散させる動作と、
    前記複数のパーティション・ノードのそれぞれにメタデータを埋め込む動作と、
    前記複数のパーティション・ノードのそれぞれによって、前記1つ又は複数の属性について前記プロセスを検証する動作と、
    前記システムの前記プロセスを検証するために、前記複数のパーティション・ノードのそれぞれから受け取った結果データを集計する動作とを行わせ、前記1つ又は複数の属性についての前記プロセスの前記検証に前記結果データが関連付けられる、検証システム。
  10. 前記プロセッサが、前記システムの時間、論理、及び挙動のパスによって前記1つ又は複数の属性を表す、請求項9に記載の検証システム。
  11. 前記プロセッサが、前記1つ又は複数のコンテキスト・データを、前記プロセスのローカル及びグローバルな遷移、前記プロセスの1つ又は複数のフロー、前記プロセスの1つ又は複数のパス、前記プロセスに関連する決定的及び非決定的パラメータ、前記プロセスの反復、前記プロセスの事前条件及び事後条件、前記プロセスに関連する仮定アスペクト、並びに前記プロセスの影響のうち少なくとも1つに基づいて生成する、請求項9に記載の検証システム。
  12. 前記メタデータが前記パーティション・ノード及び前記パーティション・ノード間の依存関係に関する情報を含む、請求項9に記載の検証システム。
  13. 前記プロセッサが、前記依存関係を、演繹的推論と前記1つ又は複数の属性のコンテキスト情報とのうち少なくとも1つに基づいて特定する、請求項12に記載の検証システム。
  14. 前記1つ又は複数のパーティション・コンテキストが、前記検証システムによって自動的に生成されること、及び前記システムのユーザの入力に基づいて生成されることのうち少なくとも1つである、請求項9に記載の検証システム。
  15. 前記複数のパーティション・ノードのそれぞれがプロセッサ、メモリ、及びプロセス検証ユニットを含む、請求項9に記載の検証システム。
  16. 前記プロセス検証ユニットが前記1つ又は複数の属性を前記プロセスについて検証し、前記結果データを生成する、請求項15に記載の検証システム。
  17. 命令を保管して有する非一時的コンピュータ可読媒体であって、前記命令がプロセッサによって処理されると前記プロセッサに、
    プロセス及び前記プロセスに関連する1つ又は複数の属性を受け取る動作と、
    前記1つ又は複数の属性及び、前記プロセスに関連する1つ又は複数のコンテキスト・データに基づいて、1つ又は複数のパーティション・コンテキストを生成する動作と、
    前記1つ又は複数のパーティション・コンテキストに基づいて、前記プロセス及び前記1つ又は複数の属性を分散コンピューティング環境内の複数のパーティション・ノードに分散させる動作と、
    前記複数のパーティション・ノードのそれぞれにメタデータを埋め込む動作と、
    前記複数のパーティション・ノードのそれぞれによって、前記1つ又は複数の属性について前記プロセスを検証する動作と、
    システムの前記プロセスを検証するために、前記複数のパーティション・ノードのそれぞれから受け取った結果データを集計する動作とを行わせ、前記1つ又は複数の属性についての前記プロセスの前記検証に前記結果データが関連付けられる、媒体。
  18. 前記命令がさらに、前記プロセスのローカル及びグローバルな遷移、前記プロセスの1つ又は複数のフロー、前記プロセスの1つ又は複数のパス、前記プロセスに関連する決定的及び非決定的パラメータ、前記プロセスの反復、前記プロセスの事前条件及び事後条件、前記プロセスに関連する仮定アスペクト、並びに前記プロセスの影響のうち少なくとも1つに基づいて前記1つ又は複数のコンテキスト・データを生成する動作を前記プロセッサに行わせる、請求項17に記載の媒体。
  19. 前記命令がさらに、前記システムの時間、論理、及び挙動のパスによって前記1つ又は複数の属性を表す動作を前記プロセッサに行わせる、請求項17に記載の媒体。
  20. 前記命令がさらに、前記1つ又は複数のパーティション・コンテキストを自動的に生成する動作を前記プロセッサに行わせる、請求項17に記載の媒体。
JP2016112344A 2015-06-16 2016-06-06 分散コンピューティング環境でシステムのプロセスの検証を行うための方法 Expired - Fee Related JP6232470B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IN3000CH2015 2015-06-16
IN3000/CHE/2015 2015-06-16

Publications (2)

Publication Number Publication Date
JP2017010541A true JP2017010541A (ja) 2017-01-12
JP6232470B2 JP6232470B2 (ja) 2017-11-15

Family

ID=57761642

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016112344A Expired - Fee Related JP6232470B2 (ja) 2015-06-16 2016-06-06 分散コンピューティング環境でシステムのプロセスの検証を行うための方法

Country Status (1)

Country Link
JP (1) JP6232470B2 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012099111A (ja) * 2010-10-29 2012-05-24 Fujitsu Ltd 分散コンピューティング環境におけるソフトウェアの解析の効率的な並列化のためのノードの計算の初期化手法
JP2012234260A (ja) * 2011-04-28 2012-11-29 Hitachi Automotive Systems Ltd 車両制御シミュレーションシステム
JP2014522029A (ja) * 2011-07-22 2014-08-28 サムスン エレクトロニクス カンパニー リミテッド シミュレーション装置及びそのシミュレーション方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012099111A (ja) * 2010-10-29 2012-05-24 Fujitsu Ltd 分散コンピューティング環境におけるソフトウェアの解析の効率的な並列化のためのノードの計算の初期化手法
JP2012234260A (ja) * 2011-04-28 2012-11-29 Hitachi Automotive Systems Ltd 車両制御シミュレーションシステム
JP2014522029A (ja) * 2011-07-22 2014-08-28 サムスン エレクトロニクス カンパニー リミテッド シミュレーション装置及びそのシミュレーション方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
吉田 信平、他2名: "並列シミュレーションの高速化のためのリンク間トラヒック量にもとづくネットワークモデル分割法に関する検", 電子情報通信学会技術研究報告, vol. 103, no. 314, JPN6017020822, 12 September 2003 (2003-09-12), JP, pages 75 - 80, ISSN: 0003647598 *
小山 恭平、他5名: "情報制御システムのモデル検査における状態空間分割による探索手法の提案", レクチャーノート/ソフトウェア学38 ソフトウェア工学の基礎XIX, JPN6017018061, 31 December 2012 (2012-12-31), JP, pages 39 - 44, ISSN: 0003647599 *

Also Published As

Publication number Publication date
JP6232470B2 (ja) 2017-11-15

Similar Documents

Publication Publication Date Title
del Moral et al. A comparative study on consensus measures in group decision making
US11868242B1 (en) Method, apparatus, and computer program product for predictive API test suite selection
US10230614B2 (en) System and method for improving integration testing in a cloud computing environment
US9830255B2 (en) System and method for optimizing test suite comprising plurality of test cases
WO2020102278A1 (en) Automated web service and api build configuration framework
US20120311295A1 (en) System and method of optimization of in-memory data grid placement
US10545854B2 (en) Method and a system for automatically identifying violations in one or more test cases
US9589134B2 (en) Remediation of security vulnerabilities in computer software
US10656934B2 (en) Efficient software testing
US20230208882A1 (en) Policy - aware vulnerability mapping and attack planning
JP7007486B2 (ja) プロジェクトコンポーネントを識別する方法およびその再利用性検出システム
US11615868B2 (en) Systems and methods for automated edit check generation in clinical trial datasets
US20130035908A1 (en) Identifying invariant candidates based on proofs
US10325049B2 (en) Placement-driven generation of error detecting structures in integrated circuits
JP6232470B2 (ja) 分散コンピューティング環境でシステムのプロセスの検証を行うための方法
EP3208751A1 (en) Method and unit for building semantic rule for a semantic data
US20210097020A1 (en) Seamless data movement and metadata management in a hybrid cloud setting using a configurable micro services based architecture
US20220215013A1 (en) Validation and recommendation engine
US20190179974A1 (en) Equivalency verification for hierarchical references
US11206284B2 (en) Automated threat analysis of a system design
US11178180B2 (en) Risk analysis and access activity categorization across multiple data structures for use in network security mechanisms
US10235490B1 (en) Methods and systems for centering of pins during instance abutment
US10394995B1 (en) Methods and systems for schematic driven 2D chaining in an integrated circuit layout
US10176285B1 (en) System, method, and computer program product for property violation comprehension
US20170330090A1 (en) Method and a system for optimzing stability of a project

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170511

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170607

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170804

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: 20170926

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171023

R150 Certificate of patent or registration of utility model

Ref document number: 6232470

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees