freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于corba的電子商務(wù)系統(tǒng)畢業(yè)論文-資料下載頁

2025-02-26 09:20本頁面

【導(dǎo)讀】成果均已在參考文獻(xiàn)或注釋中列出。論文(設(shè)計(jì))主體均由本人獨(dú)立完。成,沒有抄襲、剽竊他人已經(jīng)發(fā)表或未發(fā)表的研究成果行為?,F(xiàn)以上違反知識(shí)產(chǎn)權(quán)的情況,本人愿意承擔(dān)相應(yīng)的責(zé)任。交易活動(dòng)、金融活動(dòng)和相關(guān)的綜合服務(wù)活動(dòng)。當(dāng)今Inter的爆發(fā)增長(zhǎng),使得通過為一。中互相不信任的用戶。公共對(duì)象請(qǐng)求代理體系結(jié)構(gòu))便應(yīng)運(yùn)而生,且成為其最適合的技術(shù)。用程序體系規(guī)范。也就是說CORBA就是為了實(shí)現(xiàn)分布式計(jì)算而引入的。這樣可以使得電子商務(wù)系統(tǒng)更加安全可靠、更加易于升。CORBA的銀行ATM系統(tǒng),這便是本文的大概流程。

  

【正文】 ude //引用 中定義的內(nèi)容 interface BankServer {//銀行中與 ATM機(jī)相關(guān)的服務(wù)接口 ::xaction HandleTransaction(//定義交易處理函數(shù),返回類型為交易結(jié)構(gòu)體 inout ::xaction Transaction//參數(shù)為交易結(jié)構(gòu)體,方向?qū)傩詾?inout )。 long BankID()。//返回所在銀行 ID }。 module Bank {//銀行模塊 interface Account {//定義 Account 接口 19 float balance()。 }。 interface AccountManager {//定義 AccountManager 接口 ::Bank::Account open( in string name )。 }。 }。 在編譯了 IDL 文件后,會(huì)在客戶端和服務(wù)器端分別生成存根文件。如圖 所示。 客戶端 IDL 存根 (Client IDL Stubs)為對(duì)象服務(wù)器提供靜態(tài)的接口。這些預(yù)編譯的存根定義了客戶如何調(diào)用服務(wù)器上的相應(yīng)服務(wù)。從客戶的角度來看,存根像是一個(gè)本地調(diào)用,它是一個(gè)遠(yuǎn)程服務(wù)器對(duì)象的本地代理。服務(wù)由 IDL 定義,而客戶和服務(wù)器的存根都由 IDL編譯器生成。對(duì)于它所使用的服務(wù)器上的每一個(gè)接口,客戶都必須有一個(gè) IDL 存根。服務(wù)器 IDL 存根 (Sekleton,OMG 稱其為 接口 框架 )為每一個(gè) 服務(wù)區(qū)輸出的服務(wù)提供靜態(tài)接口 ,由 IDL 編譯器創(chuàng)建。 存根和框架提供了允許 CORBA 應(yīng)用程序套接解析( Marshaling)界面調(diào)用的機(jī)制。 Marshaling 可以從兩方面來理解: a),取服務(wù)器進(jìn)程中的一個(gè)對(duì)象實(shí)例使之對(duì)客戶進(jìn)程代碼可用。 b),傳遞界面調(diào)用的參數(shù),即將客戶傳來的參數(shù)放進(jìn)遠(yuǎn)程對(duì)象進(jìn)程空間里。 當(dāng)客戶應(yīng)用調(diào)用 CORBA 對(duì)象的方法時(shí),它將參數(shù)壓進(jìn)棧中然后調(diào)用存根對(duì)象。存根將參數(shù)寫進(jìn) marshaling 緩沖區(qū),然后用一個(gè)結(jié)構(gòu) (strcuture)將調(diào)用改送給遠(yuǎn)程對(duì)象。服務(wù)器框架解開這個(gè)結(jié)構(gòu),將參數(shù)壓進(jìn) 棧,然后調(diào)用對(duì)象實(shí)現(xiàn)。簡(jiǎn)單點(diǎn)說,框架在自己的地址空間里重建客戶的調(diào)用。 圖 Stubamp。Skeleton ATM 服務(wù)器 基于 CORBA 的電子商務(wù)系統(tǒng) 20 ATM 服務(wù)器既是 ATM 接口的 CORBA 實(shí)現(xiàn),也是銀行接口的 COARBA 客戶。作為 ATM 接口的 CORBA 實(shí)現(xiàn),它應(yīng)該包括 ATM 接口框架 Skeleton 及 ATM 接口存根Stub;作為銀行接口的 CORBA 客戶,它應(yīng)該包括銀行接口存根 Stub.因此,我們?cè)诠こ探M atmdemo 中創(chuàng)建 ATM 服務(wù)器項(xiàng)目 AtmServer. bpr 時(shí),也需要加入兩個(gè)接口文件。 當(dāng)點(diǎn)擊“開啟服務(wù)”按鈕時(shí),系 統(tǒng)就開始初始化 ORB 和 BOA,然后就是等待客戶端傳來的請(qǐng)求,具體代碼如下: ?? void TForm2::StartServer() { try { orb = CORBA::ORB_init(argC, argV)。 boa = orbBOA_init(argC, argV)。//初始化 ORB 和 BOA if (obj) { Form2Memo1LinesAdd(**服務(wù)器已開啟 **)。 ServerNameEditText = CurrentServerName。 }else{ obj = new ATMServerImpl(ServerNameEdit())。//創(chuàng)建一個(gè)服務(wù)器對(duì)象理工大學(xué) )。 CurrentServerName = ServerNameEditText。 boaobj_is_ready(obj)。//輸出新創(chuàng)建的服務(wù)器對(duì)象 // 等待客戶端請(qǐng)求的到來 //適配器 BOA 對(duì)于 CORBA 對(duì)象的服務(wù)已經(jīng)開啟 } } catch(const CORBA::Exceptionamp。 e){ ShowMessage(exception caught)。}//獲取出錯(cuò)信息 } 另外, ATM 服務(wù)器端還具體一個(gè)分配銀行服務(wù)端的功能,就是說客戶在 ATM 機(jī) 21 上輸入信息后, ATM 服務(wù)器會(huì)把它自動(dòng)分配到客戶所存款的銀行,具體代碼如下: = invalid。 for (int i = 0。 i UserCount。 i++) { if( == CardHolders[i]UserID)//驗(yàn)證用戶 ID { if ( == CardHolders[i]PIN)]//驗(yàn)證用戶密碼 { = OK。 try { BankServer_varBankServer=BankServer::_bind((*Banks[CardHolders[i] Bank]).c_str())。//綁定銀行服務(wù)器 BankServerHandleTransaction(Transaction)。//把交易信息傳輸?shù)街付ǖ你y行 Form2Memo1LinesAdd(成功交易到 + *Banks[CardHolders[i]Bank])。//顯示服務(wù)信息 } catch(CORBA::Exception amp。e){ Form2Memo1LinesAdd(**銀行服務(wù)未成功 **)。//獲取出錯(cuò)信息 return Transaction。 } } } ATM 客戶程序 ATM 客戶程序是這個(gè)電子商務(wù)系統(tǒng)的一個(gè)重要組成部分。通過 ATM 客戶程序的界面,我們可以選擇需要使用的 ATM 機(jī),執(zhí)行有關(guān)的業(yè)務(wù),獲取 ATM 服務(wù)。 ATM 客戶程序通過 atmdemo 工程組中的 工程實(shí)現(xiàn)。 ATM 客戶程 序是一個(gè) ATM 機(jī) CORBA 對(duì)象的客戶,因此,僅僅需要使用有關(guān)接口存根即可。 用戶可以通過“用戶清單”按鈕獲得系統(tǒng)中有效用戶信息,通過“選擇 ATM 機(jī)“按鈕 ” 選取一臺(tái)指定的 ATM 機(jī)完成有關(guān)服務(wù);通過“用戶名稱”、“用戶密碼”、“交易額”編輯框輸入服務(wù)信息;通過“操作類型”、“帳戶類型”確定具體需要的 ATM基于 CORBA 的電子商務(wù)系統(tǒng) 22 服務(wù);通過“執(zhí)行”按鈕獲得有關(guān)的 ATM 服務(wù)。 當(dāng)用戶輸入帳戶信息時(shí),并點(diǎn)擊“確定”按鈕后,系統(tǒng)會(huì)生成一個(gè) CORBA 對(duì)象,并初始化 ORB,把這些信息傳送到綁定的服務(wù)器那端,具體代碼如下: ?? xaction_var X = new xaction。//創(chuàng)建一個(gè)新的傳輸對(duì)象 XUserID = InputUserID()。 //填充傳輸對(duì)象 try{ XPIN = InputPIN()。 }catch(Exception amp。e){ XPIN = 0。} Xamount = InputAmount()。 Xaction = InputActionType()。 Xaccount = InputAccountType()。 Xbalance = 。 Xstatus = inplete。 try{ CORBA::ORB_ptr orb = CORBA::ORB_init()。//初始化 ORB InputUpdateStatus(**ORB 初始化成功 .)。 Server_ptrATMServer= erver::_bind(ATMserverName().c_str())。 //綁定 ATM 服務(wù)器 InputUpdateStatus(**ATM 服務(wù)器連接成功 .)。 InputUpdateStatus(**ATM 已打開 .)。 ATMServerHandleTransaction(X)。//發(fā)送傳輸對(duì)象到 ATM 第一個(gè)銀行的 CORBA 實(shí)現(xiàn) 在工程中建立一個(gè) EXE 文件后,系統(tǒng)自動(dòng)生成的 .cpp 文件,其實(shí)是這個(gè)模塊的入口文件,里面除了引用接口定義文件外,基本上與常規(guī)的項(xiàng)目執(zhí)行文件保持一致。第一個(gè)銀行的入口文件 代碼如下所示: include pragma hdrstop USEFORM(, BankForm)。 WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) 23 { try { ApplicationInitialize()。//初始化模塊 ApplicationCreateForm(__classid(TBankForm), amp。BankForm)。//創(chuàng)建窗體 ApplicationRun()。//執(zhí)行模塊 } catch(Exception amp。exception) { ApplicationShowException(amp。exception)。//獲取出錯(cuò)信息 } return 0。 } 在 編譯 IDL 文件時(shí),接著便是對(duì) IDL 文件中接口的實(shí)現(xiàn),我們可以采用 CORBA對(duì)象實(shí)現(xiàn)向?qū)砗?jiǎn)化開發(fā)任務(wù)。例如在第一銀行中實(shí)現(xiàn) 中的 BankServer接口?!跋?qū)А睘槲覀儎?chuàng)建了一些必要的代碼。 首先在 頭文件中,有如下新添加的代碼: Class BankServerImpl:public_sk_BankServer { protected: public: BankServerImpl(const char*object_name=NULL)。 CORBA::Long BankID()。 Xaction HandleTransaction(xactionamp。Transaction)。 }。 而在窗口設(shè)計(jì)文件 文件中新添加的代碼為: pragma hdrstop include ?? BankServerImpl::BankServerImpl(const char*object_name)。 基于 CORBA 的電子商務(wù)系統(tǒng) 24 _sk_BankServer(object_name) { } CORBA::Long BankServerImpl::BankID() { } xaction BankServerImpl::HandleTransaction(xactionamp。Transaction) { } 其次,在 中另外還添加了“激活” ORB、 BOA 的代碼: include ?? //初始化 ORB 和 BOA CORBA::ORB_var orb=CORBA::ORB_init(_argc,_argv)。 CORBA::BOA_var boa=orbBOA_init(_argc,_argv)。 BankServerImpl bankServer_BankOne(“BankOne”)。 Boaobj_is_ready(amp。bankServer_BankOne)。 激活了 ORB 和 BOA 后,銀行就等待著從 ATM 服務(wù)器端傳來的服務(wù)請(qǐng)求,并進(jìn)行相應(yīng)的處理,然后再返回到 ATM 服務(wù)器端,最終顯示在 ATM 機(jī)上。 顯然對(duì)于本程序而言,編寫 CORBA 對(duì)象實(shí)現(xiàn)的主要任務(wù)是完成 中列出的函數(shù)框架。為了處理有關(guān)任務(wù),我們?cè)? 頭文件的 BankServerImpl 類中近一步引入了以下一些變量及函數(shù)聲明: private: long BankNumber。//銀行 ID int count。//交易數(shù)目 int UserCount。//用戶數(shù)目 struct_user{//用戶結(jié)構(gòu)體 long UserID。//用戶 ID double AccountChecking。//支票存額 double AccountSavings。//資金存額 25 }; _user Customers[3]。//預(yù)留的 3個(gè)用戶 public: void _fastcall UpCount(int=0)。//更新界面的函數(shù) 第二個(gè)銀行的 CORBA 實(shí)現(xiàn) 第二個(gè)銀行的 CORBA 實(shí)現(xiàn)與第一個(gè)銀行的 CORBA 實(shí)現(xiàn)幾乎一致,主要差別在于對(duì)象實(shí)例的名稱以及銀行客戶的不同。第二個(gè)銀行 CORBA 實(shí)現(xiàn)的工程名稱為,其余文件也是在第一銀行 CORBA 對(duì)象實(shí)現(xiàn)有關(guān)文件后加“ 2”形成,如 、 等。 執(zhí)行 ATM 電子商務(wù)系統(tǒng) 與所有 CORBA 程序一樣,編譯成功了程序,要運(yùn)行程序時(shí),需在局域網(wǎng)內(nèi)應(yīng)該至少運(yùn)行一個(gè) Smart Agent。整個(gè)局域網(wǎng)內(nèi)銀行最多可以有兩個(gè),第一銀行或第二銀行, AT M 機(jī)可以有無數(shù)多個(gè),分別屬于某個(gè)銀行。具體實(shí)現(xiàn)界面如圖 ,圖 ,圖,圖 ,圖 所示: ATM 服務(wù)器,在服務(wù)器名稱中顯示著當(dāng)前服務(wù)器的名稱,并且有連接次數(shù)的統(tǒng)計(jì)。所屬銀行有第一銀行和第二銀行,按“ ID”的話,就會(huì)顯示相應(yīng)銀行的 ID,在系統(tǒng)中,設(shè)置的第一銀行是 900,第二銀行 800。在 Memo1 欄中顯示系統(tǒng)的交易情況,“開啟服務(wù)”后, Memo1 顯示“開啟服務(wù)器”,交易成功后,還會(huì)顯示此筆交易是到哪個(gè)銀行的?!瓣P(guān)閉服務(wù)”后,就關(guān)閉了服務(wù)器。 圖 ATM服務(wù)器端 基于 CORBA 的電子商務(wù)系統(tǒng) 26 ATM 客戶端是面 向用戶的界面,輸入用戶名稱和密碼后,如果通過服務(wù)器驗(yàn)證,就能執(zhí)行客戶的交易指令了,包括查詢余額、取款、存款,帳戶類型還分為支票和現(xiàn)金,以便供不同客戶的不同需求。點(diǎn)擊確定后就執(zhí)行了交易。點(diǎn)擊服務(wù)器的話,是進(jìn)行服務(wù)期的選擇。另外為了答辯演示的方便,在此界面上添加了“用戶清單”,點(diǎn)擊后便會(huì)列出系統(tǒng)默認(rèn)的幾個(gè)用戶,及其相關(guān)信息。 圖 ATM客戶端 圖 服務(wù)器連接 兩個(gè)銀行服務(wù)器端界面一樣。包括交易次數(shù)的統(tǒng)計(jì),銀行狀態(tài)的顯示,和具體交易情況的提示。像圖 所示的就是,用戶 ID 為 5 的用戶,對(duì)帳 戶類型 1(現(xiàn)金)執(zhí)行了操作類型 0(查詢余額)的操作。另外,因?yàn)殂y行都有固定的上下班時(shí)間,所以此界面上還設(shè)置了一個(gè)“開始上班”鍵,只有點(diǎn)擊此鍵后,銀行才開始上班。 27 圖 第二銀行 圖 第一銀行 基于 CORBA 的電子商務(wù)系統(tǒng) 28 5 結(jié)束語 電子商務(wù)的環(huán)境作為一個(gè)極端異構(gòu)、真正分布的環(huán)境,人們已經(jīng)越來越認(rèn)識(shí)到將CORBA 應(yīng)用到電子商務(wù)的環(huán)境中去的必要性。一方面基于 CORBA 的電子商務(wù)應(yīng)用系統(tǒng)能夠很好地利用 CORBA 所提供的分布式體系的優(yōu)點(diǎn),實(shí)現(xiàn)傳統(tǒng)客 C/S 模式下無法完成的復(fù)雜、大型的分布式電子商務(wù)的應(yīng)用;另一方面, CGI、 Applet 等技術(shù)又為基于 CORBA 的電子商務(wù)應(yīng)用提供了豐富的資源。 因此,如何更好地將 CORBA 應(yīng)用到現(xiàn)實(shí)的電子商務(wù)環(huán)境中去.將會(huì)成為各個(gè)電子商務(wù)服務(wù)商競(jìng)爭(zhēng)的目標(biāo)。 然而 實(shí)際上, CORBA 還是經(jīng)常被認(rèn)為是一項(xiàng)不成熟的技術(shù),尤其是 CORBA 沒有實(shí)現(xiàn)許多服務(wù),例如安全性服務(wù)。除了與不成熟的 ORB 實(shí)現(xiàn)相關(guān)的問題外,軟件開發(fā)者也往往沒有完全訓(xùn)練到可以熟練編寫基于 CORBA 的組件的地步。就本地程序來說,基于 CORBA 的應(yīng)用程序開發(fā)幾乎與普通的應(yīng)用程序開發(fā)相同,因此并沒有真正造成問題,但是例如實(shí)現(xiàn)一個(gè)透明的提供了 ORB 層安全性的安全性服務(wù)就需要專業(yè)知識(shí)。 于是,為了更好地應(yīng)用于電子商務(wù)新系統(tǒng),對(duì) CORBA 的研究還是得不斷的突破、進(jìn)取中 。 但不管怎那么說,有一點(diǎn)還是很明確 , 在將來的電子商務(wù)中或許將 沒別的什么 技術(shù) (例如 Java RMI和 COM+ ) 能夠 代替 CORBA, CORBA的基本概念也將成為任何電子商務(wù)中 心 件的核心需求。如果 CORBA如許多人推測(cè),變成了電子商務(wù)的新的 Inter標(biāo)準(zhǔn)的話,提供基于 CORBA的商業(yè)街和服務(wù)越快的商務(wù),獲益 也將 越多。 總之,提供了豐富的分布式對(duì)象基礎(chǔ)構(gòu)造的
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1