關(guān)于架構(gòu)的定義非常多,它們互相接近,但又有細(xì)微的差別。這些定義都基于系統(tǒng)來描述的。所以要理解架構(gòu),首先要理解系統(tǒng)的定義。
系統(tǒng)定義為由一組不同的元素相互連接或關(guān)聯(lián)以提供其單獨(dú)不能提供的獨(dú)特功能(Eberhardt Rechtin)。IEEE擴(kuò)展了這個(gè)定義:系統(tǒng)是一組組件組織起來完成一個(gè)或一組特別的功能(IEEE Std. 610.12-1990)。
架構(gòu)是一個(gè)系統(tǒng)的基礎(chǔ)組織,包括其組件,組件之間的關(guān)系,組件和外界環(huán)境之間的關(guān)系,以及指導(dǎo)這些 組件設(shè)計(jì)、演化的原則。(The fundamental organization of a system embodied in its components, their relationships to each other, and to the environment, and the principles guiding its design and evolution. IEEE Std 1471-2000)
不同的受益人從不同的視點(diǎn)(Viewpoint)看待架構(gòu),這導(dǎo)致了架構(gòu)的描述必定具有不同的視圖。不同的架構(gòu)方法(如Rose 4+1 View、RM-ODP參考模型)都對不同的視圖提供了支持。而在企業(yè)級應(yīng)用中,也是根據(jù)不同的Viewpoint把企業(yè)應(yīng)用架構(gòu)分成業(yè)務(wù)架構(gòu) (Business Architecture)、IT技術(shù)架構(gòu)(Information Technology Architecture)、信息架構(gòu)(Information Architecture)和應(yīng)用架構(gòu)(Application Architecture)。就其根本來說是一樣的,都是從不同的Viewpoint出發(fā),來描述整個(gè)架構(gòu)。下面是RM-ODP中的不同視圖和企業(yè)架構(gòu)中 的分類對應(yīng):
Enterprise Viewpoint <---> Business Architecture
Computional Viewpoint <---> Application Architecture
Information Viewpoint <---> Information Architecture
Technology Viewpoint <---> Information Technology Architecture
Engineering Viewpoint <---> Information Technology Architecture
上述兩種雖然形式有所差別,但內(nèi)容上是比較一致的。而且,其基本要求都是各ViewPoint互相之間描述一致,不得有沖突。
我們通常說到架構(gòu)時(shí),往往偏向Computional, Information和Technology方面。最近以來,似乎有更加偏向Technology的趨勢,這不是一個(gè)好現(xiàn)象。
關(guān)于系統(tǒng)、架構(gòu)的其他定義:
系統(tǒng):
UML 1.3: A system is a collection of connected units that are organized to accomplish
a specific purpose. A system can be described by one or more models, possibly from
different viewpoints.
架構(gòu):
Dewayne E. Perry and Alexander L. Wolf: software architecture is a set of architectural (or, if you will, design) elements that have a particular form. We distinguish three different classes of architectural element: processing elements; data elements; and connecting elements.
Garlan and Perry: The structure of the components of a program/system, their interrelationships, and principles and guidelines governing their design and evolution over time.
Boosch: Software architecture encompasses the set of significant decisions about the organization of a software system
? selection of the structural elements and their interfaces by which a system is composed
? behavior as specified in collaborations among those elements
? composition of these structural and behavioral elements into larger subsystem
Bass, Clements, and Kazman: The software architecture of a program or computing system is the structure or structures of the system, which comprise
系統(tǒng)定義為由一組不同的元素相互連接或關(guān)聯(lián)以提供其單獨(dú)不能提供的獨(dú)特功能(Eberhardt Rechtin)。IEEE擴(kuò)展了這個(gè)定義:系統(tǒng)是一組組件組織起來完成一個(gè)或一組特別的功能(IEEE Std. 610.12-1990)。
架構(gòu)是一個(gè)系統(tǒng)的基礎(chǔ)組織,包括其組件,組件之間的關(guān)系,組件和外界環(huán)境之間的關(guān)系,以及指導(dǎo)這些 組件設(shè)計(jì)、演化的原則。(The fundamental organization of a system embodied in its components, their relationships to each other, and to the environment, and the principles guiding its design and evolution. IEEE Std 1471-2000)
不同的受益人從不同的視點(diǎn)(Viewpoint)看待架構(gòu),這導(dǎo)致了架構(gòu)的描述必定具有不同的視圖。不同的架構(gòu)方法(如Rose 4+1 View、RM-ODP參考模型)都對不同的視圖提供了支持。而在企業(yè)級應(yīng)用中,也是根據(jù)不同的Viewpoint把企業(yè)應(yīng)用架構(gòu)分成業(yè)務(wù)架構(gòu) (Business Architecture)、IT技術(shù)架構(gòu)(Information Technology Architecture)、信息架構(gòu)(Information Architecture)和應(yīng)用架構(gòu)(Application Architecture)。就其根本來說是一樣的,都是從不同的Viewpoint出發(fā),來描述整個(gè)架構(gòu)。下面是RM-ODP中的不同視圖和企業(yè)架構(gòu)中 的分類對應(yīng):
Enterprise Viewpoint <---> Business Architecture
Computional Viewpoint <---> Application Architecture
Information Viewpoint <---> Information Architecture
Technology Viewpoint <---> Information Technology Architecture
Engineering Viewpoint <---> Information Technology Architecture
上述兩種雖然形式有所差別,但內(nèi)容上是比較一致的。而且,其基本要求都是各ViewPoint互相之間描述一致,不得有沖突。
我們通常說到架構(gòu)時(shí),往往偏向Computional, Information和Technology方面。最近以來,似乎有更加偏向Technology的趨勢,這不是一個(gè)好現(xiàn)象。
關(guān)于系統(tǒng)、架構(gòu)的其他定義:
系統(tǒng):
UML 1.3: A system is a collection of connected units that are organized to accomplish
a specific purpose. A system can be described by one or more models, possibly from
different viewpoints.
架構(gòu):
Dewayne E. Perry and Alexander L. Wolf: software architecture is a set of architectural (or, if you will, design) elements that have a particular form. We distinguish three different classes of architectural element: processing elements; data elements; and connecting elements.
Garlan and Perry: The structure of the components of a program/system, their interrelationships, and principles and guidelines governing their design and evolution over time.
Boosch: Software architecture encompasses the set of significant decisions about the organization of a software system
? selection of the structural elements and their interfaces by which a system is composed
? behavior as specified in collaborations among those elements
? composition of these structural and behavioral elements into larger subsystem
Bass, Clements, and Kazman: The software architecture of a program or computing system is the structure or structures of the system, which comprise
- software components
- the externally visible properties of those components,
- and the relationships among them.”