1. 程式人生 > >架構、構件、元件、框架、中介軟體的區別

架構、構件、元件、框架、中介軟體的區別

什麼是中介軟體?

IDC給出的一個定義:中介軟體是一種獨立的系統軟體或服務程式,分散式應用軟體藉助這種軟體在不同的技術之間共享資源,中介軟體位於客戶機伺服器的作業系統之上,管理計算資源和網路通訊。

從這些定義中可以看出:

·中介軟體是一類軟體,而非一種軟體;

·中介軟體不僅僅實現互連,還要實現應用之間的互操作;

·中介軟體是基於分散式處理的軟體,最突出的特點是其網路通訊功能。

什麼是Web Services?

Web Services就是可以通過web描述、釋出、定位和呼叫的模組化應用。Web Services可以執行任何功能,從簡單的請求到複雜的業務過程。一旦Web Services被部署,其他的應用程式或是Web Services就能夠發現並且呼叫這個部署的服務。

Web Services通過簡單物件訪問協議 (Simple Object Access Protocol,SOAP)來呼叫。SOAP是一種輕量級的訊息協議,它允許用任何語言編寫的任何型別的物件在任何平臺之上相互通訊。SOAP訊息採用可擴充套件標記語言(XML)進行編碼,一般通過HTTP進行傳輸。與其它的分散式計算技術不同,Web Services是鬆耦合的,而且能夠動態地定位其他在internet上提供服務的元件,並且與它們互動。

Web Services使用諸如SOAP訊息這樣的XML訊息,通過一種良好定義的訊息交換模式來呼叫。通過描述呼叫服務所必需的資料,Web Services描述語言 (WSDL)文件定義了訊息交換模式。

元件

簡而言之,元件就是物件。C++ Builder中叫元件,Delphi中叫部件,而在Visual BASIC中叫控制元件。

元件是對資料和方法的簡單封裝。C++ Builder中,一個元件就是一個從TComponent派生出來的特定物件。元件可以有自己的屬性和方法。屬性是元件資料的簡單訪問者。方法則是元件的一些簡單而可見的功能。

元件是C++ Builder環境中最令人激動的部分。使用元件可以實現拖放式程式設計、快速的屬性處理以及真正的面向物件的設計。VCL和CLX元件是C++ Builder系統的核心。

1、元件應用

使用現成的元件來開發應用程式時,元件工作在兩種模式下:設計時態和執行時態。

在設計時態下,元件顯示在C++ Builder窗體編輯器下的一個窗體中。設計時態下元件的方法不能被呼叫,元件不能與終端使用者直接進行互動操作,也不需要實現元件的全部功能。

在執行狀態下,元件工作在一個確實已經執行的應用程式中。元件必須正確地將自身表示出來,它需要對方法的呼叫進行處理並實現與其他元件之間有效的協同工作。

設計時態下所有的元件在窗體中都是可見的,但在執行時態下不一定可見。如TTable、TQuery和TDataSet在執行時態下就不可見,但他們均完成了重要的功能。

2、元件建立

建立元件就是自行設計製作出新的元件。

設計元件是一項繁重的工作。自行開發元件與使用元件進行視覺化程式開發存在著極大的不同,要求程式設計師熟知原有的VCL類庫結構,精通面向物件程式設計。

設計元件是一項艱苦的工作。對於元件的開發者,元件是純粹的程式碼。元件的開發不是一個視覺化的開發過程,而是用C++或Object Pascal嚴格編制程式碼的工作。實際上,建立新元件使我們回到傳統開發工具的時代。雖然這是一個複雜的過程,但也是一個一勞永逸的過程。

建立元件的最大意義在於封裝重複的工作,其次是可以擴充現有元件的功能。

元件建立過程包括設計、開發、除錯(就是所謂的3D's)工作,然後是元件的使用。

元件開發者應該掌握的三項主要內容是:屬性、事件和方法。

模式,即pattern。其實就是解決某一類問題的方法論。你把解決某類問題的方法總結歸納到理論高度,那就是模式。

Alexander給出的經典定義是:每個模式都描述了一個在我們的環境中不斷出現的問題,然後描述了該問題的解決方案的核心。通過這種方式,你可以無數次地使用那些已有的解決方案,無需在重複相同的工作。

模式有不同的領域,建築領域有建築模式,軟體設計領域也有設計模式。當一個領域逐漸成熟的時候,自然會出現很多模式。

什麼是框架

框架,即framework。其實就是某種應用的半成品,就是一組元件,供你選用完成你自己的系統。簡單說就是使用別人搭好的舞臺,你來做表演。而且,框架一般是成熟的,不斷升級的軟體。

構件(component)是可複用的軟體組成成份,可被用來構造其他軟體。它可以是被封裝的物件類、類樹、一些功能模組、軟體框架(framwork)、軟體構架(或體系結構Architectural)、文件、分析件、設計模式(Pattern)等。構件分為構件類和構件例項,通過給出構件類的引數,生成例項,通過例項的組裝和控制來構造相應的應用軟體,這不僅大大提高了軟體開發者的開發效率,也大大提高了軟體的質量。