「應用架構」應用架構行為準則
應用架構行為準則
應用程序架構是企業解決方案架構(ESA)的一個子集(圖1)。應用程序架構既是一個過程(架構和設計)又是一個東西(可交付成果——架構的內容)。應用程序架構幫助組織規劃其在應用程序解決方案和其他系統中的投資。正在評估、設計和交付的應用程序解決方案必須能夠與已建立的解決方案共存。其中包括新開發的應用程序、遺留應用程序擴展、應用程序現代化、購買的應用程序包及其升級。
圖1
應用程序架構存在于多個詳細級別:
- 在概念層次上,企業架構(EA)策略和計劃確保應用程序組合與其他形式的解決方案架構(業務、技術和信息)協同有效地發展。
- 在邏輯層次上,應用程序架構超出了企業解決方案架構(ESA)工作的概念層次,它包括設計和重用軟件服務和接口,從而提高了開發人員的生產力和應用程序的靈活性、質量和一致性。
應用程序架構的原則適用于所有類型的應用程序方法和解決方案。面向服務的架構(SOA)支持共享軟件服務的需求正在推動組織實現應用程序架構師的角色和相關角色,包括SOA卓越中心(CoEs)或能力中心(CCs),以便跨SOA實現計劃進行協調。
企業級范圍和角色
在概念層次上,企業架構(EA)策略和計劃確保應用程序組合與其他形式的解決方案架構(業務、技術和信息)協同有效地發展。
- 在這個概念級別上,最能實現這些策略和計劃以及應用程序架構規程的角色是企業解決方案架構師。
- 項目級的解決方案和應用程序架構師也可能被要求擔任這個角色(或者至少就AA規劃問題咨詢)。但是,將解決方案架構策略和規劃職責與項目設計和實現職責分離是一種最佳實踐,否則,兩者都無法正確執行。
企業解決方案架構有兩個主要級別(圖2)-
- 一個EA級別,包括代表不同架構和觀點的各種類型的企業架構師-業務、技術、信息和解決方案(包括AA的概念級別)
- 一種解決方案/項目級別,在解決方案設計和交付的詳細邏輯和實現級別中包含多個架構師和分析師角色。
在EA概念級的細節中,企業解決方案架構師(在其他團隊成員和項目級主題專家的幫助下)正在確定可重復的標準和指南,以及可重用的資產和投資,包括與應用程序架構相關的資產和投資,它可以傳遞給負責項目和個人解決方案的人。
圖2
企業解決方案架構師的角色
企業解決方案架構師的角色可以是廣泛而富有挑戰性的。在大多數組織中,我們看到這個EA角色的兩個主要職責領域:
1] 采用ESA的標準化和再利用
企業解決方案架構師將可重復的標準和指南交付給適當的企業解決方案組合,然后將這些以及現在定義/部署的共享服務和資產用于單個項目解決方案工作。
圖3
2] 利用企業解決方案架構(ESA)協調當前和未來的狀態
- 根據ESA的現狀,決定需要記錄哪些內容(并在發生變化時進行更新)。解決方案架構師應確保正確描述每個解決方案。
- 與其他架構師合作,創建并記錄歐空局未來狀態的愿景,包括解決與在正確的時間為每個架構的正確更改提供資金相關的業務問題。然后,解決方案架構師應確保每個解決方案都針對其未來狀態進行了適當的規劃(包括一個解決方案對EA標準和指南的利用,以及解決方案模式中描述的解決方案組合中的那些標準和指南)。
- 確保合適的人員、流程和技術到位,以實現有效的協作
項目級范圍和角色
未能區分解決方案架構師工作和應用程序架構師工作的企業錯過了確保單個項目成功和多個項目重用的機會。
- 應用程序架構師有責任以最大化重用為目標進行設計,并盡可能消除項目、應用程序系統和業務單元之間的冗余和不一致。
- 雖然解決方案架構師將通過創建可重用的軟件和信息服務來促進重用,但相對于為項目團隊正在構建、集成和/或部署的特定解決方案定義一個合理、有效和完整的設計,它的優先級較低。
- 企業解決方案架構(ESA)團隊(包括SAs和AAs)負責細節和內容的概念級別,包括將哪些標準、指南、可重用資產和投資傳遞給項目作為起點
解決方案架構師
SAs專注于給定項目的所有架構方面(盡管它們可能一次處理多個項目)。正如企業SA確保ESA團隊成員在概念/規劃詳細級別上的架構協作一樣,SAs也確保了項目級別上的架構協作。此外,他們必須完成一個完整的設計,定義解決方案的所有方面,包括但不限于應用程序架構方面。
應用程序架構師
AAs的重點是應用接口和軟件服務的設計。與設計應用程序接口和軟件服務相關聯的強調程度取決于項目方法,以及有多少預先存在的接口和服務可以重用和構建。因此,AAs側重于應用程序軟件(box)之間接口(line)的設計,以及box的設計,以使它們盡可能像應用程序服務那樣可重用。AAs有責任設計接口和服務,以提高應用程序的靈活性,最大限度地重用,并盡可能消除項目、應用程序系統和業務部門之間的冗余和不一致。
以下是SA職責與AA職責的比較。
圖4
大多數組織最初都將AA的重點放在應用程序接口的設計上,而且有充分的理由——應用程序集成是實現應用程序包以及支持將新的SOA Web瀏覽器與遺留應用程序和數據集成的一個主要問題。雖然良好的應用程序接口設計解決了穩定性、安全性和性能問題,但也希望盡可能提高業務敏捷性和開發人員的生產力。
- 具有SOA服務接口設計技能的AA側重于應用程序接口(行)。
- AA與SOA軟件服務提供商的設計技能側重于應用程序服務(box)。
- 具有實現編碼技能的開發人員根據AA生成的設計對服務的消費者和提供者實現以及新的應用程序服務(行和框解決方案)進行編碼。
以下是AA和應用程序開發團隊的職責區別-
圖5