<ruby id="h6500"><table id="h6500"></table></ruby>
    1. <ruby id="h6500"><video id="h6500"></video></ruby>
          1. <progress id="h6500"><u id="h6500"><form id="h6500"></form></u></progress>
            • 軟件測試技術(shù)
            • 軟件測試博客
            • 軟件測試視頻
            • 開(kāi)源軟件測試技術(shù)
            • 軟件測試論壇
            • 軟件測試沙龍
            • 軟件測試資料下載
            • 軟件測試雜志
            • 軟件測試人才招聘
              暫時(shí)沒(méi)有公告

            字號: | 推薦給好友 上一篇 | 下一篇

            SOA特征簡(jiǎn)介與Web擴展服務(wù)的前景展望

            發(fā)布: 2008-9-02 15:12 | 作者: Mark Colan | 來(lái)源: http://www.csai.cn  | 查看: 61次 | 進(jìn)入軟件測試論壇討論

            領(lǐng)測軟件測試網(wǎng) 什么是面向服務(wù)的體系結構(SOA)?

              面向服務(wù)的體系結構(SOA)表示您可以如何使用 Web 服務(wù)的大圖景。Web 服務(wù)規范定義了實(shí)現服務(wù)以及與它們的交互所需要的細節。然而,面向服務(wù)的體系結構(SOA)是一種用于構建分布式系統的方法,采用 SOA 這種方法構建的分布式應用程序可以將功能作為服務(wù)交付給終端用戶(hù),也可以構建其他的服務(wù)。面向服務(wù)的體系結構(SOA)可以基于 Web 服務(wù),但是它可能改為使用其他的技術(shù)來(lái)代替。在使用面向服務(wù)的體系結構(SOA)設計分布式應用程序時(shí),您可以將 Web 服務(wù)的使用從簡(jiǎn)單的客戶(hù)端-服務(wù)器模型擴展成任意復雜的系統。

              因而,單個(gè)的軟件資產(chǎn)成為開(kāi)發(fā)其他應用程序的基本構件。您可以通過(guò)與新的代碼和遺留代碼一起使用的共同交互方式來(lái)減少系統的復雜性(CBDi 的 Lawrence Wilkes 開(kāi)玩笑說(shuō),面向服務(wù)的體系結構(SOA)可以代表“節省我們的資產(chǎn)(Save Our Assets)”)。有一種標準的方法可以用于表示這些軟件資產(chǎn)和與它們交互;現在人們關(guān)注的重點(diǎn)已經(jīng)轉移到基于這些構件的應用程序裝配上來(lái)了。

              雖然在這里討論的是用于業(yè)務(wù)應用程序的面向服務(wù)的體系結構(SOA),但是面向服務(wù)的體系結構(SOA)同樣也可以用于其他的分布式系統,比如網(wǎng)格計算和高級 Web 服務(wù)規范(例如,Web 服務(wù)分布式管理(WS-DistributedManagement)、Web 服務(wù)信任(WS-Trust)以及 UDDI)。

              什么是服務(wù)?

              在面向服務(wù)的體系結構(SOA)中,服務(wù)(service)是封裝成用于業(yè)務(wù)流程的可重用組件的應用程序函數。它提供信息或簡(jiǎn)化業(yè)務(wù)數據從一個(gè)有效的、一致的狀態(tài)向另一個(gè)狀態(tài)的轉變。用于實(shí)現特定服務(wù)的流程并不重要,只要它響應您的命令并為您的請求提供高質(zhì)量的服務(wù)就可以了。

              通過(guò)定義的通信協(xié)議,可以調用服務(wù)來(lái)強調互操作性和位置透明性。一個(gè)服務(wù)表現為一個(gè)軟件組件,因為從服務(wù)請求者的角度來(lái)看,它看起來(lái)就像是一個(gè)自包含的函數。然而,實(shí)際上,服務(wù)的實(shí)現可能包括在一個(gè)企業(yè)內部的不同計算機上或者許多業(yè)務(wù)合作伙伴擁有的計算機上執行的很多步驟。就封裝的軟件而言,服務(wù)可能是一個(gè)組件,也可能不是一個(gè)組件。如同類(lèi)對象,請求者應用程序能夠將服務(wù)看作是一個(gè)整體。

              Web 服務(wù)是以使用 SOAP 消息(它是用像 HTTP 這樣的標準協(xié)議上的 WSDL 來(lái)描述的)的調用為基礎的。使用 Web 服務(wù)的最佳實(shí)踐就是與外部的業(yè)務(wù)伙伴通信。

              松耦合

              服務(wù)請求者到服務(wù)提供者的綁定與服務(wù)之間應該是松耦合的。這就意味著(zhù),服務(wù)請求者不知道提供者實(shí)現的技術(shù)細節,比如程序設計語(yǔ)言、部署平臺,等等。服務(wù)請求者往往通過(guò)消息調用操作——請求消息和響應——而不是通過(guò)使用 API 和文件格式。

              這個(gè)松耦合使會(huì )話(huà)一端的軟件可以在不影響另一端的情況下發(fā)生改變,前提是消息模式保持不變。在一個(gè)極端的情況下,服務(wù)提供者可以將以前基于遺留代碼(例如,COBOL)的實(shí)現完全用基于 Java 語(yǔ)言的新代碼取代,同時(shí)又不對服務(wù)請求者造成任何影響。這種情況是真實(shí)的,只要新代碼支持相同的消息模式。

              明確定義的接口

              服務(wù)交互必須是明確定義的。Web 服務(wù)描述語(yǔ)言(Web services Description Language,WSDL)是受到廣泛支持的方法,用于描述服務(wù)請求者所要求的綁定到服務(wù)提供者的細節。服務(wù)描述的重點(diǎn)在于與下面幾部分交互所用的操作:

              服務(wù)
              調用操作的消息
              構造這種消息的細節
              關(guān)于向何處發(fā)送用于構造這種消息的處理細節的消息的信息
              WSDL 不包括服務(wù)實(shí)現的任何技術(shù)細節。服務(wù)請求者不知道也不關(guān)心服務(wù)究竟是由 Java 代碼、C#、COBOL,還是由某種其他的程序設計語(yǔ)言編寫(xiě)的。它可以描述使用 HTTP 的 SOAP 調用。由于它的擴展機制,它也可以定義其他類(lèi)型的交互,比如通過(guò) JMS 提交的 XML 內容、直接方法調用、由管理遺留代碼的適配器處理的調用(CICS),等等。

              WSDL 的通用定義允許開(kāi)發(fā)工具創(chuàng )建各種各樣類(lèi)型的交互的通過(guò)接口,同時(shí)隱藏它是如何由應用程序代碼調用服務(wù)的細節。例如,如果服務(wù)是以多種交互類(lèi)型公開(kāi)的,Web 服務(wù)調用框架(Web Services Invocation Framework,WSIF)通過(guò)允許運行時(shí)決定調用高質(zhì)量服務(wù)的最優(yōu)方法來(lái)使用這種能力。

              無(wú)狀態(tài)的服務(wù)設計

              服務(wù)應該是獨立的、自包含的請求,在實(shí)現時(shí)它不需要從一個(gè)請求到另一個(gè)請求的信息或狀態(tài)。服務(wù)不應該依賴(lài)于其他服務(wù)的上下文和狀態(tài)。當需要依賴(lài)時(shí),它們最好定義成通用業(yè)務(wù)流程、函數和數據模型,而不是實(shí)現構件(比如會(huì )話(huà)密鑰)。當然,請求者應用程序需要服務(wù)調用之間的持久狀態(tài),但是這不應該與服務(wù)提供者分開(kāi)。

              這里有一個(gè)定義會(huì )話(huà)的錯誤方法的示例:

               Requester: “What is Bruce’s checking account balance?"
               Provider: “$x"
               Requester: “And what is his credit limit?"
               Provider: “$y"
             
              提供者被要求記住請求之間 Bruce 的帳號,這就在服務(wù)實(shí)現中引入了復雜性。無(wú)狀態(tài)的服務(wù)設計將重新定義會(huì )話(huà),如下所示:

               Requester: “What is Bruce’s checking account balance?"
               Provider: “$x"
               Requester: “What is Bruce’s credit limit?"
               Provider: “$y"
             
              服務(wù)粒度

              操作的粒度是一項重要的設計要點(diǎn)。對于外部的消耗推薦使用粗粒度的接口,而細粒度的接口可能用于企業(yè)內部。粗粒度接口可能是特定服務(wù)的完整處理,例如 SubmitPurchaseOrder,在這里消息包括定義訂購單所需的所有業(yè)務(wù)信息。細粒度接口可能具有用于以下方法的不同操作:CreateNewPurchaseOrder、SetShippingAddress、AddItem,等等。

              雖然細粒度的接口為請求者應用程序提供了更多的靈活性,它同樣也意味著(zhù)交互的模式可能隨著(zhù)不同的服務(wù)請求者而不同。這可能使對于服務(wù)提供者的支持更加困難。粗粒度接口保證服務(wù)請求者將以一致的方式使用服務(wù)。面向服務(wù)的體系結構(SOA)不要求使用粗粒度接口,但是推薦使用它們作為外部集成的最佳實(shí)踐。服務(wù)編排可以用來(lái)創(chuàng )建運行由細粒度操作組成的業(yè)務(wù)流程的粗粒度接口。

              服務(wù)質(zhì)量需要考慮的問(wèn)題

              面向服務(wù)的體系結構(SOA)設計將跨越計算機系統,并且還可能跨越企業(yè)邊界。您不得不考慮在使用 Internet 時(shí)安全性功能和需求以及如何鏈接伙伴的安全域。Internet 協(xié)議并不是為可靠性(有保證的提交和提交的順序)而設計,但是您不得不確保消息被提交并被處理一次。當這不可能時(shí),請求者必須知道請求并沒(méi)有被處理。

              例如,您可能需要考慮您所部署服務(wù)的度量、可靠性以及響應時(shí)間,以便確保它們在承諾的范圍之內。當您設計使用來(lái)自其他業(yè)務(wù)伙伴的服務(wù)的系統時(shí),您就不得不考慮面向服務(wù)的管理來(lái)以協(xié)作方式管理伙伴之間的服務(wù)。

            延伸閱讀

            文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/

            TAG: soa SOA web Web WEB 簡(jiǎn)介 前景 特征


            關(guān)于領(lǐng)測軟件測試網(wǎng) | 領(lǐng)測軟件測試網(wǎng)合作伙伴 | 廣告服務(wù) | 投稿指南 | 聯(lián)系我們 | 網(wǎng)站地圖 | 友情鏈接
            版權所有(C) 2003-2010 TestAge(領(lǐng)測軟件測試網(wǎng))|領(lǐng)測國際科技(北京)有限公司|軟件測試工程師培訓網(wǎng) All Rights Reserved
            北京市海淀區中關(guān)村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
            技術(shù)支持和業(yè)務(wù)聯(lián)系:info@testage.com.cn 電話(huà):010-51297073

            軟件測試 | 領(lǐng)測國際ISTQBISTQB官網(wǎng)TMMiTMMi認證國際軟件測試工程師認證領(lǐng)測軟件測試網(wǎng)

            老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月
              <ruby id="h6500"><table id="h6500"></table></ruby>
              1. <ruby id="h6500"><video id="h6500"></video></ruby>
                    1. <progress id="h6500"><u id="h6500"><form id="h6500"></form></u></progress>