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