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