8. 付録¶
8.1. 主要クラスとシーケンス¶
8.2. Salesforce Streaming クライアントの動作仕様概要¶
Salesforce Streaming クライアントは Salesforce Streaming API を利用して、Salesforce データの変更通知を受け取る機能を提供します。
Salesforce Streaming API は次のような順序で動作します。
- Salesforceで SOQL に基づいて PushTopic を作成します。
- intra-mart Accel Platformで PushTopic を購読します。
- Salesforceでレコードの操作を行います。
- レコードの操作が SOQL の条件に合致した場合、 intra-mart Accel Platformへ変更が通知されます。
Salesforceは通知を送るのに Bayeuxプロトコル、CometD を利用したプッシュ技術を利用します。 詳細については 以下の URL を参照してください。
- Force.com ストリーミング API 開発者ガイド - Bayeux プロトコル、CometD、および long polling (日本語)
- Force.com Streaming API Developer Guide - Bayeux Protocol, CometD, and Long Polling (English)
8.2.1. Salesforce Streaming クライアント¶
Salesforce Streaming クライアントは「Salesforce Streaming Client Service」という名前の サービス仕様書 として動作します。この サービス仕様書 が Salesforceとの接続を維持するためのスレッドの生成や管理を行います。
「Salesforce Streaming Client Service」は1つのサーバで起動するサービスとして実装されています。複数のサーバ上で同時に起動することはありません。また、分散環境が構築されている場合はサービスが起動しているサーバが停止すると自動的にサービスの再選出が行われます。
サービス仕様書 の起動時やトピックをデータベースに登録すると サービス仕様書 は自身が管理するスレッドを生成します。
このスレッドは、データベースに登録されているトピックに対応する Salesforceの PushTopicチャネルを購読します。 セッション一覧に表示されるのはこのスレッドが保持する情報です。スレッドは Salesforceとの接続を維持するために long polling を利用します。