王昱皓
摘要:在計算機技術飛速發展的時代背景下,分布式軟件技術的優勢被逐步凸顯了出來,并在各個領域中得到了廣泛應用,同時也克服了許多傳統軟件技術中存在的弊端。本文首先闡述了分布式軟件技術的模型和應用框架,接著就COM和DCOM兩種軟件技術進行了分析,最后就分布式軟件技術在工業自動化領域以及圖像處理中的應用和發展前景進行的探究。
關鍵詞:分布式:軟件技術;應用;COM;DCOM
中圖分類號:TP31
引 ?言:雖然在我們的實際生活當中一些先進軟件技術已經得到了十分廣泛的應用,但是我國國內的這些軟件技術的應用和發展相較于發達國家來說仍然相對落后,所以在分布式軟件技術這一板塊的研發上我們還需要進一步地加強。
一、分布式軟件技術
(一)各類分布式組件模型
在新型軟件技術進一步發展下,組間軟件成為了新的發展標志,這一技術的誕生的主要應用目的是為了將軟件的生產力盡可能提升,在應用程序的開放上更為嚴謹,所以軟件的設計研發人員就將能夠重用軟件組件以及組裝構造充分地利用了起來,形成了新型應用軟件系統,但是從分布式軟件的應用和發展上來分析,它仍然處于工業標準的形成階段。當前分布式的軟件技術有DCE、CORBA以及COM三種,但是因為DCE這項技術缺乏實際應用的支撐,所以發展已經近乎停滯。而CORBA這一分布式組件技術在非Windows平臺上的應用以及發展前景是非常可觀的,并且得到了多家大公司的認可與支持,同時COM技術在windows平臺上的應用也具備較強的優勢,因此COM技術的發展前景也是非常可觀的[1]。
(二)分布式應用框架
將框架引入其中的主要目的就是為了合理有效的配置和管理分布式組件,保障所形成的分布式系統能夠滿足實際應用的需求。其實Johnson在上世紀九十年代初就已經提出了框架的概念。框架主要的組成是一組抽象的構件同構件實例之間的相互作用方式,這些對象能夠相互協同完成某些工作。也就是說,當前CORBA以及COM兩種技術所構建的組件框架都是組件之間的相互作用而形成的。
二、COM/DCOM分布式軟件技術
(一)COM分布式軟件技術
1.COM結構
(1)對象和接口
COM的對象是與C++非常相似的一種概念,可以說,COM的對象是應用系統當中的某種類型中的實例,接口則是某組邏輯上的接口成員函數集合。
(2)客戶/服務器模型
只要客戶/服務器模型作為支撐,才能夠實現對象與客戶間的相互作用。COM除了是一種簡單的模型外,客戶在某種特殊情況下也能夠反之為其服務,所以在這種情況下,客戶與對象之間的定義是相互的,而COM能夠對這種特殊情況進行有效處理。
2.COM特性
(1)語言無關性
COM不會特定要求于某種類型的語言,所以組件對象就可以與客戶程序分別使用兩種不同的編寫語言,只要這兩種語言所分別生成的執行代碼,能夠符合COM的規范就能夠在COM的支撐下得以實現正常運行[2]。
(2)進程透明性
客戶端和服務器的代碼運行的進程可以相同也可以不同,所以我們可以按照“進程內服務程序、本地服務程序、遠程服務程序”對客戶端和服務器的代碼運行的進程進行區分。
(3)可重用性
COM的可重用性這一實用性非常強的優勢,在某些比較大型的軟件系統當中的應用能夠起到非常重要的作用。因為COM對象客戶程序對于對象內部實現的過程并不了解,因此就能夠基于組建對象的行為方式來建立組建對象的重用性。
3.COM對象
(1)接口描述
對象與客戶聯系的紐帶就是COM對象接口,這兩者在接口的標識上遵循一致的規則,從而來實現對接口方法的實現進行描述和定義。而每個COM對象都有一個唯一的名稱標識,并且這一名稱的唯一具有著空間以及時間的雙面支撐。
(2)IUnknown接口
全部COM接口都必須與IUnknown接口相繼承,繼承方式主要包括QueryInterface、AddRef、Release三種。而這三種繼承方式能夠被靈活調用進任何的接口當中。
(3)線程模型
COM在新的線程模型上并沒有進行定義,直接將Win32的線程進行了直接性的運用。而Win32線程本身就包含“用戶界面線程”以及“工作線程”這兩種具有一定差異性的類型。用戶線程所連接的窗口也是一個或多個的,并且每個窗口都具有相應的消息循環。工作線程則主要在后臺的處理中進行應用,所以并沒有相應的窗口關聯,消息循環也就沒有[3]。
(4)IClassFactory接口
因為ClassFactory能夠創建其他組件的組件,所以客戶能夠運用ClassFactory實現同一類的多個實例,也同樣屬于COM的對象之一,并支持IClassFactory接口。
(二)DCOM分布式軟件技術
1.DCOM結構
COM的基礎上進行擴展形成了DCOM,COM定義組件與這一組件相應的客戶之間的進行相互作用形式,這一定義就成為了組件與客戶端之間不需要任何中介就能夠實現簡單、便捷的聯系奠定了強有力的基礎,客戶端在操作的過程中能夠直接運用組件中的方法。在原本的Windows操作系統當中,不同的進程之間是完全相互獨立的,所以原本的Windows操作系統不能實現在不同進程的前提下進行地址空間的訪問。但是COM技術的應用使不同進程的相互訪問實現成為了可能,并且能夠將這一操作完全透明化。DCOM在分布式結構下同樣也運用了這一透明化的訪問方式,所以DCOM也因此成為了真正意義上的分布式組件模型。在不同設備的情況下,DCOM也能夠利用網絡協議來實現進程間的通訊,但是雖然進程之間相互訪問的線路長了很多,但是客戶和組件兩者都不可能發現。
2.DCOM特點
(1)位置獨立性
DCOM的這一特點就是指客戶的同一進程中和網絡中各個位置的所有組件的所處位置都是完全透明的。客戶對于各個組件的連接和調動在各種情況下都是一致的方式。DCOM在源碼在改變上以及程序的重新編譯上都不需要做出任何改變。各個組件相互連接方式的改變僅僅需要一個十分簡單的再配置動作。
(2)可拓展性
分布式應用的一項重要指標就是可擴展性。用戶的數量的增加必然會帶來數據量的增加,而數據量的增加又會同步推動分布式應用處理能力的提升。在用戶需求比較小的情況下,分布式應用系統的運行也速度也就比較快,并且能夠在處理用戶附加需求的同時還能夠保障系統性能的和可靠性不受損毀。在此情況下,DCOM能夠為其提供“靈活部署、對稱多進程處理、版本獨立”等多種方式來實現應用可擴展性的增強。但是DCOM在系統負載增加的情況下,也能夠通過將分布性組件部署到其他設備上,以此來提升系統的可擴展性,而這種部署處理方式是非常靈活且簡單的。DCOM的使用,使得用戶各個進程之間組件連接方式的改變變得更加便捷、靈活[4]。
(3)容錯性
容錯性在銀行電子交易系統等需要可靠性高的應用系統來說是不可或缺的。DCOM能夠將應用系統容錯性的實現變得更加簡單。而容錯性的實現有兩種方法,其一是當客戶的進程當中某一個組件出現錯誤時,就會重新與進程當中的第一個指示組件建立連接。從而得知在服務器當中有哪一部分信息是不再有效的,同時還能夠在另一設備上實現這一組建新實例的運行。另一處理方式就是我們通常所說的“熱備份”。在不同的設備上同時運行同一服務器組建的兩個復本,而這兩個副本在同時處理的信息也是一致的,而用戶進程需要同時連接這兩臺設備,這樣一來也就將擁有系統的容錯性得以提升。
(4)協議無關性
因為一個應用體系中需要集成多種的分布式應用,所以就必須存在一個相對特殊的網絡協議。而在此過程中也要對潛在的所有客戶進行更新,但是在以往的應用系統當中幾乎是不可能實現的。但是因為DCOM能夠支持TCP/IP、UDP、IPX/SPX、NetBIOS、HTTP等多種傳輸協議,所以開發者能夠準確判斷應用系統是否與協議有關。
(5)平臺無關性
DCOM技術面向所有跨平臺開發工作公開,所以DCOM并不排斥某種比較特殊平臺的服務和優化,也不會出現僅適用于某一系統的問題。
三、分布式軟件技術在工業自動化中的應用
工業自動化這一行業領域軟件發展也同其他行業一樣也面臨著新的挑戰。計算機技術的日益發展使得當前用戶所應用的桌面和網絡應用程序越發復雜。而因為這些軟件的復雜性,所以就對軟件的研發工作帶來了許多問題:開發比較復雜的現代軟件應用程序需要大量的時間和成本。在開發應用程序的過程中必須基于單片集成電路進行持續性的開發。應用程序的數據和功能都不能實現對外集成。提供者的素質反映在應用程序的編程模式上。而COM框架軟件技術的應用,則能夠針對于上述問題進行有效解決。在針對于組件來進行模型的編程旨在將其互操作性發揮出來。因為互操作性是組件能夠在組件軟件的環境中進行協同工作的主要能力。如果工程中的軟件集成不能達到較為自然的標準,那就應當將應用程序分成組件。
COM作為當前應用最為廣泛的分布式組件技術,國際上的工業自動化領域對于該技術給予了全面的支持。經調查分析,基本上所有著名工作自動化軟件的開發都建立在Windows平臺的基礎上,并且在整體上或者某一部分上運用了COM分布式軟件技術。在此基礎上還有很多原本在UBIX平臺和VMS平臺上開發的工業自動化軟件,也紛紛轉向了Windows平臺。而國際基金會也根據COM技術構建了過程控制這一板塊的數據訪問標準,也就是指OPC。而在這一標準構建完成后,就瞬間得到了廣泛的應用。由此看來,COM技術在工業自動化領域當中得到了十分成功的應用,并且具備非常可觀的前景。
四、分布式軟件技術在圖像處理中的應用
當前工程、工業、醫療、保健、航空、航天、軍事科研以及安全保衛等各個方面都應用了圖像處理技術,因此我們可以分析得出圖像處理在我國國計民生以及國民經濟的發展當中起到了十分重要的作用,所以,從當前圖像處理,發展前景來分析,構建統一開放可擴展的圖像處理平臺是該項應用系統必然的一項發展趨勢,因此該平臺的構建就列為了該領域研究的一項重要話題。
雖然圖像處理應用系統在各領域當中的應用在功能要求上存在著一定的差異性,但是無論是哪一領域圖像處理應用系統都必然存在著相似的系統框架,甚至還具有幾乎一致的圖像處理基本操作。而在各領域當中的共同應用點就成為了各領域通用且統一的圖像處理應用平臺能夠得以構建的前提條件。
Supersoft公司以及北京超圖地理信息技術有限公司等國內外很多家公司在圖像處理領域已經運用組建技術設計并研發了組件化的圖像處理軟件。以往都是由廠家向用戶提供整體性的系統或者能夠進行二次開發的軟件,而發展至今,已經形成了廠家向用戶提供組件,然后再由用戶自行開發的形式。所以我們不能看出,GIS軟件也在其他軟件革新的過程中同步發生了巨大的變化。但是其他應用領域軟件在圖像處理這一板塊上的發展還較為緩慢,統一性的圖像處理平臺,也沒有相應全面的研發與構建。
結束語:總而言之,雖然我國分布式軟件技術已經得到了一定程度上的研發和相對廣泛的應用,并且該項技術適應性強、靈活性高、開發性好等優勢也得到了一定的體現,但是,我國對于該項技術的研究仍然有著非常大的探索空間,也只有進一步地挖掘分布式軟件技術的優勢和特點,才能夠使該項技術在各領域當中的應用愈發廣泛,以此來推動我國社會經濟的發展。
參考文獻:
[1]史俊.分布式軟件技術及其應用研究[J].無線互聯科技,2012(12):1.
[2]孔芹芹,劉俊娜,丁憲生.無線分布式系統技術及其應用[J].氣象水文裝備,2011,022(004):72-73.
[3]吳朝婭.以資源平臺網絡化發展推進高校資源共享與開發[J].中國成人教育,2016(06):41-43.
[4]竺南直,院總體部.分布式系統技術及其發展[J].中國電子學會95年C3I工程與技術學術研討會,2007.
[5]余學鋒.DCOM分布式軟件技術在EIS中的研究和應用[J].華北地震科學,2008,26(3):4.
作者簡介:王昱皓(2000.11—)男,四川省廣元市人,四川商務職業學院軟件技術專業學生,研究方向:軟件技術、計算機信息管理;通信地址及電話:四川省成都市青羊區文家正街227號四川商務職業學院。