工做已有3個年頭了,本身作了一些SIP相關的應用開發和研究,在行業系統檢測和互聯實施中也遇到過很多問題,因而在這裏和你們分享一下心得體會,其中一些技術細節我也沒想得很周到,但願你們不吝批評指正。在此,我談及的SIP應用服務器,是指在RFC 3261及其相關協議的基礎上,擴展造成的GB/T 28181標準,該標準主要用於全國視頻監控系統的互聯。這裏,RFC 3261協議是IETF工做組針對SIP協議的官方文檔,其中詳細描述了SIP消息的格式、內容、會話、過程等元素,對開發SIP協議棧和應用服務有根本的指導意義。ORACLE公司的Oracle Communication Converged Application Server (OCCAS)等就是根據RFC 3261及其相關協議來設計開發的。這點和支持HTTP的協議棧相似。設計模式
做爲應用層(7層)的SIP協議,設計的初衷是協商,即信息的交換。所以,選用SIP協議來對其餘資源進行互聯和控制,例如,在GB/T 28181中,使用SIP來控制視音頻媒體流的傳輸(RTP和RTSP)。在GB/T 28181中,SIP協議最大的做用就是經過SDP幫助互聯繫統交換媒體流收發地址和端口以及在系統間控制媒體流的分發,從而知足全國監控視頻的共享和匯聚。此外,SIP協議在該國標中還承擔了其餘方面的通訊任務,可是,實際使用時存在必定的弊端,這在從此的文章中會詳細談到。服務器
總的來講,截止到2014年末,基於SIP協議的GB/T 28181幫助咱們完成了全國安防視頻的聯網工做,效果還不錯。所以,我也有些時間分享一下3年來的一些研發心得,和業內的技術人員交流。架構
在從此的文章中,我將陸續談及SIP應用服務的設計和開發的一些方面,涉及不一樣種類的技術和不一樣層面的問題。主要包括:
1. 基礎架構:設計模式、模塊組成、伸縮性與擴展性討論等等,這裏面會講到已實現的架構和技術,供你們參考。
2. 集羣構建: 解決高可用和可伸縮的問題,共享狀態數據,如何解決定時器問題等等。
3. 負載均衡:HTTP、SIP、媒體流等負載均衡技術
4. 開發技術:Maven、Spring、Hibernate等,根據具體的項目實踐討論。
5. 其餘:比較細節的一些技術問題、討論等等負載均衡
引文參考
1. IETF RFC 3261
2. GB/T 28181
3. Oracle Communication Converged Application Server (OCCAS) 商業版本SIP服務器
4. Mobicents 開源SIP協議棧
5. Kamoilio 開源SIP協議棧設計