posts - 189,comments - 115,trackbacks - 0
          什么是中間件

          (以下摘自http://www.huihoo.com/application_infrastructure/middleware_ws/

          作者:Allen (allen@huihoo.com)
          日期:2003.09
          灰狐動(dòng)力:企業(yè)計(jì)算研究中心
          http://www.huihoo.com

          中間件作為一大類系統(tǒng)軟件,與操作系統(tǒng),數(shù)據(jù)庫管理系統(tǒng)并稱"三套車",其重要性是不言而語的.

          那什么是中間件?

          我們來看看以下的幾種定義:
          http://middleware.internet2.edu/ 給出了middleware的一個(gè)定義:
          Middleware, is a layer of software between the network and the applications. This software provides services such as identification, authentication, authorization, directories, and security. In today's Internet, applications usually have to provide these services themselves, which leads to competing and incompatible standards. By promoting standardization and interoperability, middleware will make advanced network applications much easier to use.
          同樣,IDC給出的一個(gè)定義:中間件是一種獨(dú)立的系統(tǒng)軟件或服務(wù)程序,分布式應(yīng)用軟件借助這種軟件在不同的技術(shù)之間共享資源,中間件位于客戶機(jī)服務(wù)器的操作系統(tǒng)之上,管理計(jì)算資源和網(wǎng)絡(luò)通信。

          從這些定義中可以看出:
          – 中間件是一類軟件,而非一種軟件;
          – 中間件不僅僅實(shí)現(xiàn)互連,還要實(shí)現(xiàn)應(yīng)用之間的互操作;
          – 中間件是基于分布式處理的軟件,最突出的特點(diǎn)是其網(wǎng)絡(luò)通信功能。

          接著,我們再來看看什么是Web Services?
          Web Services就是可以通過web描述、發(fā)布、定位和調(diào)用的模塊化應(yīng)用。Web Services可以執(zhí)行任何功能,從簡單的請求到復(fù)雜的業(yè)務(wù)過程。一旦Web Services被部署,其他的應(yīng)用程序或是Web Services就能夠發(fā)現(xiàn)并且調(diào)用這個(gè)部署的服務(wù)。
          Web Services通過簡單對(duì)象訪問協(xié)議 (Simple Object Access Protocol,SOAP)來調(diào)用。SOAP是一種輕量級(jí)的消息協(xié)議,它允許用任何語言編寫的任何類型的對(duì)象在任何平臺(tái)之上相互通信。SOAP消息采用可擴(kuò)展標(biāo)記語言(XML)進(jìn)行編碼,一般通過HTTP進(jìn)行傳輸。與其它的分布式計(jì)算技術(shù)不同,Web Services是松耦合的,而且能夠動(dòng)態(tài)地定位其他在internet上提供服務(wù)的組件,并且與它們交互。
          Web Services使用諸如SOAP消息這樣的XML消息,通過一種良好定義的消息交換模式來調(diào)用。通過描述調(diào)用服務(wù)所必需的數(shù)據(jù),Web Services描述語言 (WSDL)文檔定義了消息交換模式。

          一、中間件分類

          中間件分類有很多方式和很多種類,在這里我們由底向上從中間件的層次上來劃分,可分為以下三個(gè)大的層次:

          。集成型中間件

          在通用型中間件產(chǎn)品之上整合了Application,Portal,Business Process等技術(shù)
          主流技術(shù):WorkFlow,EAI
          代表產(chǎn)品: BEA WebLogic Integration

          。通用型中間件

          主流技術(shù):CORBA,J2EE,MOM
          代表產(chǎn)品:IONA Orbix,BEA WebLogic,IBM MQSeries

          。基礎(chǔ)型中間件

          主流技術(shù): JVM,CLR, ACE
          代表產(chǎn)品:SUN JVM, Microsoft CLR

          400){this.resized=true;this.style.width=400;}">400){this.resized=true;this.style.width=400;}" resized="true">

          當(dāng)然,在這個(gè)大的層次劃分下,中間件還可以細(xì)化為以下一些種類:

          。分布式對(duì)象中間件: 如Orbix,TAO
          。J2EE應(yīng)用服務(wù)器: 如WebLogic,Jboss
          。消息中間件: 如MQSeries,JMS
          。事務(wù)(交易)中間件: 如Tuxedo, TXSeries(CICS)
          。應(yīng)用集成中間件: 如BEA WebLogic Integration
          。數(shù)據(jù)庫中間件: 如JDBC
          。安全中間件: 如東方通的TongSec
          。無線移動(dòng)中間件
          。CTI(呼叫中心)中間件
          。。。

          二、中間件應(yīng)用層次

          400){this.resized=true;this.style.width=400;}" resized="true">
          中間件技術(shù)應(yīng)用層次圖

          中間件提供了應(yīng)用系統(tǒng)基本的運(yùn)行/執(zhí)行環(huán)境,而中間件服務(wù)則提供了更多高級(jí)的功能,如名字服務(wù),事件服務(wù),通告服務(wù),日志等服務(wù),在這些服務(wù)之上,我們還需要考慮不同行業(yè)的需求.不同的應(yīng)用領(lǐng)域.

          三、中間件技術(shù)在集成中的應(yīng)用

          中間件技術(shù)在集成中扮演著重要的角色,我們可以從不同層次采用不同種類,不同技術(shù)的中間件產(chǎn)品進(jìn)行應(yīng)用集成

          我們可以從傳輸,消息,組件,流程等各個(gè)層面分別加以集成.

          400){this.resized=true;this.style.width=400;}" resized="true">


          從圖中,我們可以看出,為了完成不同層次的集成,我們可以采用不同的技術(shù)和不同產(chǎn)品。
          如:
          。為了完成系統(tǒng)底層傳輸層的集成,我們可以采用CORBA技術(shù),
          。為了完成不同系統(tǒng)的信息傳遞,我們可以采用消息中間件產(chǎn)品

          以下是一個(gè)商業(yè)流程處理的例子:

          400){this.resized=true;this.style.width=400;}" resized="true">
          TIBCO BusinessWorks Designer用戶界面


          這樣,我們面對(duì)復(fù)雜的集成問題,就有了一個(gè)大致的應(yīng)對(duì)措施和解決方案。

          同樣,目前中間件的競爭焦點(diǎn)也主要集中在集成應(yīng)用平臺(tái)上。以TIBCO為市場領(lǐng)導(dǎo)者的EAI市場遭到了來自傳統(tǒng)中間件廠商BEA等公司的激烈挑戰(zhàn)。大多中間件公司都已經(jīng)或準(zhǔn)備將下一步的工作重點(diǎn)放在了集成市場上。國內(nèi)中間件公司東方通公司也在努力殺入這個(gè)市場。

          而在集成市場上,Web Services表現(xiàn)出極強(qiáng)的發(fā)展勢頭.

          接著,我們了解一些有關(guān)Web Services的知識(shí)。

          四、從中間件到Web Services

          從中間件發(fā)展到目前的Web Services是一種基于Internet的發(fā)展需求。

          我們可以將Web Services簡單理解為對(duì)已有中間件技術(shù)的更高層次的封裝。
          其業(yè)務(wù)邏輯和方法的實(shí)現(xiàn)還得依賴于底層的CORBA,J2EE等技術(shù)。

          我們先看看中間件的發(fā)展歷程。

          400){this.resized=true;this.style.width=400;}" resized="true">


          這是中間件一條大致發(fā)展路線圖:

          CORBA400){this.resized=true;this.style.width=400;}">MOM/EAI400){this.resized=true;this.style.width=400;}">J2EE應(yīng)用服務(wù)器400){this.resized=true;this.style.width=400;}">應(yīng)用集成平臺(tái)(基于Web Services等技術(shù))

          從圖中我們可以看見當(dāng)前這個(gè)時(shí)期,中間件的競爭焦點(diǎn)將放在Web Services上

          比爾·蓋茨也曾經(jīng)說過:"世界上所有一切都將包括在互聯(lián)網(wǎng)服務(wù)中"
          未來一切都將通過互聯(lián)網(wǎng)實(shí)現(xiàn),那些為互聯(lián)網(wǎng)服務(wù)提供基礎(chǔ)架構(gòu)的企業(yè),將成為今后高科技行業(yè)真正的霸主。目前的成員有:IBM、微軟、Oracle、SAP

          其激烈競爭的焦點(diǎn)將是: 基于Internet的軟件平臺(tái)和集成應(yīng)用平臺(tái)

          是什么原因促使了這一格局的產(chǎn)生。我們來看看其中的一些原因:

          軟件業(yè)、軟件服務(wù)業(yè)正發(fā)生著巨大的變革:

          通過Internet完成軟件,服務(wù),客戶,供應(yīng)商,商業(yè)流程的互操作,交換和協(xié)作將成為一種發(fā)展趨勢,主要體現(xiàn)在以下幾個(gè)方面:

          。軟件模式的變化:軟件即服務(wù)(Software as Service) 、應(yīng)用軟件、套裝軟件將以一種服務(wù)的形式向用戶提供。而被封裝成Web Services已成為一種趨勢。
          。Web技術(shù),Internet的快速發(fā)展,要求軟件和服務(wù)能夠通過Internet取得和訪問到.而Web Services標(biāo)準(zhǔn)、技術(shù)和應(yīng)用的迅速發(fā)展也加快了這一進(jìn)程的發(fā)展。
          。CORBA、J2EE、NETD等復(fù)雜的分布式技術(shù)需要通過Web Services更方便,簡單得提供給用戶。使復(fù)雜,專用的技術(shù)變得簡單,通用。

          Gartner Group對(duì)Web Services的發(fā)展也做出了一份研究報(bào)告。Y軸表明技術(shù)的受關(guān)注程度,而X軸則表示技術(shù)的應(yīng)用的成熟度。

          從圖中可看到,Web Services已是目前整個(gè)IT行業(yè)的最亮點(diǎn).

          400){this.resized=true;this.style.width=400;}" resized="true">?

          ?Web Services構(gòu)建在一系列核心的標(biāo)準(zhǔn)協(xié)議之上,包含:
          。SOAP
          http://www.w3.org/TR/soap
          。WSDL
          http://www.w3.org/TR/wsdl
          。UDDI
          http://www.uddi.org
          。ebXML
          http://www.ebxml.org

          Java由于其跨平臺(tái),面向?qū)ο螅阌贗nternet應(yīng)用開發(fā)等特性使它成為開發(fā)Web Services的首選語言.

          我們可以使用Java API實(shí)現(xiàn)Web Services

          400){this.resized=true;this.style.width=400;}" resized="true">



          SOAP消息傳輸是針對(duì)Web服務(wù)的協(xié)議。JAXP API允許你訪問并解析XML數(shù)據(jù)。JAXP的主要目標(biāo)是提供一個(gè)接口,允許你不必參考底層實(shí)現(xiàn),就能創(chuàng)建、操縱、和使用XML解析器,允許你創(chuàng)建解析器無關(guān)的代碼,并且把解析器的選擇推遲到運(yùn)行時(shí)。

          JAX-RPC幫助你創(chuàng)建基于XML的請求,比如SOAP請求,它被用來發(fā)送和接收基于XML的協(xié)議的方法調(diào)用。JAX-RPC API提供了高層的框架來把Java功能暴露為Web服務(wù),這些服務(wù)能夠被SOAP客戶端消費(fèi),或者作為消費(fèi)SOAP服務(wù)和客戶端的方式。在典型的JAX-RPC使用案例中,開發(fā)人員沒必要進(jìn)行XML和SOAP編程,這樣就能夠快速開發(fā)應(yīng)用。這不僅完成了XML和Java的互相映射,而且避免了直接與調(diào)用的XML表示進(jìn)行交互。

          JAXM提供了使這樣的XML數(shù)據(jù)能夠在兩個(gè)應(yīng)用之間互操作的框架。就是說,JAXM允許在兩個(gè)獨(dú)立的Web服務(wù)之間完成全部XML文件的傳輸。SOAP提供了在兩個(gè)應(yīng)用之間傳輸?shù)南⒌牡讓痈袷健AXM作為輕量級(jí)的API,抽象了底層的消息基礎(chǔ)結(jié)構(gòu)。因此,開發(fā)

          利用SOAP包裝的JAXM消息是容易的,SOAP使你能夠快速而且容易地訪問SOAP消息。

          SAAJ API使你能夠操縱簡單SOAP消息。它可以與JAX-RPC結(jié)合使用,JAX-RPC是用來接收和發(fā)送SOAP消息的J2EE標(biāo)準(zhǔn)API,用來表示字面上的XML文件片斷。SAAJ是JAX-RPC的主要部分,但你也可以把它和其他API,比如JAXM,一起使用。

          JAXM和JAX-RPC之間的區(qū)別在于,JAXM支持面向消息的中間件類型的應(yīng)用開發(fā),它允許你專注于消息的發(fā)送和接收。但是,JAX-RPC支持應(yīng)用的RPC行為。如同SOAP 中定義的一樣,JAX-RPC為XML RPC調(diào)用提供了Java接口。

          以下是需要我們密切關(guān)注的產(chǎn)品和技術(shù)趨勢:

          。移動(dòng)計(jì)算中間件
          。反射中間件
          。自治中間件
          。Qos中間件
          。網(wǎng)格計(jì)算中間件
          。CORBA3
          。J2EE
          。NET
          。。。

          中間件,Web Services做為軟件的一個(gè)發(fā)展趨勢,我們不能忽視,更不能放棄這個(gè)機(jī)會(huì)。
          期待與大家更多的交流與協(xié)作.

          參考資料:
          。C++ Network Programming Mastering Complexity with ACE & Patterns
          。Dr Andy Bond的Middleware and Enterprise Architectures
          。SUN公司Sun ONE Application Server 7 Web Services 開發(fā)者指南
          http://www.huihoo.com/one_and_net/app7/index.htm
          。http://www.tibco.com

          關(guān)于作者:
          Allen,研究方向:J2EE、CORBA、WebServices、WorkFlow、EAI等方面,愿意與更多的朋友一起來打造中國人自己的中間件基礎(chǔ)平臺(tái)。
          http://www.huihoo.com 中間件技術(shù)論壇
          http://www.huihoo.org 開源中間件項(xiàng)目
          個(gè)人主頁 http://www.huihoo.org/~allen/

          posted on 2006-03-28 17:30 MEYE 閱讀(1094) 評(píng)論(0)  編輯  收藏 所屬分類: NEWS
          主站蜘蛛池模板: 绥棱县| 绥宁县| 靖州| 吴川市| 昂仁县| 太湖县| 慈溪市| 南充市| 宜丰县| 石狮市| 黑山县| 杂多县| 绥宁县| 巩留县| 西峡县| 福安市| 河北省| 武宣县| 太谷县| 西藏| 济阳县| 延庆县| 乌拉特后旗| 全椒县| 宁化县| 色达县| 正蓝旗| 泗水县| 和硕县| 河曲县| 桐城市| 郁南县| 璧山县| 县级市| 永宁县| 仙桃市| 湖北省| 邓州市| 扶余县| 永寿县| 宾阳县|