PR

アプリケーション開発時に利用する機能

 Force.com上でエンタープライズ・アプリケーションを開発する際,主に表1に示した機能を利用します。各機能を必要に応じて組み合わせ,さまざまなアプリケーションを作成できます。以下では,各機能について説明します。

表1●Force.com表1 上のアプリケーション開発時に利用する機能
機能名 概要
Force.com Database データベース・サービス。従来のリレーショナル・データベースに当たる
Application Builder ユーザー・インタフェース(UI)自動生成エンジン。従来のUI 自動生成フレームワークに当たる
Visualforce JSF(JavaServer Faces)に似たマークアップ言語を持つ。MVC アプリケーションのビュー部を担う
Apex プログラミング言語。Java に似ており,従来のデータベース・トリガーやストアド・プロシージャを実装することもできる。MVC アプリケーションのコントローラ部とモデル部を担当する
Force.com IDE 統合開発環境。Eclipse のプラグインとして提供される
Force.com Sites 公開インターネット配信機能。作成したアプリケーションを,ログインを要求しないパブリックなインターネット上で閲覧可能にする
Force.com Web サービスWeb サービスAPI。SOAP ベースのWeb サービス・フレームワークに当たる
Force.com Analytics 分析・統計機能。従来のBI(Business Intelligence)フレームワークに当たる

□ Force.com Database

 Force.comの中でも最も核となるサービスで,主にデータの永続化を担当します。データの永続化以外にも多くの機能が備わっており,後述するApplication BuilderやApex,WebサービスAPIなどをはじめとしたプラットフォーム全体と深く統合され,例えばデータベースの定義を行うと,ユーザーの権限に応じたアクセス・フィルタが有効になり,データの登録・編集・検索などのユーザー・インタフェースが自動生成されます。簡単なアプリケーションであればこのユーザー・インタフェースのレイアウトをマウスで調整するだけで完成します。

 ユーザー・インタフェースの自動生成はApplication Builderのところで説明しますので,ここではForce.com Databaseのデータ・モデルと検索方法について説明します。

暗黙的に「ID」フィールドが定義される

 Force.com Databaseは,リレーショナル・データベースに似た関係モデルを採用しています。他社のPaaSでは(リレーショナル・データベースと大きく異なる)「Key-Value方式」と呼ばれるモデルを採用しているところが多いですが,Force.comでは,OracleDatabaseなどで採用されているデータ・モデルとよく似たモデルです。そのため,今まで慣れ親しんだ設計手法をそのまま利用できます。一方,一般的なリレーショナル・データベースとは違ったいくつかの特徴を備えていますので,その点には注意が必要です。

図3●Force.comのデータベース・モデルの例
図3●Force.comのデータベース・モデルの例
[画像のクリックで拡大表示]

 Force.com Databaseと通常のリレーショナル・データベースでは,テーブル(データの集合)やカラム(データの属性)といった概念は共通です。ただForce.com Databaseでは,テーブルを「オブジェクト」,カラムを「フィールド」と呼びます。すべてのオブジェクトには,暗黙的に必ず「ID」フィールドが定義され,このID値によってデータを一意に特定できるよう設計されています。これは,リレーショナル・データベースの「サロゲート・キー(代替キー:ビジネス的な意味のない連番などのキー)」に近い考え方です。リレーショナル・データベースのサロゲート・キーは同一テーブル内で識別する用途を想定していますが,Force.com DatabaseのIDは,同一のオブジェクト内だけでなく,Force.comの中で一意に特定できるという点が異なります。

 リレーショナル・データベースにおけるテーブル間の関連は,主キーや外部キーを使いますが,Force.com Databaseの場合には「関連フィールド」を使って実装します(図3)。関連フィールドとは,関連させたいオブジェクトのIDフィールドのことです。それをフィールドとして定義することで,オブジェクト間の関連を定義します。リレーショナル・データベースのサロゲート・キーを用いた場合と同様に,データが更新された場合でも,関連に影響を与えることが少なくて済みます。