解析企業(yè)SOA的十大設(shè)計(jì)原則 |
發(fā)布時(shí)間: 2012/9/13 7:29:47 |
一、明確的邊界 通過(guò)跨越定義明確的邊界進(jìn)行顯式消息傳遞,服務(wù)得以彼此交互。有時(shí)候,跨越服務(wù)邊界可能要耗費(fèi)很大的成本,這要視地理、信任或執(zhí)行因素而定。邊界是指服務(wù)的公共接口與其內(nèi)部專用實(shí)現(xiàn)之間的界線。服務(wù)的邊界通過(guò)WSDL發(fā)布,可能包括說(shuō)明特定服務(wù)之期望的聲明。 二、服務(wù)共享和約和架構(gòu),不是類 服務(wù)交互應(yīng)當(dāng)只以服務(wù)的策略、架構(gòu)和基于合約的行為為基礎(chǔ)。服務(wù)的合約通常使用WSDL定義,而服務(wù)聚合的合約則可以使用BPEL定義(進(jìn)而,對(duì)聚合的每個(gè)服務(wù)使用 WSDL)。服務(wù)使用者將依靠服務(wù)的合約來(lái)調(diào)用服務(wù)及與服務(wù)交互。鑒于這種依賴性,服務(wù)合約必須長(zhǎng)期保持穩(wěn)定。在利用XML架構(gòu) (xsd:any) 和SOAP處理模型(可選標(biāo)頭)的可擴(kuò)展性的同時(shí),合約的設(shè)計(jì)應(yīng)盡可能明確。 三、策略驅(qū)動(dòng) 盡管它往往被認(rèn)為是最不為人所了解的原則,但對(duì)于實(shí)現(xiàn)靈活的Web服務(wù),它或許是最有力的。單純依靠WSDL無(wú)法交流某些業(yè)務(wù)交互要求?梢允褂貌呗员磉_(dá)式將結(jié)構(gòu)兼容性(交流的內(nèi)容)與語(yǔ)義兼容性(如何交流消息或者將消息交流給誰(shuí))分隔開(kāi)來(lái)。 四、自治 服務(wù)是獨(dú)立進(jìn)行部署、版本控制和管理的實(shí)體。開(kāi)發(fā)人員應(yīng)避免對(duì)服務(wù)邊界之間的空間進(jìn)行假設(shè),因?yàn)榇丝臻g比邊界本身更容易改變。 五、采用可傳輸?shù)膮f(xié)議格式,而不是API 通常,服務(wù)提供商基于某種傳輸協(xié)議(例如HTTP)提供服務(wù),而服務(wù)消費(fèi)者只能通過(guò)另一種不同的協(xié)議(比如MQ)通信。因此,也許需要在服務(wù)提供商與消費(fèi)者之間建立一座異步起動(dòng)同步運(yùn)行的連接橋梁,超越HTTP和Java Messaging Service消息服務(wù)(JMS)等協(xié)議。從技術(shù)角度講,Java Messaging Service消息服務(wù)(JMS)并不是一種傳輸協(xié)議,而是一組供應(yīng)商中立(vendor-neutral)的通信APIs。 六、面向文檔 消息被構(gòu)造為“純文本的”XML文檔(換句話說(shuō),數(shù)據(jù)的格式只對(duì)XML有意義)。 消息通常用于傳輸業(yè)務(wù)文檔,比如購(gòu)買(mǎi)訂單、發(fā)票和提單。這種交互類型與同步消息排隊(duì)系統(tǒng)的兼容性很好,比如MQ Series、MSMQ、JMS、TIBCO、IMS等等。 七、松偶合 服務(wù)之間要求最小的依賴性,只要求它們之間能夠相互知曉。 八、符合標(biāo)準(zhǔn) 當(dāng)通過(guò)Web的服務(wù)實(shí)現(xiàn)時(shí),最原始的(基本的)面向服務(wù)的架構(gòu)(SOA)的模型僅僅提供了很低程度上的關(guān)于可靠性、安全性以及事務(wù)管理的標(biāo)準(zhǔn)化機(jī)制。第二代的技術(shù)條件和框架,如WS-ReliableMessaging規(guī)范、WS-Security規(guī)范和WS-Coordination規(guī)范 (與WS-AtomicTransaction規(guī)范和WS-BusinessActivity規(guī)范相聯(lián)系),它們?cè)噲D以工業(yè)標(biāo)準(zhǔn)的方式定位存在的缺陷。 本文出自:億恩科技【mszdt.com】 服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |