什麼是com

一、產生COMComponent Object Model)的背景

  一個應用程序通常有單個的二進制文件組成,每發佈一個新版本都需要全部重新編譯。任何變化(例如操作系統、硬件及客戶需求等變化)都需要等重新編譯後才能發佈,發佈後還需要客戶對其軟件的全部鏈接,因此通過這種方式開發的軟件不易與升級。

   隨着軟件業技術的迅速發展,傳統的程序的升級方式已不能適應軟件發展的需要。解決這一問題的方法是將鐵板一塊的應用程序分割成較小的塊的應用或組件,每一小塊負責特定的功能。然後在運行時將這些小塊組裝起來形成所需的應用程序。每一個組件負責特定的功能,因此在對某個組件升級時就不會影響其它組件的正常功能。最終程序可以隨着時間的推進不斷升級。

  這種軟件的開發具有如下特點:

 1)、軟件易於升級,可以使軟件逐步開發。

 2)、軟件更容易開發,並且可以同時開發,加速開發進程。

  這就需要一種解決方案,即將單個應用程序分成幾個個獨立部分,也即組件。

  COM提供了編寫這種組件的一種方法。

二、組件的優點

   1、應用程序的升級,通過組件開發的應用程序可以隨着時間的發展不斷髮展進化。

   2、應用程序的定製,根據運行時加載組件的不同可以定製不同的功能。

3、可以加速應用程序的開發進度:

1)、組件庫的複用,降低不必要的開發時間。

2)、分佈式開發,多個人同時開發不同的組件模塊,縮短開發週期。

三、建立組件需要滿足的條件

   組件的優點直接源於可以從應用程序動態的加載和卸載。

   必須滿足如下兩個條件:

      1、動態鏈接,例如DLL

 2、隱藏內部實現細節,例如針對接口編程(當內部變化時,不會影響使用此接口的客戶)

  這兩個條件缺一不可,從重要程度看,條件(1)是至關重要的條件,若此條件不滿足組件的優點將全部消失。條件(2)是必要條件,此條件能降低各個組件之間的耦合度,從而能減少組件間的相互影響,才能使組件的優點能更好的展現出來。

    客戶同組件實現之間的隔離開的要求給組件增加了一些如下限制

       1)、要求語言無關:

             這就使任一個組件可以被任何客戶使用,增加了組件被使用的範圍,減少對組件使用的限制。

       2)、組件必須以二進制形式發佈。

                      如果想實現組件語言的隱藏,必須將組件編譯,鏈接起來就可以直接用。

       3)、組件必須能在不影響客戶的前提下升級。

             一個組件的版本必須即能被老版本的客戶使用,同時也能被新版本的客戶使用。例如:已經發布出去的組件接口不能被修改,若想修改必須生成新的組件。

       4)、組件在網絡上的位置必須可以被透明的分配。

             組件及它的客戶可以在一個進程內、不同進程或者不同機器上運行。客戶對遠程組件的管理方式應和對本地組件的管理方式一致。

四、什麼是COM

COM是一種規範,說明了如何建立組件以及如何通過組件構成應用程序。

COM是一種編程方法(就像結構化編程和麪向對象編程跟編程語言無關)。

五、COM與客戶程序和組件的關係

    爲保證客戶和組件的互相操作,COM提供了一些標準,即需要遵循的規範。

   COM規範是一套爲組件架構設置標準的文檔。

   1COM組件是什麼:

         COM組件,即遵循COM提供的規範製作出來的組件。

         例如:COM組件是以Win32的動態鏈接庫(即DLL)或可執行文件(EXE)的形勢發佈出去的代碼。

         客戶可以根據COM規範來找到COM組件和使用COM組件。

   2COM不是什麼:

         COM不是一種計算機語言,那COM和一種語言來比較是不合適的。

         COMDLL比較也是不合適的,DLL只是COM用來組合組件的一個宿主。

         COM也不是一個函數集。

         總結:COM給開發人員提供開發語言無關的組件庫一種方法COM本身沒有任何實現。

 六、應用程序的構成

每個COM組件均可以同其他組件一起被使用。客戶和組件之間的信息隱藏是通過接口來實現的,這就也顯示出接口對組件的重要性。

總結:遵循COM標準的組件可以組合起來構成應用程序。

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