本篇重點說明下SOA服務架構規(guī)劃中服務目錄規(guī)劃集的形成。SOA服務架構規(guī)劃不僅僅是基于SOA參考架構的思想,更多的是需要基于TOGAF和企業(yè)架構的思想來分析和構建完整的服務架構和服務目錄庫。 服務架構規(guī)劃的重點有一項是形成完整的服務目錄庫,除了服務本身的多維度分層外,更加重點重要的還是識別出粗粒度和可重用的各類服務。SOA的核心思想就是要將企業(yè)的業(yè)務或信息系統(tǒng)劃分為多個松耦合的組件,然后根據(jù)端到端流程的協(xié)同關系來識別和發(fā)現(xiàn)服務,即業(yè)務能力組件化和組件能力服務化;其次則是要基于云平臺能力向云端集中化遷移的核心思路,來考慮整個IT應用架構中需要平臺化的能力,同時將平臺層能力以服務化的方式暴露出來。 在整個服務架構規(guī)劃中也可以看到,對于主數(shù)據(jù)和共享數(shù)據(jù)的平臺化建設,PaaS技術平臺的建設,最終將識別和產生共享數(shù)據(jù)服務和平臺技術服務。而對于從流程協(xié)同和業(yè)務架構分析入手,更多的產生業(yè)務服務;而對于從數(shù)據(jù)架構中的CRUD矩陣分析入手則產生數(shù)據(jù)服務。 下面再重點闡述下整個服務架構規(guī)劃的核心邏輯和過程: 首先最重要的仍然是當前業(yè)務和IT現(xiàn)狀調研,一開始不要陷入細節(jié),而是應該從端到端業(yè)務流程分析入手,對于工程項目建設,供應鏈,研發(fā)生命周期管理,財務概預核決算,從客戶提出產品或服務的需求到最終的能力交付,都可以看到有不少的端到端流程,這些端到端流程是入手的基礎。通過端到端流程的梳理可以看到流程在多個業(yè)務部門和單位之間的協(xié)同,最終再將業(yè)務流程協(xié)同映射到跨多個業(yè)務系統(tǒng)或業(yè)務組件間的業(yè)務和數(shù)據(jù)協(xié)同??缦到y(tǒng)交互核心流程分析和梳理是識別組件或服務的關鍵一個步驟。 由于企業(yè)整個服務目錄規(guī)劃前期只會做到系統(tǒng)間協(xié)同和能力開放,因此分析到跨系統(tǒng)的端到端流程已經足夠來分析和識別有價值的服務?;谟身斚蛳碌乃悸肺覀儾粫R上落入到某一個業(yè)務活動,或者某一個業(yè)務系統(tǒng)中功能細節(jié),而是分而治之,先將業(yè)務系統(tǒng)內部處理流程和邏輯看為黑盒,先分析清楚哪些能力是業(yè)務系統(tǒng)必須開放出去以實現(xiàn)跨系統(tǒng)流程交互的。 在跨系統(tǒng)流程交互中分析中,自然會分析到業(yè)務協(xié)同和交互過程中傳遞的業(yè)務對象,我們會進一步去分析這些業(yè)務對象映射的數(shù)據(jù)對象,通過單獨數(shù)據(jù)對象的分析以方便我進行單純的數(shù)據(jù)架構建模和數(shù)據(jù)CRUD分析,這個對于后續(xù)分析和識別數(shù)據(jù)分析是相當重要的。 其次,基于業(yè)務和IT調研的內容,我們會初步分析和構建當前企業(yè)的流程和業(yè)務架構,數(shù)據(jù)架構和應用架構,同時在業(yè)務架構中識別和分析相關的業(yè)務組件。如果僅僅是分析到系統(tǒng)間的話,那么最終的業(yè)務系統(tǒng)就是相關的業(yè)務組件,這跟我們識別和分析的粒度密切相關。 在這些都分析完成后,接著可以構建完整的企業(yè)業(yè)務系統(tǒng)間的集成架構視圖,也可以理解為當前的系統(tǒng)間詳細接口和集成情況。這個圖梳理清楚后,基本系統(tǒng)間交互的接口全部梳理清楚,也清楚了系統(tǒng)間集成和交互關系。對于集成架構圖的形成,一方面是采用第一步談到跨系統(tǒng)流程分析和梳理中的接口交互,數(shù)據(jù)架構CRUD分析中的數(shù)據(jù)共享和交互;一方面是由底向上的分析當前系統(tǒng)間已有的歷史接口情況,并對接口的業(yè)務場景和對應流程進行補充梳理,以形成完整的集成架構視圖。 集成架構視圖做好后,可以將前期分析的端到端流程執(zhí)行情況,進一步在集成架構視圖上進行交互模擬,以確保核心的接口交互和服務沒有遺漏。特別要注意的是在前面我們重點分析的是端到端流程,但是很多不是端到端流程場景,例如只跨了兩個業(yè)務系統(tǒng)的簡單業(yè)務流程或協(xié)同,業(yè)務需要進一步考慮清楚,否則會出現(xiàn)較多的集成接口遺漏。 最后,我們需要基于集成架構視圖情況,規(guī)劃和梳理服務目錄集,即按照服務的分層和分類來重新審視當前的系統(tǒng)間集成和能力共享。下面來看下幾類典型服務的進一步服務識別和規(guī)劃。 流程服務:注意端到端流程也是流程服務,但是該流程更加長,也很多對應到最終的流程編排和組合。因此需要從端到端流程中進一步找尋流程協(xié)作片段。這種流程片斷最好是完全的自動化業(yè)務流,或者有較強的一致性和事務要求,這些都可以識別為流程服務。 業(yè)務服務:業(yè)務服務更多強調的是業(yè)務規(guī)則類服務,或者強調基于業(yè)務功能操作觸發(fā)的單條數(shù)據(jù)操作類服務。業(yè)務服務將更加體現(xiàn)服務調用的實時性,和業(yè)務操作場景的綁定以及業(yè)務邏輯的體現(xiàn)?;蛘呖梢岳斫鉃閷τ跇I(yè)務流程中橫向實時協(xié)同的服務都可以看做為業(yè)務服務。 數(shù)據(jù)服務:更多的是從數(shù)據(jù)CRUD分析中識別出來的服務,其中既包括了主數(shù)據(jù),也包括了共享動態(tài)數(shù)據(jù)。一個服務如果更多是事后非實時的共享數(shù)據(jù)傳遞或數(shù)據(jù)查詢,則更多的是數(shù)據(jù)服務。從這個層面來說業(yè)務服務和數(shù)據(jù)服務本身存在一些較難界定清楚的地方。也有一些方法是單獨僅僅將主數(shù)據(jù)和共享數(shù)據(jù)中心提供出來的分析規(guī)劃為數(shù)據(jù)服務,其它全部為業(yè)務服務。 服務全部識別清楚后,還需要進一步對服務進行歸并去重,服務組合或拆分,服務關鍵屬性的定義,以方便根據(jù)服務類型,服務技術分層,服務提供系統(tǒng)多層面來規(guī)劃完整的服務目錄庫和服務視圖。
|
|