今回は、今では当たり前になったダウンロードの仕組みについて振り返ってみます。前回お話ししたアプリやゲームソフフトはアップルストアなどのサイトから簡単にダウンロード出来るようになりました。又、OSやミドルウェアのエンハンスやバージョンアップもインターネット経由で簡単に実行できます。
各種ソフトをコンピュータに覚えさせることをインストールということはご存じだと思います。ネットからダウンロードしたソフトは自動でインストールされる仕組みが確立しています。このような環境が整ったのは、この10年くらいのことです。それ以前のIT業界ではインストール作業もシステムエンジニア(SE)の重要な仕事でした。今でもサーバシステムのセットアップなどの初期導入作業の基本はこのインストール作業です。
インストールで行うことを分解すると以下になります。
1)導入するソフトウェアを動かす領域(メモリ、ディスク領域)を確保する。
2)ソフトウェアを読み込む。
3)ソフトウェアが動作する為に必要なミドルウェアなどと連携する為の設定を行う。
4)ソフトウェアが動作するシステム環境に合わせてパラメータなどの各種設定を行う。
5)動作テストを行う。
以前は、これらについて操作マニュアルがあり、それをSEが熟読して作業を進めていました。パソコンの普及により、このマニュアルをユーザに公開し、SEではなくユーザ自らが作業をするように変化しました。このユーザ作業を簡略化する為にインストール作業の一部又は全てを自動化するプログラムがインストーラです。余談ですが、今でもパソコン購入時に初期設定をユーザに代行して行うサービスがあるのは、上記の3項、4項の設定情報が難解であり、自動入力ができないことに起因していると愚考しています。
インストーラが開発出来た背景には、OSを利用する上での各種規約が標準化されたことがあります。特に、ユーザ公開領域の設定とファイル命名規約の標準化されたことで一気に進みました。元々、領域設定もファイル名も開発者が自由に設定することが可能でした。ある意味、プログラムを効率的に動かす為の領域確保やファイル名の規則化もSEのスキルの一つでした。しかしながら、開発者が自由に決められるということになれば、開発者の異なる複数のプログラムをユーザが利用しようとすると領域の衝突やファイル名の重複が起こります。そこで、動かす前にその整理をユーザが行うことが必要になります。一方、開発者が標準化された各種規約に従って開発することが義務付けられれば、ユーザが自由にプログラムを選択し動かすことが可能になります。APIもこの標準化の延長上にあるもので、開発者に他ソフトとの連携を想定して開発することを強く意識させています。
スマホでは、この標準化が更に進展し、プログラム作成規約が細かく規定されている為に様々なソフトの完全自動ダウンロード&自動インストールが実現出来ています。
以上のように、ITが機能する為にはプログラム開発が必須ですので、その為の標準化が継続して進んでいます。アルファベット三文字略語などの規約名が溢れていますが、標準化の方向性は、ハード・ソフト連携、ソフト間連携、ネットワーク接続など、インターフェース(接続部分)に関するものを中心に、手順、領域定義、命名規約などが定められています。
以上