Force.com に向くシステムと向かないシステムがある。まずその違いを押さえておこう。単一システムを共同利用するイメージなので,利用する際には「制約」がある。その制約を受け入れ,データ量やユーザー数が増えても問題ないような設計をしなければならない。開発生産性は,作り方によって大きく変わる。Force.com らしく作ればコーディング量を減らせる。

 前回は,セールスフォース・ドットコムが提供する「Force.com」の全体像と特徴を説明しました。リレーショナル・データベースやJava言語の利用者にとって敷居の低い開発環境であること,エンタープライズ・システムの開発にフォーカスしたさまざまな機能をそろえていること。これらがForce.comの主な特徴です。

 今回は,まずForce.comに向いているシステムを説明した上で,Force.com上で動作するアプリケーションの設計,開発,(開発したアプリケーションの)提供のポイントを解説します。

向くシステム,向かないシステム

 Force.comは,巨大な単一のシステムを,複数のユーザー企業が個々にカスタマイズして使うイメージであることを前回説明しました。既にあるシステムをカスタマイズして使うわけですから,Force.comに向くシステムと向かないシステムがあります。どのようなシステムがForce.comに向き,どんな特性のシステムは向かないのかを説明します。

Force.comに向いているシステム

 Force.comは,SFA(Sales Force Automation)を中心としたCRM(Customer Relationship Management)システムを構築するための基盤として生まれました。そうした背景がありますので,顧客情報,商談情報,問い合わせ情報などの,業務上のデータを管理して分析することに長たけています。正規化された情報群からデータを抽出し,多角的に分析するアプリケーションがForce.comプラットフォームに向いているといえます。適用例を具体的に挙げると,大規模システムではERP(Enterprise Resource Planning),SCM(Supply Chain Management)など,小規模システムではプロジェクト管理,バグ・トラッキング,出退勤管理,などのシステムに適しています。言い換えれば,ExcelやAccessなどで作成していた企業内の小さなシステムから,Oracle DatabaseなどのRDBMSを使って構築していた業務システムまでが,Force.comの適用範囲となります(図1左)。Force.comが苦手とするシステム

図1●Force.comに向くシステム,向かないシステム
図1●Force.comに向くシステム,向かないシステム
[画像のクリックで拡大表示]

 一方で,極端なハイトランザクション・システムや,非常に複雑な計算処理を長時間にわたって行うシステムなどは,Force.comには向いていません(図1右)。例えば,大容量動画配信やオンライン・チャット,画像解析などのシステムは,不可能ではないにしても,現状ではForce.com上で実現するのは困難です。

 では,Force.comが不得意とするすべてのシステムは,オンプレミス型システム(従来システムのように自社で基盤を用意するシステム)で作るしかないのでしょうか。筆者は,そうではないと考えています。Force.com以外にもシステム基盤のサービスはあり,それらのサービスはForce.comとは違う独自の強みを持っています。そうしたサービスを組み合わせるというのも,一つのやり方だと思います。

 米Amazon.comが提供するサービス「Amazon EC2」は,仮想化したサーバー・リソースを提供するサービスです。Force.comで提供しているようなさまざまなライブラリは含まれませんが,その代わり,既存のソフトウエアを自由に利用することができます。米Googleのシステム基盤サービス「Google App Engine」は,高いトランザクション処理能力と,Pythonなどの既存のプログラミング言語が動作するといった特徴があります。こうしたサービスとForce.comを組み合わせてシステムを構成します。例えば,動画管理部分は既存アプリケーションを流用したいので,Amazon EC2上に構築します。ユーザー・アクセス部分はハイトランザクション処理が求められますので,Google App Engineで実装します。そして,ユーザー・アクセス部分から得られる,ユーザーごとの閲覧履歴などのデータを管理・分析する部分をForce.com上に構築し,それらを連携させます(図2)。

図2●基盤サービスを組み合わせたシステム構成例――動画配信システム
図2●基盤サービスを組み合わせたシステム構成例――動画配信システム
[画像のクリックで拡大表示]

 従来のオンプレミス型のシステムは相互に連携して成り立っています。それと同様に,PaaS(Platform as a Service)ベースのシステムも,複数システムを連携させることが可能です。PaaSは元々インターネット上にあることが前提のサービスなので,大抵の場合,Webサービスによる連携を標準サポートしており,インテグレーションは容易に行えます。