巨大な単一システムを,ユーザーごとにカスタマイズして共同利用する「Force.com」。アクセス制御やワークフロー機能など,各種サービスがそろっていることが特徴だ。データベース開発にはRDBの知識を,プログラム開発にはJavaの知識を生かせ,フレームワークを用いてMVC 構造のアプリケーションを作れる。

 Force.comとは,米Salesforce.comが提供する「PaaS(Platform as a Service:サービスとしてのプラットフォーム)」です。CRM(Customer Relationship Management)などの既製アプリケーションをインターネットを介して提供するサービスを「SaaS(Software as a Service:サービスとしてのソフトウエア)」と呼ぶのに対し,PaaSでは特定のアプリケーションではなく,アプリケーションの開発環境や実行環境をインターネットを介して提供します。

 こう書くと,Webサーバー,APサーバー,DBサーバーなどをセットアップした状態のホスティング・サービスと同じようなものと思われるかもしれませんが,そうしたサービスとは,アーキテクチャの点で大きく異なります。通常のホスティング・サービスでは,基本的にサービスを利用するユーザー企業のシステムごとに,各種サーバーを個別に管理します。それに対してForce.comは,サーバーやストレージ,各種ソフトウエア(OS,APサーバー・ソフトなど)をユーザー企業ごとに個別に設定するのではなく(注1),インターネット上にある「Force.com」という一つのWebシステムを共同利用するイメージです(図1)。こうした考え方を「マルチテナント」といいます。

図1●Force.comのシステム・イメージ
図1●Force.comのシステム・イメージ
[画像のクリックで拡大表示]

 Force.comの提供者であるSalesforce.comは,単一のシステムを開発,拡張,管理,保守すればよいので,個別システムを管理するのに比べて高品質なサービスを提供できます。万が一バグがあったり,セキュリティに問題があったりした場合でも,単一システムですので,迅速に修正が可能となります。さらに,数百万人規模が同時利用できる巨大システムなので,一部のユーザー企業向けシステムの利用者が急増しても,巨大な単一システムとして余裕があれば,パフォーマンスの低下を防ぐことができます。

 一方,Force.comを利用するエンジニアは,インフラストラクチャの構築,システムの保守や運用といった作業から解放され,アプリケーションの機能部分に注力できるようになります。

エンタープライズ開発にフォーカス

 Force.comは巨大な単一システムという側面のほか,「エンタープライズ・アプリケーションをいかに素早く作れるか」にフォーカスしたいくつかの特徴を持っています。まず,基本的なプログラム実行環境やデータベース・サービスがあります。そこでは,セキュリティ(プロファイルやロール)やアクセス制御,Webサービス,アプリケーション間連携,認証などの基盤機能に加え,アプリケーションのユーザー・インタフェースを自動生成するジェネレータ機能,ワークフロー・エンジン,分析・統計機能,モバイルからのアクセス機能,多言語・多通貨対応機能,などを提供しており,アプリケーションを開発する上で必要な機能が一通りそろっています。

本番環境のクローンで動作確認できる

 Force.comでは,アプリケーションを効率的に開発するために,いくつかの環境が用意されています。通常のアプリケーション開発であれば,各開発者のローカルPCに開発環境やデータベースを用意し,それとは別に結合・総合テスト用のサーバーを用意することが多いでしょう。Force.comを利用した場合も,それらと同様の環境を構築できます。

 個々のエンジニアがアプリケーションを開発するために,Force.com上に「Developer Edition」と呼ばれる無償の開発環境が提供されます。DeveloperEditionを利用するには,DeveloperForceサイト(http://www.salesforce.com/jp/developer/ )からサインアップします。このDeveloper Editionという開発環境には,アプリケーションの本番運用環境とほぼ同等の機能(データベース・サービスやライブラリなど)がそろっており,個々のエンジニアが開発環境を整備する手間はほとんどないといっていいでしょう。

 また,Developer Editionとは別に,本番運用環境のクローン(複製)を作る機能があります。このクローン環境は「サンドボックス」と呼ばれるもので,任意のタイミングで,実際に稼働している本番環境のクローンを作ることができます(図2)。アプリケーション・プログラムだけでなく実データも含めて,すべて同一のコピーになります。

図2●本番運用環境のクローンを作れる
図2●本番運用環境のクローンを作れる
[画像のクリックで拡大表示]

 サンドボックス環境は,保守開発,テスト,トレーニングなどの幅広い用途に使うことができます。例えば,既存アプリケーションに機能追加する際,サンドボックスに追加開発したプログラムをデプロイ(配布)し,そこで動作確認を行うことで,本番環境にデプロイする前に問題点を確認することができます。協力会社に実データを見せたくない場合は,実データを除いたアプリーション・プログラム環境のみをコピーすることもできます。この場合,テスト・データをデータベースにインポートする必要がありますが,そのためにExcelやCSVファイルからデータを一括で読み込む機能が備わっています。