JP5574905B2 - モジュール配布システム - Google Patents

モジュール配布システム Download PDF

Info

Publication number
JP5574905B2
JP5574905B2 JP2010228366A JP2010228366A JP5574905B2 JP 5574905 B2 JP5574905 B2 JP 5574905B2 JP 2010228366 A JP2010228366 A JP 2010228366A JP 2010228366 A JP2010228366 A JP 2010228366A JP 5574905 B2 JP5574905 B2 JP 5574905B2
Authority
JP
Japan
Prior art keywords
distribution
module
release
package
storage area
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
JP2010228366A
Other languages
English (en)
Other versions
JP2012083880A (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.)
Nomura Research Institute Ltd
Original Assignee
Nomura Research Institute 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 Nomura Research Institute Ltd filed Critical Nomura Research Institute Ltd
Priority to JP2010228366A priority Critical patent/JP5574905B2/ja
Publication of JP2012083880A publication Critical patent/JP2012083880A/ja
Application granted granted Critical
Publication of JP5574905B2 publication Critical patent/JP5574905B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、クライアント端末に対して各種モジュールを配布する技術に関し、特に、複数拠点の多数のクライアント端末に対して同日など一斉のタイミングでモジュールを配布するモジュール配布システムに適用して有効な技術に関するものである。
多数のクライアント端末を有するシステム環境における運用では、クライアント端末に対して各種モジュールを導入して反映させるメンテナンス作業を自動化するため、サーバから各クライアント端末に対して対象のモジュールを配布して展開・反映させる仕組みが必要となる。
このような仕組みを実現するソフトウェアとして、例えば、Microsoft(登録商標)社のSystem Management Server(SMS、非特許文献1)などがある。SMSでは、例えば、クライアント端末へのビジネスアプリケーションの展開とインストール、ソフトウェアインベントリの管理、セキュリティパッチの展開などの、クライアント端末をメンテナンスするための各種機能を有する。
ここで、例えば、モジュールの配布対象となるクライアント端末が数万台などの多数となるような大規模システムの場合、配布処理に伴うサーバやネットワークへの処理負荷の集中が過大となり、応答が遅延するなどの問題が生じ得る。
このような問題を回避するため、例えば、特開2005−321876号公報(特許文献1)には、複数のクライアントと、ダウンロード要求に応じてダウンロード対象プログラムをクライアントにネットワークを通じて配布するサーバとが設けられ、サーバは、多数のダウンロード要求がある場合に、クライアント毎に指定時刻を割り振る優先度管理プログラムと、プログラムをダウンロード要求先のクライアントへ転送するプログラム転送プログラムとを有し、クライアントへ割り振った指定時刻と待機リトライ命令を送信し、クライアントは、サーバと接続してダウンロードを要求し、読み込んだデータが前記待機リトライ命令のときにはサーバとの接続を一旦切断し、前記指定時刻まで待機してサーバと再接続することで、クライアントがサーバへ一斉にアクセスすることによるサーバやネットワークの負荷を低減できるコンピュータシステムが記載されている。
特開2005−321876号公報
"Microsoft System Management Server"、[online]、Microsoft、[平成22年8月16日検索]、インターネット<URL:http://www.microsoft.com/japan/smserver/default.mspx>
上述したように、クライアント端末が数万台などの多数となるような大規模システムの場合、特許文献1などに記載されたように、通常はサーバから各クライアント端末への配布タイミングをずらして負荷を分散させる手法をとるのが一般的である。
しかしながら、特に業務アプリケーションに係るモジュールの配布と展開の場合などでは、特定のタイミングで全台一斉に反映されて使用可能となるようにする必要がある場合も多い。この場合、特許文献1に記載されたような配布タイミングをずらす手法では、特定のタイミング(例えば、特定の日の業務開始時など)に全台一斉に反映させて使用可能とすることは困難である。
また、SMSを利用したモジュールの配布においても、クライアント端末での配布モジュールの取り込みに要する時間や、配布失敗時のリトライや戻しの制御などの観点も含めて、特定のタイミングで適切にモジュールが反映され使用可能となるよう制御することは困難である。
さらに、特に業務アプリケーションに係るモジュールの配布では、全台一斉に配布するのではなく、例えば、動作確認用の特定のクライアント端末や、特定のユーザに対して先行的に配布して動作内容等の確認を行い、問題がないことを確認した上で全台に配布するという慎重なリリース手順をとることが多い。この場合、先行配布の対象モジュールの管理や、先行配布したクライアント端末の管理、全台展開時の処理など、運用上特別な管理や処理が必要とされるが、これらの実施を可能な限り定型化してシステムにより支援することでミスを低減させる仕組みも望まれる。
そこで本発明の目的は、多数のクライアント端末に対して特定のタイミングからの使用開始が必要なモジュールの配布と展開を行うことができるモジュール配布システムを提供することにある。また、本発明の別の目的は、特定のクライアント端末やユーザに対するモジュールの先行配布から他の全クライアント端末への本番展開までをシームレスかつ容易に取り扱うことができるモジュール配布システムを提供することにある。また、本発明の別の目的は、配布モジュールのサイズが大きい場合でも配布に要する時間とネットワークへの負荷を最小限に抑制することができるモジュール配布システムを提供することにある。
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、以下のとおりである。
本発明の代表的な実施の形態によるモジュール配布システムは、複数の拠点にそれぞれ配置された多数のクライアント端末に対してセンターから各種のモジュールを配布するモジュール配布システムであって、以下の特徴を有するものである。
すなわち、モジュール配布システムは、前記センター側に配置され、指定された配布日および配布対象のモジュールに基づいて配布パッケージを作成して第1の一時記憶領域に保持する管理サーバと、前記センター側に配置され、前記管理サーバと接続し、日次の第1のタイミングで、前記管理サーバの前記第1の一時記憶領域から前記配布パッケージを取得して第2の一時記憶領域に保持する1つ以上の中継サーバとを有する。
さらに、前記各拠点に配置され、前記中継サーバの1つと接続し、1つ以上の前記クライアント端末が接続され、前記第1のタイミングより後の日次の第2のタイミングで、自身が接続する前記中継サーバの前記第2の一時記憶領域から前記配布パッケージを取得して第3の一時記憶領域に保持し、前記第2のタイミングより後の日次の第3のタイミングで、前記第3の一時記憶領域から配布日が翌日である前記配布パッケージを取得して第1のリリース記憶領域に保持する1つ以上の配布サーバを有し、前記クライアント端末は、日次の起動時に実行されるリリースプログラムにより、自身が接続する前記配布サーバの前記第1のリリース記憶領域から前記配布パッケージに含まれるモジュールを取得してローカル記憶領域に保持し、自身に反映させることを特徴とするものである。
また、本発明の他の実施の形態によるモジュール配布システムは、前記管理サーバが、特定のグループに属する前記クライアント端末もしくはユーザに対してのみ先行配布するモジュールの指定に基づいて先行配布対象の前記配布パッケージを作成し、前記配布サーバは、前記第3のタイミングで、前記第3の一時記憶領域から配布日が翌日である前記配布パッケージを取得して第1のリリース記憶領域に保持する際に、先行配布対象の前記配布パッケージについては、前記第1のリリース記憶領域における先行配布用の領域に、前記特定のグループが識別可能となるように保持する。
また、前記クライアント端末は、前記リリースプログラムにより、自身が接続する前記配布サーバの前記第1のリリース記憶領域から前記配布パッケージに含まれるモジュールを取得して前記ローカル記憶領域に保持し、自身に反映させた後、さらに、前記第1のリリース領域における先行配布用の領域に、自身が属するグループに対する先行配布対象の前記配布パッケージが存在する場合は、これを取得して前記前記ローカル記憶領域に上書き保持し、自身に反映させることを特徴とするものである。
また、本発明の他の実施の形態によるモジュール配布システムは、前記管理サーバが、指定された配布対象のモジュールの容量が所定の値よりも大きい場合はこれらを圧縮して前記配布パッケージを作成して前記第1の一時記憶領域に保持し、前記クライアント端末は、前記リリースプログラムにより、自身が接続する前記配布サーバの前記第1のリリース記憶領域から圧縮された前記配布パッケージを取得してこれを解凍し、解凍された前記配布パッケージに含まれるモジュールを取得してローカル記憶領域に保持し、自身に反映させることを特徴とするものである。
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
本発明の代表的な実施の形態によれば、多数のクライアント端末に対して特定のタイミングからの使用開始が必要なモジュールの配布と展開を行うことが可能となる。また、本発明の代表的な実施の形態によれば、特定のクライアント端末やユーザに対するモジュールの先行配布から全クライアント端末への本番展開までをシームレスかつ容易に取り扱うことが可能となる。また、本発明の代表的な実施の形態によれば、配布モジュールのサイズが大きい場合でも配布に要する時間とネットワークへの負荷を最小限に抑制することが可能となる。
本発明の実施の形態1であるモジュール配布システムの構成例について概要を示した図である。 本発明の実施の形態1における、配布サーバからクライアント端末へのモジュールの配布処理の例について概要を示した図である。 本発明の実施の形態1における、配布対象のモジュールの削除処理の例について概要を示した図である。 本発明の実施の形態1における、配布モジュールがクライアント端末に配布されるまでの処理の流れの例について概要を示した図である。 本発明の実施の形態1における、中継サーバおよび配布サーバの一時リリースPGMによってそれぞれ実行される一時リリース処理の例について示したフローチャートである。 本発明の実施の形態1における、管理サーバ、中継サーバおよび配布サーバのリリースPGMによってそれぞれ実行されるリリース処理の例について示したフローチャートである。 本発明の実施の形態1における、クライアント端末のリリースエージェントによって実行される配布処理の例について示したフローチャートである。 本発明の実施の形態2における、特定のクライアント端末へのモジュールの先行配布処理の例について概要を示した図である。 本発明の実施の形態2における、管理サーバ、中継サーバおよび配布サーバのリリースPGMによってそれぞれ実行されるリリース処理の例について示したフローチャートである。 本発明の実施の形態2における、クライアント端末のリリースエージェントによって実行される配布処理の例について示したフローチャートである。 本発明の実施の形態2における、先行配布処理の例について示したフローチャートである。 本発明の実施の形態3における、配布対象のモジュールを圧縮して配布する圧縮配布処理の例について概要を示した図である。 本発明の実施の形態3における、圧縮配布処理でのメンテナンス処理の例について概要を示した図である。 本発明の実施の形態3における、管理サーバ、中継サーバおよび配布サーバのリリースPGMによってそれぞれ実行されるリリース処理の例について示したフローチャートである。 本発明の実施の形態3における、クライアント端末のリリースエージェントによって実行される配布処理の例について示したフローチャートである。 本発明の実施の形態3における、圧縮パッケージ展開処理の例について示したフローチャートである。
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一の符号を付し、その繰り返しの説明は省略する。
<実施の形態1>
本発明の実施の形態1であるモジュール配布システムは、例えば数万台といった多数のクライアント端末に対して業務アプリケーションやセキュリティパッチ等を含む各種のモジュールを配布するシステムであり、特に、業務アプリケーションなど、クライアント端末に対して特定のタイミング(本実施の形態では特定の日(なお、以下では「日」とは原則としていわゆる営業日を指すものとする)を対象として説明するため、以下では「リリース日」と記載する場合がある)からの使用開始が必要なモジュールの配布と展開を行うことを可能とするシステムである。
なお、本実施の形態のモジュール配布システムは、セキュリティパッチなど、必ずしもリリース日に展開・適用されていなければ業務に支障をきたすというものではないモジュールについての配布と展開を行うことも可能であるが、このようなモジュールについては、例えば、上述したSMS等を利用した他の仕組みを併用して配布と展開を行うようにすることも可能である。
[システム構成]
図1は、本発明の実施の形態1であるモジュール配布システムの構成例について概要を示した図である。モジュール配布システム1は、多数のクライアント端末20から一斉にモジュールの取り込みが行われたときの負荷の集中を回避するため、分散された階層構造を有する。最上位には、モジュールの配布担当者2等によって配布モジュール3が登録され、これに基づいて配布パッケージ17を作成するサーバ機器である管理サーバ10aを有する。また、その下層には、LAN(Local Area Network)等のネットワークを介して管理サーバ10aと接続し、当該管理サーバ10aから配布パッケージ17を取り込んで保持するサーバ機器である中継サーバ10bを1つ以上有する。これらの管理サーバ10aおよび中継サーバ10bは、例えば、データセンター施設などのセンター側に配置される。
一方、各支店・支部や事業所、営業店など(以下ではこれらを単に「拠点」と総称する場合がある)では、WAN(Wide Area Network)等の広域ネットワーク4を介して中継サーバ10bの1つと接続し、当該中継サーバ10bから配布パッケージ17を取り込んで保持するサーバ機器である配布サーバ10cをそれぞれ1つ以上有する。各配布サーバ10cには、LAN等のネットワークを介して、当該配布サーバ10cが属する拠点内で業務に使用されるPC(Personal Computer)等のクライアント端末20が複数接続される。
各クライアント端末20は、接続する配布サーバ10cから配布パッケージ17を取り込んでインストール等の展開処理を行う。配布サーバ10cを拠点側に配置することで、各クライアント端末20から配布パッケージ17を取り込む際の広域ネットワーク4への負荷集中を回避する。この配布サーバ10cや、中継サーバ10bの数は、拠点の数やクライアント端末20の数、各機器やネットワークのスペック、運用要件等に応じて適宜定めることができる。図1の例では、中継サーバ10bおよび配布サーバ10cともにそれぞれ1層の構成となっているが、これらの階層を適宜増減した構成とすることも可能である。
管理サーバ10a、中継サーバ10bおよび配布サーバ10cは、それぞれ類似の構成を有しており、リリース日までの余裕を持って事前に登録された配布パッケージ17を、リリース(クライアント端末20への配布)前の所定のタイミング(例えばリリース日の前日)まで保持しておくHDD(Hard Disk Drive)等の記憶領域である一時領域11(11a〜11c)と、上記所定のタイミングで配布パッケージ17をクライアント端末20へ配布可能とするためにコピーされる記憶領域であるリリース領域12(12a〜12c)とをそれぞれ有する。
中継サーバ10bおよび配布サーバ10cは、それぞれ、上位階層である管理サーバ10aもしくは中継サーバ10bの一時領域11に保持されている配布パッケージ17を取り出して、自身の一時領域11にコピーするソフトウェアプログラムである一時リリースプログラム(PGM)14(14b、14c)を有する。これらのプログラムは、上位階層から順に所定の時刻(例えば、一時リリースPGM14bが16:00、一時リリースPGM14cが17:00)に日次のバッチ処理として起動される。これにより、配布担当者2が管理サーバ10aで登録した配布モジュール3は、配布パッケージ17として、管理サーバ10aから中継サーバ10b、配布サーバ10cに順次コピーされていく。
また、管理サーバ10a、中継サーバ10bおよび配布サーバ10cは、それぞれ、一時領域11から配布パッケージ17を取り出して、配布可能とするためにリリース領域12にコピーするソフトウェアプログラムであるリリースプログラム(PGM)13(13a〜13c)を有する。これらのプログラムは、例えば、業務終了後の夜間(例えば22:00等)に日次のバッチ処理として起動され、対象のサーバの一時領域11に保持されている配布パッケージ17のうちリリース日が翌日(翌営業日)であるものを抽出して、リリース領域12にコピーする処理を行う。リリース日がこれより以前の古い配布パッケージ17が存在する場合は、古い順にリリース領域12にコピーする。
管理サーバ10aは、配布担当者2が配布モジュール3の登録を行うためのソフトウェアプログラムであるパッケージングコマンド16を有する。パッケージングコマンド16は、配布担当者2によって指定された配布モジュール3およびリリース日を含む情報から配布パッケージ17を作成し、一時領域11aに格納する。配布パッケージ17の具体的な形態としては、例えば、所定のネーミングルールに基づいてパッケージ名とリリース日の情報を含む名称を付したフォルダやディレクトリ(以下では単に「ディレクトリ」と総称する)とし、その中に配布モジュール3を格納する形態をとることができる。ファイルリストや他の属性情報・管理情報等を保持する管理ファイルなどをさらに格納していてもよい。
本実施の形態では、パッケージングコマンド16を、配布モジュール3を登録(他システムからのコピーやアップロードなど)するためのコマンドを提供するプログラムとしているが、Webブラウザ等を利用して配布モジュール3を登録するようなユーザインタフェースを有するWebアプリケーションプログラムとして実装してもよい。
なお、上述したように、配布モジュール3は、リリース日にクライアント端末20に配布・展開されて使用可能となる必要がある業務アプリケーションに係るプログラム等(リリース日より前や後に配布・展開されると支障があるようなプログラム)が主に対象となるが、必ずしもリリース日に配布・展開されている必要がないOS(Operating System)等のセキュリティパッチや商用ソフトウェアプログラムなどであってもよい。
各クライアント端末20は、配布された配布パッケージ17を格納するHDD等の記憶領域であるローカル領域22と、上位階層である配布サーバ10cのリリース領域12cに保持されている配布パッケージ17を取り出してローカル領域22にコピーし、クライアント端末20に反映させるソフトウェアプログラムであるリリースエージェント23を有する。リリースエージェント23は、例えば、クライアント端末20の起動時に一回実行されるようにする。これにより、配布パッケージ17の内容は、クライアント端末20の起動時に配布サーバ10cから配布されてローカル領域22に格納され、その後モジュールに応じてインストール等の展開処理が行われることになる。
各クライアント端末20が配布サーバ10cから取り込んだ配布パッケージ17の処理履歴については、リリースエージェント23によって配布サーバ10c(さらに中継サーバ10b、管理サーバ10a)に送信され、ファイルやデータベース等の形で記録されるようにしてもよい。これを参照することにより、センター側で配布の実行状況を把握することも可能となる。
[クライアント端末への配布処理]
図2は、配布サーバ10cからクライアント端末20へのモジュールの配布処理の例について概要を示した図である。配布サーバ10cのリリース領域12c(管理サーバ10aのリリース領域12a、中継サーバ10bのリリース領域12bについても同様)には、クライアント端末20に配布されているべき全ての最新の配布パッケージ17(配布モジュール3)がマスタとして保持されている。一方、クライアント端末20においても配布サーバ10cから取り込んだモジュールの最新のものをローカル領域22に保持しており、クライアント端末20は、配布サーバ10cでの各モジュールとの間で差異があるモジュールのみを差分として取り込む手法をとる。
新たに配布(リリース)される配布パッケージ17は、管理サーバ10aから、一時リリースPGM14b、14cによって、中継サーバ10bを経由して配布サーバ10cの一時領域11cにコピーされ、さらにリリースPGM13によってリリース領域12cにコピーされる。このとき、図2の左側に示すように、配布サーバ10cのリリース領域12cには、既存のモジュールで変更されないものの他に、既存のモジュールが配布パッケージ17によって変更されたもの、および新規に追加された配布パッケージ17に係るモジュールが含まれ得ることになる。
クライアント端末20は、起動時にリリースエージェント23によってローカル領域22に保持している各モジュールと、配布サーバ10cのリリース領域12cに保持されている各モジュールとをファイルの属性を基準に比較して差異を判定する。ここで、比較の基準となるファイルの属性には、例えば、ファイル名やファイルサイズ、タイムスタンプなどが含まれ、これらの属性の少なくとも1つが相違すれば差異があると判定することができる。この場合、例えば、ファイル名によってモジュールの同一性と存在・不存在を判定し、同一である場合に、ファイルサイズやタイムスタンプ等によって変更の有無を判定する。
その後、リリースエージェント23によって、図2の右側に示すように、差異があったモジュール(変更されたモジュール、新規に追加されたモジュール)についてのみ、配布サーバ10cのリリース領域12cからクライアント端末20のローカル領域22に対して上書きコピーされる。
なお、配布サーバ10cのリリース領域12cには存在しないが、クライアント端末20のローカル領域22には存在するモジュールについては、配布対象から削除されたものとして、クライアント端末20への配布は行われない(クライアント端末20から配布サーバ10cへのコピーも行わない)。
図3は、配布対象のモジュールの削除処理の例について概要を示した図である。配布対象のモジュールを削除する(配布対象から除外する)場合、配布担当者2は、管理サーバ10aに対して削除対象の配布モジュール3(もしくは配布パッケージ17)のリスト情報を保持する削除リスト5を作成して登録する。なお、配布担当者2は所定の情報のみを入力するものとし、パッケージングコマンド16が入力された情報に基づいて削除リスト5を所定のフォーマットで作成するようにしてもよい。この削除リスト5は、通常の配布パッケージ17と同様に、一時リリースPGM14や、リリースPGM13によって、管理サーバ10a、中継サーバ10bおよび配布サーバ10cの一時領域11や、リリース領域12にそれぞれコピーされる。
このとき、各リリースPGM13はそれぞれ、リリース領域12に削除リスト5をコピーする際に、削除リスト5に含まれる削除対象の配布モジュール3を該当の配布パッケージ17から削除する(もしくは削除対象の配布パッケージ17を削除する)。これにより、削除対象の配布モジュール3(もしくは配布パッケージ17)がクライアント端末20に配布されないようにすることができる。なお、削除処理後に当該削除リスト5は削除する。
ここで、例えば、管理サーバ10aで登録した削除リスト5がリリースPGM13や一時リリースPGM14の日次処理をバイパスして配布サーバ10cのリリース領域12cまで即時にコピーされるような緊急時の仕組みを設けることで、モジュールに不具合が発覚した場合などの配布の停止をセンター側から早期かつ容易に行うことが可能となる。
なお、配布パッケージ17をリリース領域12から削除した場合に、対象のモジュールが既にクライアント端末20に配布されている場合は、ローカル領域22に残留するこれらのモジュールに対する処置は運用条件に依存して決定することができる。例えば、他に影響がなければ何もせずに存置させてもよいし、積極的に削除する必要がある場合は、例えば、削除リスト5などにその旨の指示を含めた上でクライアント端末20に配布される(通知する)ようにし、クライアント端末20において当該指示に従って対象モジュールの削除やアンインストール等の処理を行うようにしてもよい。
[登録、中継、配布処理]
図4は、配布モジュール3がクライアント端末20に配布されるまでの処理の流れの例について概要を示した図である。まず、配布担当者2によるパッケージングコマンド16の実行により、所定のタイミング(本実施の形態ではリリース日の2営業日前)までに、配布モジュール3が配布パッケージ17として管理サーバ10aの一時領域11aに事前に登録される。
一時領域11aに登録された配布パッケージ17は、日次のバッチ処理として所定の時間(例えば16:00)に起動される中継サーバ10bの一時リリースPGM14bにより、中継サーバ10bの一時領域11bに取り込まれる。さらにその後、一時領域11bに登録された配布パッケージ17は、日次のバッチ処理として所定の時間(例えば17:00)に起動される配布サーバ10cの一時リリースPGM14cにより、配布サーバ10cの一時領域11cに取り込まれる。
一時領域11に保持された配布パッケージ17は、日次のバッチ処理として業務時間外の所定の時間(例えば22:00)に起動されるリリースPGM13により、リリース日の前日に、管理サーバ10a、中継サーバ10bもしくは配布サーバ10cのリリース領域12にそれぞれ取り込まれる。すなわち、リリースPGM13は、一時領域11に保持されている配布パッケージ17のうち、リリース日が翌日であるものを抽出して、リリース領域12にコピーする。該当しない配布パッケージ17については、一時領域11にそのまま保持される。なお、配布パッケージ17のリリース日については、上述したように、例えば、配布パッケージ17に対応するディレクトリの名称等から判定することができる。
以上の処理により、リリース日が翌日である配布パッケージ17がリリース領域12にコピーされ、クライアント端末20への配布の準備が整う。なお、上記のように、管理サーバ10aおよび中継サーバ10bについても、配布サーバ10cと同様に、リリース領域12に配布パッケージ17をそれぞれコピーしておくのが望ましい。これにより、例えば、配布サーバ10cの障害時等に、クライアント端末20が接続するバックアップ機として利用することが可能となる。
リリース領域12cに保持された配布パッケージ17は、各拠点のクライアント端末20のリリースエージェント23により、リリース日の業務開始の際の起動時にローカル領域22に取り込まれる。これは、図2で示したように、リリース領域12cに保持された最新のモジュールとローカル領域22に保持されたモジュールとの差分をコピーすることによって行われる。当該差分は、上述したように、リリース日前日(もしくは当日)に配布対象の配布パッケージ17が配布サーバ10cのリリース領域12cにコピーされ、もしくはリリース領域12cから配布パッケージ17が削除されることによって生ずる。
[処理フロー]
以下では、上記の一連の処理においてモジュール配布システム1の各プログラムが実行する処理の内容について説明する。図5は、中継サーバ10bおよび配布サーバ10cの一時リリースPGM14によってそれぞれ実行される一時リリース処理の例について示したフローチャートである。
日次のバッチ処理として所定の時間に起動された一時リリースPGM14は、まず、自サーバ(中継サーバ10bもしくは配布サーバ10c)において、モジュールの配布元となる上層のサーバ(管理サーバ10aもしくは中継サーバ10b)の一時領域11を、ネットワークを介して仮想ドライブとしてアクセスできるようマウントする(S110)。なお、本実施の形態では、モジュールをコピーするために記憶領域をマウントする構成としているが、例えばファイル転送など、モジュールをコピー可能な手段であれば他の手段であってもよい(以下同様)。
その後、下層(配布サーバ10cもしくはクライアント端末20)や他の機器からのアクセスを不許可とするため、自サーバの一時領域11についての共有設定を削除する(S120)。その後、配布元サーバの一時領域11に保持されている配布パッケージ17を、自サーバの一時領域11に同期コピーする(S130)。同期コピーを行うためには、例えば、Windows(登録商標)でのrobocopyコマンドやUNIX(登録商標)でのrsyncなどの既存のソフトウェアを利用することで、配布パッケージ17に対応するディレクトリの内容を同期させることができる。
同期コピーの後、自サーバの一時領域11についての共有を再設定し(S140)、下層(配布サーバ10cもしくはクライアント端末20)や他の機器からのアクセスを可能とする。その後、配布元サーバの一時領域11をアンマウントして(S150)、一時リリース処理を終了する。
図6は、管理サーバ10a、中継サーバ10bおよび配布サーバ10cのリリースPGM13によってそれぞれ実行されるリリース処理の例について示したフローチャートである。日次のバッチ処理として所定の時間に起動されたリリースPGM13は、まず、自サーバの一時領域11に保持された配布パッケージ17のリストを作成する(S210)。次に、リリース履歴15や他の配布実行状況を記録したファイル等を参照して、配布実行済み以外の配布パッケージ17のうち、リリース日が翌日であるものを抽出して本日実行リストを作成する(S220)。
その後、自サーバの一時領域11についての共有設定を削除し(S230)、本日実行リストに記載されている配布パッケージ17を、一時領域11からリリース領域12にコピーする(S240)。コピーの後、自サーバの一時領域11についての共有を再設定し(S250)、リリース領域12にコピーした配布パッケージ17が配布対象のものであったか否かの整合性を確認し(S260)、リリース履歴15に処理内容を記録した上でリリース処理を終了する。リリース履歴15への記録に加えて、配布実行状況を記録したファイル等を設けてこれに配布済みの配布パッケージ17の情報を記録するようにしてもよい。
図7は、クライアント端末20のリリースエージェント23によって実行される配布処理の例について示したフローチャートである。まず、リリースエージェント23は、クライアント端末20上に保持された環境設定ファイルやレジストリ等を参照して、対象のクライアント端末20が所属する部署やドメイン、サイト等の情報や、接続先となる配布サーバ10cの接続情報などを取得する(S310)。その後、取得した情報に基づいて配布サーバ10cのリリース領域12cを、ネットワークを介してアクセスできるようマウントする(S320)。
その後、配布サーバ10cから設定ファイル等を読み込んで、配布サーバ10cに係る設定情報を取得し(S330)、取得した設定情報に従って配布サーバ10cのリリース領域12cを特定してそのディレクトリ構成と内容を検索する(S340)。さらに、転送に係るモジュールの容量を計算する(S350)。その後、リリース領域12cに保持された配布パッケージ17に係るモジュールと、クライアント端末20のローカル領域22に保持されたモジュールとを比較して、差異があるファイルをリリース領域12cからローカル領域22にコピーする(S360)。
その後、配布対象のモジュールに応じて、所定の場所にモジュールを配置したり、インストール用のプログラムを実行したりするなどして、配布対象のモジュールをクライアント端末20に反映させる(S370)。その後、上記一連の処理に係るログを記録したログファイルを配布サーバ10cに転送し(S380)、配布サーバ10cのリリース領域12cをアンマウントして(S390)、配布処理を終了する。
なお、リリースエージェント23による上記の処理は、処理内容の特性に応じて他の複数のプログラム(常駐プログラム、実行可能プログラム、バッチプログラム等)を呼び出してそれらに実行させるようにしてもよい。このとき、例えば、OSのセキュリティパッチの適用など、クライアント端末20の環境設定やインストールプログラムの実行を必要とするようなモジュールを反映させるプログラムについては、正常実行されたステータスを管理するなどにより、当日の複数回の起動・実行を防止する手段を講じる。
以上に示したように、本発明の実施の形態1であるモジュール配布システム1によれば、例えば数万台といった多数のクライアント端末20に対して、分散された階層構造により複数の配布サーバ10cを割り当てて、またこの配布サーバ10cを拠点側に配置することで、クライアント端末20へのモジュール配布時の処理負荷を分散することができる。また、リリース日を考慮して配布パッケージ17をリリース領域12にコピーするよう制御することで、業務アプリケーションなど、クライアント端末20に対して特定のタイミング(リリース日)からの使用開始が必要なモジュールの配布と展開を容易かつ確実に行うことが可能となる。
また、配布サーバ10cのリリース領域12cとクライアント端末20のローカル領域22のモジュールとの差分を配布する構成としているため、クライアント端末20側でモジュールの欠損等が発生しても、リリース領域12cに保持された配布パッケージ17を削除等しない限り、クライアント端末20の再起動を行うことによって再配布され、モジュールを均一化することができる。また、逆に管理サーバ10からの指示により削除リスト5を利用してリリース領域12cに保持された配布対象の配布パッケージ17を削除することで、配布の中止やモジュールの戻しをセンター側から容易に行うことが可能となる。
<実施の形態2>
本発明の実施の形態2であるモジュール配布システムは、上述した実施の形態1のモジュール配布システム1の機能に加えて、さらに、業務アプリケーション等について、一部の特定のクライアント端末20やユーザ(これらが属する部署等のグループ)に対するモジュールの先行配布を行い、動作確認や運用手順の確認等を行った後、他の全クライアント端末20へ本番展開する、という一連の流れをシームレスかつ容易に取り扱うことを可能とするシステムである。なお、システム構成や基本となるモジュール配布処理の流れは実施の形態1と同様であるため再度の記載は省略する。
[先行配布処理]
図8は、特定のクライアント端末20へのモジュールの先行配布処理の例について概要を示した図である。図8において、配布サーバ10cのリリース領域12cには、通常通り全クライアント端末20に配布するモジュールのマスタを保持する領域(図8の例では「全店」の領域(ディレクトリ))と、先行配布する特定のクライアント端末20のみに配布するモジュールを保持する領域(図8の例では「先行(X部署)」の領域(ディレクトリ))とを有する。先行配布するモジュールを保持する領域は、部署毎に複数有することができる。
「X部署」に属するクライアント端末20x、および「Y部署」に属するクライアント端末20yともに、まず、配布サーバ10cのリリース領域12cにおける、「全店」に配布するモジュールを保持する領域から、通常通り(すなわち、上述した実施の形態1と同様の手順により)配布対象のモジュールを差分コピーによりローカル領域22(22x、22y)にそれぞれ取り込む。
その後、リリース領域12cに、自身が属する部署に先行配布するモジュールを保持する領域があるか否かを確認する。「X部署」に属するクライアント端末20xについては、該当する領域(「先行(X部署)」)が存在することから、当該領域に保持されている先行配布対象のモジュールを全てローカル領域22xに上書きコピーする。一方、「Y部署」に属するクライアント端末20yについては、該当する領域が存在しないため、先行配布処理は行われない。これにより、特定の部署(「X部署」)に属する(もしくは、当該部署に属するユーザが使用する)クライアント端末20xについてのみ、先行配布対象のモジュールが強制的にコピーされるようにすることができる。
[処理フロー]
以下では、先行配布に係る一連の処理においてモジュール配布システム1の各プログラムが実行する処理の内容について説明する。なお、中継サーバ10bおよび配布サーバ10cの一時リリースPGM14によってそれぞれ実行される一時リリース処理については、実施の形態1の図5で示した一時リリース処理の例と同様であるため説明は省略する。
図9は、管理サーバ10a、中継サーバ10bおよび配布サーバ10cのリリースPGM13によってそれぞれ実行されるリリース処理の例について示したフローチャートである。ここでは、実施の形態1の図6に示したリリース処理の例に加えて、ステップS240において一時領域11からリリース領域12に配布パッケージ17をコピーする処理を行う前に、先行配布が終了したため不要となった先行配布対象のモジュールをリリース領域12から削除するメンテナンス処理(S235)が追加されている。
上述したように、先行配布対象のモジュールはクライアント端末20に対して強制的に上書きコピーされるため、該当するクライアント端末20は毎日起動時に当該コピー処理にかかる時間を要し、業務開始に影響が出る場合が生じる。また、モジュールのデグレードの危険も生じる。従って、動作確認等が完了して先行配布対象のモジュールが全店展開された後は上記コピー処理が行われないようにするために当該メンテナンス処理が必要となる。
この先行配布メンテナンス処理(S235)では、先行配布対象のモジュールを削除するために、実施の形態1の図3で示した削除リスト5を使用して配布モジュール3をリリース領域12から削除する仕組みを利用する。すなわち、先行配布が終了したことにより配布担当者2によって登録された先行配布対象のモジュール用の削除リスト5が配布パッケージ17内にあるか否かを確認し、ある場合には、削除リスト5に指示されているモジュールをリリース領域12(の先行配布対象のモジュールを保持する領域)から削除する。
また、次のステップS240における一時領域11からリリース領域12に配布パッケージ17をコピーする処理では、当該配布パッケージ17が先行配布対象のものである場合は、リリース領域12における通常の領域ではなく、先行配布対象のモジュールを保持する領域にコピーする。ここでは例えば、当該領域の中にさらに先行配布の対象となる部署毎に、部署を識別可能なネーミングルールによって領域(ディレクトリ)を作成して該当する配布パッケージ17をコピーする。
なお、配布パッケージ17が先行配布対象であるか否かは、例えば、配布パッケージ17に同梱(配布パッケージ17のディレクトリに格納)された管理ファイルなどを利用して判断することができる。例えば、配布担当者2が管理サーバ10aに対して配布モジュール3を指定する際に、リリース日に加えて先行配布対象の部署等の情報を指定することで、パッケージングコマンド16から管理ファイルにこれらの情報が出力されるようにすることができる。
図10は、クライアント端末20のリリースエージェント23によって実行される配布処理の例について示したフローチャートである。ここでは、実施の形態1の図7に示した配布処理の例に加えて、ステップS370において配布対象のモジュールをクライアント端末20に反映させる処理を行った後に、図8に示した、先行配布対象のモジュールを配布サーバ10cのリリース領域12cから取り込む先行配布処理(S375)が追加されている。
図11は、図10のステップS375の先行配布処理の例について示したフローチャートである。先行配布処理では、まず、図10のステップS310で取得した情報から、自身が所属する部署やドメイン、サイト等の情報や、接続先となる配布サーバ10cの接続情報などを確認する(S375−1)。確認できなかった場合は、図10のステップS310と同様の処理によって再取得する。
その後、確認した情報に基づいて配布サーバ10cのリリース領域12cを特定してそのディレクトリ構成を検索し、先行配布対象のモジュールを保持する領域(ディレクトリ)に、自身が属する部署に対応する領域(ディレクトリ)があるか否かを確認する(S375−2)。上述した図9のステップS240において、リリース領域12cにおける部署毎の先行配布対象のモジュールを保持する領域には、対象の部署(もしくはドメイン等)を識別可能なネーミングルールにより名称が付されるため、自身が属する部署に対応する領域の有無を判定することが可能である。
ステップS375−2で、該当する領域が存在しない、すなわち自身に対する先行配布対象のモジュールがない場合は先行配布処理を終了する。該当する領域が存在する場合は、当該領域に保持されている配布パッケージ17に含まれるモジュールをローカル領域22に上書きコピーする(S375−3)。その後、当該配布パッケージ17にクライアント端末20への反映用のプログラムが存在するか否かを確認し(S375−4)、存在する場合には、当該プログラムを実行して先行配布対象のモジュールをクライアント端末20に反映させて(S375−5)、処理を終了する。
上記の処理によりモジュールが先行配布された状態で、例えば翌日に当該クライアント端末20が再起動された場合は、図10のステップS360、S370において、クライアント端末20に前日先行配布されたモジュールが差分と判断される。従って、リリース領域12cに保持されたこれらに対応する通常配布時のモジュールがいったんクライアント端末20にコピーされることになるが、その後のステップS375の先行配布処理によって、先行配布対象のモジュールが再度上書きコピーされる。従って、例えば、翌日に当該クライアント端末20を起動したのが、前日とは異なり先行配布の対象部署ではない部署に属するユーザであった場合は、ステップS375での先行配布処理が行われないため、クライアント端末20のモジュールは自動的に通常配布時のものに戻った状態となる。
先行配布の後、モジュールの動作確認等が完了した場合は、上述したように、先行配布対象のモジュール用の削除リスト5を利用して、先行配布対象のモジュールをリリース領域12から削除することで先行配布を終了・停止するとともに、対象のモジュールを実施の形態1で示した通常の手順にて全店に対して配布する(本番リリースする)ことで、容易に全店展開が可能である。先行配布から全店展開に移行する対象のモジュールを、リリース領域12において先行配布対象のモジュールを保持する領域から、全店に配布するマスタのモジュールを保持する領域に直接移動させる手段を設けてもよい。
なお、本実施の形態では、特定の部署に先行配布して動作確認した後に全店展開という流れを対象としているが、例えば、特定のグループでの先行配布と動作確認を行った後、さらに上位の部署での先行配布と動作確認を行い、その後全店配布を行うというように先行配布の段階を増やしてより慎重なリリース手順とすることも可能である。
以上に示したように、本発明の実施の形態2であるモジュール配布システム1によれば、通常の全クライアント端末20へのモジュール配布とは別に、特定の部署やユーザに属するクライアント端末20への先行配布処理を行うことができる。また、先行配布の開始、先行配布の終了・停止と全クライアント端末20への配布・展開の一連の処理を、管理サーバ10からの指示により容易かつシームレスに行うことが可能となる。
<実施の形態3>
本発明の実施の形態3であるモジュール配布システムは、上述した実施の形態1もしくは2のモジュール配布システム1の機能に加えて、さらに、配布モジュールのサイズが大きい場合でも、モジュールを必要に応じて圧縮して配布し、クライアント端末20側で解凍して展開することで、配布に要する時間やネットワークの負荷を最小限に抑制することを可能とするシステムである。なお、システム構成や基本となるモジュール配布処理の流れは実施の形態1と同様であるため再度の記載は省略する。
[圧縮配布処理]
図12は、配布対象のモジュールを圧縮して配布する圧縮配布処理の例について概要を示した図である。本実施の形態では、配布担当者2が登録した配布モジュール3のサイズが所定の値(例えば10メガバイト等)よりも大きい場合に、管理サーバ10aのパッケージングコマンド16が、配布モジュール3を圧縮することによって圧縮パッケージ18を作成する。圧縮に際しては、例えばZIP形式やLZH形式等の一般的な形式に対応した入手可能なツールやライブラリ等を使用することが可能である。
この圧縮パッケージ18は、実施の形態1で示した通常のモジュール配布処理と同様の手順によって、リリース日にクライアント端末20に圧縮された状態のまま配布される。クライアント端末20では、リリースエージェント23により圧縮パッケージ18が解凍された後、通常のモジュール配布と同様の処理が行われる。
管理サーバ10a、中継サーバ10bおよび配布サーバ10cのリリース領域12に保持された圧縮パッケージ18は、リリース日後の所定のタイミング(例えばリリース日の翌日)にリリースPGM13によるメンテナンス処理によって解凍され、通常の配布パッケージ17としてリリース領域12に展開される。その際、解凍された圧縮パッケージ18に対応する、過去に配布された古い配布パッケージ17が存在する場合は削除する。
この古い配布パッケージ17の削除処理では、上述した実施の形態2における先行配布対象のモジュールを削除するメンテナンス処理と同様に、実施の形態1の図3で示した削除リスト5を使用して、古い配布モジュール3をリリース領域12から削除する仕組みを利用する。この削除リスト5は、パッケージングコマンド16が圧縮パッケージ18を作成する際に、圧縮パッケージ18に含まれる配布モジュール3を対象として同時に作成する。
図13は、圧縮配布処理におけるメンテナンス処理の例について概要を示した図である。リリース日当日においては、クライアント端末A(20a)は起動時に配布サーバから圧縮パッケージ18を取り込み、解凍して配布パッケージ17とした上で通常の配布処理に従って展開を行う。一方、クライアント端末B(20b)はリリース日に終始電源オフであり起動しなかったものとすると、圧縮パッケージ18(および配布パッケージ17)の取り込みは行われない。
リリース日後の最初の所定のタイミング(本実施の形態では翌日)では、上述したように、配布サーバ10cではメンテナンス処理として、リリースPGM13により圧縮パッケージ18を解凍し、配布パッケージ17として展開する。これは、圧縮パッケージ18による配布はクライアント端末20側での解凍の負荷が大きく、例えば、その後の通常時に新規クライアント端末20の増設等が行われた際などに圧縮パッケージ18によるモジュールの配布が行われると、クライアント端末20での処理時間を要してしまうおそれがあることから、圧縮パッケージ18による配布はアクセスが集中するリリース日近辺のみの対応とするのが望ましいためである。
配布サーバ10cのリリース領域12cでの圧縮パッケージ18の解凍の際、パッケージに同梱されているメンテナンス用の削除リスト5によって、対応する古い配布パッケージ17を削除する。また解凍済みの圧縮パッケージ18も削除する。なお、当該メンテナンス処理は、リリースPGM13が一時領域11からリリース領域12に翌日リリース対象の配布パッケージ17をコピーする処理を行う前に実行する。実行順序が逆になると、新たにリリース領域12cにコピーされた配布パッケージ17のモジュールがある場合、圧縮パッケージ18を解凍した際の古いモジュールによって上書きされてデグレードが生じる場合があるためである。
その後のクライアント端末20への配布処理では、クライアント端末A(20a)は差分がないため何も取り込まない。一方、クライアント端末B(20b)は、このタイミングでリリース日以降始めて起動したとすると、リリース領域12cで解凍されて非圧縮(大容量)となった配布パッケージ17が差分となるため、これを新たに取り込むことになる。
さらにその後の所定のタイミング(本実施の形態ではリリース日+14日)では、クライアント端末20におけるメンテナンス処理として、ローカル領域22に保持された圧縮パッケージ18を削除する(クライアント端末B(20b)では圧縮パッケージ18が存在しないため何も行わない)。クライアント端末20側の圧縮パッケージ18を配布サーバ10c側よりも先のタイミングで削除してしまうと、次回の起動時に再度配布サーバ10cから圧縮パッケージ18を取り込んでしまい、その後の解凍と展開の負荷が大きくなってしまう。従って、配布サーバ10c側での圧縮パッケージ18のメンテナンス処理(本実施の形態ではリリース日翌日)よりも後のタイミング(本実施の形態ではリリース日+14日)でクライアント端末20側でのメンテナンス処理を行うようにする。
[処理フロー]
以下では、圧縮配布に係る一連の処理においてモジュール配布システム1の各プログラムが実行する処理の内容について説明する。なお、中継サーバ10bおよび配布サーバ10cの一時リリースPGM14によってそれぞれ実行される一時リリース処理については、実施の形態1の図5で示した一時リリース処理の例と同様であるため説明は省略する。
図14は、管理サーバ10a、中継サーバ10bおよび配布サーバ10cのリリースPGM13によってそれぞれ実行されるリリース処理の例について示したフローチャートである。ここでは、実施の形態2の図9に示したリリース処理の例に加えて、最初に、リリース領域12に圧縮パッケージ18が存在するか否かを確認する処理(S203)が追加されている。圧縮パッケージ18が存在しなければ、そのままステップS210に移る。
ステップS203でリリース領域12に圧縮パッケージ18が存在する場合に、これらの圧縮パッケージ18について上述したメンテナンス処理を行う圧縮メンテナンス処理(S205)がさらに追加されている。ここでは、圧縮パッケージ18のリリース日から所定の期間(本実施の形態では1日)以上経過したものについて解凍処理を行い、生成された非圧縮の配布パッケージ17をリリース領域12にコピーする。
このとき、圧縮パッケージ18にメンテナンス用の削除リスト5が存在するかを確認し(新規追加モジュールの圧縮配布の場合は存在しない場合もある)、削除リスト5がある場合はこれに基づいて圧縮パッケージ18に対応する過去に配布した古い配布パッケージ17に含まれるモジュールを削除する。また、解凍済みの圧縮パッケージ18も削除する。また、その後のステップS240において一時領域11からリリース領域12に配布パッケージ17をコピーする処理では、通常のパッケージのコピー処理に加えてさらに、圧縮パッケージ18を一時領域11からリリース領域12へコピーする処理を行う。
図15は、クライアント端末20のリリースエージェント23によって実行される配布処理の例について示したフローチャートである。ここでは、実施の形態2の図10に示した配布処理の例に加えて、ステップS375において先行配布処理を行った後に、図13に示した、圧縮パッケージ18を解凍・展開し、不要なものを削除する圧縮パッケージ展開処理(S377)が追加されている。
図16は、図15のステップS377の圧縮パッケージ展開処理の例について示したフローチャートである。圧縮パッケージ展開処理では、まず、ローカル領域22に取り込んだパッケージに圧縮パッケージ18が存在するか確認する(S377−1)。圧縮パッケージ18が存在しなければ処理を終了する。圧縮パッケージ18が存在する場合は、その一覧を作成し(S377−2)、各圧縮パッケージ18について過去に解凍済みであるかを確認する(S377−3)。解凍済みか否かの確認には、例えば、解凍処理の結果を記録する解凍履歴ファイルを設けてこれを参照するなどの手段をとることができる。
解凍履歴ファイルに解凍実績がある、すなわち過去に解凍済みである場合は、ステップS377−7へ移る。解凍実績がない場合は、圧縮パッケージ18を解凍する(S377−4)。解凍に際しては、管理サーバ10aでの圧縮時と同様に、例えばZIP形式やLZH形式等、圧縮時の形式に対応した一般的に入手可能なツールやライブラリ等を使用することが可能である。その後、解凍されたモジュールについて、所定の場所に配置したり、インストール用のプログラムを実行したりするなどして、クライアント端末20に反映させる(S377−5)。また、ステップS377−4で解凍した圧縮パッケージ18の情報を、解凍履歴として解凍履歴ファイル等に追記する(S377−6)。
その後、ステップS377−7で、各圧縮パッケージ18がもはや不要であり削除対象に該当するものであるかを判定する。ここでは、図13に示したように、対象の圧縮パッケージ18についてリリース日から所定の期間以上経過したものについては、削除対象に該当するとして、対象の圧縮パッケージ18を削除し(S377−8)、処理を終了する。なお、ステップS377−7での所定の期間は、図14のステップS205の圧縮メンテナンス処理において圧縮パッケージ18を解凍する際の判定に使用する期間(本実施の形態では1日)よりも長い期間であり、クライアント端末20への反映を実施するのに十分な期間(本実施の形態では14日)とする。
以上に示したように、本発明の実施の形態3であるモジュール配布システム1によれば、配布モジュールのサイズが所定の値よりも大きい場合はこれを圧縮して圧縮パッケージ18としてクライアント端末20に配布する。これにより、配布モジュールのサイズが大きい場合でも配布に要する時間とネットワークへの負荷を最小限に抑制することが可能となる。また、リリース領域12に保持された圧縮パッケージ18を解凍して通常の配布パッケージ17に戻したり、クライアント端末20に配布済みの圧縮パッケージ18を削除したり等のメンテナンス処理を適切な順序とタイミングで行うことで、不要な処理や記憶領域の容量の浪費を回避することができる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
例えば、上述した実施の形態2における先行配布と、実施の形態3における圧縮配布とを組み合わせて、圧縮パッケージ18を特定の部署やユーザに属するクライアント端末20に先行配布するというような構成をとることも可能である。
本発明は、複数拠点の多数のクライアント端末に対して同日など一斉のタイミングでモジュールを配布するモジュール配布システムに利用可能である。
1…モジュール配布システム、2…配布担当者、3…配布モジュール、4…広域ネットワーク、5…削除リスト、
10a…管理サーバ、10b…中継サーバ、10c…配布サーバ、
11a〜c…一時領域、12a〜c…リリース領域、13a〜c…リリースプログラム(PGM)、14b、c…一時リリースプログラム(PGM)、15a〜c…リリース履歴、16…パッケージングコマンド、17…配布パッケージ、18…圧縮パッケージ、
20、20a、b、x、y…クライアント端末、22、22x、y…ローカル領域、23…リリースエージェント。

Claims (10)

  1. 複数の拠点にそれぞれ配置された多数のクライアント端末に対してセンターから各種のモジュールを配布するモジュール配布システムであって、
    前記センター側に配置され、指定された配布日および配布対象のモジュールに基づいて配布パッケージを作成して第1の一時記憶領域に保持する管理サーバと、
    前記センター側に配置され、前記管理サーバと接続し、日次の第1のタイミングで、前記管理サーバの前記第1の一時記憶領域から前記配布パッケージを取得して第2の一時記憶領域に保持する1つ以上の中継サーバと、
    前記各拠点に配置され、前記中継サーバの1つと接続し、1つ以上の前記クライアント端末が接続され、前記第1のタイミングより後の日次の第2のタイミングで、自身が接続する前記中継サーバの前記第2の一時記憶領域から前記配布パッケージを取得して第3の一時記憶領域に保持し、前記第2のタイミングより後の日次の第3のタイミングで、前記第3の一時記憶領域から配布日が翌日である前記配布パッケージを取得して第1のリリース記憶領域に保持する1つ以上の配布サーバとを有し、
    前記クライアント端末は、日次の起動時に実行されるリリースプログラムにより、自身が接続する前記配布サーバの前記第1のリリース記憶領域から前記配布パッケージに含まれるモジュールを取得してローカル記憶領域に保持し、自身に反映させることを特徴とするモジュール配布システム。
  2. 請求項1に記載のモジュール配布システムにおいて、
    前記クライアント端末の前記リリースプログラムは、自身が接続する前記配布サーバの前記第1のリリース記憶領域に保持された前記配布パッケージに含まれるモジュールについて、前記ローカル記憶領域に保持されたモジュールとファイル名、ファイルサイズ、およびタイムスタンプの少なくとも1つに差異があるモジュールのみを取得することを特徴とするモジュール配布システム。
  3. 請求項1または2に記載のモジュール配布システムにおいて、
    配布対象のモジュールに加えて、もしくはこれに替えて、削除対象のモジュールの情報を含む削除リストが指定された場合、
    前記配布サーバは、前記第3のタイミングで、前記削除リストに含まれたモジュールを前記第1のリリース記憶領域から削除することを特徴とするモジュール配布システム。
  4. 請求項1〜3のいずれか1項に記載のモジュール配布システムにおいて、
    前記管理サーバは、前記第3のタイミングで、前記第1の一時記憶領域から配布日が翌日である前記配布パッケージを取得して第2のリリース記憶領域に保持し、
    前記中継サーバは、前記第3のタイミングで、前記第2の一時記憶領域から配布日が翌日である前記配布パッケージを取得して第3のリリース記憶領域に保持することを特徴とするモジュール配布システム。
  5. 請求項1〜4のいずれか1項に記載のモジュール配布システムにおいて、
    前記管理サーバは、特定のグループに属する前記クライアント端末もしくはユーザに対してのみ先行配布するモジュールの指定に基づいて先行配布対象の前記配布パッケージを作成し、
    前記配布サーバは、前記第3のタイミングで、前記第3の一時記憶領域から配布日が翌日である前記配布パッケージを取得して第1のリリース記憶領域に保持する際に、先行配布対象の前記配布パッケージについては、前記第1のリリース記憶領域における先行配布用の領域に、前記特定のグループが識別可能となるように保持し、
    前記クライアント端末は、前記リリースプログラムにより、自身が接続する前記配布サーバの前記第1のリリース記憶領域から前記配布パッケージに含まれるモジュールを取得して前記ローカル記憶領域に保持し、自身に反映させた後、さらに、前記第1のリリース領域における先行配布用の領域に、自身が属するグループに対する先行配布対象の前記配布パッケージが存在する場合は、これを取得して前記前記ローカル記憶領域に上書き保持し、自身に反映させることを特徴とするモジュール配布システム。
  6. 請求項5に記載のモジュール配布システムにおいて、
    配布対象のモジュールに加えて、もしくはこれに替えて、先行配布が終了したため削除対象とする先行配布対象のモジュールの情報を含む先行配布用の削除リストが指定された場合、
    前記配布サーバは、前記第3のタイミングで、前記先行配布用の削除リストに含まれたモジュールを前記第1のリリース記憶領域における先行配布用の領域から削除することを特徴とするモジュール配布システム。
  7. 請求項1〜6のいずれか1項に記載のモジュール配布システムにおいて、
    前記管理サーバは、指定された配布対象のモジュールの容量が所定の値よりも大きい場合はこれらを圧縮して前記配布パッケージを作成して前記第1の一時記憶領域に保持し、
    前記クライアント端末は、前記リリースプログラムにより、自身が接続する前記配布サーバの前記第1のリリース記憶領域から圧縮された前記配布パッケージを取得してこれを解凍し、解凍された前記配布パッケージに含まれるモジュールを取得してローカル記憶領域に保持し、自身に反映させることを特徴とするモジュール配布システム。
  8. 請求項7に記載のモジュール配布システムにおいて、
    前記配布サーバは、前記第3のタイミングで、前記第1のリリース記憶領域に存在する圧縮された前記配布パッケージのうち、配布日から第1の期間以上経過したものについては、これを解凍して前記第1のリリース記憶領域に保持することを特徴とするモジュール配布システム。
  9. 請求項8に記載のモジュール配布システムにおいて、
    前記管理サーバは、圧縮された前記配布パッケージを作成する際に、前記配布パッケージに対応するため削除対象とする過去のモジュールの情報を含む圧縮配布用の削除リストを作成し、
    前記配布サーバは、前記第3のタイミングで、圧縮された前記配布パッケージを解凍する際に、前記圧縮配布用の削除リストに含まれたモジュールを前記第1のリリース記憶領域から削除することを特徴とするモジュール配布システム。
  10. 請求項7〜9のいずれか1項に記載のモジュール配布システムにおいて、
    前記クライアント端末は、前記リリースプログラムにより、前記ローカル記憶領域に保持された圧縮された前記配布パッケージのうち、配布日から前記第1の期間よりも長期の第2の期間以上経過したものについては、これを削除することを特徴とするモジュール配布システム。
JP2010228366A 2010-10-08 2010-10-08 モジュール配布システム Expired - Fee Related JP5574905B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010228366A JP5574905B2 (ja) 2010-10-08 2010-10-08 モジュール配布システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010228366A JP5574905B2 (ja) 2010-10-08 2010-10-08 モジュール配布システム

Publications (2)

Publication Number Publication Date
JP2012083880A JP2012083880A (ja) 2012-04-26
JP5574905B2 true JP5574905B2 (ja) 2014-08-20

Family

ID=46242694

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010228366A Expired - Fee Related JP5574905B2 (ja) 2010-10-08 2010-10-08 モジュール配布システム

Country Status (1)

Country Link
JP (1) JP5574905B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9729542B2 (en) 2014-09-24 2017-08-08 Oracle International Corporation Compartmentalizing application distribution for disparate electronic devices
JP6069289B2 (ja) * 2014-11-26 2017-02-01 レノボ・シンガポール・プライベート・リミテッド 管理者パスワードの認証方法、コンピュータおよびコンピュータ・プログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3110128B2 (ja) * 1992-02-28 2000-11-20 株式会社東芝 プログラム配信方法
JPH10187455A (ja) * 1996-12-24 1998-07-21 Toshiba Corp ソフトウェア配布方法およびその方法が適用されるコンピュータネットワークシステム
JP3879569B2 (ja) * 2002-04-10 2007-02-14 株式会社日立製作所 ソフトウエア配布方法およびシステム
US7853609B2 (en) * 2004-03-12 2010-12-14 Microsoft Corporation Update distribution system architecture and method for distributing software

Also Published As

Publication number Publication date
JP2012083880A (ja) 2012-04-26

Similar Documents

Publication Publication Date Title
CN107515776B (zh) 业务不间断升级方法、待升级节点和可读存储介质
US10237118B2 (en) Efficient application build/deployment for distributed container cloud platform
US11689638B2 (en) Embedded database as a microservice for distributed container cloud platform
US20200210075A1 (en) Data management system
US11720456B2 (en) Automatic configuration of a recovery service
US9436556B2 (en) Customizable storage system for virtual databases
US20230081841A1 (en) In-place cloud instance restore
US8825597B1 (en) Network folder synchronization
US8423591B2 (en) Method and system for modularizing windows imaging format
US8499191B2 (en) Failure recovery method for information processing service and virtual machine image generation apparatus
US8850261B2 (en) Replaying jobs at a secondary location of a service
CN110088733A (zh) 虚拟机迁移的基于存储层的编排
US20190163763A1 (en) Centralized Multi-Cloud Workload Protection with Platform Agnostic Centralized File Browse and File Retrieval Time Machine
JP2003528392A (ja) ソフトウェアアプリケーションにおいてなされた進行中の変更を復旧するための方法及び装置
US20080195827A1 (en) Storage control device for storage virtualization system
US20160006829A1 (en) Data management system and data management method
US11620191B2 (en) Fileset passthrough using data management and storage node
JP3901060B2 (ja) アプリケーションの更新処理方法、更新処理システム及び更新処理プログラム
JP2008165377A (ja) 端末管理システム、方法、及び、プログラム
CN114328005B (zh) 容器数据增量备份的方法及系统
US20170351700A1 (en) Computer system, file storage controller, and data sharing method
JP5574905B2 (ja) モジュール配布システム
JP2011076370A (ja) デプロイシステム
CN111382132A (zh) 医学影像数据云存储系统
JP2007072805A (ja) 電子文書管理システム、電子文書クライアント及び電子文書管理サーバ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131002

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140509

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140701

R150 Certificate of patent or registration of utility model

Ref document number: 5574905

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees