監(jiān)理公司管理系統(tǒng) | 工程企業(yè)管理系統(tǒng) | OA系統(tǒng) | ERP系統(tǒng) | 造價咨詢管理系統(tǒng) | 工程設(shè)計管理系統(tǒng) | 甲方項目管理系統(tǒng) | 簽約案例 | 客戶案例 | 在線試用
X 關(guān)閉

.NET會取代COM嗎?--準(zhǔn)備Web服務(wù)的未來

申請免費試用、咨詢電話:400-8352-114

AMTeam.org

.NET會取代COM嗎?

--準(zhǔn)備Web服務(wù)的未來

 

Roger Sessions

首席執(zhí)行官,ObjectWatch

2000 年 12 月

Roger Sessions 概述了 Microsoft 從 COM 到 .NET 的組件體系結(jié)構(gòu)演變,并預(yù)言:Web 服務(wù)的引入將使 Microsoft .NET 應(yīng)用與其它大多數(shù)受組件影響的技術(shù)(特別是 EJB 技術(shù))互操作。

Gartner Group 最近出了一份名為“CIO 警報:Microsoft COM 不再是戰(zhàn)略性選擇!”的報告。必須說明,我發(fā)現(xiàn)這個標(biāo)題很滑稽。COM 不再是戰(zhàn)略性選擇。竟然還是 CIO 警報。真的嗎。

我覺得這種說法非常滑稽的原因在于:依我看來,COM 從 1996 年起就不再是戰(zhàn)略性選擇了。那時 Microsoft 首先發(fā)行了 MTS 并取代了 COM 編程模型??雌饋砟值闷饌€大早來回想 Gartner Group。就象 1996 年初那樣。(CIO 警報:MTS 于四年前推出。)

COM 歷史

COM(Microsoft 的組件模型)很大程度上基于 OMG 的 CORBA(公共對象請求代理體系結(jié)構(gòu)),CORBA 可追溯到 90 年代初,但現(xiàn)在早已落伍。與 CORBA 類似,COM 是簡單的面向組件打包和分發(fā)技術(shù),基本上是加入了多態(tài)性的遠(yuǎn)程過程調(diào)用。

同樣與 CORBA 類似的是,COM 是偽客戶機/服務(wù)器體系結(jié)構(gòu),并具有該體系結(jié)構(gòu)的所有可伸縮性限制。(CIO 警報:客戶機/服務(wù)器體系結(jié)構(gòu)不可伸縮)??蛻魴C/服務(wù)器體系結(jié)構(gòu)將商業(yè)邏輯與客戶機過程捆綁在一起??蛻魴C/服務(wù)器體系結(jié)構(gòu)的問題在于:客戶機與系統(tǒng)資源的關(guān)系是一對一關(guān)系,其中最出名(但不是唯一)的是數(shù)據(jù)庫連接。偽客戶機/服務(wù)器體系結(jié)構(gòu)將商業(yè)邏輯從客戶機過程移出(如 COM/DCOM 和 CORBA),但不提供一對一關(guān)系。COM/DCOM 和 CORBA 是偽客戶機/服務(wù)器體系結(jié)構(gòu),就這點而論,其通過可用系統(tǒng)資源來支持大量客戶機的能力受到一定限制(典型的例子還是數(shù)據(jù)庫連接)。

COM 和其兄弟 DCOM 被設(shè)計成用來支持快速分發(fā)的方法傳輸,這種方法傳輸對富客戶機系統(tǒng)很重要,但對如今基于 Web 的商業(yè)系統(tǒng)所采用的瘦客戶機系統(tǒng)則根本不重要。(CIO 警報:瘦客戶機已取代了富客戶機。)

與 CORBA 目標(biāo)類似,COM/DCOM 目標(biāo)與 COM+ 目標(biāo)完全不同。COM/DCOM 被優(yōu)化成支持快速方法傳輸,而 COM+ 則被優(yōu)化成支持高事務(wù)吞吐量。畢竟,在電子貿(mào)易系統(tǒng)中贏利的途徑是增加事務(wù)吞吐量,而不是減少最初曾被忽略的客戶機響應(yīng)次數(shù)。因此,COM/DCOM 基于客戶機/服務(wù)器模型,而 COM+ 則基于三層編程模型。(CIO 警報:Web 取代了客戶機服務(wù)器體系結(jié)構(gòu))。這使 COM+ 更類似于事務(wù)處理監(jiān)視器(如 BEA 的 Tuxedo 或 IBM 的 CICS),而不是組件模型(如 Microsoft 的 COM)。

.NET 僅僅是具有幾個新特性的 COM+ 嗎?

如果我們在談?wù)?.NET 要實現(xiàn)的應(yīng)用類型,即高可伸縮性、支持 Web、數(shù)據(jù)庫集中型商業(yè)邏輯,那么我已經(jīng)指出,COM/DCOM 早在 1996 年就被 MTS 所取代。四年來我一直在告訴人們在沒有 MTS 支持的情況下不要對這樣的應(yīng)用使用 COM/DCOM。

既然 COM+ 只是 MTS 的下一發(fā)行版,那么對于 Mircosoft 來說,COM+ 幾乎不是新技術(shù)。

那么 .NET 呢?

就象 COM+ 是 MTS 的下一發(fā)行版一樣,.NET 實質(zhì)上也是 COM+ 的下一發(fā)行版。COM/DCOM 為我們帶來組件。MTS 則為我們帶來使這些組件高度可伸縮的中間層體系結(jié)構(gòu)。COM+ 向該體系結(jié)構(gòu)添加幾個新的如異步方法之類的裝飾功能。現(xiàn)在,.NET 使我們能夠從因特網(wǎng)訪問這些高度可伸縮的中間層組件。

Microsoft 把可從因特網(wǎng)訪問的中間層組件稱為 Web 服務(wù)。Web 服務(wù)只是使用 HTTP 作為其傳輸協(xié)議以及使用 XML 作為其打包技術(shù)的 COM+。嚴(yán)格說來,這不是個有重大影響的構(gòu)想,但它確實使商業(yè)邏輯可以從因特網(wǎng)訪問,并且如果有電子聚會場所形式的額外支持,還允許某些非常有趣的商家對商家協(xié)作。

這些電子聚會場所是 IBM 和 Microsoft 領(lǐng)導(dǎo)的集中行業(yè)協(xié)作主題。這些協(xié)作的大多數(shù)都圍繞稱為 UDDI.org 的新行業(yè)聯(lián)盟進(jìn)行。

明天如何編碼?

如果至少在以后兩年內(nèi)不會出現(xiàn) .NET 平臺的最終版本,那么小公司怎樣做才能繼續(xù)構(gòu)建不會在剛完成時就被取代的應(yīng)用呢?正在出現(xiàn)許多改變:新語言、新 ASP+ 開發(fā)模型、傳遞客戶機經(jīng)驗的新方法,以及可能是最重要的,Web 服務(wù)的新概念,因特網(wǎng)協(xié)作的基礎(chǔ)。那么,重要問題是:如何在今天創(chuàng)建明天還可以被用作 Web 服務(wù)的商業(yè)邏輯?

這不如想象的那樣困難。首先,Microsoft 將繼續(xù)支持 COM、DCOM 或 COM+,因此在最壞的情況下,可以通過舊有互操作層運行現(xiàn)有代碼。但是,當(dāng)然沒有人想通過舊有互操作層來運行其應(yīng)用。這確實不是很好。

如果要編寫可以方便遷移到 .NET 平臺的代碼,最好的方法是將商業(yè)邏輯打包成 COM+/Visual Basic 組件。COM+/Visual Basic 編程模型與 .NET 編程模型十分類似,而且為 COM+/Visual Basic 徹底編寫的代碼可以方便地移到 .NET。

這里的要點在于代碼必須為 COM+/Visual Basic 模型徹底地編寫。大多數(shù)現(xiàn)有 COM+/Visual Basic 代碼沒有徹底地編寫。大多數(shù)這些代碼的最大問題是忽略關(guān)鍵的以中間層為中心的編程方針。最常見的違規(guī)是:

隱式編碼了事務(wù)性邊界。

在組件內(nèi)部維護(hù)狀態(tài)。

將安全性委托給數(shù)據(jù)庫。

如果遵循以中間層為中心的設(shè)計規(guī)則,將為 .NET 作好準(zhǔn)備。但是即使努力遵循了所有這些規(guī)則,還是不能毫不費力地將組件移至 .NET 世界。這不是因為組件模型的變更,而是很大程度上因為 Visual Basic 即將發(fā)生的變更。

Visual Basic 語法有時看起來有些隨意,但正要經(jīng)歷一場老早以前就該發(fā)生的最終變動。好消息是 Visual Basic 最終將成為更強壯的語言。壞消息是老版本的 Visual Basic 程序語法將不與 VisualStudio.NET 中的 Visual Basic 語法兼容。遷移將不那么困難,并可以通過遷移工具來簡化,但可能沒有僅僅復(fù)制文件和重新編譯那樣簡單。如果不想作這些更改,可以始終在 Visual Studio 6 中開發(fā),但是這會極大降低您的“酷”(cool) 感。

"酷"是 Microsoft.NET 中的操作詞語。如果 Microsoft 在以后幾年真正支持所有這些技術(shù),那就更酷了。如果整個行業(yè)都在 Web 服務(wù)上達(dá)成一致(很可能的景象),從而使 Microsoft 的 .NET 應(yīng)用可以與大多數(shù)其它受組件影響的技術(shù)(特別使 EJB)互操作,那也會更酷。Web 服務(wù)的要點在于它們?nèi)萑虖V泛的組件模型,只在傳送和方法打包的最小級別上強制一致。

如果 Microsoft 確實實現(xiàn)其 .NET 承諾,我們將看到因特網(wǎng)的平臺主要由 Microsoft 定義。如果 Microsoft 在該問題上犯錯誤,那我們將看到 Microsoft 的作用將越來越小。這種前景的第一個跡象是 Common Language Runtime、VisualStudio.NET、COM+ 和 SOAP。第一個跡象給人以深刻印象?,F(xiàn)在我們必須靜觀和等待???Microsoft 朝哪個方向發(fā)展。

參考資料

  • 本文中的的很多資料最初都在 Roger Sessions 的 ObjectWatch 時事通訊中:

    • ObjectWatch 時事通訊第 30 篇(2000 年 10 月 20 日)"CIO Alert: ObjectWatch responds to Gartner!"。
    • ObjectWatch 時事通訊第 29 篇(2000 年 6 月)"Letter from the PDC 2000: The Unveiling of Microsoft.NET"。
    • ObjectWatch 時事通訊第 25 篇(2000 年 3 月 6 日)"SOAP"。
  • COM+ and the Battle for the Middle Tier,Roger Sessions 著,Wiley Computer Publishing 于 2000 年出版。
  • "CIO Alert: Microsoft COM is No Longer a Strategic Choice,",Edward Younker 著,GartnerGroup 報告 IGG-09062000-01,2000 年 9 月 6 日。(訪問該報告需付費注冊。)
  • Roger Sessions 還講授一日研討會和上機講習(xí)班。

關(guān)于作者

Roger Sessions 世界上中間層體系結(jié)構(gòu)的主要專家之一。他有 Microsoft COM+、OMG CORBA 和 Sun EJB 的豐富經(jīng)歷。他著有五本書籍和許多文章,并曾在無數(shù)會議上作演講。他編寫并出版的關(guān)于分布式組件技術(shù)的
ObjectWatch 時事通訊被廣泛閱讀和高度認(rèn)可。他最新的書籍是 COM+ and the Battle for the Middle Tier??赏ㄟ^ roger@objectwatch.com 與 Roger 聯(lián)系。

發(fā)布:2007-03-25 13:27    編輯:泛普軟件 · xiaona    [打印此頁]    [關(guān)閉]
相關(guān)文章:
石家莊OA系統(tǒng)
聯(lián)系方式

成都公司:成都市成華區(qū)建設(shè)南路160號1層9號

重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓

咨詢:400-8352-114

加微信,免費獲取試用系統(tǒng)

QQ在線咨詢