オルタナティブ・ブログ > 一般システムエンジニアの刻苦勉励 >

身の周りのおもしろおかしい事を探す日々。ITを中心に。

ミドルウェアとは何かを初心者にも説明するには?

»

ITの世界に足を踏み入れて間もない人にとってミドルウェアとは何か?というのはわかりにくいものです。

こういうのは多少の正確さや例外的な存在を脇において例え話をすると良さそうです。

ソフトウェア全般を人間だとして、人間に働いてもらうところを想像してみましょう。普通のオフィスでみんなと同じように働き始める時、新入社員でも非常に基本的なところはあまり何も教えてもらわなくてもよいと思います。

例えば自分の席を探して座ったり、電話をしたり、ということです。例えば名刺交換などは新入社員マナー研修でないとわからないかもしれません。そのように考えると入社して2から3ヶ月目くらいの状態が社会人として基本的なところがわかった状態と言えそうです。

そのように基本的な動作ができるように作られたソフトウェアの集合がOS(Operating System)すなわち基本ソフトだと考えることにしましょう。もっとも、昔ならばパソコンは特殊技能でしたが最近では殆どの人がごく普通に使うことができます。一方で複写伝票に間違えずに数字を書いていく作業ですとか、固定電話タイプのビジネスホンで内線を回すといった仕事は会社によってはまったく発生しません。昔は様々なOSにあった機能が今ではなかったり、逆に昔はOSの機能ではなく個別にパッケージソフトを入れて対応していた機能が今ではOSに入ることが常識だったりということもあります。

さてごく普通の社会人の普通のビジネスマナーやビジネススキルがOSに相当すると考えると、ミドルウェアというのは何に相当するでしょうか。これは私は「資格」や「研修」で学習して鍛えられた専門スキルに相当するものであるように思います。

  1. OSよりは特定された仕事を期待されます。(ビジネスマナーやビジネススキルのような汎用性はありません)
  2. その中でも様々な仕事の最大公約数の知識や技術が資格になります。(あまりに特化した仕事には資格がありません)
  3. それだけでは動作しません。(資格だけ持っていてもお金になりません)

このように見てみると似てる感じがしないでしょうか?そもそも資格や研修は似たような事業領域を持つ各社が個別バラバラに人材育成を行うのが非効率だという発想が一部にあるはずです。ミドルウェアも同様に、様々な領域で作られるアプリケーションの共通部分を引き取って開発されています。その際、あまりに特化された領域は資格化しても一部の人にしか役立たなかったり、陳腐化するスピードが早いために最大公約数でありかつ不変な領域がミドルウェアに取り込まれます。

例えとしてカバーできない部分としてはミドルウェアは性能や安定性を実現するため、一般のアプリケーション開発者では手出しが難しいほどOSと緊密できるよう開発されることが多い点は特徴的です。仮にアプリケーションをそのように作ってしまうとOSを変える場合に移行性が大きく損なわれます。しかしミドルウェアの開発者が様々なOS上で動くようにミドルウェアを開発していてくれれば、アプリケーションとミドルウェアの関係性は変わりませんので移行性は確保されます。ミドルウェアはそのような役割も期待されますが、それはまるで「資格があると転職が有利」というところと似ています。

さて最後にアプリケーションがありますが、それは「業務スキル」に相当するものであるように思います。資格を取らずに現場で業務スキルを磨く人が少なくないようにミドルウェアを使わずに作られるアプリケーションはたくさんあります。また、資格だけではお金にならないようにミドルウェアだけでは業務システムを作ることはできませんが、資格と業務スキルをうまく組み合わせると短い期間で結果を出すことができます。アプリケーションの作り方にはパッケージソフトウェアを使う場合がありますが、それは社内資格であったり非常に特化したマイナー資格のようなものに似ていると言えるかもしれません。

余計に混乱させてしまったかもしれませんが、こんな例え話でいかがでしたでしょうか?

Comment(0)