Heroku Connect を使用した Salesforce と Heroku のインテグレーション
学習の目的
この単元を完了すると、次のことができるようになります。
- Heroku Connect アーキテクチャについて説明する。
- Salesforce と Heroku を Heroku Connect で統合する方法を説明する。
Heroku Connect
Heroku Connect は、データ複製とデータプロキシに使用できます。Heroku Connect は、素晴らしい Heroku Postgres データベースと併用します。Salesforce にデータを複製したり、Salesforce からこの SQL データベースにデータを複製したりするか、次の単元で説明する Salesforce Connect を使用して Heroku Postgres データベースから Salesforce にデータをプロキシできます。
Heroku Connect によるデータ複製は、Salesforce から Heroku Postgres への一方向にするか、双方向にすることができます。Heroku Postgres から Salesforce へのデータ複製は、リアルタイムではありませんが、ごく小さな遅延で実行されるように設定できます。指定した間隔で、または Salesforce ストリーミング API からの変更に応じてオンデマンドでポーリングを実行するように遅延を制御できます。
Heroku Connect では Heroku Postgres を使用するため、複製データではすべての標準データベース機能を使用できます。たとえば、Dataclips (Heroku アドオン) では、データを簡単に照会して、Web または CSV などの形式でクエリを共有できます。
Heroku Connect は一般的に B2C アプリケーションで使用して、Salesforce に保存されているデータを使用し、それを変更する可能性もあります。たとえば、膨らますことができるユニコーンパーティハットの商品カタログを Salesforce に保存しており、公開 Web サイトにそのカタログを表示するとします。Heroku Connect では、それを簡単に実行できます。商品データが Heroku Postgres データベースに複製され、公開サイトでそのデータに簡単にアクセスできるようになるのです。公開サイトは、Node.js、Java、PHP など、さまざまなオープンソーステクノロジーを利用して構築できます。Heroku Connect によるデータのインターフェースは、標準 SQL です。
この参照のみの使用事例は一般的ですが、Salesforce での更新も簡単です。たとえば、公開商品 Web サイトでユーザーが商品を「いいね!」と評価できる場合は、その情報を Salesforce に保存して、バックオフィスのセールスとマーケティングを支援できます。
Heroku Connect の使用開始
土曜日の夜に時間があったら、詳しい Heroku Connect のドキュメントで詳細を習得してください。土曜日の夜でなくても、どの曜日の夜でも結構です。
Heroku Connect は Heroku アドオンなので、プロビジョニングと設定は Heroku ダッシュボードで簡単に行うことができます。Heroku Connect を設定するには、OAuth を使用して Salesforce インスタンスに認証し、Heroku Connect が自分に代わって API コールを行うことを許可します。Heroku Connect はこの API 接続を使用して、Salesforce と Heroku Postgres データベースとの間でデータを同期します。
Heroku Connect を Heroku アプリケーション用にプロビジョニングしたら、データの同期方法および同期するデータを設定します。Salesforce とデータベースの対応付けを設定すると、アプリケーションは Heroku Postgres データベースに接続し、標準 SQL を使用してデータにアクセスできるようになります。
Heroku Connect アプリケーションアーキテクチャ
Heroku Connect を使用してデータを複製するときは、Salesforce がデータスキーマを所有します。対応付けに項目を追加するには、Salesforce でオブジェクトをカスタマイズしてから、Heroku Connect の対応付けを設定します。対応付けは、複数のオブジェクトに対して行うことができます。オブジェクト間でリレーションを対応付けることもでき、標準オブジェクトに関連するカスタムオブジェクトを Salesforce で作成できます。たとえば、商品の「いいね!」オブジェクトで取引先責任者と商品を照合できます。Heroku アプリケーションのみが、このオブジェクトと連絡を取ります。Salesforce のバックオフィスユーザーは、データにアクセスしてレポートやキャンペーンを行うことができます。
一般的に、Heroku アプリケーションに取り組む開発者にはローカル開発環境があり、そこには Heroku の環境が反映されます。ローカルの Postgres データベースでは Heroku Connect スキーマを簡単に作成して、自己完結型の開発環境を作成できます。Heroku 上の統合テストアプリケーションでは、一般的に Salesforce インスタンスに接続するため、Heroku Connect で同期したデータベースに対して開発者の変更をテストしてから、本番に移行できます。
Heroku Connect によって Salesforce と同期された Heroku Postgres データベースに接続することは、その他の Postgres データベースに接続することと何ら変わりはありません。データベースであることに変わりないのです。
データは Salesforce から複製されるため、Postgres に対してクエリを何回でも実行できますが、Salesforce からの読み取りは 1 回のみです (データが変更されるか、変更の定期チェックが行われるまで)。Heroku Postgres は Heroku アプリケーションのすぐ近くで動作するため、読み取りは非常に速く、遅延は小さくなります。
挿入と更新はすべて標準的な SQL ステートメントであり、対応付けの設定とスケジュールに従って Salesforce と同期されます。