クラウドコンピューティングの一つの形態で、アプリケーションプラットフォームといえるのが「SaaS(Software as a Service)」です。SaaSは以前からある「ASP(Application Service Provider)」とよく似ています。どこが違うのでしょうか。ソフトウエアの共同利用という視点では同じように見えますが、SaaSというプラットフォームにはASPにはないシステム管理の視点が構成に組み込まれているのが特徴です。

 最大の特徴は「シングルインスタンス・マルチテナント」という特性にあります。マルチテナントとは複数のユーザーでサーバー,DB(データベース)などのリソースを共有することです(図1)。従来のASPがユーザーごとにサーバー環境を割り当てる形式(=シングルテナント)であったのに対し,SaaSでは,複数のユーザーでサーバーやDBをシェアします(図1)。

図1●
図1●SaaSとASPの違い
[画像のクリックで拡大表示]

 さらに,SaaSでは全ユーザーが同じバージョン,同じコードのソフトウエアを使用しているため(このことを「シングル・インスタンス」と呼ぶ),SaaSベンダーはソフトウエア保守の負荷を軽減できます。

 データベースにおいても、一つのRDBMSを共用するためのメタデータ管理という仕組みが組み込まれています。複数の企業がデータベースのスキーマを共用するために、共通のフィールドの処理形態や属性(見出しや注釈など)を企業ごとのプリファレンスに保存し、アプリケーションはそのメタデータを参照することで企業ごとのデータ処理に対応するように作り込まれています。こうすることで共通のプログラムコードによって複数の企業のビジネスプロセスをサポートすることができるようになります。

 一方で、データのセキュリティにおいては問題があります。通常(=マルチインスタンスの環境でない場合)、アプリケーションはデータベースに対して一つのユーザーIDとパスワードでログインして処理を行っていました。「コネクションプール」という方式です。マルチテナントのRDBMSでは、複数の企業がRDBMSを共用するため、同じユーザーIDで処理するわけにはいきません。

 SaaS環境においてデータのセキュリティを保持するには、一つのデータベースに対して、個々のユーザーごとに異なるユーザーIDが使えなければなりません。そうした環境に対応できるように、SaaSのアプリケーションを作成していることが重要になります(図2)。

図2●
図2●SaaSにおいて求められるユーザーID
[画像のクリックで拡大表示]