在一套大型軟件的生命過程中,必然會有新需求不斷地涌現(xiàn)。有的需求會對原系統(tǒng)的沖擊非常大,甚至導致系統(tǒng)的一些關鍵代碼重新開發(fā)。如何面對這些大型軟件設計和開發(fā)過程的通用難題,始終是系統(tǒng)設計的重點和難點。
為了解決這些問題,在系統(tǒng)的設計中,采用了軟件分層設計策略,并且逐步從組件化過渡到服務化。
主要的軟件層有:
· 基礎庫層:解決跨平臺及一些基本的與具體應用無關的軟件問題;
· 網絡通信層:解決異質網絡、異質協(xié)議聯(lián)網問題;
· 數(shù)據(jù)層:解決軟件配置,持久化問題;
· 業(yè)務組件層:與業(yè)務和具體接入設備相關的功能組件,組件數(shù)量越來越多;
· SDK層:提供服務和接口給應用程序、做二次開發(fā);
· 綜合應用層:綜合應用和功能界面。
POSA(Pluggable Objects and Services Architecture)正是基于這樣的理念設計的一套軟件架構。在POSA架構的世界里,一切易變的、需要進化的軟件主要是組件。新需求、新設備的接入都體現(xiàn)為實現(xiàn)一個或一組新的組件,使用POSA組件技術,PVG做到了新需求的加入對開發(fā)人員僅僅是相加的關系。
由于組件和它們上下軟件層之間的二進制耦合太緊密,一個組件的崩潰會引發(fā)整個系統(tǒng)的崩潰,導致整個系統(tǒng)的穩(wěn)定性下降。解決這個問題有兩個辦法,一是手動地把不穩(wěn)定的組件隔離出來,專門為這類組件另外開一個進程,另外一個辦法是自動隔離每一個組件,一切以服務為中心,用服務代替組件,這也是軟件界流行的SOA的理念。在POSA架構下,開發(fā)軟件變得更簡單,各個服務之間使用標準的松耦合通信協(xié)議進行通信,徹底解決了二進制耦合問題,全系統(tǒng)穩(wěn)定性也不會隨著業(yè)務的增加變成乘法關系,由于相同服務可用分布式多重部署,全系統(tǒng)可用性完全不會隨著系統(tǒng)的復雜性而有所下降。在POSA里,提供了一種標準的描述服務間通信契約的方式,統(tǒng)一按照此契約編寫通信程序。同時,為了提高開發(fā)效率,POSA提供了一些自動工具來搭建服務程序的框架代碼。
POSA的組件服務化技術,為未來搭建云存儲、云計算平臺提供了堅實的基礎。使用POSA,“視頻互聯(lián)網”、“連接城市中一切可管理的對象”等設想變得清晰起來,不少廠家把這些理想變?yōu)楝F(xiàn)實。
相關文章:
視頻管理平臺支持不同操作系統(tǒng)和硬件分布局部系統(tǒng)
視頻管理平臺需完善的開發(fā)管理流程
視頻管理平臺廣泛實踐工程項目中
如何構建警務資源可視化管理系統(tǒng)
淺析基于POSA中間件的集成平臺PVG-SSIP
淺析視頻平臺應用各行業(yè)的深耕細作