SlideShare a Scribd company logo
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

PDF
Hello reactJS 0~1 Bulid my first web app
PDF
How to implement_the_async_db_calls_in_rails
PPTX
Replicate framework
PPTX
Scalable architecture
PPT
大型网站架构设计
PPT
Intro to REST
PPT
Intro to rest
PPT
Re Introduce Web Development
Hello reactJS 0~1 Bulid my first web app
How to implement_the_async_db_calls_in_rails
Replicate framework
Scalable architecture
大型网站架构设计
Intro to REST
Intro to rest
Re Introduce Web Development

Similar to Http callback bridge (20)

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

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 的