JP3960961B2 - ソフトウェアに修正情報を適用する装置および方法 - Google Patents

ソフトウェアに修正情報を適用する装置および方法 Download PDF

Info

Publication number
JP3960961B2
JP3960961B2 JP2003329007A JP2003329007A JP3960961B2 JP 3960961 B2 JP3960961 B2 JP 3960961B2 JP 2003329007 A JP2003329007 A JP 2003329007A JP 2003329007 A JP2003329007 A JP 2003329007A JP 3960961 B2 JP3960961 B2 JP 3960961B2
Authority
JP
Japan
Prior art keywords
software
name
customer
server
version
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.)
Expired - Fee Related
Application number
JP2003329007A
Other languages
English (en)
Other versions
JP2005092803A (ja
Inventor
英樹 櫻井
和彦 右田
和樹 下島
栄一 長浜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2003329007A priority Critical patent/JP3960961B2/ja
Priority to US10/809,370 priority patent/US7487536B2/en
Publication of JP2005092803A publication Critical patent/JP2005092803A/ja
Application granted granted Critical
Publication of JP3960961B2 publication Critical patent/JP3960961B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44536Selecting among different versions

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、ソフトウェアを複数のサーバに動的に割り当てて顧客サービスを行うシステムにおいて、ソフトウェアに修正情報を適用する装置および方法に関する。
近年、ネットワーク環境を有しコンピュータシステムの維持管理を行うデータセンタにおいて複数のコンピュータリソースを複数の顧客に動的に割り当てることで、リソースの有効活用を図るシステムが提案されている。このようなシステムとしては、例えば、IBM社(International Business Machines Corporation )のAutonomic Computing や、HP社(Hewlett-Packard Company )のUtility Data Center 、サン・マイクロシステムズ社(Sun Microsystems, Inc.)のN1等が挙げられる。
リソースの種類としては、CPU(中央処理装置)、ネットワーク装置等のハードウェアと、オペレーティングシステム(OS)、アプリケーションプログラム(以下、アプリケーションと記す)等のソフトウェアがある。ソフトウェアには、OSやアプリケーション等のプログラムの他に、プログラムにより使用されるデータも含まれる。
図23は、このようなシステムにおいて、各サーバで動作している各顧客の各ソフトウェアについて、どのバージョンのものが稼動しているかを示している。ここでは、サーバS1〜S3が顧客Aに割り当てられており、サーバS5およびS6が顧客Bに割り当てられており、サーバS7が顧客Cに割り当てられている。
例えば、サーバS1では顧客Aのシステムとして、オペレーティングシステムOS1とアプリケーションAP1が稼動しており、サーバS6では顧客Bのシステムとして、オペレーティングシステムOS2とデータベースDB2が稼動している。また、サーバS7では顧客Cのシステムとして、オペレーティングシステムOS1とデータベースDB2が稼動している。サーバS4では何も動作しておらず、このサーバは空き状態となっている。状況によっては、サーバS4でいずれかの顧客のシステムが稼動することもあり得る。
このように、複数のサーバを複数の顧客が共有し動的に稼動状態が変更されるシステムは新しいシステムであり、リソースの保守運用についても新しい方法が求められる。特に、ソフトウェアについては、ベンダから頻繁に修正情報(パッチ)が提供されるので、システムの維持管理のためにはそれらのパッチを随時システムに適用して保守していかなければならない。
従来の保守運用方法では、データセンタのオペレータが人手で保守作業を行っていた。例えば、システム上のリソース情報を表形式で管理し、リソースの修正情報がベンダから提供された場合は、オペレータがその情報を分析して、ベンダにより指定されたシステム構成と現状のシステム構成との比較検討を行うことで、修正情報適用の可否を決めていた。実際に修正情報をリソースに適用する際には、あらかじめ顧客との間で取り決められたタイミング(例えば、週2回深夜1時〜3時等)で顧客システムを停止して、人手で修正作業を行うケースがほとんどである。
また、単一の顧客システムに対するプログラム修正の適用を支援するシステムも提案されている(例えば、特許文献1参照)。
特開2000−10766号公報
しかしながら、上述した従来の保守運用方法には、次のような問題がある。
顧客サービスとして既に割り当てられ稼動しているリソースに対しては、そのままの状態ではパッチを適用することができず、これを適用するためにシステムを停止せざるを得なくなるという危険性がある。
また、リソースが大量になると、どのソフトウェアがどのバージョンになっているのかを簡単に知ることができない。あるアプリケーションに対して緊急のパッチが発行されたとしても、それをどのソフトウェアに適用する必要があるのかを調べるのに手間がかかる。つまり、大量にあるリソースのそれぞれについて、どの程度新しいバージョンのアプリケーションが動作していてどの程度安全であるのかについて、統一的に知る手段がない。
このため、どのサーバでどのソフトウェアが動作しているかを一元管理できて、ソフトウェアのアップデートまで自動化可能なシステムは、まだ実現されていない。しかし、サーバの数が大量になってくるとオペレータが管理可能な限界を超えてしまうので、システム自身が自動的に管理する機能は今後必ず必要になると考えられる。
さらに、ソフトウェアに対するパッチの適用は必ずしもすべて必須というわけではない。また、顧客システムのカスタマイズ内容等によっては、最新のパッチを適用することによって不都合が発生することも考えられる。したがって、パッチ適用の可否を適切に判断する機能も望まれる。
本発明の課題は、複数のソフトウェアを複数のサーバに動的に割り当てて顧客サービスを行うシステムにおいて、ソフトウェアに対して修正情報を的確に適用する装置および方法を提供することである。
図1は、本発明の修正適用装置の原理図である。図1の修正適用装置は、計算手段101、格納手段102、および適用手段103を備え、ソフトウェアを複数のサーバ104−1,104−2,...,104−mに動的に割り当てて顧客サービスを行うシステムにおいてソフトウェアに修正情報を適用する。
計算手段101は、修正情報の発行時に提供される情報を用いて、顧客が使用しているソフトウェア105の新しさとソフトウェア105のセキュリティレベルを統合した指標を計算する。格納手段102は、顧客により指定された、指標に対する制約条件105を格納する。適用手段103は、計算された指標が制約条件106を満たすか否かをチェックし、計算された指標が制約条件106を満たさなければ、ソフトウェア105に修正情報を適用してソフトウェア105をアップデートする。
このような修正適用装置によれば、ソフトウェアの新しさとセキュリティレベルを統合した指標と、顧客毎のカスタマイズレベルを表す制約条件とを用いて、システム上で稼動している各顧客のソフトウェアが統一的に管理される。この指標は、新たな修正情報が発行される度に再計算され、あらかじめ設定された制約条件を満たさなくなると、発行された修正情報が該当する顧客のソフトウェアに適用される。
このとき、適用手段103は、いずれの顧客にも割り当てられていない空きサーバ上に、顧客が使用しているソフトウェア105が稼動している処理対象サーバ104−2と同じソフトウェア構成を用意し、空きサーバ上でソフトウェア105に修正情報を適用し、処理対象サーバ104−2の代わりに空きサーバを顧客に割り当てることで、ソフトウェア105をアップデートすることができる。
また、適用手段103は、空きサーバ上で、いずれの顧客にも割り当てられていないソフトウェアに修正情報を適用してそのソフトウェアをアップデートし、そのソフトウェアを必要とする顧客が現れたとき空きサーバをその顧客に割り当てることもできる。
計算手段101、格納手段102、および適用手段103は、例えば、後述する図2のパッチデータ管理部205、顧客使用ソフトウェア一覧表212、および動的アサイン管理部206に対応する。また、計算手段101が計算する指標は、後述するクリーンポイントに対応する。
本発明の別の修正適用装置は、格納手段、計算手段101、および適用手段103を備え、複数のサーバとネットワーク環境により接続され、それらのサーバの各々を複数の顧客のいずれかに動的に割り当て、それぞれのサーバで稼動しているソフトウェアに修正情報を適用する。格納手段は、既に発行された修正情報の適用対象ソフトウェア名、発行日、重要度、およびバージョンの対応関係を示す管理情報と、顧客名、使用ソフトウェア名、および顧客指定の閾値を含む制約条件の対応関係を示す顧客使用ソフトウェア一覧表と、サーバ名、顧客名、インストールソフトウェア名、およびバージョンの対応関係を示す動的アサイン表を格納する。計算手段101は、新たな修正情報の発行時に管理情報を参照して、新たな修正情報の適用対象ソフトウェア名に対応するソフトウェアのそれぞれのバージョンについて、発行日に対応する基本ポイントを計算し、得られた基本ポイントをそれぞれのバージョンの重要度に応じて変更することで、それぞれのバージョンの指標を計算する。適用手段103は、顧客使用ソフトウェア一覧表を参照して、新たな修正情報の適用対象ソフトウェア名と同じ使用ソフトウェア名に対応する顧客名および制約条件を取得し、動的アサイン表を参照して、適用対象ソフトウェア名と同じインストールソフトウェア名に対応する顧客名およびバージョンを取得し、顧客名毎に、取得したバージョンについて計算された指標を取得した制約条件の閾値と比較して、計算された指標が制約条件を満たすか否かをチェックし、計算された指標が制約条件を満たさなければ、動的アサイン表を参照して、適用対象ソフトウェア名と同じインストールソフトウェア名に対応するサーバ名を取得し、取得したサーバ名のサーバで稼動しているインストールソフトウェアに新たな修正情報を適用してインストールソフトウェアをアップデートする。
本発明によれば、各顧客システムの稼動状況やカスタマイズレベルに応じて、修正情報適用の可否が的確に判断される。これにより、顧客システムの安定稼動が可能になり、運用オペレータの作業が軽減される。また、空きサーバを利用してソフトウェアをアップデートすることにより、顧客システムを停止せずにリソースを最新かつ安全な状態にすることができる。
以下、図面を参照しながら、本発明を実施するための最良の形態を詳細に説明する。
一般に、顧客は、システムが一定のセキュリティレベルを維持することを期待するものである。そこで、本実施形態では、このセキュリティレベルを数値で表し、パッチの適用が必要か否かをシステムが自動的に判断できるようにするために、ソフトウェアリソースのクリーンポイントという指標を導入する。
クリーンポイントは、ソフトウェアのクリーンさの程度を表す。ソフトウェアのバージョンが新しいほど、また、ソフトウェアのセキュリティレベルが高いほど、クリーンポイントの数値は大きくなる。
本実施形態の修正適用装置は、以下のような機能を有する。
・各ソフトウェアについてクリーンポイントを計算する。
・各顧客が必要とするソフトウェアとそのソフトウェアに対する制約条件を管理するための顧客使用ソフトウェア一覧表を作成する。
・各顧客に対するリソースの割り当て状況を管理するための動的アサイン表を作成する。
・リソースとパッチの適用状態の組み合わせを管理するためのアップデート適用表を作成する。
・ソフトウェアベンダから提供されるパッチ情報をシステムで一元管理できる状態に正規化するためのパッチ情報解釈部を有する。
・パッチ情報を管理し、すべてのソフトウェアについてのクリーンポイントをあらかじめ計算するためのパッチデータ管理部を有する。
・システム上の全サーバについてどのソフトウェアが稼動しているかを一元管理するための動的アサイン管理部を有する。
・ある時点でどの顧客にも割り当てられていない空きサーバを利用して、あらかじめソフトウェアにアップデートパッチを適用しておき、そのソフトウェアを顧客に割り当てることで、即座にクリーンなソフトウェアを提供する。
・空きサーバを利用してソフトウェアに緊急アップデートパッチを適用し、空きサーバを順番に稼動状態に切り替えることで、稼動中のシステムをクリーンな状態に移行させる。
・各顧客が現有するすべてのソフトウェアについてクリーンポイントを計算し、顧客毎のシステムの安全性を可視化する。
図2は、このような修正適用装置の構成図である。図2の修正適用装置は、パッチ情報解釈部203、204、パッチデータ管理部205、および動的アサイン管理部206を備え、共用サーバプール207上で動作している各顧客システムのソフトウェアに対して、パッチ提供元201および202から提供されたパッチを適用する。
パッチ提供元201および202は、各ソフトウェアを作成するベンダであり、ベンダ毎にパッチ情報およびパッチデータの提供方法が異なる。パッチ情報は、パッチ提供元から提供されるパッチの適用方法に関する情報であり、パッチデータは、ソフトウェアに適用されるパッチ本体のデータである。パッチ情報解釈部203および204は、ベンダ毎に異なるパッチ提供方法の差異を吸収し、ソフトウェアの名称、バージョン、および重要度を正規化する。
図2では、2つのパッチ提供元に応じて2つのパッチ情報解釈部が示されているが、3つ以上のパッチ提供元が存在する場合は、パッチ提供元の数に応じて複数のパッチ情報解釈部が用意される。また、1つのパッチ情報解釈部が複数のパッチ提供元から提供されるパッチ情報を解釈することも可能である。
パッチデータ管理部205は、共用サーバプール207で使用される全ソフトウェアについて、データベース211に格納されたパッチ情報とパッチデータを管理し、パッチの時系列と重要度に基づいてソフトウェアのクリーンポイントを計算する。また、新しいパッチが発行された場合は、そのパッチ情報を動的アサイン管理部206に通知する。
動的アサイン管理部206は、顧客使用ソフトウェア一覧表212、動的アサイン表213、およびアップデート適用表214を保持し、これらの表の内容を動的に管理する。そして、顧客使用ソフトウェア一覧表212を参照して新しいパッチの適用可否を判断し、適用可と判断したパッチを共用サーバプール207上のソフトウェアに適用する。適用処理の詳細については後述することにする。
共用サーバプール207は複数のサーバS1〜S7からなり、そのうち1つ以上のサーバ上で各顧客のシステムが動作する。状況に応じて稼動状態は異なり、ある時点で顧客Aに割り当てられていたリソースが、別の時点では顧客Bに割り当てられることもあり得る。
次に、図3から図20までを参照しながら、図2の修正適用装置の処理についてより詳細に説明する。
図3は、図2のパッチ情報解釈部203により行われるパッチ情報解釈処理を示している。パッチ提供元201から発行されたパッチ情報301は、電子メール等の方法でパッチ情報解釈部203に転送される。パッチ情報解釈部203は、パッチ情報解釈対応表302を参照してパッチ情報301を解釈し、パッチ情報301から日付、ソフトウェア名、重要度、およびバージョンを含むパッチ管理情報303を抽出し、パッチ情報301に含まれるリンク先からパッチデータ304を取得する。そして、得られたパッチ管理情報303およびパッチデータ304をデータベース211に登録する。
図4は、パッチ情報301、パッチ情報解釈対応表302、パッチ管理情報303、およびパッチデータ304の例を示している。パッチ情報301には、発行日401、影響ソフトウェア名402、セキュリティレベル403、およびダウンロード情報404が含まれている。また、パッチ情報解釈対応表302は、日付405、ソフトウェア名406、重要度407、バージョン408、およびパッチデータ409のエントリを有し、各エントリには必要な管理情報の記載位置が記録されている。
パッチ情報解釈部203は、パッチ情報解釈対応表302の各エントリに記録された記載位置の情報に基づいて、パッチ情報301の対応する位置から管理情報を抽出する。抽出されたバージョンは、パッチのバージョンであると同時に、ソフトウェアのバージョンでもある。
パッチ情報解釈対応表302の重要度407のエントリには、パッチ情報301に記載されたセキュリティレベル403の種類に応じて、レベルの低い方から順番に1から始まる番号で重要度が指定されている。ここでは、セキュリティレベル403に“緊急”と記載されているので、対応する重要度“4”がパッチ管理情報303として出力される。
また、パッチ情報解釈部203は、パッチデータ409のエントリに記録された記載位置の情報に基づいて、パッチ情報301の対応する位置からリンク先の情報を抽出し、そのリンク先からパッチデータ304をダウンロードする。
顧客が使用するソフトウェアのパッチ提供元毎にこのようなパッチ情報解釈対応表302を用意しておくことで、修正適用装置は、自動的に必要な情報を取得することができるようになる。
図5は、上述したパッチ情報解釈処理のフローチャートである。パッチ情報解釈部203は、パッチ提供元201から新しいパッチ情報301を受け取ると、まず、パッチ情報解釈対応表302を参照して、パッチの適用対象となるソフトウェアの名称を抽出し(ステップ501)、システムで使用しているソフトウェアか否かをチェックする(ステップ502)。ソフトウェア名が使用ソフトウェアに該当しなければ、そのパッチを適用する必要がないので、そのまま処理を終了する。
ソフトウェア名が使用ソフトウェアに該当すれば、次に、パッチの発行日を抽出し(ステップ503)、パッチの重要度を抽出し(ステップ504)、パッチのバージョンを抽出する(ステップ505)。
次に、パッチのダウンロード方法を抽出し(ステップ506)、その方法に従ってパッチデータ304をダウンロードする(ステップ507)。
そして、抽出された日付、ソフトウェア名、重要度、およびバージョンからなるパッチ管理情報303と、ダウンロードされたパッチデータ304とをデータベース211に登録して(ステップ508)、処理を終了する。図2のパッチ情報解釈部204も、基本的にパッチ情報解釈部203と同様の処理を行う。
図6は、図2のパッチデータ管理部205により用いられるクリーンポイントの計算方法の例を示している。パッチデータ管理部205は、データベース211に登録されたソフトウェアAの各バージョンのパッチ管理情報に基づいて、各バージョンのクリーンポイントを計算する。このとき、まず、各バージョンの基本ポイントと重要度から、各バージョンにおける正規化前のクリーンポイントを計算し、得られた値を最新バージョンの値をもとにして正規化する。
この計算方法では、まず、ソフトウェアAの初版であるバージョン1.0の発行日と、最新バージョンであるバージョン1.3の発行日をもとに、時間軸が作成される。次に、初版をポイント“1”、最新バージョンをポイント“100”として、単純に各バージョンの発行日に対応する基本ポイントが計算され、基本ポイントグラフが作成される。
図6の例では、ソフトウェアAの各バージョンの基本ポイントは、以下のように算出される。

バージョン1.0 基本ポイント“1”
バージョン1.1 基本ポイント“80”
バージョン1.2 基本ポイント“95”
バージョン1.3 基本ポイント“100”

次に、初版の重要度を“1”として、各バージョンの重要度をもとにした重要度グラフが作成される。最後に、各バージョンの重要度に応じて基本ポイントグラフの傾きを変更したグラフが作成され、最新バージョンのポイントが“100”となるように、各バージョンのポイントが正規化される。こうして算出された各バージョンのポイントが、クリーンポイントとして記録される。
以上のようなクリーンポイントの計算方法は、次式により表される。

n=an-1+(tn−tn-1)×sn (n=1,...,N) (1)
1=1 (2)
i=(ai/aN)×100 (i=2,...,N) (3)

ただし、(1)式において、tnはn番目のバージョンの基本ポイント、snはn番目のバージョンの重要度、anはn番目のバージョンの正規化される前のクリーンポイントを表し、t0=0、a0=0とする。1番目のバージョンは初版に相当し、N番目のバージョンは最新バージョンに相当する。また、(2)および(3)式において、Ci(i=1,...,N)はi番目のバージョンの正規化されたクリーンポイントを表す。
実際には、パッチデータ管理部205は、図6に示したようなグラフを画面上に表示するのではなく、(1)〜(3)式を用いてクリーンポイントを直接算出する。この計算方法によれば、古いけれど重要なパッチや新しいけれどそれほど重要ではないパッチも含めて、すべてのバージョンのパッチを統一的に数値で表現することが可能になる。
なお、(1)〜(3)式はクリーンポイントの計算方法の一例を示しているに過ぎず、クリーンポイントの計算方法はこれに限定されるものではない。
図7は、図2の動的アサイン管理部206が保持する顧客使用ソフトウェア一覧表212の例を示している。図7の顧客使用ソフトウェア一覧表は、それぞれの顧客が使用するソフトウェアの一覧を管理するために用いられ、顧客名、ソフトウェア名、バージョン束縛条件、およびCL(クリーンポイント)閾値の各欄からなる。
バージョン束縛条件の欄には、ソフトウェアを所定のバージョンで動作させる必要がある場合にそのバージョンを指定する条件が記録され、CL制約条件の欄には、各顧客により指定された、ソフトウェアのクリーンポイントが満たすべき制約条件が記録される。この制約条件には、例えば、クリーンポイントの閾値が含まれる。
図7の701〜703の各エントリは、以下のような意味を有する。
701:顧客“USER1”は、ソフトウェア“Software1”の様々なバージョンのうち、クリーンポイントが85以上のものを使用する。
702:顧客“USER1”は、ソフトウェア“Software2”の様々なバージョンのうち、クリーンポイントが90以上のものを使用する。“Software2”は頻繁にバージョンアップされるので、“Software1”よりクリーンポイントの閾値が高く設定されている。
703:顧客“USER1”は、ソフトウェア“Software3”のバージョン1.3を使用する。ただし、この場合、バージョン1.3のクリーンポイントは“70”であるものとする。
動的アサイン管理部206は、このような顧客使用ソフトウェア一覧表を用いて顧客が要求しているソフトウェアとクリーンレベルとを認識する。
図8は、図2の動的アサイン管理部206が保持する動的アサイン表213の例を示している。図8の動的アサイン表は、現在のシステムにおいてどのサーバ上でどの顧客に対してどのソフトウェアが割り当てられているかの一覧を管理するために用いられ、サーバ名、顧客名、インストールソフトウェア名、およびバージョンの各欄からなる。インストールソフトウェア名の欄には、サーバにインストールされたソフトウェアの名称が記録され、バージョンの欄には、そのソフトウェアのバージョンが記録される。
図8の801〜804の各エントリは、以下のような意味を有する。
801:サーバ“S1”上で顧客“USER1”のために、ソフトウェア“Software1”のバージョン“1.3”が動作している。
802:サーバ“S1”上で顧客“USER1”のために、ソフトウェア“Software2”のバージョン“5.2”が動作している。
803:サーバ“S2”上でソフトウェア“Software1”のバージョン“1.3”が動作しているが、現在どの顧客にも割り当てられていない。
804:サーバ“S3”上で顧客“USER2”のために、ソフトウェア“Software3”のバージョン“3.3”が動作している。
動的アサイン管理部206は、このような動的アサイン表を用いて現在サーバ上で稼動している全顧客システムの状態を認識する。
図9は、図2の動的アサイン管理部206が保持するアップデート適用表214の例を示している。図9のアップデート適用表は、ソフトウェアのどのバージョンがどのサーバ上で動作しているかについてシステムの現状を管理するために用いられ、ソフトウェア名、サーバ名、バージョン、およびCLの各欄からなる。
図9の901〜904の各エントリは、以下のような意味を有する。
901:ソフトウェア“Software1”のバージョン“1.3”(クリーンポイント“70”)がサーバ“S1”上で動作している。
902:ソフトウェア“Software1”のバージョン“1.4”(クリーンポイント“80”)がサーバ“S2”上で動作している。
903:ソフトウェア“Software1”のバージョン“1.5”(クリーンポイント“100”)がサーバ“S3”上で動作している。
904:ソフトウェア“Software2”のバージョン“5.3”(クリーンポイント“89”)がサーバ“S2”上で動作している。
動的アサイン管理部206は、このようなアップデート適用表を用いて全サーバ上で動作しているソフトウェアの状態を認識する。このアップデート適用表を図8の動的アサイン表と組み合わせて参照すれば、顧客に割り当てられていない空きサーバを利用してソフトウェアの自動アップデートを行うことができる。
図10は、図2の修正適用装置により行われる修正適用処理のフローチャートである。パッチ提供元から新しいパッチ情報を受け取ると、まず、パッチ情報解釈部は、図5に示したパッチ情報解釈処理を行って、パッチ管理情報およびパッチデータをデータベース211に登録する(ステップ1001)。
次に、パッチデータ管理部205は、データベース211に格納されたパッチ管理情報を参照して、パッチの適用対象となるソフトウェアの各バージョンのクリーンポイントを計算し、得られたクリーンポイントの値を動的アサイン管理部206に通知する(ステップ1002)。
動的アサイン管理部206は、パッチ管理情報のソフトウェア名をキーとして顧客使用ソフトウェア一覧表212を検索し、そのソフトウェアに対して各顧客が設定しているCL制約条件を取得する。また、そのソフトウェア名をキーとして動的アサイン表213を検索し、各顧客に割り当てられているそのソフトウェアのバージョンを取得する。
そして、通知された各バージョンのクリーンポイントのうち、各顧客のバージョンに対応するクリーンポイントの値がその顧客のCL制約条件を満たすか否かをチェックする(ステップ1003)。各バージョンのクリーンポイントの値が対応する顧客のCL制約条件を満たしている場合は、パッチを適用する必要がないと判断し、そのまま処理を終了する。
いずれかのバージョンに対応するクリーンポイントの値が対応する顧客のCL制約条件を満たさない場合は、その顧客のソフトウェアに対してパッチを適用する必要があると判断する。そこで、共用サーバプール207の空きサーバを利用して、その顧客に割り当てられているサーバと同じソフトウェア構成で、かつ、対象ソフトウェアにパッチが適用された状態を作り出す(ステップ1004〜1010)。このとき、空きサーバ上に必要なソフトウェアがそろっていない場合は、状況に応じて各ソフトウェアのインストール、アップデート、およびアンインストールが行われる。
動的アサイン管理部206は、まず、動的アサイン表213を参照して、対象ソフトウェアがインストールされているサーバと空きサーバを検出し、前者を処理対象サーバとする。そして、処理対象サーバと同じ構成を実現するために不要なソフトウェアが空きサーバにあるか否かをチェックし(ステップ1004)、そのようなソフトウェアがあれば、そのソフトウェアのアンインストールを実行する(ステップ1005)。
次に、動的アサイン表213を参照して、対象ソフトウェア以外のソフトウェアであって、処理対象サーバのものより古いバージョンのソフトウェアが空きサーバにあるか否かをチェックする(ステップ1006)。そして、そのようなソフトウェアがあれば、そのソフトウェアをアップデートする(ステップ1007)。
次に、動的アサイン表213を参照して、処理対象サーバと同じ構成を実現するために必要なソフトウェアがすべて空きサーバにあるか否かをチェックし(ステップ1008)、不足しているソフトウェアがあれば、そのソフトウェアを空きサーバにインストールする(ステップ1009)。
そして、空きサーバ上で対象ソフトウェアにパッチを適用してそのソフトウェアをアップデートし(ステップ1010)、動的アサイン表213を書き換えて、顧客へのサーバの割り当てを処理対象サーバから空きサーバへ変更する(ステップ1011)。
次に、動的アサイン表213を参照して、同じ顧客に割り当てられた残りのサーバの中にパッチを適用する必要があるサーバがあるか否かをチェックし(ステップ1012)、そのようなサーバがあれば、それを処理対象サーバとしてステップ1004以降の処理を繰り返す。
そして、その顧客のすべてのサーバについて処理が終了すると、次に、動的アサイン表213を参照して、残りの顧客に割り当てられたサーバにパッチを適用する必要があるか否かをチェックする(ステップ1013)。そのようなサーバがあればステップ1004以降の処理を繰り返し、すべての顧客のシステムについて処理が終了すると、現状のシステム構成に合わせてアップデート適用表214を書き換えて修正適用処理を終了する。
例えば、ある瞬間において、図11のような状態でシステムが稼動していたとする。この状態では、サーバS1、S2、およびS3が顧客Aに割り当てられており、サーバS5およびS6が顧客Bに割り当てられており、サーバS7が顧客Cに割り当てられている。サーバS4は空きサーバである。
サーバS1およびS2ではオペレーティングシステムOS1とアプリケーションAP1が稼動しており、サーバS3ではオペレーティングシステムOS1とデータベースDB1が稼動しており、サーバS4ではオペレーティングシステムOS1のみが稼動している。また、サーバS5ではオペレーティングシステムOS2のみが稼動しており、サーバS6ではオペレーティングシステムOS2とアプリケーションAP1が稼動しており、サーバS7ではオペレーティングシステムOS1とデータベースDB2が稼動している。オペレーティングシステムOS2は、オペレーティングシステムOS1の新しいバージョンに相当する。
ここで、AP1に対してセキュリティホール対応等の緊急アップデートパッチが発行された場合、以下のような手順で修正適用処理が行われる。
動的アサイン管理部206は、まず、サーバS1のAP1にパッチを適用してAP2にアップデートすることを決定する。サーバS4が空いているので、このサーバを利用して、サーバS1と同じソフトウェア構成で、かつ、AP1がAP2にアップデートされた状態を作り出すことにする。サーバS4には既にOS1がインストールされているがAP1がインストールされていないので、図12に示すように、サーバS4にAP1をインストールする。
次に、図13に示すように、サーバS4のAP1にパッチを適用してAP2にアップデートし、サーバS1の動的アサインをサーバS4に切り替える。これにより、図14に示すように、サーバS4は顧客Aに割り当てられてクリーンな稼動状態になり、サーバS1は空きサーバとなる。
次に、動的アサイン管理部206は、サーバS2のAP1をAP2にアップデートすることを決定する。サーバS1が空いているので、このサーバを利用して、サーバS2と同じソフトウェア構成で、かつ、AP1がAP2にアップデートされた状態を作り出すことにする。サーバS1には既にOS1とAP1がインストールされているので、図15に示すように、サーバS1のAP1をAP2にアップデートし、サーバS2の動的アサインをサーバS1に切り替える。これにより、図16に示すように、サーバS1は再び顧客Aに割り当てられてクリーンな稼動状態になり、サーバS2は空きサーバとなる。
次に、動的アサイン管理部206は、サーバS6のAP1をAP2にアップデートすることを決定する。サーバS2が空いているので、このサーバを利用して、サーバS6と同じソフトウェア構成で、かつ、AP1がAP2にアップデートされた状態を作り出すことにする。サーバS2にはOS1とAP1がインストールされているが、必要なのはOS2とAP2がインストールされた状態である。そこで、図17に示すように、まず、OS1をOS2にアップデートし、次に、AP1をAP2にアップデートして、サーバS6の動的アサインをサーバS2に切り替える。これにより、図18に示すように、サーバS2は顧客Bに割り当てられてクリーンな稼動状態になり、サーバS6は空きサーバとなる。こうして、稼動中のすべてのAP1についてAP2へのアップデートが完了する。
このような修正適用処理によれば、空きサーバを利用して緊急度の高い顧客システムから玉突き式にパッチを適用することで、パッチ適用のための無駄なシステム停止を最小限に抑えることが可能になる。空きサーバを常に1つ以上確保しておく必要があるので一見無駄が発生するように見えるが、実際には、この空きサーバを修正適用装置の様々な処理に利用することが可能である。例えば、空きサーバの能力を利用してクリーンポイント計算処理や動的アサイン管理を行えば、このサーバを有効に利用することができる。
図10の修正適用処理では、既に顧客に割り当てられているソフトウェアに対してパッチが適用されているが、空きサーバを利用すれば、まだ顧客に割り当てられていないソフトウェアに対しても事前にパッチを適用しておくことが可能である。これにより、実際にシステムが稼動している状態で、あらかじめ空きサーバにアップデートされたソフトウェアを用意しておくことができ、システムがクリーンな状態に保たれる。したがって、次に顧客への動的アサインが発生したときに、迅速にクリーンなリソースを割り当てることが可能になる。
図19は、このような事前修正適用処理のフローチャートである。この処理は、例えば、図10の修正適用処理の後で引き続いて行われる。動的アサイン管理部206は、まず、動的アサイン表213を参照して空きサーバがあるか否かをチェックし(ステップ1901)、空きサーバがなければそのまま処理を終了する。
空きサーバがあれば、動的アサイン表213を参照して、そのサーバにパッチの適用対象となるソフトウェアがあるか否かをチェックし(ステップ1902)、対象ソフトウェアがなければ、そのソフトウェアを空きサーバにインストールする(ステップ1903)。そして、空きサーバ上で対象ソフトウェアにパッチを適用してそのソフトウェアをアップデートする(ステップ1904)。
次に、他の対象ソフトウェアがあるか否かをチェックし(ステップ1905)、そのようなソフトウェアがあれば、そのソフトウェアについてステップ1901以降の処理を繰り返す。そして、すべての対象ソフトウェアについて処理が終了すると、現状のシステム構成に合わせて動的アサイン表213およびアップデート適用表214を書き換えて、事前修正適用処理を終了する。
例えば、サーバS1〜S8からなる共用サーバプールにおいて、図20のような状態でシステムが稼動していたとする。この状態では、サーバS1、S2、およびS3が顧客Aに割り当てられており、サーバS5およびS6が顧客Bに割り当てられており、サーバS7が顧客Cに割り当てられている。サーバS4およびS8は空きサーバである。
サーバS1およびS2ではオペレーティングシステムOS1とアプリケーションAP1が稼動しており、サーバS3ではオペレーティングシステムOS1とデータベースDB1が稼動しており、サーバS4ではオペレーティングシステムOS2とアプリケーションAP1が稼動している。また、サーバS5ではオペレーティングシステムOS2のみが稼動しており、サーバS6ではオペレーティングシステムOS2とデータベースDB2が稼動している。さらに、サーバS7ではオペレーティングシステムOS1とデータベースDB2が稼動しており、サーバS8ではオペレーティングシステムOS2のみが稼動している。データベースDB2は、データベースDB1の新しいバージョンに相当する。
ここで、AP1およびDB2に対してアップデート用のパッチが発行された場合、以下のような手順で事前修正適用処理が行われる。
動的アサイン管理部206は、まず、空きサーバS4を検出する。サーバS4では既にOS2とAP1が稼動しているので、AP1にパッチを適用してAP2にアップデートする。
次に、空きサーバS8を検出する。サーバS8ではOS2のみが稼動しているが、AP1に対するパッチは既にサーバS4で適用済みなので、サーバS8はDB2に対するパッチを適用するために利用することにする。そこで、まず、サーバS8にDB2をインストールし、次に、そのDB2にパッチを適用してDB3にアップデートする。
こうして、共用サーバプールには、AP1およびDB2の最新バージョンであるAP2およびDB3の稼動状態が実現される。ここで仮に、OS2とAP2を必要とする顧客への動的アサインが発生すれば、即座にサーバS4をその顧客に割り当てることができ、OS2とDB3を必要とする顧客への動的アサインが発生すれば、即座にサーバS8をその顧客に割り当てることができる。
ところで、図2の修正適用装置および各サーバは、例えば、図21に示すような情報処理装置(コンピュータ)を用いて構成することができる。図21の情報処理装置は、CPU2101、メモリ2102、入力装置2103、出力装置2104、外部記憶装置2105、媒体駆動装置2106、ネットワーク接続装置2107を備え、それらはバス2108により互いに接続されている。
メモリ2102は、例えば、ROM(read only memory)、RAM(random access memory)等を含み、処理に用いられるプログラムおよびデータを格納する。CPU2101は、メモリ2102を利用してプログラムを実行することにより、必要な処理を行う。
図2のパッチ情報解釈部203、204、パッチデータ管理部205、および動的アサイン管理部206は、メモリ2102に格納されたプログラムを実行することにより実現される機能に対応する。また、図2の顧客使用ソフトウェア一覧表212、動的アサイン表213、およびアップデート適用表214と図3のパッチ情報解釈対応表302は、メモリ2102に格納されたデータに対応する。
入力装置2103は、例えば、キーボード、ポインティングデバイス、タッチパネル等であり、オペレータからの指示や情報の入力に用いられる。出力装置2104は、例えば、ディスプレイ、プリンタ、スピーカ等であり、オペレータへの問い合わせや処理結果の出力に用いられる。
外部記憶装置2105は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク装置、テープ装置等である。情報処理装置は、この外部記憶装置2105に、上記プログラムおよびデータを格納しておき、必要に応じて、それらをメモリ2102にロードして使用する。また、外部記憶装置2105は、図2のデータベース211としても使用される。
媒体駆動装置2106は、可搬記録媒体2109を駆動し、その記録内容にアクセスする。可搬記録媒体2109は、メモリカード、フレキシブルディスク、CD−ROM(compact disk read only memory )、光ディスク、光磁気ディスク等の任意のコンピュータ読み取り可能な記録媒体である。オペレータは、この可搬記録媒体2109に上記プログラムおよびデータを格納しておき、必要に応じて、それらをメモリ2102にロードして使用する。
ネットワーク接続装置2107は、LAN(local area network)等の任意の通信ネットワークに接続され、通信に伴うデータ変換を行う。情報処理装置は、必要に応じて、上記プログラムおよびデータを外部の装置からネットワーク接続装置2107を介して受け取り、それらをメモリ2102にロードして使用する。また、ネットワーク接続装置2107は、パッチ情報やパッチデータを受信するためにも使用される。
図22は、図21の情報処理装置にプログラムおよびデータを供給することのできるコンピュータ読み取り可能な記録媒体を示している。可搬記録媒体2109やサーバ2201のデータベース2203に格納されたプログラムおよびデータは、情報処理装置2202のメモリ2102にロードされる。サーバ2201は、そのプログラムおよびデータを搬送する搬送信号を生成し、ネットワーク上の任意の伝送媒体を介して情報処理装置2202に送信する。CPU2101は、そのデータを用いてそのプログラムを実行し、必要な処理を行う。
(付記1) ソフトウェアを複数のサーバに動的に割り当てて顧客サービスを行うシステムにおいてソフトウェアに修正情報を適用する修正適用装置であって、
前記修正情報の発行時に提供される情報を用いて、顧客が使用しているソフトウェアの新しさと該ソフトウェアのセキュリティレベルを統合した指標を計算する計算手段と、
前記顧客により指定された、前記指標に対する制約条件を格納する格納手段と、
計算された指標が前記制約条件を満たすか否かをチェックし、該計算された指標が該制約条件を満たさなければ、前記顧客が使用しているソフトウェアに前記修正情報を適用して該ソフトウェアをアップデートする適用手段と
を備えることを特徴とする修正適用装置。
(付記2) ソフトウェアを複数のサーバに動的に割り当てて顧客サービスを行うシステムにおいてソフトウェアに修正情報を適用するコンピュータのためのプログラムであって、
前記修正情報の発行時に提供される情報を用いて、顧客が使用しているソフトウェアの新しさと該ソフトウェアのセキュリティレベルを統合した指標を計算し、
前記顧客により指定された、前記指標に対する制約条件を格納手段から読み出し、
計算された指標が前記制約条件を満たすか否かをチェックし、
前記計算された指標が前記制約条件を満たさなければ、前記顧客が使用しているソフトウェアに前記修正情報を適用して該ソフトウェアをアップデートする
処理を前記コンピュータに実行させることを特徴とするプログラム。
(付記3) いずれの顧客にも割り当てられていない空きサーバ上に、前記顧客が使用しているソフトウェアが稼動している処理対象サーバと同じソフトウェア構成を用意し、該空きサーバ上で該顧客が使用しているソフトウェアに前記修正情報を適用し、該処理対象サーバの代わりに該空きサーバを該顧客に割り当てることで、該ソフトウェアをアップデートする処理を前記コンピュータに実行させることを特徴とする付記2記載のプログラム。
(付記4) いずれの顧客にも割り当てられていない空きサーバ上で、いずれの顧客にも割り当てられていないソフトウェアに前記修正情報を適用して該ソフトウェアをアップデートし、該ソフトウェアを必要とする顧客が現れたとき該空きサーバを該顧客に割り当てる処理を前記コンピュータに実行させることを特徴とする付記2記載のプログラム。
(付記5) 前記修正情報の発行時に提供される情報から該修正情報の日付および重要度の情報を抽出し、抽出された情報を用いて前記指標を計算する処理を前記コンピュータに実行させることを特徴とする付記2記載のプログラム。
(付記6) 前記修正情報が適用されるソフトウェアの複数のバージョンのうち前記顧客が使用しているバージョンについて前記指標を計算し、該顧客が使用しているバージョンの指標が前記制約条件を満たさなければ、該バージョンに該修正情報を適用する処理を前記コンピュータに実行させることを特徴とする付記2記載のプログラム。
(付記7) ソフトウェアを複数のサーバに動的に割り当てて顧客サービスを行うシステムにおいてソフトウェアに修正情報を適用するコンピュータのためのプログラムを記録した記録媒体であって、
前記プログラムが、
前記修正情報の発行時に提供される情報を用いて、顧客が使用しているソフトウェアの新しさと該ソフトウェアのセキュリティレベルを統合した指標を計算し、
前記顧客により指定された、前記指標に対する制約条件を格納手段から読み出し、
計算された指標が前記制約条件を満たすか否かをチェックし、
前記計算された指標が前記制約条件を満たさなければ、前記顧客が使用しているソフトウェアに前記修正情報を適用して該ソフトウェアをアップデートする
処理を前記コンピュータに実行させることを特徴とするコンピュータ読み取り可能な記録媒体。
(付記8) ソフトウェアを複数のサーバに動的に割り当てて顧客サービスを行うシステムにおいてソフトウェアに修正情報を適用するコンピュータのためのプログラムを搬送する搬送信号であって、
前記プログラムが、
前記修正情報の発行時に提供される情報を用いて、顧客が使用しているソフトウェアの新しさと該ソフトウェアのセキュリティレベルを統合した指標を計算し、
前記顧客により指定された、前記指標に対する制約条件を格納手段から読み出し、
計算された指標が前記制約条件を満たすか否かをチェックし、
前記計算された指標が前記制約条件を満たさなければ、前記顧客が使用しているソフトウェアに前記修正情報を適用して該ソフトウェアをアップデートする
処理を前記コンピュータに実行させることを特徴とする搬送信号。
(付記9) ソフトウェアを複数のサーバに動的に割り当てて顧客サービスを行うシステムにおいてソフトウェアに修正情報を適用する修正適用方法であって、
計算手段が、前記修正情報の発行時に提供される情報を用いて、顧客が使用しているソフトウェアの新しさと該ソフトウェアのセキュリティレベルを統合した指標を計算し、
適用手段が、前記顧客により指定された、前記指標に対する制約条件を格納手段から読み出し、
前記適用手段が、計算された指標が前記制約条件を満たすか否かをチェックし、該計算された指標が該制約条件を満たさなければ、前記顧客が使用しているソフトウェアに前記修正情報を適用して該ソフトウェアをアップデートする
ことを特徴とする修正適用方法。
多数の顧客システムを取り扱うデータセンタに本発明を適用すれば、稼動中のサービスを停止させることなく、コンピュータリソースが自動的にクリーンな状態に保たれる。
本発明の修正適用装置の原理図である。 修正適用装置の構成図である。 パッチ情報解釈部の処理を示す図である。 パッチ情報を示す図である。 パッチ情報解釈処理のフローチャートである。 クリーンポイントの計算方法を示す図である。 顧客使用ソフトウェア一覧表を示す図である。 動的アサイン表を示す図である。 アップデート適用表を示す図である。 修正適用処理のフローチャートである。 共用サーバプールの第1の状態を示す図である。 共用サーバプールの第2の状態を示す図である。 共用サーバプールの第3の状態を示す図である。 共用サーバプールの第4の状態を示す図である。 共用サーバプールの第5の状態を示す図である。 共用サーバプールの第6の状態を示す図である。 共用サーバプールの第7の状態を示す図である。 共用サーバプールの第8の状態を示す図である。 事前修正適用処理のフローチャートである。 事前修正適用処理を示す図である。 情報処理装置の構成図である。 記録媒体を示す図である。 サーバ共用システムを示す図である。
符号の説明
101 計算手段
102 格納手段
103 適用手段
104−1、104−2、104−m サーバ
105 ソフトウェア
106 制約条件
201、202 パッチ提供元
203、204 パッチ情報解釈部
205 パッチデータ管理部
206 動的アサイン管理部
207 共用サーバプール
211 データベース
212 顧客使用ソフトウェア一覧表
213 動的アサイン表
214 アップデート適用表
301 パッチ情報
302 パッチ情報解釈対応表
303 パッチ管理情報
304、409 パッチデータ
401 発行日
402 影響ソフトウェア名
403 セキュリティレベル
404 ダウンロード情報
405 日付
406 ソフトウェア名
407 重要度
408 バージョン
701、702、703、801、802、803、804、901、902、903、904 エントリ
2101 CPU
2102 メモリ
2103 入力装置
2104 出力装置
2105 外部記憶装置
2106 媒体駆動装置
2107 ネットワーク接続装置
2108 バス
2109 可搬記録媒体
2201 サーバ
2202 情報処理装置
2203 データベース

Claims (4)

  1. 複数のサーバとネットワーク環境により接続され、該複数のサーバの各々を複数の顧客のいずれかに動的に割り当て、それぞれのサーバで稼動しているソフトウェアに修正情報を適用する修正適用装置であって、
    既に発行された修正情報の適用対象ソフトウェア名、発行日、重要度、およびバージョンの対応関係を示す管理情報と、顧客名、使用ソフトウェア名、および顧客指定の閾値を含む制約条件の対応関係を示す顧客使用ソフトウェア一覧表と、サーバ名、顧客名、インストールソフトウェア名、およびバージョンの対応関係を示す動的アサイン表を格納する格納手段と、
    新たな修正情報の発行時に前記管理情報を参照して、該新たな修正情報の適用対象ソフトウェア名に対応するソフトウェアのそれぞれのバージョンについて、発行日に対応する基本ポイントを計算し、得られた基本ポイントを該それぞれのバージョンの重要度に応じて変更することで、該それぞれのバージョンの指標を計算する計算手段と、
    前記顧客使用ソフトウェア一覧表を参照して、前記新たな修正情報の適用対象ソフトウェア名と同じ使用ソフトウェア名に対応する顧客名および制約条件を取得し、前記動的アサイン表を参照して、該適用対象ソフトウェア名と同じインストールソフトウェア名に対応する顧客名およびバージョンを取得し、顧客名毎に、取得したバージョンについて計算された指標を取得した制約条件の閾値と比較して、該計算された指標が該制約条件を満たすか否かをチェックし、該計算された指標が該制約条件を満たさなければ、該動的アサイン表を参照して、該適用対象ソフトウェア名と同じインストールソフトウェア名に対応するサーバ名を取得し、取得したサーバ名のサーバで稼動している該インストールソフトウェアに該新たな修正情報を適用して該インストールソフトウェアをアップデートする適用手段と
    を備えることを特徴とする修正適用装置。
  2. 複数のサーバとネットワーク環境により接続され、該複数のサーバの各々を複数の顧客のいずれかに動的に割り当て、それぞれのサーバで稼動しているソフトウェアに修正情報を適用するコンピュータのためのプログラムであって、
    既に発行された修正情報の適用対象ソフトウェア名、発行日、重要度、およびバージョンの対応関係を示す管理情報と、顧客名、使用ソフトウェア名、および顧客指定の閾値を含む制約条件の対応関係を示す顧客使用ソフトウェア一覧表と、サーバ名、顧客名、インストールソフトウェア名、およびバージョンの対応関係を示す動的アサイン表を格納する格納手段と、
    新たな修正情報の発行時に前記管理情報を参照して、該新たな修正情報の適用対象ソフトウェア名に対応するソフトウェアのそれぞれのバージョンについて、発行日に対応する基本ポイントを計算し、得られた基本ポイントを該それぞれのバージョンの重要度に応じて変更することで、該それぞれのバージョンの指標を計算する計算手段と、
    前記顧客使用ソフトウェア一覧表を参照して、前記新たな修正情報の適用対象ソフトウェア名と同じ使用ソフトウェア名に対応する顧客名および制約条件を取得し、前記動的アサイン表を参照して、該適用対象ソフトウェア名と同じインストールソフトウェア名に対応する顧客名およびバージョンを取得し、顧客名毎に、取得したバージョンについて計算された指標を取得した制約条件の閾値と比較して、該計算された指標が該制約条件を満たすか否かをチェックし、該計算された指標が該制約条件を満たさなければ、該動的アサイン表を参照して、該適用対象ソフトウェア名と同じインストールソフトウェア名に対応するサーバ名を取得し、取得したサーバ名のサーバで稼動している該インストールソフトウェアに該新たな修正情報を適用して該インストールソフトウェアをアップデートする適用手段として、
    前記コンピュータを機能させることを特徴とするプログラム。
  3. 前記適用手段は、いずれの顧客も前記新たな修正情報の適用対象ソフトウェア名のソフトウェアを使用していないとき、いずれの顧客にも割り当てられていない空きサーバ上で、該ソフトウェアに該新たな修正情報を適用して該ソフトウェアをアップデートし、該ソフトウェアを必要とする顧客が現れたとき該空きサーバを該顧客に割り当てることを特徴とする請求項2記載のプログラム。
  4. 複数のサーバとネットワーク環境により接続され、格納手段、計算手段、および適用手段を備える修正適用装置が、該複数のサーバの各々を複数の顧客のいずれかに動的に割り当て、それぞれのサーバで稼動しているソフトウェアに修正情報を適用する修正適用方法であって、
    前記計算手段が、前記格納手段に格納された、既に発行された修正情報の適用対象ソフトウェア名、発行日、重要度、およびバージョンの対応関係を示す管理情報を、新たな修正情報の発行時に参照して、該新たな修正情報の適用対象ソフトウェア名に対応するソフトウェアのそれぞれのバージョンについて、発行日に対応する基本ポイントを計算し、得られた基本ポイントを該それぞれのバージョンの重要度に応じて変更することで、該それぞれのバージョンの指標を計算し、
    前記適用手段が、前記格納手段に格納された、顧客名、使用ソフトウェア名、および顧客指定の閾値を含む制約条件の対応関係を示す顧客使用ソフトウェア一覧表を参照して、前記新たな修正情報の適用対象ソフトウェア名と同じ使用ソフトウェア名に対応する顧客名および制約条件を取得し、前記格納手段に格納された、サーバ名、顧客名、インストールソフトウェア名、およびバージョンの対応関係を示す動的アサイン表を参照して、該適用対象ソフトウェア名と同じインストールソフトウェア名に対応する顧客名およびバージョンを取得し、顧客名毎に、取得したバージョンについて計算された指標を取得した制約条件の閾値と比較して、該計算された指標が該制約条件を満たすか否かをチェックし、該計算された指標が該制約条件を満たさなければ、該動的アサイン表を参照して、該適用対象ソフトウェア名と同じインストールソフトウェア名に対応するサーバ名を取得し、取得したサーバ名のサーバで稼動している該インストールソフトウェアに該新たな修正情報を適用して該インストールソフトウェアをアップデートする
    ことを特徴とする修正適用方法。
JP2003329007A 2003-09-19 2003-09-19 ソフトウェアに修正情報を適用する装置および方法 Expired - Fee Related JP3960961B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2003329007A JP3960961B2 (ja) 2003-09-19 2003-09-19 ソフトウェアに修正情報を適用する装置および方法
US10/809,370 US7487536B2 (en) 2003-09-19 2004-03-26 Apparatus and method for applying revision information to software

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003329007A JP3960961B2 (ja) 2003-09-19 2003-09-19 ソフトウェアに修正情報を適用する装置および方法

Publications (2)

Publication Number Publication Date
JP2005092803A JP2005092803A (ja) 2005-04-07
JP3960961B2 true JP3960961B2 (ja) 2007-08-15

Family

ID=34308845

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003329007A Expired - Fee Related JP3960961B2 (ja) 2003-09-19 2003-09-19 ソフトウェアに修正情報を適用する装置および方法

Country Status (2)

Country Link
US (1) US7487536B2 (ja)
JP (1) JP3960961B2 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006331394A (ja) * 2005-04-25 2006-12-07 Ricoh Co Ltd プログラムバージョン管理方法、プログラム及び印刷システム
JP4650203B2 (ja) 2005-10-20 2011-03-16 株式会社日立製作所 情報システム及び管理計算機
US8495389B2 (en) * 2005-12-16 2013-07-23 Safenet, Inc. Locking changing hard disk content to a hardware token
US8261253B2 (en) * 2006-01-25 2012-09-04 The Boeing Company Method for restoring software applications on desktop computers
US20090144727A1 (en) * 2007-12-04 2009-06-04 Bea Systems, Inc. Interpreted multiple product installation
US9477462B2 (en) * 2008-01-16 2016-10-25 Oracle International Corporation System and method for software product versioning packaging, distribution, and patching
JP5223596B2 (ja) * 2008-10-30 2013-06-26 富士通株式会社 仮想計算機システム及びその管理方法、管理プログラム並びに記録媒体、制御方法
US11411965B2 (en) * 2010-03-19 2022-08-09 Jeffrey Williams Method and system of attack detection and protection in computer systems
US8595715B2 (en) 2010-12-31 2013-11-26 International Business Machines Corporation Dynamic software version selection
JP5730181B2 (ja) * 2011-12-01 2015-06-03 株式会社日立製作所 バージョンアップ支援システム、バージョンアップ支援方法、およびバージョンアップ支援プログラム
US9256419B2 (en) * 2012-04-23 2016-02-09 Hewlett Packard Enterprise Development Lp Dynamic software updates
KR20140029733A (ko) * 2012-08-29 2014-03-11 주식회사 팬택 어플리케이션 관리 기능을 갖는 디바이스 및 이를 위한 어플리케이션 관리 방법
GB201303081D0 (en) * 2013-02-21 2013-04-10 Postcode Anywhere Europ Ltd Common service environment
US9250889B2 (en) 2013-10-18 2016-02-02 International Business Machines Corporation Assigning severity to a software update
EP3097481B1 (en) 2014-01-21 2022-11-30 Oracle International Corporation System and method for supporting multi-tenancy in an application server, cloud, or other environment
US9405530B2 (en) * 2014-09-24 2016-08-02 Oracle International Corporation System and method for supporting patching in a multitenant application server environment
US10318280B2 (en) 2014-09-24 2019-06-11 Oracle International Corporation System and method for supporting patching in a multitenant application server environment
JP6314893B2 (ja) 2015-03-31 2018-04-25 コニカミノルタ株式会社 画像処理システム、画像処理装置、配信サーバー、管理サーバー、および、プログラム
CN104866307B (zh) * 2015-05-14 2018-04-27 百度在线网络技术(北京)有限公司 一种应用程序的修复方法和装置
JP2017033079A (ja) * 2015-07-29 2017-02-09 富士通株式会社 ソフトウェア導入支援プログラム、ソフトウェア導入支援装置およびソフトウェア導入支援方法
JP6544176B2 (ja) * 2015-09-24 2019-07-17 富士通株式会社 適用管理装置、適用管理方法及び適用管理プログラム
JPWO2017169947A1 (ja) * 2016-03-30 2019-02-07 日本電気株式会社 運用装置、通信システムおよび更新方法
US11237814B2 (en) 2017-08-17 2022-02-01 Oracle International Corporation System and method for supporting custom hooks during patching in an application server environment

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5771354A (en) * 1993-11-04 1998-06-23 Crawford; Christopher M. Internet online backup system provides remote storage for customers using IDs and passwords which were interactively established when signing up for backup services
JPH0981479A (ja) 1995-09-18 1997-03-28 Nippon Telegr & Teleph Corp <Ntt> 端末ソフトウェア自動転送方法
JPH10320184A (ja) 1997-05-21 1998-12-04 Oki Electric Ind Co Ltd ソフトウェアバージョン管理システム
DE69835188T2 (de) * 1997-07-17 2006-12-14 Canon K.K. Bildverarbeitungsvorrichtung und -verfahren und Aufzeichnungsmedium dafür
JP4050390B2 (ja) 1998-06-18 2008-02-20 富士通株式会社 プログラム修正抽出適用システムおよび修正抽出適用プログラムを格納した記憶媒体
US6385768B1 (en) * 1999-09-30 2002-05-07 Unisys Corp. System and method for incorporating changes as a part of a software release
JP2002366379A (ja) 2001-06-11 2002-12-20 Nec Corp サーバプロセスのサービス方式
US7155462B1 (en) * 2002-02-01 2006-12-26 Microsoft Corporation Method and apparatus enabling migration of clients to a specific version of a server-hosted application, where multiple software versions of the server-hosted application are installed on a network

Also Published As

Publication number Publication date
US7487536B2 (en) 2009-02-03
JP2005092803A (ja) 2005-04-07
US20050066023A1 (en) 2005-03-24

Similar Documents

Publication Publication Date Title
JP3960961B2 (ja) ソフトウェアに修正情報を適用する装置および方法
US10127218B2 (en) Object templates for data-driven applications
CN110515647B (zh) 一种静态资源管理方法、装置、设备和存储介质
US10310900B2 (en) Operating programs on a computer cluster
CN111124475B (zh) 存储管理的方法、电子设备和计算机可读存储介质
US20090216781A1 (en) Technique for Dynamic Creation of a User Catalog for a Storage System
EP1577766A2 (en) Side-by-side drivers
CN109656889B (zh) 基于区块链的文件系统实现方法、装置、设备和存储介质
CN101159596B (zh) 用于布置服务器的方法和设备
US20120272204A1 (en) Uninterruptible upgrade for a build service engine
CN112153167B (zh) 网际互连协议管理方法、装置、电子设备及存储介质
US8312045B2 (en) Configuration data content for a clustered system having multiple instances
WO2008069431A1 (en) Download server and method for installing and updating application program using partitioning of shared library
US10827034B2 (en) Providing application versions via delta volumes
US20070028228A1 (en) Software upgrades with user advisement
WO2019152748A1 (en) System and method for preserving entity identifiers for virtual machines
CN113760306A (zh) 安装软件的方法、装置、电子设备及存储介质
JP4882291B2 (ja) モジュール更新プログラム
US11683230B1 (en) Applying a feature on demand upgrade responsive to measured utilization
JP2002049485A (ja) ソフトウェア配布システム
KR101220695B1 (ko) 멀티 파일 접근 공통 인터페이스 지원 시스템 및 그 시스템에서의 파일 관리 방법
US6430579B1 (en) Partition support tool to maintain/service multiple copies of a database
KR100973077B1 (ko) 서비스 기반 시스템 및 제공 방법
Lovelace et al. Partitioned data set extended usage guide
Steps z/OS Installation

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20061113

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061128

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070124

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070220

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070418

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070515

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100525

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110525

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120525

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130525

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130525

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees