在TOGAF 9之前的版本中,TOGAF的重點主要集中在企業架構開發方法方面,用於指導其使用者如何在各自的組織中對企業架構進行創建和維護,而對於企業架構的具體內容並沒有相關的論述,因而針對早期TOGAF的使用往往需要與其他具有企業架構內容描述的框架(例如Zachman框架)進行配合。可以說在TOGAF 9出現之前,TOGAF不能算是一個完整的企業架構框架,而隨着內容框架(Content Framework)的引入,以及企業架構開發方法與該內容框架的相互結合,TOGAF已經可以說已經成為一個獨立完備的企業架構框架標准了。如前所述,企業架構開發方法描述了一個流程,在這個流程的幫助之下,企業得以從一個基線狀態過渡到符合其戰略目標的目標狀態,並且這個流程還是一個動態的過程,具有對外界環境變化的自適應特性,從而保證企業能夠按照一種適應性很強的方式進行有序、透明的演進。架構開發方法過程中的每個階段都會需要一定的信息作為輸入,並通過一定的開發步驟產生一系列具有特定意義的輸出,而這些輸入與輸出信息要如何進行定義、組織和表達呢?在TOGAF 9中用於解答這一問題的部分就是內容框架,它為這些信息的結構化組織、定義和表達提供了一套完備的框架,從而其使用者能夠清楚地理解企業架構的內容。可以說,企業架構開發方法對為了創建和維護一個企業架構需要做些什么進行了描述,而內容框架則描述了一個企業架構看起來應該是什么樣子。需要注意的是,雖然企業架構開發方法與內容框架之間有着很好的契合性和關聯性,但兩者在TOGAF中是相互獨立的兩個部分,並且作為一個開放的標准,TOGAF並不強制要求兩者必須配對使用,像以往那樣采用架構開發方法和其他框架(Zachman框架)進行配合的方式也是不受限制的。此外,由於內容框架對於企業架構的內容作了詳盡的定義和組織,再加上其與架構開發方法過程之間的相互聯系,內容框架本身也可以作為企業架構開發方法與其他具有架構內容描述的框架進行合作的良輔。
內容框架對企業架構開發方法中各階段的輸入和輸出信息進行了分類總結,並通過內容元模型(Content MetaModel)對構成企業架構內容的各個元素(即企業架構中的各個構建塊的類型)以及他們之間的關系進行了定義。內容框架雖然在TOGAF中是一個相對獨立的章節,但是它與作為TOGAF核心內容的架構開發方法並不是相互隔絕的。為了表述這兩者之間的關系,內容框架中針對其內容的描述采用了一種與架構開發方法的各階段相映射的方式進行組織的,即對架構開發方法的各個階段所產出的企業架構內容具體是什么進行描述(需要注意的是,雖然企業架構開發方法各階段都有着明確的輸入與輸出產物的定義,但是這些並不是構成企業架構內容的精髓,企業架構內容還是應該是以各種可重用的構建塊為核心的)。
企業架構開發方法和內容框架的結合使TOGAF成為一套完整的企業架構框架標准,其中內容框架對於企業架構內容的描述可以說是將在企業中客觀存在的各種構建塊進行了抽象和組織,而這種抽象和組織的方式是通過內容元模型來進行定義的。雖然針對企業架構內容的定義非常重要,但是同樣重要的還有如何對企業架構的內容進行利用。企業架構的核心目標是為具有不同視角的干系人根據其關注點提供准確的視圖,從而使得不同的干系人雖然采用了不同的觀察角度和描述方式,但的確是在為共同的目標而進行着無障礙溝通和協作。為了達到這一目標,內容框架對於各種視角(ViewPoint)從表現形式和內容方面都進行了歸納總結,並對一些視圖的開發也提供了建議和指南。需要注意的是,TOGAF是一個通用性的標准,它的內容不可能涵蓋企業中所有的視角,因而在具體實踐中,各個企業完全可以根據自身需要對這些視角進行引用、修改和組合,從而總結出適合的視角,並借此開發出相應的視圖,從而滿足企業中具體干系人的需要。
下圖展示了內容框架中各方面內容與企業中客觀存在的各種資源之間關系,以及企業架構的內容是如何在內容框架的組織下為各個干系人提供幫助的:
內容框架與外界的關系
1. 企業架構工作產品分類
在內容框架之中,企業架構開發方法過程中所涉及到的各種工作產品被歸納為如下幾種:
- 架構交付物(Architecture Deliverables):架構交付物是由合同指定並被相關干系人輪流進行正式的審查和簽字認可的工作產品。這些交付物代表着各個架構項目的輸出,以及那些在一個項目完結時以文檔形式進行交付的,或者作為參考模型、標准或在某一時點的架構情景快照(snapshot of the Architecture Landscape)而被過渡到架構資源庫中的工作產品。
- 架構制品(Architectural Artifacts):與架構交付物相比,架構制品是一個從某個特定視角進行架構描述並具備更細粒度的工作產品。例如,網絡圖、服務器說明、用例說明、架構需求列表以及業務交互矩陣等。就表現形式來講,架構制品的內容可以通過目錄、矩陣和圖形這三種方式來表述。通常情況下,一個架構交付物可以包含多個架構制品,而架構制品也可能會出現在多個架構交付物之中,並且架構制品也將會形成架構資源庫的內容。
- 構建塊(Building Blocks):構建塊代表着業務、IT或者架構能力的一個組件,並且可以與其他構建塊組合在一起來對各種架構和解決方案進行交付。根據所處的架構開發階段的不同,構建塊能夠在多個詳細度層次上進行定義。例如,在架構開發的早期階段,一個構建塊可能僅僅包含一個名字或一個概要描述,而隨着架構開發過程的演進,此構建塊可能會被進一步分解為若干具有詳盡描述的支持性構建塊。從內容和所面對的問題上看,構建塊可以被進一步分為如下兩種:
- 架構構建塊(ABBs:Architecture Building Blocks):此種類型的構建塊一般用於描述各種需要的能力,並對其后的解決方案構建塊的輪廓進行了勾勒。例如,企業中的一個客戶服務定義了實現這項能力的各種需求,而對於它的真正落實就需要若干解決方案構建塊在各方面(流程、數據以及應用軟件等)將這些需求映射到具體的實現技術之上了。
- 解決方案構建塊(SBBs:Solution Building Blocks):此種類型的構建塊代表了用於實現各種需求(由架構構建塊定義)的具體組件。
企業架構工作產品關系
以上三種工作產物雖然在內容和產生背景上有着很大的不同,但是他們之間卻有着非常緊密的聯系。構建塊可以說是企業架構資源庫的核心內容,並且也是企業架構過程的終極目標產物,因而把其稱為企業的模型(在某些方面,例如可充用業務、IT等方面)也並不為過,而架構制品則可以看成此模型在某個角度的各種視圖,屬於架構描述的范疇。架構交付物比較特殊,它與架構開發方法各階段緊密相連,並作為各個階段的輸入與輸出載體而存在着。