新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > 詳細分析SOA的十大設計原則

        詳細分析SOA的十大設計原則

        作者: 時間:2012-10-10 來源:網絡 收藏

        一、明確的邊界

        本文引用地址:http://www.104case.com/article/153840.htm

        通過跨越定義明確的邊界進行顯式消息傳遞,服務得以彼此交互。有時候,跨越服務邊界可能要耗費很大的成本,這要視地理、信任或執行因素而定。邊界是指服務的公共接口與其內部專用實現之間的界線。服務的邊界通過 WSDL 發布,可能包括說明特定服務之期望的聲明。

        二、服務共享和約和架構,不是類

        服務交互應當只以服務的策略、架構和基于合約的行為為基礎。服務的合約通常使用 WSDL 定義,而服務聚合的合約則可以使用 BPEL 定義(進而,對聚合的每個服務使用 WSDL)。服務使用者將依靠服務的合約來調用服務及與服務交互。鑒于這種依賴性,服務合約必須長期保持穩定。在利用 XML 架構 (xsd:any) 和 P 處理模型(可選標頭)的可擴展性的同時,合約的應盡可能明確。

        三、策略驅動

        盡管它往往被認為是最不為人所了解的,但對于實現靈活的 Web 服務,它或許是最有力的。單純依靠 WSDL 無法交流某些業務交互要求。可以使用策略表達式將結構兼容性(交流的內容)與語義兼容性(如何交流消息或者將消息交流給誰)分隔開來。

        四、自治

        服務是獨立進行部署、版本控制和管理的實體。開發人員應避免對服務邊界之間的空間進行假設,因為此空間比邊界本身更容易改變。

        五、采用可傳輸的協議格式,而不是API

        通常,服務提供商基于某種傳輸協議(例如HTTP)提供服務,而服務消費者只能通過另一種不同的協議(比如MQ)通信。因此,也許需要在服務提供商與消費者之間建立一座異步起動同步運行的連接橋梁,超越HTTP和Java Messaging Service消息服務(JMS)等協議。從技術角度講,Java Messaging Service消息服務(JMS)并不是一種傳輸協議,而是一組供應商中立(vendor-neutral)的通信APIs。

        六、面向文檔

        消息被構造為“純文本的”XML文檔(換句話說,數據的格式只對XML有意義)。 消息通常用于傳輸業務文檔,比如購買訂單、發票和提單。這種交互類型與同步消息排隊系統的兼容性很好,比如MQ Series、MSMQ、JMS、TIBCO、IMS等等。

        七、松偶合

        服務之間要求最小的依賴性,只要求它們之間能夠相互知曉。

        八、符合標準

        當通過Web的服務實現時,最原始的(基本的)面向服務的架構()的模型僅僅提供了很低程度上的關于可靠性、安全性以及事務管理的標準化機制。第二代的技術條件和框架,如WS-ReliableMessaging規范、 WS-Security規范和WS-Coordination規范 (與WS-AtomicTransaction規范和WS-BusinessActivity規范相聯系),它們試圖以工業標準的方式定位存在的缺陷。

        九、獨立軟件供應商

        的轉變正在深刻改變了經濟現實。客戶們會期待更合理的費用以及不必重新進行投資就能改進業務的能力。因此,獨立軟件供應商沒有選擇,只能使自己的業務更加靈活,以期讓自己的客戶也變得同樣靈活。于是,面向服務不僅是簡單的在現有的、緊耦合的、復雜的、不靈活的以及非組件化的業務功能上添加基于標準的接口。更重要的是,為了兌現SOA的承諾,獨立軟件供應商必須改變他們構建、打包、銷售、交付、管理和支持自身產品的方式。

        十、元數據驅動

        開發元數據本身并不是元數據驅動應用程序的本意。使用元數據來驅動服務在系統邊界的傳播是一個更為正確的方法。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 闻喜县| 合肥市| 长春市| 平阳县| 通山县| 平阴县| 宁强县| 延吉市| 安塞县| 湘西| 海盐县| 梁山县| 河北省| 容城县| 衡水市| 海兴县| 通化县| 睢宁县| 甘南县| 深州市| 府谷县| 蓬溪县| 郸城县| 内黄县| 翁牛特旗| 宁河县| 临澧县| 平乡县| 抚宁县| 双牌县| 唐海县| 河源市| 平度市| 波密县| 车险| 平阴县| 洛隆县| 达尔| 阿拉善盟| 鄂伦春自治旗| 江油市|