Special
» 2016年02月29日 10時00分 UPDATE

Bootstrap、jQuery Mobile、AngularJS、iOS、Androidにも対応:Web APIとコンポーネントのブレンド――ビジネスユーザーには生産性を、プログラマーには自由度を、高レベルで提供する開発プラットフォームとは

ビジネスユーザーからの注目度が高かったセールスフォース・ドットコムだが、少し前から開発者からもにわかに熱い視線が向けられるようになってきた。同社のプラットフォームに特化したPaaS「Force.com」について、最新版の特長をあらためて整理しておきたい。

[PR/@IT]
PR

ビジネスアプリケーション向けPaaSとして成熟度を深める「Force.com」

 ビジネス向けSaaS提供者の先駆けであり、また最大規模のベンダーでもあるセールスフォース・ドットコム。同社のサービスは、CRMや営業支援アプリケーションの機能をSaaSとして提供する「Sales Cloud」を中心に、カスタマーサービスアプリケーションの「Service Cloud」、マーケティングアプリケーションの「Marketing Cloud」、さらにはSNSの「Chatter」など、実に幅広いサービスを展開している。

 当初は、こうしたサービスを利用するビジネスユーザーからの注目度が高かったセールスフォース・ドットコムだが、少し前から開発者からもにわかに熱い視線が向けられるようになってきた。特に、Herokuの買収をきっかけにセールスフォース・ドットコムへの関心が高まったという開発者も多いかもしれない。

 一方で、セールスフォース・ドットコムはHeroku買収前より、同社のプラットフォームに特化したPaaS(Platform as a Service)を提供してきた。それが、「Force.com」だ。それこそ、PaaSという言葉が生まれる前から業界に先駆けてSalesforceアプリケーションの開発環境を、同社のクラウドプラットフォーム上で提供してきたのだ。そういう意味では、同社はSaaSだけでなく、PaaSの世界においても先駆けだといえる。

 このForce.comは、PaaSの中では最も古い歴史を持つだけあり、極めて充実した機能を備えている。一般的にPaaSは、開発フレームワークや各種ツール類、さらにデータベースなどのミドルウェアを開発者に提供してくれる。しかしForce.comは、これらに加えてさらにアクセス権限やユーザー認証のプラットフォーム、さらにはより上位レイヤーに位置するワークフロー機能やデータ検索・分析機能まで提供する。つまり、一般的なPaaSよりさらにレイヤーが上の機能、換言すれば「より抽象度の高い」機能やサービスをプラットフォームが提供してくれるのだ。

SFDC1_1.jpg IaaS、他のPaaSとの違い(セールスフォース・ドットコムの資料より)

 その理由は、Force.comが「ビジネスアプリケーションの開発」に特化して作られているからだ。一般的なPaaSは、さまざまな開発者が利用することを前提としている。例えばゲームアプリ。ちょっとしたWebサービスから、大規模なビジネスアプリケーション、さらには学術用途のソフトウェアまで、多種多様なシステム開発が可能なように汎用的な開発環境を提供している。つまり「自由度が高い」わけだが、その分開発者が自ら作り込まなくてはいけない範囲も広くなる。

 その点Force.comは、当初からセールスフォース・ドットコムのプラットフォーム上に構築されるビジネスアプリケーションの開発だけに用途を絞り込んでいるため、その目的に即したさまざまな便利機能を搭載し、より開発者の負担を減らすことに成功している。その開発生産性の高さは、折り紙付きだ。次項で、実際にForce.comを使った開発のイメージを紹介していこう。

ビジネスユーザーでも生産性が高いアプリケーション開発を可能にする3つのGUI

 一般的に、ビジネスアプリケーションの開発は「データベース設計・構築」「ユーザーインタフェース設計・開発」「ビジネスロジック設計・開発」の3つの分野に分かれる。Force.comでは、この3つのエリアそれぞれで生産性の高い開発ツールを用意している。

【1】ER図を描くような「データベース設計・構築」

 例えばデータ設計のエリアでは、GUIツール上で簡単にテーブル設計やリレーション設定を行える「スキーマビルダ」というツールを用意している。開発者は、このGUIツール上でER図を描くようなイメージでスキーマを定義すれば、後は自動的にForce.comのクラウドプラットフォーム上にデータベースが構築される。

SFDC1_2.jpg 「スキーマビルダ」の使用例

【2】UI部品をドラッグ&ドロップ「ユーザーインタフェース設計・開発」

 そして、アプリケーションのユーザーインタフェースの設計・開発は、「Lightningアプリケーションビルダー」というツールを使って行う。ここでは、UI部品をドラッグ&ドロップで画面上に配置し、アプリケーション画面の完成イメージをイメージしながらユーザーインタフェースの設計を行える。

 ここで特記すべきは、先に「スキーマビルダ」で定義したデータ項目を、Appビルダーですぐに参照して画面上に配置できる点だ。その結果、もしデータ項目が足りないことが判明すれば、すぐ「スキーマビルダ」に戻り、データ項目を追加すれば、それがまたすぐに「Lightningアプリケーションビルダー」に反映される。そうやって、データの設計と画面の設計をシームレスに連携させながら開発を進められるため、アプリケーションのプロトタイプイメージを都度確認しながら開発を進めるアジャイルなアプローチをより自然な形で実践できる。

SFDC1_3.jpg 「Lightningアプリケーションビルダー」の使用例

 さらに特筆すべきは、ビジネスアプリケーションで必要となる機能部品が、コンポーネントとして多数提供されている点だ。先に紹介したように、ユーザー認証やアクセス制御といった機能は、Force.comのプラットフォームが既にサポートしており、その認証や制御に沿った形でコンポーネントが動作する。開発者は、これらを開発ツール上でドラッグ&ドロップでアプリケーション画面上に配置し、パラメータ項目を埋めるだけで、実に簡単にその機能をアプリケーションに埋め込むことができる。

 Force.comの大きな特長は、もう一つある。それは、「Lightningコンポーネント」と呼ばれる、サードパーティーの開発者が作成したHTML5ベースのコンポーネントも広く利用可能な点だ。「AppExchange」というマーケットプレースに、サードパーティーが開発した多種多様なLightningコンポーネントが登録されている。アプリケーションの開発者は、自身が開発するアプリケーションで必要とする機能をここから入手すれば、後はそれをツールからドラッグ&ドロップで取り込むだけで、その機能を簡単に実装できる。

【3】フローチャートみたいに「ビジネスロジック設計・開発」

 そして、ビジネスロジックの開発を行うのが、「プロセスビルダー」というGUIツールだ。アプリケーションに実装するビジネスロジックを、フローチャートのようなイメージで定義し、処理分岐の条件や、実際に行う処理の内容を画面上から定義すれば、後はForce.comのプラットフォームが自動的にコードを生成してくれる。

SFDC1_4.jpg 「プロセスビルダー」の使用例

 かなり突っ込んだ処理内容まで定義できるため、ごく一般的な業務アプリケーションであれば、このツールを使って、コーディングレスで開発できる。

独自プログラミング言語やAPIによって自由度の高い開発も可能

 このようにForce.comは、極めて抽象度の高い開発プラットフォームとツール類をそろえることで、これまでアプリケーション開発の経験のないビジネスユーザーであっても、本格的なビジネスアプリケーションの開発を可能にした。セールスフォース・ドットコム躍進の原動力の1つが、この優しい開発環境にあったことは間違いないが、実はForce.comは単に優しいだけではない。その気になれば、コアなデベロッパーが細かな作り込みを施して、アプリケーションの挙動を自在に操ることも可能なのだ。

SFDC1_5.jpg Force.comの開発スタック(セールスフォース・ドットコムの資料より)

データベースを作成→データをWeb APIとして即公開可能に

 例えば、「スキーマビルダ」を使ってデータベースを設計・構築する際、自動的にSOAP/RESTのデータアクセスWeb APIが生成され、チェックボックスを1つONにするだけで、SOAP/RESTのデータアクセスWeb APIへのアクセスが可能になる。開発者は、このAPIを通じてOAuth/OpenID認証でデータベース内のデータを自由に操作することができるのだ。Force.comをいわゆる「BaaS(Backend as A Service)」のデータストアとして利用可能といっていいだろう。

SFDC1_6.jpg Web APIとして公開する設定画面

 しかも、自社/自社グループ内のみで公開できるように設定したり、インターネット上に公開できるように設定したりすることも可能。FinTech/IoTの流行で自社のデータをAPIとして公開する非IT企業が増えているが、この機能は自社データを公開したい企業の強い味方になるはずだ。

SFDC1_7.jpg 公開したAPIをApigee社のAPI管理サービス「Apigee」で試している様子

 なお先のコンポーネントは、このAPIを基にして開発することもできるので、自社/自社グループ内限定でコンポーネントを利用したり、前述の「AppExchange」で世界中に公開したりすることができる自由度がある。

HTML5、iOS、Android向けモバイル開発

 このAPIを通じてデータベースに接続するためのモバイル向けライブラリ/SDKも備えている。例えば、jQuery Mobile、AngularJS、Backbone.js、KnockoutといったHTML5/Web向けのライブラリがあり、Bootstrapと組み合わせてモバイル向けWebアプリケーションの開発が可能だ。

 しかも、Apache Cordovaテクノロジーにより、ネイティブアプリケーションに変換できる。iOS/Android端末上では、「Salesforce1」アプリケーションをインストールしSalesforceアカウントでログインしておけば、そこにApache Cordovaで変換されたアプリケーションが配信される仕組みだ。

SFDC1_9.jpg iPhoneにインストールされた「Salesforce1」アプリケーションのログイン画面

 また、ネイティブアプリケーション開発には、Objective-CのiOS向けSDK、JavaのAndroid向けSDKも提供している。デバイスの深い機能と連携するアプリケーション開発にはこちらを活用するといいだろう。こちらは、「Salesforce1」アプリケーションを必要としない独立したアプリケーションの開発用となる。

ビジネスロジックはプログラムでも作れ、モジュールとして利用できる

 ビジネスロジックも柔軟に定義できる。先ほど、「プロセスビルダー」を使ってプログラムコードを自動生成できることを紹介したが、開発者が自らプログラムを一からコーディングすることもできる。

 「Apex」というプログラミング言語が用意されており、これでプログラムを記述することで開発者はアプリケーションのきめ細かな挙動を定義できる。Apexは、「Javaと同じ文法で、Javaよりも使いやすいAPIライブラリを備えたプログラミング言語」というイメージを持っておけばいいだろう。

SFDC1_10.jpg コードの補完も可能なWeb上の開発環境で表示したApexのコード

 もちろん、こうして開発したプログラムモジュールは、「プロセスビルダー」から呼び出して利用することも可能だ。

WebブラウザでもEclipseでもコーディングが可能

 ちなみに、こうしたプログラミング作業のための開発環境も、Force.comには用意されている。Webブラウザ内での作業になるが、これだけでもかなり快適な開発作業が可能になる。しかし、例えば複数人数で開発作業を進める場合などは、既存の開発ツールや変更管理ツールなどを使いたいケースも出てくるだろう。

 こうしたケースを想定し、Force.comの開発をEclipse上で行うこともできるようになっている。具体的には、Apexによるプログラミング環境や、XMLで定義されたメタデータをEclipse上で参照、更新できるためのEclipseプラグインが用意されている。開発者はこれを入手し、Eclipseに設定すれば、普段使っているEclipseの開発環境上でForce.comアプリケーションの開発も可能になる。

SFDC1_11.jpg Eclipse上でXMLのメタデータを編集している様子

開発の「生産性」と「自由度」を両立させたPaaSには30日間無料の試用版も

 以上で見てきたように、Force.comではブラックボックス化・コンポーネント化された機能をGUIツール上で組み合わせるだけの効率的なアプリケーション開発が行えると同時に、プログラマーがコードをごりごり記述するような開発スタイルにも対応している点が大きな特長だといえよう。言ってみれば、開発の生産性と、開発の自由度が、同時に実現されているわけだ。

 開発者は、自分たちが開発しようとしているアプリケーションや、その部品の特性に応じて、既存コンポーネントを組み合わせる開発スタイルを採用するか、APIを駆使したプログラミングによる開発スタイルを採用するか、あるいはその両方をミックスさせるか、適宜選べるようになっているのだ。

 PaaSに限らず、世に多数ある開発支援ツールのほとんどが、このどちらかにフォーカスしている中、開発の生産性と自由度のどちらの利点も手にできるForce.comの開発環境は、多くのビジネスアプリケーション開発者にとって極めて価値が高いはずだ。

 Force.com 開発環境は無料で入手可能なので、興味を持たれた開発者の方は、ぜひ一度、実際にForce.comの環境に触れてみることをお勧めしたい。

Copyright© 2017 ITmedia, Inc. All Rights Reserved.


提供:株式会社セールスフォース・ドットコム
アイティメディア営業企画/制作:@IT 編集部/掲載内容有効期限:2016年3月28日

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。