Next Magic Inc.

- The Ultimate Internet -

 
トップページ サービス インストーラ開発

インストーラ開発

印刷

-インストーラ開発-

「ソフトウェアは完成しました。設定ファイルやデータをどう管理すればよいですか? 」

「 インターネットからソフトのアップグレードは、どうすれば出来ますか?」

「自作インストーラが他のソフトとコンフリクトしてしまいました!」

「アンインストーラが途中で異常終了します!」

「開発中のInstallShieldインストーラで複雑な処理が必要になりました!」

このようなことで悩んでいる方は、是非ともご連絡ください。 

インストーラ、アンインストーラ、アップデータ、マイグレータ、リムーバー、・・・インストールに関することなら何でも対応致します。

特に、Windowsのことならおまかせください。Windows9x時代からWindows 8まで、サーバOSを含めて柔軟に対応します!

 


 ●インストーラ・アンインストーラ等の開発

当社では、インストーラ・アンインストーラ等の開発を承ります。

  • 御社で開発中あるいは完成品のアプリケーション用の、インストーラ等の開発、カスタマイズ、デバッグ・評価。
  • インストーラ用のヘルパーアプリケーション開発。 

他にも数々のご要望に応えることが出来ます。以下をご覧下さい。

●対応OS

当社では、現在はつぎのOSに対応致します。

  • Windows (XP以降、サーバOSは2003以降)
  • MacOSX(10.3以降)
  • Linuxの主要ディストリビューション(kernel 2.6以降)

Windows 9xなど、過去のOSが必要な場合も鋭意対応致します。

●各OSの得意分野

Windowsを一番の得意分野としております。Windowsでは、InstallShiled (Flexera Software), Inno Setup (jrsoftware.org), NSIS (Nullsoft), などのメジャーなインストーラアプリケーションを用いたインストーラ開発から、スクラッチから構成するお客様専用のインストーラアプリケーション開発まで、ご要望にひとつひとつお応えいたします。その中でもInstallShieldでの開発、特にMSIの構造に踏み込んだ開発に強みを持ちます。

MacOSXでは、Package Maker (Apple) を使いインストーラを作成します(そのためOSは10.3以降、PPC/Intel 対応となります)。Installer MakerやVISEでの実績はございませんが、ご要望に応じて対応致します。Package Makerで出来る範囲は多くありませんが、例えばシリアル番号を入力させたりの拡張が出来ます。

Linuxでは、Redhat, Centos等のrpm(yum)、Debian, Ubuntu等のdeb(apt)のパッケージを作成します。

●インストーラの構成要素

インストーラはつぎのような様々なプログラムから構成されます。Windowsでは、これらのすべてを開発可能です。他のOSも鋭意対応しますので、お気軽にお声をかけて下さい。

  • ランチャー:多数のインストーラをまとめるためのプログラム。ランチャーが個々のインストーラを起動する。アプリケーションインストール前のため、OSが持っているフレームワークは一番乏しいと考えなければならない。従って、C#やVB.NETなどのフレームワークを要望頂く場合でも、ランチャーだけはC/C++で実装される。
  • 事前判定プログラム:インストール対象の環境を、インストーラ起動前に事前判定する必要がある場合に作成する。例えばOSバージョン、サービスプログラム、ドライバ、フレームワーク、等のバージョンや存在を判定し、旧バージョンが存在し共存できない場合は安全にアンインストールする。競合するアプリケーションやドライバがあれば、ユーザに警告を出す等。ここもC/C++で実装される。
  • インストーラ:プログラム本体、ライブラリ、ユーザデータ、設定ファイルなどを適切な場所に保管するプログラム。Windowsの場合には主に、レジストリ操作やシステムフォルダ操作などが必要。 ドライバをインストールする場合は、インストール中のOS再起動も含む。ネットワークインストーラの場合は、接続先の諸条件を事前判定する。他のアプリケーションと連携させる場合は、サイレントインストールが可能な実装にし、コマンドラインインタフェースを提供する。インストーラで一度フレームワーク(.net等)をインストールすれば、以降はC#などのフレームワークが必要な言語でも開発可能。
  • アンインストーラ:インストーラで生成したプログラムを安全に消去するプログラム。ユーザデータを完全に抹消するか、保存しておくか、一回インストールしたことの履歴を残す、などの機能をもつ。インストールやアンインストールを繰り返すことでファイルの重複可能性がある場合は、リファレンスカウントによるアンインストール可否の判定などが必要。
  • アップデータ:既にインストール済みのアプリケーションを、安全に次のバージョンに変更するプログラム。アップデート時にユーザデータを壊さないことが大切。必要に応じてアップデータ自身のアップデータも行う。
  • ライブアップデータ:インターネット上から安全にファイルの最新リストを取得し、ダウンロード、インストールまで実施する(自動アップデート)、あるいはユーザに通知する(手動アップデート)プログラム。アップデータ用のサーバ開発~アップデータ用のファイル作成まで幅広い技術が必要。例えばアップデートは基本的にトラフィックが集中するので、ユーザにストレスを与えないようなインタフェース実装、トラフィックの負荷分散、バーストデータ向けのサーバ設計も大切。
  • マイグレータ:OS環境やブラウザ環境が変わってユーザデータファイルやレジストリの格納位置や保存方法が変わったときに、安全にユーザデータや設定情報を移行するプログラム。アクセス権やマルチユーザ環境に注意。
  • リムーバー(別名クリーナー):アンインストーラで消去出来なかったファイル(ゴミ)を完全に抹消するプログラム。アンインストール出来ない場合、例えばロックファイルが残っていた場合や、上記のリファレンスカウントが壊れていた場合などにもリムーバーならば対応出来るようにすること。

●試験

インストーラは、複雑な条件下でのインストーラの試験が必要です。例えばWindowsの場合は複雑な組み合わせがあります。

  • 正常系処理:インストールパス、ディスク容量、ユーザ実行権限(ユーザアカウント制御(UAC), 簡易ユーザ切替(FUS)等)、既存データの有無および削除の可否、ライセンス判定、ロールバックポイント、...
  • 異常系処理:インストール中やアンインストール中の通信断や電源断、アプリケーションの異常終了、...
  • 対応OS:各OSのバージョン(XP, Vista, 7, 8, 2003server, 2008server,...)、ビット数(x86, x64)、フレームワーク(.Netなど)、サービスパック(SP1, SP2, ...)などの組み合わせ
  • 連携ソフトウェア(各種ランタイムなど)の組み合わせ

これらの組み合わせ数は膨大になります。さらに、インストール・アンインストールは基本的に時間がかかりますから、組み合わせ数×試験時間を検討すると、膨大な時間がかかってしまうことが分かります。これらの時間をいかに減らすかもインストーラ開発においてはとても大切なことです。

試験時間を減らすには、一般的に言われている試験シナリオの効率化、試験の並行化(よく言う人海戦術)もあります。当社では、主に仮想環境(以下VM)を使い対応します。

VMを使うメリットは、第一にSnapshotです。試験の主要ポイントでSnapshotを多数作成することで試験時間を短縮すると同時に、試験のミスを抑えることも出来ます。試験時間も細かく計測出来るので、試験シナリオも効率的に作ることが出来ます。

なお、ドライバ等の実機依存が予想出来る場合は、VMによる試験と実機による試験(主にIBM/Lenovo Thinkpadによる)をあわせます。

当社では、試験に最適な仮想環境であるVMWare workstationを使用します。ご要望に応じて、Hyper-Vもあわせて使います。

●お客様データの取り扱い

お客様アプリケーションやデータは基本的に不要です。

インストーラの開発や試験では、ファイル名、フォルダ構造は必須ですが、お客様のデータやアプリケーションそのものは不要です。データベースを使う際は、必要に応じてスキーマのみをお借りします。仕様をある程度定めて頂ければ、ダミーデータやダミーアプリケーションを当社で作成可能です。仕様を詰めていくごとに、ダミーも臨機応変に変更可能です。

しかし要件によっては、お客様のデータやアプリケーションを必要とするシーンが出てきます。インストール後に、お客様のアプリケーションの正常起動、基本的な初期設定、通信正常性などまで確認する必要がある場合などが該当します。

その際は、アプリケーションやデータを受け渡す必要が出てきます。その際は、基本的にお客様ご指定のメディアと方法を用います。