本系列討論面向服務的體系結構(Service-Oriented Architecture,SOA)安全性實現路線圖。本系列共包括三個部分,本文是其中的第二部分,將討論可幫助 SOA 安全團隊開發成功的高層次設計的規則。
SOA 安全實現和整個 SOA 一樣,應該視為一個長期的過程。就像任何過程一樣,如果要成功,您將需要某些特定的東西。
本系列的soasec1/" cmImpressionSent="1">第 1 部分重點討論路線圖,此路線圖提供了簡單的 10 步驟流程,可作為 SOA 安全團隊的總體指南。在該流程的第 7 步“遵循 SOA 安全實現的 SDLC 流程”中,SOA 安全團隊將進行任何 SOA 安全實現的高層次設計(High-Level Design,HLD)。在此步驟,將期望 SOA 安全團隊遵循軟件開發生命周期 (Software Development Life Cycle)。
軟件開發生命周期 (SDLC) 通常包括四個階段:
SDLC 的第二階段(設計階段)的目標是得到系統的總體設計。設計階段包括兩個子階段:HLD 和詳細設計(Detailed-Level Design,DLD)。對于 HLD,您作為安全企業架構師(Security Enterprise Architect,SEA)將對 SOA 安全實現的功能需求和非功能需求進行檢查,并設計總體解決方案體系結構。與企業架構師(Enterprise Architect,EA)類似,SEA 負責以下事項:
最基本的觀念是,對于任意成功的 SOA 安全實現而言,構造良好的 HLD 非常關鍵,SEA 對帶領 SOA 安全團隊進行其創建工作負有最終的責任。
盡管 SOA 安全實現 HLD 非常重要,但 SOA 安全團隊并不是總能清楚地確定 HLD 的目標應為什么。在沒有專用體系結構資源的情況下,團隊成員經常被體系結構概念所淹沒,而且不熟悉可幫助其管理整個流程的建模工具。
這里,除了建議的工具外,還提供有用的提示和規則,供 SOA 安全團隊成員采用和包含到流程中,以創建成功的 SOA 安全實現 HLD。
在開始編寫 HLD 文檔之前,SOA 安全團隊成員應該記住一些基本的首要規則。實際上 HLD 應該:
您的重點應該放在提供關鍵問題的答案,如“我們何時開始?”“我們如何繼續?”“我們如何知道何時已經完成了?”
SOA 安全團隊的 HLD 工作的主要目標是創建可作為溝通工具的文檔:文檔必須針對整個團隊并代表整個團隊的立場。在 SOA 團隊成員陷入體系結構文檔的細節之前,應該將重點放在對其需求進行全面檢查上,了解其總體安全目標是什么。HLD 必須清楚地從 SOA 實現的總體安全性的角度說明其設想。
將團隊就主要涉眾 SOA 安全實現問題達成的協議正式化就是下一步要進行的工作。例如,文檔應該包括以下問題:
HLD 還必須提供更為復雜問題的答案,如非功能需求等。這些需求包括系統審核與控制、可擴展性、彈性、垂直伸縮性和水平伸縮性、多站點問題以及第三方工具的集成。
決定何時開始 HLD 工作并不容易。受到廣泛認可的行業指導原則是,將能力成熟度模型集成(Capability Maturity Model Integration,CMMI)3-4 級別(請參見參考資料)作為實現企業 SOA 安全戰略的基礎。在開始進行相應的工作前,應該完成很多詳細的需求文檔。而且,必須同時了解 SOA 安全服務實現的大部分內容。在開始 HLD 前,團隊應該已經列出了其需求,了解用于滿足這些需求的服務,并將這些服務與相應的需求建立了聯系。