當(dāng)前位置:首頁 > 嵌入式 > 嵌入式硬件

摘 要:分布式對(duì)象中間件技術(shù)是為了解決分布計(jì)算和軟件復(fù)用過程中存在的異構(gòu)問題而提出的。,EJB,COM/是目前主要的3大中間件技術(shù),他們都有自己的優(yōu)勢應(yīng)用領(lǐng)域,和的結(jié)合在解決 WWW應(yīng)用方面具有無比的優(yōu)勢。本文介紹了基于/ 的 WWW信息查詢系統(tǒng)開發(fā)的一般方法。

關(guān)鍵詞:中間件;分布式對(duì)象中間件;CORBA; ?

隨著計(jì)算機(jī)技術(shù),尤其是技術(shù)的發(fā)展,跨地域、跨企業(yè)、跨業(yè)務(wù)的計(jì)算機(jī)應(yīng)用越來越廣泛。但是不同硬件平臺(tái)、網(wǎng)絡(luò)環(huán)境、數(shù)據(jù)庫等異質(zhì)性因素影響了計(jì)算機(jī)系統(tǒng)集成應(yīng)用。應(yīng)用開發(fā)過程中大約有70%的時(shí)間和精力用于解決與業(yè)務(wù)邏輯沒有直接關(guān)系的跨平臺(tái)難題,因此,有必要將分布式應(yīng)用所面臨的共性問題進(jìn)行提煉,抽象形成一個(gè)可復(fù)用的軟件部件—中間件—供應(yīng)用軟件使用。過去中間件系統(tǒng)如DCE(Distributed Computing Environment)是面向過程的軟件復(fù)用模式體系結(jié)構(gòu),隨著面向?qū)ο蠹夹g(shù)的發(fā)展和客戶/服務(wù)器模式的流行,分布式對(duì)象中間件技術(shù)已成為分布計(jì)算的主流技術(shù)。本文介紹了3大分布式對(duì)象中間件技術(shù)及基于CORBA/的WWW系統(tǒng)開發(fā)的一般過程。?

1中間件技術(shù)

中間件是一種獨(dú)立的系統(tǒng)軟件或服務(wù)程序,分布式應(yīng)用借助這種軟件可以在不同技術(shù)之間共享資源,中間件位于客戶機(jī)服務(wù)器的操作系統(tǒng)之上,管理計(jì)算資源和網(wǎng)絡(luò)通訊。中間件的目標(biāo)是要解決系統(tǒng)的互連和互操作,他的核心是解決名字服務(wù)、安全控制、并發(fā)控制、可靠性保證、效率保證等方面的問題,要實(shí)現(xiàn)互聯(lián)還要解決支持各種通訊協(xié)議、各種通訊服務(wù)模式、傳播各種數(shù)據(jù)內(nèi)容、數(shù)據(jù)格式翻譯、流量控制、數(shù)據(jù)加密、數(shù)據(jù)壓縮等。按照IDC的分類方法,中間件分為6類:終端仿真/屏幕轉(zhuǎn)換中間件、數(shù)據(jù)訪問中間件、遠(yuǎn)程過程調(diào)用中間件、消息中間件、交易中間件和分布式對(duì)象中間件。

傳統(tǒng)的對(duì)象技術(shù)通過封裝、繼承及多態(tài)性提供良好的代碼重用功能。但是,這些對(duì)象只存在于一個(gè)程序中,外界并不知道他們的存在,也無法訪問他們。分布式對(duì)象中間件就是要解決這些問題,他提供一個(gè)標(biāo)準(zhǔn)構(gòu)件框架,能使不同廠家的軟件通過不同地址空間、網(wǎng)絡(luò)和操作系統(tǒng)進(jìn)行交互訪問。對(duì)象技術(shù)的優(yōu)勢和分布式對(duì)象中間件的標(biāo)準(zhǔn)化,促使對(duì)象中間件功能最終將涵蓋幾類中間件的功能,從而成為中間件產(chǎn)品的主流。
?
2分布式對(duì)象中間件技術(shù)?

2.1公共對(duì)象請(qǐng)求代理體系結(jié)構(gòu)CORBA

CORBA由對(duì)象管理組織OMG于1991年提出,其旨在將錯(cuò)綜復(fù)雜的網(wǎng)絡(luò)編程從單獨(dú)的組件和應(yīng)用中移走。ORB是CORBA平臺(tái)的核心,他提供了客戶—對(duì)象間實(shí)現(xiàn)透明通信的方法,當(dāng)客戶激活一個(gè)方法時(shí),ORB負(fù)責(zé)定位對(duì)象實(shí)現(xiàn)并透明激活將請(qǐng)求傳輸給對(duì)象實(shí)現(xiàn)并返回結(jié)果。IDL是不依賴于具體編程語言和計(jì)算平臺(tái)的接口語言,用來定義對(duì)象接口,IDL對(duì)描述跨平臺(tái),跨語言應(yīng)用程序提供一個(gè)公共的表示方式,IDL編譯器可根據(jù)用戶需要將IDL定義轉(zhuǎn)化為應(yīng)用程序語言,如C++,等。IDL樁為客戶提供了靜態(tài)調(diào)用對(duì)象方式,IDL構(gòu)架為客戶提供了靜態(tài)實(shí)現(xiàn)方式,他們由IDL編譯器產(chǎn)生,作為具有調(diào)用功能的子例程分別在客戶方和服務(wù)器方使用。而動(dòng)態(tài)調(diào)用接口DII( Invocation )和動(dòng)態(tài)構(gòu)架接口DSI( Skeleton )提供了動(dòng)態(tài)調(diào)用方式和動(dòng)態(tài)實(shí)現(xiàn)方式。在ORB核心和對(duì)象實(shí)現(xiàn)之間還有對(duì)象適配器,他負(fù)責(zé)服務(wù)對(duì)象的注冊(cè)、對(duì)象引用的創(chuàng)建和解釋、對(duì)象實(shí)現(xiàn)的激活和去活以及客戶請(qǐng)求的分發(fā)等。ORB之間的互操作主要是由ORB橋,( InterORB Protocol)和EISP(Environment Specific InterORB Protocol)等互操作協(xié)議來規(guī)定。是建立在TCP協(xié)議之上的基于連接的協(xié)議。

2.2分布組件對(duì)象模式

是Microsoft與業(yè)界廠商合作提出的一種分布構(gòu)件對(duì)象模型。DCOM起源于動(dòng)態(tài)數(shù)據(jù)交換DDE技術(shù)。通過剪切/粘貼(cut/)實(shí)現(xiàn)2個(gè)應(yīng)用程序之間共享數(shù)據(jù)的動(dòng)態(tài)交換。對(duì)象連接和嵌入OLE就是從DDE引伸而來的,隨后Microsoft引入了構(gòu)件對(duì)象模型COM,形成了COM對(duì)象之間實(shí)現(xiàn)互操作的二進(jìn)制標(biāo)準(zhǔn)。COM規(guī)定了對(duì)象模型和編程要求,使COM對(duì)象可以與對(duì)象相互操作。DCOM出現(xiàn)是為了彌補(bǔ)COM在支持遠(yuǎn)程組件方面的不足。他為分布在網(wǎng)絡(luò)不同節(jié)點(diǎn)的2個(gè)COM組件提供了互操作的基礎(chǔ)結(jié)構(gòu)。

將COM,DCOM,OLE及這些服務(wù)結(jié)合起來形成了微軟創(chuàng)造的分布式網(wǎng)絡(luò)互聯(lián)體系結(jié)構(gòu)DNA。

2.3EJB企業(yè)JAVA平臺(tái)

近年來,Sun Microsystem公司提出的基于JAVABean組件技術(shù)的EJB及 JAVA平臺(tái),JAVABean是JAVA向組件方面的發(fā)展,組件的單位叫Bean或JAVABean,這種組件模式是JAVA編寫的可移植的,平臺(tái)獨(dú)立的組件模式,在分布計(jì)算模型中,可用來構(gòu)建客戶端程序。EJB于1998年提出,是服務(wù)器方的組件模式,定義了開發(fā)和布署可重用的JAVA服務(wù)器組件模式和API規(guī)范。JAVABeans和EJB體系結(jié)構(gòu)之間,一個(gè)最明顯的區(qū)別是事件處理。JAVABean是為緊耦合的桌面環(huán)境而設(shè)計(jì),使用局部事件模式,不利于系統(tǒng)的集成。EJB體系結(jié)構(gòu)對(duì)分布式的事件提供靈活的支持,允許遠(yuǎn)程客戶通過遠(yuǎn)程方法調(diào)用API訪問服務(wù)器功能。適應(yīng)分布式體系結(jié)構(gòu)中的多層應(yīng)用。EJB還不是一個(gè)完整的平臺(tái),其提供服務(wù)也有限,于是在EJB的基礎(chǔ)上,提出能適應(yīng)廣泛企業(yè)計(jì)算的 JAVA平臺(tái)技術(shù)。 JAVA平臺(tái)包括EJB ,JSP,Servlet,JDBC等組件。

上述3種中間件各有特點(diǎn),CORBA可以跨各種操作平臺(tái),包括Windows OS ,甚至支持DOS操作系統(tǒng)而DCOM只支持Win 32; 同時(shí)CORBA跨多種語言,支持C++,Smalltalk,JAVA,,Ada等語言。DCOM主要以桌面Wintel同質(zhì)平臺(tái)對(duì)象跨應(yīng)用使用見長,支持帶有指針結(jié)構(gòu)的語言如C,C++而不支持JAVA語言。Enterprise JAVA在Internet環(huán)境下集組件模式、跨異構(gòu)平臺(tái)、兼具事務(wù)處理、數(shù)據(jù)庫連接等許多基礎(chǔ)結(jié)構(gòu)服務(wù),但僅限于支持JAVA語言。因此我們利用JAVA語言具有簡單、面向?qū)ο?、分布式、解釋型、健壯、安全、可移植性的特點(diǎn)結(jié)合CORBA的跨異構(gòu)平臺(tái)的特性實(shí)現(xiàn)對(duì)象的重用。
?
3CORBA/JAVA的WWW應(yīng)用系統(tǒng)

我們?cè)O(shè)計(jì)的系統(tǒng)是要實(shí)現(xiàn)以下目標(biāo):在客戶端用瀏覽器下載服務(wù)器上小程序Applet,通過Java虛擬機(jī)和CORBA的ORB實(shí)現(xiàn)對(duì)遠(yuǎn)端服務(wù)對(duì)象的調(diào)用,并通過服務(wù)對(duì)象訪問遠(yuǎn)端數(shù)據(jù)庫,最后返回查詢結(jié)果并在瀏覽器上顯示。其系統(tǒng)結(jié)構(gòu)圖如圖1所示。

3.1程序設(shè)計(jì)與實(shí)現(xiàn)

該系統(tǒng)用Borlard Jbuilder 5.0進(jìn)行開發(fā), Jbuilder 5.0提供了JAVA語言的CORBA開發(fā)支持,VisiBroker for JAVA是一個(gè)內(nèi)置于Jbuild 3.0 IDE的開發(fā)工具,可以用來建立、管理和開發(fā)分布式的跨多種平臺(tái)的開放的、易用的、可交互的 CORBA Java應(yīng)用程序。這里開發(fā)一個(gè)可以訪問MS SQL 數(shù)據(jù)庫3層C/S模式應(yīng)用。在這個(gè)系統(tǒng)中要用到定義JDBC API的.sql包,該包定義了JDBC所有的類,接口和方法。主要的類和接口有Manager—處理驅(qū)動(dòng)程序的裝入;.sql.—驅(qū)動(dòng)程序接口;.sql.Statement為sql語句提供一個(gè)容器,java.sql.Connection表示到特定數(shù)據(jù)的連接。

(1)定義CORBA objects和編譯IDL接口

首先定義一個(gè)接口模塊Query?idl,該模塊包含的DataQuery接口提供了一個(gè)連接數(shù)據(jù)庫并返回查詢結(jié)果的方法dbQuery( ):

用visiBroker IDL編譯器(idl2java)編譯Query?idl產(chǎn)生一個(gè)JAVA接口DataQuery.java和其他必需的JAVA文件。其中_st_DataQuery.java是客戶端的stub,_sk_DataQueryImplBase.java是服務(wù)器端的骨架(skeleton),另外還包括為傳遞參數(shù)提供支持的DataQueryHolder.java和提供輔助功能DataQueryHelper.java。

(2) CORBA接口的實(shí)現(xiàn)

對(duì)象實(shí)現(xiàn)類必須結(jié)合編譯產(chǎn)生的骨架來完成,類DataQueryImpl.java需要繼承由 IDL編譯產(chǎn)生的骨架_sk_DataQueryImplBase類。其中dbQuery( ) 通過JAVA.JDBC.API實(shí)現(xiàn)連接數(shù)據(jù)庫并返回查詢結(jié)果:

(3)創(chuàng)建服務(wù)端應(yīng)用程序

類?java服務(wù)程序負(fù)責(zé)下列任務(wù):初始化ORB和BOA,建立服務(wù)對(duì)象DataQueryImpl,通知對(duì)象可用及準(zhǔn)備接受請(qǐng)求。

(4)創(chuàng)建客戶端程序

實(shí)現(xiàn)步驟:初始化CORBA環(huán)境,查找定位到DataQuery對(duì)象,然后調(diào)用dbquery( )方法。

最后編譯服務(wù)器端和客戶端程序,設(shè)置好程序中用到的數(shù)據(jù)源,啟動(dòng)提供對(duì)象查找服務(wù)的. Agent和服務(wù)端應(yīng)用程序.java,最后在客戶端IE 地址欄健入:http://:15000/clientApplet.html運(yùn)行客戶程序即可實(shí)現(xiàn)遠(yuǎn)端查詢。
?
4結(jié)語

中間件屏蔽了操作系統(tǒng)和網(wǎng)絡(luò)協(xié)議的差異,為應(yīng)用層軟件提供了多種通訊機(jī)制和統(tǒng)一的應(yīng)用平臺(tái),簡化了軟件開發(fā)的復(fù)雜度,提高了開發(fā)的效率。CORBA已成為軟件開發(fā)的主流。CORBA獨(dú)立于網(wǎng)絡(luò)協(xié)議,獨(dú)立于編程語言,獨(dú)立于軟硬件平臺(tái),是目前最有生命力的跨平臺(tái)分布計(jì)算技術(shù)。JAVA由于其健壯性,安全性,移動(dòng)性和跨平臺(tái)及“一次編寫,各處運(yùn)行”的優(yōu)點(diǎn),使其成為WWW網(wǎng)上開發(fā)最好的語言。毫無疑問,JAVA和CORBA的結(jié)合將會(huì)把分布計(jì)算和軟件復(fù)用推向新的階段。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉