文/朱現(xiàn)坡
SOA(Service-Oriented Architecture),即面向服務(wù)的架構(gòu),是一種軟件體系結(jié)構(gòu)構(gòu)建和設(shè)計風格。其思想是,為解決復(fù)雜業(yè)務(wù)需求,將業(yè)務(wù)系統(tǒng)拆分成相互獨立的單元(服務(wù)),各單元又能按照協(xié)議、接口和業(yè)務(wù)流程進行交互集成。系統(tǒng)建模和服務(wù)重用是SOA體系中經(jīng)常遇到的概念,系統(tǒng)建模是SOA的手段和方法,服務(wù)重用是SOA目的和結(jié)果。本文將對他們的重要性、諸要素及關(guān)系展開論述。
在面向服務(wù)的體系結(jié)構(gòu)中,建模是重要的組成部分,是業(yè)務(wù)需求和系統(tǒng)開發(fā)之間的連接和轉(zhuǎn)換。通過系統(tǒng)建模,約定系統(tǒng)的結(jié)構(gòu)和行為,給出指導(dǎo)構(gòu)造系統(tǒng)的模板,使系統(tǒng)的功能、業(yè)務(wù)流程、和數(shù)據(jù)關(guān)系達到一定程度的可視化,并通過文檔描述所有的成果。這些成果,為后續(xù)應(yīng)用服務(wù)的設(shè)計、程序代碼框架搭建、編碼、及系統(tǒng)測試提供了依據(jù)。
“重用是工業(yè)生產(chǎn)的基礎(chǔ),也是世界變革的標志”。服務(wù)是SOA交付的最重要資產(chǎn)。構(gòu)建服務(wù)體系架構(gòu)中最重要的目標和目的之一就是服務(wù)重用。資產(chǎn)重用是軟件系統(tǒng)投資建設(shè)價值的重要體現(xiàn)。服務(wù)重用對組織過程資產(chǎn)積累非常重要,各種業(yè)務(wù)系統(tǒng)開發(fā)中積累的可重用服務(wù)是公司的重要資產(chǎn)。服務(wù)重用,既能降低業(yè)務(wù)模塊開發(fā)的邊際成本,又能減少編碼、測試和維護時間、促進新業(yè)務(wù)系統(tǒng)的快速交付,還能降低項目的風險。服務(wù)重用是提高軟件資產(chǎn)投資回報率,增加公司/組織利潤的關(guān)鍵。有戰(zhàn)略規(guī)劃的、管理規(guī)范的服務(wù)重用,將使軟件生產(chǎn)線成為可能。
面向服務(wù)架構(gòu)中系統(tǒng)建模要素包括,系統(tǒng)整體需求、系統(tǒng)功能、業(yè)務(wù)流程、數(shù)據(jù)關(guān)系、設(shè)計理念和抽象能力、管理規(guī)范和領(lǐng)域標準。
(1)系統(tǒng)整體需求,是系統(tǒng)建模的整體目標和指導(dǎo)方針,是為需求方解決問題的全局描述,是用戶/客戶心中的期盼。
(2)系統(tǒng)功能,是系統(tǒng)建模中對“做什么”的定義,描述系統(tǒng)的功能、性能、內(nèi)外部接口和用戶界面。系統(tǒng)建模中根據(jù)系統(tǒng)功能形成功能模型(FM)。
(3)業(yè)務(wù)流程,是系統(tǒng)建模中對“怎么做”的定義,描述系統(tǒng)在何時、何地、由何角色、按什么業(yè)務(wù)規(guī)則去做,以及做的步驟或流程。系統(tǒng)建模中根據(jù)業(yè)務(wù)流程形成業(yè)務(wù)模型(OM)。
圖1:系統(tǒng)建模和服務(wù)重用各要素及關(guān)系圖
圖2:建模和重用例圖
(4)數(shù)據(jù)關(guān)系,是系統(tǒng)建模中對“數(shù)據(jù)結(jié)構(gòu)”的定義,描述系統(tǒng)數(shù)據(jù)結(jié)構(gòu)、操作、關(guān)系、約束、流轉(zhuǎn)、價值和生命周期。系統(tǒng)建模中根據(jù)數(shù)據(jù)關(guān)系形成數(shù)據(jù)模型(OM)。
(5)設(shè)計理念和抽象能力,是系統(tǒng)建模的基礎(chǔ)思想準備,是系統(tǒng)建模能力的重要瓶頸,基礎(chǔ)思想與系統(tǒng)整體需求有機結(jié)合對系統(tǒng)建模至關(guān)重要。
(6)管理規(guī)范和領(lǐng)域標準,是系統(tǒng)建模的指導(dǎo)規(guī)范,組織/公司內(nèi)部統(tǒng)一的規(guī)范和標準的約束,是系統(tǒng)建模結(jié)果為所有相關(guān)人員所理解的保障。
面向服務(wù)架構(gòu)(SOA)中服務(wù)重用要素包括,事業(yè)環(huán)境因素、產(chǎn)品戰(zhàn)略、業(yè)務(wù)過程模型、可用服務(wù)、設(shè)計理念和抽象能力、管理規(guī)范和領(lǐng)域標準。
(1)事業(yè)環(huán)境因素,是指影響本組織業(yè)務(wù)和產(chǎn)品的所有內(nèi)外部環(huán)境因素,以及本組織對服務(wù)重用的指導(dǎo)思想和態(tài)度。
(2)產(chǎn)品戰(zhàn)略,是指本組織當前的產(chǎn)品、產(chǎn)品之間的關(guān)系和產(chǎn)品規(guī)劃,關(guān)鍵業(yè)務(wù)和業(yè)務(wù)流程。產(chǎn)品戰(zhàn)略是服務(wù)重用的目標依據(jù)。
(3)業(yè)務(wù)過程模型,是根據(jù)業(yè)務(wù)需求對業(yè)務(wù)流程的抽象整合,需要基于服務(wù)組合實現(xiàn)業(yè)務(wù)需求。
(4)可用服務(wù),是指業(yè)務(wù)系統(tǒng)建設(shè)中形成的可重用服務(wù)資產(chǎn),可用服務(wù)不依賴于具體系統(tǒng)和具體業(yè)務(wù)流程,可組合形成新的業(yè)務(wù)。必須存在有價值的可重有服務(wù)才能實現(xiàn)服務(wù)重用。
(5)設(shè)計理念和抽象能力,是服務(wù)重用的基礎(chǔ)思想準備,是實現(xiàn)業(yè)務(wù)過程模型與服務(wù)和服務(wù)組合有機結(jié)合的重要能力。
(6)管理規(guī)范和領(lǐng)域標準,是服務(wù)重用的指導(dǎo)規(guī)范,組織/公司內(nèi)部統(tǒng)一的規(guī)范和標準的約束,是服務(wù)可重用的重要依賴條件。
(1)系統(tǒng)建模是服務(wù)重用的前提,服務(wù)重用是系統(tǒng)建模的目標。服務(wù)重用最重要的一點在于,在服務(wù)創(chuàng)建過程中就應(yīng)該重點考慮重用。而系統(tǒng)建模是服務(wù)創(chuàng)建的必要前置步驟。從整個組織的價值視角看,系統(tǒng)建模是手段和方法,服務(wù)重用是目的和結(jié)果。
SOA中的服務(wù)能否重用,是否好用,能否通過服務(wù)的有機組合實現(xiàn)新的業(yè)務(wù)需求,系統(tǒng)建模起著決定性的作用。業(yè)務(wù)粒度的劃分、建模抽象化的程度、系統(tǒng)架構(gòu)和程序設(shè)計的經(jīng)驗、文檔的完備和描述水平,都將決定著服務(wù)在多大程度上可以重用。進一步說,好的系統(tǒng)建模形成的組件、模板、設(shè)計方法、最佳實踐、工具都可以作為組織的資產(chǎn)加以重用。如圖1所示。
(2)系統(tǒng)建模和業(yè)務(wù)重用都需要對整體需求的掌握。系統(tǒng)建模中系統(tǒng)整體需求、系統(tǒng)功能、業(yè)務(wù)流程、數(shù)據(jù)關(guān)系等要素都基于對本系統(tǒng)整體需求的高度理解和把握,服務(wù)重用中事業(yè)環(huán)境因素、產(chǎn)品戰(zhàn)略、業(yè)務(wù)過程模型也是基于本組織整體需求的高度理解和把握。
(3)系統(tǒng)建模和業(yè)務(wù)重用都需要業(yè)務(wù)流程的建模。系統(tǒng)建模和業(yè)務(wù)重用都需要理解產(chǎn)品功能和約束條件,需要分析系統(tǒng)內(nèi)外部的業(yè)務(wù)關(guān)系,需要基于業(yè)務(wù)流程形成業(yè)務(wù)模型或業(yè)務(wù)組合模型。
(4)系統(tǒng)建模和業(yè)務(wù)重用都需要設(shè)計理念和抽象能力的指導(dǎo)。設(shè)計理念和抽象能力是SOA建模、業(yè)務(wù)重用、服務(wù)體系架構(gòu)的統(tǒng)一基礎(chǔ)思想。
(5)系統(tǒng)建模和業(yè)務(wù)重用都需要遵循組織的管理規(guī)范和領(lǐng)域標準。
假設(shè)某公司根據(jù)客戶需求或自身發(fā)展,需要先后建設(shè)B2B、B2C、B2B2C三個電商系統(tǒng)。使用SOA,通過合理的系統(tǒng)建模,各系統(tǒng)開發(fā)了很多服務(wù)。各系統(tǒng)的主要模型和服務(wù),如圖2。
圖2中顯示,最先建設(shè)的B2B系統(tǒng)的部分服務(wù)通過組合在隨后建設(shè)的B2C系統(tǒng)中得到重用;而在后來的B2B2C系統(tǒng)建設(shè)時,只需要將B2B和B2C系統(tǒng)的部分服務(wù)通過組合重用即可實現(xiàn)大部分需求。