Zachman,1987年由John Zachman提出,目前仍被業界認為是企業架構設計方面最權威的理論,也是最有影響力的框架方法論。
Zachman在解釋他的IT分類學時,最初使用了建筑行業作為類比:在建筑行業里,構架材料通過使用二維表格表示出來。表格其中的一維是變量"游戲中的角色"。對于一個建筑物來說,這些選手就是擁有者(誰為這個項目付款)、構造者(負責構建的人)、城市規劃委員會(負責確保建筑遵循當地建筑標準的人)。建筑構架為不同的角色提供不同的材料。每個角色都需要完整的信息,不過對于不同的角色而言,所需的完整信息也是不同的。
隨著云計算、大數據、人工智能等新一代信息技術不斷發展和應用,企業數字化轉型加速,為應對越來越多樣化的業務模式,通過架構理論梳理出滿足自己需求的流程成為諸多企業數字化道路上的第一道“考題”。在這里,明朝萬達信息安全專家將為大家解釋何為5W1H與六角色,以及Zachman與Sabsa的異同。在文章后續,明朝萬達以“數據”為例簡單介紹如何構建一個適合自己的架構。
5W1H 與 六角色
構架材料組織的第二維是材料的描述中心和項目相關的:什么(what)、怎樣(how)、誰(who)、何時(when)、為什么(why)。這一維和第一維之間是相互獨立的。構造者和擁有者都需要知道"什么",但是"什么"是什么還得取決于問這個話的人是誰。Zachman建議有六個描述的焦點(數據、功能、網絡、人員、動機)和六個角色的角度(規劃者、擁有者、設計者、構造者、轉包商、運營企業)。
我們可以看到,在一個Zachman表格中,有36個方格,每個方格就是一個角色(例如商業擁有者)和每個描述焦點(如數據)的交匯。
當我們在表格中水平移動(例如從左到右)時,我們會從同一個角色的角度,看到系統的不同描述。當在表格中豎直移動(例如從上到下)時,我們會看到從不同角色的角度,觀察同一個焦點。
Zachman 與 Sabsa
Zachman本身并不是一個完整的解決方案,有太多的問題它都沒有描述。例如,Zachman沒有給出構造一個構架的完整過程,沒有提供更多的信息以幫助我們判斷將要構建的構架是否是最好的,也沒有給出一種途徑展示將來構架的需求。最重要的是從企業級架構組織者的角度,盡管Zachman表格可以幫助組織構架材料,但是它在描述企業復雜性方面幾乎什么都沒做。Sabsa ,是一個用于企業安全架構和服務管理的框架和方法論,為構建架構提供了一種結構。盡管Sabsa 與Zachman 擁有極其相似的架構,但實際上Sabsa并不是從Zachman衍生出來的,兩者最重要的區別在于,Zachman并無明確目標,Sabsa則有著明確的目標——協調網絡安全與商業目標之間的關系。因此,明朝萬達建議企業在建立自己所需的框架時,以Zachman為基礎,Sabsa為參考,并根據下面總結的3點建議和5個提示來構建。
3點建議
1、每一個構架材料應該存在于一個方格中,而且只能存在于一個方格中。在一個構架材料放在哪個方格里不應該含糊不清。如果某個構架材料的確不知道應該放在哪個方格中,問題很有可能處在構架材料本身。當組織在開發企業構架中開始積累材料的時候,它可以使用Zachman表格解釋每個材料的焦點。例如,面向服務構架相關的材料很有可能就放在第三行(從設計者的角度看)。它們一般不會引起商業擁有者的興趣。
2、僅僅只有當所有的表格都填滿了的時候,一個構架才能被稱為是完整的構架。當所有的方格都填滿了時候,整個表格才有足夠的材料定義系統。只有當每個方格都填滿了材料的時候,才有足夠的信息描述系統:從每個角色(我們現在可以稱之為"利益相關者",Stakeholder)的角度觀察系統的每個可能的視角(描述焦點)。所以一個組織可以使用Zachman表格確保企業構架中的所有重要利益相關者之間的討論都是合適的。
3、表格的每列的方格都是彼此相關的。例如,Zachman表格的數據列(第一列)。從商業擁有者的角度,數據就是關于商業的信息。從數據庫管理人員的角度,數據就是數據庫中的行和列。盡管商業擁有者對數據的看法和數據庫管理員不同,但他們應該是有關系的。一個人可以遵循商業需求,并且顯示出設計的數據就是被需求驅動的。如果有商業需求并沒有追蹤到數據庫設計,那么就得想想商業需求是否與企業構架相符。另一方面,如果數據庫設計的元素沒有需求與之對應,我們就應該問問自己,在數據庫層面是否存在不必要的設計。
5個提示
1. 確保每個利益相關者能夠從描述的焦點考慮。
2. 通過把每個焦點精簡到每個特殊觀眾涉及的焦點來提升構架材料的質量。
3. 確保每個商業需求能夠追蹤到技術實現。
4. 確保商業方面不會規劃出多余沒用的功能。
5. 確保技術組包含在商業組的規劃中。
實踐參考
以"數據"為例。從商業擁有者的角度而言,“數據”意味著商業實體,可能包括實體本身的信息,如客戶和產品,也可能包括實體間關系的信息,如人口群體和庫存;從數據庫的實現者的角度來看,"數據"就是保存在數據表中的行和列,還有通過連接(join)和映射(projection)生成的表。因此在面對不同角色時,我們的討論對象也要隨之改變。并不是從一個角色的角度看就比從另外一個角色的角度看要好,也不是越詳細越好,也不是某一個的優先級比其他的更高。作為一個整體,無論是從誰的角度都很重要。正如Zachman說過的:我們在信息系統構架方面與另外的構架溝通時有很多困難,因為存在很多構架表現形式,而不是僅僅只有一個構架。其中一個出錯了,其他的也跟著出錯。構架是不同的。它們是附加的和補充的。選擇為開發每個構架表現形式而支出資源是有原因的。如果不開發任何構架表現形式是有風險的。綜上所述,明朝萬達信息安全專家認為企業在做架構的時候通過參考Zachman框架中針對不同角色角度的六個功能焦點,就可以描述的很清楚了。

