在開(kāi)發(fā)面向服務(wù)的體系結(jié)構(gòu)(Service-Oriented Architecture,,SOA)應(yīng)用程序時(shí),您的組織很可能會(huì)存在需要進(jìn)行大量的實(shí)現(xiàn)和測(cè)試工作的非功能需求(NonFunctional Requirement,,NFR)。Shiv Asthana 在本文中介紹了在測(cè)試作為 SOA 環(huán)境的一部分構(gòu)建的應(yīng)用程序的非功能需求時(shí)需要遵循的最佳實(shí)踐,。 引言 SOA 是一種 IT 體系結(jié)構(gòu)風(fēng)格,,支持將您的業(yè)務(wù)轉(zhuǎn)換為一組相互鏈接的服務(wù)或可重復(fù)業(yè)務(wù)任務(wù),可在需要時(shí)通過(guò)網(wǎng)絡(luò)訪問(wèn)這些服務(wù)和任務(wù),。這個(gè)網(wǎng)絡(luò)可以是局域網(wǎng),、Internet,或者一組不同位置提供的分散各處且采用多種技術(shù),,但以類似于安裝在本地桌面的方式交互的服務(wù),。可以對(duì)這些服務(wù)進(jìn)行結(jié)合,,以完成特定的業(yè)務(wù)任務(wù),,從而讓您的業(yè)務(wù)快速適應(yīng)不斷變化的客觀條件和需求。也就是說(shuō),,SOA 遵循查找,、綁定并執(zhí)行的關(guān)鍵原則工作,非常適合用于滿足請(qǐng)求/響應(yīng)類型的業(yè)務(wù)需求,。 當(dāng)由能夠解決難點(diǎn)或?qū)崿F(xiàn)特定手動(dòng)任務(wù)的自動(dòng)化的策略業(yè)務(wù)目標(biāo)和需求對(duì) SOA 實(shí)現(xiàn)進(jìn)行引導(dǎo)時(shí),,就可以實(shí)現(xiàn)業(yè)務(wù)轉(zhuǎn)換。這樣能夠帶來(lái)諸多好處,,包括:
不過(guò),,只有在將功能需求和非功能需求包含到應(yīng)用程序中并無(wú)縫集成到生產(chǎn)環(huán)境中,才能夠?qū)崿F(xiàn) SOA 承諾的好處,。因此,,理想的實(shí)現(xiàn)和測(cè)試在關(guān)鍵時(shí)刻是必不可少的。 NFR 測(cè)試的主要挑戰(zhàn)出現(xiàn)在 SOA 應(yīng)用程序在實(shí)驗(yàn)室環(huán)境中開(kāi)發(fā)或作為軟件供應(yīng)商的新產(chǎn)品投資組合的一部分開(kāi)發(fā)時(shí),,在這些情況下,,大多數(shù)時(shí)候生產(chǎn)環(huán)境都不可用。其他的挑戰(zhàn)包括:
雖然沒(méi)有測(cè)試軟件的最佳萬(wàn)能方法,,但可以參考下面根據(jù)我的經(jīng)驗(yàn)給出的列表,。除了應(yīng)對(duì)上面的一些挑戰(zhàn)外,這些建議還可能會(huì)帶來(lái)其他優(yōu)勢(shì):
注意: IBM Rational RequisitePro,、IBM Rational Test Manager 和 IBM Rational ClearQuest® 可分別用于進(jìn)行需求管理,、測(cè)試用例管理和缺陷管理。 標(biāo)識(shí)為測(cè)試創(chuàng)建存根和模擬器的需求 正如前面提到的,,SOA 測(cè)試中的一個(gè)挑戰(zhàn)是創(chuàng)建存根和模擬器,。存根和模擬器替代生產(chǎn)環(huán)境中的遺留應(yīng)用程序和其他外部應(yīng)用程序(在生產(chǎn)中作為后端系統(tǒng))。除了業(yè)務(wù)領(lǐng)域的知識(shí)外,,還可以通過(guò)分析所開(kāi)發(fā)的應(yīng)用程序的系統(tǒng)上下文來(lái)創(chuàng)建存根和模擬器(請(qǐng)參見(jiàn)圖 2),。 在圖 2 中,需要模擬遺留生產(chǎn)系統(tǒng)(藍(lán)色)和外部系統(tǒng)(粉紅色)作為存根,,以測(cè)試新應(yīng)用程序(功能和非功能測(cè)試都需要),。 測(cè)試團(tuán)隊(duì)可以首先從了解這些系統(tǒng)的功能入手,然后尋找模擬這些系統(tǒng)進(jìn)行測(cè)試的簡(jiǎn)單方法,。在大多數(shù)情況下,,一個(gè)簡(jiǎn)單的數(shù)據(jù)庫(kù)就可以幫助解決問(wèn)題,但其中應(yīng)該包括支持所要測(cè)試的業(yè)務(wù)事務(wù)的所有表格和示例數(shù)據(jù),。 這些最佳實(shí)踐在實(shí)際工作中的應(yīng)用 IBM 名為 Global Business Solutions Center (GBSC) 的團(tuán)隊(duì)開(kāi)發(fā)并測(cè)試了名為組合業(yè)務(wù)服務(wù)(Composite Business Service,,CBS)的 SOA 應(yīng)用程序,此類應(yīng)用程序在 IBM SOA Foundation 和中間件堆棧(如 IBM WebSphere® Process Server,、IBM WebSphere Application Server,、IBM WebSphere Business Services Fabric、IBM WebSphere MQ 和 IBM DB2® 產(chǎn)品)上運(yùn)行,。CBS 是相關(guān)的集成業(yè)務(wù)服務(wù)的集合,,能提供特定的業(yè)務(wù)解決方案,并支持在 SOA 上構(gòu)建的業(yè)務(wù)流程。 通常,,CBS 與客戶環(huán)境中的其他應(yīng)用程序和/或服務(wù)集成,,從而為客戶提供所需的業(yè)務(wù)解決方案。業(yè)務(wù)解決方案由編排在一起的業(yè)務(wù)服務(wù)組成,。也就是說(shuō),,CBS 不是獨(dú)立解決方案,而是能夠使用一個(gè)或多個(gè) CBS 創(chuàng)建的解決方案,。 使用 CBS 創(chuàng)建的端到端解決方案的客戶目標(biāo)是銀行,、醫(yī)療、保險(xiǎn)和零售等行業(yè)及政府部門,??紤]到這些行業(yè)的本質(zhì)和規(guī)模,您可以發(fā)現(xiàn),,SOA 的角色是支持大容量和任務(wù)關(guān)鍵型業(yè)務(wù)事務(wù)的處理,,以及支持異類環(huán)境中的持續(xù)業(yè)務(wù)更改。 這就是 NFR 為何在對(duì)客戶的業(yè)務(wù)進(jìn)行轉(zhuǎn)換的過(guò)程中如此重要的原因,。目前在 GBSC 中開(kāi)發(fā)的 CBS 已經(jīng)針對(duì)上面建議的大部分需求進(jìn)行了測(cè)試,,在某些情況下具有出眾的性能基準(zhǔn),如在單個(gè)批處理提交中能處理超過(guò) 2 百萬(wàn)個(gè)事務(wù)的能力,,以及所報(bào)告的各種任務(wù)關(guān)鍵型流程的卓越吞吐量和響應(yīng)時(shí)間,。 測(cè)試人員使用 Rational Performance Tester、IBM Tivoli® Composite Application Manager 以及自主構(gòu)建的實(shí)用工具程序等工具來(lái)創(chuàng)建測(cè)試數(shù)據(jù)和實(shí)現(xiàn)特定測(cè)試用例的自動(dòng)化,。我在這個(gè)列表中忽略了常規(guī)的測(cè)試和缺陷管理工具,,如 Rational Test Manager 和 Rational ClearQuest 等,因?yàn)榇祟惓R?guī)工具用于同時(shí)支持功能和非功能測(cè)試,。 圖 3 顯示,,在示例應(yīng)用程序中的業(yè)務(wù)事務(wù) 1 的并發(fā)用戶數(shù)量從 1,000 增加到 1,150 時(shí),平均響應(yīng)時(shí)間從 3 秒增加到了 3.2 秒,。 圖 4 顯示,,在示例應(yīng)用程序中的業(yè)務(wù)事務(wù) 2 的并發(fā)用戶數(shù)量從 1,000 增加到 1,150 時(shí),平均響應(yīng)時(shí)間從 7.9 秒增加到了 10.7 秒,。 回顧與 NFR 關(guān)聯(lián)的表格時(shí),,請(qǐng)注意參考數(shù)據(jù)極為關(guān)鍵。如果沒(méi)有這些數(shù)字,,就沒(méi)有意義,。例如,如果收集并發(fā)布性能相關(guān)的基準(zhǔn),,至少應(yīng)該提供以下參考數(shù)據(jù):
雖然測(cè)試 NFR 是成功采用 SOA 應(yīng)用程序所必不可少的步驟,,但請(qǐng)記住,,如果沒(méi)有具體的量化要求(在可能的情況下),則可能會(huì)遇到麻煩,。在實(shí)驗(yàn)室環(huán)境中進(jìn)行測(cè)試和開(kāi)發(fā)時(shí),,如果并發(fā)性和容量/負(fù)載需求之類的非功能標(biāo)準(zhǔn)未量化,而測(cè)試團(tuán)隊(duì)進(jìn)入了基準(zhǔn)確定階段,,則更容易出現(xiàn)這種情況,。此時(shí),完成項(xiàng)目所需的時(shí)間和工作量都會(huì)大幅度增加,。 不過(guò),,如果創(chuàng)建了采用計(jì)劃并與所有項(xiàng)目涉眾進(jìn)行了共享,則可以緩解這個(gè)風(fēng)險(xiǎn),。接下來(lái)讓我們了解一下如何為項(xiàng)目制定采樣計(jì)劃,,您需要在其中確定 SOA 應(yīng)用程序能夠處理的最大事務(wù)量,。 首先,,將所有可以在測(cè)試環(huán)境中處理的事務(wù)排列和組合添加到表格中。請(qǐng)參見(jiàn)表 3 中的示例,。
隨后,,進(jìn)行了應(yīng)用程序開(kāi)發(fā)之后,處理少量的文件,,并根據(jù)得到的數(shù)據(jù)進(jìn)行推斷,。可以上載 100 個(gè)批次,,每個(gè)文件中包含 100 個(gè)請(qǐng)求,,根據(jù)其處理此數(shù)目所需的時(shí)間,可以評(píng)估處理表 3 中所示的文件排列和組合所需的時(shí)間,。 根據(jù)可用時(shí)間和資源以及確信度,,您可以決定基準(zhǔn)確定工作的開(kāi)始和結(jié)束時(shí)機(jī)。檢查根據(jù)表 3 創(chuàng)建的采樣計(jì)劃(請(qǐng)參見(jiàn)表 4),。
盡管這些目標(biāo)值可能會(huì)在確定基準(zhǔn)的過(guò)程中失效,但可以幫助規(guī)劃這個(gè)級(jí)別本身的測(cè)試方法,。例如,,如果采用 100*40000 個(gè)文件的測(cè)試用例失敗,那么如何進(jìn)行相關(guān)工作呢,?可行且實(shí)際的做法是,,僅僅以預(yù)先規(guī)劃的方式進(jìn)行處理;例如,如果 100*40000 失敗,,則嘗試 100*37500,,然后 100*35000,以此類推,。請(qǐng)參見(jiàn)表 5 中給出的更多示例,。
在實(shí)現(xiàn)較高級(jí)別的非功能能力方面的限制 在采用 SOA 的過(guò)程中,,完全有可能發(fā)掘出現(xiàn)有 IT 系統(tǒng)的全部潛力,。但中間件堆棧中使用的各個(gè)組件可能會(huì)造成一些限制,而在運(yùn)行生產(chǎn)環(huán)境中的 SOA 應(yīng)用程序和遺留應(yīng)用程序時(shí)需要中間件堆棧,。為了便于理解,,讓我們以使用規(guī)則引擎為例,該引擎在給定時(shí)間只能處理 X 個(gè)事務(wù),。如果此規(guī)則引擎掛鉤到 SOA 應(yīng)用程序,,就會(huì)造成約束,使性能級(jí)別不高于 X,。 希望通過(guò)本文能夠給您組織的 SOA 采用之旅帶來(lái)一定的幫助,。雖然這些最佳實(shí)踐的應(yīng)用取決于您當(dāng)前的 SOA 成熟度級(jí)別和改進(jìn)機(jī)會(huì),但上面列表中給出的挑戰(zhàn),、非功能特征,、工具、實(shí)際實(shí)現(xiàn)示例能夠幫助您確定如何著手進(jìn)行此工作,。而且,,NFR 的成功實(shí)現(xiàn)最終將在 IT 和業(yè)務(wù)流程之間形成一個(gè)關(guān)聯(lián)關(guān)系,而這就是我們的主要目標(biāo),。 學(xué)習(xí)
獲得產(chǎn)品和技術(shù)
討論
|
|