應用程序架構是企業(yè)解決方案架構(ESA)的一個(gè)子集(圖1)。應用程序架構既是一個(gè)過(guò)程(架構和設計)又是一個(gè)東西(可交付成果——架構的內容)。應用程序架構幫助組織規劃其在應用程序解決方案和其他系統中的投資。正在評估、設計和交付的應用程序解決方案必須能夠與已建立的解決方案共存。其中包括新開(kāi)發(fā)的應用程序、遺留應用程序擴展、應用程序現代化、購買(mǎi)的應用程序包及其升級。

圖1
應用程序架構存在于多個(gè)詳細級別:
在概念層次上,企業(yè)架構(EA)策略和計劃確保應用程序組合與其他形式的解決方案架構(業(yè)務(wù)、技術(shù)和信息)協(xié)同有效地發(fā)展。
在邏輯層次上,應用程序架構超出了企業(yè)解決方案架構(ESA)工作的概念層次,它包括設計和重用軟件服務(wù)和接口,從而提高了開(kāi)發(fā)人員的生產(chǎn)力和應用程序的靈活性、質(zhì)量和一致性。
應用程序架構的原則適用于所有類(lèi)型的應用程序方法和解決方案。面向服務(wù)的架構(SOA)支持共享軟件服務(wù)的需求正在推動(dòng)組織實(shí)現應用程序架構師的角色和相關(guān)角色,包括SOA卓越中心(CoEs)或能力中心(CCs),以便跨SOA實(shí)現計劃進(jìn)行協(xié)調。
在概念層次上,企業(yè)架構(EA)策略和計劃確保應用程序組合與其他形式的解決方案架構(業(yè)務(wù)、技術(shù)和信息)協(xié)同有效地發(fā)展。
在這個(gè)概念級別上,最能實(shí)現這些策略和計劃以及應用程序架構規程的角色是企業(yè)解決方案架構師。
項目級的解決方案和應用程序架構師也可能被要求擔任這個(gè)角色(或者至少就AA規劃問(wèn)題咨詢(xún))。但是,將解決方案架構策略和規劃職責與項目設計和實(shí)現職責分離是一種最佳實(shí)踐,否則,兩者都無(wú)法正確執行。
企業(yè)解決方案架構有兩個(gè)主要級別(圖2)-
一個(gè)EA級別,包括代表不同架構和觀(guān)點(diǎn)的各種類(lèi)型的企業(yè)架構師-業(yè)務(wù)、技術(shù)、信息和解決方案(包括AA的概念級別)
一種解決方案/項目級別,在解決方案設計和交付的詳細邏輯和實(shí)現級別中包含多個(gè)架構師和分析師角色。
在EA概念級的細節中,企業(yè)解決方案架構師(在其他團隊成員和項目級主題專(zhuān)家的幫助下)正在確定可重復的標準和指南,以及可重用的資產(chǎn)和投資,包括與應用程序架構相關(guān)的資產(chǎn)和投資,它可以傳遞給負責項目和個(gè)人解決方案的人。

圖2
企業(yè)解決方案架構師的角色可以是廣泛而富有挑戰性的。在大多數組織中,我們看到這個(gè)EA角色的兩個(gè)主要職責領(lǐng)域:
企業(yè)解決方案架構師將可重復的標準和指南交付給適當的企業(yè)解決方案組合,然后將這些以及現在定義/部署的共享服務(wù)和資產(chǎn)用于單個(gè)項目解決方案工作。

圖3
根據ESA的現狀,決定需要記錄哪些內容(并在發(fā)生變化時(shí)進(jìn)行更新)。解決方案架構師應確保正確描述每個(gè)解決方案。
與其他架構師合作,創(chuàng )建并記錄歐空局未來(lái)狀態(tài)的愿景,包括解決與在正確的時(shí)間為每個(gè)架構的正確更改提供資金相關(guān)的業(yè)務(wù)問(wèn)題。然后,解決方案架構師應確保每個(gè)解決方案都針對其未來(lái)狀態(tài)進(jìn)行了適當的規劃(包括一個(gè)解決方案對EA標準和指南的利用,以及解決方案模式中描述的解決方案組合中的那些標準和指南)。
確保合適的人員、流程和技術(shù)到位,以實(shí)現有效的協(xié)作
未能區分解決方案架構師工作和應用程序架構師工作的企業(yè)錯過(guò)了確保單個(gè)項目成功和多個(gè)項目重用的機會(huì )。
應用程序架構師有責任以最大化重用為目標進(jìn)行設計,并盡可能消除項目、應用程序系統和業(yè)務(wù)單元之間的冗余和不一致。
雖然解決方案架構師將通過(guò)創(chuàng )建可重用的軟件和信息服務(wù)來(lái)促進(jìn)重用,但相對于為項目團隊正在構建、集成和/或部署的特定解決方案定義一個(gè)合理、有效和完整的設計,它的優(yōu)先級較低。
企業(yè)解決方案架構(ESA)團隊(包括SAs和AAs)負責細節和內容的概念級別,包括將哪些標準、指南、可重用資產(chǎn)和投資傳遞給項目作為起點(diǎn)
SAs專(zhuān)注于給定項目的所有架構方面(盡管它們可能一次處理多個(gè)項目)。正如企業(yè)SA確保ESA團隊成員在概念/規劃詳細級別上的架構協(xié)作一樣,SAs也確保了項目級別上的架構協(xié)作。此外,他們必須完成一個(gè)完整的設計,定義解決方案的所有方面,包括但不限于應用程序架構方面。
AAs的重點(diǎn)是應用接口和軟件服務(wù)的設計。與設計應用程序接口和軟件服務(wù)相關(guān)聯(lián)的強調程度取決于項目方法,以及有多少預先存在的接口和服務(wù)可以重用和構建。因此,AAs側重于應用程序軟件(box)之間接口(line)的設計,以及box的設計,以使它們盡可能像應用程序服務(wù)那樣可重用。AAs有責任設計接口和服務(wù),以提高應用程序的靈活性,最大限度地重用,并盡可能消除項目、應用程序系統和業(yè)務(wù)部門(mén)之間的冗余和不一致。
以下是SA職責與AA職責的比較。

圖4
大多數組織最初都將AA的重點(diǎn)放在應用程序接口的設計上,而且有充分的理由——應用程序集成是實(shí)現應用程序包以及支持將新的SOA Web瀏覽器與遺留應用程序和數據集成的一個(gè)主要問(wèn)題。雖然良好的應用程序接口設計解決了穩定性、安全性和性能問(wèn)題,但也希望盡可能提高業(yè)務(wù)敏捷性和開(kāi)發(fā)人員的生產(chǎn)力。
具有SOA服務(wù)接口設計技能的AA側重于應用程序接口(行)。
AA與SOA軟件服務(wù)提供商的設計技能側重于應用程序服務(wù)(box)。
具有實(shí)現編碼技能的開(kāi)發(fā)人員根據AA生成的設計對服務(wù)的消費者和提供者實(shí)現以及新的應用程序服務(wù)(行和框解決方案)進(jìn)行編碼。
以下是AA和應用程序開(kāi)發(fā)團隊的職責區別-

圖5
| 本文 :https://architect.pub/discipline-application-architecture | ||
聯(lián)系客服