マイクロカーネル
必要最小限の中核部分と、追加の機能を担う拡張部分を分離するアーキテクチャパターン。追加の機能を差し替えたり増やしたりすることで、変更の要求に柔軟に対応できる。
イマシルちゃんの解説
ソフトウェアに機能を足すたびに本体まで作り直していたら、変更が大仕事になってしまうね。
マイクロカーネルは、共通の基本機能と用途に応じて足す機能を分ける設計パターンだよ。
本体には必要最小限の機能と、追加の部品との窓口になるインタフェースを用意するんだ。
例えば文章を書くソフトなら、別の形式で保存する機能をプラグインという追加部品として組み込めるよ。
決められた窓口を通して連携させることで、本体への変更を抑えながら必要な機能を増やせるんだ。
この解説はわかりやすかったですか?
より深い解説
定義
マイクロカーネルは、POSAで紹介されたアーキテクチャパターンの1つで、システムの中核部分と拡張部分を分離する。中核部分(マイクロカーネル)には、どの使い方でも必要な最小限の機能だけを置き、それ以外の機能は拡張部分として追加する。
構成要素
| 要素 | 役割 |
|---|---|
| マイクロカーネル | 最小限の基本機能と、拡張部分どうしをつなぐ仕組みを提供する |
| 内部サーバ | マイクロカーネルの機能を補う、追加の中核的な機能 |
| 外部サーバ | 利用者や用途に合わせた機能を提供する |
| アダプタ | クライアントと外部サーバの間をつなぐ |
利点と欠点
| 利点 | 欠点 |
|---|---|
| 中核を変えずに機能を追加、変更できる(拡張性) | 部品の間のやり取りが増えるので、性能が落ちやすい |
| 用途ごとに必要な機能だけを組み合わせられる | 中核部分の設計が難しい |
例
- オペレーティングシステム:カーネルにはプロセスの管理など最小限の機能だけを置き、ファイルシステムやデバイスドライバを、カーネルの外で動かす(マイクロカーネル方式のOS)
- プラグインの仕組み:統合開発環境やWebブラウザの拡張機能のように、本体にプラグインを追加して機能を増やす
POSAのほかのパターンとの見分け方
| パターン | キーワード |
|---|---|
| マイクロカーネル | 中核部分と拡張部分の分離、拡張性 |
| パイプとフィルタ | データストリーム、段階的な処理 |
| MVC | GUI、データ・表示・入力の3つに分ける |
| ブローカー | 分散環境、サービスの登録と検索、仲介 |
実際の試験ではここに出る!全1問
ネットワークスペシャリスト
- 午前Ⅱ