2025澳门开彩结果历史记录-2025澳门开彩结果-2025澳门开彩查询记录-2025澳门聚宝盆-2025澳门九点半一肖一码-2025澳门精准资料免费全览

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

撥開SOA的面紗

admin
2010年5月12日 23:40 本文熱度 8400
soa是英文service-oriented architecture,即面向服務(wù)架構(gòu)的縮寫。這個(gè)詞匯最近一兩年頻頻出現(xiàn)在各種技術(shù)期刊上。但是一直以來對于soa到底是什么沒有明確的回答;soa有什么特點(diǎn)?適合用于解決哪些問題?與其他的技術(shù)有什么區(qū)別與聯(lián)系?web service和soa又是什么關(guān)系?soa的出現(xiàn)對于軟件架構(gòu)設(shè)計(jì)有什么影響?本文將就上面提到的這些問題,嘗試根據(jù)作者自己的理解給出soa的定義;總結(jié)出soa特有的三個(gè)基本特征;然后以http協(xié)議為例對這些特征進(jìn)行解釋;最后簡要的說明soa對今后軟件架構(gòu)設(shè)計(jì)可能帶來的影響。 [br][br]soa定義 [br][br]下面是作者給soa下的一個(gè)定義:soa是指為了解決在internet環(huán)境下業(yè)務(wù)集成的需要,通過連接能完成特定任務(wù)的獨(dú)立功能實(shí)體實(shí)現(xiàn)的一種軟件系統(tǒng)架構(gòu)。從這個(gè)定義中我希望表達(dá)的前提有下面兩點(diǎn): [br][br]1) 軟件系統(tǒng)架構(gòu):soa不是一種語言,也不是一種具體的技術(shù)而是一種軟件系統(tǒng)架構(gòu),它嘗試給出在特定環(huán)境下推薦采用的一種架構(gòu),從這個(gè)角度上來說,它更像一種模式(pattern)。因此它與很多已有的軟件技術(shù)比如面向?qū)ο蠹夹g(shù),是互補(bǔ)的而非互斥的。它們分別面向不同的應(yīng)用場景,用來滿足不同的特定需求。 [br][br]2) soa的使用范圍:需求決定同時(shí)也限制功能。soa并不是包治百病的萬靈丹,它最主要的應(yīng)用場合在于解決在internet環(huán)境下的不同商業(yè)應(yīng)用之間的業(yè)務(wù)集成問題。在下面我們會(huì)詳細(xì)討論internet的各種特點(diǎn)如何決定soa的特點(diǎn),這里我們只需要先簡單回顧一下internet環(huán)境區(qū)別于intranet環(huán)境的幾個(gè)特點(diǎn): [br][br]a) 大量異構(gòu)系統(tǒng)并存,計(jì)算機(jī)硬件工作方式不同,操作系統(tǒng)不同、編程語言也不同; [br][br]b) 大量、頻繁的數(shù)據(jù)傳輸仍然速度緩慢并且不穩(wěn)定; [br][br]c) 版本升級無法完成,我們根本就無法知道互聯(lián)網(wǎng)上有哪些機(jī)器直接或者間接的使用某個(gè)服務(wù)。 [br][br]基于上面的前提,下面就讓我們一起看一下soa的基本特征。 [br][br]soa三大基本特征 [br][br]1 獨(dú)立的功能實(shí)體 [br][br]在internet這樣松散的使用環(huán)境中,任何訪問請求都有可能出錯(cuò),因此任何企圖通過internet進(jìn)行控制的結(jié)構(gòu)都會(huì)面臨嚴(yán)重的穩(wěn)定性問題。soa非常強(qiáng)調(diào)架構(gòu)中提供服務(wù)的功能實(shí)體的完全獨(dú)立自主的能力。傳統(tǒng)的組件技術(shù),如.net remoting,ejb,com或者corba,都需要有一個(gè)宿主(host或者server)來存放和管理這些功能實(shí)體;當(dāng)這些宿主運(yùn)行結(jié)束時(shí)這些組件的壽命也隨之結(jié)束。這樣當(dāng)宿主本身或者其它功能部分出現(xiàn)問題的時(shí)候,在該宿主上運(yùn)行的其它應(yīng)用服務(wù)就會(huì)受到影響。 [br][br]soa架構(gòu)中非常強(qiáng)調(diào)實(shí)體自我管理和恢復(fù)能力。常見的用來進(jìn)行自我恢復(fù)的技術(shù),比如事務(wù)處理(transaction),消息隊(duì)列(message queue),冗余部署(redundant deployment)和集群系統(tǒng)(cluster)在soa中都起到至關(guān)重要的作用。 [br][br]2 大數(shù)據(jù)量低頻率訪問 [br][br]對于.net remoting,ejb或者xml-rpc這些傳統(tǒng)的分布式計(jì)算模型而言,他們的服務(wù)提供都是通過函數(shù)調(diào)用的方式進(jìn)行的,一個(gè)功能的完成往往需要通過客戶端和服務(wù)器來回很多次函數(shù)調(diào)用才能完成。在intranet的環(huán)境下,這些調(diào)用給系統(tǒng)的響應(yīng)速度和穩(wěn)定性帶來的影響都可以忽略不計(jì),但是在internet環(huán)境下這些因素往往是決定整個(gè)系統(tǒng)是否能正常工作的一個(gè)關(guān)鍵決定因素。因此soa系統(tǒng)推薦采用大數(shù)據(jù)量的方式一次性進(jìn)行信息交換。 [br][br]3 基于文本的消息傳遞 [br][br]由于internet中大量異構(gòu)系統(tǒng)的存在決定了soa系統(tǒng)必須采用基于文本而非二進(jìn)制的消息傳遞方式。在com、corba這些傳統(tǒng)的組件模型中,從服務(wù)器端傳往客戶端的是一個(gè)二進(jìn)制編碼的對象,在客戶端通過調(diào)用這個(gè)對象的方法來完成某些功能;但是在internet環(huán)境下,不同語言,不同平臺(tái)對數(shù)據(jù)、甚至是一些基本數(shù)據(jù)類型定義不同,給不同的服務(wù)之間傳遞對象帶來的很大困難。由于基于文本的消息本身是不包含任何處理邏輯和數(shù)據(jù)類型的,因此服務(wù)間只傳遞文本,對數(shù)據(jù)的處理依賴于接收端的方式可以幫忙繞過兼容性這個(gè)的大泥坑。 [br][br]此外,對于一個(gè)服務(wù)來說,internet與局域網(wǎng)最大的一個(gè)區(qū)別就是在internet上的版本管理極其困難,傳統(tǒng)軟件采用的升級方式在這種松散的分布式環(huán)境中幾乎無法進(jìn)行。采用基于文本的消息傳遞方式,數(shù)據(jù)處理端可以只選擇性的處理自己理解的那部分?jǐn)?shù)據(jù),而忽略其它的數(shù)據(jù),從而得到的非常理想的兼容性。 [br][br]http協(xié)議:一個(gè)典型的soa實(shí)現(xiàn) [br][br]每一項(xiàng)新技術(shù)都是在一些舊的技術(shù)基礎(chǔ)上發(fā)展出來的。正如xml根本思想來自于在60年代就已經(jīng)出現(xiàn)的早期標(biāo)記性語言一樣,soa雖然這兩年才出現(xiàn),但是它所表達(dá)的觀念應(yīng)該說在網(wǎng)絡(luò)這種分布式系統(tǒng)結(jié)構(gòu)出現(xiàn)不久就已經(jīng)廣泛應(yīng)用了。例如我們最熟悉的http協(xié)議就是一個(gè)非常典型的soa架構(gòu)設(shè)計(jì)。http協(xié)議的工作過程簡單敘述如下: [br][br]1) 客戶端,通常是通過瀏覽器,向服務(wù)器端以文本的方式發(fā)送一個(gè)請求,索取一個(gè)web頁面; [br][br]2) 服務(wù)器端接收到這個(gè)請求之后,根據(jù)請求的內(nèi)容進(jìn)行處理并且返回一個(gè)符合html語法的文本; [br][br]3) 客戶端接收到服務(wù)器端的響應(yīng)文本后調(diào)用本地的程序,通常還是瀏覽器,把返回的html文本的內(nèi)容展現(xiàn)出來。 [br][br]下面來看一下http協(xié)議如何滿足了soa的特點(diǎn): [br][br]* 獨(dú)立的功能實(shí)體:作為服務(wù)器端的web服務(wù)器是絕對不會(huì)因?yàn)榭蛻舳说臓顩r變化而改變的,它總是非常穩(wěn)定地按照自己的內(nèi)在邏輯運(yùn)行,響應(yīng)外部的請求,管理自己的資源和數(shù)據(jù)。這里一個(gè)非常好的例子就是web服務(wù)器對緩存(cache)的處理,很多web服務(wù)器為了提高性能都或多或少的對數(shù)據(jù)進(jìn)行緩存,但是緩存數(shù)據(jù)、刷新數(shù)據(jù)這些于客戶端完全無關(guān)的操作完全由服務(wù)器端獨(dú)立完成,完全不受客戶端的影響。 [br][br]* 大數(shù)據(jù)量低頻率訪問:對于一個(gè)http請求來說,客戶端與服務(wù)器之間訪問的邊界非常簡單:就是一個(gè)請求,一個(gè)響應(yīng),沒有任何其它的信息往返。無論客戶端申請的網(wǎng)頁上除了文字之外還有什么信息,對于客戶端來說,它發(fā)出的請求只是簡單的告訴web服務(wù)器它所需要的網(wǎng)頁的位置;至于為了生成這個(gè)網(wǎng)頁,服務(wù)器端是否需要訪問數(shù)據(jù)庫,執(zhí)行servlet或者其它的cgi程序?qū)蛻舳硕裕际峭耆该鞯摹?[br][br]* 基于文本的消息傳遞:迄今為止兼容性最好的系統(tǒng)可能就是http協(xié)議支撐的大部分的web應(yīng)用了,我們可以在windows平臺(tái)下用ie查看互聯(lián)網(wǎng)上一個(gè)linux+apache服務(wù)器上的由perl腳本自動(dòng)生成的網(wǎng)頁。這里的關(guān)鍵就是所有內(nèi)容都是以格式化的文本方式傳遞的,不管perl腳本如何執(zhí)行,只要它的輸出是符合html規(guī)范的網(wǎng)頁,就可以被客戶端的瀏覽器解釋。而由于不同的操作系統(tǒng)上對于相同的html的解釋遵循相同的規(guī)范,因此不同操作系統(tǒng)下仍然能夠看到一致的用戶界面。 [br][br]我們上面基本描述了soa作為一種軟件架構(gòu)有哪些特點(diǎn),下面讓我們一起看看web service與soa的關(guān)系。 [br][br]soa與web service [br][br]web service是就現(xiàn)在而言最適合實(shí)現(xiàn)soa的一些技術(shù)的集合,事實(shí)上最近soa的火爆在很大程度上歸功于web service標(biāo)準(zhǔn)的成熟和應(yīng)用的普及為廣泛的實(shí)現(xiàn)soa架構(gòu)提供了基礎(chǔ)。下面讓我們看看web service中的各種協(xié)議是如何互相工作來滿足soa所需的特點(diǎn)的: [br][br]* 獨(dú)立的功能實(shí)體:通過uddi的目錄查找,我們可以動(dòng)態(tài)改變一個(gè)服務(wù)的提供方而無需影響客戶端的應(yīng)用程序配置。所有的訪問都通過soap訪問進(jìn)行,只要wsdl接口封裝良好,外界客戶端是根本沒有辦法直接訪問服務(wù)器端的數(shù)據(jù)的。 [br][br]* 大數(shù)據(jù)量低頻率訪問:通過使用wsdl和基于文本(literal)的soap請求,我們可以實(shí)現(xiàn)能一次性接收大量數(shù)據(jù)的接口。這里需要著重指出的是soap請求分文本方式和遠(yuǎn)程調(diào)用(rpc)兩種方式,正如上文已經(jīng)提到的,采用遠(yuǎn)程調(diào)用方式的soap請求并不符合這點(diǎn)要求。但是令人遺憾的是現(xiàn)有的大多數(shù)soap請求采用的仍然是遠(yuǎn)程調(diào)用(rpc)方式,在某些平臺(tái)上,例如ibm websphere的早期版本,甚至沒有提供文本方式的soap支持。 [br][br]* 基于文本的消息傳遞:web service所有的通訊是通過soap進(jìn)行的,而soap是基于xml的,不同版本之間可以使用不同的dtd或者xml schema加以辨別和區(qū)分。因此只需要我們?yōu)椴煌陌姹咎峁┎煌奶幚砭涂梢暂p松實(shí)現(xiàn)版本控制的目標(biāo)。 [br][br]soa對于軟件架構(gòu)設(shè)計(jì)的影響 [br][br]無論您現(xiàn)在的系統(tǒng)是否牽涉到基于internet的業(yè)務(wù)集成,采用soa推薦的架構(gòu)都對提高您系統(tǒng)的擴(kuò)展性有很大幫助,下面是在系統(tǒng)中引入soa后需要在軟件架構(gòu)方面做出的改變: [br][br]* 使用基于文本方式的soap調(diào)用,擺脫遠(yuǎn)程調(diào)用中出現(xiàn)的函數(shù)參數(shù)類型等與數(shù)據(jù)無關(guān)的信息,保證所有soap傳遞的都是有意義的商業(yè)數(shù)據(jù)。依賴于schema,而不是類定義對這些數(shù)據(jù)進(jìn)行解釋。 [br][br]* 傳統(tǒng)的三層web應(yīng)用將可能變成四層結(jié)構(gòu):傳統(tǒng)意義上的商業(yè)邏輯層將被進(jìn)一步劃分為存放每個(gè)會(huì)話(session)信息的客戶邏輯層和與狀態(tài)無關(guān)sateless的soa層。

該文章在 2010/5/12 23:40:22 編輯過
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲(chǔ)管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 澳门精准四肖期期准免费公式 | 香港资料大全正版资料手机下载 | 添彩网软件| 2025年澳门开奖记录 | 2025正版资料大全免费 | 2025新奥最近开奖记录021期8 | 7777788888王中王最新传真 | 香港澳门6合开彩结果查询 香港奥门最准精选免费资料大全很历 | 2025年马会正版| 红姐图库免费大全 | 一肖一码期期准 | 宝典图库大全资料下载 | 香港最准最快资料网站 | 2025香港正版资料免费 | 2025澳门宝典资料免费大全 | 2025年澳门今晚一码特中 | 澳彩王中王资料免费看2025年澳门正版资料大全完整版 | 刘伯温玄机一句持码诗 | 新澳门三中三 | 澳门九龙资料免费公开资料新手 | 香港全年内部免费资料级公开 | 二四六香港资料期期准千附三险阻 | 澳门六开彩开奖结果历史查询 | 开好彩大全 | 2025年澳门免费全年资料 | 香港正挂挂牌 | 新澳门免费资料大全历史记录开马 | 搜索抓码王彩图论坛资料 | 香港资料大全彩库宝典 | 2025水果奶奶心水图 | 澳门六开彩正版资料大全免费网站 | 二四六天天彩资料大全网全站版 | 2025澳门天天开好彩大全凤凰天机 | 香港6合开奖第一现场在什么地方 | 正版刘伯温精选资料930下载最新数据 | 新澳免费资料大全精准版 | 今天香港开什么特马 | 2025年澳门正版资料大全完整 | 2025澳门今天晚上开什么生肖啊 | 016期正版资料第一份 | 2025全年澳门与香港免费资料资料 |