intra-mart Accel Platform Salesforce 連携チュートリアルガイド 第2版 2021-04-01

8. 付録

8.1. 主要クラスとシーケンス

8.1.1. Salesforce連携

Salesforce 連携に関連する主なクラスのクラス図を下に示します。

../../_images/im_salesforce.cld.jpg

8.1.2. Salesforce Streaming クライアント

Salesforce Streaming クライアントに関連する主なクラスのクラス図を下に示します。

../../_images/im_salesforce_streaming.cld.jpg

8.1.3. アクセストークンの流れ

OAuth 認証の場合のシーケンス図を下に示します。

../../_images/oauth.sqd.png

パスワード認証の場合のシーケンス図を下に示します。

../../_images/password.sqd.png

8.1.4. 処理の流れ

Salesforce オブジェクト操作で CREATE を実行した際のシーケンス図を下に示します。

../../_images/post.sqd.png

8.2. Salesforce Streaming クライアントの動作仕様概要

Salesforce Streaming クライアントは Salesforce Streaming API を利用して、Salesforce データの変更通知を受け取る機能を提供します。

Salesforce Streaming API は次のような順序で動作します。

  1. Salesforceで SOQL に基づいて PushTopic を作成します。
  2. intra-mart Accel Platformで PushTopic を購読します。
  3. Salesforceでレコードの操作を行います。
  4. レコードの操作が SOQL の条件に合致した場合、 intra-mart Accel Platformへ変更が通知されます。

Salesforceは通知を送るのに Bayeuxプロトコル、CometD を利用したプッシュ技術を利用します。 詳細については 以下の URL を参照してください。

8.2.1. Salesforce Streaming クライアント

Salesforce Streaming クライアントは「Salesforce Streaming Client Service」という名前の サービス仕様書 として動作します。この サービス仕様書 が Salesforceとの接続を維持するためのスレッドの生成や管理を行います。

「Salesforce Streaming Client Service」は1つのサーバで起動するサービスとして実装されています。複数のサーバ上で同時に起動することはありません。また、分散環境が構築されている場合はサービスが起動しているサーバが停止すると自動的にサービスの再選出が行われます。

../../_images/service_list.png

サービス仕様書 の起動時やトピックをデータベースに登録すると サービス仕様書 は自身が管理するスレッドを生成します。

このスレッドは、データベースに登録されているトピックに対応する Salesforceの PushTopicチャネルを購読します。 セッション一覧に表示されるのはこのスレッドが保持する情報です。スレッドは Salesforceとの接続を維持するために long polling を利用します。

8.2.2. 状態遷移

スレッドが生成され Salesforceとの通信が確立するまで次のように状態が遷移します。

../../_images/start.acd.png

RUNNING の状態から停止するまでは次のように状態が遷移します。

../../_images/stop.acd.png