筆者は、要するにクラウドとはXaaS (X As A Service)のことだと考えています(厳密にはきっと色々違いがあるのでしょうが。。)。なので、クラウドビジネスを俯瞰するために、現在注目されているXaaSを見ていきます(各XaaSの定義は信用できる文献を引いているわけではなく、筆者が独断で決めている部分もあるので、ご注意を。特に、具体例で挙げているサービスには筆者が使ったことのないものも多く、ディスクリプションに間違いが含まれている可能性があります。ご指摘などあれば、コメントなどお願いします!)。リストは、サブカテゴリも含めて、全てできるだけソフトウェア開発技術でいう「下級」から「高級」*の順に並べています。また、サブカテゴリは全て筆者独自の定義なのでご注意を。
*:「下級・高級」の違いについてはこちら(英語)を参照。要するに、よりHW・インフラストラクチャに近い方を下級、より抽象化されてビジネスロジックに近いものを高級としています。
- IaaS (Infrastructure As A Service)
- 基本的には、サーバ、ネットワーク機器、ストレージ機器の代替。土地・建物・ハードウェアなどを持たなくてよくなり、メンテナンス、システムアドミン業務も低減できる。ただし、低減できるとはいっても、実はかなりのメンテナンスタスクが必要になると言われており、引き続きインフラエンジニアリソースが必要である。
- 非サーバIaaS:ストレージ、ロードバランサなどサーバ以外のインフラストラクチャを借りれるサービス。アマゾンのElastic Load Balancing (同社EC2専用)、Elastic Block Storage (EBS)などが代表。ちなみにAmazon EBSでは最近、大手ニュースアグリゲーションサイトRedditを含む複数大手サイトをダウンさせる障害が、数ヶ月間に複数回発生。少し悪評が立ってしまっている。
- サーバIaaS:仮想サーバを時間課金などで「間貸し」してくれるサービス。OSを自分で入れるものもあるが、大体はメニューからOSを選んでインストール済みの仮想サーバをもらう。セキュリティパッチの適用や、LAMP環境などのプリインストールといった追加的なサービスを実施している事業者も多いよう。リソースは完全にオンデマンドではなく、あらかじめ指定したキャパシティ(ストレージ容量、RAM量、CPUリソースなど)を買っておいて、完全に使いきらなかった分は「残念でした」という料金形態が多い(完全にオンデマンドのサービスとしては、1トランザクションいくらという料金体系のDBサービスなどがある)。料金体系は月単位買いきり、起動時間分課金など様々なものがあるよう。代表例はAmazon EC2、Nifty Cloud、IBMクラウド(IaaS)など。
- PaaS (Platform As A Service)
- OSと、DB、アプリケーションサーバなどのミドルウェアを借りて、その基盤に自作アプリを展開する方式。OS、アプリケーションサーバ、DBなど用意されるサービスについてはチューニング・セキュリティパッチの適用などを気にしなくてよくなる。そのため、インフラエンジニアリソースのいない組織でも開発が可能になってくる。スコープ(どこまでが利用者が行うことで、どこまでがプロバイダが行うことか)はXaaSの中でもっとも多彩と思われる。
- オープン型:アプリケーションサーバ、ランタイム環境などが提供され、制限は存在するものの、比較的少なく、割と好きなようにアプリケーションを組める。代表例はvmForce, Heroku, Azureなど。具体的には、バックグラウンドプロセス、スレッド、ソケットなどが利用できたり、任意のミドルウェアを展開して使えたり、2つ以上の開発プラットフォーム(例えばvmForceだとJython, JRuby, Groovy, Scala, Javaなどが使用できるはず)が使えたりする種類のもの。こういったサービスはDBも従来型のリレーショナルDBを用いることができるものが多い。
- セミオープン型:比較的制限が多いが、その代わりメンテナンスコスト、ランニングコスト、初期コストが少なく、スケールアップが容易といった位置づけで提供されているサービス。バックグラウンドプロセス、スレッド、ソケットが使えなかったり、リクエストの実行時間に制限があったり、サービスに付属のDB以外は使えなかったりする制限がある。特にDBについてはリレーショナルDBでないことが多いよう。2つ以上の開発プラットフォームが使えるものもある。代表例はGoogle App Engineなど。
- クローズド型:比較的制限が多く、どちらかと言うと特定用途のアプリケーション開発に向いているもの。プラットフォーム独自の言語でしか開発できないものもある。代表例はSalesforce.comのForce.com。Force.comでは同社独自の言語であるApexを用いなければならず、オープンソースのライブラリやソフトウェアを展開するのはほぼ不可能。他にも一回のDBクエリで取得できる行数、一時に使用できるヒープメモリなどに細かい制限(governor limit)があり、自由度が低い傾向があるよう。そのため、多種多様なアプリを開発する総合的なプラットフォームとしては現状適していないという意見が多い。その代わり同社のCRMとの相性が良く、CRMを大幅にカスタマイズするような局面では非常に適していると見なされている。ただし、クラウドSIの先駆で米国のスタートアップ企業であるAppirio社などは、独自のノウハウを駆使して、force.com上でCRMに限らず様々なエンタープライズアプリを開発・展開しているとのこと。
- MaaS (Middleware as a Service)型:DB、分散コンピューティング、モニタリングサービスなど、従来型のシステム開発では商用ミドルウェア、オープンソースミドルウェアを充てるもの。具体例には、データベースを提供しトランザクション毎課金などの料金体系が使えるSalesforceのdatabase.comや、科学計算などのパラレルコンピューティングが主なユースケースであるPiCloudなどがある。PiCloudはバックエンドにAmazonのAWSを使用しているそうで、IaaSをMaaSにすることで付加価値を付して販売しているということになる。こういった「クラウドミドルウェア」が提供するサービスのコンシューマは、クライアントソフトウェア(PC上で動くデスクトップアプリケーション)、自社ホストの従来型バックエンド、PaaS上のアプリなど様々なパターンが考えられる。人によってはSaaSに含める人もいるのかもしれないが、SaaSにしては下級だと思うので、筆者はPaaSに分類している。
- モバイルプラットフォーム型:AppleのApp Store、AndroidのAppstoreなどのスマートフォンアプリプラットフォーム、Gree、DeNAのSNSアプリプラットフォームなど。XaaSに含めない人もいるのでしょうが、クラウドと非常に密接に関連しているとは少なくとも言えそう。
- マーケットプレース・ポータル型:大分毛色は違いますが、B2C型のSaaSを販売する経路(ポータル)だけを提供する形態のこと。ホスティングなどには関与しない。クラウドならではの利点が薄そうなのであまりピンと来ませんが、そういうビジネスをして「クラウドビジネス」と言っている会社もいるみたいなので。
- デスクトッププラットフォーム型:Chromium/Ubuntu/Windowsなどのネットブック/PCプラットフォーム。Eclipseなどの「プラットフォーム型アプリ」も含めたいと思います。「全然クラウドじゃないじゃん」と言われてしまいそうですが、Ubuntuなんかapt-get installを使えばほとんどSaaS感覚でソフトが使えるようになります。ブラウザのChromeみたいに勝手にアップデートするソフトが増えてきて、かつOSもChromeと同じくらいシームレスにアップデートされるようになってくれば、割とSaaSに近くなってくるのではないでしょうか。以前から存在したJava Web Startといったリッチクライアント技術もあります。XaaSに入れるのは間違いかもしれませんが、これからXaaSと「従来型ソフト」の境目ってあいまいになってくるんじゃないかと思うんです。この辺の示唆などは、次回考えてみたいと思います。関連のある試みとしては、Intelのネットブック向けアプリストアがあります。
- SaaS (Software As A Service)
- 従来ユーザがパッケージソフトを購入したり、カスタムアプリを開発して利用していたサービスを、月額などで課金して提供する形式(説明不要か(^^;))。
- バックエンドサービス提供型:ビジネスインテリジェンス、コンテンツマネジメント、課題管理などの機能を、他のシステム(そして最終的にはUI)にインテグレーションすることを前提で、開発者向けのAPIとして提供するもの。B2Bだけではなく、以前はクリック証券が、個人投資家が自作のシステムトレードソフトウェア開発に利用出来るAPIを提供して話題になった。クリック証券はこのAPIサービスを停止してしまったようだが、他の証券会社が引き続き似たAPIを提供しているよう。こういったAPIを使って個人の開発者が作成したシステムトレードソフトウェアを、さらに個人投資家に販売するといったビジネスも発生している。その他の具体例としては、科学計算などに使えるWolframAlpha、ビジネスインテリジェンスのSAS-on-Demandなど。
- 社内システム型:UIまで提供され、それを従業員などが直接利用する形態。APIなども合わせて提供され、これを使ってSIerが他システムと連携させた上で導入する場合も。基本的に零細~小企業は直接利用、中~大企業はSIerを使ってカスタマイズ・連携した上で導入するパターンが多いと思われる。具体例は、開発支援ソフトのFogbugz、電子カルテのMegaOakSR for SaaS, Salesforce CRM、Google Appsなど。
- B2C型:一般消費者向けに直接サービスを提供する方式。家計簿、投資管理、タスク管理、コンテンツ管理など。具体例はオンラインストレージのDropbox、投資管理ソフトのmint.com、Gmail(個人向け)など。変わり種では、オンラインで画像処理ができるpixlrも。
- DaaS (Data As A Service)
- 株式市場のデータ、音楽・写真などのデータをオンデマンドで売るサービス。iTunesやKindleも広義に解釈すれば含まれるんじゃないだろうか。ただし、基本的には他システムへのインテグレーションを前提にAPIを公開しているサービスを言うようだ。
- DaaS (Desktop As A Service)
- デスクトップをサービスとして提供するビジネスモデル。目的としては、色々なPCからでもいつも同じ環境にアクセスしたいという「利便性」と、デスクトップにデータを持ちたくないのでシンクライアントにしたいという「セキュリティ」の2つに分類できるのではと思う。
- 部分型:ブックマークの同期や、ファイルの同期を取るソフトウェアが提供され、共有PCなど他のPCを使っていても、あたかもいつも自分の「メインPC」を使っているかのような利便性が得られるもの。完全にメインPCと同じように使えないのならSaaSじゃないかという話もあるが、Ubuntu Oneなどは完全な仮想デスクトップでなくても、SaaSをいくつか組み合わせてより仮想デスクトップに近い形にすることをコンセプトにしているようなので、そういうものは「セミDaaS」とでも言っていいのではと思う。
- 完全型:デスクトップ環境をリモートログイン感覚で、まるまるサービスで提供する形態。シンクライアントなど。富士通のサービス例
- PaaS (Peripherals As A Service) ※筆者の勝手な造語
- Desktop As A Serviceでは、「どのHWからアクセスしても同じデスクトップに接続したい」というものだったが、これはあべこべに「同じデスクトップから、いろいろな周辺機器(HW)を使いたい」という要望に応えるサービス。NECが、コンビニの複写機などで「クラウド越しで」プリントアウトできる仕組みを開発しているそうで、そういったものはこれに含まれるのではと思う。他には写真を焼く機械や、CD/DVDなどの媒体を焼く周辺機器、カメラなどが想定できそう。
- RaaS (Real-life As A Service) ※筆者の勝手な造語
- 半分冗談ですが(^^;)個人的には「マネージド農業プラットフォーム」とかやってみたいですね(笑)オンデマンドで土地とか水とか肥料とか買えて。。好きな種をまいて収穫して送ってもらうとか。こないだGreeの人に言ってみたら「もうハコニワあるよ」なんて馬鹿にされてしまいましたが、バーチャルな庭じゃなくて、ガチでビニールハウスを運営してもらって、本物の種をまいて本物の野菜とかを栽培するサービスです。リアル釣りスタは人件費が途方もなくかかりそうなので無理そうですねw。他にも「マネージドお料理プラットフォーム」(レシピを送れば調理して送ってくれる)とか、夢は広がります。もうすでに存在しているものでいえば、オンライン英会話のスカイトークとか、オンライン家庭教師などがあります。そう考えると、このジャンルにも何か分類名を与えてもいいのではと思います。でも家庭教師とかそもそもサービスなんで、As A Serviceだと語呂がいまいちですが。。
。。。後からわかったのですが、米国標準技術局(NIST)がXaaSの定義を詳細にしているのだそうです。ブログAgile Catが非常に詳細に紹介しておられます。
その他クラウドの定義などについて考察している記事:
お前の言っている「クラウドコンピューティング」とはなんですか?