【DO!BOOK・ページリンク】
2010_migaro_techreport_001   62 / 84

BOOKをみる

10秒後にBOOKのページに移動します


60 B BExe とCExe のバージョン情報を 比較  @Aで取得したBExe、CExe の絶対 パスをもとに、それぞれのファイルの バージョン情報を取得する。CExe が常 に最新バージョンであるため、バージョ ン情報が異なる場合、BExe のバージョ ンを古いものとして扱う。【ステップ3】 Cバージョン情報が異なる場合、最新版 への置き換え  DeleteFile 関数で、クライアントPC のBExe の削除を行う。CopyFile 関数 で、サーバーの最新版CExe を、クライ アントPC にBExe としてコピーする。 【ステップ4】 D BExe を実行  最後に、CreateProcess 関数でBExe を起動する。ステップ@.Dの手順を踏 むことで、最新版への置き換え.Exe 実行が実現可能となる。ユーザーからは 特に意識されることもない。【ステップ5】  実際に、図5 のような構成でAExe を実行すると、BExe が「Ver.1.0.0.0」 から、最新版のCExe へ置き換えられ、 それにより「Ver.1.0.0.1」にアップデー トされたことを確認できる。【図6】【図7】 【図8】 4. 実行環境の 変化への対策  システムのアップデート(バージョン アップ)が行われるのと同様に、システ ムを運用する実行環境についても変化が 訪れる可能性はきわめて高い。  例えば、接続先サーバーの変更、帳票 レイアウトの変更、接続ユーザーの変更 などである。当然、ファイルサーバーの 変更(フォルダの変更)も例外ではない。  仮に、チェック/ 置き換えを行うExe (AExe)に、ファイルサーバーの接続 先情報を保持しているとしよう。ファイ ルサーバーの変更があった場合、AExe 自体の置き換えが必要となってしまう。 それでは運用にたえない。  そこで、ファイルサーバーの接続先情 報を、ini ファイルにより外部で管理す る手法を紹介したい。ここでは、前章の ステップAに登場した、ini ファイルを 例に説明を行う。  はじめに、ini ファイルについて説明 する。ini ファイル(設定ファイル)と は一般に、拡張子「.ini」を持つテキス トファイルを指し、ini ファイルの記述 は以下の構成をとる。【図9】 セクション:キーのグループ、[]で囲 んで記述する キー   :名前=値のセット  次に、ini ファイル情報を取得する GetIniFile 関数について紹介する。なお、 ソースの記述は、ini ファイルがAExe と 同じフォルダに保持されていることを前 提としている。【ソース1】【ソース2】  ソースの設定のGetIniFile 関数を実 行すると、図9 のAExe.ini に示したよ うに、セクション:Common、キー: CExePath として、返却値には以下が設 定される。 C:\SampleSource\CExe\CExe.exe  つまり、ini ファイルを利用すると、 ファイルサーバーの変更があった場合、 ini ファイルの設定値を変更するだけで よく、容易な対応が可能となる。 5. まとめ  モジュールのバージョンチェック/ 置 き換え手法というと一見難しい処理を想 像するが、参考ソースを見ていただくと 分かる通り、比較的少ないソース記述と ini ファイルの設定で実装することがで きる。  初期導入として、チェック用Exe と ini ファイルの配布は必須となるが、そ れ以降のアップデートに関してはサー バー上の最新版Exe を置き換えること で運用できる。  たしかに配布ツールを利用した場合 は、専用のツールとなるので汎用性や導 入してすぐ使えるなどの優れた点も多々 あるだろう。  しかし、オーダーメイドのシステムで あれば、システム運用にあわせてExe 置き換えの仕組みをカスタマイズしてい くなど、管理しやすくなる面がある。  また、本稿で説明したバージョンの取 得やini ファイルの利用、ファイルの置 き換えといった開発テクニックは、さま ざまな応用ができる。Exe の置き換え 以外にも、おおいに利用していただきた い。これらの技術が、Delphi/400 のシ ステム開発/ 運用の助けとなれば幸いで ある。 M