架構的目標 和 種類

2021-09-30 05:11:37 字數 1521 閱讀 8921

架構的目標是什麼

正如同軟體本身有其要達到的目標一樣,架構設計要達到的目標是什麼呢?一般而言,軟體架構設計要達到如下的目標:

·可靠性(reliable)。軟體系統對於使用者的商業經營和管理來說極為重要,因此軟體系統必須非常可靠。

·安全行(secure)。軟體系統所承擔的交易的商業價值極高,系統的安全性非常重要。

·可擴充套件性(scalable)。軟體必須能夠在使用者的使用率、使用者的數目增加很快的情況下,保持合理的效能。只有這樣,才能適應使用者的市場擴充套件得可能性。

·可定製化(customizable)。同樣的一套軟體,可以根據客戶群的不同和市場需求的變化進行調整。

·可伸縮 (extensible)。在新技術出現的時候,乙個軟體系統應當允許匯入新技術,從而對現有系統進行功能和效能的擴充套件

·可維護性(maintainable)。軟體系統的維護包括兩方面,一是排除現有的錯誤,二是將新的軟體需求

反映到現有系統中去。乙個易於維護的系統可以有效地降低技術支援的花費

·客戶體驗(customer experience)。軟體系統必須易於使用。

·市場時機(time to market)。軟體使用者要面臨同業競爭,軟體提供商也要面臨同業競爭。以最快的速度爭奪市場先機非常重要。

架構的種類

根據我們關注的角度不同,可以將架構分成三種:

·邏輯架構、軟體系統中元件之間的關係,比如使用者介面,資料庫

,外部系統介面,商業邏輯元件,等等。

比如下面就是筆者親身經歷過的乙個軟體系統的邏輯架構圖

圖2、乙個邏輯架構的例子

從上面這張圖中可以看出,此系統被劃分成三個邏輯層次,即表象層次,商業層次和資料持久層次。每乙個層次都含有多個邏輯元件。比如web伺服器層次中有html服務元件、session服務元件、安全服務元件、系統管理

元件等。

·物理架構、軟體元件是怎樣放到硬體上的。

比如下面這張物理架構圖描述了乙個分布於北京和上海的分布式系統的物理架構,圖中所有的元件都是物理裝置,包括網路分流器、**伺服器、web伺服器、應用伺服器、報表伺服器、整合伺服器、儲存伺服器、主機等等。

圖3、乙個物理架構的例子

·系統架構、系統的非功能性特徵,如可擴充套件性、可靠性、強壯性、靈活性、效能等。

系統架構的設計要求架構師具備軟體和硬體的功能和效能的過硬知識,這一工作無疑是架構設計工作中最為困難的工作。

此外,從每乙個角度上看,都可以看到架構的兩要素:元件劃分和設計決定。

首先,乙個軟體系統中的元件首先是邏輯元件。這些邏輯元件如何放到硬體上,以及這些元件如何為整個系統的可擴充套件性、可靠性、強壯性、靈活性、效能等做出貢獻,是非常重要的資訊。

其次,進行軟體設計需要做出的決定中,必然會包括邏輯結構、物理結構,以及它們如何影響到系統的所有非功能性特徵。這些決定中會有很多是一旦作出,就很難更改的。

根據作者的經驗,乙個基於資料庫的系統架構,有多少個資料表,就會有多少頁的架構設計文件。比如乙個中等的資料庫應用系統通常含有一百個左右的資料表,這樣的乙個系統設計通常需要有一百頁左右的架構設計文件。

略談cpu架構種類

一直對x86 i386 i686 x86 64這些東西感覺很不清楚,查些資料,解決部分問題,小記一番。question1 什麼是x86?x86或80x86是英特爾intel首先開發製造的一種微處理器體系結構的泛稱。該系列較早期的處理器名稱是以數字來表示,並以 86 作為結尾,包括intel 8086...

軟體架構模式的種類

在做軟體架構設計時,根據不同的抽象層次可分為三種不同層次的模式 架構模式 architectural pattern 設計模式 design pattern 模式 coding pattern 架構模式是乙個系統的高層次策略,涉及到大尺度的元件以及整體性質和力學。架構模式的好壞可以影響到總體布局和框...

軟體架構模式的種類

在做軟體架構設計時,根據不同的抽象層次可分為三種不同層次的模式 架構模式 architectural pattern 設計模式 design pattern 模式 coding pattern 架構模式是乙個系統的高層次策略,涉及到大尺度的元件以及整體性質和力學。架構模式的好壞可以影響到總體布局和框...