[摘 要]中間件作為新層次的基礎軟件,其重要作用是將不同時期、在不同操作系統上開發應用軟件集成起來,彼此象一個天衣無縫的整體協調工作,這是操作系統、數據庫管理系統本身做不了的。中間件的這一作用,在技術不斷發展之后,使以往在應用軟件上的勞動成果仍然物有所用,節約了大量的人力、財力投入。本文對中間件的一些基本問題進行了闡述,以便對中間件有更好地了解。
[關鍵詞]中間件 軟件工程
[中圖分類號]TP [文獻標識碼]A [文章編號]1009-5489(2008)05-0181-02
一、中間件的概念
一個計算機應用系統不使用中間件當然完全可以運行,但是這樣的應用系統只能在小規模的系統上運行,數據處理量不能太大,計算機與計算機之間不能相距太遠,不能使用廣域網,不能處理關鍵性業務等。一句話,沒有中間件的應用系統,如果它的作用是可有可無,幫你解決一些小的問題,則完全可以勝任;但是,如果這個應用系統需要承擔特別大的數據處理量,或者需要特別高的準確性,如果沒有中間件為基礎的話,就經常會出現一些問題,這些問題會對系統的穩定構成嚴重的威脅。
中間件系統對應用系統具有共性的問題進行了抽象,將抽象以后的部分從應用程序中提取出來,形成一個新的實體。這個實體主要解決在小規模應用的時候不能發現的問題,提高系統運行的穩定性,這樣當應用系統需要擴大運行規模的時候,不需要將應用系統變得太復雜。
為了更充分地發揮中間件的效能,我們必須對中間件系統的概念、架構和它的分類情況有一個初步的了解。客戶機/服務器的概念和應用已經流行了許多年了,盡管有關專家預測到傳統的客戶機/服務器結構有可能過時,代之于Web技術、對象技術、數據倉庫技術等新的概念和結構,但實際上,客戶枷服務器的概念還在發展(如三層或多層客戶服務器結構),客戶機/服務器方式的應用還在迅猛擴張。隨著對各種應用的不斷擴充和新的應用的不斷增加,面臨的問題越來越多,諸如跨過不同硬件平臺、不同的網絡環境、不同的數據庫之間
互操作、新舊系統并存、系統效率過低、傳輸不可靠、數據需要加密、各種應用模式、開發周期過長等等問題,這些問題只靠傳統的系統軟件或工具軟件提供的功能已經不能滿足要求。伴隨著分布式應用的迅猛發展,中間件這一新興的軟件領域已悄然崛起。
既然許多問題是由各種不同的廠商的產品引起的,又不能靠傳統的系統軟件(如操作系統和數據庫等)、工具軟件(如Case工具、4GL等)解決,人們便想用另外一種軟件來解決。顧名思義,你可以把中間件理解成是處在應用軟件和系統軟件之間的一類軟件,或是獨立于硬件或數據庫廠商(處在它們中間,實現它們的互聯)的一類軟件,亦或是客戶、服務方之間的連接件,或者是需要進行二次開發的中間產品。這里引用一個比較流行的的中間件的定義:中間件是一種獨立的系統軟件或服務程序,分布式應用系統借助這種軟件在不同的技術之間共享資源,中間件位于客戶機服務器的操作系統之上,管理計算資源和網絡通訊。從中間件的定義可以看出,中間件是一類軟件,而非一種軟件;中間件不僅僅實現互聯,還要實現應用之間的互操作;中間件是基于分布式處理的軟件,定義中特別強調了其網絡通訊功能。
二、中間件解決的問題
首先,應用的互連和互操作是中間件首先要解決的問題,這里所說的應用互連和互操作而不是說系統之間的互連,是因為中間件是一種應用級的軟件,它是一種應用集成的關鍵件,不管這些應用分布在不同的硬件平臺上,使用了不同的數據庫,透過了多么復雜的網絡,亦或是同一電腦中的不同應用系統。其次,針對不同的應用領域,對中間件又有各種不同的要求。由于實際的應用環境千差萬別,不能指望有一種包羅萬象的中間件解決所有的問題。
三、中間件的發展趨勢
消息中間件是目前中間件技術的發展熱點,如果把交易中間件看成是一類特殊的消息中間件的話,那么消息中間件在目前市場上占據主導地位,而且發展勢頭迅猛。消息中間件以其獨特的優勢為各種分布式應用的開發注入了強大動力,極大地推動了應用系統集成的發展。
中間件的另一個發展動向是向Internet延伸,Internet/Intranet技術早已在全球范圍內廣泛采用,但由于其自身的技術特點,在構造許多大型企業級應用時,如并發控制、負載平衡、可靠傳輸、數據路由等仍顯不足,因而仍然存在供中間件發展的中間地帶。
四、中間件在應用系統的位置
節點、進程和客戶端/服務端之間的關系是中間件的核心概念,它們之間不同的變化組合,構成了整個基于中間件的應用系統。節點是這個系統的基本元素,節點間不同的連接構成了中間件網絡;在節點上運行的客戶應用程序或服務應用程序構成了節點上的客戶進程或服務進程(也可能是線程);不同節點上的進程間的數據交換構成了中間件的基本操作。
一個完整的計算機應用系統通常需要完成某種主題,如:財務管理、庫存管理等。為了符合應用目的的需要,在很多時候需要把多臺計算機構成一個計算機應用系統,在這些計算機之間用網絡連接起來,在這個計算機應用系統中一臺計算機被稱為系統中的一個節點;一個應用系統由多臺計算機組成,每臺計算機完成相對獨立的操作的任務。
計算機應用系統中的節點根據需要被分成不同類型的節點,有時多臺計算機需要使用同一個數據集合,因此需要將數據集中在一個節點上,形成一個數據保存處理的中心,其他節點都根據操作人員的指令,對這個節點上的數據提出操作請求,保存這些數據的節點根據請求對本節點上的數據進行處理,并將處理結果返回給發出請求的節點。發出請求的節點將到的結果進行輸出或其他處理,集中保存和處理數據的節點被稱為服務端(Server);發出請求和得到處理結果的節點被稱為客戶節點,也被稱為客戶端(Client)。
在一個節點上的軟件可以分為三個層次,應用程序、操作系統和兩層之間的中間層。應用程序用于描述具體對應用數據如何進行處理的邏輯關系,這種邏輯關系被稱為業務邏輯,在客戶端上的應用程序被稱為客戶程序,在服務端上應用程序被稱為服務程序;操作系統主要用于管理和維護計算機的正常運行;在操作系統和應用程序之間的中間層也被稱為中間件。在一般意義上說,中間件的任務是共享資源管理(主要是共享數據管理)、通信管理和進程管理,在當前的計算機系統中,共享資源管理的角色由數據庫管理系統來承擔,因此中間層的任務是通信管理和進程管理。
這種基于中間件的應用系統對于傳統的應用系統來講,具有明顯的優勢,這些優勢,由于中間件從應用程序中抽取了大量的復雜的控制邏輯,是應用程序的開發大為簡化,降低了開發成本。同時,由于中間件的作用,是應用系統的可靠性、完整性和處理效率大幅度提高。以中間件為基礎的應用系統是一個基于三層體系結構的客端/服務端模型的應用系統。它不但可以提供不同節點間應用進程的關系的管理、負載均衡的功能,還可以提供應用調度等功能。通過其中包含的通信管理模塊,可以提供的可靠的數據傳輸、網絡監控、流量控制等功能,這樣就可以構建一個完整的、可靠的應用系統所必須具備的環境。中間件軟件是計算機硬件和操作系統之上,支持應用軟件開發運行的系統支持軟件,是分布式應用的一個標準平臺。
五、結語
中間件是一類獨立的系統軟件和服務程序,實現分布式應用在不同技術之間的資源共享。中間件是一類而不是一種軟件,是基于分布式處理和應用的軟件,最突出的特點是實現應用之間的互操作和資源共享。中間件是構件化軟件的表現形式。中間件抽象了典型應用,應用軟件工程師可以基于準的中間件進行再開發、定制和部署,而不是原有意義上的編程或設計,是軟件構件化、裝配化的具體實現。
可以說,沒有中間件,就構造不成分布式應用系統;沒有中間件,將構造不成三層、四層或N層機構系統;沒有中間件,將構造不成真正具有生命力的大型應用系統。中間件技術將成為軟件領域的又一核心技術,中間件產業將是今后若干年內最有希望的軟件產業。
[參考文獻]
[1]湯庸主編:《軟件工程方法學及應用》,中國三峽出版社1998年版。
[2]張志凜主編:《中間件——技術、產品、應用》,中國石化出版社2003年版。
[3]邵維忠、揚芙清:《面向對象的系統分析》,清華大學出版社、廣西科學技術出版社2000年版。
[4]JRonald J#8226;Norman著,周之英、柴洪鈞譯:《面向對象系統分析與設計》,清華大學出版社2000年版。