この連載は、IT業界で働き始めた新人さんたちのために、仕事で頻繁に耳にするけれど意味がわかりにくいIT業界の専門用語を「がってん!」してもらうシリーズです。
柴田克己(しばた・かつみ) ITをメインに取材・執筆するフリーランスジャーナリスト。1970年、長崎県生まれ。95年にIT専門紙「PC WEEK日本版」の編集記者として取材・執筆を開始。その後、インターネット誌やゲーム誌、ビジネス誌の編集に携わり、フリーになる直前には「ZDNet Japan」「CNET Japan」のデスクを務めた経験がある。
フレームワークは開発を効率化する「枠組み」
ソフト開発分野での「フレームワーク」とは、「効率的にソフトをつくるための枠組み」のことだ。いきなりそんなふうに説明してもイメージできないかもしれないので、ここでは味噌汁を例に解説してみたい。
味噌汁をつくるには、味噌を使う。味噌が手元になければ買いに行く。キッチンで調理する場合は、大豆から味噌をつくるよりも買ったほうが効率的。味噌さえあれば、後は具にあわせて味を調えていけばいい。
ソフト開発においても、味噌汁の味噌のように、共通する部分の役割を果たすのが「フレームワーク」である。必要とされる機能をゼロから開発するよりも、共通する部分はフレームワークを利用したほうが効率がいい。これでフレームワークがイメージできただろうか。さらに詳しく説明したいところだが、その前に、フレームワークとつながりの深い「プラットフォーム」について触れておきたい。
一般的に、ソフトを動かすには「実行環境」が必要になる。この実行環境は、OSに含まれているケースもあれば、OS上で動いている別のプログラムのケースもある。Windows用ソフトは、Windowsの実行環境上で動く。一方、Javaの場合は、Windowsだけでなく、UNIX、Linux、Mac OSなどに対応した実行環境があるので、Java向けにつくられたソフトはどのOSでも動かすことができる。このように、開発したソフトを動かすための基盤となる環境を「プラットフォーム」という。
フレームワークは、共通する機能を提供することにより、プラットフォーム上での開発作業の効率化を実現する。例えば、基本的な画面のボタンや入力項目などが、代表的な共通機能である。基本的なフレームワークは、プラットフォームとセットになって開発キット(SDK)の一部として用意されている。図では「標準フレームワーク」とした。加えて、業務システムのような特定分野に向けて、開発企業が社内で独自に作成したり、コミュニティの手でつくられたりするフレームワークも多い。図では「サードパーティのフレームワーク」とした。
注意すべきポイントは「運用管理」と「将来性」
サードパーティのフレームワークを使う際に注意すべきポイントは「運用管理」と「将来性」だ。
サードパーティのフレームワークを使ってシステムを構築した場合、その後の運用管理ではプラットフォームそのものと、フレームワークの両方に対してパッチ(修正プログラム)などを適用しなければならない。したがって、運用のしやすさを考慮すべきである。将来性については、とくにオープンソースソフトウェア(OSS)のフレームワークに注意したい。開発やサポートが終了するリスクがあるからだ。サポートが終了したフレームワークにぜい弱性がみつかっても、パッチが提供されないためにシステムが危険な状態で放置されることになってしまう。
実際、Java開発で多く使われたOSSフレームワークの「Struts1」では、2013年4月にサポートが終了したが、その後に深刻なぜい弱性が発見されて問題となった。ただし、その反省から最新のJavaでは、各種のフレームワークがもっていた機能を取り入れることで、純粋な「標準ベース」の技術だけで効率的に開発できる環境づくりを進めている。
Point
●フレームワークは「効率的にソフトをつくるための枠組み」のこと。基本的なものはプラットフォームとセットで用意されているが、特定分野向けにコミュニティなどでつくられるケースも多い
●フレームワークの採用にあたって注意すべきポイントは「運用管理」と「将来性」。とくにサードパーティのフレームワークを使う際は、開発やサポートの継続性に注意が必要。