SaaS型アプリケーションの開発環境をインターネット経由で提供するPaaSはどこまで実用的か。パート4ではセールスフォース・ドットコムが提供しているForce.comを例に、PaaSの開発技術やデータベース設計、既存システムとの接続技術、問題点についてまとめる。
ユーザー企業は、SaaS型アプリケーションを利用することで開発や保守にかかる手間やコストを減らせる。しかし、SaaSは万能ではない。自社に適したアプリケーションを探すのに時間がかかったり、ふさわしいものを見つけられないこともあるだろう。
こうした問題を解消するものとして期待されているのが、PaaS(プラットフォーム・アズ・ア・サービス)と呼ぶ新しいサービス形態である。PaaSはアプリケーションそのものではなく、アプリケーションの実行環境をインターネット経由で提供する(図4-1)。このため、PaaSのユーザーはアプリケーションを独自に開発して利用できる。
さらに、サーバー環境の構築や保守といった専門的な作業はPaaSベンダーが代わりに担うため、ユーザーはアプリケーションの開発に注力すればよい。さらに、PaaSのサービスによっては、セキュリティホールを生みにくいフレームワークを提供している。こうしたサービスを利用すれば、開発そのものの複雑さを軽減できる。
パート4では、セールスフォース・ドットコムが提供するPaaSであるForce.comを例に、PaaSでの開発はいったい何をどの程度の難易度で実現できるのかを見ていく。
マスター管理画面もGUIでカスタマイズ可能
セールスフォース・ドットコムは1999年に「Salesforce CRM」をリリースして以来、バージョンアップを繰り返してきた。これは単なる機能の追加ではなく、ユーザーによるカスタマイズを可能にするための変化でもあった。そして2008年、ユーザー企業やソフトウェアベンダーがSalesforce CRMと同じ技術で独自のアプリケーションを開発できるプラットフォームであるForce.comをリリースした。
Force.comを構成する要素は、大きく6つある。「ハードウエア」「データベース機能」「データ連携・サービス統合機能」「開発ロジック」「ユーザーインタフェース作成機能」「アプリケーション共有機能」である(図4-2)。この中で開発の中核になるのは、データベース機能とユーザーインタフェース作成機能、開発ロジックである。これらはすべて、Force.com独自の技術を用いている。独自と言っても、Force.com上の開発はこれまでのやり方に比べて難しいというわけではない。むしろ、開発というものを全く知らないユーザーにも取り組みやすい環境に仕上がっている。
まず、Force.comのデータベース機能から見ていこう。例えば、データベースにテーブルを追加するケースを考える。この場合、SQLをサポートする一般的なデータベースでは、「CREATE TABLE文」など専用の書式を用いる。一方、Force.com上でのテーブル作成はどうだろうか。Force.comではデータベースのテーブル(Force.comでは「オブジェクト」と呼ぶ)は図4-3のようにGUIによる操作で作成する。
同様に、テーブルにカラム(同じく「項目」と呼ぶ)を追加・変更したり、制限を付加する場合には、一般的なデータベースでは「ALTER文」という少々高度なコマンドを利用する。しかし、Force.comではこの作業もGUIで完結できる。最近の開発現場では、スキーマの作成や、場合によってはテーブルへの直接的な操作を各種ビジュアルツールで処理するスタイルが一般的なので、違和感は少ないだろう。
では、ユーザーインタフェース作成と開発ロジックはどうだろうか? 実は、この2つはForce.comにおける簡単な開発ではほとんど利用する機会はない。例えば、作成したオブジェクトのレコードの登録や編集を行うマスター管理機能はどのWebアプリケーションにも必須だろう。通常の開発ならば、マスター管理画面は原則としてプログラマが別途作成する必要がある。しかし、Force.comではオブジェクトの作成が完了した時点で一般的なマスター管理画面で必要な一通りの機能が用意される。
また、これらのデータを集計・分析してグラフを作成したければ、「レポート」機能を使えばよい。いずれも、今までのWebアプリケーションの開発手法に比べて非常に簡単な作業であるため、開発の経験がほとんどない初心者でも取り組みやすい。
Javaライクの言語で高度な開発にも対応
このように、Force.comでは大抵のことはGUIで開発できるが、より高度で特殊な処理を行う場合には、Force.com独自のプログラム言語である「Apex」を利用することで対処する。
独自のプログラム言語と言うと、難解そうに聞こえるかもしれない。しかし、Apexは基本的な文法などは既存のJava言語を踏襲している。このため、Java言語を習得している人であれば抵抗なくなじめる。実際、セールスフォース・ドットコムの言語マニュアルにも「詳細はJavaのマニュアルを参照」と書かれている部分が何度も登場する(これ自体はやや手抜きとも言えるが)。
このApexで作成されたプログラムは、例えば「トリガ」と呼ぶ機能で利用する。これは、任意のオブジェクトにレコードが追加される際に、指定したApexを実行する機能である。これにより、任意のレコードに連動したレコードの操作や、入力値のバリデーション(入力審査)などを行える。
また、Force.comではユーザーインタフェースをGUIで自由に作成できるが、この作業で画面のレイアウトを変更できる範囲には限界がある。そこで、より自由度の高い画面を構築するには、「Visualforce」と呼ぶ機能を利用する(図4-4)。このVisualforceにおいて、画面デザインを自由にレイアウトするプログラムを「ページ」と呼び、Force.com独自のマークアップ言語 である「コンポーネントタグ」を利用して記述する。コンポーネントタグはHTML(ハイパー・テキスト・マークアップ・ランゲージ)に埋め込む形の言語で、使いこなしのハードルは決して高くない。
一方、コンポーネントタグで記述したページのバックグラウンドでは、ページの要求に応じて表示データを渡したり、ボタンを押された際に動作する内容を記述したりするプログラムが動く。このプログラムを「コントローラ」と呼び、Apexで記述する。
Visualforceは、アプリケーションを「Model」「View」「Controller」の3つに分けて開発するMVCフレームワークに準拠した構造になっている。とりわけ、ページとコントローラのこうした関係は、Webアプリケーション・フレームワークの「Teeda」などで利用されるページモデルと同じである。これらの点からも、Visualforceは従来からのWeb技術者にとって親しみやすい開発環境といえるだろう。
会員登録(無料)が必要です
- 1
- 2
- 次へ >