在EA企業架構中我們經常談到業務架構(流程視圖),數據架構(信息視圖),應用架構(應用視圖)和技術架構。對于流程視圖和信息視圖是偏業務層面的內容,而對于應用架構,應用集成架構和技術架構則偏技術方面的內容。
在原有的EA企業架構和信息化規劃中,我們比較少談到服務視圖的概念,而引入了SOA實施方法論和SOA集成后,服務視圖的概念就顯得越來越重要,服務視圖本身是一個服務能力提供視圖,是業務和IT能力提供中心。服務視圖的構建目的就是能夠更加清楚的展現業務和IT的可重用的能力。
構建服務視圖包括兩個方面的內容,一個是服務的識別和定義,一個是服務的展現。
服務識別和定義
對于服務的識別和定義,我們遵循一個基本的準則,即先通過業務流程,數據和應用驅動識別出候選服務,然后對候選服務進行多維度評分,得到最終選擇的服務,然后再對服務進行詳細的定義和設計。
對于服務識別的核心仍然要以流程,數據和應用三個角度進行分析和梳理。對于流程需要從端到端流程出發,然后進行二級,三級流程的分解,細化到具體的業務活動或操作單元。然后分析這些業務活動或操作哪些是可以復用的公共功能,具體包括:
流程公用性:業務活動單元在哪些流程里面都會使用到?活動和流程的對應關系是如何的?
應用公用性:業務活動單元在哪些應用里面會使用到?特別是是否存在多個業務系統使用?
而對于信息視圖驅動,則常見的分析方法還是數據和業務功能間對應的CRUD分析。這個分析可以先在已經細化出具體的業務活動單元后再進行。有了業務活動或功能,然后由具體的信息視圖中的數據模型,這兩者之間可以進行CRUD分析,分析數據跨業務流程,跨系統,跨功能模塊的使用情況。這個分析是我們后續識別數據服務的基礎。
通過上面的方法基本可以得到候選服務清單,候選服務清單的識別來源于流程,數據和應用視圖。識別的關鍵是候選服務具有在多個流程或應用使用的公共性和可復用性。
服務定義的重點是對候選服務進行去重和歸并,并補充服務所需要的屬性項。對于歸并和去重后的服務再進行量化的結構化評估。這個評估可以從服務的可重用性,業務靈活性,服務可實現性,服務使用頻率等多個方面進行。在量化評估完成后,服務最終可以入庫到服務視圖。
服務視圖的呈現
對于流程視圖展現的是企業所包含的所有業務和流程,而對于服務視圖則展現的是企業在業務和流程協作中可以復用的服務能力,這是服務視圖和流程視圖的一個關鍵差異點。
服務視圖本身有多個可以展現的維度,而我們前面所說的流程視圖,數據視圖,應用視圖恰好都是服務視圖可以展現的各個維度。高端的服務視圖就是服務目錄集或服務資產庫,這是對服務視圖的一個高端分類,這個分類可以按業務流程,數據分類,業務系統應用分類多個維度進行展開。這也可以理解為服務關系的核心邏輯,即服務和流程的關系,服務和數據的關系,服務和應用系統間的關系。
其次,服務視圖需要體現服務的分層。對于服務的分層從業務層面來看,應該包括數據服務,業務服務,流程服務三個層面。從技術來看,則應該包括技術層服務,公共平臺層服務。對于服務的調用應該基于一個從上到下的調用順序,而不能進行逆向調用,即服務調用順序為:
流程服務->業務服務->數據服務->公共平臺服務->技術服務
另外服務視圖構建,還需要考慮和服務工程域,服務全生命周期的融合。服務本身不能離開服務全生命周期而存在。服務全生命周期體現了服務從業務目標和需求開始,到服務識別和發現,服務定義,服務設計開發,服務測試,服務上線,服務使用的全過程。通過上面的分析,服務視圖的呈現就比較清楚了,服務視圖是一個涉及到服務生命周期,服務分類,服務關系等的一個多維度呈現模型。