SlideShare una empresa de Scribd logo
1 de 9
Descargar para leer sin conexión
Cloud-to-Intranet messaging
by Force.com Streaming API

        Shinichi Tomita
           @stomita
        Mashmatrix, Inc.
Cloud-to-Intranet
messaging in Force.com
•   HTTP callout / Outbound Messaging
    -   Open inbound HTTP port on firewall
        (Almost impossible for usual companies)
•   API Polling
    -   Not realtime / Consumes a lot of API quotas
•   Force.com Streaming API
    -   No need to open inbound port on firewall
    -   Almost realtime
Force.com Streaming API
• Enables push notification from Server
  to subscribed client(s)
• GA in Spring ’12
• Standard based (Bayeux protocol)
 - Client libraries available in various
    languages
Message flow
   for generic request clients
1. SecureConnect request client creates a record which includes
   request message to Intranet resource server
2. Force.com publishes a notification to its request channel
   subscribers (= SecureConnect resource server)
3. Resource server processes the request and access to the
   resource data behind the firewall
4. Resource server returns response by updating the request
   record
5. Force.com publishes a notification to its response channel
   subscribers (= SecureConnect request client), and
   SecureConnect request client receives response
Message flow
 for generic request clients

                                                3. resource
                                                  accesss

                                4. response
                  1. request

                                                  Resource
                                                   Server

                 5. Streaming    2. Streaming
Request Client
Callout from Apex
• On submitting request, register an object
  which implements ResponseListener
  interface
  -   Both request message and response listener
      object are serialized and inserted as a record

• Registered response listener is callbacked
  by Apex trigger when the response arrived
Callout from Apex

                                              3. resource
                                                access
                               4. response
                 1. request
 Apex Class

                                                 Resource
  Response
   Listener       5. trigger                      Server
                               2. Streaming
Request Client
Sample code
/**
 * An example client which link opportunity information to intranet system via SecureConnect
 */
public class OpportunitySynchronizer {

	   public static void linkToExternalSystem(Opportunity opp) {
	   	    String oppJson = JSON.serialize(opp);
	   	    SecureConnect.request('opps/link', opp.Id, new PropagateResponseListener(opp.Id));
	   }
	
	   /**
	     * Callbacked when the response arrived from intranet server
	     */
	   public class LinkResponseListener implements SecureConnect.ResponseListener {
	   	     public Id oppId { get; set; }

	   	    public LinkResponseListener(Id oppId) {
	   	    	    this.oppId = oppId;
	   	    }

    	    	public Type getClassType() {
    		        	return LinkResponseListener.class;
    	    	}
    	
    	    	public void onResponse(String responseCode, String responseData) {
    		        	if (responseCode == 'success') {
	        		        	String extId = responseData;
	        		        	Opportunity opp = new Opportunity(Id=this.oppId, ExtId__c=extId);
	        		        	update opp;
    		        	}
	        	}
    	}
}
Project on GitHub

• http://github.com/stomita/fdc-secureconnect

Más contenido relacionado

Destacado

Peoplelink Videoconference
Peoplelink VideoconferencePeoplelink Videoconference
Peoplelink VideoconferenceRenju7
 
Engaging lawyers in a social intranet
Engaging lawyers in a social intranetEngaging lawyers in a social intranet
Engaging lawyers in a social intranetVanessa Toholka
 
Building intranet applications with ASP.NET AJAX and jQuery
Building intranet applications with ASP.NET AJAX and jQueryBuilding intranet applications with ASP.NET AJAX and jQuery
Building intranet applications with ASP.NET AJAX and jQueryAlek Davis
 
Intranets In The Cloud: What You Need To Know - SPSToronto
Intranets In The Cloud: What You Need To Know - SPSTorontoIntranets In The Cloud: What You Need To Know - SPSToronto
Intranets In The Cloud: What You Need To Know - SPSTorontoRichard Harbridge
 
Intranet mailing system
Intranet mailing systemIntranet mailing system
Intranet mailing systemsaili mane
 
Intranet Mailing System Rahul Raj
Intranet Mailing System Rahul RajIntranet Mailing System Rahul Raj
Intranet Mailing System Rahul Rajvishnu56
 

Destacado (9)

GLOBAL CLIMATE CHANGE
GLOBAL CLIMATE CHANGEGLOBAL CLIMATE CHANGE
GLOBAL CLIMATE CHANGE
 
Intranet Files Sharing Communication -Antony Vincent Sacred Heart College
Intranet Files Sharing Communication -Antony Vincent Sacred Heart CollegeIntranet Files Sharing Communication -Antony Vincent Sacred Heart College
Intranet Files Sharing Communication -Antony Vincent Sacred Heart College
 
Peoplelink Videoconference
Peoplelink VideoconferencePeoplelink Videoconference
Peoplelink Videoconference
 
Engaging lawyers in a social intranet
Engaging lawyers in a social intranetEngaging lawyers in a social intranet
Engaging lawyers in a social intranet
 
Building intranet applications with ASP.NET AJAX and jQuery
Building intranet applications with ASP.NET AJAX and jQueryBuilding intranet applications with ASP.NET AJAX and jQuery
Building intranet applications with ASP.NET AJAX and jQuery
 
Intranets In The Cloud: What You Need To Know - SPSToronto
Intranets In The Cloud: What You Need To Know - SPSTorontoIntranets In The Cloud: What You Need To Know - SPSToronto
Intranets In The Cloud: What You Need To Know - SPSToronto
 
Intranet mailing system
Intranet mailing systemIntranet mailing system
Intranet mailing system
 
Intranet Mailing System Rahul Raj
Intranet Mailing System Rahul RajIntranet Mailing System Rahul Raj
Intranet Mailing System Rahul Raj
 
Slideshare ppt
Slideshare pptSlideshare ppt
Slideshare ppt
 

Similar a Cloud-to-Intranet messaging by Force.com Streaming API

CIS 2012 - Going Mobile with PingFederate and OAuth 2
CIS 2012 - Going Mobile with PingFederate and OAuth 2CIS 2012 - Going Mobile with PingFederate and OAuth 2
CIS 2012 - Going Mobile with PingFederate and OAuth 2scotttomilson
 
Performance #4 network
Performance #4  networkPerformance #4  network
Performance #4 networkVitali Pekelis
 
Android graphic system (SurfaceFlinger) : Design Pattern's perspective
Android graphic system (SurfaceFlinger) : Design Pattern's perspectiveAndroid graphic system (SurfaceFlinger) : Design Pattern's perspective
Android graphic system (SurfaceFlinger) : Design Pattern's perspectiveBin Chen
 
Networked APIs with swift
Networked APIs with swiftNetworked APIs with swift
Networked APIs with swiftTim Burks
 
JWT - Sécurisez vos APIs
JWT - Sécurisez vos APIsJWT - Sécurisez vos APIs
JWT - Sécurisez vos APIsAndré Tapia
 
Sécurisation de vos applications web à l’aide du composant Security de Symfony
Sécurisation de vos applications web  à l’aide du composant Security de SymfonySécurisation de vos applications web  à l’aide du composant Security de Symfony
Sécurisation de vos applications web à l’aide du composant Security de SymfonyVladyslav Riabchenko
 
Winning the Lottery with Spring: A Microservices Case Study for the Dutch Lot...
Winning the Lottery with Spring: A Microservices Case Study for the Dutch Lot...Winning the Lottery with Spring: A Microservices Case Study for the Dutch Lot...
Winning the Lottery with Spring: A Microservices Case Study for the Dutch Lot...VMware Tanzu
 
Beyond API Authorization
Beyond API AuthorizationBeyond API Authorization
Beyond API AuthorizationJared Hanson
 
Api testing bible using postman
Api testing bible using postmanApi testing bible using postman
Api testing bible using postmanAbhishek Saxena
 
OAuth 2.0 and Mobile Devices: Is that a token in your phone in your pocket or...
OAuth 2.0 and Mobile Devices: Is that a token in your phone in your pocket or...OAuth 2.0 and Mobile Devices: Is that a token in your phone in your pocket or...
OAuth 2.0 and Mobile Devices: Is that a token in your phone in your pocket or...Brian Campbell
 
HTTP Protocol Basic
HTTP Protocol BasicHTTP Protocol Basic
HTTP Protocol BasicChuong Mai
 
DF12 - Process Orchestration using Streaming API and Heroku
DF12 - Process Orchestration using Streaming API and HerokuDF12 - Process Orchestration using Streaming API and Heroku
DF12 - Process Orchestration using Streaming API and Herokuafawcett
 
MS TechDays 2011 - WCF Web APis There's a URI for That
MS TechDays 2011 - WCF Web APis There's a URI for ThatMS TechDays 2011 - WCF Web APis There's a URI for That
MS TechDays 2011 - WCF Web APis There's a URI for ThatSpiffy
 

Similar a Cloud-to-Intranet messaging by Force.com Streaming API (20)

CIS 2012 - Going Mobile with PingFederate and OAuth 2
CIS 2012 - Going Mobile with PingFederate and OAuth 2CIS 2012 - Going Mobile with PingFederate and OAuth 2
CIS 2012 - Going Mobile with PingFederate and OAuth 2
 
RESTing with JAX-RS
RESTing with JAX-RSRESTing with JAX-RS
RESTing with JAX-RS
 
Android Programming
Android ProgrammingAndroid Programming
Android Programming
 
Performance #4 network
Performance #4  networkPerformance #4  network
Performance #4 network
 
Android graphic system (SurfaceFlinger) : Design Pattern's perspective
Android graphic system (SurfaceFlinger) : Design Pattern's perspectiveAndroid graphic system (SurfaceFlinger) : Design Pattern's perspective
Android graphic system (SurfaceFlinger) : Design Pattern's perspective
 
Servlet
ServletServlet
Servlet
 
Proxy pattern
Proxy patternProxy pattern
Proxy pattern
 
Proxy pattern
Proxy patternProxy pattern
Proxy pattern
 
Networked APIs with swift
Networked APIs with swiftNetworked APIs with swift
Networked APIs with swift
 
JWT - Sécurisez vos APIs
JWT - Sécurisez vos APIsJWT - Sécurisez vos APIs
JWT - Sécurisez vos APIs
 
RMI (Remote Method Invocation)
RMI (Remote Method Invocation)RMI (Remote Method Invocation)
RMI (Remote Method Invocation)
 
Sécurisation de vos applications web à l’aide du composant Security de Symfony
Sécurisation de vos applications web  à l’aide du composant Security de SymfonySécurisation de vos applications web  à l’aide du composant Security de Symfony
Sécurisation de vos applications web à l’aide du composant Security de Symfony
 
Winning the Lottery with Spring: A Microservices Case Study for the Dutch Lot...
Winning the Lottery with Spring: A Microservices Case Study for the Dutch Lot...Winning the Lottery with Spring: A Microservices Case Study for the Dutch Lot...
Winning the Lottery with Spring: A Microservices Case Study for the Dutch Lot...
 
Beyond API Authorization
Beyond API AuthorizationBeyond API Authorization
Beyond API Authorization
 
Api testing bible using postman
Api testing bible using postmanApi testing bible using postman
Api testing bible using postman
 
OAuth 2.0 and Mobile Devices: Is that a token in your phone in your pocket or...
OAuth 2.0 and Mobile Devices: Is that a token in your phone in your pocket or...OAuth 2.0 and Mobile Devices: Is that a token in your phone in your pocket or...
OAuth 2.0 and Mobile Devices: Is that a token in your phone in your pocket or...
 
HTTP Protocol Basic
HTTP Protocol BasicHTTP Protocol Basic
HTTP Protocol Basic
 
DF12 - Process Orchestration using Streaming API and Heroku
DF12 - Process Orchestration using Streaming API and HerokuDF12 - Process Orchestration using Streaming API and Heroku
DF12 - Process Orchestration using Streaming API and Heroku
 
MS TechDays 2011 - WCF Web APis There's a URI for That
MS TechDays 2011 - WCF Web APis There's a URI for ThatMS TechDays 2011 - WCF Web APis There's a URI for That
MS TechDays 2011 - WCF Web APis There's a URI for That
 
Cache poisoning
Cache poisoningCache poisoning
Cache poisoning
 

Más de Shinichi Tomita

SalesforceでのモダンSPA開発(Mashmatrix ”Sheet"の場合)
SalesforceでのモダンSPA開発(Mashmatrix ”Sheet"の場合)SalesforceでのモダンSPA開発(Mashmatrix ”Sheet"の場合)
SalesforceでのモダンSPA開発(Mashmatrix ”Sheet"の場合)Shinichi Tomita
 
SalesforceからAWSへの接続 using OIDC/SAML
SalesforceからAWSへの接続 using OIDC/SAMLSalesforceからAWSへの接続 using OIDC/SAML
SalesforceからAWSへの接続 using OIDC/SAMLShinichi Tomita
 
Developing SLDS Apps with React.js
Developing SLDS Apps with React.jsDeveloping SLDS Apps with React.js
Developing SLDS Apps with React.jsShinichi Tomita
 
Spring'15 Update - Named Credential & Long Running Callout
Spring'15 Update - Named Credential & Long Running CalloutSpring'15 Update - Named Credential & Long Running Callout
Spring'15 Update - Named Credential & Long Running CalloutShinichi Tomita
 
スマートデバイス×HTML5で
 企業情報システムはどう変わる? ~最新動向から考えるエンタープライズWebの現在と未来~
スマートデバイス×HTML5で
 企業情報システムはどう変わる? ~最新動向から考えるエンタープライズWebの現在と未来~スマートデバイス×HTML5で
 企業情報システムはどう変わる? ~最新動向から考えるエンタープライズWebの現在と未来~
スマートデバイス×HTML5で
 企業情報システムはどう変わる? ~最新動向から考えるエンタープライズWebの現在と未来~Shinichi Tomita
 
Summer'14 Update - What's new in Force.com Canvas -
Summer'14 Update - What's new in Force.com Canvas -Summer'14 Update - What's new in Force.com Canvas -
Summer'14 Update - What's new in Force.com Canvas -Shinichi Tomita
 
アイデンティティ2.0とOAuth/OpenID Connect
アイデンティティ2.0とOAuth/OpenID Connectアイデンティティ2.0とOAuth/OpenID Connect
アイデンティティ2.0とOAuth/OpenID ConnectShinichi Tomita
 
モバイルBaaSの概観と最新動向(2014版)
モバイルBaaSの概観と最新動向(2014版)モバイルBaaSの概観と最新動向(2014版)
モバイルBaaSの概観と最新動向(2014版)Shinichi Tomita
 
シングルサインオンの歴史とSAMLへの道のり
シングルサインオンの歴史とSAMLへの道のりシングルサインオンの歴史とSAMLへの道のり
シングルサインオンの歴史とSAMLへの道のりShinichi Tomita
 
モバイルBaaSの概観と最新動向 (2013/6/7)
モバイルBaaSの概観と最新動向 (2013/6/7)モバイルBaaSの概観と最新動向 (2013/6/7)
モバイルBaaSの概観と最新動向 (2013/6/7)Shinichi Tomita
 
(M)BaaS and Enterprise Mobile Applications
(M)BaaS and Enterprise Mobile Applications(M)BaaS and Enterprise Mobile Applications
(M)BaaS and Enterprise Mobile ApplicationsShinichi Tomita
 
モバイルHTML5サイトでの写真アップロードの最適化と業務アプリへの適用
モバイルHTML5サイトでの写真アップロードの最適化と業務アプリへの適用モバイルHTML5サイトでの写真アップロードの最適化と業務アプリへの適用
モバイルHTML5サイトでの写真アップロードの最適化と業務アプリへの適用Shinichi Tomita
 
クラウド・スマートデバイス事例調査報告
クラウド・スマートデバイス事例調査報告クラウド・スマートデバイス事例調査報告
クラウド・スマートデバイス事例調査報告Shinichi Tomita
 
Sales Force Episode VI ~ Return of Ajax Toolkit ~
Sales Force Episode VI ~ Return of Ajax Toolkit ~Sales Force Episode VI ~ Return of Ajax Toolkit ~
Sales Force Episode VI ~ Return of Ajax Toolkit ~Shinichi Tomita
 
Herokuで動かす スクリーンショットサーバ
Herokuで動かす スクリーンショットサーバHerokuで動かす スクリーンショットサーバ
Herokuで動かす スクリーンショットサーバShinichi Tomita
 
Force.com とか @ PaaS祭り
Force.com とか @ PaaS祭りForce.com とか @ PaaS祭り
Force.com とか @ PaaS祭りShinichi Tomita
 
Streaming API で実現する クラウド ⇔ イントラ連携
Streaming API で実現する クラウド ⇔ イントラ連携Streaming API で実現する クラウド ⇔ イントラ連携
Streaming API で実現する クラウド ⇔ イントラ連携Shinichi Tomita
 
Phantomjs Screenshot Server on Heroku
Phantomjs Screenshot Server on HerokuPhantomjs Screenshot Server on Heroku
Phantomjs Screenshot Server on HerokuShinichi Tomita
 

Más de Shinichi Tomita (20)

SalesforceでのモダンSPA開発(Mashmatrix ”Sheet"の場合)
SalesforceでのモダンSPA開発(Mashmatrix ”Sheet"の場合)SalesforceでのモダンSPA開発(Mashmatrix ”Sheet"の場合)
SalesforceでのモダンSPA開発(Mashmatrix ”Sheet"の場合)
 
SalesforceからAWSへの接続 using OIDC/SAML
SalesforceからAWSへの接続 using OIDC/SAMLSalesforceからAWSへの接続 using OIDC/SAML
SalesforceからAWSへの接続 using OIDC/SAML
 
Developing SLDS Apps with React.js
Developing SLDS Apps with React.jsDeveloping SLDS Apps with React.js
Developing SLDS Apps with React.js
 
Spring'15 Update - Named Credential & Long Running Callout
Spring'15 Update - Named Credential & Long Running CalloutSpring'15 Update - Named Credential & Long Running Callout
Spring'15 Update - Named Credential & Long Running Callout
 
スマートデバイス×HTML5で
 企業情報システムはどう変わる? ~最新動向から考えるエンタープライズWebの現在と未来~
スマートデバイス×HTML5で
 企業情報システムはどう変わる? ~最新動向から考えるエンタープライズWebの現在と未来~スマートデバイス×HTML5で
 企業情報システムはどう変わる? ~最新動向から考えるエンタープライズWebの現在と未来~
スマートデバイス×HTML5で
 企業情報システムはどう変わる? ~最新動向から考えるエンタープライズWebの現在と未来~
 
Summer'14 Update - What's new in Force.com Canvas -
Summer'14 Update - What's new in Force.com Canvas -Summer'14 Update - What's new in Force.com Canvas -
Summer'14 Update - What's new in Force.com Canvas -
 
アイデンティティ2.0とOAuth/OpenID Connect
アイデンティティ2.0とOAuth/OpenID Connectアイデンティティ2.0とOAuth/OpenID Connect
アイデンティティ2.0とOAuth/OpenID Connect
 
モバイルBaaSの概観と最新動向(2014版)
モバイルBaaSの概観と最新動向(2014版)モバイルBaaSの概観と最新動向(2014版)
モバイルBaaSの概観と最新動向(2014版)
 
シングルサインオンの歴史とSAMLへの道のり
シングルサインオンの歴史とSAMLへの道のりシングルサインオンの歴史とSAMLへの道のり
シングルサインオンの歴史とSAMLへの道のり
 
Salesforce1最速経路
Salesforce1最速経路Salesforce1最速経路
Salesforce1最速経路
 
モバイルBaaSの概観と最新動向 (2013/6/7)
モバイルBaaSの概観と最新動向 (2013/6/7)モバイルBaaSの概観と最新動向 (2013/6/7)
モバイルBaaSの概観と最新動向 (2013/6/7)
 
(M)BaaS and Enterprise Mobile Applications
(M)BaaS and Enterprise Mobile Applications(M)BaaS and Enterprise Mobile Applications
(M)BaaS and Enterprise Mobile Applications
 
モバイルHTML5サイトでの写真アップロードの最適化と業務アプリへの適用
モバイルHTML5サイトでの写真アップロードの最適化と業務アプリへの適用モバイルHTML5サイトでの写真アップロードの最適化と業務アプリへの適用
モバイルHTML5サイトでの写真アップロードの最適化と業務アプリへの適用
 
クラウド・スマートデバイス事例調査報告
クラウド・スマートデバイス事例調査報告クラウド・スマートデバイス事例調査報告
クラウド・スマートデバイス事例調査報告
 
Sales Force Episode VI ~ Return of Ajax Toolkit ~
Sales Force Episode VI ~ Return of Ajax Toolkit ~Sales Force Episode VI ~ Return of Ajax Toolkit ~
Sales Force Episode VI ~ Return of Ajax Toolkit ~
 
Intro to JFDG
Intro to JFDGIntro to JFDG
Intro to JFDG
 
Herokuで動かす スクリーンショットサーバ
Herokuで動かす スクリーンショットサーバHerokuで動かす スクリーンショットサーバ
Herokuで動かす スクリーンショットサーバ
 
Force.com とか @ PaaS祭り
Force.com とか @ PaaS祭りForce.com とか @ PaaS祭り
Force.com とか @ PaaS祭り
 
Streaming API で実現する クラウド ⇔ イントラ連携
Streaming API で実現する クラウド ⇔ イントラ連携Streaming API で実現する クラウド ⇔ イントラ連携
Streaming API で実現する クラウド ⇔ イントラ連携
 
Phantomjs Screenshot Server on Heroku
Phantomjs Screenshot Server on HerokuPhantomjs Screenshot Server on Heroku
Phantomjs Screenshot Server on Heroku
 

Último

Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 

Último (20)

Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 

Cloud-to-Intranet messaging by Force.com Streaming API

  • 1. Cloud-to-Intranet messaging by Force.com Streaming API Shinichi Tomita @stomita Mashmatrix, Inc.
  • 2. Cloud-to-Intranet messaging in Force.com • HTTP callout / Outbound Messaging - Open inbound HTTP port on firewall (Almost impossible for usual companies) • API Polling - Not realtime / Consumes a lot of API quotas • Force.com Streaming API - No need to open inbound port on firewall - Almost realtime
  • 3. Force.com Streaming API • Enables push notification from Server to subscribed client(s) • GA in Spring ’12 • Standard based (Bayeux protocol) - Client libraries available in various languages
  • 4. Message flow for generic request clients 1. SecureConnect request client creates a record which includes request message to Intranet resource server 2. Force.com publishes a notification to its request channel subscribers (= SecureConnect resource server) 3. Resource server processes the request and access to the resource data behind the firewall 4. Resource server returns response by updating the request record 5. Force.com publishes a notification to its response channel subscribers (= SecureConnect request client), and SecureConnect request client receives response
  • 5. Message flow for generic request clients 3. resource accesss 4. response 1. request Resource Server 5. Streaming 2. Streaming Request Client
  • 6. Callout from Apex • On submitting request, register an object which implements ResponseListener interface - Both request message and response listener object are serialized and inserted as a record • Registered response listener is callbacked by Apex trigger when the response arrived
  • 7. Callout from Apex 3. resource access 4. response 1. request Apex Class Resource Response Listener 5. trigger Server 2. Streaming Request Client
  • 8. Sample code /** * An example client which link opportunity information to intranet system via SecureConnect */ public class OpportunitySynchronizer { public static void linkToExternalSystem(Opportunity opp) { String oppJson = JSON.serialize(opp); SecureConnect.request('opps/link', opp.Id, new PropagateResponseListener(opp.Id)); } /** * Callbacked when the response arrived from intranet server */ public class LinkResponseListener implements SecureConnect.ResponseListener { public Id oppId { get; set; } public LinkResponseListener(Id oppId) { this.oppId = oppId; } public Type getClassType() { return LinkResponseListener.class; } public void onResponse(String responseCode, String responseData) { if (responseCode == 'success') { String extId = responseData; Opportunity opp = new Opportunity(Id=this.oppId, ExtId__c=extId); update opp; } } } }
  • 9. Project on GitHub • http://github.com/stomita/fdc-secureconnect