SaaS コラム SaaS Columns

vol.09 SaaS化への対応技術

ユーザのアプリケーションをあらかじめ準備したサーバ環境で稼働させ、ネットワークを介して提供するサービスをASPと呼んでいました。ソフトウェアをクラウド上で実行してサービス提供するものをクラウド・コンピューティングではSaaSと呼んでおり、ASPの延長上の考え方といわれています。しかし、ASPとSaaSでは基本的なソフトウェアのアーキテクチャが異なっており、既存のソフトウェアをWeb経由でサービス提供すれば期待されるSaaSになるかというと必ずしもそうではありません。

ASPでは、利用者ごとにサーバを立てていかざるを得ない面がありましたが、SaaSでは必要に応じてサーバを立てて行くのではなく、一つのサーバ環境に複数の利用者を相乗りさせる方式を考えています。この機能のことをマルチテナンシーといいます。SaaSでアプリケーションを提供しようとするプログラマは、アプリケーションをマルチテナントで設計し、アカウント情報を収集する仕組みを作る必要があります。そしてマルチテナントで運営でき、スケールアウトできる基盤の設計をする必要があります。SaaSでは、旧来のシステム運用と違いシステムの利用者がどんどん増えていく可能性があります。その時システムがスケーラブルである必要が出てきます。そのような場合を想定して、スケールアウトや仮想化の技術をあらかじめ使ったアプリケーション開発をしておかなければなりません。

提供するサービスを利用する多様なユーザに高い満足を与えるためには、ソフトウェアの機能の追加や変更を頻繁に行っていかなければならなくなります。しかし、システムの機能を頻繁に変更することでシステムが不安定になったり、新機能を必要としないユーザに影響を与えたりしては困ります。新機能を追加しても、それを使わない既存ユーザには何の影響も与えないような環境を提供する必要があります。そこで使われるのが機能の部品化です。部品化の技術的手法はたくさんあります。オブジェクトのライブラリやフレームワークとコンポーネントという考え方で部品化する技術がよく使われています。この方法では、「システムに追加して再起動する」というのが一般的な運用方法となるのでASP的運用となります。SaaSにとっては、システムを稼動させたままで機能を追加でき、追加機能は使いたい人だけが使い、使わない人には影響がない、使われない機能は切り離すことができる技術が必要です。SaaSでは、サービス化という手法が多く取り入れられています。いわゆるSOAです。SaaSでは、SOAPのようなAPIを追加しSOAにおいて、サービス同士を結合し、組み換えをしやすくするための基盤であるESB経由で呼び出し出来るようにしたり、Web2.0系のインターフェースで利用できるようにしたりすることで全体に影響を及ぼさずに機能追加を実現している例が多く見られます。システム全体を停止せずに機能を追加や削除できる仕組みをもつことはSaaSにおいて重要なことです。

サービスとしてのソフトウェアは、スケールアウトするシステム環境の上で、稼働し続けながら新しい機能を提供していけ、マルチテナンシーという機能を持っており、WebサービスやマッシュアップなどのWeb2.0技術を活用するものと特徴づけられそうです。

注:本記事は、上席研究員・原潔の個人的見解であり、日本ユニシスの方針を語るものではないことを予めご承知おきください。

次回予告:岩本のぞみによる新コラム、連載始めます。

Writer of this column

原 潔 Hara Kiyoshi

データベース管理技術、AI技術、(分散)オブジェクト技術、学習管理技術などの分野で開発・保守を長年担当。現在は先端技術部に属し、上席研究員として新しいデータベース技術の研究・開発に従事。「現場で役立つデータベースの基礎」(ソフトバンククリエイティブ社)など多くの著書、翻訳書あり。 情報システム学会の編集委員を務めるなど学会活動にも関与。青山学院大学、東京理科大学 非常勤講師


  • saasサービスメニューへ
  • saas利用イメージへ
  • 活用事例・インタビュー