一、概述
1. 分布式應(yīng)用
隨著Internet技術(shù)的發(fā)展,應(yīng)用軟件開(kāi)發(fā)已經(jīng)從桌面應(yīng)用開(kāi)發(fā)轉(zhuǎn)向兩層、三層、多層應(yīng)用的開(kāi)發(fā),特別是電子商務(wù)的出現(xiàn),更促進(jìn)了基于Internet的多層分布式應(yīng)用開(kāi)發(fā)。分布式應(yīng)用程序至少由如下三層構(gòu)成:
表示層:實(shí)現(xiàn)與用戶的交互,調(diào)用商務(wù)層組件響應(yīng)用戶的請(qǐng)求。該層可由 HTML、DHTNL、ASP、Act iveX控件、WIN32應(yīng)用等來(lái)實(shí)現(xiàn)。
商務(wù)層:實(shí)現(xiàn)商務(wù)規(guī)則,滿足企業(yè)的商務(wù)需求,處理、分析商務(wù)數(shù)據(jù),獲得商務(wù)結(jié)果。
數(shù)據(jù)層:為商務(wù)層提供數(shù)據(jù)服務(wù),訪問(wèn)后臺(tái)數(shù)據(jù)庫(kù)如MS SQL SERVER 7、ORACE等。
2. 分布式組件對(duì)象模型DCOM
對(duì)于分布式應(yīng)用來(lái)說(shuō),上述三層邏輯上已經(jīng)完全分開(kāi),物理上可能分布在不同機(jī)器上、使用不同的操作系統(tǒng)、使用不同的網(wǎng)絡(luò)協(xié)議。但各層之間要實(shí)現(xiàn)相互通信。為此微軟提出了分布式組件對(duì)象模型(Distributed Compon ent Object Model簡(jiǎn)稱DCOM),在DCOM的支持下,各層之間通過(guò)組件(Component)實(shí)現(xiàn)相互通信從而構(gòu)成一個(gè)完整的分布式應(yīng)用,并且與機(jī)器的物理位置、操作系統(tǒng)、協(xié)議都無(wú)關(guān)。
3. 微軟事務(wù)服務(wù)器MTS
多層分布式應(yīng)用中的組件可能對(duì)數(shù)據(jù)庫(kù)的表、非數(shù)據(jù)庫(kù)的實(shí)體如消息隊(duì)列進(jìn)行操作,而這種組件卻可能被多個(gè)用戶調(diào)用,這樣就會(huì)出現(xiàn)多個(gè)操作并發(fā)的問(wèn)題,必須采取事務(wù)方法來(lái)管理所有操作,保證所有事務(wù)要么被全部成功地提交,要么全部回滾到事務(wù)初始狀態(tài)。為此,微軟實(shí)現(xiàn)了一個(gè)管理支持事務(wù)的組件的服務(wù)器:微軟事務(wù)服務(wù)器MTS(Microsoft Transaction Server)。客戶可以通過(guò)調(diào)用SetComplete和SetAbort函數(shù)實(shí)現(xiàn)提交與回滾。
二、商務(wù)組件
商務(wù)組件包含了一個(gè)企業(yè)的商務(wù)規(guī)則、邏輯。它能使企業(yè)為了盡快地滿足市場(chǎng)的變化而對(duì)商務(wù)規(guī)則、邏輯進(jìn)行調(diào)整,它主要處理前端客戶的請(qǐng)求。同時(shí)它也使得企業(yè)的商務(wù)規(guī)則不會(huì)暴露在用戶眼前,從而使應(yīng)用更安全。在設(shè)計(jì)商務(wù)組件時(shí),我們應(yīng)該注意如下幾點(diǎn):
1. 與數(shù)據(jù)組件的區(qū)分:數(shù)據(jù)組件主要用來(lái)管理、操縱后臺(tái)的數(shù)據(jù),并不直接響應(yīng)用戶的請(qǐng)求。
2. 組件的粒度即組件包含的功能:組件的粒度不宜過(guò)大,也不宜過(guò)小,因?yàn)榱6忍螅槐阌趹?yīng)用的更新。粒度太小,則應(yīng)用的組件太多,不便于管理與調(diào)用。
3. 是否支持事務(wù)控制MTS:如果支持MTS,組件必須是一個(gè)動(dòng)態(tài)連接庫(kù)而不能是一個(gè)可執(zhí)行文件。 商務(wù)組件可以使用很多語(yǔ)言開(kāi)發(fā),如Visual C++ 6.0、Visual Basic 6.0、 Visual J+ + 6.0 、Visual Foxpro 6.0等。下面我們來(lái)介紹一下怎樣用Visual Basic 6.0創(chuàng)建一個(gè)商務(wù)組件。
三、創(chuàng)建商務(wù)組件
下面以某一航空訂票系統(tǒng)為例,為大家介紹如何創(chuàng)建商務(wù)組件,步驟如下:
1. 啟動(dòng)Visual Basic6.0。
2.創(chuàng)建一個(gè)新項(xiàng)目,項(xiàng)目類型為ActiveX DLL。
3. 設(shè)置項(xiàng)目屬性,如項(xiàng)目名,線程模型等。設(shè)置完后,通過(guò)項(xiàng)目瀏覽器可看到。
4. 設(shè)置class1的屬性:Name、MTSTransactionMode。屬性設(shè)置后的界面。
5. 通過(guò)Add Procedure 對(duì)話框增加該類方法。
6. 實(shí)現(xiàn)類方法。
7. 引用Microsoft Transaction Server Type Library(mtxa s.dll)。
8. 保存項(xiàng)目并創(chuàng)建ActiveX DLL。
9. 測(cè)試、使用組件。
* 使用Visual Basic 6.0測(cè)試
在你的項(xiàng)目組加入一個(gè)標(biāo)準(zhǔn)EXE類型的新項(xiàng)目,實(shí)例化組件然后測(cè)試該組件。下列代碼是航空訂票系統(tǒng)中測(cè)試組件的RetriveHistory方法,該方法返回一個(gè)記錄集。
Dim objTest as new FrequentFlyer (也可以使用CreateObject 方法創(chuàng)建實(shí)例)
Dim rs as new Ado.Recordset
Set rs=objTest.RetriveHistory(CusterID)
* 使用ASP測(cè)試
啟動(dòng)Visual InterDev 6.0,使用ASP的Server對(duì)象創(chuàng)建組件實(shí)例,然后調(diào)用其方法。
Session("email") = Request.Form("email")
Session("Password") = Request.Form("Password")
set oCustomer = Server .CreateObject("ExplorationAi r .Customer")
set RS = oCustomer.Validate(Session("email"),Sessio n("Password"))
四、小結(jié)
本文給大家介紹了如何使用Visual Basic 6.0創(chuàng)建支持事務(wù)的商務(wù)組件,其實(shí)同時(shí)也為大家開(kāi)發(fā)分布式應(yīng)用特別是電子商務(wù)應(yīng)用提供了一個(gè)很好的解決方案。即:
1. 把應(yīng)用分為三層或多層;
2. 使用Visual C++ 6.0、Visual Basic 6.0、 Visual J++ 6. 0 、Visual Foxpro 6.0等語(yǔ)言創(chuàng)建支持MTS的組件,并測(cè)試;
3. 在Win32應(yīng)用中或基于ASP的Web應(yīng)用中使用組件、調(diào)用組件的方法。
|
溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!