特集:クラウド体験記(前編)

エンジニア視点で比較する“雲”の違い

シグマコンサルティング 橋本 圭一
2009/03/17
Page1 Page2 Page3

5. 実際に使ってみよう 「Force.com」

 ご存じの方も多いと思うが、セールスフォースはSFACRMに特化したアプリケーションをSaaSとして提供している。Force.comは、そのセールスフォースが提供する開発プラットフォーム(PaaS)で、Salseforce CRMのカスタマイズや、さまざまなSaaS型ビジネス・アプリケーションを開発できる。

総合評価

【環境構築の容易さ】 ★★★★
【サービス構築の容易さ】 ★★★★★

事前準備

 まず、アプリケーション開発者向けのDeveloper Editionアカウント(無償で無期限)を取得する。

 アプリケーションは、Salesforce.comにログインして、ブラウザを使ってForce.com上で開発することも、Force.com IDEを使ってローカルで開発することもできる。アプリケーションをプログラミングレス、つまりマウス・クリックとデータ項目の入力だけで開発する場合は、前者のForce.com上での開発を選ぶ(ほとんどのアプリケーションはこれだけで十分だ)。一方、Apex言語で処理ロジック・コードを書く場合は、後者のForce.com IDEを使うことになる。

 Force.com IDEを利用するには、Java 5以降のSDKもしくはランタイムEclipse 3.3.xApex Toolkit for Eclipseプラグイン をインストールする必要がある。

手ほどき

 公式の手引書(PDFファイル)が親切で分かりやすい。以下の2冊の手引書をダウンロードできる。

作成したサンプル

(1)プログラミングレスで開発する場合(Force.com)

 今回は、次の画面のような中途採用管理のサンプルを作成してみた。

Force.com上で開発したアプリケーションの実行例
データ項目の設定と配置をWebサイト上で10分かからず行うことができる。

 上段左側のタブに[ポジション][応募者][申込][住所録]といった機能を用意している。[職種]から該当職種を選択すると、そのポジションの詳細情報を参照できる。また、申込者の入力画面に遷移することも可能だ。

Apexプログラミングで開発する場合(Force.com IDE)

 Apexを利用してプログラミングを行い、こちらもサンプル・アプリケーションを作成した。Salesforce.comにログインした後の画面イメージの紹介になるが、あらかじめ用意されている[取引先]項目へデータのINSERT(追加)があった場合に、トリガーを起動して[取引先.Hello]項目に「World」という単語をINSERTする簡単なプログラムを作成してみた。次の画面はその実行例だ。

Force.com IDEで開発したアプリケーションの実行例
[取引先]項目にトリガーを作成し、そのトリガーからHelloWorldクラスの呼び出しを行い、データのセットを行うプログラムを作成した。

作業概要

(1)プログラミングレスで開発する場合(Force.com)

 Force.comにログイン後、ブラウザからマウス・クリックで項目を選択したり、設定情報を入力したりしながら画面を作成していく。

 設定した内容は、そのままアプリケーションに反映される。簡易なアプリケーションであれば、コーディングの必要がなく、作成した画面がそのままデータベースに直結するので、作業としては分かりやすいだろう。

Apexプログラミングで開発する場合(Force.com IDE)

 Force.com IDEでの開発方法は、一般的なEclipseによる開発とそれほど違いはない。Eclipseを立ち上げ、次の画面のように、新規プロジェクトを作成するウィザードで「Force.com Project」を選択する。

Force.com IDEでのプロジェクトの作成
新規プロジェクトを作成するウィザードで「Force.com Project」を選択する。

 [Next]ボタンで進み、Salesforce.comへの[Username](ユーザー名)と[Passwrord](パスワード)、必要に応じて[Security Token](セキュリティ・トークン)を入力する。この設定によって、Eclipse上での開発内容がForce.comサーバ上のものと同期されるようになる。具体的には、Eclipse側で作成したプログラムは、ファイルを保存するタイミングで随時Force.comにアップロードされる。

 また、[Environment]の項目では、アプリケーションの実行環境を「Production Developer Edition」(本番)、[Sandbox]、[Pre-Release](プレリリース)などの中から選択できる。

Salesforce.comへのログイン情報などの設定

 プロジェクトが完成したら、次の画面のようにApex言語を使って開発を行う。

Force.com IDEでのプログラム開発

Apexプログラミングで開発する場合(Force.com)

 なお、Apex言語を活用した開発でも、トリガーなどは、Force.com上で開発することも可能だ。次の画面はその例である。

Force.com上でのトリガーの開発(Apexプログラミング)

データベース(Force.com Database)の管理ツールについて

 データベース管理ツールとしては、SoqlXplorerが用意されている(ただしMac用。Windows環境向けとしてはForce.com Explorerがある)。SoqlXplorerでは、データベースの一覧/編集、SOQL*2クエリの実行、テーブルのスキーマ定義の参照が可能だ。

*2 SOQL(Sforce Object Query Language)とはSQLライクなForce.com Database アクセス用のクエリ言語。

 次の画面はSoqlXplorerの実行例である。

SoqlXplorerの実行例(データベース内容の一覧)

 次の画面のように、スキーマ定義を確認することもできる。

SoqlXplorerの実行例(スキーマ定義の確認)

所感

 手引書(1)に沿ってサンプルを作成してみると、マスター・メンテナンスする(=参照系データベースを操作する)だけの業務アプリケーションを作る分には、マウス操作だけで大抵のことが可能で、コードを書く必要がないことが分かる。この点に関しては、コーディングするというよりは、パラメータの設定だけでアプリケーションをインプリメントする形に近いといえる。

データについて

  • データが主役というコンセプトでできており、画面に項目を配置するのとデータベース設計がほぼ同時にできる。
  • 入力チェックやリレーション設定も簡単にブラウザ上で設定できる。特にリレーション設定をブラウザ上でできる点は非常に大きなメリットといえる。
  • CSV形式ファイルでデータをインポートすることも可能で、社内システムからの移行という点でも配慮がなされている。
  • 管理しているデータをレポートに出力できる。

ロジックについて

  • ワークフロー、承認もブラウザ上から作成可能。
  • アプリケーション内のコントロール単位まで権限により制御することが可能となっている。

 手引書(2)を活用したApex言語では、(Force.com IDE本体の)Eclipseやデータベース管理ツールが充実しており、快適な開発が期待できる。ブラウザ上でApexプログラムを作成した際にも、保存時にコードのチェックが行われるので、実行前に間違いを訂正することができる。

注意点

 開発したアプリケーションの提供方法に関しては、ほかのクラウド事業者と異なるので注意が必要だ。開発企業側にはForce.comを利用したサービスを顧客に直接提供する権利はなく、サービスを導入する際や、作成したアプリケーションを公開する際には、セールスフォースのパートナー・プログラムに参加する必要がある。また、認定セールス、認定デベロッパー、認定コンサルタントといった資格も必要になる。

 ただし、パートナー・プログラムに参加することによって、自社で作成したSalesforce CRMへのアドオン・プログラムを「AppExchnge」というサイトを利用して、Salesforce CRMを利用しているエンド・ユーザーに販売することが可能だ。クラウド上で作成したアプリケーションやサービスをクライアントに売買できるマーケットがすでに構築されているというのは、ほかのクラウドとは違う点といえるだろう。

 またForce.comの新機能として、ユーザー企業がインターネットに向けて公開するWebサイトを運営できる「Force.com Sites」がすでに開発者プレビューとして提供されており、2009年中には一般提供が開始される予定となっている。

まとめ

 大量なデータやトランザクションを扱うシステムには向いていないが、短期間かつ初期低コストでCRMやSFAを中心としたサービスを構築できるSalesforce CRMはエンド・ユーザーにとって非常にメリットの大きいソリューションである。このような仕組みは、筆者のように1からプログラミングを行い、オンプレミスのシステムを構築してきたエンジニアには衝撃的ともいえる。

 開発プラットフォームとしてのForce.comにおいても、ツールや環境が充実している印象を受けた。しかしながら、作りやすい環境が、エンジニアにとって住みやすい“雲”なのかというと、一概にはそうとはいえない。コンセプトとして、「ソフトウェアを作らず、すでにあるものを共有しよう」というところから始まっているため、ソフトウェアを作るというよりは導入するという役割に近い。

 また、構築期間が短くなるので、SIerにとっては構築の数をこなすビジネス・モデルになりそうだ。そうなると「ソフトウェアを作らない現場におけるエンジニアとは何なのか?」ということを考える必要があるかもしれない。「サービスを提供するのがエンジニア」だと即答できる方には違和感がないかもしれないが、オンプレミスのシステムを構築してコーディングの量が対価に結び付いていた開発者は、業界のトレンドとして「個別にシステムを作らず、共有できるものはみんなで共有しよう」というパラダイムシフトが起きていることを考える機会として、セールスフォースのサービスに触れてみるのも良いかもしれない。

 以上、今回はアマゾン、グーグル、マイクロソフト、セールスフォースの4社が提供するクラウド・サービスを横並びに比較し、まずはグーグルが提供するGoogle App Engine、セールスフォースが提供するForce.comについて評価を行った。

 後編となる次回では、同様にしてAmazon EC2、Windows Azureについてレポートし、最後にこれらのクラウド・サービスを体験して気付いたこと、分かったことなどをまとめてみる。End of Article


 INDEX
  特集:クラウド体験記(前編)
  エンジニア視点で比較する“雲”の違い
    1.2009年はクラウド元年/あなたは、どのクラウド?
    2.実際に使ってみよう 「Google App Engine」
  3.実際に使ってみよう 「Force.com」
 
  特集:クラウド体験記(後編)
  体験してみて分かった“雲”の違い
    1.実際に使ってみよう 「Amazon EC2」
    2.実際に使ってみよう 「Windows Azure」
    3.まとめ(体験してみて分かったこと)


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間