監(jiān)理公司管理系統(tǒng) | 工程企業(yè)管理系統(tǒng) | OA系統(tǒng) | ERP系統(tǒng) | 造價咨詢管理系統(tǒng) | 工程設(shè)計管理系統(tǒng) | 甲方項目管理系統(tǒng) | 簽約案例 | 客戶案例 | 在線試用
X 關(guān)閉
上海OA快博

當(dāng)前位置:工程項目OA系統(tǒng) > 泛普各地 > 上海OA系統(tǒng) > 上海OA快博

第二代Web服務(wù)展望

申請免費試用、咨詢電話:400-8352-114

AMTeam.org

第二代Web服務(wù)展望

在互聯(lián)網(wǎng)發(fā)展的早期,企業(yè)都使用SMTP、NTTP和FTP客戶端和服務(wù)器與互聯(lián)網(wǎng)進行連接,傳輸消息、文本文件、可執(zhí)行文件和源代碼,當(dāng)企業(yè)開始將企業(yè)信息集成到互聯(lián)網(wǎng)架構(gòu)中時,互聯(lián)網(wǎng)就成了一種基本的工具。當(dāng)互聯(lián)網(wǎng)重心由交換信息的協(xié)議轉(zhuǎn)向數(shù)據(jù)對象以及它們之間的鏈接時,互聯(lián)網(wǎng)的普及程度就大大提高了。

早期Web架構(gòu)的特征是HTML-GIF/JPEG、HTTP和URI,它們組合在一起時,其功能是異常強大的,使用這些技術(shù),企業(yè)將多種多樣的網(wǎng)上發(fā)布系統(tǒng)進行集成,使之成為比任何一種單一的技術(shù)更有吸引力的系統(tǒng)。

一旦各種機構(gòu)都使用公共的數(shù)據(jù)格式、HTTP協(xié)議和一個單一的地址系統(tǒng)時,Web就不再是許多網(wǎng)站的集合了,而成為了最多樣化和功能強大的信息系統(tǒng),各機構(gòu)團體建立起它們的信息和其他機構(gòu)團體信息之間的鏈接。

第一代Web服務(wù)與第一代連接非常相似,各種Web服務(wù)之間并不是互相集成的,而且其設(shè)計目標(biāo)也不是使第三方能夠方便地以一種統(tǒng)一的方式對它們進行集成。我認(rèn)為,新一代Web服務(wù)將是起源于網(wǎng)上出版和人機交互的更加集成化的Web服務(wù),它將是建立在使Web更能發(fā)揮作用的架構(gòu)的基礎(chǔ)上的,該架構(gòu)是三位一體的:標(biāo)準(zhǔn)的格式(XML)、標(biāo)準(zhǔn)的應(yīng)用協(xié)議和單一的URI名字空間。

新一代的Web服務(wù)將與REST這種當(dāng)前Web的架構(gòu)模式息息相關(guān),它的意思是“表示狀態(tài)轉(zhuǎn)移”。它說明了Web能夠擁有URI、HTTP、HTML、JavaScript和其他許多特性的原因,它包含有多個方面的內(nèi)容,我不敢說自己已經(jīng)完全掌握了它,在本篇文章中,我們將著重討論XML用戶和開發(fā)人員最感興趣的部分:

當(dāng)前的Web服務(wù)

SOAP最初是作為DCOM或CORBA的跨互聯(lián)網(wǎng)形式出現(xiàn)的,早期的與SOAP類似的一種技術(shù)的名稱為“Web代理”━━基于Web的對象代理,它準(zhǔn)確地表達了這種技術(shù)在DCOM、CORBA、RMI等標(biāo)準(zhǔn)上建立跨應(yīng)用協(xié)議的含義,它也是解決應(yīng)用之間互操作性問題的現(xiàn)有的模型。

在沒有應(yīng)用到Web上時,這些技術(shù)只取得了有限的成功。有分析家認(rèn)為問題是微軟和OMG的支持者不合作引起的,但我并不這樣認(rèn)為,其中有更深層次的問題。對于封閉世界問題而言,RPC確實不錯。在封閉世界中,你知道所有的用戶,可以與它們共享數(shù)據(jù)模型,可以根據(jù)自己的需求與它們進行溝通。在這樣的環(huán)境中進行發(fā)展是相當(dāng)容易的:你只需告訴所有的用戶,RPC API將要在某個時間內(nèi)發(fā)生變化,可能中間會有個過渡期,以避免出現(xiàn)問題。通過點到點的集成,就可以集成新的系統(tǒng)。

另一方面,當(dāng)用戶群非常龐大時,進行點對點的溝通就不可能了,我們就需要一個不同的策略。我們需要一個預(yù)先安排的框架,以在服務(wù)器端和客戶端同時發(fā)生變化,還需要有一套明確的機制,與沒有相同API的系統(tǒng)實現(xiàn)互操作。RPC協(xié)議在這方面有所欠缺,改變其中的界面異常困難,集成新的服務(wù)通常需要進行復(fù)雜的軟件粘合。

我認(rèn)為這是沒有企業(yè)成功地將它們的系統(tǒng)統(tǒng)一在DCOM、CORBA或RMI上的真正原因?,F(xiàn)在我們才觸及到問題的癥結(jié)所在:SOAP RPC是互聯(lián)網(wǎng)的DCOM。

RPC中還存在許多能夠解決的問題。但我認(rèn)為其中最大也是最難解決的問題是需要有一個使客戶端、服務(wù)器端和中間件端能夠獨立地進行升級的模型。

原型可升級應(yīng)用

當(dāng)今二種最具可伸縮性、最具有互操作性的分布式應(yīng)用是Web和電子郵件,是什么使這二種應(yīng)用具有如此大的可伸縮性和互操作性呢?它們依賴于標(biāo)準(zhǔn)化的、可擴展的消息格式(HTML和MIME)、應(yīng)用協(xié)議(HTTP和SMTP),但我認(rèn)為最重要的是每一種應(yīng)用都有一個標(biāo)準(zhǔn)化的、可擴展的全球性地址系統(tǒng)。

在房地產(chǎn)界有一句笑話,形成房地產(chǎn)價值的三個要素是位置,位置和位置,在XML web服務(wù)中也是如此。如果實現(xiàn)得恰當(dāng),XML web服務(wù)使我們能夠給數(shù)據(jù)對象指定地址,使它們能夠被共享或修改。

特別地,WEB的中心概念是URI的單一的統(tǒng)一名字空間,URI能夠允許使Web具有利用價值的大量的Web鏈接,它們將Web捆綁為一個單一的大規(guī)模的應(yīng)用。

URI等同于資源。資源是一個概念性的對象,它們的表達被以HTTP消息的格式在web上發(fā)布。這些理念相當(dāng)簡單,但其功能卻非常強大,而且取得了不俗的成功。URI之間的聯(lián)系非常松散,我們甚至能夠利用一張紙或OCR將一個URI從一個系統(tǒng)傳遞給另一個系統(tǒng)。URI是后期綁定的,它們不定義能夠?qū)λ傅男畔⑦M行哪些處理。正是其具有的“松散”和“后期”特性,使得它們能夠適用于Web這樣規(guī)模的網(wǎng)絡(luò)。

不幸的是,我們中的大多數(shù)都不這樣考慮web服務(wù),我們都將web服務(wù)看作是代表軟件組件的端點間的遠(yuǎn)程過程調(diào)用,也就是CORBA、DCOM的思想,Web的思想是根據(jù)資源組織URI。

新一代web服務(wù)將使用單獨的數(shù)據(jù)對象作為端點,軟件組件間的界線也將是非常小的。

一個示范性的例子

UDDI是能夠被作為以資源為中心的功能更強大的WEB服務(wù)的一個例子,在這里我們不討論UDDI在WEB服務(wù)中哲學(xué)意義上的角色,只討論如何從中獲取信息或向其中輸入信息的具體問題,這些觀點適用于已經(jīng)存在的大部分的WEB服務(wù),例如股票行情、飛機票預(yù)訂等。

UDDI中有一個代表一個企業(yè)的businessEntity概念,企業(yè)是由UUID確定的,在以Web為中心的模式中,企業(yè)是由URI確定的,最簡單的方式是把businessEntity作為一個可以設(shè)定地址的XML文檔,例如,http://www.uddi.org/businessEntity/ibm.comhttp://www.uddi.org/getbusinessEntity?ibm.com。這二種方式之間的差別相當(dāng)小,而且與技術(shù)的關(guān)系不大,因此我們無需為此擔(dān)心。

我們可以把http://www.uddi.org/businessEntity看作是一個包含文件的目錄,或者一個從數(shù)據(jù)庫中讀取數(shù)據(jù)的WEB服務(wù)。WEB最奇妙的特性之一就是僅僅通過URI,不能分辯出它到底是什么,這也是“松散組合”的作用。

我們來考慮使用基于HTTP的URI而不使用UUID表示企業(yè)實體的意義:

·想檢查企業(yè)實體的人只能將瀏覽器指向該URI,并查看businessEntity記錄,HTML版的企業(yè)實體只適用于以前的瀏覽器,而XML版的企業(yè)實體適用于較新的瀏覽器。

·要在另一種WEB服務(wù)或文檔中引用一個businessEntity,則只能使用它的URI。

·要將被引用的信息集成在其他的XML文檔中,可以使用XLink、XPointer或XInclude。

·要保存一個記錄的永久拷貝需要使用wget這樣的命令行工具或在瀏覽器中選擇“保存為”菜單項。

·XSLT樣式表能夠動態(tài)地獲取資源,并在轉(zhuǎn)換中與其他資源進行組合。

·可以使用標(biāo)準(zhǔn)的HTTP授權(quán)和訪問控制機制控制對businessEntity的訪問。

·元數(shù)據(jù)可以通過使用RDF與businessEntity發(fā)生關(guān)聯(lián)。

·任何客戶端應(yīng)用(無論是否是基于瀏覽器的)可以在沒有特別的SOAP庫的情況下獲取數(shù)據(jù)。

·二個企業(yè)褓可以使用從一個企業(yè)實體到另一個企業(yè)實體的重定向表示二者的合并。

·象Excel、XMetaL、Word和Emacs這樣的編輯和分析工具能夠利用HTTP直接從URI中導(dǎo)入XML文檔,并利用WebDAV進行回寫。

·UUID或其他形式的與位置無關(guān)的地址仍然可以被指定為附加的抽象層。

目前的UDDI API有一個被稱作get_businessDetail的方法,在以地址為中心的模式下,該方法就完全成為多余的了,可以從API中把它刪除了。UDDI有幾種對tModels、商業(yè)服務(wù)等數(shù)據(jù)對象進行操作的get_方法,這些數(shù)據(jù)對象可以被表示為邏輯XML文檔,這些方法也可以被刪除。需要注意的是,我們大大簡化了用戶對UDDI信息的訪問,同時提高了XML和XML模式在UDDI系統(tǒng)中的重要性。

企業(yè)實體并不是UDDI中唯一的應(yīng)該根據(jù)以URI編址的XML資源而不是SOAP API確定的東西,事實上,所有UDDI數(shù)據(jù)庫中的數(shù)據(jù)都可以以這種方式確定。

總結(jié):資源(數(shù)據(jù)對象)就象孩子,如果要融入到社會這個大家庭中去,他們每個人就需要有一個名字。

可擴展性

如果圍繞URI組織WEB服務(wù),該服務(wù)就可以通過鏈接自動地與其他WEB服務(wù)進行集成,一個注冊表中的一個UDDI條目能夠很方便地指向另一個注冊表系統(tǒng)中的UDDI條目。事實上,企業(yè)可以在自己的站點上維護企業(yè)信息,在信息有變化時向UDDI“注冊”這些變化即可。以資源為中心的web服務(wù)從本質(zhì)上說是很容易進行集成的。

在一個UDDI注冊表中的元素只可以在它們相互之間進行查閱(也有極少數(shù)的例外),它們不能查閱到在Web上其他地方的對象(例如其他UDDI注冊表中的元素)。以URI為中心的解決方案則以與電話號碼系統(tǒng)組織電話那樣的方式對數(shù)據(jù)域進行統(tǒng)一的組織。

由于businessEntity文檔都是XML文檔,因此能夠相對比較方便地添加元素、屬性或其他名字空間。XML是一種可擴展的數(shù)據(jù)表達方式,通過添加特定的HTTP頭部甚至新的HTTP方法(在極少數(shù)的情況下)很方便地擴展該協(xié)議。

性能

WEB服務(wù)的性能是一個十分重要的問題,任何從基于GET的URI中獲取的資源都會被牽涉到,在服務(wù)器之前的緩沖服務(wù)器、企業(yè)防火墻或客戶端計算機都存在性能問題。緩沖是內(nèi)置在HTTP中的,SOAP get_businessDetail信息不能被現(xiàn)有的技術(shù)進行緩沖,對REST架構(gòu)還可以進行其他方面的性能強化。

其他方法

UDDI中還有其他與businessEntities有關(guān)的方法,其中的一個是delete_business。HTTP已經(jīng)有了DELETE方法,因此delete_business在REST模式中已經(jīng)是多余的了,我們可以不使用UDDI SOAP-RPC的刪除方法,而使用HTTP中的刪除方法,這樣有利于與“知道”HTTP中刪除方法的Windows 2000中的資源管理器等工具兼容。從理論上說,企業(yè)可以通過點擊“刪除”按鈕刪除一部分的記錄。

很明顯的是,授權(quán)和訪問控制是關(guān)健。微軟不可能抹殺它的競爭對手在這方面的進步。HTTTP中已經(jīng)有了授權(quán)、認(rèn)證和加密的特性,UDDI的SOAP RPC協(xié)議不支持這些特性。

UDDI中還有一個save_business方法,這是為了上載新的業(yè)務(wù),在HTTP中與之相對應(yīng)的是PUT或POST。使用HTTP方法而不使用SOAP方法的一個好處是可以在HTML表格中執(zhí)行POST方法。

UDDI中還包括有一個名字為find_business的方法,該方法在原理上與每個網(wǎng)站上的搜索功能或特定的搜索引擎并沒有什么區(qū)別。在URI模式中,服務(wù)能夠獲取一系列的搜索參數(shù),返回代表與搜索參數(shù)匹配的businessEntities。

使用GET、PUT、DELETE、POST這四個基本的方法,我們可以做到使用幾十個UDDI方法才能實現(xiàn)的功能。REST于WEB服務(wù)的關(guān)系就象RISC技術(shù)與CPU的關(guān)系,但二者之間的關(guān)系還是有相當(dāng)大的區(qū)別的,其代價和帶來的好處是不同的。

HTTP的角色

我們通過WEB服務(wù)得到的好處利用HTTP也可以得到,我們需要的僅僅是XML符號集,這也是XML的意義所在:更注重數(shù)據(jù)的交換而不是軟件組件。

UDDI中的所有東西都可以用HTTP對XML資源的操作表示,因此,HTTP與URI成為Web中最核心的技術(shù)之一并不是偶然的,它的設(shè)計目標(biāo)是作為以特性為中心的REST架構(gòu)的主要部分。

下面是一個很激進的觀點:無論什么樣的問題,我們都可以,也應(yīng)該將它作為一個數(shù)據(jù)資源處理問題而不是一個API設(shè)計問題來考慮,將web服務(wù)器考慮為一個巨大的信息倉庫,我們在其中進行數(shù)據(jù)處理工作。

在討論UDDI時,我選擇了一個能夠被很簡單地轉(zhuǎn)換為REST架構(gòu)的web服務(wù),但我們可以將這一原理應(yīng)用在所有的web服務(wù)中。那么在訂單提交中如何呢?這更象是事務(wù),訂單也需要被命名。如果我們使用POST或PUT將訂單提交給新的URI,然后整個公司的內(nèi)部系統(tǒng)都可以查閱該訂單,而無論系統(tǒng)是在什么地方。使用HTTP,北京分公司雇員使用的臺式機上的XSLT樣式表和Perl腳本代碼能夠處理在位于洛杉磯的大型主機上運行的財務(wù)系統(tǒng)上的訂單。訪問HTTP編址的資源不比訪問本地系統(tǒng)上的文件更困難。

即使是帶有復(fù)雜的工作流的WEB服務(wù)也可以以URI為中心的方式進行組織?,F(xiàn)在我們來看一個飛機票預(yù)訂系統(tǒng)。在傳統(tǒng)的HTML系統(tǒng)中,有各種不同的代表邏輯交易的網(wǎng)頁存在。首先,我們需要捍拒合適的航班,得到一個表示許多合適航班的URI。然后從中選擇一個航班,得到一個表示我們選擇的URI。然后再決定是否提交訂單,提交后會得到返回預(yù)訂號的網(wǎng)頁。一般情況下,該網(wǎng)頁的URI會保留一段合理的時間,以便我們記下預(yù)訂的號碼。我們可以以這種方式來考慮所有的業(yè)務(wù)。

HTTP甚至可以應(yīng)用在P2P、異步、可靠的分布式計算中,如果讀者對這些問題有興趣,可以進一步地參閱其他的資料。

基于XML的web服務(wù)能夠通過相同的步驟完成。不會在每個步驟中返回HTML表格,該web服務(wù)將返回符合航空業(yè)標(biāo)準(zhǔn)的XML文檔,這些文檔可以用在完全不同的飛機票預(yù)訂系統(tǒng)中,運行完全相同的過程。

總結(jié):任何商業(yè)問題都可以被看作是資源處理問題,HTTP是一種數(shù)據(jù)資源處理協(xié)議。

安全

對數(shù)據(jù)進行全球統(tǒng)一的編址并不意味著讓所有人都可以訪問你的數(shù)據(jù)。我們可以通過不公布其URI而很方便地隱藏對象,也可以很方便地對對象使用安全策略。事實上,REST在很大程度上簡化了安全問題。

在SOAP RPC模式中,我們使用的對象是不明顯的,它們的名字也隱藏在方法的參數(shù)中,因此我們需要為每個web服務(wù)使用一種全新的安全策略。在REST模式中,我們可以對每個數(shù)據(jù)對象使用4種基本的權(quán)限:GET權(quán)限、PUT權(quán)限、DELETE權(quán)限和POST權(quán)限。我們可以使一部分資源具有或不具有GET、PUT、DELETE和POST四種權(quán)限,這與當(dāng)前廣泛使用的文件系統(tǒng)的權(quán)限有點類似,它是有效和成熟的。

以資源為中心的web服務(wù)可以很好地與防火墻進行合作。防火墻管理員能夠很容易地通過阻止不使用GET方法的HTTP請求而使一種web服務(wù)只能被讀取。

維護

事實上,安全只是可維護性的一種形式。所有網(wǎng)管都會說,任何規(guī)模的網(wǎng)絡(luò)都會發(fā)生問題,有時IP沒有問題但DNS就會出問題(DNS服務(wù)器關(guān)閉或DNS配置不正確),有時IP和DNS正常但HTTP出了問題(防火墻或代理服務(wù)器配置不正確)。如果在HTTP之上運行WEB服務(wù),那系統(tǒng)出問題的可能性就是二者之和,可能會有多個部分出問題和安全漏洞。

一旦WEB服務(wù)能夠正常地工作了,則可以通過在瀏覽器中使用服務(wù)對它進行測試,甚至是復(fù)雜的需要多個步驟才能完成的web服務(wù)都能夠通過HTML表格進行測試。從本質(zhì)上說,對REST web服務(wù)的測試與web網(wǎng)站差不多。另一方面,每個SOAP RPC服務(wù)都有自己的安全模式、地址模型、數(shù)據(jù)模型、狀態(tài)轉(zhuǎn)換表和方法集,對這樣的系統(tǒng)進行測試要困難得多。

發(fā)布:2007-03-25 10:34    編輯:泛普軟件 · xiaona    [打印此頁]    [關(guān)閉]
相關(guān)文章:
上海OA系統(tǒng)
聯(lián)系方式

成都公司:成都市成華區(qū)建設(shè)南路160號1層9號

重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓

咨詢:400-8352-114

加微信,免費獲取試用系統(tǒng)

QQ在線咨詢