Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

Force.comプラットフォームのすすめ

Java/.NETプログラマのためのForce.com開発入門 第1回

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2013/03/15 14:00

 Force.comは、Salesforce.com社が提供しているビジネスアプリケーション向けのクラウド上のプラットフォームです。本稿では、Javaや.NETといったオブジェクト指向言語の開発者で、これまであまりForce.comに関わる機会がなかったという方を対象に、Force.comを利用した開発のエッセンスを解説します。

目次

はじめに

 開発者なら誰しも、繰り返し登場する処理やデザインパターンをフレームワークとして再利用できるようにするだけではなく、ユーザ自身がカスタマイズできる汎用的なプラットフォームを作れたらどんなにステキだろう、と思ったことがあるはずです。私がForce.comを使い始めたのはそんな理由でした。

 人生の貴重な時間の多くをかけて、ユーザに直接的には届かないプラットフォーム部分を自作しなくとも、Salesforce CRM(Customer Relationship Management:顧客関係管理)ソリューションの実績が活かされ、クラウド上で利用できるものがすでにあるのです。しかも、アジャイルプロセスの一つであるScrumによって、継続的にフィードバックが反映されていれば、開発者にとっても、もちろんユーザにとっても、悪いものであるはずがありません。

 ユーザ企業の要件がForce.comにフィットする場合、比較的短期間でユーザに喜んでもらえるアプリケーションを提供できます。多くの機能を標準で備わっている部品で構成することで、ユーザ企業固有のビジネスロジックに集中することができるからです。こうしたプロジェクトを何回か経験しているうちに、微力ながら日本全体のビジネスアジリティが高まることに繋がっているのではないかとさえ感じられるようになります。

 一方、Force.com以外のプラットフォームを採用するプロジェクトや、プラットフォーム部分を新たに開発するプロジェクトにおいても、Force.comが持つモデルはおおいに参考になるに違いありません。

対象読者

 Javaや.NETなどのオブジェクト指向言語でのコーディング経験がある開発者。

必要な環境

 今回は特になし。

Force.comとは

 Force.comは、Salesforce.com社が提供しているPaaS(Platform as a Service)です。基幹業務システムやポータルサイトなど、ビジネスを中心としたアプリケーションを開発するのに必要な、認証やアクセス制御、メール送受信、Webサービス連携、レポート、承認ワークフローといった強力な部品群を利用できます。

 また、同じくSalesforce.com社からSaaS(Software as a Service)として提供されているCRMソリューションだけでなく、AmazonやGoogle、Facebookなどの他のサービスとの連携にも積極的です。さらには、AppExchangeと呼ばれるサードパーティ製のアプリを気軽に公開できるエコシステムも形成されています。

クラウドサービスの地図(参考 Appirio CIO Blog
分類\ベンダー Amazon Google Salesforce
 SaaS
(Software as a Service)
Google Apps Salesforce.com
 PaaS
(Platform as a Service)
GAE
(Google App Engine)
Force.com、
Heroku
 IaaS
(Infrastructure as a Service)
AWS
(Amazon Web Services)
GCE
(Google Compute Engine)

 クラウドサービスの分類、IaaS、PaaS、SaaSについては、過去に掲載されている記事『クラウド・コンピューティングの基本とWindows Azure』が参考になります。また、各クラウドサービスのより具体的で詳細な比較は、Appirio’s Cloud Ecosystem Mapを参考にしてください。

 GAEやHerokuをはじめとする他のPaaSと比較した際の、Force.comの代表的な特徴はつぎのようなものです。

  1. Salesforce CRMソリューションで提供されているたくさんの機能を利用できる
  2. データモデルや基本的なページなど、システムの多くの部分をマウスクリック中心の操作だけで設定できる
  3. Apex、Visualforce、SOQL(Salesforce Object Query Language)という、Javaや.NET、SQLに似た独自言語でコーディングする
  4. マルチテナント型サービス特有の注意点がある

 1番や2番については、Salesforce.com社から公開されている情報に説明をゆずり、ここでは3番と4番にフォーカスしていきます。

Javaや.NETに似ているApex、Visualforce

 Force.comでは、Javaや.NETの言語の構文をもとに作られた、ApexおよびVisualforceという言語でコーディングします。

Force.comの開発言語と他のプラットフォームとの対応
  Java .NET Force.com
ビジネスロジック Java、Groovy… C#、VB(.NET)… Apex
ユーザーインターフェース JSP、JSF… ASP.NET Visualforce
データアクセス SQL、EJB… SQL、LINQ… SOQL、SOSL
開発環境 Eclipse、NetBeans… Visual Studio Eclipse Force.com IDE
ユニットテスト JUnit、TestNG… Visual Studio、NUnit… Apex
ビルド/デプロイツール Eclipse、NetBeans、
Ant、Maven、
Jenkins…
Visual Studio、MSBuild、
Visual Studio Team System、
Jenkins…
Eclipse Force.com IDE、
Ant、 Jenkins…

 JavaやC#などのプログラミング言語に対応するものがApexで、JSPやASP.NETのようなページ記述言語に対応するものがVisualforceです。Apexにおけるお約束のHello Worldは、例えば次のようなコードになります。

ApexによるHello World
class HelloWorld {
	public String greet() {
		return 'Hello World!';
	}
}
System.debug((new HelloWorld()).greet());

 JavaやC#の構文にそっくりです。Groovyのようなシンタックスシュガーや、C#のプロパティのように、コーディングする上での便利な構文も一部採用されています。

 次のコードはVisualforceによるもので、Webブラウザに「Hello World!」という文字列を表示します。

VisualforceによるHello World
<apex:page >
  <h1>Hello World!</h1>
  <p><apex:outputText value="{! 'Hello World!' }"/></p>
</apex:page>

 こちらも先ほどと同様にJSPやASP.NETと構文が似ており、これまでと同じような感覚で記述できる言語です。もちろん、ページの中にJavaScriptやAjaxも含めることができます。また、データのクエリやDML(Data Manipulation Language)は、SQLの構文によく似たSOQLという言語で行います。次の例は、すべてのAccount(取引先)をApexコードからクエリするコードの断片を表しています。

SOQLによるクエリ
Account[] accounts = [SELECT Id, Name FROM Account];

 他にも、JUnitのようなユニットテストや、Eclipseに統合された開発環境のForce.com IDE、Antによるデプロイといったように、Javaや.NETの開発者なら手足のように使える道具と同等のものを、Force.comにおける開発でも同じように利用できます。これまで培ってきた経験やノウハウを十分に活かすことができるのです。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 照井 康真(テルイ コウマ)

    エンタープライズ領域に破壊的イノベーションをもたらしてきた、クラウドインテグレータの株式会社アピリオ勤務。日本のビジネスアジリティの向上に少しでも貢献すべく、日々奮闘中。

バックナンバー

連載:Java/.NETプログラマのためのForce.com開発入門
All contents copyright © 2005-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5