




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、分布式CORBA通訊技術在冶金自動化中的應用 關鍵詞:CORBA;客戶機/服務器;分布式;冶金自動化 1、什么是CORBA CORBA(Common Object Request Broker Architecture,公共對象請求代理體系結(jié)構(gòu),通用對象請求代理體系結(jié)構(gòu))是由OMG(對象管理組織,Object Management Group)組織制訂的一種標準的面向?qū)ο髴贸绦蝮w系規(guī)范?;蛘哒f CORBA體系結(jié)構(gòu)是對象管理組織(OMG)為解決分布式處理環(huán)境(DCE)中,硬件和軟件系統(tǒng)的互連而提出的一種解決方案,其核心是一套標準的語言、接口和協(xié)議,
2、以支持異構(gòu)分布應用程序間的互操作性及獨立于平臺和編程語言的對象重用;OMG組織是一個國際性的非盈利組織,其職責是為應用開發(fā)提供一個公共框架,制訂工業(yè)指南和對象管理規(guī)范,加快對象技術的發(fā)展。 2、CORBA特點 CORBA定義了一種面向?qū)ο蟮能浖?gòu)件構(gòu)造方法,使不同的應用可以共享由此構(gòu)造出來的軟件構(gòu)件;每個對象都將其內(nèi)部操作細節(jié)封裝起來,同時又向外界提供了精確定義的接口,從而降低了應用系統(tǒng)的復雜性,也降低了軟件開發(fā)費用;CORBA的平臺無關性實現(xiàn)了對象的跨平臺引用,開發(fā)人員可以在更大的范圍內(nèi)選擇最實用的對象加入到自己的應用系統(tǒng)之中;CORBA的語言無關性使開發(fā)人員可以在更大的范圍內(nèi)相互利用別人的
3、編程技能和成果, 是實現(xiàn)軟件復用的實用化工具; 利用CORBA系統(tǒng)進行分布對象應用的開發(fā)具有下面三個特點: 開發(fā)代價小、效率高。系統(tǒng)開發(fā)者只需要編寫描述服務對象接口的IDL語言文件并安裝描述文件,實現(xiàn)服務對象的功能即完成了全部的任務。其它的相關代碼或者是由IDL編譯器自動創(chuàng)建,或者是由ORB 類庫提供,應用程序員并不需要編寫例如網(wǎng)絡通信、數(shù)據(jù)編碼/解碼、名址映射和安全管理的程序代碼,從而可以把工作重點放到服務對象實現(xiàn)的過程中去。 通過CORBA系統(tǒng)的支持,一個服務對象可以透明地被分布在本地和網(wǎng)絡上的客戶所調(diào)用,擴大了服務對象的使用范圍,為分布的客戶所共享。 CORBA系統(tǒng)作為“軟件總線”,可以
4、為服務對象提供“ 即插即用”的功能,而且當對象實現(xiàn)改進或升級時,只要接口保持不變,客戶代碼無需作任何改動。 3、CORBA原理 CORBA體系結(jié)構(gòu)的主要目的是定義一個描述客戶機如何能向遠程的對象實現(xiàn)發(fā)送請求的框架,并潛在地從對象處得到回應。對象接口用與編程語言無關的接口定義語言描述?;旧嫌袃煞N不同的方式來讓客戶機和對象實現(xiàn)發(fā)送和接收請求:靜態(tài)方法和動態(tài)方法。靜態(tài)方法要求所有的IDL接口在編譯時已知,這樣IDL編譯器就能生成樁和框架代碼,這些都必須鏈接到實現(xiàn)。動態(tài)方法使用戶在編譯時不用了解不同的IDL接口就能實現(xiàn)用程序來處理任何類型的請求。處理請求的動態(tài)方式要求在客戶端使用動態(tài)激發(fā)接口( Dy
5、namic Invocation Interface,DII)以及在服務器端使用動態(tài)框架接口(Dynamic Skeleton Interface,DSI)。DII和DSI通常用來構(gòu)建如橋接器等一般的系統(tǒng)級組件。 對于正常的應用程序,靜態(tài)樁和框架的使用更加普遍。靜態(tài)方法的好處是使用戶能很好 地使用CORBA對象,就好像它們是編程語言中的普通元素一樣。在客戶端,這通過使用代理對象來完成。代理是遠程目標對象的本地代表。代理包含足夠的信息來向遠程目標對象發(fā)送請求,封裝網(wǎng)絡地址、端口號等細節(jié)。代理對象通過使用客戶機編程語言的標準類型,提供了以類型安全的方式來訪問目標對象的方法。如果客戶機想使用實現(xiàn)了S
6、tock IDL接口的對象,樁代碼就會向它提供等價的用特定編程語言編寫的Stock接口,例如C 的Stock類。如果客戶機想向遠程Stock對象實現(xiàn)發(fā)送消息,它只需簡單地激發(fā)本地代理的一個方法。樁代碼,即生成的代理實現(xiàn),負責打包(marshal)請求的參數(shù),這樣客戶機的ORB運行時模塊就能向目標服務器發(fā)送消息。服務器的ORB運行時模塊讀取從網(wǎng)絡傳來的消息,并把消息傳給生成的框架代碼,使得框架代碼解包請求的參數(shù),這樣它就能把這些參數(shù)傳遞到目標對象的實現(xiàn)。生成的框架把請求作為服務器端的正常方法調(diào)用來傳遞,使得客戶機和服務器都像對待普通的編程語言對象一樣來對待CORBA對象。請求的回答能以同樣的方式
7、發(fā)送回客戶機。因為靜態(tài)接口比動態(tài)接口使用得更普遍,這里著重講述靜態(tài)接口。圖2-1總結(jié)了使用靜態(tài)接口的CORBA遠程激發(fā)的原理。請求的CORBA模型假定每個請求都有一個目標、一個操作和一系列參數(shù)。目標標識目標對象,操作描述所激發(fā)操作的名稱,而參數(shù)則是需要傳遞的數(shù)據(jù)。一個請求必須提供一種激發(fā)功能。激發(fā)功能可以有不同的語義,例如阻塞和非阻塞的調(diào)用,或是單向的語義。 3.1基于C 的CORBA通訊架構(gòu) 如圖2為基于C 的CORBA通訊示意圖,其中最底層為CORBA庫支持,中間為C 代碼,最頂層為IDL接口文件。使用IDL編譯工具生成IDLC(客戶端)代碼和IDLS(服務端)代碼。再使用編譯工具將生成的
8、代碼分別與服務器、客戶端程序一同編譯成CORBA應用程序。 4、CORBA通訊應用舉例 某鋼廠過程控制系統(tǒng)由核心程序和代理程序組成;其中代理程序負責調(diào)用核心程序或被其它代理程序調(diào)用;核心程序負責業(yè)務邏輯模型處理; CORBA通信應用創(chuàng)建步驟如下: 4.1、首先定義接口的IDL文件。 假設代理A的 IDL接口如下: interface A_IDL oneway void OnXXX 1(in OctetSequence seq); oneway void OnXXX 2(in OctetSequence
9、 seq); oneway void OnXXX 3(in OctetSequence seq); oneway void OnXXX 4(in OctetSequence seq); oneway void OnXXX 5(in OctetSequence seq); ; 表示A中OnXXX1, OnXXX2, OnXXX3, OnXXX4, OnXXX5個接口 oneway異步傳輸,顧名思義,oneway就是"單向",即客戶機發(fā)出它們的激發(fā),然后繼續(xù)處理,而用不著在發(fā)出一請求后阻塞,直到結(jié)果返回,當服務器完成對該請求的處理后,它可以通過向客戶機發(fā)回一相應的單向激發(fā)把結(jié)果
10、返回,也可以不返回結(jié)果。 4.2、編譯IDL文件。 4.3、編寫服務器端程序。 /file:A.cpp #include"A.hpp"/always include own header first void A:f() /do something 4.4、編寫客戶端程序。 #include “TelegramPtr.hpp” #include “ExampleIDLC.h” #include “MyStruct.hpp” #include "Dbg.hpp" void callServer() Dbg d("callServer")
11、; TelegramPtr telegram; / the “telegram” telegram->x=3;/assign fields through operator-> telegram->y = 4; / get a CORBA object CORBAObjectWrapperserver(“server”,“A1”); / call f on the object TRY_INVOKE_DBG(server->f(telegram), d); / passing telegram as OctetSequence by implicit conversion 調(diào)用方式: TRY_INVOKE_DBG_PROC(m_A,OnXXX (seq),d); 其中m_A為A類的對象,或稱是服務器,OnXXX為A類的成員函數(shù)。 4.5、某廠分布式CORBA通訊結(jié)構(gòu) 如下圖為通訊模塊關系圖,其中,白底黑框為非功能模塊、白底粗框為代理模塊、黑底為核心模塊。所有帶箭頭直線間通訊為CORBA通訊。 該系統(tǒng)先進可靠,模塊劃分清晰分明,模塊之間耦合較小,且該系統(tǒng)可靈活配置,維護、擴充方便,可以快速運用在治金自動化及其它系統(tǒng)中。對其它同類系統(tǒng)有借鑒作用。 參考
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新疆師范大學《現(xiàn)代傳感技術》2023-2024學年第二學期期末試卷
- 遼寧師范大學海華學院《經(jīng)濟學世界經(jīng)濟》2023-2024學年第二學期期末試卷
- 2024年高純金屬及氧化物資金需求報告代可行性研究報告
- 三年級法制教育基礎認知
- 2025年浙江杭州大江東國有資本投資管理有限公司招聘筆試參考題庫含答案解析
- 娛樂空間設計市場調(diào)研
- 2025年陜西省中小企業(yè)融資擔保有限公司招聘筆試參考題庫附帶答案詳解
- 安全培訓管理分享
- 國資委局域網(wǎng)安全管理業(yè)務培訓課件
- 山東省青島市市2025年八年級下學期語文期末試卷及答案
- 礦井瓦斯抽采
- 施工現(xiàn)場安全檢查記錄表(周)以及詳細記錄
- 立法學完整版教學課件全套ppt教程
- 五年級下冊科學說課課件 -1.2 沉浮與什么因素有關 |教科版 (共28張PPT)
- 流動注射分析儀常見問題解決方案.
- 《出口報關單模板》word版
- 邊坡護坡檢驗批表格模板
- 工會會計制度——會計科目和會計報表(全)
- 《青年友誼圓舞曲》教案
- 馬清河灌區(qū)灌溉系統(tǒng)的規(guī)劃設計課程設計
- 《Monsters 怪獸》中英對照歌詞
評論
0/150
提交評論