跳轉到內容

ACE+TAO 開源程式設計筆記/整合

來自華夏公益教科書

在過去的 10 年裡,我在 CORBA 技術方面的使用包括 OrbitJacOrbACE+TAO。在這三種技術中,ACE+TAO 最有用,因為它在平臺之間最具可移植性,並且功能最豐富。CORBA 的承諾當然是你輸入一些 IDL,透過 IDL 編譯器執行它,然後生成一個大部分已編寫的客戶端伺服器應用程式。正如你在前面的示例中看到的,這對於現有規範來說基本上是一個目標。這適用的唯一領域是 RPC 風格的應用程式。對於所有其他內容,你(程式設計師)負責執行大量與網路無關的 CORBA 內部程式設計。也許,在遙遠的將來,這個規範可以擴充套件到可以從 IDL 訪問許多所需功能的程度。話雖如此,不必擔心程式設計的網路方面還是很好的。能夠依賴 POA 來管理物件也很不錯,即使這只是對 STL 和 Boost 中發現的現代 C++ 模板模式的略微改進。

這種特定委員會設計的規範實現的缺陷不應該以任何方式貶低其實質性的優勢,最顯著的是其相對於其他技術的效能和相對的程式設計容易程度,同樣是相對於可比技術而言。例如,ACE+TAO 網站上提供的一篇白皮書詳細介紹了使用 TAO 的 CORBA 相對於 Microsoft 的 .Net 協議 的效能優勢,速度快 40 倍,而對 J2EE 效能和特性的比較(如果有點過時)通常有利於 CORBA。

正如本書中的示例所說明的那樣,使用 TAO 的 CORBA 實現一個程式設計環境來分發物件和事件證明,以分散式方式執行大多數任務並不難。使用 TAO 的 CORBA 進行健壯、可配置、無錯誤的實現使其更加理想,當您考慮到使用此技術作為您各種程式設計專案的粘合劑的效能優勢時,CORBA 很可能開始作為大多數需求的首選中介軟體技術。

為了製作本書中的示例,我使用了 KDevelop 作為程式設計 IDE。我在 Linux 上使用它,然後使用 Microsoft 的 Visual C++ 用於 MS 環境。一般來說,我會先在 Linux 下進行所有開發,因為在 Linux 下開發和部署服務要容易得多。這並不是說你不應該在 Ms Windows 下測試這些示例。您在 Windows 下會遇到的問題包括通常缺少對基於伺服器的應用程式的支援。如果您在 TAO 發行版中的 ACE 目錄下檢視,有一個 Microsoft 伺服器的示例,我相信我在過去使用過它。

如果您要使用 KDevelop 或類似的 autotools 基於 IDE,那麼您需要將相應的庫放在專案的 LDFLAGS 行中。如果您的 IDE 不支援用於設定此項的 GUI 欄位,那麼編輯您的 Makefile.AM 檔案,以便 `<您的專案名稱>`_LDFLAGS 變數包含以下內容:**-lTAO_PortableServer -lTAO_CosNaming -lTAO_AnyTypeCode -lACE -lTAO**,加上您可能需要的任何資料庫庫。

華夏公益教科書