中間件(middleware)是基礎軟件的一大類,屬于可復用軟件的范疇。顧名思義,中間件處于操作系統軟件與用戶的應用軟件的中間。中間件在操作系統、網絡和數據庫之上,應用軟件的下層,總的作用是為處于自己上層的應用軟件提供運行與開發的環境,幫助用戶靈活、高效地開發和集成復雜的應用軟件。
在中間件產生以前,應用軟件直接使用操作系統、網絡協議和數據庫等開發,這些都是計算機最底層的東西,越底層越復雜,開發者不得不面臨許多很棘手的問題,如操作系統的多樣性,繁雜的網絡程序設計、管理,復雜多變的網絡環境,數據分散處理帶來的不一致性問題、性能和效率、安全,等等。這些與用戶的業務沒有直接關系,但又必須解決,耗費了大量有限的時間和精力。于是,有人提出能不能將應用軟件所要面臨的共性問題進行提煉、抽象,在操作系統之上再形成一個可復用的部分,供成千上萬的應用軟件重復使用。這一技術思想最終構成了中間件這類的軟件。
目前來看,對于中間件的應用需求,還主要集中在行業市場上,與前幾年僅僅局限在金融、電信、政府等幾個領域的市場狀況不同,安防行業市場對于中間件的需求也逐步開始了,并有望占據比較大的市場份額。但是在應用層次上,還是有比較大的區別。
對于與安陸有關的行業而言,開始時依賴現有的套裝產品,采購進來之后,直接進行應用。但是很快在應用過程中就會有更多的定制需求提出來。因為涉及的具體行業特征的不同,就會導致不問的應用需求。這就要求產品能夠根據行業性的特征進行定制,去除不必要的功能和特性。目前,用戶已經意識到了,市場上提供的套裝產品,其70%的功能行業永遠用不到的,所用到的功能不過只有30%。其中的原因,就在于產品就如同操作系統一樣,擁有應用非常廣泛的市場,需要滿足很多不同的應用需求,因此導致功能比較龐大。是否能迅速做到根據不同的應用需求提供服務,中間件的引入就顯得格外重要了。如今用戶也很聰明,要求產品能夠根據需求進行定制,而不是一個大而全,價格很高的東西。
因此,隨著各行業市場安防監控業務的發展,成熟的產品還會有很大的市場空間,但與此同時,定制化的需求也對于中間件產品提出了更迫切的要求;需要安防企業在軟件系統架構方面盡快轉型。
中間件技術是安防技術發展必由之路
功能再復雜的產品都是由大量標準的零件(盡管零件可能只在本領域內有用)組成,零件在生產線上裝配成一個成品,所有零件在成品中共同發揮作用。分工越細致、專業生產的程度越高,總體生產效率就越高。而中間件技術所扮演的角色就是把零件、生產線和裝配運行的概念運用在在軟件工業中,可以預見,中間件技術是軟件產業化革命的必然發展趨勢。從應用軟件的角度來看,我們需要一個穩定的、技術依賴性較弱的方法來描述行業應用的不斷升級的業務邏輯結構。業務邏輯會按照行業需求的不斷深挖而發展,卻不應該太多的因為技術的變化而重新編寫。中間件思想的應用就可以很好的解決這一難題。
安防監控中間件就是為不斷發展變化的、具有個性化特征的各個行業應用軟件而打造的一個中間件平臺。在為行業提供解決方案的時候,可以通過中間件迅速構建業務邏輯、部署應用并極其方便的與其他業務系統進行整合。
中間件解決了行業應用的結構問題。目前行業應用的選擇有兩個,即購套裝軟件和定制開發。一方面,套裝軟件的可塑性相對較差。如果用戶有一些獨特的需求就難以實現,而從零開發的應用軟件固然能滿足某時間點的固化需求,但是開發周期卻過長,而且難于保證最終系統的質量,以及系統后期的需求變化和維護問題。通過面向中間件的開發,系統是按照個性化的需求,從一個比較完備、比較成熟的構件庫組裝而成,大大提高了系統的成功率、穩定性、適應性、逐步發展性。靜觀時下火爆的家庭裝潢行業的構件化作業可見一斑。面向中間件的開發方式解決了行業應用的開發和管理問題。通過建立一個不斷完整的構件庫;行業的知識可以得到有效的管理。業務知識不是在上百萬行的代碼之中,也不是在每天晚上回家的員工腦里,而是在一個可見的,可控的構件庫中,便于管理、衡量,達到持續發展的目的。開發人員可以看到自己的業務、知識和流程,也通過構件庫來不斷發展自己的核心競爭力。否則,有數百人的安防大企業和一個新開始的二、三十人的小公司有什么本質區別呢?很多軟件工程師也面臨這樣一個問題。剛從學校出來的幾年,大家比較喜歡技術鉆研,熬夜寫代碼,找BUg。而后自己想想,收獲在哪里呢?確實每個人都積累了很多經歷和經驗,但只是一個更熟練的代碼工具。逐漸地大家希望自己能從日常的代碼中逃離出來,去設計、規劃一個大型的軟件系統,而且能夠長期持續發展。面向中間件的開發模式也正是這樣的一個承載思想,承載知識,承載經驗的平臺。面向中間件是安防企業發展的希望,是優秀的軟件架構師的希望。
安防中間件分類與突破
安防中間件可以劃分為基礎中間件、應用中間件和領域應用框架三類。其中,應用中間件主要有數據資源集成、應用資源集成、業務流程集成、門戶集成等中間件。應用代碼集成中間件和業務流程集成中間件都是針對信息系統業務層構建的。前者利用適配機制把各種新建和遺留應用代碼中的各類方法統一成標準的應用接口,并包裝為消息的形式,進而通過消息代理機制,實現應用資源之間跨網絡的互連、互通和互操作。后者是對業務流程的整個生命周期進行管理和控制,協調參與流程的各應用資源代碼之間的動態執行關系,并監控和分析其執行狀況。業務流程集成中間件通常都提供可視化的開發方法。
與傳統安防的軟件開發方式相比,基于中間件的軟件開發方法有什么突破呢?