Ⅱ-3-4. Webシステムのアーキテクチャ

Webシステムの事例を対象として、システムアーキテクチャ検討におけるOSS活用のポイントについて解説する。システムアーキテクチャ導入時のシナリオにおいて検討すべき項目や、実際にOSSがどのように活用されてシステム基盤を構築するかについて述べる。

【学習の要点】

* WebシステムをOSSを利用して構築する際には機能性に加え、効率性、信頼性、情報入手の容易性、サポートの必要の有無等について特に検討が必要となる。

* 一般的なWebシステムでは、httpリクエスト・レスポンスを処理する機能、ビジネスロジックを処理する機能、データを保存する機能などが必要となる。

* OSSを組み合わせることで、Webシステムに必要な機能の多くを満たすことができる。

図Ⅱ-3-4. OSS導入時に検討すべき項目の例

【解説】

1) OSS導入に際し、検討すべき項目

WebシステムにおいてOSSを導入する場合に検討すべき項目の代表例を以下に挙げる。

* 機能性

OSSはプロプライエタリなソフトウェアと比較して機能が少ない場合がある。そのため、システムに必要な機能を明確にするとともに、OSSが必要な機能を提供しているかどうかを調査する必要がある。広く用いられているOSSに関しては、OSSのWebサイト、または競合する製品を扱う企業のWebサイトから機能比較に関する情報が提供されている場合も多い。

* 効率・信頼性

OSSは効率性、信頼性の面でプロプライエタリなソフトウェアに及ばない場合がある。そのため、想定されるユーザ数やリクエスト数に対し、十分な性能が発揮できるかなどについてあらかじめ調査、検証が必要である。また、障害発生時の復旧機能や、復旧手順の容易さなどについてもあらかじめ調査するべきである。

* 情報入手の容易さ

一般的にOSSはプロプライエタリなソフトウェアに比べてドキュメントが不足している場合が多く、特にビギナ向けのドキュメントや、トラブル時の対処に関するドキュメントが少ない場合が多い。そのため、管理者の必要とする情報が容易に入手可能かどうかについて、あらかじめ調査しておく必要がある。

* サポート

OSSの中には有償で企業によるサポートが提供されるものや、無償版とは別に機能の異なる有償版が提供されるものがあり、サポートを利用するかどうかについても検討する必要がある。

* メンテナンス

メンテナンスが継続して行われているかどうかも調査するべきポイントとなる。更新が行われていないOSSはセキュリティ関連の不具合も放置されている場合がある。

2) OSSによるWebシステム

一般的なWebシステムでは、httpリクエスト・レスポンスを処理する機能、業務ロジックを処理する機能、データを保存する機能などが必要となる。OSSを組み合わせることで、必要な機能の多くを満たすことができる。

* httpリクエスト・レスポンスを処理する機能

OSSのWebサーバとしてApache HTTP Serverが広く用いられている他、Tomcat、JBossなどWebサーバ機能を持つアプリケーションサーバも存在する。

* ビジネスロジックを処理する機能

CGIやPHPなどWebサーバから直接起動されるプログラムによってビジネスロジックを処理することができる。また、セキュリティや複数のリクエスト間のトランザクションなど、高度な機能を提供するアプリケーションサーバとしてJBossなどを利用することも可能である。

* データ保存機能

データベースサーバとして、MySQL、PostgreSQLなどを利用することができる。より簡易な手段として、データをファイルとして保存するSQLiteなどを利用することも可能である。

OSS Course Naviのコンテンツは IPA OSS モデルカリキュラムを基としています。