SlideShare a Scribd company logo
1 of 9
HTTP CALLBACK BRIDGE
Phoenix Su
現況
Clients Backend
Service
Ex: Web ServerEx: Desktop、Mobile
Request
Polling
現況
 優點:
 implement 容易,架構單純
 HTTP library 很普遍
 缺點:
 產生extra的connection/request (conditional get
可解,但仍然需要一次 request)
 不知 Backend 端資料是否改變,所以需要不斷
request or 設定 expire
Think about…
 如何知道Backend端資料已改變?
 資料改變時如何將資料送給 Clients 或通知
Clients 重抓資料?
 改成 Keep connection service 將Clients「黏」
住可以解決,但會不會改太大?
 在 Backend 到 Clients 端搭一座單向的橋,
是否可以通知 Clients 資料改變?
HTTP callback + bridge
Clients
Backend
Service
Ex: Web ServerEx: Desktop、Mobile
Request
黏住Clients
的 Service
Ex: Socket Server
CallbackNotify
HTTP callback + bridge
 Socket Server 對 Backend 以 HTTP request 方式做類似
註冊+Alive的動作
 例如 Socket Server 對Web Server 送出http://<Server
>/register? callback=http://<Server>/recv/userdata
 當有其他人透過Web Server 改變資料時,Web Server
就會呼叫 http://<Server>/recv/userdata?user=David
 Socket Server 便可以通知 David 的 Client 重新抓資料
需求
 bridge的角色需具備 HTTP service 的能力
(Socket Server orWeb Socket Server 皆有)
 Backend service 需 implement:
 Register
 Alive & Auto expire
 HTTP request to callback address
Question
 有多台 Backend 時
 Solution A: bridge 對每台 backend 皆註冊
 Solution B: Backend 共用一個 register/callback pool
 Solution C: Backend 之間可互相溝通,當某個 user
資料被改變時,通知所有提供相同服務的 Backend
Service
 只適用 Server to Server,不適用 Server to End
User
Optimize
 HTTP callback 的 timeout 越短越好
 HTTP callback 的單次傳送資訊越多越好,例如
http://<Server>/recv?user=David,Amy,James,Calvin
 HTTP callback 的動作要是 non-blocking 的

More Related Content

Similar to Http callback bridge

Java API for WebSocket 實作介紹
Java API for WebSocket 實作介紹Java API for WebSocket 實作介紹
Java API for WebSocket 實作介紹My own sweet home!
 
2018 LINE Tech Pulse 直通國際分享
2018 LINE Tech Pulse 直通國際分享2018 LINE Tech Pulse 直通國際分享
2018 LINE Tech Pulse 直通國際分享Jeremy Lin
 
http flood and mobile app
http flood and mobile apphttp flood and mobile app
http flood and mobile appim_yunshu
 
Usage Experience of Spring Cloud Eureka & OpenFeign
Usage Experience of Spring Cloud Eureka & OpenFeignUsage Experience of Spring Cloud Eureka & OpenFeign
Usage Experience of Spring Cloud Eureka & OpenFeignRhys Chang
 
Async programming-2014-08-22-pub
Async programming-2014-08-22-pubAsync programming-2014-08-22-pub
Async programming-2014-08-22-pubpersia cai
 
從SOA到REST -- Web Service、WCF、WebAPI的應用情境
從SOA到REST -- Web Service、WCF、WebAPI的應用情境從SOA到REST -- Web Service、WCF、WebAPI的應用情境
從SOA到REST -- Web Service、WCF、WebAPI的應用情境MIS2000 Lab.
 
20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性
20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性
20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性liu sheng
 
Power flow簡介
Power flow簡介Power flow簡介
Power flow簡介Sky Wu
 
移动时代端到端的稳定性保障经验谈
移动时代端到端的稳定性保障经验谈移动时代端到端的稳定性保障经验谈
移动时代端到端的稳定性保障经验谈Tang Fulin
 
​LINE 技術合作夥伴與應用分享
​LINE 技術合作夥伴與應用分享​LINE 技術合作夥伴與應用分享
​LINE 技術合作夥伴與應用分享LINE Corporation
 
2011 12 w5 information system note
2011 12 w5 information system note2011 12 w5 information system note
2011 12 w5 information system notejames_slide
 
twMVC#08 | Web API
twMVC#08 | Web APItwMVC#08 | Web API
twMVC#08 | Web APItwMVC
 
ASP.NET MVC Web API -twMVC#8
ASP.NET MVC Web API -twMVC#8ASP.NET MVC Web API -twMVC#8
ASP.NET MVC Web API -twMVC#8twMVC
 
twMVC#31網站上線了然後呢
twMVC#31網站上線了然後呢twMVC#31網站上線了然後呢
twMVC#31網站上線了然後呢twMVC
 
Res tful api design tw-2.0
Res tful api design tw-2.0Res tful api design tw-2.0
Res tful api design tw-2.0昀陞 李
 
Http协议介绍
Http协议介绍Http协议介绍
Http协议介绍Sanji Zhang
 
Hbase在淘宝的应用与优化 修改
Hbase在淘宝的应用与优化 修改Hbase在淘宝的应用与优化 修改
Hbase在淘宝的应用与优化 修改yp_fangdong
 

Similar to Http callback bridge (20)

Storage
StorageStorage
Storage
 
TA Lesson Web-109
TA Lesson Web-109TA Lesson Web-109
TA Lesson Web-109
 
Java API for WebSocket 實作介紹
Java API for WebSocket 實作介紹Java API for WebSocket 實作介紹
Java API for WebSocket 實作介紹
 
2018 LINE Tech Pulse 直通國際分享
2018 LINE Tech Pulse 直通國際分享2018 LINE Tech Pulse 直通國際分享
2018 LINE Tech Pulse 直通國際分享
 
http flood and mobile app
http flood and mobile apphttp flood and mobile app
http flood and mobile app
 
Usage Experience of Spring Cloud Eureka & OpenFeign
Usage Experience of Spring Cloud Eureka & OpenFeignUsage Experience of Spring Cloud Eureka & OpenFeign
Usage Experience of Spring Cloud Eureka & OpenFeign
 
Async programming-2014-08-22-pub
Async programming-2014-08-22-pubAsync programming-2014-08-22-pub
Async programming-2014-08-22-pub
 
從SOA到REST -- Web Service、WCF、WebAPI的應用情境
從SOA到REST -- Web Service、WCF、WebAPI的應用情境從SOA到REST -- Web Service、WCF、WebAPI的應用情境
從SOA到REST -- Web Service、WCF、WebAPI的應用情境
 
20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性
20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性
20120613联动优势数据访问层DAL架构和实践4(刘胜)最新特性
 
Power flow簡介
Power flow簡介Power flow簡介
Power flow簡介
 
移动时代端到端的稳定性保障经验谈
移动时代端到端的稳定性保障经验谈移动时代端到端的稳定性保障经验谈
移动时代端到端的稳定性保障经验谈
 
​LINE 技術合作夥伴與應用分享
​LINE 技術合作夥伴與應用分享​LINE 技術合作夥伴與應用分享
​LINE 技術合作夥伴與應用分享
 
2011 12 w5 information system note
2011 12 w5 information system note2011 12 w5 information system note
2011 12 w5 information system note
 
twMVC#08 | Web API
twMVC#08 | Web APItwMVC#08 | Web API
twMVC#08 | Web API
 
ASP.NET MVC Web API -twMVC#8
ASP.NET MVC Web API -twMVC#8ASP.NET MVC Web API -twMVC#8
ASP.NET MVC Web API -twMVC#8
 
Session1.pdf
Session1.pdfSession1.pdf
Session1.pdf
 
twMVC#31網站上線了然後呢
twMVC#31網站上線了然後呢twMVC#31網站上線了然後呢
twMVC#31網站上線了然後呢
 
Res tful api design tw-2.0
Res tful api design tw-2.0Res tful api design tw-2.0
Res tful api design tw-2.0
 
Http协议介绍
Http协议介绍Http协议介绍
Http协议介绍
 
Hbase在淘宝的应用与优化 修改
Hbase在淘宝的应用与优化 修改Hbase在淘宝的应用与优化 修改
Hbase在淘宝的应用与优化 修改
 

Http callback bridge

  • 2. 現況 Clients Backend Service Ex: Web ServerEx: Desktop、Mobile Request Polling
  • 3. 現況  優點:  implement 容易,架構單純  HTTP library 很普遍  缺點:  產生extra的connection/request (conditional get 可解,但仍然需要一次 request)  不知 Backend 端資料是否改變,所以需要不斷 request or 設定 expire
  • 4. Think about…  如何知道Backend端資料已改變?  資料改變時如何將資料送給 Clients 或通知 Clients 重抓資料?  改成 Keep connection service 將Clients「黏」 住可以解決,但會不會改太大?  在 Backend 到 Clients 端搭一座單向的橋, 是否可以通知 Clients 資料改變?
  • 5. HTTP callback + bridge Clients Backend Service Ex: Web ServerEx: Desktop、Mobile Request 黏住Clients 的 Service Ex: Socket Server CallbackNotify
  • 6. HTTP callback + bridge  Socket Server 對 Backend 以 HTTP request 方式做類似 註冊+Alive的動作  例如 Socket Server 對Web Server 送出http://<Server >/register? callback=http://<Server>/recv/userdata  當有其他人透過Web Server 改變資料時,Web Server 就會呼叫 http://<Server>/recv/userdata?user=David  Socket Server 便可以通知 David 的 Client 重新抓資料
  • 7. 需求  bridge的角色需具備 HTTP service 的能力 (Socket Server orWeb Socket Server 皆有)  Backend service 需 implement:  Register  Alive & Auto expire  HTTP request to callback address
  • 8. Question  有多台 Backend 時  Solution A: bridge 對每台 backend 皆註冊  Solution B: Backend 共用一個 register/callback pool  Solution C: Backend 之間可互相溝通,當某個 user 資料被改變時,通知所有提供相同服務的 Backend Service  只適用 Server to Server,不適用 Server to End User
  • 9. Optimize  HTTP callback 的 timeout 越短越好  HTTP callback 的單次傳送資訊越多越好,例如 http://<Server>/recv?user=David,Amy,James,Calvin  HTTP callback 的動作要是 non-blocking 的