楊英明, 丁寶寶, 鄔 桐, 竇 亮
1(華東師范大學 計算機科學技術系, 上海 200062)
2(中匯信息技術 (上海)有限公司, 上海 201203)
根據ANSI/IEEE-1471-2000[1]標準中的定義, 架構(Architecture)是系統的基本組織, 包括其組成部分、相互關系和環境, 以及指導其設計和演化的原則;企業架構 (Enterprise Architecture)是一種架構, 涉及的系統是整個企業, 特別是企業的業務流程、技術和信息系統;架構框架 (Architectural Framework)是一套基本結構, 定義了推薦的架構工件, 描述這些工件之間的關聯關系, 并提供了這些架構工件的通用定義.
為了能夠更好的設計企業架構, 針對企業中具有普遍性的問題提供統一化、標準化的解決方案, 以便更有效率的建立企業的信息系統, 該領域產生了許多企業架構方法, 主流的有Zachman企業架構框架[2]、FEA聯邦企業架構[3]和TOGAF開放群組架構框架[4]等.這些企業架構方法各有特色, 對企業業務流程標準化程度有一定要求, 企業需要結合自身的發展情況來選擇不同的方法.Roger Sessions對主流企業架構框架做了權威的比較和分析[5], 為該領域后續的研究提供了重要參考.文獻[6]研究分析了三種主流的企業架構框架, 對企業架構組件進行了分類.文獻[7]定義了在組織中采用企業建模方法的含義, 描述了將其作為支持企業持續改進和發展策略的制度化過程, 總結了經驗和方法.由于現如今的企業在高度復雜和動態的環境中運作, 需要軟件供應鏈、外包及協作開發的情形也越來越多, 文獻[8]評估了6種企業建模標準的可用性與整合性, 提出了適應于敏捷企業架構建模的混合企業架構建模方法.目前, 國內企業已認識到了企業架構方法的重要性并開始進行實施[9], 但從對企業架構方法的認識和應用來說, 還有很大發展空間, 迫切需要結合業務實際, 采用敏捷的、具有定制和擴展能力的企業架構方法, 適應企業不斷發展和平穩運行的要求.
Zachman是由Zachman J于1987年提出的一套企業架構理論, 同時, 它也是世界上第一個企業架構理論,為今后該領域的研究提供了理論基礎.Zachman實際上是一套抽象規則的集合, 由行和列組成的一個二維矩陣來表示, 該矩陣的列代表不同的看待企業業務的視角, 分別是數據 (What)、功能 (How)、網絡(Where)、角色 (Who)、時間 (When)、動機 (Why), 矩陣的行代表不同的企業領域, 分別是范圍(Scope)、業務(Business)、系統(System)、技術(Technology)、組件(Component)、操作(Operations).
Zachman架構方法以視角為切入點, 通過列出企業在各個視角下的需求, 全方位、多角度的探索了企業發展中會遇到的問題, 以此為側重點進行企業架構開發.Zachman是典型的以視角為中心的架構方法, 這種方法會在開發時能將大多數情況有條理地進行分類.
美國聯邦企業架構 (Federal Enterpris e Architecture, FEA), 是 2002 年許多專家、廠商共同提出的架構理論, 提出之后便應用在美國聯邦政府的電子政務系統設計中.FEA是一套較為成熟和完整的方法論體系, 適合政府各層機關和大型企業信息系統的頂層設計.
OMB(美國白宮的管理與預算辦公室)的《Enterprise Architecture Assessment Framework v3.0》將FEA所涵蓋的內容分為如下三個部分:
(1) FEA參考模型:為各個機構提供了一套公共的企業架構描述方法, 使他們可以使用相同的語言交流;
(2) 聯邦過渡框架:定義一些能夠進行跨部門使用的各種信息技術資源的描述方式;
(3) 企業架構評估框架:定義了一系列評估標準來衡量各機構對于聯邦企業架構項目的執行情況.
以上三個部分中, FEA參考模型是整個企業架構的核心, 它為各個機構提供了一套公共的企業架構描述方法, 從而使采用不同企業架構框架的機構可以使用相同的語言進行交流.
FEA架構方法是一套較為成熟的企業開發框架,它通過定義企業發展中的各種標準實踐、參考模型以及公共服務, 為后續的架構開發提供了強大的理論和實踐支持.通常, 這種架構方法被稱為以標準化為中心的方法, FEA就是其中的典型代表.這類方法在描述企業架構時較為全面, 各方面都會涉及和考慮, 其標準化的思想通常被國家或企業等大型單位所認可.
開放群組架構框架 (The Open Group Architecture Framework, TOGAF), 是由國際標準權威組織 The Open Group 于 1993 年發表的架構框架.TOGAF 從四個架構領域進行設計:
(1) 業務架構:定義了業務戰略、策略、組織和關鍵業務流程;
(2) 數據架構:描述了組織的邏輯和物理數據集的結構和數據管理資源;
(3) 應用架構:為一個獨立的應用提供了藍圖, 描述了它與組織核心業務流程之間的交互;
(4) 技術架構:描述了軟件和硬件, 來支持業務、數據和應用服務, 其中包括了IT基礎設施、中間件、網絡、通訊、流程、標準等等.
架構開發是一個持續的、循環的過程, 所以需要迭代地修正架構, 此時架構設計理念的完整性便顯得尤為重要.TOGAF企業架構設計框架在以往架構設計的豐富經驗之上, 總結、積累出的一套最佳實踐模型,提供了一整套完整的架構開發和管理的框架, 稱為ADM(Architecture Development Method), 這也是TOGAF架構設計理論的優勢之處.
ADM是在大量參與者持續貢獻企業開發經驗的基礎上促成的, 它為開發和管理企業的生命周期提供了一種新的可能性, 是TOGAF理論的核心.如圖1所示, ADM以需求為核心驅動力, 一個完整的架構開發周期在此驅動力之下依次經過架構愿景、業務架構、信息系統架構、技術架構、機遇和解決方案、遷移規劃、實施治理、架構變更管理各個階段, 逐步完善新需求下的企業架構升級.

圖1 TOGAF 的架構開發方法
一般認為, 良好的企業架構依賴于良好的過程, 因此, TOGAF架構方法將實踐經驗匯聚在一起, 定義了這個過程.TOGAF架構方法是一套較為完整、實用性較高的企業設計框架, 屬于典型的以過程為中心的架構方法, 最近幾年被普遍的運用在各大企業之中, 具有較高的知名度.
各種企業架構方法的性質和范圍不同, 在不同應用環境下的適應性也不同, 需要在具體實踐之前挑選出最適合企業的架構方法, 本節對以上三種主流的企業架構方法進行比較和分析.
在著名的 Roger Sessions對企業架構的研究中, 選用了12個評價標準來比較和評估架構方法, 使用者可以挑選其中需要的部分作為評判的起點.這12個評價標準分別是:
(1) 分類完整性 (Taxonomy completeness):指的是用戶使用該方法能多好地對各種框架工件進行分類.
(2) 流程完整性 (Process completeness):指的是該方法能多充分地指導用戶通過循序漸進的過程來創建企業架構.TOGAF提出的ADM的主要關注點便在這上面, 同時, FEA架構方法也開始強調這一領域的重要性.
(3) 參考模型指導 (Reference model guidance):指的是該方法能多好地幫助用戶建立一套相關的參考模型.該指標的內容幾乎是FEA的所有關注點, 同時,TOGAF也提供這方面的支持.
(4) 實踐指導 (Practice guidance):指的是該方法能多大程度上幫助用戶將企業架構的思維方式融入到用戶的組織中, 并培養出符合公司氣質的文化氛圍.
(5) 成熟度模型 (Maturity model):指的是該方法在評估企業中不同組織的有效性和成熟度方面能給出多少指導.
(6) 業務關注度 (Business focus):指的是該方法是否側重于使用技術來驅動業務價值, 這里, 業務價值被明確定義為減少支出或增加收入.
(7) 治理指導 (Governance guidance):指的是該方法在為企業創建有效的治理模型方面能提供多少幫助.
(8) 分區治理 (Partitioning guidance):指的是該方法能多有效地指導企業實現分區自治, 這是管理企業架構復雜性的一種重要方法.
(9) 規范目錄 (Prescriptive catalog):指的是該方法能多有效地指導用戶建立一個可以重用的企業架構資產目錄.
(10) 供應商中立性 (Vendor neutrality):指的是在采用該方法時, 用戶會有多依賴于特定的咨詢組織, 得分高意味著依賴性低.在這個指標中, TOGAF脫穎而出, 因為它是許多廠商支持的開放標準.
(11) 信息可用性 (Information availability):指的是該方法相關的免費或低價資料的數量和質量.資料越豐富, 說明該方法的社區越活躍, 該方法的生命力越強.
(12) 時間價值性 (Time to value):指的是使用方法來構建解決方案、產生商業價值之前, 用戶可能會花費的時間長度.
Roger Sessions使用以上 12 個評價標準, 對三種架構方法進行對比和評估, 得到以下的評估得分, 本文對每種方法的指標得分計算了平均值和方差, 如表1所示.
由表1可見, Zachman方法的綜合評分不高, 但是在分類完整性上的優勢較為明顯;FEA架構方法各方面能力適中, 表現較為穩定;TOGAF架構方法的總體得分和FEA并列第一, 但相比之下得分分布得更為均衡, 同時, TOGAF 方法對供應商依賴小, 有良好的社區, 其相關資料也更加容易獲得, 對使用者十分友好.一般認為, Zachman框架提供了企業架構的本體,FEA方法更適合政府機構使用, 而TOGAF偏向于實踐, 提供了確實可行的企業架構方法, 重用性和擴展性也較好.

表1 三種架構方法的評估得分及平均值和方差
ArchiMate[10]是TOGAF理論配套的企業架構建模規范, 它是一種企業架構描述語言, 也是一種可視化的業務分析模型語言.
ArchiMate的誕生最早可以追溯到本世紀初, 是由荷蘭該領域的相關研究組織制定的, 制定過程中受到了政府、工業界和學術界的廣泛支持.后來, The Open Group對其進行修訂, 使其可以與TOGAF理論緊密結合.
如圖2所示, ArchiMate中的業務層、應用層、技術層分別對應TOGAF的核心概念——ADM中的業務架構、信息系統架構、技術架構三個領域;最新發布的ArchiMate添加了策略&動機層、實現&遷移層,它們覆蓋了ADM中的其他領域.策略&動機層可以描述ADM中的預備階段、架構愿景、架構變更管理以及需求管理四個領域, 而實現&遷移層可以描述ADM中的實施治理、遷移規劃以及機會及解決方案三個領域.對每個層次, ArchiMate提供了描述對應領域元素的圖例, 實現了可視化, 用戶可以使用ArchiMate對TOGAF理論進行完整的實踐.
圖3 是 ArchiMate中經典的 3×3×3 模型, 展示了圖例及關系的層次和屬性.橫向來看, ArchiMate中的基本元素可以分為三個層次:業務層、應用層和技術層, 它們分別描述了企業架構開發中的不同抽象層次.縱向來看, 元素可以根據它們的屬性分為三大類:對象、行為和主體, 其中對象代表架構中的被動元素, 主體代表架構中的主動元素.此外, 元素和元素之間的關系也可以劃分為三大類:結構化關系、動態關系和其它關系, 它們分別用來連接架構中的不同元素.

圖2 ADM 和 ArchiMate 架構描述語言

圖3 ArchiMate 的 3×3×3 模型
Unified Modeling Language (UML)[11], 即統一建模語言, 創建于1994年10月, 可以用圖形化的方式對軟件系統進行面向對象的描述和建模.UML2.0版本是被廣泛使用的版本, 目前UML的最新版本是2.5.
ArchiMate和UML有很多相似之處, 它們都是可視化的, 都可以用來描述系統, 且都提供了豐富的元素和關系, 但它們的差別也是明顯的.首先, 以 ArchiMate提供的元素間關系為基準, 對比UML中的元素關系,如表2所示.
可以看出, ArchiMate提供了豐富的關系, 其中部分關系的含義可以和UML中完全匹配, 小部分關系的含義不同, 還有一些關系是ArchiMate所特有的.

表2 ArchiMate 和 UML 的關系對比
然后, 以業務層、應用層和技術層為基線, 評估ArchiMate和UML提供的基礎元素映射到這三個層面的情況, 如表 3 所示.可以看出, ArchiMate 在業務層、應用層和技術層提供了全面充分的元素, 可為企業架構提供形式化的描述(除去這三層的元素, ArchiMate在策略&動機層、實現&遷移層也提供有大量元素).UML也有一些元素可以用來描述業務層、應用層和技術層, 但是它更傾向于對應用程序的細節進行建模.
總體來看, ArchiMate是高層次的關注架構設計的描述語言, 描述對象的層次更加抽象和概念化, 而UML則用來描述系統的細節部分.ArchiMate適用于在高層次去標識應用程序元素、接口和用法, 然而對于單個應用的詳細的內部結構、交互和行為, 這些部分在設計意圖上超出了ArchiMate的范圍, 應使用UML等其他建模語言描述.
ArchiMate是一種實用企業架構描述語言, 通過配合TOGAF方法論的架構設計方法可以設計出清晰的架構圖.同時, ArchiMate也是一個開放、自由的企業架構描述語言, 它允許企業根據自身的需要對語言本身進行定制, 這也是Archimate的優點之一.經過前期調研分析, 中匯信息技術(上海)有限公司(下文簡稱“中匯”)目前正在推廣TOGAF方法論來完成架構分析與設計, 并選擇采用Archimate語言來描述項目架構.本節通過項目組的一個真實案例, 展現使用ArchiMate設計企業架構的基本方法, 同時, 案例中利用了ArchiMate開放性的特點, 根據公司和項目的需要進行了規范定制.

表3 ArchiMate 和 UML 的元素映射
為積極配合人民幣國際化與二十四小時無中斷服務的發展方向, 進一步提升本外幣用戶的服務體驗, 在原有電話、傳真等傳統服務模式的基礎上, 基于互聯網的在線客戶服務模式, 推出中心場務微信服務號.
公眾號關注用戶可以進行交易員(本幣/外匯)實名綁定認證、及查看交易中心介紹與交易中心其他訂閱號鏈接等信息.已實名綁定認證用戶可以享受專有的微信服務功能, 如:申請應急撤單、應急交易、應急修改交易要素、應急報價、應急暫停報價、應急申請交易后確認、用戶解鎖、用戶重置密碼等應急服務;預約場務人員回電服務;主動聯系場務人員并向場務人員發送多媒體信息(微客服);解除實名綁定的服務等.
圖4所示的架構圖是使用ArchiMate架構描述語言繪制的, 在遵循基礎的語言規范之外, 根據項目需要和特點靈活地進行了定制.

圖4 使用 ArchiMate 繪制的微信系統架構圖
根據項目的架構表述需要, 對架構圖層次進行了刪減, 省略掉了業務層的描述, 主要展示應用層和技術層部分.因此, 該架構圖主要包括兩部分:應用層和技術層.具體地, 應用層按照應用服務層、組件和接口層以及外圍系統三大層進行繪制;技術層按照基礎設施服務層、基礎設施層和可復用構件層進行繪制, 使架構層次更加清晰.其中, 可復用構件層為定制部分, 包含中匯公司長期開發實踐過程中積累下的一些可復用的構件, 它可以被應用層中的組件所引用.
下面依次介紹每個層次的基本作用和定制細節:
(1) 應用服務層:限定只包含原應用層中應用服務(Application service), 即該系統應用層中對終端用戶、外部系統以及內部其它服務提供接口的服務, 比如微信接入服務、后臺管理服務等.
(2) 組件和接口層:限定只包含原應用層中的內部具體實現, 即應用組件 (Application component)和應用接口 (Application interface)元素, 同時, 定義了組件之間通訊的描述方式.
(3) 外圍系統層:是對原應用層的擴展, 它作為本系統的關聯系統, 為系統提供數據和功能, 或使用本系統的數據和功能, 包含的元素限定為應用組件(Application component)和應用接口 (Application interface), 其中應用接口向外提供調用的方法, 被本系統直接調用.
(4) 基礎設施服務層:限定只包含原技術層中的技術層服務(Technology service), 它對底層基礎設施所提供的基本服務進行進一步抽象分類, 比如Web容器、文件存取等.
(5) 基礎設施層:限定只包含原技術層中的節點(Node)和系統軟件(System software), 節點通常用來表示服務器, 系統軟件可以表示操作系統、數據庫等.基礎設施層可以體現真實的底層部署情況, 比如系統部署了幾臺服務器, 每臺服務器上包含哪些系統軟件, 某臺服務器具體實現了哪些技術服務等.其中, 中匯編寫《開源商用系統軟件版本選型》并定制了系統軟件列表, 為不同的軟件類型定制不同的圖標, 并在繪制架構圖時自動選擇推薦版本的軟件.
(6) 可復用構件層:是根據項目需要對原技術層進行的擴展, 只包含工件(Artifact)元素, 用于表示本系統中用到的可復用構件, 這里列出的構件可在應用層組件中通過屬性的方式被引用, 所以在圖上沒有和任何元素有關系連線.其中, 構件列表自動關聯中匯構件庫,根據不同類型的構件定制不同的圖標, 并自動選擇構件庫中最新的構件版本.
除了對層次進行細化, 項目組也對層次之間的關系進行了規范限定:規定應用服務層和技術服務層與上一層的關系都是服務于(Serving)關系;組件和接口層以及基礎設施層與上一層的關系都是實現(Realization)關系.同時, 應用接口和應用組件的服務于關系上注明了組件之間通訊的方式, 比如HTTPREST等方式.
隨著互聯網和信息化的不斷進步和發展, 企業的架構設計也必然會越來越受到重視, 企業架構框架也將飛速發展.接下來需要持續關注該領域的變動和發展情況, 同時, 企業架構方法論在企業中的落地也顯得十分重要, 如何低成本的引導企業相關人員使用架構方法設計出符合企業要求的架構設計, 也是需要持續考量的關注點.