ASPとSaaSの本質的な違いとは
皆さんは、ASPとSaaSの違いをご存じでしょうか? どちらも、特定のアプリケーション (あるいはその機能) をインターネット越しに利用するため、違いがわかりにくいと感じていませんか?
実際、これは無理の無いことで、ユーザーから見てみると両者の違いはほとんど無いと言って良いでしょう。違いは、提供しているベンダーさんがASPと言っているか、SaaSと言っているか、ということぐらいかもしれません。最近はクラウドが流行ですから、ASPというよりはSaaSと言った方がなんとなく最先端ぽいので、ベンダーさん側もそう呼んでいる場合も多いのでは無いかと推察します。
実は、提供しているサービスがASPかSaaSかというのは、利用者よりもサービスを提供しているベンダーにとって、違いが大きいのです。歴史的に見ると、ASPの運用上の問題点を改善したのがSaaSということができます。
NISTによるクラウドコンピューティングの定義にはクラウドサービスの特徴が5つ挙げられていますが、このうちSaaSに深く関連しているのが、3番目の「リソースの共有」の中の「マルチテナントモデル」というものです。マルチテナントモデルは、米Salesforceが最初に考え出したものと言われています。Salesforceがサービスを開始した1999年にはまだSaaSという言葉はありませんでした。Salesforceは、サービス開始当時はASPに分類されていたのです。
当時のASPというのは、それまでユーザー企業の中にサーバーを置いて使っていたパッケージソフトウェアをデータセンターに置いてあるベンダーのサーバーに移して、それをインターネット経由で利用するようにしたものが主流でした。データセンター内には、ユーザー企業数分の (物理または仮想) サーバーが置かれ、それぞれにディスクがあり、OSがインストールされ、ソフトウェアが乗っています。ソフトウェアそのものには変更が加えられていないのが大半でしょう。要するにアプリ+サーバーの運用をアウトソースしているのと変わりが無いと言うこともできます。
しかし、Salesforceは自社のサービスを開発するにあたり、コストと運用効率を考えました。ユーザー企業数分のサーバーを用意するのは大変です。各々にOSもディスクもメモリも必要ですし、バージョンアップも顧客の数だけ行わなければなりません。サーバーの利用効率を上げ、メンテナンスコストを引き下げるために、単一のソフトウェアで多数の顧客を同時にサポートできるよう設計を行ったのです。これがマルチテナントアーキテクチャです。OSもアプリケーションも一つで良く、バージョンアップもセキュリティパッチも1回で済みますし、メモリもディスクも節約できます。
マルチテナントの最大のメリットは高い効率とメンテナンスコストの低減です。2009年の記事では、5万5千社、150万ユーザーをわずか1,000台のサーバーで運用(しかも、バックアップを含め!)しているということでした。ASPモデルに比べて、桁違いに効率が良いことがわかります。
(2014.12.8 22:30追記)
マルチテナンシーの効率性について、IBMの研究がどこかにあったよな、と思いながら、記事を書いているときには見つけられなかったのですが、今見つかりましたので追記します。IBMがJavaOneで発表した資料をPublickeyが紹介している記事ですが、これによるとテナントの分離方式によってテナントの密度は優に1000倍もの開きがあるということです。