`
lukeshei
  • 浏览: 387697 次
  • 性别: Icon_minigender_1
  • 来自: 台北
社区版块
存档分类
最新评论

[微程式-技術研討會] 8月研討會 - BOTH - 主講人:znul

阅读更多

[微程式-技術研討會] 8月研討會 - Bidirectional-streams Over Synchronous HTTP (BOSH) - 主講人:znul

 

Bidirectional-streams Over Synchronous HTTP (BOSH)

網址: http://www.xmpp.org/extensions/xep-0124.html

一何謂bosh?
雙向性的Http串流,利用http protocol post transport xmpp stream

二why http protocol?
一般防火牆都會允許tcp 80 prot 的對外窗口,某些少數的防火牆甚至允許任何的通訊協定通過這個port,
但是更多的proxy,filter 會確認通過的串流是否為http

三技術名詞
1pull: client use http request from server,是一種以網路為基礎的溝通方法
2 push: server response data to client,是一種以網路為基礎的溝通方法,server主動將資料傳給client

四compare other bidirectional http-base transport protocol
1http polling :週期性的詢問server是否有資料
2 ajax(Asynchronous JavaScript and XML)
3 comet :是長時間連線要求的web 應用的模式,server在有資料要傳送時透過此連線push資料至用戶端.
利用ajax with long polling or iframe or htmlfile activex 的技術去探測server是否有新的訊息
4bosh:採用多個http request / response 對,非polling,自稱可高效率低延遲的傳輸訊息及節省網路頻寬

五要求
1相容於受約束的執行環境(如行動電話或流覽器的用戶端)**.
2可以讓流覽器的用戶端建立跨網域的連接*
3相容部份緩衝的http代理回應*
4有效率的通過http回應時間限制的代理*
5完全相容http 1.0*
6相容受限的網路連線(如防火牆.代理.閘道)
7容錯性
8擴展性
9使用的頻寬遠低於輪詢機制的protocols
10回應的時間遠低於輪詢機制的protocols
11支援輪詢
12按順序傳送資料
13防止未經許可的使用者插入http request
14防止拒絕服務攻擊15多工的資料串流
*為comet無法做到的

六架構 Server [unwrapped data streams] Connection Manager (specialized HTTP server) BOSH [HTTP + <body/> wrapper] HTTP Client

六bosh原理(connection manager以下稱cm)
Client 傳送一個http請求,cm並不馬上回應,直到有資料要傳回cleint端,client端收到回應後,馬上又發送另一個
http請求,以確保cm隨時保持一個請求的連線,使之能push資料給client
在cm hold請求的同時,client端又有資料要傳送,此時需要發起第二個http請求,傳送資料,但一般的http client
並不支援管線(在同個連線發起多個請求),所以必須建立第二個http 連線發起第二個請求,此時cm不管是否
有無資料必須回應第一個http請求給client端,cm這麼做可確保client端有資料需傳送時可隨時發起第二個
請求(client不能同時開啟兩個以上的 http連線,不然就是要等cm回應第一個請求)
在網路環境良好的情況下,client可使用http 1.1,所有的請求是透過兩個持續的http連線,當cm從其中一個
連線Push資料時,client端也可透過另一個連線push資料(所以回應速度會跟一般的TCP連線差不多),要注意
的是,這兩個連線的角色,client每傳送一資料,就互換一次
若雙方在特定的時間內都沒有資料傳輸,那麼 cm傳回一個空值的回應,此時將觸發client發起另一個新的
請求,Cm藉此判斷在特定時間內連線是否中斷,這種交流就像"keep-alive" or "ping"等方法的實踐,因為BOSH
不涉及Polling,所以頻寬的消耗不會大於一般的TCP連線
在通常的情況下,數据可立即推送,不過,若其中一個端點剛推送了資料,那麼必須等待一個網路往返的時間
才可再次推送資料,若client端支援管線,那麼多個連線並行是可行的,因此client可隨時傳送資料,也可確保cm
隨時hold足夠的請求,若cm的請求連線集區夠大的話,client也不用對返回的空值回應,立即發送一個空的請求,
而是等到有資料時再發送請求,因此若client與流量是均衡的話,就像是使用一個標準的TCP連線
Cm的每個資料推送,都是一個標準的http response,因此不像commet技術,bosh可以2,3,4,5


九.參考文件
<a href="http://www.xmpp.org/extensions/xep-0124.html">http://www.xmpp.org/extensions/xep-0124.html</a>
<a href="http://www.xmpp.org/extensions/xep-0025.html">http://www.xmpp.org/extensions/xep-0025.html</a>
<a href="http://en.wikipedia.org/wiki/Comet_(programming)">http://en.wikipedia.org/wiki/Comet_(programming)</a>
<a href="http://www.ibm.com/developerworks/cn/web/wa-lo-comet/">http://www.ibm.com/developerworks/cn/web/wa-lo-comet/</a>

分享到:
评论

相关推荐

    Oracle合作伙伴技术研讨会开场致辞2011年2月28日

    ### Oracle合作伙伴技术研讨会知识点概述 #### 一、研讨会概况及目的 - **研讨会名称**:“Oracle合作伙伴技术研讨会” - **时间**:2011年2月28日 - **目标受众**:面向广大Oracle的合作伙伴中的资深开发者、...

    HRflag-网络研讨会行动指南-2020.rar

    《HRflag-网络研讨会行动指南-2020》是一份专为人力资源专业人士设计的实用指导文档,旨在帮助他们在数字化时代有效地组织和管理网络研讨会。这份压缩包包含了一个名为"HRflag-网络研讨会行动指南-2020.pdf"的PDF...

    台达在起重行业的应用--研讨会资料.zip

    8. **未来趋势**:作为研讨会的一部分,台达可能会分享对未来起重机行业自动化发展的洞察,以及其产品和技术如何适应这些趋势。 9. **互动与问答**:虽然PDF文档无法体现,但通常研讨会会有提问和讨论环节,可能...

    小程序-X-零售行业应用-闭门研讨会内容简报-胖鲸智库-201905.pdf

    小程序-X-零售行业应用-闭门研讨会内容简报-胖鲸智库-201905.pdf

    2-BLM研讨会会前准备盘点.xlsx

    2-BLM研讨会会前准备盘点

    personal-page-css-workshop:通过研讨会学习 CSS 并创建个人网站

    CSS Workshop - 个人页面在本次研讨会中,我们将创建一个个人网站。 在上一个练习结束时,我们将有一个完整的网站:先决条件参加本次研讨会需要学习基本的 CSS 课程。 作为技术,我们将使用 CSS 并专注于 。技术要求...

    精品戴敏华-智慧供应链人才培养解决方案-广州研讨会.rar

    《智慧供应链人才培养解决方案-广州研讨会》是一份针对当今数字化转型浪潮中,供应链管理领域所面临的挑战与机遇而设计的精品资料。本资料由戴敏华精心编制,旨在为业界专家、学者及企业决策者提供一个深入探讨和...

    Kinetis ARM Cortex-M4 微处理器在线研讨会资料

    ### Kinetis ARM Cortex-M4 微处理器在线研讨会知识点总结 #### 一、ARM Cortex-M4 处理器概述 **ARM Cortex-M4** 是一款先进的32位微处理器内核,它结合了低功耗架构与高性能计算能力。该处理器内核专为嵌入式...

    电子-2013STM32研讨会安排.pdf

    - STM32研讨会是一场全国巡回的技术研讨会,旨在推广STM32产品系列并介绍最新技术。 - 2013年的STM32巡回研讨会涉及了12个城市,这表明该研讨会在全国范围内具有广泛的影响力和参与度。 2. STM32产品系列 - STM...

    参考资料-每日联络会和月初研讨会规定.zip

    文档“每日联络会和月初研讨会规定.doc”是一个关于在IT行业中如何有效组织和管理团队沟通的重要参考资料。在IT领域,良好的沟通是项目成功的关键因素,无论是对于日常协作还是月度战略规划,都需要清晰、准确的信息...

    HRflag-网络研讨会行动指南-2020.pdf

    HRflag-网络研讨会行动指南-2020.pdf

    cpp-ModernfuzzingofCCProjects研讨会的材料

    "Modern fuzzing of C/C++ Projects"研讨会聚焦于如何利用现代fuzzing技术来提高C/C++项目的安全性与稳定性。在这个研讨会上,参与者将学习如何利用libFuzzer这样的工具进行有效的模糊测试。 【描述】 这个研讨会...

    ERP核心技术研讨会--关于BOM

    ERP核心技术研讨会--关于BOM 重点介绍BOM的地位,作用,分类。 BOM非常重要。

    3-BLM研讨会议程(一天版).xlsx

    3-BLM研讨会议程(一天版).xlsx

    matlab-09cdc研讨会资料

    ### MATLAB-09CDC研讨会资料知识点解析 #### 标题:MATLAB-09CDC研讨会资料 - **背景介绍**:这份资料源自2009年12月于IEEE的控制决策与控制会议(CDC)上举行的MATLAB研讨会。该研讨会主要介绍了MATLAB及其相关...

    geotop-a-2.0:GEOTOP-A研讨会网页的第二版

    《GEOTOP-A研讨会网页第二版——探索JavaScript在几何与拓扑应用中的奥秘》 在信息技术领域,JavaScript作为一门广泛使用的脚本语言,扮演着不可或缺的角色。在"geotop-a-2.0: GEOTOP-A研讨会网页的第二版"这个项目...

    PMBOK 第5版 ITTO记忆口诀

    - 引导式研讨会 - 群体创新技术 - 群体决策技术 - 问卷调查 - 观察 - 原型法 - 标杆 - 系统交互图 - 文件分析 - 口诀:章程计划找业组,专家会议两计划。 - 理解:需求收集需遵循事先规划的范围、需求和...

    2021第二十六届中国(国际)小电机暨机器人技术研讨会.pdf

    【标题】2021第二十六届中国(国际)小电机暨机器人技术研讨会.pdf 【描述】该研讨会是中国电机和机器人技术领域的一项重要活动,旨在推动行业内的学术交流和技术进步。 【标签】 1. 机器人 - 研讨会涵盖了机器人...

Global site tag (gtag.js) - Google Analytics