編者按:中間件是近年來軟件業(yè)的熱點話題,各廠商對于中間件產品的定義、分類和理解,也不盡相同。從市場對中間件產品的旺盛需求與諸多疑惑并存的現狀來看,這個領域存在的問題也需要進一步劃分和明晰。由北京綜藝達軟件技術公司開發(fā)的NetPOWER是最近出現在中間件市場的一支新生力量,它將消息、數據和事務處理等功能集于一身,為中間件產品提出了走向集成、走向整合的新思路。目前市場上也有專用的中件間產品,如CTI中間件,但其功能相對還是比較單一。NetPOWER則是融合了CTI技術和Internet技術,不僅使中間件產品有可能向平臺化的方向發(fā)展,同時也為CTI技術和Internet技術提供了更廣闊、更有效的應用空間。本期報道除了對中間件技術和產品做基本的介紹之外,還對NetPOWER這款產品的市場價值和功能進行了較為詳細的描述,旨在幫助廣大企業(yè)用戶實現真正的融合通信和管理。
NetPOWER是我國具有自主知識產權的、在Inetnet上應用的商品化中間件平臺。NetPOWER基于Microsoft.NET標準,面向大型企業(yè)和軟件開發(fā)商,用于構建企業(yè)信息管理系統(包括ERP、SCM、CRM、DRP等)和電子商務解決方案。
NetPOWER解決了三個重要問題: 第一,將本地局域網絡的軟件開發(fā)方式直接在Web上實現,可以在基于互聯網的窄帶條件下實現Web化應用; 第二,簡化了網絡化的編程,用戶可以不用考慮網絡傳輸和安全等復雜問題; 第三,快速完成互聯網應用軟件的客戶化訂制。
NetPOWER具備以下主要特點:
- 100%純正B/S模式,N層(四層以上)體系結構,全面支持Internet和移動通信,可掛接各種大型數據庫系統;
- 完全組件式開發(fā)環(huán)境,通信管理、交易管理、并發(fā)機制、事務處理、數據存取、消息驅動、負載均衡等關鍵性業(yè)務過程全部封裝;
- 客戶化二次開發(fā)環(huán)境,可自定義企業(yè)應用模型、商務邏輯、業(yè)務流程、表單格式、權限組管理等各種業(yè)務規(guī)范;
- 分布式訂單管理,可為多個應用、多個部門和多個企業(yè)之間收集、管理和處理訂單;
- 物流管理能力,支持各種成本核算方法、單品管理、單據全程跟蹤和歷史動態(tài)庫存;
- 支持工作流管理和各職能部門(如生產、銷售、服務)之間的全面協同工作;
- 支持集群技術和離線處理,包括群集自動部署、自動遷移和故障監(jiān)控與恢復、遠程雙向數據同步技術;
- 良好的系統穩(wěn)定性和容錯能力,客戶化開發(fā)過程和結果不影響系統核心模塊和數據的穩(wěn)定性和安全性;
- 支持窄帶條件下的數據傳輸和實時應用,提供企業(yè)級網絡安全保障;
- 面向大型應用的開放式結構,易于構建和管理同國內外各種大型應用系統的數據接口和實現動態(tài)數據交換;
- COM API支持C/C++/VB/ASP/Java/Delphi等各種開發(fā)工具,易學易用,結合數據詞典和開發(fā)向導,實現快速開發(fā)的目標。
NetPOWER以新的B/S技術構架為起點,完全支持N層(四層以上)體系結構,直接支持COM和DCOM組件,為用戶進行新的Web信息系統的開發(fā)提供了快速的構建工具。NetPOWER在數據庫系統基礎上,將通信機制、數據傳輸、消息機制、事件并發(fā)和事務處理進行了封裝,開發(fā)人員不必了解網絡通信、事務處理、安全保證等復雜機制。對于開發(fā)人員而言,只要掌握了系統的商務邏輯和業(yè)務流程,熟悉使用FrontPage一類頁面設計軟件,就可以開發(fā)出優(yōu)秀的系統。NetPOWER的COM API支持C、C++、VB、ASP、Java、Delphi等各種開發(fā)工具。
NetPOWER可以支持用戶自己的組件對象的嵌入,可以回調用戶自己定義的方法,同時支持用戶對NetPOWER和COM對象的交互遞歸調用,完成復雜的用戶交互和商務邏輯中需要解決的問題。
NetPOWER可自動捕獲錯誤,并處理用戶對象的錯誤信息。用戶不會由于自己的錯誤而影響整個系統。NetPOWER支持事務處理,對于用戶錯誤,系統會自動進行回轉處理,保證了系統的穩(wěn)定和安全。NetPOWER支持應用服務器集群,可自動平衡應用服務器負載,在應用層設立本地數據庫,減少核心資源數據庫的負荷,支持大規(guī)模并發(fā)用戶。
什么是中間件
在眾多關于中間件的定義中,普遍被接受的是美國IDC公司的表述:中間件是一種獨立的系統軟件或服務程序,分布式應用軟件借助這種軟件在不同的技術之間共享資源,中間件位于客戶機服務器的操作系統之上,管理計算資源和網絡通信。
從中間件的定義可以看出,中間件是一類軟件,而非一種軟件; 中間件不僅僅實現互連,還要實現應用之間的互操作。中間件是基于分布式處理的軟件,定義中特別強調了其網絡通信功能。中間件是基礎軟件的一大類,屬于可復用軟件的范疇。顧名思義,中間件處于操作系統軟件與用戶的應用軟件的中間。中間件在操作系統、網絡和數據庫之上,在應用軟件的下層,總的作用是為處于自己上層的應用軟件提供運行與開發(fā)的環(huán)境,幫助用戶靈活、高效地開發(fā)和集成復雜的應用軟件。
可以把中間件理解為處于應用軟件和系統軟件之間的一類軟件; 或者是獨立于硬件或數據庫廠商(處于其產品的中間,實現其互連)的一類軟件; 或者是客戶方與服務方之間的連接件; 或者是需要進行二次開發(fā)的中間產品?傊虚g件是在中間。
但是,不能把難以歸類的軟件都歸到中間件的范疇。許多組織和專家都對中間件下過定義,但都不太精確,所以經常會有“什么是中間件”這樣的問題,這也正說明中間件正在迅速發(fā)展。
中間件的分類
中間件的分類方式很多,有些軟件在中間件的概念產生以前可能就已經存在了;有些軟件雖然不是作為中間件開發(fā)出來的,但是符合中間件的定義,也把它歸入中間件的范疇;有些軟件,盡管具有中間件的特征,但卻并不把它叫做中間件(如HTTPD)。
按照IDC的分類方法,中間件可分為6類:
1.終端仿真/屏幕轉換中間件
用以實現客戶機圖形用戶接口與已有的字符接口方式的服務器應用程序之間的互操作。
2.數據訪問中間件
適用于應用程序與數據源之間的互操作模型,客戶端使用面向數據庫的API,以提請直接訪問和更新基于服務器的數據源,數據源可以是關系型、非關系型和對象型。
3.遠程過程調用中間件
基于RPC機制,該機制是早期開發(fā)分布式應用時經常采用的一種同步式的請求應答協議。通過這種協議,程序員編寫客戶方的應用,需要時可以調用位于遠端服務器上的過程。
4.消息中間件
越來越多的分布式應用采用消息中間件來構建,并通過消息中間件把應用擴展到不同的操作系統和不同的網絡環(huán)境;谙⒌臋C制更多地適用于事件驅動的應用,當一個事件發(fā)生時,消息中間件可通知服務方進行何種操作。
5.交易中間件
交易中間件是專門針對聯機交易處理系統而設計的。通過兩個階段提交協議等方式,可保證分布式交易的完整性、控制并發(fā)、實現交易路由和均衡負載。
6.對象中間件
面向對象的技術一直是軟件界努力追求的目標,傳統的對象技術通過封裝、繼承及多態(tài)提供了良好的代碼重用功能。但這些對象只存在于一個程序中,外面的世界并不知道它們的存在,也無法訪問它們。面向對象的中間件就是要解決這些問題,它提供一個標準的構件框架,能使不同廠家的軟件通過不同的地址空間、網絡和操作系統互相交互訪問。該構件的具體實現、位置及所依附的操作系統,對客戶來說都是透明的。
中間件的演變過程和發(fā)展趨勢
隨著計算機技術的發(fā)展,IT廠商出于商業(yè)和技術利益的考慮,各自的產品之間形成了差異。雖然技術在不斷進步,但差異卻并沒有因此減少。計算機用戶出于歷史原因和降低風險的考慮,必然也無法避免多廠商產品并存的局面。于是,如何屏蔽不同廠商產品之間的差異,如何減少應用軟件開發(fā)與工作的復雜性,就成為技術不斷進步之后,人們不能不面對的現實問題。
在中間件產生以前,應用軟件直接使用操作系統、網絡協議和數據庫等進行開發(fā)。這些都是計算機最底層的東西,越底層越復雜,開發(fā)者不得不面臨許多很棘手的問題,如操作系統的多樣性,繁雜的網絡程序設計、管理,復雜多變的網絡環(huán)境,數據分散處理帶來的不一致性、性能和效率、安全問題等。這些與用戶的業(yè)務沒有直接關系,但又必須解決,因此耗費了大量有限的時間和精力。于是,有人提出,能不能將應用軟件所要面臨的共性問題進行提煉、抽象,在操作系統之上再形成一個可復用的部分,以供成千上萬的應用軟件重復使用。這一技術思想最終構成了中間件這類軟件。
根據有關組織的預測,消息中間件和對象中間件是目前中間件技術的發(fā)展熱點。中間件的另一個發(fā)展動向是向Internet 延伸,Internet/Intranet 技術在全球范圍內被廣泛采用,但由于其自身的技術特點,在構造許多大型企業(yè)級應用時仍顯不足,如并發(fā)控制、負載均衡、可靠傳輸、數據路由等,因而仍然存在供中間件發(fā)展的中間地帶。