(57)【要約】【課題】モジュール更新時に保守要員による入替え作業を不要とするクライアントサーバシステムを提供することを目的とする。【解決手段】業務システムを提供するサーバとネットワークを介して接続し、クライアント端末上での業務処理を定義したモジュールの登録及び更新をするモジュール更新プログラムであってクライアント端末の管理者権限のみが更新可能な領域に格納され、クライアント端末に適用されているモジュールの識別子及び格納先を有するモジュール一覧と、業務システムの利用開始時に適用すべきモジュールのバージョン設定ファイルを取得し、そのバージョン設定ファイルで指定されるバージョンとクライアント端末に適用されているモジュールのバージョンとを比較し、更新が必要と判定したときは適用すべきモジュールを取得する自動更新処理部とクライアント端末の管理者権限を有して動作し、取得したモジュールを登録する更新代行処理部とを有する。【選択図】  図１
2006011801.tif 000002
【特許請求の範囲】
【請求項１】
クライアント端末の利用時に入力した認証識別子に応じて管理者権限又は非管理者権限を付与されている利用者からの指示入力及び前記クライアント端末の管理者権限を有する動作システムの指示に基づいて起動し、業務システムを提供するサーバとネットワークを介して接続し、前記クライアント端末上での業務処理を定義したモジュールの登録及び更新をするモジュール更新プログラムであって、
前記クライアント端末を、
前記クライアント端末の管理者権限でのみ更新可能な領域に、前記モジュールを一意に特定する識別子と前記モジュールのバージョンと業務処理の定義を有するモジュールを格納するモジュール格納部と、
前記クライアント端末の管理者権限でのみ更新可能な領域に、前記モジュール格納部に格納されているモジュールの識別子及び格納先の一覧を記憶するモジュール一覧記憶部と、
業務システムの利用開始時に、適用すべきモジュールの識別子及び前記モジュールのバージョンを有するバージョン設定ファイルを前記サーバから取得し、前記取得したバージョン設定ファイルで指定されるモジュールのバージョンと、前記バージョン設定ファイルで指定されるモジュールと同じ識別子を有する前記モジュール格納部に格納されているモジュールのバージョンとを比較し、更新が必要であると判定したときは、前記適用すべきモジュールを取得する自動更新処理部と、
クライアント端末の管理者権限を有して動作し、前記自動更新処理部の依頼に基づいて、前記取得したモジュールを前記モジュール格納部及び前記モジュール一覧記憶部に登録する更新代行処理部として、
機能させることを特徴とするモジュール更新プログラム。
【請求項２】
請求項１に記載のモジュール更新プログラムであって、
前記バージョン設定ファイルは、適用すべきモジュールの識別子及び前記モジュールのバージョン及び更新処理の制御コードを有し、
前記自動更新処理部は、前記バージョン設定ファイルの制御コードに基づいて、適用すべきモジュールのバージョンが前記モジュール格納部に格納されているモジュールより新しいときにのみ更新するか、適用すべきモジュールのバージョンが前記モジュール格納部に格納されているモジュールと一致しないときに更新するかを、切り換えて動作するように前記クライアント端末を機能させることを特徴とするモジュール更新プログラム。
【請求項３】
請求項１又は２に記載のモジュール更新プログラムであって、
前記更新代行処理部は、前記サーバから取得したモジュールの識別子及びバージョンと、前記バージョン設定ファイルのモジュール識別子及びバージョンとの整合性を確認し、整合しないときには、前記サーバへ警告を通知するとともに、前記サーバから取得したモジュールの登録を行なわないように前記クライアント端末を機能させることを特徴とするモジュール更新プログラム。
【請求項４】
請求項１乃至３に記載のモジュール更新プログラムであって、
前記自動更新処理部は、業務システムの利用開始時に、適用すべきモジュール更新プログラムのバージョンを有する自己バージョン情報を前記サーバから取得し、前記取得した自己バージョン情報で指定されるバージョンと、前記モジュール格納部に格納されているモジュール更新プログラムのバージョンとを比較し、更新が必要であると判定したときは、サーバから前記更新が必要と判定されたモジュール更新プログラムのモジュールを取得し、
前記更新代行処理と同じ権限で動作し、前記自動更新処理部においてモジュール更新プログラムの更新が必要であると判定されたとき、前記自動更新処理部及び更新代行処理部の実行を停止させ、前記自動更新処理部及び更新代行処理部のモジュールを更新し、前記更新後のモジュールを用いて前記自動更新処理部及び更新代行処理部を再起動させる自己更新処理部として前記クライアント端末を機能させることを特徴とするモジュール更新プログラム。
【請求項５】
請求項４に記載のモジュール更新プログラムであって、
前記自己バージョン情報は、適用すべきモジュール更新プログラムのバージョンと更新処理の制御コードを有し、
前記自動更新処理部は、前記自己バージョン情報の制御コードに基づいて、適用すべきモジュール更新プログラムのバージョンが前記モジュール格納部に格納されているモジュール更新プログラムのバージョンより新しいときにのみ更新するか、適用すべきモジュール更新プログラムのバージョンが前記モジュール格納部に格納されているモジュール更新プログラムのバージョンと一致しないときに更新するかを、切り換えて動作するように前記クライアント端末を機能させることを特徴とするモジュール更新プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
クライアントサーバシステムにおけるモジュール更新時のモジュール更新方法に関する。
【背景技術】
【０００２】
システム構築業務では、顧客に提供したシステムの障害対応や機能追加等で修正又は作成したモジュールに対して、システム構築業者の開発環境において動作テストを行なった後、顧客の運用環境においても再度動作テストが行なわれる。
【０００３】
顧客の運用環境での検証作業では、顧客（システムの利用者）と日程調整を行い、モジュール入れ替え作業が行なわれる。通常、この作業は、業務時間終了後の深夜か顧客がシステムを利用しない休日等に行なわれることが多い。
【０００４】
しかし、入れ替えられた新しいモジュールの機能を顧客が検証するのは実質的に翌稼働日ということになり、顧客が利用してみて初めて障害が正常に対応されている、又は要求した機能が正常に追加されている等の確認が行なわれる。この確認を受けることにより、上記プログラムモジュールの障害対応や機能追加対応で更新されたモジュールの検証作業が完了となる。
【０００５】
顧客のシステム環境での検証が完了した後は、顧客の各部署に散在している全クライアント端末に対し、更新されたモジュールの入れ替え作業が行なわれ、上記作業が完了後に更新後のシステムの運用が開始されることとなる。
【０００６】
この入れ替え作業は、顧客の運用環境の規模に応じて入れ替え対象となるクライアントの台数が増加するため、顧客の運用環境の規模が大きくなるほど入替え作業に要する時間及び労力が大きくなり、作業要員の人為的ミスが生じる可能性が高くなる。そのため、顧客の運用環境の規模が大きくなるほど、更新後のシステム全体での不整合が生じる危険が高くなる。
【０００７】
さらに、顧客の運用環境の規模が大きい場合、更新後のシステム全体での不整合が生じることによる顧客業務への影響範囲も大きくなり、入替え作業による障害が発生した場合、システム構築業者にとって顧客からの信用を失う度合も大きくなることにも繋がる。
【０００８】
そこで、複数台の端末とサーバとで構成されるシステムにおいて、各端末にインストールされているモジュールのバージョンをシステム全体で統一する技術として、特許文献１がある。特許文献１では、ネットワーク上のサーバによってクライアントマシンのプログラムのインストール処理およびバージョンアップ処理を自動的に行うことにより、クライアントのソフトウェアのインストール作業およびバージョンアップ作業の効率化を図る技術が開示されている。
【特許文献１】特開平１０−３１５９０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
特許文献１では、ネットワーク上のサーバに全クライアントに適用するモジュールを格納し、さらに、ネットワーク上の全クライアントの情報を一元管理している。サーバで管理しているクライアントの情報としては、各クライアントに適用するモジュールのバージョン及びモジュールの格納場所等となる。そして、特許文献１の方法では、管理者の指示に基づくサーバの処理により、システムで利用される複数のクライアントに対してモジュールの適用が行われる。
【００１０】
このモジュールの適用処理は、サーバの処理により一元的に管理された情報に基づいて行なわれるため、クライアントの台数に応じてサーバの負荷が高くなるという問題があった。この問題に対応するために、従来は負荷に耐えうる性能を有したサーバを導入したり、または、一定期間内におけるサーバの処理においてモジュールの適用対象となるクライアントの台数に制限を設けることによりサーバの負荷を平滑化することがおこなわれてきた。前者の場合、システムの規模が大きくなるに従い、システムの保守作業のための設備費用も大きくなり、経済的に効率が良くなかった。また、後者の場合、保守作業を分割して行なうため、システムの規模が大きくなるに従い、システム全体の整合性を確保できるまでに多くの時間が必要となり、システムを利用する顧客業務への悪影響が生じる。
【００１１】
上記問題を解決する方法として、システムの利用開始時にクライアントで使用するモジュールをダウンロードさせて動的に適用する方法がある。この方法では、クライアントで使用するモジュールを常に最新のバージョンに維持することが可能となり、サーバへの負荷を分散することも可能となる。
【００１２】
しかしながら、システム利用開始時に動的に適用する方法では、クライアント上の資源のセキュリティ確保のために、適用するモジュールで実現できる機能に制限を設けていたり、または、動的に適用可能とする利用者の権限に制限を設けることが行なわれている。そのため、実現できる機能に制限を設けないモジュールを適用する場合には、特定の権限を付与された利用者により、システムの利用開始を行なう必要がある。しかしながら、通常のシステム運用における一般利用者は、動的適用の実行を許可された権限を付与されていない。そのため、システムの利用開始時に動的に適用される方法であっても、各クライアントに対して、特定の権限を有した保守要員による入替え作業が必要となる。
【００１３】
そこで、本発明は、モジュール更新時に保守要員による入替え作業を不要とするクライアントサーバシステムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明は、クライアント端末の利用時に入力した認証識別子に応じて管理者権限又は非管理者権限を付与されている利用者及び前記クライアント端末の管理者権限を有する動作システムの指示に基づいて起動し、業務システムを提供するサーバとネットワークを介して接続し、前記クライアント端末上での業務処理を定義したモジュールの登録及び更新をするモジュール更新プログラムであって、前記クライアント端末を、前記クライアント端末の管理者権限でのみ更新可能な領域に、前記モジュールを一意に特定する識別子と前記モジュールのバージョンと業務処理の定義を有するモジュールを格納するモジュール格納部と、前記クライアント端末の管理者権限でのみ更新可能な領域に、前記モジュール格納部に格納されているモジュールの識別子及び格納先の一覧を記憶するモジュール一覧記憶部と、業務システムの利用開始時に、適用すべきモジュールの識別子及び前記モジュールのバージョンを有するバージョン設定ファイルを前記サーバから取得し、前記取得したバージョン設定ファイルで指定されるモジュールのバージョンと、前記バージョン設定ファイルで指定されるモジュールと同じ識別子を有する前記モジュール格納部に格納されているモジュールのバージョンとを比較し、更新が必要であると判定したときは、前記適用すべきモジュールを取得する自動更新処理部と、クライアント端末の管理者権限を有して動作し、前記自動更新処理部の依頼に基づいて、前記取得したモジュールを前記モジュール格納部及び前記モジュール一覧記憶部に登録する更新代行処理部として、機能させることを特徴とする。
【００１５】
また、本発明は、前記モジュール更新プログラムであって、前記バージョン設定ファイルは、適用すべきモジュールの識別子及び前記モジュールのバージョン及び更新処理の制御コードを有し、前記自動更新処理部は、前記バージョン設定ファイルの制御コードに基づいて、適用すべきモジュールのバージョンが前記モジュール格納部に格納されているモジュールより新しいときにのみ更新するか、適用すべきモジュールのバージョンが前記モジュール格納部に格納されているモジュールと一致しないときに更新するかを、切り換えて動作するように前記クライアント端末を機能させることを特徴とする。
【００１６】
さらに、本発明は、前記モジュール更新プログラムであって、前記更新代行処理部は、前記サーバから取得したモジュールの識別子及びバージョンと、前記バージョン設定ファイルのモジュール識別子及びバージョンとの整合性を確認し、整合しないときには、前記サーバへ警告を通知するとともに、前記サーバから取得したモジュールの登録を行なわないように前記クライアント端末を機能させることを特徴とする。
【００１７】
またさらに、本発明は、前記モジュール更新プログラムであって、前記自動更新処理部は、業務システムの利用開始時に、適用すべきモジュール更新プログラムのバージョンを有する自己バージョン情報を前記サーバから取得し、前記取得した自己バージョン情報で指定されるバージョンと、前記モジュール格納部に格納されているモジュール更新プログラムのバージョンとを比較し、更新が必要であると判定したときは、サーバから前記更新が必要と判定されたモジュール更新プログラムのモジュールを取得し、前記更新代行処理と同じ権限で動作し、前記自動更新処理部においてモジュール更新プログラムの更新が必要であると判定されたとき、前記自動更新処理部及び更新代行処理部の実行を停止させ、前記自動更新処理部及び更新代行処理部のモジュールを更新し、前記更新後のモジュールを用いて前記自動更新処理部及び更新代行処理部を再起動させる自己更新処理部として前記クライアント端末を機能させることを特徴とする。
【００１８】
さらに、本発明は、前記モジュール更新プログラムであって、前記自己バージョン情報は、適用すべきモジュール更新プログラムのバージョンと更新処理の制御コードを有し、前記自動更新処理部は、前記自己バージョン情報の制御コードに基づいて、適用すべきモジュール更新プログラムのバージョンが前記モジュール格納部に格納されているモジュール更新プログラムのバージョンより新しいときにのみ更新するか、適用すべきモジュール更新プログラムのバージョンが前記モジュール格納部に格納されているモジュール更新プログラムのバージョンと一致しないときに更新するかを、切り換えて動作するように前記クライアント端末を機能させることを特徴とする。
【発明の効果】
【００１９】
本発明では、非管理者権限を有する一般利用者であってもシステムの利用開始時に動的にモジュールの適用を行なうことが可能となり、従来は管理者権限でのみ更新可能なモジュールを、非管理者権限を有する一般利用者であっても常に最新のバージョンに維持することが可能となる。さらに、サーバ側で設定した制御コードに基づいて、モジュール更新処理の動作を切り換えて動作するため、モジュール更新直後の障害発生時に以前のモジュールに置き換えるための更新か、又は最新のモジュールだけを適用するための更新かを、使い分けることが可能となる。またさらに、サーバから取得したモジュールが適用すべきバージョンであるかをクライアント端末にて確認することにより、間違ったバージョンの適用を防止することが可能となる。
【００２０】
以上より、モジュール更新時に保守要員による入替え作業が不要となり、人為的なミスによるシステム全体の不整合を抑止することが可能となる。さらに、モジュールの適用を自動化した際に生じるサーバへの負荷を軽減することが可能となる。
【発明を実施するための最良の形態】
【００２１】
以下、実施例を図面に基づいて説明する。
【実施例１】
【００２２】
本発明の実施形態を、図１を用いて以下に説明する。図１は、本発明のシステムの構成の一実施例を示した図である。本発明のシステムは、サーバ100とネットワークを介して接続される１つ以上のクライアント200で構成されている。サーバ100は、Ｗｅｂサーバ101とバージョン設定ファイル102と画面構成ファイル103と適用モジュール104を含んで構成されている。
【００２３】
バージョン設定ファイル102は、自動更新処理部202のバージョン情報、適用モジュールの数、各適用モジュールのバージョン情報等が格納されている。
【００２４】
クライアント200は、ブラウザ201と自動更新処理部202と更新代行処理部203と自己更新処理部204を含み、さらに、モジュール一覧205とモジュールファイル206を含んで構成される。
【００２５】
ブラウザ201は、例えばＷｅｂブラウザであり、具体的にはHTTPプロトコルの送受信機能、及びＨＴＭＬ文書のレンダリング機能等を備えている。自動更新処理部202は、ブラウザ201からの依頼を受けてモジュールの更新処理を行う機能を備えており、ブラウザと同様に、利用者の権限と同じ権限で実行される。更新代行処理部203は自動更新処理部202の依頼を受けてクライアント端末上にモジュールを適用する機能を備えており、クライアントのオペレーティングシステムにより、クライアントの資源を管理する管理者と同じか又はそれ以上の権限で実行される。自己更新処理部204は、自動更新処理部202の依頼を受けて、自動更新処理部202及び更新代行処理部203の更新を行う機能を有する。
【００２６】
モジュール一覧205には、クライアント200に適用されている既存のモジュールに関する情報が格納されている。具体的には、図３に示すように、モジュールを一意に特定するモジュールＩＤ2051、モジュールの格納場所2052が格納されている。
【００２７】
モジュール一覧205のモジュール格納場所2052で示されるモジュールファイル206には、モジュールＩＤ2061とバージョン情報2062、及びバイナリーデータ2063が格納されている。
【００２８】
次に、図２を用いてモジュール適用処理の流れを説明する。まず、クライアント200のブラウザ201は、利用者の指示を受けてシステム利用開始画面の取得要求をサーバ100へ送信する（図２のＳ１０１）。サーバ100のWebサーバ101は、ネットワークを介して、クライアント200のシステム利用開始画面の取得要求を受信し、システム利用開始画面ファイルを取得する（図２のＳ１０２）。さらに、サーバ100のWebサーバ101は、取得したシステム利用開始画面ファイルをクライアント200へ返信する（図２のＳ１０３）。
【００２９】
クライアント200は、サーバ100より受信したシステム利用開始画面ファイルを解析し（図２のＳ１０４）、利用開始画面ファイル中に記述されているモジュールの初期化処理を実行する（図２のＳ１０５）。利用開始画面ファイルの内容例を図６に示す。図６に示す画面構成ファイルの内容例は、利用開始画面ファイルの内容例を示したもので、<OBJECT>タグの属性CLASSIDで、使用するモジュールのモジュールＩＤを指定している（図６の1031）。また、<SCRIPT>タグでは、モジュールに実装されている処理を呼び出すコマンドが記述されている（図６の1032）。この例では、モジュールの初期化処理を実行する内容例が示されており、その引数としてバージョン設定ファイルを格納するサーバのＵＲＬが指定されている。このとき、上述の画面構成ファイルを受信したブラウザは、<OBJECT>タグの属性CLASSIDで定義されているモジュールＩＤと一致する内容で登録されているモジュールをモジュール一覧205から取得し、<OBJECT>タグの属性IDで定義されている識別子（図６の例では"SYSTEM_START"）に取得したモジュールの関連付けを行なう。上述の<SCRIPT>タグで記述されているコマンドの処理は、<OBJECT>タグで定義したモジュールに定義されており、ブラウザは、上述のモジュール一覧を参照することにより必要なモジュールを特定し、<SCRIPT>タグに記述されている処理を実行する。図６に示す例では、<OBJECT>タグの属性ID｛xxxx-xxxx-0001｝でモジュール一覧205に登録されているモジュールの格納先2052「/ddworks21/AutoUpdate/FDDAxUpd.ocx」に格納されているモジュールには、<SCRIPT>タグで記述されたコマンド「ExecActiveXCheck」の処理が定義されており、モジュール「/ddworks21/AutoUpdate/FDDAxUpd.ocx」に格納されているコマンドは引数「"http://www.system.ftk.fujitsu.co.jp/"」を受けて実行されることとなる。なお、モジュール一覧205は、その内容を更新する際にクライアント端末の管理者権限を有するが、更新を伴わない参照のみであれば管理者権限を有さない一般利用者権限でも実行することが可能となっている。
【００３０】
モジュール初期化処理の実行指示を受けた自動更新処理部202は、バージョン設定ファイルの取得要求を、前述のシステム開始画面ファイルの1032で指定されたＵＲＬのサーバ100へ送信する。なお、本実施形態の説明では、上述のシステム開始画面ファイルで指定されたバージョン設定ファイルを格納するサーバと、システム開始画面ファイルを格納するサーバとが同一である場合を想定して説明を続ける。
【００３１】
バージョン設定ファイルの取得要求を受信したサーバ100のWebサーバ101は、図示しない設定ファイルに定義された場所に格納されているバージョン設定ファイル102を取得し（図２のＳ１０７）、取得したバージョン設定ファイル102をクライアント200へ返信する（図２のＳ１０８）。
【００３２】
クライアント200は、サーバ100より受信したバージョン設定ファイル102を解析し（図２のＳ１０９）、自己バージョンチェック処理を行う（図２のＳ１１０）。
【００３３】
バージョン設定ファイル102の内容例を図５に示す。図５のバージョン設定ファイル102は、自己バージョン情報102a（図5の例では[UpdaterVersion]より始まる定義体）と、適用モジュール一覧情報102b（図5の例ではModuleNum,Module[n]の定義体）と、モジュールバージョン情報102c（図5の例では[DCFileCtl]より始まる定義体）が格納されている。自動更新処理部202は、バージョン設定ファイルの自己バージョン情報102aで示される自己バージョン1022と、クライアント200の自動更新処理部及び更新代行処理部のバージョンとを比較し、更新が必要であると判定した場合には、自己更新処理部204により、自動更新処理部202及び更新代行処理部204の更新処理を行う。
【００３４】
上述の自己バージョンチェック処理の流れを図７に示す。
【００３５】
まず、バージョン設定ファイルより自己バージョン情報102aを取得し、取得した自己バージョン情報102aに指定されているバージョンと自動更新処理部及び更新代行処理部のモジュールのバージョンとを比較する（図７のＳ２００）。その結果、更新が必要であると判定した場合（図７のＳ２００でＮｏ）、自動更新処理部202は、バージョン設定ファイルの自己バージョン情報で指定されるダウンロードＵＲＬ1023（DownloadUrl）から自己モジュールのダウンロードを実行する（図７のＳ２０１、Ｓ２０２及びＳ２０３）。
【００３６】
自己モジュールをダウンロードした自動更新処理部200は、ダウンロードした自己モジュールに格納されているモジュールＩＤ2061及びバージョン情報2062と、既存の自動更新処理部及び更新代行処理部のモジュールに格納されているモジュールＩＤ及びバージョン設定ファイルの自己バージョン情報で指定されているバージョンとを比較し、一致していることを確認する（図７のＳ２０４）。なお、自己バージョン情報102aの置換モードフラグ（ModeFlag）1026は、自己モジュールを適用する際の自動更新処理部の動作を制御する。
【００３７】
例えば、置換モードフラグ（ModeFlag）1026に「1」が設定されている場合、サーバから指定されるバージョンとクライアントに適用済みのバージョンとの一致性のみの判定を行なう。すなわち、サーバから指定されたバージョンよりクライアントのバージョンが新しくても、サーバから指定された古い方のバージョンをダウンロードすることになる。
【００３８】
また、置換モードフラグ（ModeFlag）1026に「0」が設定されている場合、サーバから指定されるバージョンとクライアントに適用済みのバージョンとの一致性のみならず、サーバから指定されるバージョンがクライアントのバージョンより新しいときに、サーバから指定された新しいバージョンをダウンロードすることになる。
【００３９】
上述の制御により、置換モードフラグ1026に「0」を設定しておくことで、適用すべきモジュールのバージョンを間違って古いものをサーバに格納した場合においても、サーバからモジュールの取得を行なうことなくクライアント端末上の最新のモジュールを維持することが可能となる。また、適用したモジュールに障害が発生した場合に、置換モードフラグ1026に「1」を設定しておくことで、障害が起きていない以前のバージョンを各クライアント端末上に適用することが可能となり、モジュールの動作検証を行なう検証環境と検証済みのモジュールでの運用を行なう本番環境との切換を容易に行なうことができる。
【００４０】
ここで、ダウンロード後の自己モジュールのバージョンチェックを行なうことにより、サーバで格納しているバージョン設定ファイルの定義に誤りがあった場合、例えば、バージョン設定ファイルの自己バージョン情報で指定したバージョンと自己モジュールに格納されているバージョンとが整合しない場合（図７のＳ２０４でＮｏ）に、クライアントに間違ったバージョンの自己モジュールを適用することを未然に防ぐことができる。図７に示す例では、バージョン設定ファイルの自己バージョン情報で指定したバージョンと自己モジュールに格納されているバージョンとが整合しない場合（図７のＳ２０４でＮｏ）に、自動更新処理部202はサーバ100にエラー情報を送信し、エラー情報を受信したサーバ100のWebサーバ101は警告メッセージを画面に表示又は予め指定された管理者のメールアドレスへ警告メールを送信する（図７のＳ２０５）。
【００４１】
上述のダウンロード後の自己バージョンチェックで、ダウンロードした自己モジュールのバージョンが指定されたバージョンと一致する場合（図７のＳ２０４でＹｅｓ）、モジュールの適用を更新代行処理部203に依頼する（図７のＳ２０６）。依頼を受けた更新代行処理部203は、自己更新処理部204を起動する（図７のＳ２０７）。更新代行処理部203より起動指示を受けた自己更新処理部204は、更新代行処理部203と同じ権限で動作する（図７のＳ２０７’）。すなわち、自己更新処理部204は、クライアントの資源を管理する管理者権限を有する動作状態となり、同権限を有する更新代行処理部203の活動を停止させることが可能となる。上述の動作状態において、一般利用者権限で動作する自動更新処理部の活動を停止させることも可能である。
【００４２】
自己更新処理部204は、自動更新処理部202及び更新代行処理部203に対して、停止命令を通知する（図７のＳ２０８）。停止命令を受けた自動更新処理部202及び更新代行処理部203は、自らが動作する権限と同一か又はそれ以上の権限を有して動作する自己更新処理部204からの停止命令を受理し、処理を停止する（図７のＳ２０８’）。
【００４３】
自動更新処理部202及び更新代行処理部203の停止を受けた自己更新処理部204は、自動更新処理部202及び更新代行処理部203のモジュールをダウンロードした自己モジュールで置き換える（図７のＳ２０９）。ここで、置き換えられる既存のモジュールを削除するのではなく、別の格納先に保存しておき、モジュールの世代管理を行なっても良い。その場合、クライアントのモジュール一覧205にバージョン情報を追加し、モジュールＩＤとバージョン情報とをキーにすることにより、バージョン毎のモジュールの格納先を特定することが可能となる。
【００４４】
次に、自己更新処理部204は、置換え後のモジュールを用いて、自動更新処理部202及び更新代行処理部203を再起動させる（図７のＳ２１０、Ｓ２１０’）。その際、自動更新処理部202は利用者の権限で実行し、更新代行処理部203は自己更新処理部204と同じ権限で実行させる。
【００４５】
自動更新処理部202及び更新代行処理部203が正常に起動したのを受けて、自己更新処理部204は、自動更新処理部202に適用モジュールのバージョンチェック処理の再開始命令を通知する（図７のＳ２１１）。通知を受けた自動更新処理部202は、適用モジュールのバージョンチェックを再開始する（図７のＳ２１２）。すなわち、図２に示す処理Ｓ１１１を実行する。なお、処理Ｓ２００の判定においてＹｅｓの場合、すなわち指定されたモジュールのバージョンと適用されているバージョンとが一致した場合も、図２に示す処理Ｓ１１１を実行する。
【００４６】
以上が、自己バージョンチェック処理の流れとなる。  
【００４７】
次に、自動更新処理部202は、適用モジュールのバージョンチェック処理を行う。まず、適用モジュール一覧情報102bで指定されるモジュール数1027（ModuleNum）により適用すべきモジュールの数を取得し、適用モジュール情報名(Module[n])1028より適用すべきモジュールのバージョン情報を特定する適用モジュール情報名を取得する。すなわち、モジュール数1027で指定された数だけ適用モジュール情報名が定義されている。
【００４８】
自動更新処理部202は、取得した適用モジュール情報名と一致するモジュール情報名1029を有するモジュール情報102cを取得し、取得したモジュール情報202で指定されるモジュールＩＤ1032（CLSID）と一致するモジュールＩＤ2051に対応付けて登録されているモジュール格納場所2052をモジュール一覧205より取得する。さらに、モジュール格納先2052で特定されるモジュールファイル206よりバージョン情報2062を取得し、バージョン設定ファイルで指定されるモジュール情報102cのバージョン情報1030と比較し、更新が必要であると判定した場合（図２のＳ１１２でＮｏ）は、後述のモジュールの適用処理を実行する。なお、クライアントのモジュール一覧205に、バージョン設定ファイルで指定されるモジュールＩＤが登録されていない場合（図２のＳ１１１でＮｏ）も、後述のモジュール適用処理を実行する。なお、モジュール情報102cの置換モードフラグ（ModeFlag）1034は、更新モジュールを適用する際の自動更新処理部の動作を制御する。
【００４９】
例えば、置換モードフラグ（ModeFlag）1034に「1」が設定されている場合、サーバから指定されるバージョンとクライアントに適用済みのバージョンとの一致性のみの判定を行なう。すなわち、サーバから指定されたバージョンよりクライアントのバージョンが新しくても、サーバから指定された古い方のバージョンをダウンロードすることになる。また、置換モードフラグ（ModeFlag）1034に「0」が設定されている場合、サーバから指定されるバージョンとクライアントに適用済みのバージョンとの一致性のみならず、サーバから指定されるバージョンがクライアントのバージョンより新しいときに、サーバから指定された新しいバージョンをダウンロードすることになる。上述の制御により、置換モードフラグ1034に「0」を設定しておくことで、適用すべきモジュールのバージョンを間違って古いものをサーバに格納した場合においても、サーバからモジュールの取得を行なうことなくクライアント端末上の最新のモジュールを維持することが可能となる。また、適用したモジュールに障害が発生した場合に、置換モードフラグ1034に「1」を設定しておくことで、障害が起きていない以前のバージョンを各クライアント端末上に適用することが可能となり、モジュールの動作検証を行なう検証環境と検証済みのモジュールでの運用を行なう本番環境との切換を容易に行なうことができる。
【００５０】
上述の判定処理においてモジュールの適用が必要であると判定された場合、自動更新処理部202は、バージョン設定ファイルのモジュール情報で指定されるダウンロードＵＲＬ1031（DownloadUrl）から適用モジュールのダウンロードを実行する（図２のS113、S114及びS115）。
【００５１】
適用モジュールをダウンロードした自動更新処理部200は、適用モジュールに格納されているモジュールＩＤ2061及びバージョン情報2062と、バージョン設定ファイルのモジュール情報で指定されるモジュールＩＤ及びバージョン情報とを比較し、一致していることを確認する（図２のＳ１１６）。ここでダウンロード後の適用モジュールのバージョンチェックを行なうことにより、サーバで格納しているバージョン設定ファイルの定義に誤りがあった場合、例えば、バージョン設定ファイルのモジュール情報で指定したバージョンとモジュールに格納されているバージョンとが整合しない場合（図２のＳ１１６でＮｏ）に、クライアントに間違ったバージョンのモジュールを適用することを未然に防ぐことができる。図２に示す例では、バージョン設定ファイルのモジュール情報で指定したバージョンとモジュールに格納されているバージョンとが整合しない場合（図２のＳ１１６でＮｏ）に、自動更新処理部202はサーバ100にエラー情報を送信し、エラー情報を受信したサーバ100のWebサーバ101は警告メッセージを画面に表示又は予め指定された管理者のメールアドレスへ警告メールを送信する（図２のＳ１１７）。
【００５２】
上述のダウンロード後のバージョンチェックで、ダウンロードしたモジュールのバージョンが指定されたバージョンと一致する場合（図２のＳ１１６でＹｅｓ）、モジュールの適用を更新代行処理部203に依頼する（図２のＳ１１８）。適用依頼を受けた更新代行処理部203は、ダウンロードしたモジュールの情報をモジュール一覧205に登録又は更新する。なお、モジュール一覧205は特定の権限を有したプロセスのみ更新可能とする記憶領域に格納されており、例えば一般ユーザ権限で実行されているユーザアプリケーションのプロセスでは更新することができない。上述の更新代行処理部203は、クライアントのオペレーティングシステムにより、クライアントの利用者の権限のいかんにかわらずに、モジュール一覧205を更新可能とする権限を有して実行される。そのため、クライアントの利用者が一般ユーザ権限であっても、モジュール一覧205が更新可能となり、利用者の権限に関係なくモジュール適用を動的に行なうことが可能となる。特に、通常の利用者は、一般利用者権限でクライアントを利用するため、システムを利用する際のモジュールの更新に対する権限を有していない場合が多い。しかし、上述の更新代行処理部により、一般利用者権限でのクライアントの利用を継続したまま、クライアント環境の整備が自動的に実行でき、利用者の負荷が大幅に軽減されるとともに、更新漏れの防止にもなり、品質向上につながる。
【００５３】
なお、上述のモジュールの適用処理が終了した後、又は、上述のバージョンチェックでモジュールの更新が不要と判定された場合、クライアント200のブラウザ201は、システム利用開始画面を表示して、システムの利用が開始される（図２のＳ１２０）。
【００５４】
なお、上述の実施例では、更新対象をモジュールの場合としたが、各種定義体であっても良い。定義体としては、例えば、帳票定義体、表計算やワープロソフトなどのＯＡソフトにおけるテンプレート等が考えられる。この場合、従来技術では表計算やワープロなどのＯＡソフトにおけるテンプレートに値を埋めて帳票形式にしたものをクライアントに送信していたが、各種定義体やテンプレートは事前に置き換えられているため、クライアントへの送信はデータ（値）のみとなり、ネットワーク上のトラフィック量を軽減することが可能となる。
【００５５】
上述のように、本実施例により、モジュール更新時に保守要員による入替え作業を不要となり、人為的なミスによるシステム全体の不整合を抑止することが可能となる。さらに、モジュールの適用を自動化した際に生じるサーバへの負荷を軽減することが可能となる。
（付記１）上記実施例１を含む実施形態に関し、更に以下の付記１を開示する。
【００５６】
クライアント端末の利用時に入力した認証識別子に応じて管理者権限又は非管理者権限を付与されている利用者からの指示入力及び前記クライアント端末の管理者権限を有する動作システムの指示に基づいて起動し、業務システムを提供するサーバとネットワークを介して接続し、前記クライアント端末上での業務処理を定義したモジュールの登録及び更新をするモジュール更新プログラムであって、
前記クライアント端末を、
前記クライアント端末の管理者権限でのみ更新可能な領域に、前記モジュールを一意に特定する識別子と前記モジュールのバージョンと業務処理の定義を有するモジュールを格納するモジュール格納部と、
前記クライアント端末の管理者権限でのみ更新可能な領域に、前記モジュール格納部に格納されているモジュールの識別子及び格納先の一覧を記憶するモジュール一覧記憶部と、
業務システムの利用開始時に、適用すべきモジュールの識別子及び前記モジュールのバージョンを有するバージョン設定ファイルを前記サーバから取得し、前記取得したバージョン設定ファイルで指定されるモジュールのバージョンと、前記バージョン設定ファイルで指定されるモジュールと同じ識別子を有する前記モジュール格納部に格納されているモジュールのバージョンとを比較し、更新が必要であると判定したときは、前記適用すべきモジュールを取得する自動更新処理部と、
クライアント端末の管理者権限を有して動作し、前記自動更新処理部の依頼に基づいて、前記取得したモジュールを前記モジュール格納部及び前記モジュール一覧記憶部に登録する更新代行処理部として、
機能させることを特徴とするモジュール更新プログラム。
（付記２）上記実施例１を含む実施形態に関し、更に以下の付記２を開示する。
【００５７】
付記１に記載のモジュール更新プログラムであって、
前記バージョン設定ファイルは、適用すべきモジュールの識別子及び前記モジュールのバージョン及び更新処理の制御コードを有し、
前記自動更新処理部は、前記バージョン設定ファイルの制御コードに基づいて、適用すべきモジュールのバージョンが前記モジュール格納部に格納されているモジュールより新しいときにのみ更新するか、適用すべきモジュールのバージョンが前記モジュール格納部に格納されているモジュールと一致しないときに更新するかを、切り換えて動作するように前記クライアント端末を機能させることを特徴とするモジュール更新プログラム。
（付記３）上記実施例１を含む実施形態に関し、更に以下の付記３を開示する。
【００５８】
付記１又は２に記載のモジュール更新プログラムであって、
前記更新代行処理部は、前記サーバから取得したモジュールの識別子及びバージョンと、前記バージョン設定ファイルのモジュール識別子及びバージョンとの整合性を確認し、整合しないときには、前記サーバへ警告を通知するとともに、前記サーバから取得したモジュールの登録を行なわないように前記クライアント端末を機能させることを特徴とするモジュール更新プログラム。
（付記４）上記実施例１を含む実施形態に関し、更に以下の付記４を開示する。
【００５９】
付記１乃至３に記載のモジュール更新プログラムであって、
前記自動更新処理部は、業務システムの利用開始時に、適用すべきモジュール更新プログラムのバージョンを有する自己バージョン情報を前記サーバから取得し、前記取得した自己バージョン情報で指定されるバージョンと、前記モジュール格納部に格納されているモジュール更新プログラムのバージョンとを比較し、更新が必要であると判定したときは、サーバから前記更新が必要と判定されたモジュール更新プログラムのモジュールを取得し、
前記更新代行処理と同じ権限で動作し、前記自動更新処理部においてモジュール更新プログラムの更新が必要であると判定されたとき、前記自動更新処理部及び更新代行処理部の実行を停止させ、前記自動更新処理部及び更新代行処理部のモジュールを更新し、前記更新後のモジュールを用いて前記自動更新処理部及び更新代行処理部を再起動させる自己更新処理部として前記クライアント端末を機能させることを特徴とするモジュール更新プログラム。
（付記５）上記実施例１を含む実施形態に関し、更に以下の付記５を開示する。
【００６０】
付記４に記載のモジュール更新プログラムであって、
前記自己バージョン情報は、適用すべきモジュール更新プログラムのバージョンと更新処理の制御コードを有し、
前記自動更新処理部は、前記自己バージョン情報の制御コードに基づいて、適用すべきモジュール更新プログラムのバージョンが前記モジュール格納部に格納されているモジュール更新プログラムのバージョンより新しいときにのみ更新するか、適用すべきモジュール更新プログラムのバージョンが前記モジュール格納部に格納されているモジュール更新プログラムのバージョンと一致しないときに更新するかを、切り換えて動作するように前記クライアント端末を機能させることを特徴とするモジュール更新プログラム。
（付記６）上記実施例１を含む実施形態に関し、更に以下の付記６を開示する。
【００６１】
クライアント端末の利用時に入力した認証識別子に応じて管理者権限又は非管理者権限を付与されている利用者からの指示入力及び前記クライアント端末の管理者権限を有する動作システムの指示に基づいて起動し、業務システムを提供するサーバとネットワークを介して接続し、前記クライアント端末上での業務処理を定義したモジュールの登録及び更新をする前記クライアント端末であって、
前記クライアント端末の管理者権限でのみ更新可能な領域に、前記モジュールを一意に特定する識別子と前記モジュールのバージョンと業務処理の定義を有するモジュールを格納するモジュール格納部と、
前記クライアント端末の管理者権限でのみ更新可能な領域に、前記モジュール格納部に格納されているモジュールの識別子及び格納先の一覧を記憶するモジュール一覧記憶部と、
業務システムの利用開始時に、適用すべきモジュールの識別子及び前記モジュールのバージョンを有するバージョン設定ファイルを前記サーバから取得し、前記取得したバージョン設定ファイルで指定されるモジュールのバージョンと、前記バージョン設定ファイルで指定されるモジュールと同じ識別子を有する前記モジュール格納部に格納されているモジュールのバージョンとを比較し、更新が必要であると判定したときは、前記適用すべきモジュールを取得する自動更新処理部と、
クライアント端末の管理者権限を有して動作し、前記自動更新処理部の依頼に基づいて、前記取得したモジュールを前記モジュール格納部及び前記モジュール一覧記憶部に登録する更新代行処理部とを有することを特徴とするクライアント端末。
（付記７）上記実施例１を含む実施形態に関し、更に以下の付記７を開示する。
【００６２】
付記６に記載のクライアント端末であって、
前記バージョン設定ファイルは、適用すべきモジュールの識別子及び前記モジュールのバージョン及び更新処理の制御コードを有し、
前記自動更新処理部は、前記バージョン設定ファイルの制御コードに基づいて、適用すべきモジュールのバージョンが前記モジュール格納部に格納されているモジュールより新しいときにのみ更新するか、適用すべきモジュールのバージョンが前記モジュール格納部に格納されているモジュールと一致しないときに更新するかを、切り換えて動作することを特徴とするクライアント端末。
（付記８）上記実施例１を含む実施形態に関し、更に以下の付記８を開示する。
【００６３】
付記６又は７に記載のクライアント端末であって、
前記更新代行処理部は、前記サーバから取得したモジュールの識別子及びバージョンと、前記バージョン設定ファイルのモジュール識別子及びバージョンとの整合性を確認し、整合しないときには、前記サーバへ警告を通知するとともに、前記サーバから取得したモジュールの登録を行なわないことを特徴とするクライアント端末。
（付記９）上記実施例１を含む実施形態に関し、更に以下の付記９を開示する。
【００６４】
付記６乃至８に記載のクライアント端末であって、
前記自動更新処理部は、業務システムの利用開始時に、適用すべきモジュール更新プログラムのバージョンを有する自己バージョン情報を前記サーバから取得し、前記取得した自己バージョン情報で指定されるバージョンと、前記モジュール格納部に格納されているモジュール更新プログラムのバージョンとを比較し、更新が必要であると判定したときは、サーバから前記更新が必要と判定されたモジュール更新プログラムのモジュールを取得し、
前記更新代行処理と同じ権限で動作し、前記自動更新処理部においてモジュール更新プログラムの更新が必要であると判定されたとき、前記自動更新処理部及び更新代行処理部の実行を停止させ、前記自動更新処理部及び更新代行処理部のモジュールを更新し、前記更新後のモジュールを用いて前記自動更新処理部及び更新代行処理部を再起動させる自己更新処理部とを有することを特徴とするクライアント端末。
（付記１０）上記実施例１を含む実施形態に関し、更に以下の付記１０を開示する。
【００６５】
付記９に記載のクライアント端末であって、
前記自己バージョン情報は、適用すべきモジュール更新プログラムのバージョンと更新処理の制御コードを有し、
前記自動更新処理部は、前記自己バージョン情報の制御コードに基づいて、適用すべきモジュール更新プログラムのバージョンが前記モジュール格納部に格納されているモジュール更新プログラムのバージョンより新しいときにのみ更新するか、適用すべきモジュール更新プログラムのバージョンが前記モジュール格納部に格納されているモジュール更新プログラムのバージョンと一致しないときに更新するかを、切り換えて動作することを特徴とするクライアント端末。
【図面の簡単な説明】
【００６６】
【図１】本発明によるシステムの構成の一実施形態を示す図
【図２】モジュール適用処理の流れを示すフローチャート
【図３】モジュール一覧の内容例を示す図
【図４】モジュールファイルの内容例を示す図
【図５】バージョン設定ファイルの内容例を示す図
【図６】画面構成ファイルの内容例を示す図
【図７】自己バージョンチェック処理の流れを示すフローチャート
【図１】
2006011801.tif 000003
【図２】
2006011801.tif 000004
【図３】
2006011801.tif 000005
【図４】
2006011801.tif 000006
【図５】
2006011801.tif 000007
【図６】
2006011801.tif 000008
【図７】
2006011801.tif 000009