狠狠撸
Submit Search
Streaming API で実現する クラウド ? イントラ連携
?
1 like
?
1,042 views
Shinichi Tomita
Follow
1 of 14
Download now
Download to read offline
More Related Content
Streaming API で実現する クラウド ? イントラ連携
1.
Streaming API で実現する クラウド
イントラ連携 株式会社マッシュマトリックス 冨田 慎一
2.
Streaming API ? サーバでの更新がリアルタイムにクラ
イアントに通知される仕組み ? Spring ’12 からGA ? Bayeuxプロトコル - JavaScript(dojo, faye),Java,Ruby,Pythonなどのライ ブラリが利用可能
3.
何に使う? ? Salesforceは、TwitterやFacebookほど更 新が頻繁にはない ?
Chatterでも10分に一度のポーリング で十分なレベル ? 1分1秒は争わないことに対して開発 コストを掛けるか?
4.
名前にだまされない ? “Streaming” はそんなに重要じゃない ?
サーバ クライアント “Push” が重要
5.
Force.comでのその他の通知 ?
HTTPアウトバウンド系 - アウトバウンドメッセージ (ワークフロー)、 HTTP Callout (Apex) ? 電子メール系 - メールアラート(ワークフロー)、Outbound Email (Apex) ? APIポーリング
6.
Streaming API ?
Firewallの影響を受けない (× HTTPアウトバウンド) ? 通信はHTTPを利用、接続はクライアントから ? リアルタイムな通知 (× 電子メール、APIポーリング) ? サーバリソースの利用負荷が低い (× APIポーリング)
7.
构成
リクエスト レスポンス リソース サーバ (Javascript, Java, Ruby, Streaming Streaming Python, etc...) リクエスト クライアント
8.
フロー ?
メッセージやり取り用のカスタムオブジェクトを作成 - リクエストメッセージとレスポンスメッセージを項目として持つ ? リクエスト側のTopicとリソース側のTopicを用意 ? リクエストを送信する時はSオブジェクトに行を作成 ? リソース側にリクエストメッセージが通知 ? 同リクエストのレスポンスとしてSオブジェクトの行を更新 ? リクエスト側にレスポンスメッセージが通知
9.
Apexからの利用 ? ResponseListenerインターフェースを実 装したオブジェクトを登録
- リクエストメッセージとともにオブジェク トもシリアライズされる ? レスポンス到着時にトリガ経由でオブ ジェクトのメソッドが呼び戻される
10.
コード例 public class LeadFaceCapture
{ public static void startCapture(Id id) { SecureConnect.ResponseListener listener = new LeadFaceCaptureResponseListener(id); SecureConnect.request('capture', null, listener); } public class LeadFaceCaptureResponseListener implements SecureConnect.ResponseListener { Id id; public LeadFaceCaptureResponseListener(Id id) { this.id = id; } public void onResponse(String responseCode, String responseData) { if (responseCode == 'captureImage') { String data = (String) JSON.deserialize(responseData, String.class); Attachment attch = new Attachment(); attch.ParentId = this.id; attch.Name = 'Captured Image'; attch.Body = EncodingUtil.base64decode(data.substring(23)); insert attch; Lead lead = new Lead(Id=this.id); lead.CaptureImageId__c = attch.Id; update lead; } } public Type getClassType() { return LeadFaceCaptureResponseListener.class; } } }
11.
Demo
12.
利用例 ? レコード更新
イントラ内のDBを検索 しオンデマンドでアップデート(事前 同期不要) ? モバイルから社内文書を検索?閲覧 ? イントラ内DBとのマッシュアップ
13.
Node-Salesforce ? Streaming APIにも対応した
Node.jsでのSalesforceクライアントライ ブラリ ? github.com/stomita/node-salesforce
14.
おわり
Download now