基于corba的電子商務系統(tǒng)畢業(yè)論文_第1頁
已閱讀1頁,還剩104頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  摘 要</b></p><p>  電子商務(Electronic Commerce)作為一種全新的交易方式,是建立在網(wǎng)絡的基礎之上,通過網(wǎng)絡以電子數(shù)據(jù)流通的方式在全世界范圍內(nèi)進行并完成的各種商務活動、交易活動、金融活動和相關的綜合服務活動。當今Internet的爆發(fā)增長,使得通過為一大群顧客和供應商提供一個通用通訊環(huán)境的方法更有助于發(fā)揮電子商務的獨一無二的潛

2、力.因此,現(xiàn)代的電子商務系統(tǒng)必須能集成不同種類的參與系統(tǒng)和不同政策領域中互相不信任的用戶。于是,CORBA(Common Object Request Broker Architecture,公共對象請求代理體系結構)便應運而生,且成為其最適合的技術。CORBA是由OMG(Object Management Group,對象管理組織)組織制訂的一種標準的面向對象應用程序體系規(guī)范。也就是說CORBA就是為了實現(xiàn)分布式計算而引入的。它可以抽

3、象網(wǎng)絡通訊、平臺的差異、編程語言等的差異,并且可以透明地提供電子商務所需的安全性功能。</p><p>  本文即是看中CORBA其出色的跨平臺和分布式計算性能等眾多優(yōu)點,而把它運用在電子商務系統(tǒng)的建立上。這樣可以使得電子商務系統(tǒng)更加安全可靠、更加易于升級和維護。首先對CORBA做了一個系統(tǒng)介紹,通過對銀行ATM系統(tǒng)的分析,確定整個系統(tǒng)的結構,然后在C++ Builder的開發(fā)環(huán)境下,運用VisiBroker中間

4、件來開發(fā)基于CORBA的銀行ATM系統(tǒng),這便是本文的大概流程。</p><p>  關鍵詞:CORBA;電子商務;對象管理組織;分布式計算;接口</p><p><b>  Abstract</b></p><p>  As a brand-new transaction way, the Electronic commerce that ba

5、se on the network foundation, and through network by the circulation of the electronic data ,is used for completing each kind of commercial activity, transaction activity, financial activity and correlation synthesis ser

6、vice. Today, the internet is growing fast and violently, the method which provide an general communication environment for a big group of customer and the supplier, is helpful to the display electronic commerce unique<

7、;/p><p>  Because of CORBA’s many merits, such as its splendid way of cross difference platforms and its distributed computing performance, this article use CORBA to establish electronic commerce system .And us

8、e this method, the electronic commerce system must will be more safer and reliabler, also be more easier to promote and maintain. First, there’s a CORBA’s introduction. And then, with the Bank ATM system’ analyse, this a

9、rticle establish the overall system’s structure. Last, by the C++ Builder we dev</p><p>  Keywords:CORBA;Electronic Commerce;Object Management Group;Distributed computing;interface</p><p><b&

10、gt;  目 錄</b></p><p><b>  摘 要</b></p><p><b>  Abstract </b></p><p><b>  1 緒論1</b></p><p>  1.1 電子商務系統(tǒng)的現(xiàn)狀1</p><p&

11、gt;  1.2 基于CORBA的電子商務系統(tǒng)1</p><p>  2 CORBA規(guī)范的介紹3</p><p>  2.1 CORBA規(guī)范的研究背景和發(fā)展歷史3</p><p>  2.2 CORBA規(guī)范的簡介4</p><p>  2.3 CORBA規(guī)范的特點5</p><p>  2.4 CORBA規(guī)范

12、的實現(xiàn)過程及其組件的功能6</p><p>  2.5 CORBA規(guī)范的主要應用方向7</p><p>  3 基于CORBA的銀行ATM機系統(tǒng)的研究與設計9</p><p>  3.1系統(tǒng)可行性分析9</p><p>  3.1.1 分析銀行ATM機系統(tǒng)的現(xiàn)狀9</p><p>  3.1.2 新系統(tǒng)的確立

13、10</p><p>  3.2 系統(tǒng)的整體設計11</p><p>  3.3系統(tǒng)開發(fā)工具11</p><p>  3.3.1 基于VisiBroker的智能代理應用研究11</p><p>  3.3.2 C++ Builder開發(fā)環(huán)境14</p><p>  4 基于CORBA的銀行ATM機系統(tǒng)的具體實

14、現(xiàn)17</p><p>  4.1 編寫IDL接口17</p><p>  4.2 ATM服務器19</p><p>  4.3 ATM客戶程序21</p><p>  4.4 第一個銀行的CORBA實現(xiàn)22</p><p>  4.5 第二個銀行的CORBA實現(xiàn)25</p><p>

15、;  4.6 執(zhí)行ATM電子商務系統(tǒng)25</p><p><b>  5 結束語28</b></p><p><b>  參考文獻29</b></p><p><b>  致 謝30</b></p><p><b>  附錄131</b><

16、;/p><p><b>  附錄259</b></p><p><b>  1 緒論</b></p><p>  1.1 電子商務系統(tǒng)的現(xiàn)狀 </p><p>  通俗的說,所謂電子商務,就是在網(wǎng)上開展商務活動。當企業(yè)將它的主要業(yè)務通過企業(yè)內(nèi)部網(wǎng)(Intranet)、外部網(wǎng)(Extranet)以及I

17、nternet與企業(yè)的職員、客戶供銷商以及合作伙伴直接相連時,其中發(fā)生的各種活動就是電子商務。電子商務是基于Internet/Intranet或局域網(wǎng)、廣域網(wǎng)、包括了從銷售、市場到商業(yè)信息管理的全過程。</p><p>  目前,電子商務只是在對通用方針和平臺意見一致的參與者間的封閉組織內(nèi)進行。例如,電子數(shù)據(jù)交換(EDI)被用來在一個機構的多個分支之間,或者在建立了契約聯(lián)系的機構之間安全地傳輸數(shù)據(jù)。而且在這些早期

18、階段,電子商務系統(tǒng)只處理某幾個方面的完全商務事務。當客戶可以通過他們的web瀏覽器來使用的第一批基于web的商店出現(xiàn)時,便建立了電子商務的一個更全面的概念作為Internet上傳遞貨物和價格的方式。現(xiàn)在,大多數(shù)電子商務系統(tǒng)是基于web的,并且允許客戶通過他們的web瀏覽器購買貨物并用信用卡結帳。然而,基于web的應用程序的局限功能使得很難向客戶提供全范圍的服務。</p><p>  未來,電子商務解決方案的需求將

19、超過當前級別。將來的系統(tǒng)將必須通過多個自治的服務提供商來滿足動態(tài)開放式環(huán)境中的需求,電子商務將成為一個包含多個交易實體間復雜的交互作用的分布式過程。在一個開放式市場中,有許多獨立的貨物和服務的供應商,并且可能有通過合并第三方提供的服務來提供服務的調(diào)解者??蛻舯旧硪部赡芎喜㈦S選(on-demand)產(chǎn)品或者服務來實現(xiàn)合成包。因此,現(xiàn)代的電子商務系統(tǒng)必須能集成不同種類參與系統(tǒng)和不同政策領域中互相不信任的用戶。</p><

20、p>  1.2 基于CORBA的電子商務系統(tǒng)</p><p>  于是為了滿足將來開放式的電子商務系統(tǒng)所應具有的功能,即使所有客戶和服務應用程序能在一個靈活、動態(tài)、開放的框架中,越過不同平臺、不同編程語言進行操作。我們在開發(fā)電子商系統(tǒng)時引進了CORBA技術。CORBA采用中間件技術、多層結構,使電子商務應用系統(tǒng)可分為客戶端應用程序、應用程序服務器及數(shù)據(jù)庫服務器。客戶端只負責提供可移植的表達邏輯,應用程序服務

21、器負責邏輯處理,而數(shù)據(jù)庫服務器提供專門的數(shù)據(jù)服務訪問。應用程序服務器是一個包含企業(yè)邏輯的應用程序。由于邏輯處理都在中間層進行,大部分中間結果無須回傳給客戶,客戶只接受少量有用信息,從而減輕了網(wǎng)絡負載,使電子商務更快、更有效地進行。</p><p>  CORBA的語言無關性是它的最顯著的優(yōu)勢。從軟件開發(fā)者的觀點來看,CORBA使得一切都變得比較簡單,尤其是如果打算進行不同的系統(tǒng)配置時。CORBA抽象了網(wǎng)絡和動態(tài)的

22、遠程程序調(diào)用,允許應用程序開發(fā)者集中精力在實際的程序上,而不是集中在底層結構的內(nèi)部工作方式上。應用程序開發(fā)者可以再利用已存在系統(tǒng)中的部分(例如安全性系統(tǒng))來開發(fā)新程序。CORBA的靈活結構也使得開發(fā)者可以實現(xiàn)整合已成品系統(tǒng)的一部分來迎合特殊的開發(fā)需求,并為進一步增強系統(tǒng)和容易地升級這部分已成品軟件提供堅實的基礎。將來,個別基于CORBA的可定制的軟件組件就可用了,可以購買它,并可以很容易的將之即插即用進已存在的軟件中,來增強或升級軟件系

23、統(tǒng)。</p><p>  本課題選用C++ Builder6.0作為編程工具,利用VisiBroker作為連接客戶與銀行的中間件,運用CORBA規(guī)范技術開發(fā)基于CORBA的電子商務系統(tǒng)。通過定義接口,實現(xiàn)用戶、ATM機、銀行的三層結構,完成兩個銀行和一個ATM機的模擬,其中ATM根據(jù)其雙重的服務身份,分為面向銀行客戶的ATM客戶端和作為銀行服務期的客戶端的ATM服務端,最終實現(xiàn)用戶的帳號管理及銀行ATM系統(tǒng)相關服

24、務。</p><p>  2 CORBA規(guī)范的介紹</p><p>  2.1 CORBA規(guī)范的研究背景和發(fā)展歷史</p><p>  CORBA(Common Object Request Broker Architecture,公共對象請求代理體系結構)是由OMG(Object Management Group,對象管理組織)組織制訂的一種標準的面向對象應用程序

25、體系規(guī)范?;蛘哒fCORBA體系結構是OMG為解決分布式處理環(huán)境(DCE)中,硬件和軟件系統(tǒng)的互連而提出的一種解決方案。</p><p>  CORBA規(guī)范的產(chǎn)生有其特定的技術背景。</p><p>  1)面向對象技術的掀起</p><p>  面向對象技術不同于傳統(tǒng)的設計和實現(xiàn)技術,它把數(shù)據(jù)以及相關的方法封裝在一起,構成對象。通過封裝的方法更加精細地描述數(shù)據(jù)以及方

26、法的作用域,使用繼承特性來擴展這些作用域。再加上對象引用和對象實現(xiàn)的分離,使得因對象的數(shù)據(jù)和方法改變而造成的影響,在不涉及引用方法的情況下,局限于該對象的本身。大大方便了軟件對象的修改和擴展。對象的繼承性使得可以利用已有的對象的功能來構造新的對象,有效地提高了軟件的開發(fā)效率。因此,面向對象技術的發(fā)展,在提高軟件可重用性和軟件開發(fā)質量方面起到了積極的推動作用。</p><p>  2)客戶/服務器模式的普遍應用&l

27、t;/p><p>  這種計算模式使得客戶盡量不需要了解過多的實現(xiàn)細節(jié),從而便于客戶應用的開發(fā)。該模式具有不對稱性,即服務器不會主動詢問客戶的請求。是被動地執(zhí)行指定服務??蛻簦掌髂J竭m用于由不同計算能力的計算機和設備組成的網(wǎng)絡環(huán)境。</p><p>  3)集成已有系統(tǒng)及屏蔽通信和實現(xiàn)細節(jié)的需求</p><p>  一般來說,客戶已經(jīng)積累了一批極具價值的系統(tǒng),通常這

28、些系統(tǒng)難以改造和重寫,但是在構造新系統(tǒng)時,客戶希望能夠利用這些資源,因此如何有效地將已有系統(tǒng)集成或移植到新系統(tǒng)中,并且在將來盡可能少地使它們再成為“孤島”系統(tǒng),是客戶應用開發(fā)中提出的迫切需求。</p><p>  4)現(xiàn)有分布式處理機制和方法存在著不足</p><p>  現(xiàn)有典型的分布式處理系統(tǒng)和標準有RPC(遠程過程調(diào)用)和DCE(分布計算環(huán)境)等。它們雖然是按照客戶/服務器模式構造的

29、系統(tǒng),但是客戶程序和服務器程序之間的調(diào)用關系是靜態(tài)的,基于它們所構造的系統(tǒng)也是靜態(tài)的,并且可以使用的編程語言必須與RPC和DCE實現(xiàn)語言相一致,從而限制了用戶的可選語言范圍。</p><p>  在這種情況下,由OMG組織制訂的工業(yè)標準CORBA規(guī)范應運而生。0MG組織成立于1989年,至今已擁有800多家成員,許多著名的計算機公司,如IBM,DEC,HP等都是其成員,東南大學是我國大陸的唯一成員單位。該組織的中

30、心任務是基于實用的對象技術,建立一個體系結構和一組規(guī)范,在分布式環(huán)境下實現(xiàn)應用的集成,使得基于對象的軟件成員在分布異構環(huán)境中可重用、可移植和可互操作。CORBA規(guī)范是針對OMA(Object Management Architecture,對象管理體系結構)參考模型中的對象請求代理ORB制定的,OMA如圖2.1所示。</p><p>  圖2.1 OMA 參考模型</p><p><

31、b>  它由五部分組成:</b></p><p>  1)對象請求代理ORB(Object Request Broker):使對象在分布式環(huán)境中透明地收發(fā)請求和響應,它是構建分布式對象應用,使應用在不同層次的異構環(huán)境下互操作的基礎。</p><p>  2)對象服務(Object Services):是為使用和實現(xiàn)對象而提供的基本服務集合,如命名服務、事件服務等。<

32、/p><p>  3)公共設施(Common Facilities):是向終端用戶應用提供的一組共享服務接口,如組合文檔等。</p><p>  4)應用接口(Application Interlaces):相應于傳統(tǒng)的應用表示。</p><p>  5)領域接口(Domain Interfaces):為使用領域服務而提供的接口?,F(xiàn)OMG組織為PDM(產(chǎn)品數(shù)據(jù)管理,Pr

33、oduct Data Management)等應用制訂了有關規(guī)范。CORBA規(guī)范于1991年頒布了1.1版本,而后經(jīng)歷了1.2、2.0和2.1版本,目前最新的是1998年2月頒布的2.2版本。</p><p>  2.2 CORBA規(guī)范的簡介</p><p>  CORBA是一種編程技術,是吸收了軟件界面向對象技術、分布計算技術、多層體系結構技術及接口技術的一種綜合技術。CORBA的底層結

34、構是基于面向對象模型的OMG接口描述語(OMG IDL),對象請求代理(ORB)和IIOP標準協(xié)議這三個關鍵模塊組成。首先,由于CORBA采用接口描述語言編寫對象接口,使其在跨語言編程上真正發(fā)揮作用。如今,CORBA已經(jīng)提供到C/C++、JAVA等高級語言的映射,很大程度上減小了對程序設計語言的依賴性,使用不同語言的軟件工程師可以共享各自已有的成果。</p><p>  說到CORBA,我們就不得不提ORB,即對

35、象請求代理,它是聯(lián)結應用程序、各種對象、CORBA服務、CORBA工具集的核心。ORB最顯著的功能就是對應用程序或其他ORB的請求予以響應,起著一個“中介”的作用。因為CORBA對象的互相通信要以ORB為中介,這樣也就促使其在當前多種流行通訊協(xié)議上實現(xiàn)通訊。</p><p>  圖2.2 傳統(tǒng)客戶/服務器方式</p><p>  圖2.3 CORBA模式</p><p&

36、gt;  圖2.2所描述的是一個傳統(tǒng)客戶/服務器方式,客戶端發(fā)出請求,服務器端給出響應。由于客戶端和服務器直接相連,因此響應速度快。但是這種方式最大的缺陷是兼容性差,對于不同的開發(fā)工具,具有較大的局限性。從圖2.3我們可以看出ORB在CORBA對象通訊中起著一個“中介”的作用??蛻舫绦虿⒉恢滥繕朔掌魑挥诒镜剡€是遠程網(wǎng)絡中,客戶程序僅把服務器名稱和服務器接口傳遞給ORB,然后由ORB定位服務器、分派請求和遞送結果。因此CORBA的這種

37、工作方式允許客戶動態(tài)地綁定到服務方上,而取消了原有分布式計算模型中客戶機、服務器之間一一對應關系。從而具有更大的靈活性,更大程度上滿足了交互作用的調(diào)和,增強了互操作性,同時也極大地推動了分布計算的發(fā)展。</p><p>  2.3 CORBA規(guī)范的特點</p><p>  CORBA規(guī)范定義了IDL語言及映射、單個ORB和ORB間互操作機制。其中,單個ORB是CORBA規(guī)范的核心部分,其體

38、系結構如圖2.4所示: </p><p>  圖2.4 單個ORB體系結構</p><p>  CORBA規(guī)范的技術特點是:</p><p>  1)引入了代理(Broker)的概念。一個代理至少可以有三個方面的作用:完成對客戶方提出的抽象服務請求的映射;自動發(fā)現(xiàn)和尋找服務器;自動設定路由,實現(xiàn)到服務器方的執(zhí)行。這樣用戶在編制客戶程序時就可以避免了解過多的細節(jié),而只

39、要完整地定義和說明客戶需要完成的任務和目標。</p><p>  2)實現(xiàn)了客戶方程序與服務器方程序的完全分離,這與面向過程調(diào)用機制為基礎的客戶/服務器模式根本不同??蛻魧⒉辉偻掌靼l(fā)生直接的聯(lián)系,而僅僅需要同代理進行交互??蛻襞c服務器之間就可以有更加靈活的關系存在。</p><p>  3)將分布式計算同面向對象的概念相互結合,可以提高軟件重用率、控制冗余度等,帶來諸多好處。</

40、p><p>  4)提供了軟件總線的機制,所謂軟件總線是指CORBA規(guī)范定義了一組接口規(guī)范,任何應用程序、軟件系統(tǒng)或工具只要具有與該接口規(guī)范相符合的接口定義,就能方便地集成到CORBA系統(tǒng)中,而這個接口規(guī)范獨立于任何實現(xiàn)語言和環(huán)境。</p><p>  5)分層的設計原則和實現(xiàn)方式。CORBA規(guī)范僅定義了ORB中需要用到的基本對象類。封裝了相應的數(shù)據(jù)結構和方法,而面向應用的對象定義則可以在OM

41、A的應用對象或應用開發(fā)環(huán)境中逐步分層定義和實現(xiàn)。</p><p>  CORBA規(guī)范充分利用了現(xiàn)今各種技術發(fā)展的最新成果,將面向對象的概念揉合到分布式計算中。定義了一組與實現(xiàn)無關的接口方式,引入代理機制分離客戶和服務器,使得CORBA規(guī)范成為開放的、基于客戶/服務器模式的、面向對象的分布式計算的工業(yè)標準。</p><p>  2.4 CORBA規(guī)范的實現(xiàn)過程及其組件的功能</p>

42、;<p>  首先用Web服務封裝CORBA對象,使企業(yè)內(nèi)部各應用程序保持不變,而對于B2B,B2C等對外的商務應用,則將CORBA對象封裝成Web服務,即利用HTTP作為穿越Internet的運載媒體,構建基于CORBA-Web服務的電子商務應用架構,它把服務器的CORBA對象和基于XML的應用程序相連接。用戶端通過HTTP發(fā)送SOAP格式的XML消息,消息在運行時被導入到一個服務器端的翻譯器,翻譯器把消息轉換為等價的C

43、ORBA請求,ORB截取此請求并負責在軟件總線上找到響應該請求的服務對象,然后完成方法和參數(shù)調(diào)用并經(jīng)執(zhí)行后返回處理結果。返回結果又被轉換成SOAP格式的XML信息,最后返回給用戶。其中,各主要組件及其功能如下:</p><p>  1)UDDI注冊中心</p><p>  是對所有提供公共UDDI注冊服務站點的統(tǒng)稱。UDDI的接口分為查詢API和發(fā)布API。其中查詢API用來快速定位web

44、服務及其調(diào)用規(guī)范和相關信息的細節(jié);而發(fā)布API又分為保存API和刪除API,一旦得到授權便可以注冊商業(yè)實體等信息,也可以修改或刪除原先發(fā)布的信息。企業(yè)內(nèi)部的CORBA服務對象經(jīng)過web服務包裝后由服務器端得翻譯器負責到UDDI注冊中心進行注冊、修改和刪除等操作。</p><p><b>  2)用戶</b></p><p>  是一個能夠發(fā)送HTTP請求到指定URL的

45、瀏覽器或是URL對象本身,也可以是一個跨企業(yè)的應用程序,發(fā)送的請求首先被定向到UDDI注冊中心。請求多采用XML格式通訊。當外部用戶發(fā)出訪問請求時,首先需要到UDDI注冊中心進行服務查詢,一旦查詢到滿足要求的相應服務時,則由UDDI注冊中心負責將用戶的請求重定向到相應的服務端翻譯器,而內(nèi)部用戶則仍然按原有方式使用遺留系統(tǒng),不受任何影響,除非要訪問其他企業(yè)的CORBA對象。</p><p><b>  3

46、)服務對象</b></p><p>  服務對象是分布式對象應用程序的基本組成模塊,它為一般服務提供接口信息。被使用的OMG對象服務統(tǒng)稱為CORBA服務,包括安全服務、消息服務、生命周期服務、命名服務、持久性對象服務、事務處理服務、數(shù)據(jù)交換服務、并發(fā)控制服務等。</p><p><b>  4)接口庫</b></p><p>  用

47、來存儲各接口的信息,例如接口定義、常量、屬性、類型定義等。接口庫本身就是一個CORBA對象,應用程序使用接口庫的接口信息可以訪問OMG IDL的類型系統(tǒng),獲得對象接口的所有信息。</p><p>  2.5 CORBA規(guī)范的主要應用方向</p><p>  CORBA規(guī)范的推出,重新調(diào)整了客戶機與服務器之間的關系??蛻魴C可以向服務器提出事務請求,同時也可以為下一個請求充當服務器角色。由于C

48、ORBA系統(tǒng)引入了中間件的概念,即事務代理,由中間件完成客戶機與服務器之間的通信,使得服務器對于客戶機的位置相對透明,取消了原有分布式計算模型中客戶機、服務器之間的一一對應關系。CORBA客戶機可以在運行時動態(tài)獲得服務對象的位置,并且可以對多個服務對象提交事務請求,因此,極大推動了分布計算的發(fā)展。分布計算是指網(wǎng)絡中兩個或兩個以上的軟件相互共享信息資源。這些軟件可以位于同一臺計算機中,也可以部署在網(wǎng)絡節(jié)點的任意位置?;诜植际侥P偷能浖?/p>

49、統(tǒng)具有均衡運行系統(tǒng)負載、共享網(wǎng)絡資源的技術優(yōu)勢。</p><p>  另外,CORBA規(guī)范約束采用面向對象的分布式軟件的構造方法,以接口定義語言的形式實現(xiàn)對象內(nèi)部細節(jié)的完整封裝,從而降低了軟件系統(tǒng)的復雜程度,增加了軟件功能的可重用性。CORBA提供到C/C++、Java、SmallTalk等高級語言的映射,很大程度地減小了對程序設計語言的依賴性,使軟件開發(fā)人員可以在較大范圍內(nèi)共享已有成果。正是以上特點推動了分布式

50、多層軟件體系結構的發(fā)展。目前,CORBA技術在銀行、電信、保險、電力和電子商務領域都有廣泛的應用。而本課題就是CORBA技術在電子商務中的研究與應用。</p><p>  3 基于CORBA的銀行ATM機系統(tǒng)的研究與設計</p><p>  以網(wǎng)絡為基礎的銀行ATM系統(tǒng),需要強健的平臺架構。同時,為了在競爭中立于不敗之地,系統(tǒng)必須具有良好的可擴展性、開放性、透明性及事務處理能力。這就要求我

51、們在設計系統(tǒng)時應盡可能考慮到功能的完備性。Internet/Intranet/Web技術使現(xiàn)代企業(yè)的各項日常管理活動在日趨電子化的同時越來越依賴企業(yè)網(wǎng)。分布式對象的解決方案已經(jīng)成為未來建立企業(yè)級信息的中心,隨著網(wǎng)絡技術的進一步發(fā)展,人類對網(wǎng)絡的利用要求愈來愈高,信息時代的企業(yè)不應該再是一個信息孤立的單位,企業(yè)可以通過Intranet組成企業(yè)內(nèi)的信息集成,通過桌面產(chǎn)品訪問后臺數(shù)據(jù)庫,例如實時數(shù)據(jù)可以在制造中共享,企業(yè)將通過Extranet

52、(外部網(wǎng))給合作者或客戶提供信息,可以說這樣的企業(yè)將真正擁有信息的優(yōu)勢。但是企業(yè)內(nèi)部以及企業(yè)之間,往往是一個異構環(huán)境, 異構環(huán)境不僅局限于網(wǎng)絡(包括介質、傳輸協(xié)議、網(wǎng)絡技術等)和操作系統(tǒng)的不同,也包括了今天人們使用的編程語言以及由這些語言開發(fā)的軟件產(chǎn)品。當今企業(yè)中的計算機及網(wǎng)絡環(huán)境存在著廣泛的異構現(xiàn)象。歸納起來,現(xiàn)階段設計一個銀行ATM系統(tǒng),應該考慮的目標主要包括:</p><p>  (1)系統(tǒng)功能及工具的完備

53、性;</p><p>  (2)系統(tǒng)體系結構的可擴展性;</p><p>  (3)多種數(shù)據(jù)源的存儲訪問能力;</p><p>  (4)基于Web的發(fā)布和表現(xiàn)能力。</p><p>  于是,本課題的主要任務和目標便是利用VisiBroker作為連接客戶與銀行的中間件,運用CORBA規(guī)范技術,通過定義接口,實現(xiàn)用戶、ATM機、銀行的三層結構

54、,實現(xiàn)用戶的帳號管理及銀行ATM系統(tǒng)相關服務。</p><p>  3.1系統(tǒng)可行性分析</p><p>  3.1.1 分析銀行ATM機系統(tǒng)的現(xiàn)狀 </p><p>  隨著銀行業(yè)務的不斷發(fā)展,ATM自動提款機逐漸普及,銀行ATM系統(tǒng)成為如今社會的新熱點,給人們的經(jīng)濟和生活帶來了極大的便利。但今天的銀行ATM系統(tǒng)卻只是在各個銀行各自擁有的平臺上運行,因此應用程序并

55、不能互操作,也不能建立在對方的基礎上。安全性和支付系統(tǒng)仍然不成熟,并且常常是不相稱的。為了使ATM機更好的為經(jīng)濟生活服務,未來的銀行ATM系統(tǒng)的主要問題是它們必須通過復雜的組件技術和信托關系在一個動態(tài)并開放的,從而也是不受控制的環(huán)境中操作。現(xiàn)階段的銀行ATM系統(tǒng)不能迎合這些關于功能性和安全性的需求,于是為了能更好的解決這方面問題的,基于CORBA的電子商務系統(tǒng)便應運而生。</p><p>  3.1.2 新系統(tǒng)的

56、確立</p><p>  1) 新系統(tǒng)的設計目標</p><p>  針對以上問題,我們研究與設計基于CORBA的電子商務系統(tǒng),以對現(xiàn)有系統(tǒng)在其功能及操作上做一些改進。銀行ATM系統(tǒng)處在典型的異構和分布式環(huán)境中,CORBA所具備的分布式計算處理能力為完成大型復雜的銀行ATM系統(tǒng)提供了技術上的保證,在當今各種開發(fā)工具積極提供與CORBA的接口情況下,運用CORBA技術創(chuàng)建更加完善的銀行ATM

57、系統(tǒng)已成為這個領域中相當領先的技術。</p><p>  2) 新系統(tǒng)的設計原則</p><p><b>  a.模塊化設計原則</b></p><p>  通過模塊化設計,使各個模塊能完成相對獨立的功能,這樣方便開發(fā)者的開發(fā)和調(diào)試,同時也利于客戶的操作。</p><p><b>  b.可擴充性原則</

58、b></p><p>  一般來說,軟件的生命期不會很長,在使用了一段時間后可能會出現(xiàn)功能欠缺等現(xiàn)象,無法滿足應用需要。如果要重新編寫軟件會浪費很多財力,物力。繼承性原則彌補了這一點。當有新的功能出現(xiàn)時,只需在原來的基礎上稍做一些改動(增添、刪除等)則可擴充其功能。</p><p><b>  c.可維護性</b></p><p>  用

59、傳統(tǒng)的方法和面向過程的語言來開發(fā)本系統(tǒng),很難維護。因為該系統(tǒng)的功能或信息是可變的,這樣軟件危機會隨著時間越來越嚴重。本系統(tǒng)采用面向對象的語言來開發(fā),提高可維護性,使該系統(tǒng)的生命力更強。</p><p>  3) 新系統(tǒng)的可行性</p><p>  CORBA是一系列定義分布式操作系統(tǒng)的標準。它是分布式的,不同種類的對象可以一起工作。CORBA將很多種機器,從迷你機,臺式機到手掌機和嵌入系統(tǒng)

60、以一種簡單的方式集成起來,成為大型(和非大型)企業(yè)的中間件的選擇。其中最重要也是最常用的是用于服務器高效可靠地控制大量的客戶機。CORBA在世界上許多最大的www站點的機房里都有應用。它給這些系統(tǒng)提供了可測量性和容錯的特殊支持。除了大型應用程序,一些CORBA還運行于實事系統(tǒng)和小型嵌入系統(tǒng)。</p><p>  從操作可行性方面考慮:客戶端ATM機操作復雜度簡單,使本系統(tǒng)為廣大的普通用戶所接受,而不僅僅局限于少數(shù)

61、受過專業(yè)培訓的專業(yè)用戶。</p><p>  從平臺獨立性方面考慮:如今越來越多的軟件公司推出基于CORBA結構的中間件,并將其運用到實際的電子商務活動中。Web技術的發(fā)展使C/S結構進一步發(fā)展為B/S結構。客戶端盡可能的簡單,只需要一個標準的瀏覽器就能以上述的方式訪問服務器。</p><p>  從系統(tǒng)成本方面考慮:用CORBA創(chuàng)建的電子商務系統(tǒng)方案有實現(xiàn)的可能和開發(fā)的價值;系統(tǒng)所帶來的

62、經(jīng)濟效益也是超過開發(fā)和維護系統(tǒng)所需要費用的。</p><p>  使用基于CORBA技術的電子商務系統(tǒng)具有開放、高效、可重用性等優(yōu)點。該系統(tǒng)完全實現(xiàn)了客戶方調(diào)用請求的透明性,將底層細節(jié)完全屏蔽,減少了開發(fā)應用的難度和復雜度,并且具有很高的可重用性,適用于復雜的分布式環(huán)境。</p><p>  3.2 系統(tǒng)的整體設計</p><p>  整個系統(tǒng)涉及到三個角色:銀行、

63、ATM機以及客戶,是一個非常接近生活的電子商務實例。</p><p>  系統(tǒng)首先假設共有兩家銀行,用戶可以在其中開設一定的帳戶,而每個銀行可以根據(jù)自己的時間上下班。</p><p>  整個系統(tǒng)可以有一臺或多臺ATM機器,我們?yōu)槊颗_ATM機命名。每臺ATM機可以歸屬于任何一個指定的銀行,但它們能夠處理所有銀行的交易。我們還可以根據(jù)需要關閉或啟動每臺ATM機。</p><

64、;p>  每個合法客戶都有一個名字和開戶銀行規(guī)定的個人身份標志號PIN,用戶可以選定自己希望使用的ATM機名稱,通過ATM機,客戶可以對自己的帳戶進行查存、支出或存款,也可以對自己的支票進行查詢、提款或撥款。</p><p>  銀行、ATM機將檢查每一筆交易的可行性,并忠實記錄每一筆成功的交易。</p><p><b>  3.3系統(tǒng)開發(fā)工具</b></

65、p><p>  3.3.1 基于VISIBROKER的智能代理應用研究</p><p>  1)VisiBroker簡介</p><p>  當前已有許多公司都已經(jīng)按照OMG的標準開發(fā)出形式、功能各具特色的CORBA中間件系統(tǒng),如IONA公司的Orbix(C++版)、OrbixWeb(Java版),Digital公司的ObjectBroker;IBM公司的Compone

66、nt Broker等等。</p><p>  而本次課題所主要運用的VisiBroker則是Inprise公司的產(chǎn)品。VisiBroker最初被稱作Black Window,由PostModer公司研制。這是世界上第一個同時支持客戶、對象實現(xiàn)的ORB,采用Java語言編寫。1996年初,PostModern被Visigenic公司收購,1996年7月,Black Window被正式命名為VisiBroker fo

67、r Java,而PostModer的另一個產(chǎn)品C++ Orbeline被正式命名為VisiBroker for C++.</p><p>  1996年7月底,Netscape公司宣布他們的Netscape ONE(Open Network Environment)將集成VisiBroker for Java以支持CORBA分布式軟件結構;1997年2月,Oracle公司宣布在他們的NCA(Network Com

68、puting Architecture)體系結構中,將以VisiBroker作為請求對象代理ORB。</p><p>  1998年2月,Visigenic被Inprise收購,而Inprise的前身就是著名的Broland公司。Broland公司的創(chuàng)業(yè)產(chǎn)品是Turbo pascal編譯器,他們的Borland C++、Turbo C++曾經(jīng)成為我國程序開發(fā)工具中的壟斷產(chǎn)品。在Microsoft推出Visual

69、Basic、Visual C++后,Borland C++霸主地位受到?jīng)_擊。不過,在相當長的時間內(nèi),Broland C++ 4.x~5.x繼續(xù)與Visual C++ 1.x~6.x抗衡。</p><p>  Delphi的出現(xiàn)為Borland帶來了轉機。目前,Delphi已經(jīng)成為可視化編程工具的經(jīng)典“作品”,具有強大的數(shù)據(jù)庫、網(wǎng)絡、多媒體軟件開發(fā)功能,用戶、第三方支持遍布世界各地。如果說,“希臘美女”Delphi

70、(因為Delphi的標志是一個希臘美女)的出現(xiàn)使所有程序員啞口無言的話,那么,她的“妹妹”C++ Builder則更加風姿卓越。</p><p>  C++ Builder具備Delphi的所有功能,直接使用源自Delphi的可視化組件庫(Wizard),可以將原來已經(jīng)用Borland C++或Visual C++開發(fā)的軟件自動轉換為現(xiàn)有格式,同時支持OWL以及MFC類庫。</p><p>

71、;  更為重要的是,現(xiàn)在,C++ Builder已經(jīng)集成了他們自己公司(也就是Inprise)的CORBA產(chǎn)品,也就是VisiBroker.</p><p>  2)VisiBroker的特點</p><p>  目前,VisiBroker有C++、Java、Delphi三個版本,均符合CORBA2.0規(guī)范,支持跨平臺、支持多種操作系統(tǒng)、內(nèi)置IIOP引擎。同時,VisiBroker還實現(xiàn)了

72、事務服務、命名服務、事件服務等CORBA基本服務;能夠完成基于SSL協(xié)議的IIOP加密傳輸。</p><p>  通常情況下,借助VisiBroker構建的CORBA分布式軟件包括以下幾部分:</p><p>  a . 接口存根對象Stub被CORBA客戶當作CORBA服務的提供者直接使用;而接口存根對象Stub卻僅僅是一個代理,真正的對象實現(xiàn)既可以與客戶程序駐留在相同進程中,也可以與客

73、戶程序駐留在相同機器的不同進程中,還可以駐留在別的機器中。</p><p>  b . 接口存根對象Stub會把客戶的請求轉發(fā)給與客戶程序駐留在相同機器上的ORB;ORB通過運行在局域網(wǎng)上的Smart Agent定位對象實現(xiàn)的實例。Smart Agent能夠在動態(tài)變化的分布式環(huán)境下定位一個可以響應客戶請求的服務對象。而且,在必要的時候,Smart Agent能夠自動進行負載均衡,當服務器突然崩潰時,Smart A

74、gent能夠重新定位一個服務對象或重新啟動服務對象。當然,在客戶機器所在的局域網(wǎng)內(nèi),至少需要運行一個Smart Agent。</p><p>  c . 對象實現(xiàn)所在的機器可以被認為是服務器。當客戶發(fā)出請求時,服務器上的本地ORB會把請求傳遞給接口框架對象Skeleton,激發(fā)有關操作,獲取服務。接口框架對象Skeleton還可以通過基本對象適配器BOA與本地ORB通信。比如,當對象實現(xiàn)啟動、激活后,接口框架對象

75、Skeleton會通過BOA向Smart Agent注冊有關信息。</p><p>  d . 通常情況下,對象實現(xiàn)的實例應該手動啟動、關閉。但是,如果對象實現(xiàn)向OAD(Object Activation Daemon)注冊過,則可以在需要的時候由OAD自動啟動、激活對象實現(xiàn)的實例。像OAD注冊過的對象實現(xiàn)信息被保存在對象實現(xiàn)倉庫中。當服務器的本地ORB在接收到有關請求后,會自動與OAD通信,如果有必要,OAD將

76、負責啟動、激活一個對象實例。當然,如果希望實現(xiàn)上述功能,在服務器對象實現(xiàn)所在的局域網(wǎng)內(nèi),至少需要運行一個OAD。</p><p>  另外,VisiBroker還提供了接口倉庫管理工具,用戶可以把用OMG IDL定義的對象接口信息存儲在自由選定的接口倉庫中,并通過各種圖形界面查詢、獲取這些信息。這樣,CORBA開發(fā)人員就可以十分方便的發(fā)布、維護對象接口信息。當用向OAD注冊對象實現(xiàn)時,也可以從接口倉庫中獲益。&l

77、t;/p><p>  隨著Inprise的兼并,VisiBroker具備了許多額外的工具,如緊密集成了VisiBroker的開發(fā)工具C++ Builder、JBuilder、Delphi;用來監(jiān)控CORBA網(wǎng)絡運行環(huán)境的VisiBroker Manager;用來遠程調(diào)試CORBA程序模塊的RemoteDebugger等等。</p><p>  3)VisiBroker的Smart Agent&

78、lt;/p><p>  如果我們希望調(diào)試、運行CORBA程序,在本機或本機所處的局域網(wǎng)內(nèi)必須至少運行一個Smart Agent。Smart Agent是ORB的擴展部分,能夠在動態(tài)變化的分布式環(huán)境中定位一個對象實現(xiàn)的實例,完成客戶要求的服務。在VisiBroker中,ORB功能由orb_b.dll、orb_br.dll、orb_r.dll等動態(tài)鏈接庫實現(xiàn);Smart Agent功能由osagent.exe實現(xiàn),這些文

79、件均位于VisiBroker安裝目錄的Bin子目錄下。</p><p>  Smart Agent具有以下一些功能、特點:</p><p>  a .當客戶向CORBA對象發(fā)出請求時,如果Smart Agent僅僅能夠定位一個對象實現(xiàn)的實例,就直接向該實例傳遞請求;如果Smart Agent能夠定為多個對象實現(xiàn)的實例(也就是發(fā)現(xiàn)多個可用服務器),就會自動進行負載均衡。</p>

80、<p>  b .當某個對象實現(xiàn)的實例因網(wǎng)絡連接故障等原因出現(xiàn)運行錯誤時,Smart Agent可以重定位一個對象實例;如果設置正確,Smart Agent還可以重啟動服務器。</p><p>  c .ORB通過向所在局域網(wǎng)廣播的方式與Smart Agent建立通信關系。如果局域網(wǎng)內(nèi)有多個Smart Agent運行,ORB則與最先響應的Smart Agent建立通信關系。一旦與Smart Agent

81、建立起通信連接,ORB自動采用點到點的UDP(User data protocol)通信協(xié)議與Smart Agent通信,以便減少網(wǎng)絡運行開銷。</p><p>  d .當局域網(wǎng)上有多個Smart Agent運行時,每個Smart Agent僅僅需要注冊一部分對象實現(xiàn)實例的定位信息;如果某個Smart Agent發(fā)現(xiàn)不能直接定位的對象實例,會自動與其它Smart Agent通信(互操作)。</p>

82、<p>  e .當局域網(wǎng)上有多個Smart Agent運行時,如果某個Smart Agent發(fā)生故障,它所記錄的對象實例定位信息會自動注冊到其他的Smart Agent上。</p><p>  d .用戶可以通過設置Smart Agent的偵聽端口,將位于同一個局域網(wǎng)上的多個Smart Agent歸屬于不同的ORB域。</p><p>  值得一提的是,在編譯程序時,我們需要

83、一個叫JDK的組件。JDK是Java的核心,包括了Java運行環(huán)境(Java Runtime Envirnment),一堆Java工具和Java基礎的類庫(rt.jar)。在安裝C++ Builder時,會有自帶的JDK某個版本自定義安裝。最主流的JDK是Sun公司發(fā)布的JDK,除了Sun之外,還有很多公司和組織都開發(fā)了自己的JDK,例如IBM公司開發(fā)的JDK,BEA公司的Jrocket,還有GNU組織開發(fā)的JDK等等。其中IBM的JD

84、K包含的JVM(Java Virtual Machine)運行效率要比Sun JDK包含的JVM高出許多。而專門運行在x86平臺的Jrocket在服務端運行效率也要比Sun JDK好很多。而我們VisiBroker只支持JDK1.3的版本,所以在默認使用C++ Builder的JDK時,會出現(xiàn)編譯錯誤“C:\jdk1.3.1_01\jre\bin\classic\jvm.dll”,這也是我在編譯程序當中遇到的問題之一。</p>

85、;<p>  3.3.2 C++ Builder開發(fā)環(huán)境</p><p>  1) C++語言簡介</p><p>  C++是當今最流行的高級程序設計語言之一,應用十分廣泛。它與C語言兼容,既支持結構化的程序設計方法,也支持面向對象的程序設計方法。C++語言是在C語言的基礎上擴充而成的,具有C語言緊湊、高效等優(yōu)點并支持程序設計技術。</p><p>

86、  自20世紀80年代以來,面向對象的技術引起了計算機界的極大關注。隨著面向對象程序設計語言的漸趨成熟,作為一種新的程序設計風格,其應用也得到了迅速發(fā)展。</p><p>  在面向對象系統(tǒng)中,人們并不是逐個地描述各個具體的對象,而是將注意力集中于具有相同特性的一類事物,抽象出這樣一類事物的共同結構和行為。類(Class)是對象的抽象及描述,是具有共同屬性和操作的多個對象的相似特性的統(tǒng)一描述體,類中的每個對象都是

87、該類的實例。由于類描述了數(shù)據(jù)結構(對象屬性)、算法(方法)和外部接口(消息協(xié)議),因此,類提供了完成的解決問題的能力。</p><p>  一個成熟的面向對象的編程環(huán)境往往會提供一組精心設計而成能在程序中被反復使用的類供用戶使用,以提高軟件開發(fā)的效率和質量,一般稱這樣的一組類為類庫。C++ Builder提供的類庫名為VCL,VC++則提供了一個叫做MFC的類庫。</p><p>  面向

88、對象程序設計的概念提出來以后,某些公司和機構曾經(jīng)開發(fā)出一些純粹的面向對象設計語言,如Smalltalk、Ada等,但是由于種種原因,這些語言沒能夠廣泛地流行起來。從本質上講,C++并不是純粹的面向對象的設計語言。C++是C語言的一個超集,它既能支持傳統(tǒng)的面向過程程序設計,又支持面向對象程序設計,C++與C語言的這種兼容性是其成功的一個重要方面。</p><p>  C++的創(chuàng)造靈感來源于當時計算機語言多方面成果的

89、凝集,特別是BCPL和Simula67。C++的標準化工作于1989年開始,在支持面向對象特性的開發(fā)平臺上,日趨進步和完善。</p><p>  2) Windows環(huán)境下的快速開發(fā)工具</p><p>  C++ Builder是Borland公司開發(fā)的Windows下可視化的C++編程環(huán)境,它常被簡稱為BCB或CB。BCB不僅功能強大,而且學習簡單、使用方便。C++ Builder目前

90、的最新版本是6.0版。</p><p>  傳統(tǒng)的“軟件工程”提倡“先設計,后編程”設計一旦完成,則不允許做過多修改。這種設計原則固然有其合理的一面,但嚴重制約了開發(fā)效率。對于某些開始時對需求并不十分清楚的應用項目,若按此辦理則往往將開發(fā)人員逼入窘境?!翱焖僭头ā被騌AD(Rapid Application Development,快速開發(fā)工具)則反其道而行之,它把設計看成需經(jīng)多次反復才能完成的工作:對一個項目

91、的初步分析完成后,即據(jù)此開發(fā)出一個程序“原型”;然后與用戶一起對該“原型”進行評價,找出不足,修改設計后再產(chǎn)生程序。這一過程可重復多次,直到所開發(fā)的系統(tǒng)達到用戶要求為止。但要有效實現(xiàn)RAD,必須擁有優(yōu)良的編程環(huán)境和代碼生成工具,由于BCB具有可視化、面向對象等特性,特別適合作為Windows下企業(yè)級應用的RAD開發(fā)環(huán)境使用。目前,稱得上RAD的產(chǎn)品有VB、Delphi、C++ Builder等。相對于VB等“解釋型”的語言來說,Delp

92、hi、BCB這些以“編譯型”的語言為基礎的RAD編程環(huán)境效率較高,功能也更強大。</p><p>  作為一個RAD開發(fā)環(huán)境,BCB對Windows和Internet上的各種流行技術都提供了充分的支持,C++ Builder 6.0在先前版本基礎上又增加了許多新的功能和特性。它具有很強的圖形、圖像和多媒體處理功能;對Windows下的OLE、COM、ActiveX技術提供了很好的支持;在數(shù)據(jù)庫編程方面,BCB提供

93、了各種連接方案以及多層分布式數(shù)據(jù)處里等先進技術;在Internet和Intranet編程方面,BCB提供了Socket組件和Internet Express、Web Snap等技術。</p><p>  BCB的另一優(yōu)點是具有極強的兼容能力,它可以編譯連接Turbo C、Borland C++、VC++、Delphi等工具開發(fā)的源代碼或目標模塊。</p><p>  4 基于CORBA的銀

94、行ATM機系統(tǒng)的具體實現(xiàn)</p><p>  本系統(tǒng)包括兩家銀行和一臺ATM機器。每個銀行可以根據(jù)自己的時間上下班。ATM機能夠處理所有銀行的交易。我們還可以根據(jù)需要關閉或啟動每臺ATM機。每個合法客戶都有一個名字和開戶銀行規(guī)定的個人身份標志號PIN,用戶可以選定自己希望使用的ATM機名稱。通過ATM機,客戶可以對自己的帳戶進行查存、支出或存款,也可以對自己的支票進行查詢、提款或撥款。銀行、ATM機將檢查每一筆交

95、易的可行性,并忠實記錄每一筆成功的交易??蛻粼贏TM機上對自己的賬戶進行操作后,ATM服務器就把這些交易信息分配到客戶所在的銀行服務器上,然后在銀行服務器端對客戶的操作信息進行處理,然后返回,最終顯示在ATM機的顯示屏幕上,讓客戶了解交易結果。</p><p>  運用VisiBroker開發(fā)CORBA程序的一般設計步驟如下: ①編寫IDL文件, 然后用開發(fā)工具所帶的編譯程序將IDL文件編譯成C++程序。②編寫服

96、務器端程序, 實現(xiàn)分布式對象。③編寫客戶端程序, 調(diào)用服務器端對象提供的服務。</p><p>  4.1 編寫IDL接口</p><p>  與所有CORBA程序一樣,在分析完這個商務系統(tǒng)以后,我們首先開始編寫有關的IDL接口。本系統(tǒng)中共定義了兩個接口文件,介紹如下:</p><p>  1) xaction.idl,這是在ATM客戶端與ATM服務器端進行數(shù)據(jù)通訊

97、的接口。在這個接口文件中定義的操作枚舉類型、操作執(zhí)行狀態(tài)枚舉類型、交易結構體以及Server接口實際上是對ATM的一種抽象表示。接口定義文件及其說明。:</p><p>  enum EnumAction {//定義三種常見操作</p><p>  balance,//查詢</p><p>  withdraw,//支出</p><p>  

98、deposit,//存款</p><p><b>  };</b></p><p>  enum EnumStatus {//定義操作執(zhí)行狀態(tài)</p><p><b>  OK,//成功</b></p><p>  invalid,//無效</p><p>  complet

99、e,//完成</p><p>  incomplete,未完成</p><p><b>  };</b></p><p>  struct xaction {//定義一個結構體,記錄一筆交易的有關內(nèi)容</p><p>  long UserID;//用戶ID</p><p>  long PIN;

100、//用戶個人身份標志號</p><p>  long account;//帳號</p><p>  double amount;//操作金額</p><p>  ::EnumAction action;//操作類型,根據(jù)定義,共有三種可能</p><p>  double balance;//現(xiàn)有余額</p><p>

101、  ::EnumStatus status;//操作執(zhí)行狀態(tài)</p><p><b>  };</b></p><p>  interface Server {//定義ATM機服務接口</p><p>  exception NoServer {</p><p>  string message;</p>

102、<p><b>  };</b></p><p>  ::xaction HandleTransaction(//定義交易處理函數(shù),返回類型位交易結構體</p><p>  inout ::xaction Transaction//參數(shù)為交易結構體,方向屬性為inout</p><p><b>  ); </b>

103、</p><p>  long Balance();//返回帳戶余額</p><p><b>  };</b></p><p>  2)banking.idl,這是在ATM服務器端與銀行服務器端進行數(shù)據(jù)通信的接口。這個接口文件主要用來抽象表達“銀行”。當然,這里只關心銀行中與ATM機相關的服務。接口定義文件及其說明:</p>&l

104、t;p>  #include "xaction.idl"//引用xaction.idl中定義的內(nèi)容</p><p>  interface BankServer {//銀行中與ATM機相關的服務接口</p><p>  ::xaction HandleTransaction(//定義交易處理函數(shù),返回類型為交易結構體</p><p>  i

105、nout ::xaction Transaction//參數(shù)為交易結構體,方向屬性為inout</p><p><b>  );</b></p><p>  long BankID();//返回所在銀行ID</p><p><b>  };</b></p><p>  module Bank {//

106、銀行模塊</p><p>  interface Account {//定義Account接口</p><p>  float balance();</p><p><b>  };</b></p><p>  interface AccountManager {//定義AccountManager接口</p>

107、;<p>  ::Bank::Account open(</p><p>  in string name</p><p><b>  );</b></p><p><b>  };</b></p><p><b>  };</b></p><

108、p>  在編譯了IDL文件后,會在客戶端和服務器端分別生成存根文件。如圖4.1所示??蛻舳薎DL存根(Client IDL Stubs)為對象服務器提供靜態(tài)的接口。這些預編譯的存根定義了客戶如何調(diào)用服務器上的相應服務。從客戶的角度來看,存根像是一個本地調(diào)用,它是一個遠程服務器對象的本地代理。服務由IDL定義,而客戶和服務器的存根都由IDL編譯器生成。對于它所使用的服務器上的每一個接口,客戶都必須有一個IDL存根。服務器IDL存根(

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論