(57)【要約】【課題】システム中の不具合を検出するためのシステムおよび方法を提供する。【解決手段】本方法は、一つ以上のシステム・コンポーネントに対する診断歴を維持するステップと、システム・コンポーネント間の動作状態および相関相互作用についてのシステム情報を受信するステップと、診断歴の分析を行うのに応じて、一つ以上のシステム・コンポーネントを検査すべきかどうかを判定するステップと、を含み、該分析は、診断歴が、特定のシステム・コンポーネントまたはコンポーネントの組み合わせがシステム中で検出された問題をもたらした疑いがあることを示し得る、何らかの情報を含んでいるかどうかを判定するために行われ、該診断歴は、前記一つ以上のコンポーネントが、問題が検出されたシステム以外のシステムに搭載されたときに、前記一つ以上のコンポーネントに対し行われた少なくとも一つの検査に基づいて維持される。【選択図】図２
2014532913.tif 000002
【特許請求の範囲】
【請求項１】
システム中の不具合を検出するため一つ以上のプロセッサ上で実行される方法であって、前記方法は、
一つ以上のシステム・コンポーネントに対する診断歴を維持するステップと、
システム・コンポーネント間の動作状態および相関相互作用についてのシステム情報を受信するステップと、
前記診断歴の分析を行うのに応じて、一つ以上のシステム・コンポーネントを検査すべきかどうかを判定するステップと、
を含み、
前記分析は、前記診断歴が、特定のシステム・コンポーネントまたはコンポーネントの組み合わせが前記システム中で検出された問題をもたらした疑いがあることを示し得る、何らかの情報を含んでいるかどうかを判定するために行われ、
前記診断歴は、前記一つ以上のコンポーネントが、前記問題が検出された前記システム以外のシステムに搭載されたときに、前記一つ以上のコンポーネントに対し行われた少なくとも一つの検査に基づいて維持される、
方法。
【請求項２】
前記診断歴は、第一システム中に存在するコンポーネントの組み合わせのテスト合格履歴についての情報を含み、前記診断歴が分析されて、前記第一システム中の一つ以上のコンポーネントと同じ一つ以上のコンポーネントを有する第二システム中のコンポーネントの組み合わせに対し実施することになる検査が決定される、請求項１に記載の方法。
【請求項３】
前記診断歴は、第一システム中に存在するコンポーネントの組み合わせのテスト合格履歴についての情報を含み、前記診断歴が分析されて、前記第一システム中の一つ以上のコンポーネントと類似の一つ以上のコンポーネントを有する第二システム中のコンポーネントの組み合わせに対し実施することになる検査が決定される、請求項１に記載の方法。
【請求項４】
前記診断歴は、第一システム中に存在するコンポーネントの組み合わせのテスト合格履歴についての情報を含み、前記診断歴が分析されて、前記第一システム中の一つ以上のコンポーネントと置き換え可能な一つ以上のコンポーネントを有する第二システム中のコンポーネントの組み合わせに対し実施することになる検査が決定される、請求項１に記載の方法。
【請求項５】
疑いのある一つ以上のシステム・コンポーネントまたはコンポーネントの組み合わせのリストを生成するステップをさらに含む、請求項１に記載の方法。
【請求項６】
前記検出された問題をもたらした疑いがより強いと見なされる前記システム・コンポーネントまたはコンポーネントの組み合わせが、前記リスト中に、より目立つように表示される、請求項５に記載の方法。
【請求項７】
システム・コンポーネントは、前記診断歴が、前記コンポーネントが他方のシステムに搭載されたとき検査されなかったことを示している場合、より疑いが強いと見なされる、請求項６に記載の方法。
【請求項８】
システム・コンポーネントの組み合わせは、前記診断歴が、前記コンポーネントの組み合わせが他方のシステムに搭載されたとき一緒にテストされなかったことを示している場合、より疑いが強いと見なされる、請求項６に記載の方法。
【請求項９】
他方のシステムは供給者のところのテスト・システムを含み、前記供給者は、前記一つ以上のシステム・コンポーネントを製造し、出荷し、あるいは、別途にそれらの相互の適切な機能性について関心を払っている、請求項１に記載の方法。
【請求項１０】
前記診断歴は、前記システム中のコンポーネントの組み合わせが複数の他のシステム中で一緒にテスト合格したかどうかを示す、情報の集録を含む、請求項１に記載の方法。
【請求項１１】
請求項１〜１０のいずれかに記載の方法の全ステップを遂行するようになされた手段を含むシステム。
【請求項１２】
コンピュータ・プログラムがコンピュータ・システム上で実行されたとき、請求項１〜１１のいずれかに記載の方法の全ステップを遂行するための命令を含む、前記コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
著作権および商標表示
本特許明細書の開示の一部は著作権保護の下にある題材を含み得る。所有者は、米国特許商標庁の特許出願ファイルまたは記録に掲載されている、本特許明細書または特許開示のいずれによる転写についても異議を唱えないが、それ以外のものはどのようなものに対しても全著作権を留保する。
【０００２】
本明細書で参照されるいくつかの商標は、その出願人、譲受人あるいは出願人または譲受人と提携しているまたは非提携の第三者のコモン・ロー商標または登録商標であり得る。これらの商標の使用は、事例として本開示の補強を提供するためのものであって、開示された主題の範囲を、かかる商標に関連する題材に排他的に限定すると解釈してはならない。
【０００３】
技術分野
本開示の主題は、一般にシステム中の不具合を判定することに関し、さらに具体的には、同じまたは類似のシステム・コンポーネントの診断歴の分析に基づいて、システム中の不具合を効率的に判定するためのシステムおよび方法に関する。
【背景技術】
【０００４】
数多くのコンポーネントを有する複雑なシステムでは、個別にモニタまたはテストしたときにほとんどのシステム・コンポーネントに不具合または異常な動作が見られない場合にあっても、そのシステムが全体としてパフォーマンスの劣化を被ることがある。特に大規模なコンピューティング環境では、前述の問題を解決するのが非常に困難且つ高コスト、または事実上実行不可能であり得る。
【０００５】
例えば、オンライン・サービス・プロバイダが、異なる型のストレージ・サーバと通信している各種のサーバを含み、これらストレージ・サーバが同様に多くのストレージ・スイッチ、コントローラなどと相互作用しているインフラストラクチャを有することがある。個々のコンポーネントは正常に見えるが、システム全体としてうまく機能していない場合、複数のコンポーネントの間の相互作用を徹底的にテストする必要があることがある。
【０００６】
一つ以上のコンポーネントの供給者が、コンポーネントが顧客のシステムに搭載される前に、特定のシステム・コンポーネント間の相互作用を前もってテストしていることがある。例えば、新規サーバを発売する前に、サーバの供給者が、各種のインターフェース・カード、ネットワーク・スイッチ、ストレージ・デバイス、他のサーバなどを備えた環境で、当該サーバの動作をテストしていることがある。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
顧客が、顧客の環境に組み込まれたコンポーネントの一つに関し問題を有する場合、たとえその顧客の環境が供給者の環境と完全に一致していなくても、供給者のテスト記録にアクセスできるということは有益であろう。供給者のテスト記録は、顧客の環境における問題を診断するのに用いることが可能な情報を含み得る。
【課題を解決するための手段】
【０００８】
要約のため、いくつかの態様、利点、および新規な特徴を本明細書に記述している。いずれか一つの特定の実施形態によって、かかる利点の全てが達成できるわけではない。しかして、本開示の主題は、本明細書で教示または示唆することのあるように、全ての利点は実現はしないが、一つの利点またはいくつかの利点を実現または最適化するような形で具現化または遂行することができる。
【０００９】
一つの実施形態によれば、システム中の不具合を検出する方法は、一つ以上のシステム・コンポーネントに対する診断歴を維持するステップと、システム・コンポーネント間の動作状態および相関相互作用についてのシステム情報を受信するステップと、診断歴の分析を行うのに応じて、一つ以上のシステム・コンポーネントを検査すべきかどうかを判定するステップと、を含み、該分析は、診断歴が、特定のシステム・コンポーネントまたはコンポーネントの組み合わせがシステム中で検出された問題をもたらした疑いがあることを示し得る、何らかの情報を含んでいるかどうかを判定するために行われ、該診断歴は、前記一つ以上のコンポーネントが、問題が検出されたシステム以外のシステムに搭載されたときに、前記一つ以上のコンポーネントに対し行われた少なくとも一つの検査に基づいて維持される。
【００１０】
一つ以上の実施形態によって、一つ以上の論理ユニットを含むシステムが提供される。一つ以上の論理ユニットは、上記で開示された方法に関連付けられた機能またはオペレーションを実行するよう構成される。さらに別の実施形態において、コンピュータ可読プログラムを有するコンピュータ可読ストレージ媒体を含むコンピュータ・プログラム製品が提供される。コンピュータ可読プログラムは、コンピュータ上で実行されたとき、そのコンピュータに、上で開示された方法に関連付けられた機能またはオペレーションを実行させる。一つの実施形態において、上記で開示された方法によって実行される機能およびオペレーションに関連して、ネットワークを介して顧客にサービスを提供する方法が提供される。
【００１１】
上で開示された実施形態の一つ以上に特定の代替手段を加え、添付図面を参照しながら、以下にさらに詳細に提示する。但し、本開示の主題は、開示されたどの特定の実施形態にも限定されるものではない。
【００１２】
以下に提示する本開示の実施形態は、添付の図面中の図を参照することによってよりよく理解することができよう。
【図面の簡単な説明】
【００１３】
【図１】一つ以上の実施形態による、２つの別個のコンピューティング・システム上に同じまたは類似のコンポーネントが展開されている、例示的なオペレーティング環境を示す。
【図２】一つの実施形態による、あるシステム中の不具合に対する予測診断を提供する方法の例示的なフロー図である。
【図３】一つ以上の実施形態による、本開示のシステムおよび方法が動作可能なハードウェア環境のブロック図である。
【図４】一つ以上の実施形態による、本開示のシステムおよび方法が動作可能なソフトウェア環境のブロック図である。
【発明を実施するための形態】
【００１４】
一つ以上の実施形態によって、異なる図中において同一の番号で参照された機能、エレメント、および態様は、同一、等価、または類似の機能、エレメント、および態様を表す。
【００１５】
以下において、さまざまな実施形態の徹底した説明を提供するため、多くの具体的な詳細が述べられる。ある特定の実施形態は、これらの具体的な詳細なくして、あるいは詳細の何らかのバリエーションを使って実践することができる。場合によって、他の態様を不明瞭にしないように、ある機能についてはさほど詳細には説明しない。エレメントまたは機能に関する詳細さのレベルが、一つの機能に他を凌駕する新規性または重要性を付与すると解釈すべきではない。
【００１６】
図１を参照すると、例示的なオペレーティング環境が示され、その中では、同じまたは類似のコンポーネント（例えば、Ａ１、Ａ２、Ｂ１、Ｃ１、Ｄ２）が２つの別個のコンピューティング・システム（例えば、コンピューティング・システム１１０および１２０）上に展開されている。図示のように、各システム中のコンポーネントは、例えばネットワーク１３０を介して、共用のストレージ・デバイス１４０と通信している。これらコンポーネントは、動作可能なハードウェアまたはソフトウェア・コンポーネントであり得る。一つの例示的なシナリオにおいて、コンポーネントＡ１はＡ２にアップグレード可能なものとすることができる。
【００１７】
図２を参照すると、一つの実施形態により、システム・コンポーネントおよび前記コンポーネント間の相互作用についての知識を用いて、各種コンポーネントおよび各種コンポーネント間の関係についての情報を含むデータベースを構築することが可能である。（例えば、スケジュールされたメンテナンスの一部として、またはシステム中の不具合に起因して）システムがテストされたとき、テストされたシステム全体に対する、あるいはその一つ以上のコンポーネントに対する診断歴が維持される（Ｓ２１０）。
【００１８】
ある実施形態において、一つ以上のシステム・コンポーネントに行われるテストが、異なった施設で、あるいはそれらコンポーネントが現在の環境と違ったコンピューティング環境に組み込まれたときに行われていることがある。かかる状況の一例として、あるコンポーネントが、現在のコンピューティング環境（例えば、コンピューティング・システム１１０）ではなく、以前に、第一コンピューティング環境（例えば、一つ以上のコンピューティング・システム１２０）においてコンポーネント製造者によってテストされている場合がある。かかる場合において、前記コンポーネントが第一環境で特定の他のコンポーネントと組み合わせされてテストされたかどうか示すテスト記録が利用可能であり得る。
【００１９】
この診断歴は、第一環境または現在の環境中のシステム、および第一環境または現在の環境に含まれる個別のコンポーネントの状態についての情報を含み得る。さらに、メンテナンスまたはテストが行われたときのコンポーネントの組み合わせの間の相互動作関係も記録されていてよい。第一環境でテストが行われたとき不具合が検出されていれば、診断歴には、その不具合の理由、原因となったコンポーネント群、および関与するコンポーネント間の関係が反映されていてよい。検出された不具合またはシステムの問題が解決されていれば、診断歴には、同様に検出された問題に対する解決法およびその根拠も反映されていてよい。
【００２０】
図１を参照すると、コンピューティング・システム１２０は、テスト環境中にあり得て、コンポーネントＡ２は、ネットワーク１３０中のいくつかの他のコンポーネント（例えば、Ｂ１、Ｃ１、Ｄ２および共用のストレージ・デバイス１４０）に対しテストされた。さまざまなコンポーネントまたはコンポーネントの組み合わせに対するテスト記録を収集し、コンピューティング・システム１２０に対する診断歴に含めることができる。診断歴には、コンポーネントＡ２が、コンポーネントＢ１、Ｃ１、およびＤ２と組み合わされてテストされたとき、一つ以上のテストに合格したことを示すことができる。診断歴には、上記のコンポーネントの組み合わせ群を一緒にテストした際に何らかの問題が観察されたことをさらに示すことも可能である。実装にもよるが、診断歴には、問題の源泉または原因に関し何も述べなくても、あるいはその詳細を述べてもよい。
【００２１】
図１において、コンピューティング・システム１１０は別の環境を表しており、その中では、コンポーネントＡ１が、ネットワーク１３０中の他のコンポーネントＢ１、Ｃ１、Ｄ２、および共用ストレージ・デバイス１４０と相互作用している。コンピューティング・システム１１０と１２０とは、同一、同等、または置き換え可能なサーバ・マシンとすることができる。コンポーネントＡ１はコンピューティング・システム１１０と相互作用し、コンポーネントＡ２はコンピューティング・システム１２０と相互作用している。コンピューティング・システム１２０におけるテスト環境に対する診断歴には、コンポーネントＡ１がコンポーネントＡ２にアップグレードされたとき、共用ストレージ・デバイス１４０に提出されたストレージ要求の処理が容認可能な閾値を超えて遅延したなどといった、システム・パフォーマンスが劣化したことを反映した詳細事項を含めることができる。
【００２２】
いくつかの実施形態において、診断歴には、ストレージ・パフォーマンスの劣化が、例えば、コンポーネントＡ２の機能的性質と共用ストレージ・デバイス１４０の作動上の完全さとは無関係だと考えられていたにもかかわらず、アップグレードされたコンポーネントＡ２の搭載後にシステム・コンポーネントに（例えば、コンピューティング・システム１２０に）追加のメモリを加えたとき解決されたことをさらに示すことができよう。同様に、さらなる問題が生じるのに応じ、他のコンポーネントまたはコンポーネントの組み合わせに対する他の診断情報を維持することができる。
【００２３】
図１および図２を参照すると、コンピューティング・システム１１０はパフォーマンス問題を被ることがあり、だが、どの特定のシステム・コンポーネントが異常なのかを示す情報が容易に得られないことがある。かかる状況において、以前にテストされた一つ以上のコンポーネントに対する診断歴はトラブルシューティングにために役立つであろう。実装によっては、診断歴には、以前のテスト環境（例えば、コンピューティング・システム１２０）もしくは現在の環境（例えばコンピューティング・システム１１０）またはその両方においてコンポーネントまたはコンポーネントの組み合わせに適用されたテストに対し収集された情報を含めることができる。
【００２４】
一つの実施形態において、診断歴に記録されている情報が有用かどうかを判断するために、コンピューティング・システム１１０中のコンポーネントおよび前記コンポーネント間の関連イベントについてのデータを、記録された診断歴にアクセス可能な分析ツール（図示せず）に入力することができる（Ｓ２２０）。さらに、この入力情報には、コンピューティング・システム１１０またはそのコンポーネントの状態の情報、コンピューティング・システム１１０に搭載されたコンポーネントの型、種類、またはバージョンについての詳細、あるいは、分析ツールにとって有用となり得る他の任意の情報を含めることも可能である。
【００２５】
前述の例を続けて、コンピューティング・システム１１０において、コンポーネントＡ１がコンポーネントＡ２にアップデートされたと仮定しよう。しかして、コンポーネントＢ１、Ｃ１、およびＤ２がコンピューティング・システム１１０に搭載されていることの提示に加え、この情報の分析ツールへの入力によって、コンピューティング・システム１１０上にコンポーネントＡ１のアップデート・バージョン（すなわち、コンポーネントＡ２）が現在搭載されていることが提示されることになる。かくして、分析ツールが、この入力情報に基づいて、下でさらに詳細に示すように、コンピューティング・システム１１０に対するモデルを生成することが可能になり得る。
【００２６】
実装によっては、分析ツールは、記録された診断歴のデータを用いて該モデルを分析し、コンピューティング・システム１１０に現在含まれているコンポーネントとコンピューティング・システム１２０のコンポーネントとの間にマッチが見られるかどうかを判定することができる。分析ツールは、どのコンポーネントまたはコンポーネントの組み合わせがテストされているかを診断歴からさらに判定することができる（Ｓ２３０）。一つの実施形態において、このテストが、コンポーネントのｎ−ｗｉｓｅの組み合わせを分析することによって行われていたことがあり得る。
【００２７】
図２を参照すると、分析ツールが、診断歴から、コンピューティング・システム１１０中の特定のシステム・コンポーネントまたはコンポーネントの組み合わせが過去にテストされていなかったと判定した場合は、予測診断が生成される（Ｓ２４０）。この予測診断は、提案されるコンポーネントまたはコンポーネントの組み合わせのリストの形を取り、該リストは、テストされている特定のコンポーネントもしくはコンポーネントの組み合わせ、またはテストされていない特定のコンポーネントもしくはコンポーネントの組み合わせ、あるいはその両方を示す。言い換えれば、予測診断は、技術者またはシステム管理者を、システムに関連する問題を検出するのによりつながるようなコンポーネントの組み合わせのテストを検討する方向に向かわせるものである。
【００２８】
上記の例示的なシナリオにおいて、分析ツールは、以前に（例えば、コンピューティング・システム１２０に搭載されたコンポーネントに対しテストが行われた際に）コンポーネントの一つ以上の組み合わせがテストされたことを見出すことが可能である。このように、分析ツールはテスト済みの組み合わせを示すリストを生成することができ、技術者は、コンポーネントの前記組み合わせが以前にテストに合格しているので、この組み合わせが問題を引き起こした可能性は極めて低いと判定することが可能になる。これに加えてまたはこれに換えて、分析ツールは、テスト済みの組み合わせを除いた新規組み合わせのリストを生成し、技術者に、代わりに一連の未テストの組み合わせをテストすることに集中するよう提案することができる。
【００２９】
また、いくつかの実施形態において、診断歴は、アップグレードされたコンポーネントＡ２が、コンピューティング・システム１２０で一つ以上のコンポーネントと組み合わせされてテストされたとき、共用ストレージ・デバイス１４０とコンポーネントＡ２とが相互作用した際に検出された問題の源泉であったことを示すことができる。生成された予測診断は、例えば、コンピューティング・システム１１０とアップグレード・コンポーネントＡ２との間の相互作用に疑いがあり、それをテストすべきであるといった指摘を提示することも可能である。
【００３０】
さらにまだ、実施が必要となり得る一連の処置についての提案を提供することができる（例えば、分析ツールは、コンピューティング・システム１２０にメモリのアップグレードが適用された際に同様な問題が是正されたので、コンピューティング・システム１１０でも同じ処置を取ることを提案することが可能である）。診断歴がうまく発展されれば、分析ツールは、各種のソリューションを提案することでき、あるいは、さらなるコンポーネントまたはコンポーネントの組み合わせに疑いがあり得、従ってテストが必要となり得ることをさらに指摘することができる。実装によっては、生成されたリストを、特定の提案（例えば、コンポーネントの組み合わせ）がリスト中で多かれ少なかれ目立って記載されるようにするなど論理的な順序にソートすることが可能である。
【００３１】
分析ツールは、テストされているシステム中のあるコンポーネントが、診断歴中の以前にテスト済みのコンポーネントと同等、置き換え可能、または類似であることを認識するよう構成することができる。例えば、図１のコンピューティング・システム１１０を参照し、Ａ１がまだＡ２にアップグレードされていないと仮定してみよう。この場合、分析ツールは、Ａ１がＡ２と置き換え可能、同等、または類似であると判定することができよう。診断歴が、例えば、｛Ａ２，Ｂ１｝、｛Ａ２，Ｃ１｝、｛Ａ２，Ｄ２｝、｛Ｄ２，Ｃ１｝および｛Ｂ１，Ｃ１｝を含むコンポーネントの組み合わせが、コンピューティング・システム１２０で以前にテストされていたことを示している場合、分析ツールは、コンピューティング・システム１１０中の問題検出を試みる際に、｛Ａ１，Ｂ１｝、｛Ａ１，Ｃ１｝、｛Ａ１，Ｄ２｝の組み合わせを除外するか、その順位付けを下げることが可能である。
【００３２】
さらに、診断歴が、Ａ２またはＣ１と他のコンポーネントとのほとんどの組み合わせが以前のテストに合格していることを示唆している場合、分析ツールは、Ｂ１またはＤ２と他のコンポーネントとの組み合わせに向けられたテストを提案することがでよう。一つの実施形態において、適切な機能性の履歴を有することが診断歴に反映されているコンポーネントまたはコンポーネントの組み合わせ、あるいは前記コンポーネントと置き換え可能なコンポーネントは、スキップするかあるいは優先順位を下げ、もっと問題のあるコンポーネントまたは組み合わせを最初に検討するようにすることができる。同じ論理によって、問題のある履歴を有するコンポーネントまたは組み合わせは、より高順位の位置付け、色づけ、または表現方法でリストし、それらをより早期に検討し、見極め、またはテストすることができよう。
【００３３】
このように、診断歴の存在するコンポーネントまたはコンポーネントの組み合わせに対して、技術者は、システムに関連する問題を解決するために、関係する履歴を使って、どのようなテストまたは検査を行う必要があるかを判定することが可能である。問題のある診断歴を有するかまたは診断歴の欠如したコンポーネントまたはコンポーネントの組み合わせに対して、技術者は、まず、そういったコンポーネントを試験または検査するために時間を使うことができる。また、前述と同様に、技術者は診断歴を用いて、過去に問題があったことが判明したコンポーネントまたは組み合わせと類似のコンポーネント、または同じカテゴリ内のコンポーネントをテストすることもできよう。
【００３４】
一つの実施形態において、ローカルのサイトまたは単独のシステムで収集された診断歴は、同じまたは類似のアーキテクチャまたはコンポーネント相互作用を有し得る、他のサイトから集められた診断歴と併せてプールすることが可能である。これらプールされたデータを用いて、例えば、共有診断歴を含む統合（例えば、グローバルな）データベースを生成することができ、これは、参加するシステムによって、例えば、新しい問題、新しい解決策、新しい予測診断、またはシステム・コンポーネント間の新しい関連性および相互動作が発見された際に提供されるフィードバックに基づいて成長を続けることが可能である。
【００３５】
また、守秘条件および規準を順守しながら、このデータベースをマイニングし、サービス・プロバイダまたは顧客に対しプロフィールを提供することができる。このプロフィールは、例えば、顧客に有用または有益となり得る新規のサービスまたは製品を提供し、あるいは関連する解決策またはシステム・アップグレードについてのアップデートを送信するなど、さまざまな目的のために用いることが可能である。また、このプロフィール情報は、目的の自動アップデート、宣伝提供、その他など、他の有益なサービスを提供するために活用することができる。
【００３６】
前述のような診断ツールまたはサービスの使用は、システム・レベルの問題を検出するためハードウェアを取り扱う平均コストを低減するので、システム・インテグレータには有益である。また、前述のようなサービスの提供は、システム・インテグレータに対して製品をより魅力のあるものにするので、これらのサービスはコンポーネント供給者にも有益である。さらに、供給者は、上記のサービスを提供することによって、集合された診断歴を用い顧客の構成およびテスト・スイートついて知ることができる。顧客の構成についての知識は、マーケティングおよびプラニングのために貴重である。
【００３７】
一つの実施形態において、収集された情報を活用し、顧客の要求をより良く満たすため、顧客の構成またはテスト・モデルをどのように発展または調整するかを判断することができる。一つの実施形態では、サービス申し込みまたは契約によって前述の診断ツールまたはサービスを提供することが可能で、顧客のシステム構成および随意的に顧客のシステムに関連する問題の種類が、ネットワークを介してサービス・プロバイダに連絡され、これに応じ、サービス・プロバイダが、顧客のシステムをどのように最善にテストまたは診断するかを提案して応答する。
【００３８】
本明細書書において、「ある実施形態」、「一つの実施形態」、「一つ以上の実施形態」などへの言及は、述べられている特定のエレメント、機能、構造体、または特性が、本開示の主題の少なくとも一つの実施形態に含まれることを意味する。本明細書におけるかかる表現の出現は、同一の実施形態に言及していると特定的に解釈すべきでなく、かかる表現が、説明対象の機能またはエレメントに関して、相互に排他的な実施形態に言及していると解釈すべきでもない。
【００３９】
種々の実施形態において、請求対象の主題は、ハードウェアおよびソフトウェア両方の組み合わせとして、あるいは全体がハードウェアの形態または全体がソフトウェアの形態で実装することができる。さらに、本明細書で開示されたコンピューティング・システムおよびプログラム・ソフトウェアは、本明細書で意図された結果を達成する方法およびプロセスを実施するため実行されるハードウェア・コンポーネントおよび論理コードに関連して提供され得る、制御されたコンピューティング環境を構成することができる。前記方法およびプロセスは、汎用コンピューティング・システムまたはマシンで実行されたとき、該汎用マシンを特定用途のマシンに転換する。
【００４０】
図３および図４を参照すると、ある例示的な実施形態によるコンピューティング・システム環境は、ハードウェア環境１１１０およびソフトウェア環境１１２０で構成することができる。ハードウェア環境１１１０には、ソフトウェア環境１１２０のコンポーネントに対し実行環境を提供する、論理ユニット、回路、または他の機構および装置を含めることができる。同様に、ソフトウェア環境１１２０は、ハードウェア環境１１１０のさまざまなコンポーネントに対し、基底となるオペレーション設定および構成を含む、実行命令を提供することができる。
【００４１】
図３を参照すると、本明細書で開示されたアプリケーション・ソフトウェアおよび論理コードは、例示的なハードウェア環境１１１０によって代表される一つ以上のコンピューティング・システム上で実行されるマシン可読コードの形で実装することが可能である。図示のように、ハードウェア環境１１１０には、システム・バス１１００を介して一つ以上のストレージ・エレメントに連結されたプロセッサ１１０１を含めることができる。これらのストレージ・エレメントは、例えば、ローカル・メモリ１１０２、ストレージ媒体１１０６、キャッシュ・メモリ１１０４、あるいは他のマシン可用またはコンピュータ可読の媒体を含み得る。本開示の文脈の中で、マシン可用またはコンピュータ可読のストレージ媒体は、プログラム・コードを包含、格納、通信、伝播、または転送するため使用可能な任意の記録可能な品目を含み得る。
【００４２】
コンピュータ可読ストレージ媒体は、電子的、磁気的、光学的、電磁気的、赤外的、または半導体の、媒体、システム、装置、またはデバイスとすることができる。また、コンピュータ可読ストレージ媒体は、その実装が合法的な対象と見なされる程度において、制限なく伝播媒体に実装することも可能である。コンピュータ可読ストレージ媒体の例には、半導体または固体メモリ、磁気テープ、リムーバブル・コンピュータ・ディスケット、ランダム・アクセス・メモリ（ＲＡＭ：ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、読み取り専用メモリ（ＲＯＭ：ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、剛体磁気ディスク、光ディスク、または適切な場合、搬送波を含めることができる。光ディスクの現在の例には、コンパクト・ディスク、読み取り専用メモリ（ＣＤ−ＲＯＭ：ｃｏｍｐａｃｔ  ｄｉｓｃ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、読み取り／書き込みコンパクト・ディスク（ＣＤ−Ｒ／Ｗ：ｃｏｍｐａｃｔ  ｄｉｓｋ  ｒｅａｄ／ｗｒｉｔｅ）、デジタル・ビデオ・ディスク（ＤＶＤ：ｄｉｇｉｔａｌ  ｖｉｄｅｏ  ｄｉｓｋ）、高精細ビデオ・ディスク（ＨＤ−ＤＶＤ：ｈｉｇｈ  ｄｅｆｉｎｉｔｉｏｎ  ｖｉｄｅｏｄｉｓｋ）またはブルーレイ（Ｒ）ディスクが含まれる。
【００４３】
一つの実施形態において、プロセッサ１１０１は、ストレージ媒体１１０６からローカル・メモリ１１０２に実行コードをロードする。キャッシュ・メモリ１１０４は、実行のためコードがロードされる回数を低減するのを助ける一時的なストレージを提供することによって処理時間を最適化する。一つ以上のユーザ・インタフェース・デバイス１１０５（例えば、キーボード、ポインティング・デバイスなど）およびディスプレイ画面１１０７は、直接、もしくは、例えば介在するＩ／Ｏコントローラ１１０３を介して、ハードウェア環境１１１０中の他のエレメントに連結することができる。ハードウェア環境１１１０が、介在するプライベートまたはパブリック・ネットワーク（例えばインターネット）を介して、ローカルにまたは遠隔に所在するコンピューティング・システム、プリンタ、およびストレージ・デバイスと通信することを可能にするため、ネットワーク・アダプタなどの通信インターフェース・ユニット１１０８を設けることができる。有線または無線モデムおよびイーサネット（Ｒ）カードは、ネットワーク・アダプタの種類のほんの数例である。
【００４４】
なお、特定の実装において、ハードウェア環境１１１０は、上記のコンポーネントの一部または全部を含まなくてもよく、または追加の機能または効用を設けるための追加のコンポーネントを含んでもよい。意図された用途及び構成に応じて、ハードウェア環境１１１０は、デスクトップまたはラップトップ・コンピュータなどのマシン、もしくは、セットトップ・ボックス、携帯情報端末（ＰＤＡ：ｐｅｒｓｏｎａｌ  ｄｉｇｉｔａｌ  ａｓｓｉｓｔａｎｔ）、パーソナル・メディア・プレイヤ、移動通信ユニット（例えば、携帯電話）、あるいは情報処理またはデータ・ストレージ機能を有する他の類似のハードウェア・プラットフォームなど、内蔵されたシステム中に随意的に具現化された他のコンピューティング・デバイスであり得る。
【００４５】
いくつかの実施形態において、通信インターフェース１１０８は、プログラム・コードを含めさまざまな種類の情報を表すアナログまたはデジタル・データ・ストリームを搬送する、デジタル、電子、電磁、または光信号を送信および受信することによって、一つ以上のコンピューティング・システムとの通信手段を提供するデータ通信ポートの機能を果たす。この通信は、ローカルまたは遠隔ネットワーク経由で、あるいは、以下に限らないが搬送波による伝播を含めて、エアまたは他の媒体を介する送信を通して成立させることができる。
【００４６】
本明細書での提示において、図示のハードウェア・エレメント上で実行される、本開示のソフトウェア・エレメントは、例示目的の論理的または機能的関係によって定義されている。但し、前記例示的なソフトウェア・エレメントを通して実装された各方法は、例えば、構成されプログラムされたプロセッサ、特定用途向け集積回路（ＡＳＩＣ：ａｐｐｌｉｃａｔｉｏｎ  ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ：ｆｉｅｌｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ）およびデジタル信号プロセッサ（ＤＳＰ：ｄｉｇｉｔａｌ  ｓｉｇｎａｌ  ｐｒｏｃｅｓｓｏｒ）を使って、前記ハードウェア・エレメント中にエンコードすることも可能なことに留意すべきである。
【００４７】
図４を参照すると、ソフトウェア環境１１２０は、一般に、一つ以上のハードウェア環境１１１０上で実行される、システム・ソフトウェア１１２１およびアプリケーション・ソフトウェア１１２２の２つの分類に分けることが可能である。一つの実施形態において、本明細書で開示する方法およびプロセスは、システム・ソフトウェア１１２１、アプリケーション・ソフトウェア１１２２、またそれらの組み合わせとして実装することができる。システム・ソフトウェア１１２１には、オペレーティング・システム（ＯＳ：ｏｐｅｒａｔｉｎｇ  ｓｙｓｔｅｍ）または情報管理システムなどの制御プログラムを含めることができ、これらは、ハードウェア環境１１１０中の一つ以上のプロセッサ１１０１（例えば、マイクロコントローラ）にどのように機能し情報を処理するかを命令する。アプリケーション・ソフトウェア１１２２は、以下に限らないが、プログラム・コード、データ構造体、ファームウェア、常駐ソフトウェア、マイクロコード、または、プロセッサ１１０１によって読み取り、分析、または実行が可能な任意の他の形の情報またはルーティンを含み得る。
【００４８】
言い換えれば、アプリケーション・ソフトウェア１１２２は、マシン、コンピュータ、または任意の命令実行システムが使用するためのまたはこれらに関連するプログラム・コードを提供する、マシン可用またはコンピュータ可読ストレージ媒体の形で、コンピュータ・プログラム製品に組み込まれたプログラム・コードとして実装することができる。さらに、アプリケーション・ソフトウェア１１２２は、ストレージ媒体１１０６からローカル・メモリ１１０２の中にロードされた後、システム・ソフトウェア１１２１上で実行される一つ以上のコンピュータ・プログラムを含み得る。クライアント−サーバ・アーキテクチャにおいて、アプリケーション・ソフトウェア１１２２には、クライアント・ソフトウェアおよびサーバ・ソフトウェアを含めることが可能である。例えば、一つの実施形態において、クライアント・ソフトウェアは、サーバ・コンピューティング・システムとは異なった別個のクライアント・コンピューティング・システム上で実行することができ、サーバ・コンピューティング・システム上ではサーバ・ソフトウェアが実行される。
【００４９】
また、ソフトウェア環境１１２０には、ローカルまたは遠隔のコンピューティング・ネットワークを介して利用可能なデータにアクセスするための、ブラウザ・ソフトウェア１１２６を含めることが可能である。さらに、ソフトウェア環境１１２０には、ユーザのコマンドおよびデータを受信するためのユーザ・インタフェース１１２４（例えば、グラフィカル・ユーザ・インタフェース（ＧＵＩ：ｇｒａｐｈｉｃａｌ  ｕｓｅｒ  ｉｎｔｅｒｆａｃｅ）を含めることができる。なお、繰り返すが、上記のハードウェアおよびソフトウェアのアーキテクチャおよび環境は、例示を目的としたものである。しかして、一つ以上の実施形態は、任意の種類のシステム・アーキテクチャ、機能的または論理的プラットフォーム、またはプロセシング環境上に実装することが可能である。
【００５０】
また、論理コード、プログラム、モジュール、プロセス、方法、および各方法のそれぞれのプロセスが実施される順序も単に例示的なものであることを理解すべきである。実装によっては、プロセスまたはいずれかの下層サブプロセス、および方法は、本開示に別途に示されているのでなければ、任意の順序でまたは同時に実施することが可能である。さらに、特段の記載がない限り、本開示の文脈内での論理コードの定義は、いかなる特定のプログラミング言語に関連付けも限定もされず、分散型、非分散型、単一または多重処理環境において一つ以上のプロセッサによって実行可能な一つ以上のモジュールを含み得る。
【００５１】
当業者には当然のことながら、ソフトウェア実施形態は、ファームウェア、常駐ソフトウェア、マイクロコードなどを含み得る。ソフトウェアまたはハードウェアあるいはソフトウェアとハードウェアとを組み合わせた態様を含む特定のコンポーネントは、本明細書では一般に「回路」、「モジュール」、または「システム」と呼ばれる。さらに、本開示の主題は、コンピュータ可読プログラム・コードが中に具現化されている一つ以上のコンピュータ可読ストレージ媒体（群）中に具体化されたコンピュータ・プログラム製品として実装することが可能である。一つ以上のコンピュータ可読ストレージ媒体（群）の任意の組み合わせを用いることができる。コンピュータ可読ストレージ媒体は、コンピュータ可読信号媒体、またはコンピュータ可読ストレージ媒体であり得る。コンピュータ可読ストレージ媒体は、例えば、以下に限らないが、電子的、磁気的、光学的、電磁気的、赤外的、または半導体の、システム、装置、もしくはデバイス、あるいはこれらの任意の適切な組み合わせとすることができる。
【００５２】
本文書の文脈において、コンピュータ可読ストレージ媒体は、命令実行システム、装置、またはデバイスによってあるいはこれらに関連させて使用するためのプログラムを、包含または格納できる任意の有形媒体であり得る。コンピュータ可読信号媒体には、例えばベースバンド中にまたは搬送波の一部として具現化されたコンピュータ可読プログラム・コードを有する、伝播データ信号を含めることができる。かかる伝播信号は、以下に限らないが、電磁気的、光学的、またはこれらの任意の適切な組み合わせを含め、さまざまな形態の任意の形を取ることができる。コンピュータ可読信号媒体は、コンピュータ可読ストレージ媒体ではないが、命令実行システム、装置、またはデバイスによってまたはこれらに関連させて使用するためのプログラムを通信、伝播、または伝送が可能な任意のコンピュータ可読媒体であり得る。
【００５３】
コンピュータ可読ストレージ媒体上に具現化されたプログラム・コードは、以下に限らないが、無線、有線、光ファイバ・ケーブル、ＲＦなど、または前述の任意の適した組み合わせを含め、任意の適切な媒体を用いて送信することができる。開示されたオペレーションを実行するためのコンピュータ・プログラム・コードは、Ｊａｖａ（Ｒ）、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋などのオブジェクト指向プログラミング言語、および、“Ｃ”プログラミング言語または類似のプログラミング言語などの従来式手続き型プログラミング言語を含め、一つ以上のプログラミング言語の任意の組み合わせで記述することができる。
【００５４】
このプログラム・コードは、スタンドアロン・ソフトウェア・パッケージとしてユーザのコンピュータで専ら実行することも、ユーザのコンピュータで部分的に実行することもでき、一部をユーザのコンピュータで一部を遠隔コンピュータで実行することもでき、あるいは遠隔のコンピュータまたはサーバで専ら実行することもできる。後者の場合は、ローカル・エリア・ネットワーク（ＬＡＮ：ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）または広域ネットワーク（ＷＡＮ：ｗｉｄｅａｒｅａ ｎｅｔｗｏｒｋ）を含む任意の種類のネットワークを介して、遠隔コンピュータをユーザのコンピュータに接続することもでき、あるいは（例えばインターネット・サービス・プロバイダを使いインターネットを介し）外部のコンピュータへの接続を行うこともできる。
【００５５】
特定の実施形態は、実施形態による方法、装置（システム）およびコンピュータ・プログラム製品のフローチャート図またはブロック図を参照しながら、開示されている。当然のことながら、フローチャート図またはブロック図の各ブロック、および、フローチャート図もしくはブロック図またはその両方中のブロックの組み合わせは、コンピュータ・プログラム命令によって実装することが可能である。これらのコンピュータ・プログラム命令を、汎用コンピュータ、特殊用途コンピュータ、またはマシンを形成する他のプログラム可能データ処理装置のプロセッサに提供し、そのコンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行されるこれらの命令が、フローチャートまたはブロック図のブロックまたはブロック群中に特定されている機能または動作を実装するための手段を生成するようにすることができる。
【００５６】
また、これらのコンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスに対し特定の仕方で機能するよう命令することができるコンピュータ可読ストレージ媒体に格納し、そのコンピュータ可読ストレージ媒体に格納された命令が、フローチャートまたはブロック図のブロックまたはブロック群中に特定されている機能または動作を実装する命令を包含する製造品を作り出せるようにすることができる。
【００５７】
さらに、コンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードし、そのコンピュータ上、他のプログラム可能装置上、または他のデバイス上で一連のオペレーション・ステップを実行させて、コンピュータまたはマシン実装のプロセスを作り出し、当該コンピュータ上または他のプログラム可能装置上で実行される命令が、フローチャートまたはブロック図のブロックまたはブロック群中に特定されている機能または動作を実装するためのプロセスを提供するようにすることも可能である。
【００５８】
図中のフローチャートおよびブロック図は、さまざまな実施形態による、システム、方法、およびコンピュータ・プログラム製品のあり得る実装のアーキテクチャ、機能、およびオペレーションを例示している。この点に関し、フローチャートまたはブロック図中の各ブロックは、特定された論理機能を実装するための一つ以上の実行可能命令を含む、モジュール、セグメント、またはコードの部分を表し得る。また、一部の別の実装においては、ブロック中に記載された機能が、任意の順序または図面に記載された順序を外れて行われ得ることに留意すべきである。
【００５９】
例えば、連続して示された２つのブロックが、関与する機能によっては、実際にはほぼ同時に実行されることがあり、時にはこれらのブロックが逆の順序で実行されることもあり得る。さらに、ブロック図またはフローチャート図の各ブロック、およびブロック図またはフローチャート図中のブロック群の組み合わせは、特定の機能または動作を実施する特殊用途ハードウェア・ベースのシステム、または特殊用途ハードウェアとコンピュータ命令との組み合わせによって実装可能なことにも留意すべきである。
【００６０】
本明細書において、一つ以上の特徴または実施形態を参照しながら、請求対象の主題を提示してきた。当業者は、例示的な実施形態の詳細な性質に関わらずに、全体として意図された範囲を限定したりまたはこれから逸脱したりすることなく、前記実施形態に変更および修改を加えることが可能なことを認識しよく理解しているであろう。本明細書で提示した実施形態のこれらさまざまな他の改作および組み合わせは、請求項により定義された本開示の主題およびこれらの一連の等価物の範囲内にある。
【図１】
2014532913.tif 000003
【図２】
2014532913.tif 000004
【図３】
2014532913.tif 000005
【図４】
2014532913.tif 000006
【国際調査報告】
2014532913.tif 000007
2014532913.tif 000008