架構,構件,組件,框架,中間件之間區別![轉]

中間件作爲一大類系統軟件,與操作系統,數據庫管理系統並稱"三套車",其重要性是不言而語的.

那什麼是中間件?

我們來看看以下的幾種定義:
http://middleware.internet2.edu/ 給出了middleware的一個定義:
Middleware, is a layer of software between the network and the applications. This software provides services such as identification, authentication, authorization, directories, and security. In today's Internet, applications usually have to provide these services themselves, which leads to competing and incompatible standards. By promoting standardization and interoperability, middleware will make advanced network applications much easier to use.
同樣,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系統的核心。
二、組件應用
使用現成的組件來開發應用程序時,組件工作在兩種模式下:設計時態和運行時態。
在設計時態下,組件顯示在C++ Builder窗體編輯器下的一個窗體中。設計時態下組件的方法不能被調用,組件不能與最終用戶直接進行交互操作,也不需要實現組件的全部功能。
在運行狀態下,組件工作在一個確實已經運行的應用程序中。組件必須正確地將自身表示出來,它需要對方法的調用進行處理並實現與其他組件之間有效的協同工作。
設計時態下所有的組件在窗體中都是可見的,但在運行時態下不一定可見。如TTable、TQuery和TDataSet在運行時態下就不可見,但他們均完成了重要的功能。
三、組件創建
創建組件就是自行設計製作出新的組件。
設計組件是一項繁重的工作。自行開發組件與使用組件進行可視化程序開發存在着極大的不同,要求程序員熟知原有的VCL類庫結構,精通面向對象程序設計。
設計組件是一項艱苦的工作。對於組件的開發者,組件是純粹的代碼。組件的開發不是一個可視化的開發過程,而是用C++或Object Pascal嚴格編制代碼的工作。實際上,創建新組件使我們回到傳統開發工具的時代。雖然這是一個複雜的過程,但也是一個一勞永逸的過程。
創建組件的最大意義在於封裝重複的工作,其次是可以擴充現有組件的功能。
組件創建過程包括設計、開發、調試(就是所謂的3D's)工作,然後是組件的使用。
組件開發者應該掌握的三項主要內容是:屬性、事件和方法。

http://www.vchome.net/dotnet/webservice/webservice15.htm
http://www.csdn.net/develop/read_article.asp?id=15399
模式,即pattern。其實就是解決某一類問題的方法論。你把解決某類問題的方法總結歸納到理論高度,那就是模式。

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

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

什麼是框架?

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

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

http://www.umlchina.com/CBD/BestIndex1.htm 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章