(57)【要約】【課題】プログラムのバージョンアップ時に、設定値の移行を適切に行うこと。【解決手段】本発明に係る情報処理装置は、プログラムのバージョンアップ前に、バージョンアップ前のプログラムにおいて存在する設定項目のそれぞれに設定されている設定値を抽出する設定値抽出部と、コマンドの履歴に基づいて、設定項目を追加するコマンドによって追加された設定項目を特定するコマンド履歴解析部と、抽出された設定値のうち、追加されたと判定された設定項目の設定値に対して第１のタグを付与するタグ付部と、プログラムのバージョンアップ後に、バージョンアップ後のプログラムに対して、抽出された設定値を引き継いで設定する際に、第１のタグが付された設定値の設定を抑止するタグ解析部を備える。【選択図】図２
2015152999.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを実行することで動作するとともに、当該プログラムのバージョンアップが可能な情報処理装置であって、
前記情報処理装置において実行されたコマンドの履歴が格納される記憶部と、
前記プログラムのバージョンアップ前に、バージョンアップ前のプログラムにおいて存在する設定項目のそれぞれに設定されている設定値を抽出する設定値抽出部と、
前記記憶部に格納されたコマンドの履歴に基づいて、設定項目を追加するコマンドによって追加された設定項目を特定するコマンド履歴解析部と、
前記設定値抽出部によって抽出された設定値のうち、前記コマンド履歴解析部によって追加されたと判定された設定項目の設定値に対して第１のタグを付与するタグ付部と、
前記プログラムのバージョンアップ後に、バージョンアップ後のプログラムに対して前記設定値抽出部によって抽出された設定値を引き継いで設定する際に、前記第１のタグが付された設定値の設定を抑止するタグ解析部と、
を備えた情報処理装置。
【請求項２】
前記記憶部は、さらに、前記情報処理装置に追加的に登録されるモジュールと、当該モジュールの登録に応じて前記プログラムに対して追加される設定項目とを対応付けて示す設定項目所属モジュール情報が格納され、
前記情報処理装置は、さらに、前記記憶部に格納された設定項目所属モジュール情報に基づいて、前記第１のタグが付された設定値の設定対象となる設定項目に対応するモジュールを特定し、当該特定したモジュールの登録を促すメッセージを表示する設定対象有無確認部と、
を備えた請求項１に記載の情報処理装置。
【請求項３】
前記設定対象有無確認部は、前記第１のタグが付与された設定値の設定対象となる設定項目が前記バージョンアップ後のプログラムにおいて存在するか否かを判定し、前記第１のタグが付された設定値の設定対象となる設定項目のうち、前記バージョンアップ後のプログラムにおいて存在しない設定項目に対応するモジュールを特定する、
を備えた請求項２に記載の情報処理装置。
【請求項４】
前記コマンド履歴解析部は、前記記憶部に格納されたコマンドの履歴に基づいて、前記設定値を変更するコマンドによって、既定値から変更された設定値を判定する、
前記タグ付部は、前記設定値抽出部によって抽出された設定値のうち、前記コマンド履歴解析部によって既定値から変更されたと判定された設定値に対して第２のタグを付与し、
前記タグ解析部は、前記第２のタグが付された設定値を引き継いで設定する、
請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記タグ付部は、前記設定値抽出部によって抽出された設定値のうち、前記第１のタグ及び前記第２のタグのいずれも付与しなかった設定値に対して第３のタグを付与し、
前記タグ解析部は、前記第３のタグが付された設定値の設定を抑止する、
請求項４に記載の情報処理装置。
【請求項６】
情報処理装置で実行されるプログラムをバージョンアップするプログラムバージョンアップ方法であって、
前記情報処理装置において実行されたコマンドの履歴を前記情報処理装置の記憶部に格納するステップと、
前記プログラムのバージョンアップ前に、バージョンアップ前のプログラムにおいて存在する設定項目のそれぞれに設定されている設定値を抽出するステップと、
前記記憶部に格納されたコマンドの履歴に基づいて、設定項目を追加するコマンドによって追加された設定項目を特定するステップと、
前記抽出された設定値のうち、前記追加されたと判定された設定項目の設定値に対して第１のタグを付与するステップと、
前記プログラムのバージョンアップ後に、バージョンアップ後のプログラムに対して前記抽出された設定値を引き継いで設定する際に、前記第１のタグが付された設定値の設定を抑止するステップと、
を備えたプログラムバージョンアップ方法。
【請求項７】
情報処理装置によって実行され、バージョンアップが可能なプログラムであって、
前記バージョンアップ前の実行時には、
自プログラムにおいて存在する設定項目のそれぞれに設定されている設定値を抽出する処理と、
前記情報処理装置の記憶部に格納された前記情報処理装置において実行されたコマンドの履歴に基づいて、設定項目を追加するコマンドによって追加された設定項目を特定する処理と、
前記抽出された設定値のうち、前記追加されたと判定された設定項目の設定値に対して第１のタグを付与する処理と、を前記情報処理装置に実行させ、
前記バージョンアップ後の実行時には、
自プログラムに対して前記抽出された設定値を引き継いで設定する際に、前記第１のタグが付された設定値の設定を抑止する処理を前記情報処理装置に実行させる、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、プログラムバージョンアップ方法、及びプログラムに関し、特に情報処理装置で実行されるプログラムをバージョンアップする技術に関する。
【背景技術】
【０００２】
特許文献１には、システムプログラムのバージョンアップ方法に関する技術が開示されている。この技術は、現在のバージョンがどの段階のバージョンであっても、１種類のバージョンアップファイルで対応できるようにすることを目的としている。この技術では、現在起動しているシステムプログラムとは別に、初期バージョンのシステムプログラムを記憶装置に格納しておく。さらに、バージョンアップファイルとして、システムプログラムを初期状態から最新バージョンへバージョンアップするものを用意する。そして、バージョンアップを行う際には、記憶装置の空き領域に初期バージョンのシステムプログラムの複製を作成し、初期バージョンのシステムプログラムの複製を、バージョンアップファイルを用いて最新バージョンのシステムプログラムに更新する。その後に、起動するシステムプログラムを最新バージョンのシステムプログラムに切り替える。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−１４０９０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、この特許文献１に開示の技術では、旧バージョンの設定値をそのまま新バージョンに反映するようにしている。そのため、例えば、ユーザが旧バージョンのシステムプログラムにおいて、オプション製品、リソース、及びアプリケーションプログラム等の登録のカスタマイズを行ってしまっている場合には、新バージョンのシステムプログラムには登録されていないオプション製品、リソース、及びアプリケーションプログラム等の登録に応じて設定された設定値までも移行してしまうことになる。
【０００５】
よって、そのような設定値を設定しようとすることによりエラーが発生してしまったり、新バージョンのシステムプログラムの環境において不適切な設定値が設定されてしまうといった問題が発生することなる。一方で、そのような問題を回避する方法として、ユーザに各設定値を移行すべきか否かを判断させる方法も考えられる。しかしながら、そのような方法では、ユーザに対して非常に手間をかけてしまうという問題がある。
【０００６】
本発明の目的は、上述したような課題を解決するために、プログラムのバージョンアップ時に、設定値の移行を適切に行うことができる情報処理装置、プログラムバージョンアップ方法、及びプログラムを提供することである。
【課題を解決するための手段】
【０００７】
本発明の第１の態様に係る情報処理装置は、プログラムを実行することで動作するとともに、当該プログラムのバージョンアップが可能な情報処理装置であって、前記情報処理装置において実行されたコマンドの履歴が格納される記憶部と、前記プログラムのバージョンアップ前に、バージョンアップ前のプログラムにおいて存在する設定項目のそれぞれに設定されている設定値を抽出する設定値抽出部と、前記記憶部に格納されたコマンドの履歴に基づいて、設定項目を追加するコマンドによって追加された設定項目を特定するコマンド履歴解析部と、前記設定値抽出部によって抽出された設定値のうち、前記コマンド履歴解析部によって追加されたと判定された設定項目の設定値に対して第１のタグを付与するタグ付部と、前記プログラムのバージョンアップ後に、バージョンアップ後のプログラムに対して前記抽出部によって抽出された設定値を引き継いで設定する際に、前記第１のタグが付された設定値の設定を抑止するタグ解析部と、を備えたものである。
【０００８】
本発明の第２の態様に係るプログラムバージョンアップ方法は、情報処理装置で実行されるプログラムをバージョンアップするプログラムバージョンアップ方法であって、前記情報処理装置において実行されたコマンドの履歴を前記情報処理装置の記憶部に格納するステップと、前記プログラムのバージョンアップ前に、バージョンアップ前のプログラムにおいて存在する設定項目のそれぞれに設定されている設定値を抽出するステップと、前記記憶部に格納されたコマンドの履歴に基づいて、設定項目を追加するコマンドによって追加された設定項目を特定するステップと、前記抽出された設定値のうち、前記追加されたと判定された設定項目の設定値に対して第１のタグを付与するステップと、前記プログラムのバージョンアップ後に、バージョンアップ後のプログラムに対して前記抽出された設定値を引き継いで設定する際に、前記第１のタグが付された設定値の設定を抑止するステップと、を備えたものである。
【０００９】
本発明の第３の態様に係るプログラムは、情報処理装置によって実行され、バージョンアップが可能なプログラムであって、前記バージョンアップ前の実行時には、プログラムにおいて存在する設定項目のそれぞれに設定されている設定値を抽出する処理と、前記情報処理装置の記憶部に格納された前記情報処理装置において実行されたコマンドの履歴に基づいて、設定項目を追加するコマンドによって追加された設定項目を特定する処理と、前記抽出された設定値のうち、前記追加されたと判定された設定項目の設定値に対して第１のタグを付与する処理と、を前記情報処理装置に実行させ、前記バージョンアップ後の実行時には、自プログラムに対して前記抽出された設定値を引き継いで設定する際に、前記第１のタグが付された設定値の設定を抑止する処理を前記情報処理装置に実行させるものである。
【発明の効果】
【００１０】
上述した本発明の各態様によれば、プログラムのバージョンアップ時に、設定値の移行を適切に行うことができる情報処理装置、プログラムバージョンアップ方法、及びプログラムを提供することができる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態に係るサーバの構成図である。
【図２】実施の形態に係るサーバの機能ブロック図である。
【図３】実施の形態に係る各設定項目の属する製品リストを示す図である。
【図４】実施の形態に係るコマンド種別リストを示す図である。
【図５】実施の形態に係るコマンドに関連する項目リストを示す図である。
【図６】実施の形態に係る設定項目（設定値）とタグとの関係を示す図である。
【図７】実施の形態に係るサーバのプログラムバージョンアップ処理を示すフローチャートである。
【図８】実施の形態に係るプログラムバージョンアップ処理におけるコマンド履歴解析処理を示すフローチャートである。
【発明を実施するための形態】
【００１２】
＜発明の実施の形態＞
以下に図面を参照しながら、本発明の好適な実施の形態について説明する。以下の実施の形態に示す具体的な数値等は、発明の理解を容易とするための例示にすぎず、特に断る場合を除き、それに限定されるものではない。また、以下の記載及び図面では、説明の明確化のため、当業者にとって自明な事項等については、適宜、省略及び簡略化がなされている。
【００１３】
図１を参照して、本発明の実施の形態に係るサーバ１の構成について説明する。図１は、本発明の実施の形態に係るサーバ１の構成図である。
【００１４】
サーバ１は、制御部２、記憶部３、及び表示部４を有する。
【００１５】
制御部２は、サーバ１を統括的に制御する。制御部２は、記憶装置３に格納された各種ソフトウェア（プログラム）を実行することで、サーバ１における処理を実行する。制御部２は、各種ソフトウェアを実行するＣＰＵ（Central Processing Unit）を含む。
【００１６】
記憶部３は、旧バージョンのサーバ用ソフトウェア１０（以下、簡略化して「ソフトウェア１０」とも言う）及び新バージョンのサーバ用ソフトウェア２０（以下、簡略化して「ソフトウェア２０」とも言う）が格納される。ソフトウェア１０、２０は、サーバ１としての機能を実現するミドルウェアに相当する。記憶部３は、上述のソフトウェア１０、２０を格納することができる１以上の記憶装置を含む。この記憶装置として、例えば、メモリ及びハードディスク等の各種記憶装置のうち、任意の記憶装置を採用するようにしてよい。
【００１７】
表示部４は、制御部２からの制御に従って任意の画像が表示される。具体的には、表示部４は、制御部２が生成して表示部４に出力した画像情報が示す画像を表示する。すなわち、表示部４は、画像を表示可能な表示装置を含む。表示装置として、例えば、液晶ディスプレイ、有機ＥＬディスプレイ、及びプラズマディスプレイ等の各種表示装置のうち、任意の表示装置を採用するようにしてよい。
【００１８】
本実施の形態では、サーバ１上で、最初にソフトウェア１０が実行されているものとする。そして、サーバ１で実行されるソフトウェアを、旧バージョンのソフトウェア１０から、新バージョンのソフトウェア２０にアップデートする場合について説明する。
【００１９】
なお、新バージョンのソフトウェア２０は、サーバ１を任意の無線通信又は有線通信によってインターネットとの通信を可能とし、インターネットを介してサーバ１が受信し、記憶部３に格納されるようにしてもよい。また、新バージョンのソフトウェア２０は、運搬可能な記録媒体（光ディスク及びＵＳＢメモリ等）によってサーバ１に供給され、記憶部３に格納されるようにしてもよい。
【００２０】
続いて、図２を参照して、本発明の実施の形態に係るサーバ１の機能ブロックについて説明する。図２は、本発明の実施の形態に係るサーバ１の機能ブロック図である。
【００２１】
ソフトウェア１０は、設定値抽出部１１、コマンド履歴解析部１２、及びタグ付部１３を有する。すなわち、制御部２は、ソフトウェア１０を実行することによって、設定値抽出部１１、コマンド履歴解析部１２、及びタグ付部１３として機能する。
【００２２】
サーバ１上で実行されたコマンドの履歴は、記憶部３に格納される。すなわち、サーバ１上でコマンドが実行される毎に、そのコマンドラインの文字列（コマンド及びその引数、並びに、その実行結果）がコマンド履歴として記憶部３に蓄積されていく。このコマンド履歴の記憶部３への蓄積は、ソフトウェア１０が実行するようにしてもよく、サーバ１で動作するＯＳ（Operating System）が実行するようにしてもよい。コマンド履歴は、例えば、ファイル形式の情報として記憶部３に格納される。
【００２３】
設定値抽出部１１は、旧バージョンのソフトウェア１０から新バージョンのソフトウェア２０に移行するときに、旧バージョンのソフトウェア１０において存在する設定項目のそれぞれに設定されている設定値を抽出する。設定値抽出部１１は、抽出した設定値のそれぞれを示す情報を設定値セット３１として生成し、記憶部３に格納する。ここで、設定値セット３１として、設定値と、その設定項目とを対応付けた情報を生成する。設定値セット３１は、例えば、設定値と、その設定値が設定されていた設定項目名の文字列とを対応付けた情報である。設定値抽出部１１は、例えば、設定項目名（例えば、オプション文字列、プロパティ名又は環境変数名等）と、その設定項目に設定されている設定値とを参照することがコマンドを実行することで、各設定項目及びそれらに対する各設定値を抽出する。よって、一度設定項目に対して設定値が設定されていたとしても、その後に削除された設定項目及びその設定値は抽出されない。
【００２４】
コマンド履歴解析部１２は、設定値セット３１における設定値が設定される設定項目のそれぞれが、タグ１に対応する「最初からソフトウェア１０、２０において存在し、設定値が既定値から変更された設定項目」か、タグ２に対応する「ユーザによって独自に追加された設定項目」か、タグ３に対応する「設定値が既定値から変更されていない設定項目」か、を判断する。具体的な解析方法については、後述の（コマンド履歴解析）にて説明する。
【００２５】
タグ付部１３は、コマンド履歴解析部１２の判断結果に従って、記憶部３に格納された設定値セット３１における各設定値（各設定項目）に対してタグを付与し、タグ付き設定値セット３２を生成する。すなわち、設定値セット３１において各設定値（各設定項目）に対してタグが付与された情報が、タグ付き設定値セット３２となる。
【００２６】
ソフトウェア２０は、タグ解析部２１、及び設定対象有無確認部２２を有する。すなわち、制御部２は、ソフトウェア２０を実行することによって、タグ解析部２１、及び設定対象有無確認部２２として機能する。
【００２７】
タグ解析部２１は、新バージョンのソフトウェア２０における各設定項目に対して、タグ付き設定値セット３２における旧バージョンのソフトウェア１０の設定値を引き継いで設定する際に、タグ付き設定値セット３２において、それらの設定値（設定項目）にどのタグが付与されているのかを解析する。そして、タグ解析部２１は、タグ１が付与されている設定項目については、タグ付き設定値セット３２における設定値をそのまま引き継いで設定する。タグ解析部２１は、タグ２が付与されている設定項目については、旧バージョンのソフトウェア１０においてオプション製品、リソース、又はアプリケーションプログラムの登録に伴って追加された設定項目であるため、設定値の設定を行わない。また、タグ解析部２１は、タグ３が付与されている設定項目については、設定値が既定値から変更されておらず、改めての設定は不要であるため、設定値を設定しない。
【００２８】
設定対象有無確認部２２は、新バージョンのソフトウェア２０において、タグ解析部２１によってタグ２が付与されていると解析された設定項目の存在を確認する。設定対象有無確認部２２は、設定項目が存在しなければ、その設定項目に対応するオプション製品、リソース、又はアプリケーションプログラムの登録を促すメッセージを表示部４に表示する。
【００２９】
ここで、新バージョンのソフトウェア２０において設定項目が存在するか否かは、設定対象有無確認部２２が上述の設定項目（設定項目名）及びその設定値を参照するコマンドを実行することで、新バージョンのソフトウェア２０において存在する設定項目を抽出し、抽出した設定項目の中に対象とする設定項目があるか否かを判定するようにすればよい。
【００３０】
また、各設定項目がどのオプション製品に対応するものであるかは、オプション製品（オプション製品名）と、そのオプション製品の登録に応じて追加される設定項目（設定項目名）とが対応付けられた情報を、予め記憶部３に格納しておくことで判断可能とする。例えば、オプション製品名と設定項目名とを対応付けたリストを示すプロパティ形式のファイルを記憶部３に予め格納する。
【００３１】
例えば、図３に例示するような「各設定項目の属する製品リスト」を記憶部３に予め格納しておく。図３では、オプション製品として、サーバ１に、アプリケーションサーバ機能、バッチサーバ機能、及びウェブサーバ機能等が登録することができる場合における「各設定項目の属する製品リスト」を示している。図において、「ApplicationServer」は、アプリケーションサーバ機能を示している。また、それに対応する設定項目名は、「server.」の後にワイルドカードが指定されていることから、「server.」から始まる任意の文字列であることを示している。図において、「BatchServer」は、バッチサーバ機能を示している。また、それに対応する設定項目名は、「Batch」の後にワイルドカードが指定されていることから、「Batch」から始まる任意の文字列であることを示している。図において、「WebServer」は、ウェブサーバ機能を示している。また、それに対応する設定項目名は、「WebServer」の後にワイルドカードが指定されていることから、「WebServer」から始まる任意の文字列であることを示している。
【００３２】
そして、設定対象有無確認部２２は、その情報（例えば、上記の「各設定項目の属する製品リスト」）に基づいて、新バージョンのソフトウェア２０において存在しないと判断した設定項目に対応するオプション製品を特定し、そのオプション製品の登録を促すメッセージを表示部４に表示する。例えば、設定対象有無確認部２２は、各設定項目の属する製品リストにおいて、新バージョンのソフトウェア２０において存在しないと判断した設定項目名に対応するオプション製品名を特定し、そのオプション製品名とその登録を促すメッセージの画像を表示部４に表示する。この新バージョンのソフトウェア２０において存在しないと判断した設定項目に対応するオプション製品は、旧バージョンのソフトウェア１０においてユーザにより追加的に登録されたオプション製品となるからである。
【００３３】
また、アプリケーションプログラム及びリソースについても、同様に、新バージョンのソフトウェア２０において存在しない設定項目から、新バージョンのソフトウェア２０において登録されていないアプリケーションプログラム及びリソースを特定し、その登録を促すメッセージを表示部４に表示する。
【００３４】
例えば、各設定項目がどのアプリケーションプログラムに対応するものであるかは、アプリケーションプログラム（アプリケーションプログラム名）と、そのアプリケーションプログラムの登録に応じて追加される設定項目（設定項目名）とを対応付けた情報を予め記憶部３に格納しておくことで判断可能とする。この情報は、上述の「各設定項目の属する製品リスト」と同様に、アプリケーション名と設定項目名とを対応付けたリストを示すプロパティ形式のファイルとしてよい。そして、設定対象有無確認部２２は、その情報に基づいて、新バージョンのソフトウェア２０において存在しないと判断した設定項目に対応するアプリケーションプログラムの登録を促すメッセージを表示部４に表示する。例えば、設定対象有無確認部２２は、その情報において、新バージョンのソフトウェア２０において存在しないと判断した設定項目名に対応するアプリケーションプログラム名を特定し、そのアプリケーションプログラム名とその登録を促すメッセージの画像を表示部４に表示する。
【００３５】
また、例えば、各設定項目がどのリソースに対応するものであるかは、リソース（リソース名）と、そのリソースの登録に応じて追加される設定項目（設定項目名）とを対応付けた情報を予め記憶部３に格納しておく。この情報は、上述の「各設定項目の属する製品リスト」と同様に、リソース名と設定項目名とを対応付けたリストを示すプロパティ形式のファイルとしてよい。そして、設定対象有無確認部２２は、その情報に基づいて、新バージョンのソフトウェア２０において存在しないと判断した設定項目に対応するリソースの登録を促すメッセージを表示部４に表示する。例えば、設定対象有無確認部２２は、その情報において、新バージョンのソフトウェア２０において存在しないと判断した設定項目名に対応するリソース名を特定し、そのリソース名とその登録を促すメッセージの画像を表示部４に表示する。
【００３６】
（コマンド履歴解析）
コマンドは、「設定項目を追加するコマンド」、「設定項目を削除するコマンド」、「設定項目の設定値を変更するコマンド」、及び「設定項目を参照するコマンド」に大別される。コマンド履歴におけるコマンドがいずれの種別となるかは、これらのコマンドの種別のそれぞれについて、種別と、その種別に対応するコマンドとが対応付けられた情報を、予め記憶部３に格納しておくことで判断可能とする。例えば、種別とコマンド（コマンド名）とを対応付けたリストを示すプロパティ形式のファイル（以下、「コマンド種別リスト」とも言う）を予め記憶部３に格納する。コマンド履歴解析部１２は、そのコマンド種別リストに基づいて、コマンドの種別を判断する。
【００３７】
例えば、図４に例示するような「コマンド種別リスト」を記憶部３に予め格納しておく。図において、「create」は、種別「設定項目を追加するコマンド」を示し、「delete」は、種別「設定項目を削除するコマンド」を示し、「set」は、種別「設定項目を変更するコマンド」を示し、「get」は、種別「設定項目の設定値を変更するコマンド」を示し、「list」は、種別「設定を参照するコマンド」を示している。よって、図４の例では、コマンド「create-user」及びコマンド「create-resource」の種別は、「設定項目を追加するコマンド」となる。また、コマンド「delete-user」及びコマンド「delete-resource」の種別は、「設定項目を削除するコマンド」となる。また、コマンド「set」の種別は、「設定項目を変更するコマンド」となる。また、コマンド「list-user」、コマンド「list-resource」、及びコマンド「list」の種別は、「設定項目を参照するコマンド」となる。
【００３８】
また、設定項目の追加及び削除によって、他の設定項目の設定値の変更も伴うコマンドが存在する場合、そのコマンドによっていずれの設定項目が変更されるかを、そのコマンドと、そのコマンドによって変更される設定項目とが対応付けられた情報を、予め記憶部３に格納しておくことで判断可能とする。例えば、設定項目を追加又は削除するコマンド（コマンド名）と、そのコマンドによって変更される設定項目（設定項目名）とを対応付けたリストを示すプロパティ形式のファイル（以下、「コマンドに関連する項目リスト」とも言う）を予め記憶部３に格納する。
【００３９】
例えば、図５に例示するような「コマンドに関連する項目リスト」を記憶部３に予め格納しておく。図５では、設定項目を追加するコマンド「create-user」を実行することで、各設定項目名の後半にワイルドカードが指定されていることから、「aaa.bbb.ccc.」で始まる設定項目名の設定項目の設定値、「aaa.bbb.ddd.」で始まる設定項目名の設定項目の設定値、「fff.ggg.hhh.」で始まる設定項目名の設定項目の設定値、及び「fff.ggg.iii.」で始まる設定項目名の設定項目の設定値が変更されることを示している。
【００４０】
まず、コマンド履歴解析部１２は、「コマンド種別リスト」に基づいて、記憶部３に蓄積されたコマンド履歴から、「設定項目を追加するコマンド」及び「設定値を変更するコマンド」のコマンド履歴を抽出する。すなわち、図４の例の場合、コマンド履歴解析部１２は、記憶部３に蓄積されたコマンド履歴と、「コマンド種別リスト」が示すコマンドの文字列とを比較することで、コマンド「create-user」及びコマンド「create-resource」のコマンド履歴を「設定項目を追加するコマンド」のコマンド履歴として抽出し、コマンド「set」のコマンド履歴を「設定値を変更するコマンド」のコマンド履歴として抽出する。なお、コマンドのより具体的な内容については、後述の（コマンド履歴）にて説明する。
【００４１】
そして、コマンド履歴解析部１２は、「設定項目を追加するコマンド」のコマンド履歴から「設定項目を追加するコマンド」によって追加された設定項目を取得し、「設定値を変更するコマンド」のコマンド履歴から「設定値を変更するコマンド」によって設定値が変更された設定項目を取得する。
【００４２】
コマンド履歴解析部１２は、「設定項目を追加するコマンド」によって追加された設定項目の集合を設定項目群１とし、「設定を変更するコマンド」によって変更された設定項目の集合を設定項目群２として記憶部３に記憶する。また、コマンド履歴解析部１２は、「コマンドに関連する項目リスト」に基づいて、「設定項目を追加するコマンド」及び「設定項目を削除するコマンド」によって変更される設定項目があると判定した場合にも、その設定項目を設定項目群２に含めて記憶部３に記憶する。コマンド履歴解析部１２は、この２つの集合において重複する設定項目を設定項目群２から除外する。ここで、各集合内で重複する設定項目はないものとする。
【００４３】
以上の手順により、コマンド履歴解析部１２は、タグ１の設定項目群（設定項目群２）を一覧で示す情報となるリスト１、及びタグ２の設定項目群（設定項目群１）を一覧で示す情報となるリスト２を、コマンド履歴解析結果として生成する。これらのリスト１〜２を参照することで、どの設定項目にどのタグが付与されているのかを特定することができる。
【００４４】
タグ付部１３は、設定値セット３１において、リスト２が示す設定項目に、タグ２を付加する。また、タグ付部１３は、設定値セット３１において、リスト２の設定項目に該当しない設定項目のうち、リスト１が示す設定項目にタグ１を付加する。そして、タグ付部１３は、設定値セット３１において、タグ１もタグ２も付加されなかった設定項目に対してタグ３を付加する。これにより、全ての設定項目（設定値）にいずれかのタグが付加される。その結果、設定項目（設定値）とタグとの関係は、図６に示すような関係となる。なお、既に削除されている設定項目については、設定値セット３１に含まれないので、タグ付き設定値セット３２にも含まれない。
【００４５】
（コマンド履歴）
コマンド履歴におけるコマンドの具体例につい説明する。「設定項目を追加するコマンド」、「設定項目を削除するコマンド」、「設定を変更するコマンド」、「設定を参照するコマンド」のそれぞれについて説明する。
【００４６】
「設定項目を追加するコマンド」として、例えば「create-user」、「create-resources」、及び「deploy」等があるものとする。これらのコマンドのそれぞれは、ユーザ、リソース、及びアプリケーションプログラムのそれぞれを登録するコマンドである。これらのコマンドが実行された場合、登録されたモジュール（ユーザ、リソース、又はアプリケーションプログラム等）に応じた設定項目がソフトウェア１０に対して追加される。
【００４７】
この場合、コマンド履歴解析部１２は、コマンド履歴から「設定項目を追加するコマンド」として、上記のコマンド名を検索する。そして、例えば、コマンドの引数又は実行結果として、追加される設定項目名が示される場合、コマンド履歴解析部１２は、コマンド履歴において、その引数又は実行結果として示された設定項目名を、コマンドにより追加された設定項目として抽出するようにすればよい。
【００４８】
「設定項目を削除するコマンド」として、例えば「delete-user」、「delete-resource」、及び「undeploy」等があるものとする。これらのコマンドのそれぞれは、登録されたユーザ、リソース、及びアプリケーションプログラムのそれぞれを削除するコマンドである。これらのコマンドが実行された場合、それにより削除されたモジュール（ユーザ、リソース、又はアプリケーションプログラム）に応じた設定項目も削除される。上述したように、このコマンドにより削除された設定項目は設定値セット３１として取得されないので、このコマンドはコマンド履歴解析において考慮されない。
【００４９】
「設定を変更するコマンド」として、例えば「set」等があるものとする。このコマンドは、任意の設定項目における設定値を変更するコマンドである。これには上記の「設定項目を追加するコマンド」や「設定項目を削除するコマンド」の一部も含まれる。これは、上述したように、リソースやアプリケーションの登録・削除に伴い既存の設定項目も変更される場合があるためである。
【００５０】
この場合、コマンド履歴解析部１２は、コマンド履歴から「設定項目を変更するコマンド」として、上記のコマンド名を検索する。そして、例えば、コマンドの引数又は実行結果として、変更する設定項目名が示される場合、コマンド履歴解析部１２は、コマンド履歴において、その引数又は実行結果で示された設定項目名を、設定値が変更された設定項目として抽出するようにすればよい。
【００５１】
「設定を参照するコマンド」は、例えば「list」、及び「get」等があるものとする。これらのコマンドは、設定項目と、その設定値の確認に使用される。これらのコマンドは、設定値を変更するものではないため、コマンド履歴解析において考慮されない。設定値抽出部１１は、旧バージョンのソフトウェア１０から設定項目及びその設定値を抽出する場合には、このlistコマンド又はgetコマンドを用いて設定値セット３１を生成するための設定項目及びその設定値を抽出する。
【００５２】
続いて、図７を参照して本実施の形態に係るサーバ１におけるソフトウェアバージョンアップ処理について説明する。図７は、本実施の形態に係るサーバ１におけるソフトウェアバージョンアップ処理を示すフローチャートである。
【００５３】
ソフトウェア１０は、ソフトウェア１０の操作のためにコマンドが実行される毎に、そのコマンドの実行内容（コマンド及びその引数、並びに、その実行結果）を記憶部３にコマンド履歴として追加的に格納していく（Ｓ１、Ｓ２）。
【００５４】
設定値抽出部１１は、旧バージョンのソフトウェア１０から新バージョンのソフトウェア２０へのバージョンアップを開始するときに、ソフトウェア１０における各設定項目に対して設定されている各設定値を抽出し、設定値セット３１として記憶部３に格納する（Ｓ３）。
【００５５】
コマンド履歴解析部１２は、記憶部３に格納されたコマンド履歴を解析し、「設定項目を追加するコマンド」によって追加された設定項目の設定項目群１のリスト（リスト２）と、「設定項目を変更するコマンド」によって設定値が変更された設定項目の設定項目群２のリスト（リスト１）とを生成し、記憶部３に格納する（Ｓ４）。なお、この際、コマンド履歴解析部１２は、リスト１とリスト２で重複する設定項目については、リスト１から削除する。
【００５６】
タグ付部１３は、コマンド履歴解析部１２による解析結果に応じて設定値セット３１の各設定値にタグを付与する（Ｓ５）。具体的には、タグ付部１３は、設定値セット３１の設定値において、記憶部３に格納されたリスト１が示す設定項目の設定値にタグ１を付与し、記憶部３に格納されたリスト２が示す設定項目の設定値にタグ２を付与し、その他の設定項目にはタグ３を付与することで、タグ付き設定値セット３２を生成する。
【００５７】
旧バージョンのソフトウェア１０から新バージョンのソフトウェア２０にバージョンアップされた後、タグ解析部２１は、タグ付き設定値セット３２が示す設定値に付されたタグを解析する（Ｓ６）。
【００５８】
設定対象有無確認部２２は、タグ解析部２１によってタグ２が付されていると判定されたと判定された設定値の設定項目が、新バージョンのソフトウェア２０に存在するか否かを判定する（Ｓ７）。設定項目が新バージョンのソフトウェア２０に存在しないと判定した場合、設定対象有無確認部２２は、その設定項目が追加されるオプション製品、リソース、又はアプリケーションプログラムを特定し、その登録を促すメッセージを表示部４に表示する。
【００５９】
また、タグ解析部２１は、設定値を設定項目に適切に移行する（Ｓ８）。すなわち、タグ解析部２１は、タグ１が付与されている設定項目については、タグ付き設定値セット３２におけるその設定値をそのまま引き継いで設定し、タグ２又はタグ３が付与されている設定項目については、その設定値の設定を行わない。
【００６０】
タグ解析部２１及び設定対象有無確認部２２は、タグ付き設定値セット３２が示す設定値の全てについて順次、上述のＳ６〜Ｓ８の処理を繰り返す。
【００６１】
続いて、図８を参照して本実施の形態に係るソフトウェアバージョンアップ処理におけるコマンド履歴解析処理（Ｓ４）について具体的に説明する。図８は、本実施の形態に係るソフトウェアバージョンアップ処理におけるコマンド履歴解析処理（Ｓ４）を具体的に示すフローチャートである。
【００６２】
コマンド履歴解析部１２は、記憶部３に格納されたコマンド履歴を取得する（Ｓ１１）。コマンド履歴解析部１２は、コマンド履歴から「設定項目を追加するコマンド」のコマンド履歴を抽出する（Ｓ１２）。コマンド履歴解析部１２は、抽出したコマンド履歴から「設定項目を追加するコマンド」により追加された設定項目を抽出する（Ｓ１３）。コマンド履歴解析部１２は、抽出した設定項目を、タグ２の設定項目としてリストに追加していく（Ｓ１４）。コマンド履歴解析部１２は、Ｓ１２で抽出されたコマンドの全てについて、上述のＳ１３、Ｓ１４の処理を繰り返し実施する。
【００６３】
Ｓ１２で抽出されたコマンドの全てについて、上述のＳ１３、Ｓ１４の処理の実施が完了したとき、タグ２の設定項目のリストが「リスト２」として完成する（Ｓ１５）。
【００６４】
次に、コマンド履歴解析部１２は、コマンド履歴から「設定項目を変更するコマンド」のコマンド履歴を抽出する（Ｓ１６）。コマンド履歴解析部１２は、抽出したコマンド履歴から「設定項目を変更するコマンド」により設定値が変更された設定項目を抽出する（Ｓ１７）。コマンド履歴解析部１２は、抽出した設定項目を、タグ１の設定項目としてリストに追加していく（Ｓ１８）。コマンド履歴解析部１２は、Ｓ１６で抽出されたコマンドの全てについて、上述のＳ１７、Ｓ１８の処理を繰り返し実施する。
【００６５】
Ｓ１６で抽出されたコマンドの全てについて、上述のＳ１７、Ｓ１８の処理の実施が完了したとき、タグ１の設定項目のリストが「リスト１」として完成する（Ｓ１９）。そして、コマンド履歴解析部１２は、リスト１からリスト２と重複する設定項目を削除する（Ｓ２０）。
【００６６】
これにより、タグ付部１３は、リスト１及びリスト２に基づいて、設定値セット３１において、追加された設定項目の設定値にタグ１を付与し、設定値が変更された設定項目の設定値にタグ２を付与し、その他の設定値にタグ３を付与することができる。
【００６７】
なお、上述の説明では、説明の明確化のため、ソフトウェア１０が、設定値抽出部１１、コマンド履歴解析部１２、及びタグ付部１３を有し、ソフトウェア２０が、タグ解析部２１、及び設定対象有無確認部２２を有するものとして説明したが、当然に、ソフトウェア１０及びソフトウェア２０の双方が、設定値抽出部１１、コマンド履歴解析部１２、タグ付部１３、タグ解析部２１、及び設定対象有無確認部２２としても動作可能であることは言うまでもない。すなわち、ソフトウェア１０がそれよりも古いバージョンのソフトウェアからバージョンアップされた際には、制御部２をタグ解析部２１、及び設定対象有無確認部２２として動作させ、ソフトウェア２０がそれよりも新しいバージョンのソフトウェアにバージョンアップされる際には、制御部２を設定値抽出部１１、コマンド履歴解析部１２、及びタグ付部１３として動作させることが可能である。
【００６８】
上述したように、サーバ用ソフトウェアのバージョンアップにおいて、旧バージョンのソフトウェア１０から設定を移行する際、ユーザが独自に設定項目を加えている場合がある。この追加された設定項目は、新バージョンのソフトウェア２０には存在しないため、設定値を移行することができない。そこで、本実施の形態では、これらの移行できない設定項目に対応するため、旧バージョンのソフトウェア１０の動作時におけるコマンド履歴を解析して各設定値に、追加された設定値か否かや、変更された設定値か否かを示すタグを付加するようにしている。そして、このタグに基づいて、設定値を移行するか否かを自動的に判断し、設定値の設定又は設定値の抑止をするようにしている。そのため、ユーザが必要な設定項目かそうでないものかを判断する必要がなくなる。
【００６９】
また、そのタグに基づいて、新バージョンのソフトウェア２０に対して設定値を引き継いで設定する際に、オプション製品、リソース、及びソフトウェア等の登録を促すメッセージを提示するようにしている。そのため、ユーザは、設定値を移行できなかった設定項目について、その理由を知ることができる。また、このタグに基づいて、設定値が変更されていない項目については移行しないようにすることで、移行対象となる設定値を削減し、設定移行時の処理を提言することができる。
【００７０】
以上に説明したように、本実施の形態では、設定値抽出部１１が、ソフトウェア（プログラム）のバージョンアップ前に、バージョンアップ前のソフトウェアにおいて存在する設定項目のそれぞれに設定されている設定値を抽出する。次に、コマンド履歴解析部１２が、記憶部３に格納されたコマンドの履歴に基づいて、設定項目を追加するコマンドによって追加された設定項目を特定する。次に、タグ付部１３が、設定値抽出部１１によって抽出された設定値のうち、コマンド履歴解析部１２によって追加されたと判定された設定項目の設定値に対して第１のタグ（タグ２に相当）を付与する。そして、タグ解析部２１が、ソフトウェアのバージョンアップ後に、バージョンアップ後のソフトウェアに対して設定値抽出部１１によって抽出された設定値を引き継いで設定する際に、第１のタグが付された設定値の設定を抑止するようにしている。
【００７１】
これによれば、バージョンアップにおいて設定値を引き継いで設定する際に、旧バージョンにおいて追加された設定項目については、新バージョンにおいて設定値の設定を抑止することができる。そのため、プログラムのバージョンアップ時に、設定値の移行を適切に行うことができる。
【００７２】
＜発明の他の実施の形態＞
上述の説明では、サーバ用ソフトウェアを対象とした場合について例示したが、これに限られない。他のユーザが独自に設定項目を追加することができるソフトウェアのバージョンアップ時の設定値の移行に適用するようにしてもよい。
【００７３】
また、上述の説明では、コマンド履歴を蓄積し、バージョンアップ時に一括して解析するようにしているが、これに限らない。例えば、コマンド履歴解析を、コマンドの実行と同時に行うようにし、リスト１及びリスト２のそれぞれに対して設定項目を順次蓄積していくようにしてもよい。この場合、バージョンアップ時に膨大なコマンド履歴を解析する必要がなくなる。また、コマンド履歴の保存をしなくてもよくなり、記憶部３の消費量を削減することができる。
【００７４】
また、新バージョンのソフトウェア２０においてタグ２の設定値を設定する際に、上述のタグ付き設定値セット３２の情報のみでは、コマンドに指定する情報が不足しており、タグ２の設定値の設定できない場合には、その設定値を設定した際のコマンドラインの文字列もタグ付き設定値セット３２に含め、タグ解析部２１でそのコマンドラインの文字列によるコマンドを実行するようにしてもよい。
【００７５】
なお、上述の制御部２が実行するプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータ（サーバ１０）に供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（Random Access Memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００７６】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【００７７】
１  サーバ
２  制御部
３  記憶部
４  表示部
１０、２０  ソフトウェア
１１  設定値抽出部
１２  コマンド履歴解析部
１３  タグ付部
２１  タグ解析部
２２  設定対象有無確認部
３１  設定値セット
３２  タグ付き設定値セット
【図１】
2015152999.tif 000003
【図２】
2015152999.tif 000004
【図３】
2015152999.tif 000005
【図４】
2015152999.tif 000006
【図５】
2015152999.tif 000007
【図６】
2015152999.tif 000008
【図７】
2015152999.tif 000009
【図８】
2015152999.tif 000010