USB轉串口與虛擬串口相關

不是原創,網上查詢整理。

目錄

一、串口與並口

二、USB轉串口、虛擬串口概念

三、串口占用問題

四、其他:多個程序共享一個串口數據

五、COM、COM+和DCOM與COM端口無關


 

一、串口與並口

(一)串行接口(即COM口):

簡稱串口,也稱串行通信接口。按電氣標準及協議來分包括RS-232-C、RS-422、RS485、USB、TTL等。 RS-232-C、RS-422與RS-485標準只對接口的電氣特性做出規定,不涉及接插件、電纜或協議。USB主要應用於高速數據傳輸領域。

串口指物理接口形式(硬件)。而TTL、RS-232、RS-485是指的電平標準(電信號)。RS232信號的邏輯1(高電平)電壓爲-15v邏輯0(低電平)電壓爲+15v,而TTL的電壓則是0v-5v。所以2種接口不能互相兼容,需要轉換芯片進行電平轉換。一般單片機用的都是TTL串口,而工控機等使用9針串口的都是RS232信號。

TTL:Transistor-Transistor Logic 晶體管-晶體管邏輯(電路)。

RS-232-C:也稱標準串口,RS是英文“推薦標準”的縮寫,是目前最常用的一種串行通訊接口。它的全名是“數據終端設備(DTE)和數據通訊設備(DCE)之間串行二進制數據交換接口技術標準”。傳統的RS-232-C接口標準有22根線,採用標準25芯D型插頭座 (DB-25) 的。後來的PC上使用簡化了的9芯D型插座。現在應用中25芯插頭座已很少採用。電腦一般有兩個串行口:COM1和COM2,計算機後面能看到9針D形接口 (DB-9)就是COM1。很多手機數據線或者物流接收器都採用COM口與計算機相連。COM2一般從主板上的插針引出。不過新型電腦一般只有USB接口。

 

 

RS-422:爲改進RS-232通信距離短、速率低的缺點,RS-422定義了一種平衡通信接口,將傳輸速率提高到10Mb/s,傳輸距離延長到4000英尺(速率低於100kb/s時),並允許在一條平衡總線上連接最多10個接收器。RS-422是一種單機發送、多機接收的單向、平衡傳輸規範,被命名爲TIA/EIA-422-A標準。

RS-485:爲擴展應用範圍,EIA又於1983年在RS-422基礎上制定了RS-485標準,增加了多點、雙向通信能力,即允許多個發送器連接到同一條總線上,同時增加了發送器的驅動能力和衝突保護特性,擴展了總線共模範圍,後命名爲TIA/EIA-485-A標準。

Universal Serial Bus(通用串行總線)簡稱USB,是目前電腦上應用較廣泛的接口規範,由Intel、Microsoft、Compaq、IBM、NEC、Northern Telcom等幾家大廠商發起的新型外設接口標準。USB接口是電腦主板上的一種四針接口,其中中間兩個針傳輸數據,兩邊兩個針給外設供電。USB接口速度快、連接簡單、不需要外接電源,傳輸速度12Mbps,最新USB2.0可達480Mbps;電纜最大長度5米,USB電纜有4條線,2條信號線,2條電源線,可提供5伏特電源,USB電纜還分屏蔽和非屏蔽兩種,屏蔽電纜傳輸速度可達12Mbps,價格較貴,非屏蔽電纜速度爲1.5Mbps,但價格便宜;USB通過串聯方式最多可串接127個設備;支持熱插拔。

RJ-45接口是以太網最爲常用的接口,RJ45是一個常用名稱,指的是由IEC (60)603-7標準化,使用由國際性的接插件標準定義的8個位置(8針)的模塊化插孔或者插頭。

(二)並行接口(簡稱並口):

並口採用的是25針D形接頭。所謂“並行”,是指8位數據同時通過並行線進行傳送,這樣數據傳送速度大大提高,但並行傳送的線路長度受到限制,因爲長度增加,干擾就會增加,數據也就容易出錯,目前,並行接口主要作爲打印機端口等。
並口的工作模式:

1:SPP(Standard Parallel Port)稱爲標準並口,它是最早出現的並口工作模式,幾乎所有使用並口的外設都支持該模式。

2:EPP(Enhanced Parallel Port)稱爲增強型高速並口,它是在SPP 的基礎上發展起來的新型工作模式,也是現在應用最多的並口工作模式,目前市面上的大多數打印機、掃描儀都支持EPP模式。

3:ECP(ExtendedCapability Port)即擴充功能並口,它是目前比較先進的並口工作模式,但兼容性問題也比較多,除非您的外設支持ECP 模式,否則不要選擇該模式。


二、USB轉串口、虛擬串口概念

(一)USB轉串口(物理串口,安裝驅動後工作,直接與外部設備連接):

即實現計算機USB接口到通用串口之間的轉換。當然,即可轉RS232標準串口,也可轉TTL串口。USB轉串口是“物理串口”,直接連接外部設備。

目的:提供串口,與對應的外部設備通信。USB轉串口設備等於將傳統的串口設備變成支持熱插撥、即插即用、傳輸速度快的USB設備。這個接口模塊可以被看作是一個USB2.0協議的轉換器。

RS232、RS485、串口接口工控領域應用廣泛。在使用編程器編程時也會用到串口;一些機械控制系統,門禁系統,都離不開使用RS232、RS485來通訊。傳統的主板有這個接口,但很多新主板(如現在筆記本)僅有USB接口,沒有對應接口直接與上述設備通信,需要開發出系列USB轉串口產品,來解決這個問題。

如:USB轉TTL、USB轉RS232等。

USB轉串口驅動安裝

USB轉串口驅動程序是和USB轉串口設備的芯片有關的,芯片的質量、電路的設計、製作工藝是USB轉串口設備質量的關鍵,價格也有較大差別。,如果產品芯片不同,則驅動不同。一般windows7、windows10系統也可自動檢測設備芯片型號,自動安裝與之匹配的驅動程序(windows系統自帶驅動程序)。如:慧淨電子WINDOWS系統下的CH340驅動程序,就是USB轉串口線的驅動,芯片是CH340的都能用。安裝驅動後再連接USBL轉串口板子就能用了。

1、如果沒有USB轉串口驅動,可以直接將USB轉串口設備直接插在電腦上,讓windows系統自動搜索其自帶驅動安裝(如果windows系統沒有自帶USB轉串口驅動,只能下載廠家或網上同型號芯片的USB轉串口驅動程序,右鍵單擊驅動程序——以管理員身份運行安裝);
2、通過 USB 線和電腦連接起來,此時電腦右下角會顯示查找硬件和安裝驅動程序,待安裝完成;
3、"計算機"——"設備管理器"——"端口(COM 和 LPT)"——找到USB轉成的串口("USB-SERIAL CH340"標識的COM3或COM4,或其他)——右鍵單擊,選擇屬性——"驅動程序"。如果驅動版本有顯示,說明驅動安裝成功。

4、修改串口號:設備管理器中找到相應串口——選擇"屬性"——選擇"端口設置"標籤——"高級"按鈕——對話框中將會看到在"COM端口號"右邊有個下拉選擇組合框,點擊選擇想要設置的COM端口號,點擊"確定"。

5、通過 STCISP 軟件我們可以實際操作一下 USB 轉串口,因爲我的電腦虛擬出的是 COM4,所以在 COM:一欄選擇 COM4,這個選項要根據自己電腦虛擬的 COM口來選擇。如果驅動沒問題,COM 口選擇正確的話,使用 STCISP 在下載程序的過程中,可以看到 COM:右側的灰色圓點會變成綠色圓點。

(二)虛擬串口(間接與外設連接,或內部測試用等)

增加系統虛擬串口l軟件工具:Virtual Serial Port Driver,下載地址:

vspd 虛擬串口 Virtual Serial Port Driver 7.2+破解補丁 https://blog.csdn.net/lkfstar/article/details/82193045

VSPD9.0破解版虛擬串口工具下載 - 第五驅動  http://www.drv5.cn/sfinfo/16838.html

只破解不漢化,好用。先安裝壓縮包文件夾中原文件,再用破解文件覆蓋安裝路徑中的原文件。

1、用途:
(1)創建任意數量的虛擬COM端口。創建的端口分佈在設備管理器“端口”組,這意味着他們將是可見的,所有軟件和硬件安裝容易識別。可以設置哪些應用程序可以訪問定義的端口。沒有真正的硬件串口被佔用。
(2)完整的真正的端口設置仿真。通過虛擬串口驅動程序創建的虛擬端口,工作完全一樣以假亂真。他們模擬所有實際串口設置,並提供嚴格的波特率仿真和全面HandFlow控制支持。此外,你可以很容易地仿真串行線路中斷。

VSPD採用先進的Windows內核驅動技術,確保了WDM,WMI,電源管理,即插即用,支持等。虛擬串口驅動程序與COM API完全兼容,並支持所有Windows消息。

(3)管理所有的信號線。與虛擬串口驅動程序的emulate創建的虛擬串口和支持所有標準的硬件信號線(DTR / DSR,RTS / CTS,ERROR,DCD等)。作爲真正的調制解調器連接,本地端口的DTR連接到DSR和遠程端口的DCD,和本地端口的RTS連接到遠程端口的CTS。此外,你可以選擇回送的引腳或創建取決於您的硬件配置自定義的。

2、VSPD程序具體使用說明:還是軟件自帶幫助文件更全面。

(1)Pairing:Creating Pairs of Virtual Ports
To create a virtual port pair, perform the following steps:
1. Choose ports for pairing. You can select ports from the dropdown list or specify custom port names.
2. Click the ‘Add virtual pair’ button.

虛擬串口對:用來實現同一電腦內兩個應用之間的串口數據互傳。通過虛擬串口對,可以免除真實串口連線。多用於軟件測試等場合。

(2)Split:Splitting Real Serial Ports

串口分身:將一個真實串口(物理串口)映射成多個虛擬串口。真實串口接收到的數據轉發給每個虛擬串口,虛擬串口接收到的數據都轉發給真實串口。常用於多個應用需要同時和一臺設備通信的場景。

Share COM port between apps. Serial Data Splitter. [TUTORIAL]  https://www.eltima.com/article/share-com-port-between-apps/

Table of contents:

  1. Serial Port Splitter: What it is and how it works?
  2. How to share COM ports between applications [step-by-step guide]
  3. VSPD PRO benefits beyond simply splitting serial port
  4. Hardware Alternatives to Serial Port Splitter software
  5. Scenarios for successful application of the serial RS232 port splitter

In this example, COM1 (real port, set as main one) is split into several virtual ones: COM2 (main) and COM3. Real port (COM1) parameters are dynamic and depend on the parameters of the main port of the opposite side (COM2). Now data coming into the split real port (COM1) will be sent to each out-side virtual port (COM2 and COM3), and vice versa.

For example, you have a GPS sensor, connected to COM1. It delivers GPS data to COM 2 and COM3, connected correspondingly to two navigational programs which need GPS data (e.g. Coastal Explorer and Electronic logbook).

To split one real port into several virtual ones, do the following:
1. Select a real port which will be split.
2. Choose virtual ports which will communicate with the split real port and add them to the bundle by clicking the “Add port” button.
3. Choose a virtual port to be set as the main one and click “Set main”.
4. Click the “Add split port” button. Now, your port bundle is automatically created in the Bundle tree.

(3)Join:Joining Several Real Ports
To join several real ports into one virtual, follow these steps:
1. Add real ports to the joining list. To do this, select a port and click the “Add port” button.
2. Set the main port in the bundle. To achieve this, choose the required port and click “Set main”.
3. Select a virtual port to join into.
4. Finally, click the “Add joined ports” button. Now, your port bundle is automatically created in the Bundle tree.

 

(4)Sharing:【在工作中已經實踐,好用】

In this example, a real port (COM1) is shared with two applications which can control signal lines and manage real port settings.

Imagine that now your meteorological station, connected to COM port (COM1), can send to and receive data from two programs simultaneously (e.g., software that allows you to connect your PC to a weather station to display data for analysis) (Weather Display and Virtual Weather Station, for example).

通過共享物理串口,一臺計算機中兩個應用程序同時使用同一個串口。已經經實踐驗證,確實可行。

後續:如果正版軟件是帶USB加密狗,Sharing後可能導致軟件檢測不到加密狗,造成軟件無法正常使用。

建議:如果使用Split模式,能否讓軟件檢測到加密狗呢?沒有測試!

序提供串口連接。

 

…………1先選定一個物理串口,2再選定需共享的程序。Add share加入共享,Edit可對共享設置進行編輯。

cannot unshare real serial port com   please close all application that use shared ports

virtual serial port pro 9.0 by eltima software

cannot share this port. See log for details.To ignore errors and  create bundles anyway,please,enable the corresponding setting in options.

(5)其它

串口聚合:將多個真實串口(物理串口)聚合成一個虛擬串口,每個真實串口的數據都發給該虛擬串口,虛擬串口的數據也會發送給每一個真實串口。常用於一個應用控制多臺外部設備的場景。

串口羣組:羣組可以完成一組串口之間的“羣聊”通信。任何一個串口發送的數據,羣組中其它串口都可以接收到。

遠程客戶端:用於將串口數據通過tcp透傳給服務端,或接收服務端的數據。可以是真實串口,也可以是虛擬串口。

遠程串口服務端:作爲tcp服務端,接收來自tcp客戶端的數據,並將接收到的數據通過真實串口或虛擬串口發送出來。

Usage scenarios of VSPD Pro  https://wiki.eltima.com/user-guides/vspd-pro/use-cases.html

2、虛擬串口條目無法刪除

(1)如果操作正常,物理端口、使用VSPD軟件增加的各種虛擬端口都將在“端口(COM和LPT)”下顯示。

USB-SERIAL CH340(COM3)端口,爲物理的USB轉COM端口;

虛擬串口對:ELTIMA Virtual Serial Port(com1->com2)、ELTIMA Virtual Serial Port(com2->com1)

split形成的端口:ELTIMA Virtual Serial Port(com5);

注意:進行物理端口pairing、split操作時,儘量避免重複佔用當前已經存在物理端口,否則出現各種衝突問題。

VSPD操作日誌:軟件界面底部有Activity log(活動日誌),記錄操作及反饋信息。

(2)有時由於切換不同的VSPD版本等原因,可能出現在pairing“配對”、split“分離”等標籤頁不能找到原來已經建好的虛擬端口(在設備管理器中仍然顯示),不能刪除等操作。那麼原虛擬端口一般在complex"複合"頁簽下。

(3)如對在設備管理器中直接對虛擬設備進行刪除、卸載等操作,並不能真正刪除掉。掃描檢測硬件改動,這些刪除或卸載的端口出現在“其他設備”列表中。解決方法:重新安裝驅動程序。

例:右鍵點擊“ELTIMA_Virtual_Serial_Port_06”——更新驅動程序軟件——瀏覽計算機以查找驅動程序軟件——C:\Program Files\Eltima Software\Virtual Serial Port Driver Pro 9.0(以實際VSPD安裝文件夾爲準,勾選:包含子文件夾)——下一步。

驅動程序安裝成功後,該虛擬端口恢復到“端口(COM和LPT)”列表中。應用VSPD軟件進行刪除等操作。

(4)當上述方法操作完成後,仍然存在異常,需要重啓計算機。重新查看設備管理器,虛擬端口一般情況下正常。

(5)進行操作時,點擊操作過快,有可能由於設備管理器自動檢測,尚未對設備變動進行刷新,導致操作失敗或錯誤。

三、串口占用問題

每次使用藍牙、手機數據線等設備,windows自動分配一個新的com端口,但原設備分配的COM口並未刪除,且爲佔用狀態。

1、打開註冊表:HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/COM Name Arbiter,把BComD刪除後重新嘗試即可!

2、如未釋放佔用狀態,重啓計算機。

四、其他:多程序共享一個串口數據

(一)軟件實現

多軟件要訪問同一臺串口設備的情景。自身實踐:地稱(衡器)一個COM口與電腦中固廢管理軟件、衡器廠軟件同時連接。

虛擬串口工具軟件,將物理串口分身成多個虛擬串口,不修改應用程序的情況下方便使用。

1、VSPD程序——split分身。選擇要添加的物理串口和虛擬串口。將物理串口分成多個虛擬串口。設置真實串口的波特率,虛擬串口自動識別任意波特率,不需設置。見本文上圖。

2、MX虛擬串口軟件:http://www.meixuannet.cn,網站關於虛擬串口知識,明確簡單。

(二)硬件實現

設備1分2串口線—連接—電腦端串口(自帶,下圖黑色USB轉串口一拖四)——每一程序分配一個物理串口。

 

(三)其他參考資料

用Labview將一路物理串口分成多路虛擬串口  http://www.51hei.com/arduino/3731.html

中國電子技術論壇http://bbs.elecfans.com/jishu_1130561_1_1.html

串口通信助手SSCOM:鏈接:https://pan.baidu.com/s/1qQgWSdyKS1HsZmI8ilYKpw,提取碼:ygge

串口調試工具:串行通信接口調試軟件,如:串口調試助手、串口監控器、串口調試助手等

串口調試助手:它能用來修改串口波特率、校驗位、數據位和串口停止位,還能設置接受區和發送區,並能增加串口的自動識別功能。

串口調試工具與com口編程 - 隨風而逝.。 - 博客園  https://www.cnblogs.com/obge/p/11439940.html

 

五、COM、COM+和DCOM與COM端口無關

COM是組件對象模型,是實現3/N層應用的基礎,它的目的就是組件化,應用程序分層。

DCOM是分佈式的COM,也就說可以遠程的創建,最初它利用遠程自動化來實現,用註冊VBR的方法來配置客戶端,來適應DCOM服務器。

COM+現在的概念不很清楚,因爲它是一個擴展集,MS現在的MTS取代了遠程自動化這種原始的功能很弱的方法後,他們似乎已經都是一個集合體。

MTS(Microsoft Transaction Server)是微軟爲其Windows NT操作系統推出的一箇中間件產品,由於它具有強大的分佈事務支持、安全管理、資源管理和多線程併發控制等特性,使其成爲在Windows平臺上開發大型數據庫應用系統的首選產品。由於MTS屏蔽了底層實現的複雜性,極大地簡化了這類應用的開發,程序員可以將精力集中在業務邏輯上,因而有效地提高了軟件的開發效率。

1、組件對象模型(COM Componet Object Model),是微軟公司爲了計算機工業的軟件生產更加符合人類的行爲方式開發的一種新的軟件開發技術。在COM構架下,人們可以開發出各種各樣的功能專一的組件,然後將它們按照需要組合起來,構成複雜的應用系統。由此帶來的好處是多方面的:可以將系統中的組件用新的替換掉,以便隨時進行系統的升級和定製;可以在多個應用系統中重複利用同一個組件;可以方便的將應用系統擴展到網絡環境下;COM與語言,平臺無關的特性使所有的程序員均可充分發揮自己的才智與專長編寫組件模塊。 COM是開發軟件組件的一種方法。組件實際上是一些小的二進制可執行程序,它們可以給應用程序,操作系統以及其他組件提供服務。開發自定義的COM組件就如同開發動態的,面向對象的API(應用程序調用系統功能的接口)。多個COM對象可以連接起來形成應用程序或組件系統。並且組件可以在運行時刻,在不被重新鏈接或編譯應用程序的情況下被卸下或替換掉。

Microsoft的許多技術,如ActiveX(根據微軟權威的軟件開發指南MSDN(Microsoft Developer Network)的定義,ActiveX插件以前也叫做OLE控件或OCX控件,它是一些軟件組件或對象,可以將其插入到WEB網頁或其它應用程序中)。

 

DirectX:並不是一個單純的圖形API,它是由微軟公司開發的用途廣泛的API,它包含有Direct Graphics(Direct 3D+Direct Draw)、Direct Input、Direct Play、Direct Sound、Direct Show、Direct Setup、Direct Media Objects等多個組件,它提供了一整套的多媒體接口方案。只是其在3D圖形方面的優秀表現,讓它的其它方面顯得暗淡無光。DirectX開發之初是爲了彌補Windows 3.1系統對圖形、聲音處理能力的不足,而今已發展成爲對整個多媒體系統的各個方面都有決定性影響的接口。

OLE:是指與對象鏈接和嵌入有關的技術,包括容器、服務器、就地編輯、拖放和彩單合併等,在應用程序之間共享的一大塊數據稱爲一個OLE對象,能夠包含OLE對象的應用程序稱爲OLE容器,而允許自己的數據被包含到其他應用程序中的程序稱爲OLE服務器。

DirectX以及OLE等都是基於COM而建立起來的。並且Microsoft的開發人員也大量使用COM組件來定製他們的應用程序及操作系統。 COM所含的概念並不止是在Microsoft Windows操作系統下才有效。COM並不是一個大的API(用標準的定義來講,API就是Windows的32位應用程序編程接口,是一系列很複雜的函數,消息和結構,它使編程人員可以用不同類型的編程語言編制出的運行在Windows95 和Windows NT操作系統上的應用程序。),它實際上象結構化編程及面向對象編程方法那樣,也是一種編程方法。在任何一種操作系統中,開發人員均可以遵循“COM方法”。 一個應用程序通常是由單個的二進制文件組成的。當編譯器生成應用程序之後,在對下一個版本重新編譯併發行新生成的版本之前,應用程序一般不會發生任何變化。操作系統,硬件及客戶需求的改變都必須等到整個應用程序被重新生成。 目前這種狀況已經發生變化。開發人員開始將單個的應用程序分隔成單獨多個獨立的部分,也既組件。這種做法的好處是可以隨着技術的不斷髮展而用新的組件取代以有的組件。此時的應用程序可以隨新組件不斷取代舊的組件而漸趨完善。而且利用已有的組件,用戶還可以快速的建立全新的應用。 傳統的做法是將應用程序分割成文件,模塊或類,然後將它們編譯並鏈接成一個單模應用程序。(靜態的鏈接,文件擴展名爲.obj,在進程內實現的)它與組件建立應用程序的過程(稱爲組件構架)有很大的不同。一個組件同一個微型應用程序類似,即都是已經編譯鏈接好並可以使用的二進制代碼,應用程序就是由多個這樣的組件打包而得到的。單模應用程序只有一個二進制代碼模塊。自定義組件可以在運行時刻同其他的組件連接起來以構成某個應用程序。在需要對應用程序進行修改或改進時,只需要將構成此應用程序的組件中的某個用新的版本替換掉即可(動態的鏈接,文件擴展名爲.dll,是在進程外實現的)。 COM即組件對象模型,是關於如何建立組件以及如何通過組件建立應用程序的一個規範,說明了如何可動態交替更新組件。 COM是一種說明如何建立可動態互變組件的規範,此規範提供了爲保證能夠互操作,客戶和組件應遵循的一些二進制和網絡標準。通過這種標準將可以在任意兩個組件之間進行通信而不用考慮其所處的操作環境是否相同、使用的開發語言是否一致以及是否運行於同一臺計算機。

COM的優點

 首先,用戶一般希望能夠定製所用的應用程序,而組件技術從本質上講就是可被定製的,因而用戶可以用更能滿足他們需要的某個組件來替換原來的那個。

其次,由於組件是相對應用程序獨立的部件,我們可以在不同的程序中使用同一個組件而不會產生任何問題,軟件的可重用性將大大的得到增強。

第三,隨着網絡帶寬及其重要性的提高,分佈式網絡應用程序毫無疑問的成爲軟件市場上越來越重要的買點。組件價構可以使得開發這類應用程序的過程得以簡化。 DCOM 是微軟與其他業界廠商合作提出的一種分佈 組件 對象模型,它是COM在分佈計算方面的自然延續,爲分佈在網絡不同節點的兩個COM 組件 提供了互操作的基礎結構。 DCOM 增強COM的分佈處理性能,支持多種通信協議,加強 組件 通信的安全保障,把基於認證Internet安全機制同基於Windows NT的C2級安全機制集成在一起。但從系統內部的實現機制而言, DCOM 所採用的技術仍符合圖1所示的COM模式。 DCOM 自動建立連接、傳輸信息並返回來自遠程 組件 的答覆。 DCOM 在 組件 中的作用有如PC機間通信的PCI和ISA總線,負責各種 組件 之間的信息傳遞,如果沒有 DCOM ,則達不到分佈計算環境的要求。微軟通過納入事務處理服務、更容易的編程以及對Unix和其它平臺的支持擴充了 DCOM 。 建立 DCOM 時和使用COM建立對象的方式是相同的,只需再加入一個機器名稱的參數。如果COM通過Windows API的CoGetClassObject建立對象,只需再輸入機器名稱的參數即可在遠程指定的計算機中建立對象,並且取得指定接口的信息。它構造於RPC的技術之上,並且使用TCP/IP作爲網絡通信協議。

什麼是COM+ ? COM+並不是COM的簡單升級,COM+的底層結構仍然以COM爲基礎,它幾乎包容了COM的所有內容,COM+綜合了COM、DCOM和MTS這些技術要素,它把COM組件軟件提升到應用層而不再是底層的軟件結構,它通過操作系統的各種支持,使組件對象模型建立在應用層上,把所有組件的底層細節留給操作系統,因此,COM+與操作系統的結合更加緊密。 COM+不再侷限於COM的組件技術,它更加註重於分佈式網絡應用的設計和實現。COM+繼承了COM幾乎全部的優勢,同時又避免了COM實現方面的一些不足,把COM、DCOM和MTS的編程模型結合起來,繼承了它們的絕大多數特性,在原有的特性上增加了新的功能。 COM+的新的優點? 以下列出COM+的幾個主要特性: COM+不僅繼承了COM所有的優點,而且還增加了一些服務,比如隊列服務、負載平衡、內存數據庫、事件服務等。 隊列服務對於分佈式應用非常有意義,特別是在現在網絡速度很慢的情況下,這種機制可以保證應用系統能夠可靠地運行。在應用系統包含大量節點但服務器又繁忙的情況下,客戶應用程序可以把它們的請求放到隊列中,當服務器負載比較輕的時候再處理這些請求; 又如COM+提供了負載平衡服務,它可以實現動態負載平衡,而且COM+應用程序的負載平衡特性並不需要編寫代碼來支持,客戶程序和組件程序都可以按通常的方式實現。獲得負載平衡特性並不是用程序設計的方式來實現的,而是通過配置實現分佈式應用程序的負載平衡,如上所講的隊列服務,其實也反映了一種負載平衡。

(1) 真正的異步通訊。COM+底層提供了隊列組件服務,這使客戶和組件有可能在不同的時間點上協同工作,COM+應用無須增加代碼就可以獲得這樣的特性。

(2) 事件服務。新的事件機制使事件源和事件接收方實現事件功能更加靈活,利用系統服務簡化了事件模型,避免了COM可連接對象機制的瑣碎細節。

(3) 可伸縮性。COM+的可伸縮性來源於多個方面,動態負載平衡以及內存數據庫、對象池等系統服務都爲COM+的可伸縮性提供了技術基礎,COM+的可伸縮性原理上與多層結構的可伸縮特性一致。

(4) 可管理和可配置性。管理和配置是應用系統開發完成後的行爲,在軟件維護成本不斷增加的今天,COM+應用將有助於軟件廠商和用戶減少這方面的投入。

(5) 易於開發。COM+應用開發的複雜性和難易程度將決定COM+的成功與否,雖然COM+開發模型比以前的COM組件開發更爲簡化,但真正提高開發效率仍需要藉助於一些優秀的開發工具。 COM+標誌着Microsoft的組件技術達到了一個新的高度,它不再侷限於一臺機器上的桌面系統,它把目標指向了更爲廣闊的企業內部網,甚至Internet國際互連網絡。COM+與多層結構模型以及Windows操作系統爲企業應用或Web應用提供了一套完整的解決方案。 
 

 

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