JP2022100301A - ソフトウェア・アップグレードがコンピューティング・デバイスに与える潜在的な影響を判定するための方法、コンピュータ・プログラム、および更新推奨コンピュータ・サーバ(ソフトウェア・アップグレードの安定性の推奨) - Google Patents
ソフトウェア・アップグレードがコンピューティング・デバイスに与える潜在的な影響を判定するための方法、コンピュータ・プログラム、および更新推奨コンピュータ・サーバ(ソフトウェア・アップグレードの安定性の推奨) Download PDFInfo
- Publication number
- JP2022100301A JP2022100301A JP2021208872A JP2021208872A JP2022100301A JP 2022100301 A JP2022100301 A JP 2022100301A JP 2021208872 A JP2021208872 A JP 2021208872A JP 2021208872 A JP2021208872 A JP 2021208872A JP 2022100301 A JP2022100301 A JP 2022100301A
- Authority
- JP
- Japan
- Prior art keywords
- computing device
- software
- software application
- upgrade
- computing devices
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000004590 computer program Methods 0.000 title claims description 15
- 230000003542 behavioural effect Effects 0.000 claims description 12
- 238000010586 diagram Methods 0.000 description 20
- 230000006870 function Effects 0.000 description 18
- 238000012545 processing Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 10
- 230000008901 benefit Effects 0.000 description 9
- 230000006399 behavior Effects 0.000 description 8
- 230000009471 action Effects 0.000 description 7
- 238000004458 analytical method Methods 0.000 description 6
- 238000007726 management method Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000008520 organization Effects 0.000 description 4
- 230000006855 networking Effects 0.000 description 3
- 239000002131 composite material Substances 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000036541 health Effects 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000003449 preventive effect Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000005303 weighing Methods 0.000 description 2
- 230000002155 anti-virotic effect Effects 0.000 description 1
- 230000009172 bursting Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000001364 causal effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000001747 exhibiting effect Effects 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 230000006266 hibernation Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000007958 sleep Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/008—Reliability or availability analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1433—Saving, restoring, recovering or retrying at system level during software upgrading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3055—Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/32—Monitoring with visual or acoustical indication of the functioning of the machine
- G06F11/324—Display of status information
- G06F11/327—Alarm or error message display
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9538—Presentation of query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/84—Using snapshots, i.e. a logical point-in-time copy of the data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Data Mining & Analysis (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
【課題】ソフトウェア・アップグレードがコンピューティング・デバイスに与える潜在的な影響を判定するための方法およびシステムを提供する。【解決手段】ソフトウェア・アプリケーション・アップグレードに関連する動作挙動の履歴に基づいて、かつ他のコンピューティング・デバイスのうちのそれぞれの分析されたプロファイルと、第1のコンピューティング・デバイスのプロファイルとの間の類似性の状態に基づいて、ソフトウェア・アプリケーション・アップグレードが第1のコンピューティング・デバイスにおける失敗を引き起こす可能性があるかどうかに関する判定が行われる。エンド・ユーザにリスクベースの推奨が提示される。【選択図】図1
Description
本開示は、一般に、ネットワーキング・システムに関し、より詳細には、ソフトウェア・アップグレードの安定性の推奨のためのシステムおよび方法に関する。
[関連技術の説明]
ソフトウェア・アップグレードは、システムの安全性および安定性を維持するために必要であるが、失敗に影響されないことはほとんどない。これは、ソフトウェア・アップグレードが利用可能になったときにユーザがソフトウェアのアップグレードを進めることを避ける主な原因の1つである。アップグレードは、予期せず動作して計画外の遅延を発生させる可能性があり、これにより、影響を受けるデバイスのメイン・ユーザの生産性の不安定さおよび低下を引き起こすおそれがある。
ソフトウェア・アップグレードは、システムの安全性および安定性を維持するために必要であるが、失敗に影響されないことはほとんどない。これは、ソフトウェア・アップグレードが利用可能になったときにユーザがソフトウェアのアップグレードを進めることを避ける主な原因の1つである。アップグレードは、予期せず動作して計画外の遅延を発生させる可能性があり、これにより、影響を受けるデバイスのメイン・ユーザの生産性の不安定さおよび低下を引き起こすおそれがある。
ユーザは、デバイスのソフトウェア・アップグレードが円滑に進むという合理的な期待をもっているが、開発者は、自社製品の互換性、依存関係、および欠陥については理解していても、自社が開発していないライブラリ、ドライバ、オペレーティング・システム、およびハードウェア・コンポーネントの不適合については知識が乏しい。非互換性は、アップグレードが試行されるまで分からない場合がある。アップグレード検査は、ほとんどの場合、同じパッケージ管理システムまたはソース会社によって管理されているパッケージのみを考慮する。アップグレード検査は、特別に構成された、もしくはソースコードから構築された、または外部パッケージ管理システムによるカスタム・パッケージまたは環境コンポーネントの独自性を考慮しない場合がある。場合によっては、完全なアウト・オブ・バンドによるソリューションは、システムを安定させる欠落要素(例えば、システムの再起動)である可能性があるが、開発者向けドキュメントには記載されていない。試行錯誤だけでしか非互換性が明らかにならない場合がある。このため、フォーラム・ディスカッション(forum discussion)全体を読むことは有益であるが、少しの運、および関連しているが直接は関連していない情報を広範囲に十分に探すことが必要である。
企業内では、自動化およびソフトウェア監視エージェントを通じて、他所の経験から洞察を得ることがすでに可能である。エージェントは、監査目的、安全な構成もしくはバージョンの検証、または統計レポートの生成のためにデータを収集する。しかしながら、監視エージェントは、安定性に影響を与える類似のシステム間のソフトウェア・アップグレードの問題を調整も理解もしない。
特定のソフトウェア・パッケージのアップグレードが成功する可能性を評価するためのアップグレード・リスク・マップを生成する手法がいくつか存在する場合がある。しかしながら、これらの手法は、必ずしもソフトウェア・アップグレードに関連しない同じシステム内の他のソフトウェア・パッケージの安定性を考慮しない場合がある。
本開示の一実施形態によれば、ソフトウェア・アップグレードがコンピューティング・デバイスに与える潜在的な影響を判定するための方法が提供される。方法は、複数のコンピューティング・デバイスを含むネットワークにおいて、各コンピューティング・デバイスに現在存在するソフトウェア要素およびハードウェア要素のプロファイルを記録する段階を含む。第1のコンピューティング・デバイスに常駐するソフトウェア・アプリケーションのためのソフトウェア・アプリケーション・アップグレードについてのクエリが受信される。第1のコンピューティング・デバイスに現在存在するソフトウェア要素およびハードウェア要素に基づいて、第1のコンピューティング・デバイスのデバイス構成が識別される。ソフトウェア・アプリケーション・アップグレードをインストールしたネットワーク内の他のコンピューティング・デバイスが識別される。識別された他のコンピューティング・デバイスにおけるソフトウェア・アプリケーション・アップグレードに関連する動作挙動の履歴が取得される。他のコンピューティング・デバイスのうちのそれぞれのプロファイルが取得される。ハードウェアまたはソフトウェアのソフトウェア・アプリケーションとの競合について、他のコンピューティング・デバイスのうちのそれぞれのプロファイルが分析される。識別された他のコンピューティング・デバイスにおけるソフトウェア・アプリケーション・アップグレードに関連する動作挙動の履歴に基づいて、かつ他のコンピューティング・デバイスのうちのそれぞれの分析されたプロファイルと、第1のコンピューティング・デバイスのプロファイルとの間の類似性の状態に基づいて、ソフトウェア・アプリケーション・アップグレードが、第1のコンピューティング・デバイスに現在存在するソフトウェア要素またはハードウェア要素における失敗を引き起こす可能性があるかどうかに関する判定が行われる。さらに、判定に基づいた、ソフトウェア・アップグレードを第1のコンピューティング・デバイスにインストールするかどうかのリスクベースの推奨が、第1のコンピューティング・デバイスのエンド・ユーザに提示される。
一実施形態において、方法は、第2のコンピューティング・デバイスを識別する段階を含み、第2のコンピューティング・デバイスは安定した動作構成を示す。それぞれの他のコンピューティング・デバイスにおけるソフトウェア・アップグレードに関連する失敗イベントに関する属性が識別される。第2のコンピューティング・デバイスの構成と、ソフトウェア・アップグレードに関連する失敗イベントを伴うそれぞれの他のコンピューティング・デバイスの構成との間の差異が分析される。更には、第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は、ソフトウェア・アップグレードの安定性の推奨およびスケジューリングのための例示的なアーキテクチャ100を示す。アーキテクチャ100は、様々なコンピューティング・デバイス102(1)~102(N)が互いに通信すること、ならびにネットワーク106に接続された、更新データ・ソース112、更新推奨サーバ116、およびクラウド120などの他の要素と通信することを可能にするネットワーク106を含む。
ネットワーク106は、限定されないが、ローカル・エリア・ネットワーク(「LAN」)、仮想プライベート・ネットワーク(「VPN」)、セルラ・ネットワーク、インターネット、またはそれらの組合せとすることができる。例えば、ネットワーク106は、様々なアプリケーション・ストア、ライブラリ、およびインターネットとの通信などの様々な補助サービスを提供するイントラネットと呼ばれることもあるプライベート・ネットワークに通信可能に結合されたモバイル・ネットワークを含んでもよい。ネットワーク106により、更新推奨サーバ116上で実行されるソフトウェア・プログラムである更新推奨エンジン110は、更新データ・ソース112、コンピューティング・デバイス102(1)~102(N)、およびクラウド120と通信してデータ処理を提供することが可能になる。更新データ・ソース112は、本明細書に記載の1つまたは複数の技術の下で処理されるソフトウェア更新データを提供してもよい。ソフトウェア更新データは、コンピューティング・デバイスのメモリ/データ・ストレージ要素またはハードウェア・コンポーネント内のファームウェアに常駐するソフトウェア・アプリケーションの新しいバージョンまたはアップグレード・バージョンを含んでもよい。一実施形態において、データ処理は、クラウド120上で少なくとも部分的に実行される。
後述するために、選択したタスクに応じて分析されるデータのソースとなり得るコンピューティング・デバイスのいくつかの例を表すために、いくつかのユーザ・デバイスが図面に表示されている。符号で表したシーケンス・データ(例えば、103(1)および103(N))の態様は、ネットワーク106を介して、更新推奨サーバ116の更新推奨エンジン110と通信してもよい。今日、ユーザ・デバイスは、典型的には、子機、スマートフォン、タブレット・コンピュータ、携帯情報端末(PDA:personal digital assistant)、およびスマート・ウォッチの形式を取るが、消費者用およびビジネス用の電子デバイスを含む他のフォーム・ファクタで実装されてもよい。
例えば、コンピューティング・デバイス(例えば、102(N))は、コンピューティング・デバイス102(N)に格納されたソフトウェア・バージョンを識別するために、要求103(N)を更新推奨エンジン110に送信してもよい。
更新データ・ソース112および更新推奨エンジン110は例として異なるプラットフォーム上にあるように示されているが、様々な実施形態において、更新データ・ソース112および更新推奨サーバ116が組み合わされてもよいことが理解されよう。他の実施形態では、これらのコンピューティング・プラットフォームを、クラウド120でホストされる仮想マシンまたはソフトウェア・コンテナの形式の仮想コンピューティング・デバイスによって実装し、それによって、処理および格納のための柔軟なアーキテクチャを提供してもよい。
ここで図2を参照する。図2は、一実施形態による、ソフトウェア・アップグレードの安定性の推奨およびスケジューリングを決定するためのアーキテクチャ200である。アーキテクチャ200は、一般に、1つまたは複数のコンピューティング・デバイス(デバイスA、B、C、...Nで符号により示した)と通信する分析器モジュール210を含んでもよい。いくつかの実施形態において、基礎となる方法によって実装されるソフトウェアは、コンピューティング・デバイス上に常駐する(図面では「エージェント」とラベル付けされた)スケジューリング・モジュールを含んでもよい。スケジューリング・モジュールは、コンピューティング・デバイス上のハードウェアおよびソフトウェアの現在の動作状態を監視し、現在の動作状態のログ記録をスケジュールする、ソフトウェア・モジュールとすることができる。スケジューリング・モジュールは、コンピューティング・デバイスの現在のハードウェア特性および現在アクティブなソフトウェア・アプリケーションのバージョンに関連する情報を提供する分析器モジュール210と通信してもよい。いくつかの実施形態において、スケジューリング・モジュールは、コンピューティング・デバイスのシステム・プロファイルを生成してもよい。プロファイルは、例えば、インストールされている現在のソフトウェア・パッケージ、デバイスにインストールまたは接続されているハードウェア・コンポーネント、インストールされている証明書、電源イベント(例えば、スリープ、休止状態、シャットダウン、および再起動のログ)、更新の試行、成功または失敗のログ、安定性/不安定性の挙動マーカ、セキュリティ・コンプライアンス、実行中のプロセスおよびサービス、ならびにリソース使用率(例えば、メモリ使用量、CPU使用率、ディスク容量、iノード、およびソケット)を含んでもよい。
スケジューリング・モジュールは、コンピューティング・デバイス・プロファイルのスナップショットを定期的に取得してもよい。スナップショットは、ライブラリ、パッケージ、およびログ記録されたイベントの現在の状態を含んでもよい。スケジューリング・モジュールは、スナップショットのレポートを分析器モジュール210に送信してもよい。スナップショットは、各スケジューリング・モジュールのボックス内に収容された円によって象徴的に表されている。いくつかの実施形態において、スケジューリング・モジュールは、デバイスの現在の状態を評価するために分析器モジュール210に対する呼出しをトリガするコンピューティング・デバイスにおけるソフトウェア・アップグレードまたは他の何らかの変更の発生に応答して、スナップショットを記録してもよい。例えば、スナップショットは、アップグレードの直前および直後にスケジューリング・モジュールによって捕捉されてもよい。アップグレード後、スケジューリング・モジュールは、
ウイルス対策が実行されている、
Wi-Fi(登録商標)が動作している、
VPNが動作している、
Crashplanが機能している、
Dockerエンジンが実行されている、
Mini-kubeが実行されている、など
の検証を含み得る成功ベンチマーク・テストを開始してもよい。
ウイルス対策が実行されている、
Wi-Fi(登録商標)が動作している、
VPNが動作している、
Crashplanが機能している、
Dockerエンジンが実行されている、
Mini-kubeが実行されている、など
の検証を含み得る成功ベンチマーク・テストを開始してもよい。
ベンチマークの成功基準は、管理者によって設定されてもよい。例えば、成功は、アップグレード前とアップグレード後のスナップショットを比較すること、および1つまたは複数の他のソフトウェア・アプリケーションまたはハードウェア動作に対する失敗の発生を検査することに基づいてもよい。アップグレードの安定性は、デバイスのソフトウェアまたはハードウェアで失敗が発生しない、アップグレード後のその後の期間に基づいてもよい。いくつかの実施形態において、ユーザは、追加のカスタマイズされた成功基準を指定することもできる(この成功基準は、管理者が企業ネットワーク・システムに対して定義したものより優先されてもよい)。例えば、会社内の開発者は、日常業務に必要な実行中のある特定のプログラム(sshなど)を検査するための追加のコマンドを追加してもよい。追加のコマンドは、シェル・スクリプト、python(R)スクリプト、またはある特定のプログラムの安定性を検査し、安定性ベンチマーク・レポートにステータスを挿入する実行可能プログラムとすることができる。
説明のための例として、スナップショットは、3つの状態、すなわち、安定したシステム、成功したアップグレード・イベント、または不安定なシステムのうちの1つを示すと判定されてもよい。記録された時系列のスナップショットは、データベース240に格納されてもよい。コンピューティング・デバイスにおいて安定性または不安定性を示した根本的な要因を判定するために、スナップショットの履歴およびそれらのコンテンツは、相関モジュール220によって分析されてもよい。根本的な要因には、ソフトウェア・アプリケーションによる挙動の履歴、またはデバイスに存在するハードウェア要素およびソフトウェア要素に関連付けられた属性あるいはその両方が含まれることがある。動作に際して、分析器モジュール210は、スケジューリング・モジュールからレポートを取り込む。デバイスごとに、システム状態の時系列が生成される。この生成では、安定性または機能性の連続状態を維持することに焦点を当てて、時間の経過に伴うコンピューティング・デバイス・システムの状態を捕捉する。時系列は、グラフとして表現および処理されてもよい。スナップショットは、キーと値のペアなどの辞書として表現および処理されてもよい。分析器モジュール210は、デバイスの構成に基づいて、アップグレードの結果にとって重要な要因を考慮して、類似の構成状態を有するデバイスを相関させて識別してもよい。デバイス間の類似性は、存在するハードウェア・デバイス、ハードウェアに使用されるファームウェア・バージョン、有効なソフトウェア・アプリケーション、使用中のソフトウェア・バージョン、および使用中のオペレーティング・システムに基づいてもよい。分析器モジュール210は、サンプルから補足したデータに基づいて、以下の例示的な統計値、すなわち、
アップグレードが成功する可能性、
システムが安定したままである可能性、
失敗したアップグレードに関連する要因、および
成功したアップグレードに関連する要因
を提供してもよい。
アップグレードが成功する可能性、
システムが安定したままである可能性、
失敗したアップグレードに関連する要因、および
成功したアップグレードに関連する要因
を提供してもよい。
分析器モジュール210の統計値は、スケジューリング・モジュールによって、推奨モジュール230を介して推奨をユーザに伝達するために使用されてもよい。
アップグレードが失敗すると、分析器モジュール210は、失敗に関連する可能性が高い要因を特定するため、また可能性のある修復の過程について、その後の分析を実行してもよい。
ブロック図200において、各デバイスは、本開示の実施形態の下で起こり得る異なるシナリオを示している。4つのシナリオが示されているが、他のシナリオが企図されることが理解されよう。例えば、デバイスAは、安定したシステム、次に成功したアップグレードの実施、安定したシステム、そして不安定なシステムを示す時系列のスナップショットを示している。このシナリオは、アップグレードに関する既知の経験がないときに、ユーザが自分のソフトウェアをアップグレードしたことを表す場合がある。アップグレードが成功すると、スケジューリング・モジュールはアップグレード前およびアップグレード後の状態を報告する。また、スケジューリング・モジュールは、知識ベースに安定性の指標として格納される許容基準に基づいて、システムの継続的な機能性を監視する。
デバイスBは、安定したシステムのスナップショット、次に不安定なシステム・プロファイルの連続したスナップショット、そして成功したアップグレードを示した。アップグレードに関する既知の経験がないときに、ユーザが自分のソフトウェアをアップグレードした可能性がある。ソフトウェア・アップグレードは、失敗という結果になり、さらにシステムの不安定さ(例えば、Wi-Fi(登録商標)の動作停止、アプリケーションのクラッシュ)を引き起こす。スケジューリング・モジュールは、アップグレード前およびアップグレード後の状態を報告してもよく、そのようなメタデータは、原因を指摘し得る相関関係を特定するために、リモート安定性分析器モジュール210において処理されてもよい。
デバイスCは、安定したシステムの3つの連続したスナップショット、次に不安定なシステムのスナップショットを示した。アップグレードに関する既知の経験があるときに、ユーザが自分のソフトウェアのアップグレードを試行した可能性がある。スケジューリング・モジュールは、既知の経験に基づいて成功または失敗の確率を報告して、ことによっては最初の段階でアップグレードに対して注意を促してもよい。
デバイスNは、安定したシステム、成功したアップグレード・プロファイル、および次の2つのスナップショットでの継続的な安定性を示した。スケジューリング・モジュールが以前のネガティブな経験により成功する可能性が低いと報告したときに、ユーザが自分のソフトウェアのアップグレードを試行した可能性がある。試行は成功する!スケジューリング・モジュールは結果を分析器モジュール210に報告し、誤判定の可能性が識別されるように、経験的データが変更される。また、ユーザが予防ステップ(例えば、パッケージのインストールまたは削除、再構成)を試行した可能性もある。予防措置は、スケジューリング・モジュールがアップグレード前およびアップグレード後の状態を捕捉するときに、スケジューリング・モジュールによって記録されてもよい。予防ステップは、経験的データの記録に統合されてもよい。
[方法論の例]
[方法論の例]
ここで図3を参照すると、例示的な実施形態による、ソフトウェア・アップグレードがコンピューティング・デバイスに与える安定性の結果および不安定性の原因を特定するための方法300が示されている。方法300は、1つまたは複数のコンピューティング・デバイスがソフトウェア・アプリケーションをアップグレードする試行310を登録したことに応答してトリガされてもよい。方法300は、アップグレードの試行が成功したかどうかを判定してもよい(320)。失敗した試行は、失敗したアップグレードの試行としてフラグが立てられてもよい(325)。正常にインストールされたアップグレードの場合、方法は、コンピューティング・デバイス(または、マルチデバイス・アップグレードの場合は複数のデバイス)の安定性を監視してもよい(330)。監視ステップ330は、アップグレードのインストール後、ある間隔で発生してもよく、その間隔は、いくつかの実施形態ではエンド・ユーザの設定または管理者の設定とすることができる。安定性は、エンド・デバイスが中断することなく動作していることに基づいてもよい。例えば、失敗フラグを登録するコンピューティング・デバイスの不安定性は、アップグレードされたアプリケーション以外のソフトウェアが失敗(例えば、クラッシュ)を経験すること、またはハードウェアが、ソフトウェア・アップグレードをインストールしたのと同じコンピューティング・デバイス内で失敗を経験することに基づいてもよい。失敗イベントは、ログ記録されてもよい(340)。方法300は、コンピューティング・デバイスの環境内のどの属性が失敗に寄与した可能性があるかを分析してもよい(350)。属性には、ソフトウェア・アップグレードの内容、コンピューティング・デバイス内の他のソフトウェア・アプリケーションとの競合、およびアップグレードされたソフトウェアに期待通りに応答しないハードウェアが含まれ得る。いくつかの実施形態において、安定性ベンチマーク属性は、最も単純な形式で2進(真/偽)値を有する3つの主要なグループに分類されてもよい。安定性の基準には、閾値または許容される値のセットを伴う数値または文字列値も含まれ得る。
1.企業全体の基本的な安定性属性:WLANが動作している、VPNが動作している、証明書がインストールされている、システム・クラッシュが時間枠で閾値を超えている、電子メールが動作している、など。
2.ユーザ/従業員の職務に基づく安定性属性:顧客サポートはサポート・チケット・システムにアクセスできる必要がある、開発者はGitリポジトリ、クラウド・プラットフォーム・ダッシュボードにアクセスできなければならない、など。
3.従業員が定義したカスタム属性:開発者は、追加の成功基準として、アップグレード後に、自分のマシン上のグラフィカルGitクライアントまたはMicrosoft(登録商標) Office(R)プログラムなどの特定のアプリケーションが動作しているように定義してもよい。このような従業員が定義した成功基準は、類似の職務を有する他の従業員に対してさらに自動的に推奨されてもよい。
各属性の失敗基準は、ブール値(偽)、閾値を下回る数値(1,閾値:3)、または許容される文字列値(「required」:「1.0.1」,「found」:「0.11.0」)。
成功したアップグレードはログ記録されてもよい(360)。成功したアップグレードに関連する属性が識別されてもよい(370)。
例示的な実施形態において、方法300は、失敗したアップグレード試行に関連する属性を、成功したアップグレード試行に関連する属性と比較することができ、属性の差異を分析して(380)成功および失敗の原因を特定することができる。分析の結果は、同じソフトウェア・アプリケーションをアップグレードすることになる他のコンピューティング・デバイスにおける成功またはアップグレードの可能性を予測するために使用されてもよい。方法300は、差異の分析結果に基づいて、コンピューティング・デバイスにソフトウェア・アップグレードをインストールするかどうかの推奨を生成する段階(390)を含んでもよい。いくつかの実施形態において、ソフトウェア・アップグレードをインストールするための選択肢を提示されるコンピューティング・デバイスのユーザは、類似のプロファイルを有する別のコンピューティング・デバイスにインストールされた同じソフトウェア・アップグレード・バージョンに基づく推奨を提示されてもよい。例えば、コンピューティング・デバイスが1つまたは複数のソフトウェア・アプリケーション(ソフトウェアAおよびソフトウェアB)を有し、そのソフトウェア・アプリケーションが、同様にソフトウェアAおよびソフトウェアBを有する異なるコンピューティング・デバイス上の異なるソフトウェア・アプリケーション(ソフトウェアC)のアップグレードと競合した場合、推奨は、ソフトウェア・アップグレードをインストールすることに関するリスク・レベルを提示してもよい。デバイスのプロファイルには、リスク・レベルを上昇または低下させ得る他の根本的な要因が存在してもよい。
ここで図4を参照すると、例示的な実施形態による、ソフトウェア・アップグレードがコンピューティング・デバイスに与えるリスク影響を評価するための方法が示されている。方法400は、一般に、コンピューティング・デバイスの現在の動作状態を評価する段階を含む。方法は、デバイスの現在の安定期間を特定する段階(410)から開始してもよい。更新推奨エンジンは、定期的に、コンピューティング・デバイスの現在のプロファイルを分析してもよい(420)。コンピューティング・デバイス上に常駐する現在のソフトウェア・アプリケーション(およびそれらの最新バージョン)が特定されてもよい(430)。いくつかの実施形態は、コンピューティング・デバイスのエンド・ユーザから、デバイス上のソフトウェア・アプリケーションの重要性に優先順位を付ける重み付け値を受信してもよい。更新推奨エンジンは、分析されているソフトウェアに割り当てられる重みを特定してもよい(440)。
いくつかの実施形態において、システム管理者は、ネットワーク内のコンピューティング・デバイスで使用されているソフトウェアに重み値を割り当ててもよい。更新推奨エンジンは、各ソフトウェア・アプリケーションに対して管理者によって割り当てられる重み値を特定してもよい(450)。ソフトウェア・アップグレードに関連するリスクを評価する際に、更新推奨エンジンは、同じソフトウェア・アップグレードがインストールされているネットワーク内のコンピューティング・デバイスを識別してもよい(460)。同じアップグレードを有する識別されたコンピューティング・デバイスのデバイス・プロファイルが取得されてもよい(470)。いくつかの実施形態において、識別されたデバイスによってログ記録された警告メッセージが取得されてもよい(480)。いくつかの実施形態は、識別されたデバイスによってログ記録されたエラー・メッセージを取得する段階(490)を含んでもよい。デバイス・プロファイル、警告メッセージ、またはエラー・メッセージあるいはその組合せを使用して、ソフトウェア・アップグレードが別のコンピューティング・デバイスに影響を与える可能性を判定してもよい。例えば、他のコンピューティング・デバイスで分析されているソフトウェア・アップグレードに関連する警告メッセージおよびエラー・メッセージの履歴(分析されているコンピューティング・デバイスと類似した構成を有するデバイスでは、そのような履歴が多い可能性がある)は、ソフトウェア・アップグレードをインストールすることによって失敗または不安定さが引き起こされる確率がより高いことを示すことがある。実施形態は、コンピューティング・デバイスへの影響について分析されている対象のソフトウェア・アプリケーションをアップグレードしてい得るコンピューティング・デバイスのアップグレード・プロファイルを特定する段階を含んでもよい(495)。
[不安定性またはリスクを特定するための基準の例]
[不安定性またはリスクを特定するための基準の例]
引き続き図4を参照する。以下のドラフト定式化は、例示的な実施形態に従ってアップグレード推奨がどのように生成され得るかを簡単に明示している。
以下のように仮定する:
t時間は、必須の安定時間、
dは、デバイス上のハードウェア・コンポーネントおよびソフトウェア・コンポーネント、それらのバージョン、ならびにアップグレードおよびインストールの履歴データを説明する、特定のデバイスのプロファイル、
S={s1,s2,..sn}は、ユーザにとって重要なソフトウェア製品またはアプリケーション、およびそれらの現在のバージョン番号、
W={w1,w2,..wn}は、各ソフトウェア・アプリケーションに対してユーザによって設定された優先度の対応する重み、
A={A1,A2,..An}は、ネットワーク内の各ソフトウェア・アプリケーションに対して企業ネットワークの管理者によって設定された対応する重み、
ソフトウェアsに対する特定の意図されたアップグレード・アクションU(s)が与えられる場合、推奨モジュール(図2を参照)は、以下のデータ・セット、すなわち、
目的のデバイスに類似するデバイスを探し出すための、同じアップグレードUを実行した各デバイスのデバイス・プロファイル、
類似のプロファイルを有するすべてのデバイスについての、同じアップグレードが別のデバイス上で実行されて以降にログ記録された警告メッセージ、
同様にエラー・メッセージ
に対して分析を実行してもよい。
以下のように仮定する:
t時間は、必須の安定時間、
dは、デバイス上のハードウェア・コンポーネントおよびソフトウェア・コンポーネント、それらのバージョン、ならびにアップグレードおよびインストールの履歴データを説明する、特定のデバイスのプロファイル、
S={s1,s2,..sn}は、ユーザにとって重要なソフトウェア製品またはアプリケーション、およびそれらの現在のバージョン番号、
W={w1,w2,..wn}は、各ソフトウェア・アプリケーションに対してユーザによって設定された優先度の対応する重み、
A={A1,A2,..An}は、ネットワーク内の各ソフトウェア・アプリケーションに対して企業ネットワークの管理者によって設定された対応する重み、
ソフトウェアsに対する特定の意図されたアップグレード・アクションU(s)が与えられる場合、推奨モジュール(図2を参照)は、以下のデータ・セット、すなわち、
目的のデバイスに類似するデバイスを探し出すための、同じアップグレードUを実行した各デバイスのデバイス・プロファイル、
類似のプロファイルを有するすべてのデバイスについての、同じアップグレードが別のデバイス上で実行されて以降にログ記録された警告メッセージ、
同様にエラー・メッセージ
に対して分析を実行してもよい。
関数f(t,S,W,A,U(s))としての推奨モジュールは、例えば、所与のソフトウェア製品またはアプリケーションの加重算術平均を使用して、大きさを増やすことによってアップグレードU(s)の推奨を示す値を有する、分析された履歴データに関する推奨(R,R')を生成する。推奨モジュールは、アップグレード・プロファイルを生成してもよく、アップグレード・プロファイルを、タプル(R,R')とすることができる。
Rは、アップグレードを推奨する大きさを示す最終的な推奨値である。例えば、1.0はアップグレードU(s)を適用するための絶対的な推奨とすることができ、0.0はその反対の絶対的な推奨とすることができる。
R'={r1,r2,..rn}は、推奨単位のスコアリングであり、ソフトウェアsに対応するrは、アップグレードU(s)を適用した後のソフトウェアsの予測される安定性の尺度である。
例えば、保留中のソフトウェア更新を有するデバイスを想定する。ここで、S={ソフトウェアAバージョン1089,ソフトウェアB}は、デバイス上のソフトウェア製品が2つのみのセットである。アップグレードU(ソフトウェアAバージョン1099)を適用するための予測を要求し、W=A={1.0,1.0}と仮定すると、ユーザおよび企業の管理者はともに、2つのソフトウェア製品に等しい重みを割り当て、結果は、R=0.9およびR'={1.0,0.8}となり得る。
R'の結果は、バージョン1099にアップグレードした後に推奨者がソフトウェアAの安定性は完全でありソフトウェアBの安定性はそれほど完全ではないと測定したことを示す。この場合、最終的な推奨Rに重み付き平均0.9が割り当てられたが、これで十分に良好であるかどうかを判断するのはユーザ次第である。推奨モジュールへのさらなるクエリによって、同じアップグレード・パス上の以前のデバイスが安定していた期間(閾値tを満たしていた必要がある)、および推奨で使用されるデータに対して考慮された類似のデバイスの数について把握してもよい。
[コンピュータ・プラットフォームの例]
[コンピュータ・プラットフォームの例]
上述したように、本開示の解釈可能なモデリングに関連する機能は、図1に示すように、無線通信または有線通信を介したデータ通信のために接続された1つまたは複数のコンピューティング・デバイスを使用することによって実行され得る。図5は、訓練入力データ・ソース、クラウドなどといった様々なネットワーク化されたコンポーネントと通信することができるコンピュータ・ハードウェア・プラットフォームの機能ブロック図である。具体的には、図5は、図1の更新推奨サーバ116などのサーバを実装するために使用され得るネットワークまたはホスト・コンピュータ・プラットフォーム500を示す。
コンピュータ・プラットフォーム500は、システム・バス502に接続された、中央処理ユニット(CPU)504、ハード・ディスク・ドライブ(HDD)506、ランダム・アクセス・メモリ(RAM)または読み取り専用メモリ(ROM)あるいはその両方508、キーボード510、マウス512、ディスプレイ514、および通信インターフェース516を含んでもよい。
一実施形態において、HDD506は、本明細書に記載の方法で更新推奨エンジン540などの様々なプロセスを実行できるプログラムを記憶することを含む機能を有する。一般に、更新推奨エンジン540は、上記の実施形態の下でのソフトウェア・アップグレード後の予測される安定性についてコンピューティング・デバイスを分析するように構成されてもよい。更新推奨エンジン540は、異なる機能を実行するように構成された様々なモジュールを有してもよい。いくつかの実施形態において、更新推奨エンジン540は、サブモジュールを含んでもよい。例えば、デバイス・プロファイル分析器542、警告メッセージ・ログ分析器544、エラー・メッセージ・ログ分析器546、および重み付け値モジュール548である。
一実施形態において、HDD506は、JVM(Java(登録商標)仮想マシン)を実現するためのJava(登録商標)ランタイム環境プログラム用のものなどの1つまたは複数のライブラリ・ソフトウェア・モジュールを含む実行アプリケーションを格納することができる。
別の実施形態において、コンピュータ・プラットフォーム500は、エンド・ユーザ・コンピュータ(例えば、コンピューティング・デバイス102(1)~102(N))を表してもよい。このコンテキストにおいて、様々なエンド・ユーザ・コンピュータ・プラットフォーム500は、ハードウェア要素とソフトウェア・パッケージとの複合構成を含んでもよい。理解されるように、本開示の態様は、それぞれのコンピュータ・プラットフォーム500に存在するハードウェア/ソフトウェア要素のバリエーションを、ソフトウェア・アップグレードとの互換性におけるそれらの寄与について分析する。したがって、あるコンピュータ・プラットフォーム500におけるソフトウェア・アップグレードは、存在するアプリケーションのソフトウェア・バージョンおよびハードウェアを考慮する場合、安定している可能性がある。さらに別のコンピュータ・プラットフォーム500は、ソフトウェア・アップグレードによって説明されなかったハードウェア要素またはソフトウェア要素を含む可能性がある。その結果、1つまたは複数のコンピュータ・プラットフォーム要素の動作が不安定になるか、または失敗する可能性がある。
[クラウド・プラットフォームの例]
[クラウド・プラットフォームの例]
上述したように、コンピューティング・デバイスに対するソフトウェア・アップグレードの影響の分析に関連する機能は、クラウド120(図1を参照)を含んでもよい。本開示はクラウド・コンピューティングに関する詳細な説明を含むが、本明細書に記載された教示の実装がクラウド・コンピューティング環境に限定されないことを理解されたい。むしろ、本開示の実施形態は、現在知られていない、または後に開発される他の任意のタイプのコンピューティング環境と組み合わせて実装することが可能である。
クラウド・コンピューティングは、最小限の管理労力、またはサービス・プロバイダとの最小限の対話で迅速にプロビジョニングおよび解放され得る構成可能なコンピューティング・リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共用プールへの簡便かつオンデマンドのネットワーク・アクセスを可能にするためのサービス提供のモデルである。このクラウド・モデルは、少なくとも5つの特徴、少なくとも3つのサービス・モデル、および少なくとも4つの展開モデルを含み得る。
特徴は、次の通りである。
オンデマンド・セルフサービス:クラウド・コンシューマは、サービス・プロバイダとの間で人間の対話を必要とすることなく、必要に応じて自動的に、サーバ時間およびネットワーク・ストレージなどのコンピューティング機能を一方的にプロビジョニングすることができる。
広範なネットワーク・アクセス:機能は、ネットワーク上で利用可能であり、異種のシン・クライアント・プラットフォームまたはシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、およびPDA)による使用を促進する標準的なメカニズムを介してアクセスされる。
リソースのプール化:プロバイダのコンピューティング・リソースは、マルチテナント・モデルを使用して複数のコンシューマにサービス提供するようにプール化され、異なる物理リソースおよび仮想リソースが、要求に応じて動的に割当ておよび再割当てされる。コンシューマは一般に、提供されるリソースの正確な位置に対して制御も知識も有していないが、より高い抽象化レベルでの位置(例えば、国、州、またはデータセンタ)を特定し得るという点で、位置の独立性がある。
迅速な柔軟性:機能を、迅速かつ柔軟に、場合によっては自動的にプロビジョニングして素早くスケール・アウトし、迅速に解放して素早くスケール・インすることができる。コンシューマにとっては、プロビジョニングに利用可能な機能は、しばしば無制限であるように見え、いつでも任意の数量で購入することができる。
サービスの測定:クラウド・システムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、およびアクティブなユーザ・アカウント)に適した一定の抽象化レベルでの計量機能を活用することによって、リソースの使用を自動的に制御および最適化する。リソースの使用状況を監視、制御、および報告して、利用するサービスのプロバイダとコンシューマの両方に透明性を提供することができる。
サービス・モデルは、次の通りである。
ソフトウェア・アズ・ア・サービス(SaaS):コンシューマに提供される機能は、クラウド・インフラストラクチャ上で動作しているプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブ・ブラウザ(例えば、ウェブ・ベースの電子メール)などのシン・クライアント・インターフェースを介して様々なクライアント・デバイスからアクセス可能である。限定されたユーザ固有のアプリケーション構成設定を想定される例外として、コンシューマは、ネットワーク、サーバ、オペレーティング・システム、ストレージ、またはさらには個々のアプリケーション機能を含む基礎となるクラウド・インフラストラクチャを管理も制御もしない。
プラットフォーム・アズ・ア・サービス(PaaS):コンシューマに提供される機能は、プロバイダによってサポートされるプログラミング言語およびツールを使用して生成されたコンシューマが生成または取得したアプリケーションをクラウド・インフラストラクチャ上に展開することである。コンシューマは、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基礎となるクラウド・インフラストラクチャを管理も制御もしないが、展開されたアプリケーション、および場合によってはアプリケーションをホストする環境構成を制御する。
インフラストラクチャ・アズ・ア・サービス(IaaS):コンシューマに提供される機能は、オペレーティング・システムおよびアプリケーションを含み得る任意のソフトウェアをコンシューマが展開および動作させることができる、処理、ストレージ、ネットワーク、および他の基本的なコンピューティング・リソースをプロビジョニングすることである。コンシューマは、基礎となるクラウド・インフラストラクチャを管理も制御もしないが、オペレーティング・システム、ストレージ、展開されたアプリケーションを制御し、場合によっては選択されたネットワーキング・コンポーネント(例えば、ホスト・ファイアウォール)を限定的に制御する。
展開モデルは、次の通りである。
プライベート・クラウド:クラウド・インフラストラクチャは、ある組織のためだけに運用される。このクラウド・インフラストラクチャは、組織または第三者によって管理されてもよく、オンプレミスまたはオフプレミスで存在してもよい。
コミュニティ・クラウド:クラウド・インフラストラクチャは複数の組織で共有され、関心事項(例えば、ミッション、セキュリティ要件、ポリシー、およびコンプライアンス上の考慮事項)を共有している特定のコミュニティをサポートする。このクラウド・インフラストラクチャは、組織または第三者によって管理されてもよく、オンプレミスまたはオフプレミスで存在してもよい。
パブリック・クラウド:クラウド・インフラストラクチャは、一般公衆または大規模な業界グループにとって利用可能とされ、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:クラウド・インフラストラクチャは、固有のエンティティのままであるが、データおよびアプリケーションの移植性(例えば、クラウド間の負荷分散のためのクラウド・バースティング)を可能にする標準化された技術または専用の技術によって結び付けられる2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の合成である。
クラウド・コンピューティング環境は、ステートレス性、低結合性、モジュール性、および意味的相互運用性に焦点を置いたサービス指向である。クラウド・コンピューティングの中心には、相互接続されたノードのネットワークを含むインフラストラクチャがある。
ここで図6を参照すると、例示的なクラウド・コンピューティング環境600が示されている。図示のように、クラウド・コンピューティング環境600は、例えば、携帯情報端末(PDA)もしくは携帯電話654A、デスクトップ・コンピュータ654B、ラップトップ・コンピュータ654C、または自動車コンピュータ・システム654Nあるいはその組合せなどのクラウド・コンシューマによって使用されるローカル・コンピューティング・デバイスが通信することができる1つまたは複数のクラウド・コンピューティング・ノード610を含む。ノード610は、互いに通信してもよい。ノード610は、本明細書で上述したようなプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウド、またはハイブリッド・クラウド、あるいはその組合せなどの、1つまたは複数のネットワーク内で物理的にまたは仮想的にグループ化されてもよい(図示せず)。これにより、クラウド・コンピューティング環境650は、インフラストラクチャ、プラットフォーム、またはソフトウェア、あるいはその組合せを、クラウド・コンシューマがローカル・コンピューティング・デバイス上にリソースを保持する必要のないサービスとして提供することが可能になる。図6に示すコンピューティング・デバイス654A~654Nのタイプは、例示のみを意図しており、コンピューティング・ノード610およびクラウド・コンピューティング環境650は、(例えば、ウェブ・ブラウザを使用して)任意のタイプのネットワークまたはネットワーク・アドレス指定可能な接続あるいはその両方を介して任意のタイプのコンピュータ化されたデバイスと通信できることを理解される。
ここで図7を参照すると、クラウド・コンピューティング環境650(図6)によって提供される機能抽象化層のセットが示されている。図7に示すコンポーネント、層、および機能は、例示のみを意図しており、本開示の実施形態はそれらに限定されないことを予め理解されたい。図示のように、以下の層および対応する機能が提供される。
ハードウェアおよびソフトウェア層760は、ハードウェア・コンポーネントおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例には、メインフレーム761、RISC(縮小命令セット・コンピュータ)アーキテクチャ・ベースのサーバ762、サーバ763、ブレード・サーバ764、記憶デバイス765、ならびにネットワークおよびネットワーキング・コンポーネント766が含まれる。いくつかの実施形態において、ソフトウェア・コンポーネントには、ネットワーク・アプリケーション・サーバ・ソフトウェア767およびデータベース・ソフトウェア768が含まれる。
仮想化層770は、抽象化層を提供し、この層から仮想エンティティの以下の例、すなわち、仮想サーバ771、仮想ストレージ772、仮想プライベート・ネットワークを含む仮想ネットワーク773、仮想アプリケーションおよびオペレーティング・システム774、ならびに仮想クライアント775が提供されてもよい。
一例では、管理層780は、以下に記載の機能を提供することができる。リソース・プロビジョニング781は、クラウド・コンピューティング環境内でタスクを実行するために利用されるコンピューティング・リソースおよび他のリソースの動的な調達を提供する。計量および価格決定782は、クラウド・コンピューティング環境内でリソースが利用されるときのコスト追跡、およびこれらのリソースの消費に対する課金または請求を提供する。一例では、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含むことがある。セキュリティは、クラウド・コンシューマおよびタスクのための本人確認、ならびにデータおよび他のリソースのための保護を提供する。ユーザ・ポータル783は、コンシューマおよびシステム管理者にクラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理784は、要求されるサービス・レベルが満たされるように、クラウド・コンピューティング・リソースの割当ておよび管理を提供する。サービス・レベル・アグリーメント(SLA)の計画および履行785は、SLAに従って将来において要求されることが予想されるクラウド・コンピューティング・リソースの事前配置および調達を提供する。
ワークロード層790は、クラウド・コンピューティング環境が利用され得る機能の例を提供する。この層から提供され得るワークロードおよび機能の例には、マッピングおよびナビゲーション791、ソフトウェア開発およびライフサイクル管理792、仮想教室教育配信793、データ分析処理794、トランザクション処理795、ならびに本明細書に記載のソフトウェア推奨サービス796が含まれる。
[結び]
[結び]
本教示の様々な実施形態の説明を例示の目的で提示してきたが、網羅的であることも、開示された実施形態に限定されることも意図されていない。当業者には、説明した実施形態の範囲および思想から逸脱することなく多くの変更形態および変形形態が明らかであろう。本明細書で使用される用語は、実施形態の原理、実際の適用例、もしくは市場で見られる技術を超える技術的な改良を最もよく説明するように、または本明細書で開示される実施形態を当業者が理解することが可能になるように選択されたものである。
上記では最良の状態または他の例あるいはその両方であると考えられるものについて説明したが、その中で様々な修正を加えることができること、本明細書に開示された主題が様々な形式および例で実施され得ること、および教示を多くの用途に適用することができ、本明細書にはその用途の一部のみが記載されていることが理解される。以下の特許請求の範囲は、本教示の真の範囲内にあるあらゆる用途、修正、および変形を特許請求することを意図している。
本明細書で説明したコンポーネント、ステップ、特徴、対象物、利益、および利点は、単なる例示にすぎない。それらのいずれも、それらに関連する説明も、保護の範囲を制限することを意図したものではない。本明細書において様々な利点を説明してきたが、すべての実施形態が必ずしもすべての利点を含むわけではないことが理解されよう。特に明記しない限り、以下の特許請求の範囲を含め、本明細書に記載されているすべての測定値、値、定格、位置、大きさ、サイズ、および他の仕様は概算であり、正確ではない。それらは、それらが関連する機能およびそれらが関連する技術分野において慣習的であるものと一致する合理的な範囲を有することを意図している。
他の多くの実施形態もまた企図される。他の実施形態には、より少ない、追加の、または異なる、あるいはその組合せのコンポーネント、ステップ、特徴、対象物、利益、および利点を有する実施形態が含まれる。他の実施形態には、コンポーネントまたはステップあるいはその両方が、別々に構成されるか、または順序付けされるか、あるいはその両方である実施形態も含まれる。
本明細書において、本開示の態様は、本開示の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のコール・フロー図またはブロック図あるいはその両方を参照して説明されている。流れ図またはブロック図あるいはその両方の各ステップ、およびコール・フロー図またはブロック図あるいはその両方のブロックの組合せは、コンピュータ可読プログラム命令によって実施され得ることが理解されよう。
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行される命令が、コール・フロー・プロセスまたはブロック図あるいはその両方の1つまたは複数のブロックで指定された機能/作用を実施するための手段を作り出すように、コンピュータ、専用コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供されて、マシンを作り出すものであってもよい。また、これらのコンピュータ可読プログラム命令は、命令が記憶されたコンピュータ可読記憶媒体が、コール・フロー図またはブロック図あるいはその両方の1つまたは複数のブロックで指定された機能/作用の態様を実施する命令を含む製造品を含むように、コンピュータ、プログラマブル・データ処理装置、または他のデバイスあるいはその組合せに対して特定の方式で機能するように指示できる、コンピュータ可読記憶媒体に記憶されてもよい。
また、コンピュータ可読プログラム命令は、コンピュータ、他のプログラマブル装置、または他のデバイスで実行される命令が、コール・フロー・プロセスまたはブロック図あるいはその両方の1つまたは複数のブロックで指定された機能/作用を実施するように、コンピュータ実施プロセスを作り出すように、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードされて、コンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作ステップを実行させるものであってもよい。
図中のフローチャートおよびブロック図は、本開示の様々な実施形態によるシステム、方法およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能、および動作を示す。これに関して、コール・フロー・プロセスまたはブロック図の各ブロックは、指定された論理機能を実装するための1つまたは複数の実行可能命令を含む、命令のモジュール、セグメント、または一部を表すことがある。いくつかの代替の実装形態では、ブロックに記載された機能は、図に記載された順序とは異なる順序で行われてもよい。例えば、連続して示されている2つのブロックは、実際には、関与する機能に応じて、実質的に同時に実行されてもよく、またはそれらのブロックは、場合によっては逆の順序で実行されてもよい。ブロック図またはコール・フロー図あるいはその両方の各ブロック、およびブロック図またはコール・フロー図あるいはその両方のブロックの組合せは、指定された機能または動作を実行するか、あるいは専用ハードウェアとコンピュータ命令との組合せを遂行する専用ハードウェアベースのシステムによって実装され得ることにも留意されたい。
前述の内容を例示的な実施形態と併せて説明してきたが、「例示的」という用語は、最良または最適ではなく単なる例を意味するものであることが理解される。すぐ上に述べた場合を除き、記載または図示されているものは、特許請求の範囲に記載されているかどうかにかかわらず、コンポーネント、ステップ、特徴、対象物、利益、利点、または均等物を公衆へ提供することを意図するものではなく、そのように解釈されるべきではない。
本明細書で使用される用語および表現は、本明細書に特定の意味について別段の記載がある場合を除いて、対応するそれぞれの調査および研究の分野に関してそのような用語および表現に与えられる通常の意味を有することが理解されよう。第1および第2などの関係語は、あるエンティティまたはアクションを、そのエンティティ間またはアクション間の実際の関係性もしくは順序を必ずしも要求または暗示することなく、別のエンティティまたはアクションと区別するためにのみ使用されることがある。「含む(comprises)」、「含む(comprising)」という用語、またはそれらの他の変形は、要素のリストを含むプロセス、方法、物品、または装置が、それらの要素だけを含むのではなく、そのようなプロセス、方法、物品、または装置に固有ではない、または明示的に記載されていない他の要素を含み得るように、非排他的な包含を対象とすることを意図している。「a」または「an」が先行する要素は、さらなる制約がない場合、その要素を含むプロセス、方法、物品、または装置における追加の同一の要素の存在を排除するものではない。
読者が技術的開示の性質を迅速に確認できるようにするために、本開示の要約書が提供されている。要約書は、特許請求の範囲の範囲または意味を解釈または限定するためには使用されないとの理解に基づいて提出されるものである。また、前述の発明を実施するための形態では、本開示を合理化する目的で、様々な実施形態において様々な特徴がともにグループ化されていることが分かる。この開示方法は、特許請求された実施形態が各請求項に明示的に記載されているよりも多くの特徴を有するという意図を反映していると解釈されるべきではない。むしろ、以下の特許請求の範囲が反映するように、本発明の主題は、単一の開示された実施形態のすべての特徴よりも少ない特徴にある。したがって、以下の特許請求の範囲は、ここで発明を実施するための形態に組み込まれ、各請求項は別個に特許請求される主題として独立している。
Claims (20)
- ソフトウェア・アップグレードがコンピューティング・デバイスに与える潜在的な影響を判定するための方法であって、
複数のコンピューティング・デバイスを含むネットワークにおいて、各コンピューティング・デバイスに現在存在するソフトウェア要素およびハードウェア要素のプロファイルを記録する段階と、
第1のコンピューティング・デバイスに常駐するソフトウェア・アプリケーションのためのソフトウェア・アプリケーション・アップグレードについてのクエリを受信する段階と、
前記第1のコンピューティング・デバイスに現在存在する前記ソフトウェア要素および前記ハードウェア要素に基づいて、前記第1のコンピューティング・デバイスのデバイス構成を識別する段階と、
前記ソフトウェア・アプリケーション・アップグレードをインストールした前記ネットワーク内の他のコンピューティング・デバイスを識別する段階と、
識別された前記他のコンピューティング・デバイスにおける前記ソフトウェア・アプリケーション・アップグレードに関連する動作挙動の履歴を取得する段階と、
前記他のコンピューティング・デバイスのうちのそれぞれの前記プロファイルを取得する段階と、
ハードウェアまたはソフトウェアの前記ソフトウェア・アプリケーションとの競合について、前記他のコンピューティング・デバイスのうちのそれぞれの前記プロファイルを分析する段階と、
前記識別された他のコンピューティング・デバイスにおける前記ソフトウェア・アプリケーション・アップグレードに関連する前記動作挙動の履歴に基づいて、かつ前記他のコンピューティング・デバイスのうちのそれぞれの前記分析されたプロファイルと、前記第1のコンピューティング・デバイスの前記プロファイルとの間の類似性の状態に基づいて、前記ソフトウェア・アプリケーション・アップグレードが、前記第1のコンピューティング・デバイスに現在存在する前記ソフトウェア要素または前記ハードウェア要素における失敗を引き起こす可能性があるかどうかを判定する段階と、
前記判定に基づいた、前記ソフトウェア・アップグレードを前記第1のコンピューティング・デバイスにインストールするかどうかのリスクベースの推奨を、前記第1のコンピューティング・デバイスのエンド・ユーザに提示する段階と
を備える、方法。 - 第2のコンピューティング・デバイスを識別する段階であって、前記第2のコンピューティング・デバイスが安定した動作構成を示す、前記識別する段階と、
それぞれの前記他のコンピューティング・デバイスにおける前記ソフトウェア・アップグレードに関連する失敗イベントに関する属性を識別する段階と、
前記第2のコンピューティング・デバイスの構成と、前記ソフトウェア・アップグレードに関連する失敗イベントを伴うそれぞれの前記他のコンピューティング・デバイスの構成との間の差異を分析する段階と、
前記第2のコンピューティング・デバイスの前記構成とそれぞれの前記他のコンピューティング・デバイスの前記構成との前記差異を特定する段階であって、前記リスクベースの推奨が、前記特定された構成の差異に基づく、前記特定する段階と
をさらに備える、請求項1に記載の方法。 - 前記識別される属性が、前記インストールされたソフトウェア・アプリケーション・アップグレードの内容、それぞれの前記他のコンピューティング・デバイス内の他のソフトウェア・アプリケーションとの競合、および前記ソフトウェア・アップグレードされたソフトウェア・アプリケーションに期待通りに応答しないそれぞれの前記他のコンピューティング・デバイス内のハードウェアを含む、請求項2に記載の方法。
- 前記第1のコンピューティング・デバイスに前記ソフトウェア・アプリケーション・アップグレードをインストールする直前または直後に、前記第1のコンピューティング・デバイスに前記プロファイルを記録する段階をさらに備える、請求項1に記載の方法。
- 前記エンド・ユーザから重み付け値を受信する段階と、
前記重み付け値を前記ソフトウェア・アプリケーションに関連付ける段階と
をさらに備え、
前記ソフトウェア・アップグレードを前記第1のコンピューティング・デバイスにインストールするかどうかの前記推奨が、前記ソフトウェア・アプリケーションの前記重み付け値にさらに基づく、
請求項1に記載の方法。 - システム管理者から重み付け値を受信する段階と、
前記重み付け値を前記ソフトウェア・アプリケーションに関連付ける段階と
をさらに備え、
前記ソフトウェア・アップグレードを前記第1のコンピューティング・デバイスにインストールするかどうかの前記推奨が、前記ソフトウェア・アプリケーションの前記重み付け値にさらに基づく、
請求項1に記載の方法。 - 前記ソフトウェア・アプリケーション・アップグレードをインストールした前記他のコンピューティング・デバイスからのエラーまたは警告メッセージをログ記録する段階
をさらに備え、
前記ソフトウェア・アプリケーション・アップグレードが、前記第1のコンピューティング・デバイスに現在存在する前記ソフトウェア要素または前記ハードウェア要素における失敗を引き起こす可能性があるかどうかの前記判定が、前記ソフトウェア・アプリケーション・アップグレードをインストールした前記ネットワーク内の前記他のコンピューティング・デバイスからの前記ログ記録されたエラーおよび警告メッセージの履歴に基づく、
請求項1に記載の方法。 - ソフトウェア・アップグレードがコンピューティング・デバイスに与える潜在的な影響を判定するためのコンピュータ・プログラムであって、前記コンピュータ・プログラムが、
プログラム命令を備え、
前記プログラム命令が、
複数のコンピューティング・デバイスを含むネットワークにおいて、各コンピューティング・デバイスに現在存在するソフトウェア要素およびハードウェア要素のプロファイルを記録することと、
第1のコンピューティング・デバイスに常駐するソフトウェア・アプリケーションのためのソフトウェア・アプリケーション・アップグレードについてのクエリを受信することと、
前記第1のコンピューティング・デバイスに現在存在する前記ソフトウェア要素および前記ハードウェア要素に基づいて、前記第1のコンピューティング・デバイスのデバイス構成を識別することと、
前記ソフトウェア・アプリケーション・アップグレードをインストールした前記ネットワーク内の他のコンピューティング・デバイスを識別することと、
識別された前記他のコンピューティング・デバイスにおける前記ソフトウェア・アプリケーション・アップグレードに関連する動作挙動の履歴を取得することと、
前記他のコンピューティング・デバイスのうちのそれぞれの前記プロファイルを取得することと、
ハードウェアまたはソフトウェアの前記ソフトウェア・アプリケーションとの競合について、前記他のコンピューティング・デバイスのうちのそれぞれの前記プロファイルを分析することと、
前記識別された他のコンピューティング・デバイスにおける前記ソフトウェア・アプリケーション・アップグレードに関連する前記動作挙動の履歴に基づいて、かつ前記他のコンピューティング・デバイスのうちのそれぞれの前記分析されたプロファイルと、前記第1のコンピューティング・デバイスの前記プロファイルとの間の類似性の状態に基づいて、前記ソフトウェア・アプリケーション・アップグレードが、前記第1のコンピューティング・デバイスに現在存在する前記ソフトウェア要素または前記ハードウェア要素における失敗を引き起こす可能性があるかどうかを判定することと、
前記判定に基づいた、前記ソフトウェア・アップグレードを前記第1のコンピューティング・デバイスにインストールするかどうかのリスクベースの推奨を、前記第1のコンピューティング・デバイスのエンド・ユーザに提示することと
を含む、
コンピュータ・プログラム。 - 前記プログラム命令が、
第2のコンピューティング・デバイスを識別することであって、前記第2のコンピューティング・デバイスが安定した動作構成を示す、前記識別することと、
それぞれの前記他のコンピューティング・デバイスにおける前記ソフトウェア・アップグレードに関連する失敗イベントに関する属性を識別することと、
前記第2のコンピューティング・デバイスの構成と、前記ソフトウェア・アップグレードに関連する失敗イベントを伴うそれぞれの前記他のコンピューティング・デバイスの前記構成との間の差異を分析することと、
前記第2のコンピューティング・デバイスの前記構成とそれぞれの前記他のコンピューティング・デバイスの構成との前記差異を特定することであって、前記リスクベースの推奨が、前記特定された構成の差異に基づく、前記特定することと
をさらに含む、請求項8に記載のコンピュータ・プログラム。 - 前記識別される属性が、前記インストールされたソフトウェア・アプリケーション・アップグレードの内容、それぞれの前記他のコンピューティング・デバイス内の他のソフトウェア・アプリケーションとの競合、および前記ソフトウェア・アップグレードされたソフトウェア・アプリケーションに期待通りに応答しないそれぞれの前記他のコンピューティング・デバイス内のハードウェアを含む、請求項9に記載のコンピュータ・プログラム。
- 前記プログラム命令が、前記第1のコンピューティング・デバイスに前記ソフトウェア・アプリケーション・アップグレードをインストールする直前または直後に、前記第1のコンピューティング・デバイスに前記プロファイルを記録することをさらに含む、請求項8から10のいずれか一項に記載のコンピュータ・プログラム。
- 前記プログラム命令が、
前記エンド・ユーザから重み付け値を受信することと、
前記重み付け値を前記ソフトウェア・アプリケーションに関連付けることと
をさらに含み、
前記ソフトウェア・アップグレードを前記第1のコンピューティング・デバイスにインストールするかどうかの前記推奨が、前記ソフトウェア・アプリケーションの前記重み付け値にさらに基づく、
請求項8から11のいずれか一項に記載のコンピュータ・プログラム。 - 前記プログラム命令が、
システム管理者から重み付け値を受信することと、
前記重み付け値を前記ソフトウェア・アプリケーションに関連付けることと
をさらに含み、
前記ソフトウェア・アップグレードを前記第1のコンピューティング・デバイスにインストールするかどうかの前記推奨が、前記ソフトウェア・アプリケーションの前記重み付け値にさらに基づく、
請求項8から12のいずれか一項に記載のコンピュータ・プログラム。 - 前記プログラム命令が、
前記ソフトウェア・アプリケーション・アップグレードをインストールした前記他のコンピューティング・デバイスからのエラーまたは警告メッセージをログ記録すること
をさらに含み、
前記ソフトウェア・アプリケーション・アップグレードが、前記第1のコンピューティング・デバイスに現在存在する前記ソフトウェア要素または前記ハードウェア要素における失敗を引き起こす可能性があるかどうかの前記判定が、前記ソフトウェア・アプリケーション・アップグレードをインストールした前記ネットワーク内の前記他のコンピューティング・デバイスからの前記ログ記録されたエラーおよび警告メッセージの履歴に基づく、
請求項8から13のいずれか一項に記載のコンピュータ・プログラム。 - 更新推奨コンピュータ・サーバであって、
ネットワーク接続と、
1つまたは複数のコンピュータ可読記憶媒体と、
前記ネットワーク接続に結合され、前記1つまたは複数のコンピュータ可読記憶媒体に結合されたプロセッサと、
前記1つまたは複数のコンピュータ可読記憶媒体に集合的に記憶されたプログラム命令を含むコンピュータ・プログラム製品と
を備え、
前記プログラム命令が、
複数のコンピューティング・デバイスを含むネットワークにおいて、各コンピューティング・デバイスに現在存在するソフトウェア要素およびハードウェア要素のプロファイルを記録することと、
第1のコンピューティング・デバイスに常駐するソフトウェア・アプリケーションのためのソフトウェア・アプリケーション・アップグレードについてのクエリを受信することと、
前記第1のコンピューティング・デバイスに現在存在する前記ソフトウェア要素および前記ハードウェア要素に基づいて、前記第1のコンピューティング・デバイスのデバイス構成を識別することと、
前記ソフトウェア・アプリケーション・アップグレードをインストールした前記ネットワーク内の他のコンピューティング・デバイスを識別することと、
識別された前記他のコンピューティング・デバイスにおける前記ソフトウェア・アプリケーション・アップグレードに関連する動作挙動の履歴を取得することと、
前記他のコンピューティング・デバイスのうちのそれぞれの前記プロファイルを取得することと、
ハードウェアまたはソフトウェアの前記ソフトウェア・アプリケーションとの競合について、前記他のコンピューティング・デバイスのうちのそれぞれの前記プロファイルを分析することと、
前記識別された他のコンピューティング・デバイスにおける前記ソフトウェア・アプリケーション・アップグレードに関連する前記動作挙動の履歴に基づいて、かつ前記他のコンピューティング・デバイスのうちのそれぞれの前記分析されたプロファイルと、前記第1のコンピューティング・デバイスの前記プロファイルとの間の類似性の状態に基づいて、前記ソフトウェア・アプリケーション・アップグレードが、前記第1のコンピューティング・デバイスに現在存在する前記ソフトウェア要素または前記ハードウェア要素における失敗を引き起こす可能性があるかどうかを判定することと、
前記判定に基づいた、前記ソフトウェア・アプリケーション・アップグレードを前記第1のコンピューティング・デバイスにインストールするかどうかのリスクベースの推奨を、前記第1のコンピューティング・デバイスのエンド・ユーザに提示することと
を含む、
コンピュータ・サーバ。 - 前記プログラム命令が、
第2のコンピューティング・デバイスを識別することであって、前記第2のコンピューティング・デバイスが安定した動作構成を示す、前記識別することと、
それぞれの前記他のコンピューティング・デバイスにおける前記ソフトウェア・アプリケーション・アップグレードに関連する失敗イベントに関する属性を識別することと、
前記第2のコンピューティング・デバイスの構成と、前記ソフトウェア・アプリケーション・アップグレードに関連する失敗イベントを伴うそれぞれの前記他のコンピューティング・デバイスの前記構成との間の差異を分析することと、
前記第2のコンピューティング・デバイスの前記構成とそれぞれの前記他のコンピューティング・デバイスの構成との前記差異を特定することであって、前記リスクベースの推奨が、前記特定された構成の差異に基づく、前記特定することと
をさらに含む、請求項15に記載のコンピュータ・サーバ。 - 前記プログラム命令が、
前記第1のコンピューティング・デバイスに前記ソフトウェア・アプリケーション・アップグレードをインストールする直前または直後に、前記第1のコンピューティング・デバイスに前記プロファイルを記録すること
をさらに含む、請求項15または16に記載のコンピュータ・サーバ。 - 前記プログラム命令が、
前記エンド・ユーザから重み付け値を受信することと、
前記重み付け値を前記ソフトウェア・アプリケーションに関連付けることと
をさらに含み、
前記ソフトウェア・アプリケーション・アップグレードを前記第1のコンピューティング・デバイスにインストールするかどうかの前記推奨が、前記ソフトウェア・アプリケーションの前記重み付け値にさらに基づく、
請求項15から17のいずれか一項に記載のコンピュータ・サーバ。 - 前記プログラム命令が、
システム管理者から重み付け値を受信することと、
前記重み付け値を前記ソフトウェア・アプリケーションに関連付けることと
をさらに含み、
前記ソフトウェア・アプリケーション・アップグレードを前記第1のコンピューティング・デバイスにインストールするかどうかの前記推奨が、前記ソフトウェア・アプリケーションの前記重み付け値にさらに基づく、
請求項15から18のいずれか一項に記載のコンピュータ・サーバ。 - 前記プログラム命令が、
前記ソフトウェア・アプリケーション・アップグレードをインストールした前記他のコンピューティング・デバイスからのエラーまたは警告メッセージをログ記録すること
をさらに含み、
前記ソフトウェア・アプリケーション・アップグレードが、前記第1のコンピューティング・デバイスに現在存在する前記ソフトウェア要素または前記ハードウェア要素における失敗を引き起こす可能性があるかどうかの前記判定が、前記ソフトウェア・アプリケーション・アップグレードをインストールした前記ネットワーク内の前記他のコンピューティング・デバイスからの前記ログ記録されたエラーおよび警告メッセージの履歴に基づく、
請求項15から19のいずれか一項に記載のコンピュータ・サーバ。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/133,491 | 2020-12-23 | ||
US17/133,491 US12032461B2 (en) | 2020-12-23 | Software upgrade stability recommendations |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022100301A true JP2022100301A (ja) | 2022-07-05 |
Family
ID=80080981
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021208872A Pending JP2022100301A (ja) | 2020-12-23 | 2021-12-23 | ソフトウェア・アップグレードがコンピューティング・デバイスに与える潜在的な影響を判定するための方法、コンピュータ・プログラム、および更新推奨コンピュータ・サーバ(ソフトウェア・アップグレードの安定性の推奨) |
Country Status (4)
Country | Link |
---|---|
JP (1) | JP2022100301A (ja) |
CN (1) | CN114661319A (ja) |
DE (1) | DE102021130957A1 (ja) |
GB (1) | GB2604007A (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114422486B (zh) * | 2022-03-14 | 2024-01-16 | 潍柴动力股份有限公司 | 一种终端的软件版本升级方法、系统以及车辆 |
CN118170418A (zh) * | 2024-05-15 | 2024-06-11 | 威海双子星软件科技有限公司 | 一种软件系统维护信息的管理方法 |
-
2021
- 2021-11-25 DE DE102021130957.3A patent/DE102021130957A1/de active Pending
- 2021-11-30 CN CN202111439593.8A patent/CN114661319A/zh active Pending
- 2021-12-03 GB GB2117487.5A patent/GB2604007A/en not_active Withdrawn
- 2021-12-23 JP JP2021208872A patent/JP2022100301A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
DE102021130957A1 (de) | 2022-06-23 |
US20220197770A1 (en) | 2022-06-23 |
GB202117487D0 (en) | 2022-01-19 |
CN114661319A (zh) | 2022-06-24 |
GB2604007A (en) | 2022-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11449379B2 (en) | Root cause and predictive analyses for technical issues of a computing environment | |
US10162650B2 (en) | Maintaining deployment pipelines for a production computing service using live pipeline templates | |
US10255058B2 (en) | Analyzing deployment pipelines used to update production computing services using a live pipeline template process | |
US9921952B2 (en) | Early risk identification in DevOps environments | |
US10193961B2 (en) | Building deployment pipelines for a production computing service using live pipeline templates | |
US10334058B2 (en) | Matching and enforcing deployment pipeline configurations with live pipeline templates | |
US20180275989A1 (en) | Automated program code analysis and reporting | |
US11023325B2 (en) | Resolving and preventing computer system failures caused by changes to the installed software | |
US10289468B1 (en) | Identification of virtual computing instance issues | |
US11671506B2 (en) | Microservice management system for recommending modifications to optimize operation of microservice-based systems | |
US20230161694A1 (en) | Orchestration for automated performance testing | |
US11086767B2 (en) | Intelligent generation of log messages by a SAAS offering in a continuous pipeline | |
US11474905B2 (en) | Identifying harmful containers | |
US10439876B2 (en) | System and method for determining information technology component dependencies in enterprise applications by analyzing configuration data | |
JP2022100301A (ja) | ソフトウェア・アップグレードがコンピューティング・デバイスに与える潜在的な影響を判定するための方法、コンピュータ・プログラム、および更新推奨コンピュータ・サーバ(ソフトウェア・アップグレードの安定性の推奨) | |
US9256509B1 (en) | Computing environment analyzer | |
WO2017112801A1 (en) | Live pipeline templates-template creation and extensibility | |
US11656977B2 (en) | Automated code checking | |
JP2023044720A (ja) | クラッシュしたアプリケーションを修復するためのコンピュータ実装方法、コンピュータプログラム製品、およびリモートコンピュータサーバ(クラッシュしたプロセスのリモート修復) | |
CN115686535A (zh) | 一种Kubernetes集群的巡检方法、装置及应用 | |
US12032461B2 (en) | Software upgrade stability recommendations | |
US20170068918A1 (en) | Risk assessment in online collaborative environments | |
US9436523B1 (en) | Holistic non-invasive evaluation of an asynchronous distributed software process | |
CN116881161A (zh) | 软件测试方法、系统、装置和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20220518 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240620 |