999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

RDS遠(yuǎn)程數(shù)據(jù)訪問技術(shù)研究

2008-04-12 00:00:00王瑩娜宋劍波向小梅
現(xiàn)代電子技術(shù) 2008年20期

摘 要:基于網(wǎng)絡(luò)的計(jì)量測試系統(tǒng)需要解決的問題之一就是遠(yuǎn)程數(shù)據(jù)訪問。對ADO的RDS的對象模型和編程模型進(jìn)行研究,闡述RDS的功能和特點(diǎn),研究RDS數(shù)據(jù)訪問技術(shù)的具體實(shí)現(xiàn)方法,分析RDS的安全性并提出相應(yīng)的解決方案。作為一種先進(jìn)的數(shù)據(jù)訪問技術(shù),RDS能為計(jì)量測試系統(tǒng)遠(yuǎn)程數(shù)據(jù)訪問提供有力的技術(shù)基礎(chǔ)。

關(guān)鍵詞:ADO;RDS;三層應(yīng)用程序模型;計(jì)量測試系統(tǒng)

中圖分類號:TP274文獻(xiàn)標(biāo)識碼:A文章編號:1004373X(2008)2008903

Research on the Technique of Remote Data Access Based on RDS

WANG Yingna1,SONG Jianbo2,XIANG Xiaomei2

(1.Navy 704 Factory,Qingdao,266109,China;2.PLA 91635 Unit,Beijing,102249,China;

3.93 Element,PLA 91388 Unit,Zhanjiang,524022,China)

Abstract:Building a measurement and test system to run on a network,one of the problems needing to solve is remote data access.The object model and programming model of RDS,the function and characteristics of RDS ,and the technology of remote data access based on RDS is described in this paper.After analyzing the security of RDS,a solution for insuring the security is put forward as a basic technique for the remote data access.As an advanced technology of remote data access,RDS can provide powerful technologic support for the remote data access in the measurement and test system.

Keywords:ADO;RDS;three-tier-application model;measurement and test system

1 引 言

隨著網(wǎng)絡(luò)的普及應(yīng)用,計(jì)量測試業(yè)務(wù)中已逐漸將遠(yuǎn)程數(shù)據(jù)訪問技術(shù)應(yīng)用到測量系統(tǒng)中。使用Microsoft ActiveX Data Objects (ADO)通過 OLE DB 提供者對在數(shù)據(jù)庫服務(wù)器中的數(shù)據(jù)進(jìn)行訪問和操作。其主要優(yōu)點(diǎn)是易于使用、高速、內(nèi)存消耗低和占用磁盤空間較少。ADO 支持基于客戶端/服務(wù)器和瀏覽器/服務(wù)器模型的應(yīng)用。

RDS是ADO的組件,它提供快速且高效的數(shù)據(jù)連接,并為基于IE瀏覽器的應(yīng)用程序提供數(shù)據(jù)發(fā)布框架。它采用C/S架構(gòu)和分布式技術(shù),使用HTTP,HTTPS和DOCM應(yīng)用協(xié)議。通過 RDS 可以實(shí)現(xiàn)將數(shù)據(jù)從服務(wù)器移動到客戶端應(yīng)用程序或Web 頁、在客戶端對數(shù)據(jù)進(jìn)行處理然后將更新結(jié)果返回服務(wù)器的操作。RDS改善了客戶端性能和靈活性。

2 三層應(yīng)用程序模型

遠(yuǎn)程數(shù)據(jù)服務(wù)技術(shù)建立在3層應(yīng)用程序模型基礎(chǔ)上。該模型包括客戶端層、中間層和數(shù)據(jù)源層。

客戶端層 運(yùn)行Web 瀏覽器或單獨(dú)編譯的前端應(yīng)用程序。Web 瀏覽器顯示的Web 頁面可以顯示并處理來自遠(yuǎn)程數(shù)據(jù)源的數(shù)據(jù)?;蛘哂汕岸藨?yīng)用程序顯示并處理來自遠(yuǎn)程數(shù)據(jù)源的數(shù)據(jù)。

中間層 運(yùn)行封裝了組織業(yè)務(wù)規(guī)則的組件。中間層組件可以是在 Internet Information Server 上執(zhí)行的 Active Server Pages 腳本,或者是單獨(dú)編譯的可執(zhí)行文件。

數(shù)據(jù)源層 運(yùn)行數(shù)據(jù)庫管理系統(tǒng) (DBMS),該管理系統(tǒng)可以是 Microsoft SQL Server 數(shù)據(jù)庫或者其他的SQL數(shù)據(jù)庫。

這些層不必對應(yīng)網(wǎng)絡(luò)上的物理位置。所有三層可只存在于2臺計(jì)算機(jī)上。一臺計(jì)算機(jī)運(yùn)行Web瀏覽器,另一臺計(jì)算機(jī)運(yùn)行 Internet Information Server 和 Microsoft SQL Server;或者,一臺計(jì)算機(jī)運(yùn)行前端應(yīng)用程序,另一臺計(jì)算機(jī)運(yùn)行中間層組件和 Microsoft SQL Server。

3 RDS對象模型

RDS對象模型包括3個主要的對象: RDS Server.Data Factory,RDS.DataSpace,RDS.Data Control。如圖1所示。

3.1 服務(wù)器端對象RDSServer.Data Factory

RDSServer.DataFactory對數(shù)據(jù)源執(zhí)行 SQL 查詢并返回 Recordset 對象,或從客戶端獲得 Recordset 對象并更新數(shù)據(jù)源。RDS.DataFactory 不進(jìn)行任何驗(yàn)證,也沒有建立業(yè)務(wù)規(guī)則。如果需要具備驗(yàn)證和業(yè)務(wù)規(guī)則功能,則必須創(chuàng)建自定義業(yè)務(wù)對象來取代RDS.DataFactory對象。Visual Basic 6.0 企業(yè)版是創(chuàng)建自定義業(yè)務(wù)對象(ActiveX DLL)的一個很好用的工具。創(chuàng)建ActiveX DLL后,必須在服務(wù)器上注冊,還必須在中間服務(wù)器上添加 DLL 的 PROGID 到系統(tǒng)注冊表入口中給予 DLL 啟動的權(quán)限:

[HKEY_LOCAL_MACHIN\\SYSTEM\\Current ControlSet\\Services\\W3SVC\\Parameters\\ADC Launch]

3.2 客戶端對象RDS.DataSpace和RDS.DataControl

RDS.DataSpace 是一個非可視的客戶端對象。它允許用 RDS 通過 HTTP,HTTPS 或 DCOM 創(chuàng)建一個位于遠(yuǎn)程服務(wù)器上的業(yè)務(wù)對象實(shí)例。RDS.DataSpace 為業(yè)務(wù)對象創(chuàng)建一個客戶端代理。客戶端代理幫助在不同的機(jī)器之間壓縮、傳送 (組織)和解壓縮ADO記錄集。

DataSpace對象負(fù)責(zé)與服務(wù)器進(jìn)行通信,同時也是數(shù)據(jù)傳輸?shù)耐ǖ?。DataSpace對象由客戶端腳本語言或用HTML語言中的<OBJECT>標(biāo)記創(chuàng)建。使用RDS.DataSpace的Create Object方法,可以在遠(yuǎn)程服務(wù)器上創(chuàng)建一個 RDS.DataFactory 實(shí)例。RDS.Data Space對象與RDS Server.Data Factory協(xié)同工作。RDS.Data Factory執(zhí)行查詢并返回ADO記錄集。RDS.Data Space 將ADO記錄集下載到客戶端,重建記錄集,并設(shè)置RDS.Data Control的Source Recordset到重建的記錄集。

RDS.DataControl數(shù)據(jù)控件負(fù)責(zé)數(shù)據(jù)的存儲及管理。它與HTML元素綁定在一起才能顯示數(shù)據(jù)。數(shù)據(jù)控件為HTML元素提供數(shù)據(jù),由HTML元素將數(shù)據(jù)顯示在Internet Explorer 的 Web 頁上。

綁定數(shù)據(jù)控件與HTML元素,需要設(shè)置HTML元素2個屬性DATASRC和DATAFLD。DATASRC,確定包含數(shù)據(jù)的數(shù)據(jù)控件。在數(shù)據(jù)源名稱前總是要加一個“#”。DATAFLD,確定綁定數(shù)據(jù)控件中的哪個字段。這些字段是數(shù)據(jù)控件管理的數(shù)據(jù)中的列名。對于一個數(shù)據(jù)庫,就是表中的列名。

RDS.DataControl 對象也有其自己的方法用于定位、排序和篩選記錄。這些方法與ADO Recordset 對象的方法相似。

3.3 RDS事件

RDS支持2個獨(dú)立于ADO事件模型的自身事件:onReadyStateChange,onError。

在RDS.DataControl 的ReadyState 屬性更改時調(diào)用onReadyStateChange事件,以此對異步操作的完成、結(jié)束或出現(xiàn)錯誤等發(fā)出通知。

當(dāng)發(fā)生錯誤時,包括在異步操作執(zhí)行的過程中發(fā)生錯誤時,調(diào)用onError事件。

4 RDS編程模型

RDS通過 Internet Information Server訪問和更新數(shù)據(jù)源。編程模型則指定為完成這個目的所必需的活動序列。

RDS實(shí)現(xiàn)三層應(yīng)用程序環(huán)境中的數(shù)據(jù)遠(yuǎn)程訪問:客戶端應(yīng)用程序指定將在服務(wù)器上執(zhí)行的程序,并指定用來返回相應(yīng)信息的參數(shù)。服務(wù)器上被調(diào)用的程序訪問指定的數(shù)據(jù)源、檢索信息、對數(shù)據(jù)進(jìn)行相應(yīng)處理,然后將結(jié)果信息返回給客戶端應(yīng)用程序。

RDS 按照以下編程模型工作:

(1) 創(chuàng)建DataSpace對象,并指定服務(wù)器上運(yùn)行的程序(DataFactory或自定義業(yè)務(wù)對象)。

(2) 將參數(shù)傳送到服務(wù)器程序并調(diào)用服務(wù)器程序(DataFactory或自定義業(yè)務(wù)對象)。服務(wù)器程序通過ADO 訪問數(shù)據(jù)源。

(3) 服務(wù)器程序從數(shù)據(jù)源獲得Recordset 對象。DataFactory可以對Recordset 對象進(jìn)行處理。

(4) 服務(wù)器程序與DataSpace對象協(xié)作將Recordset 對象返回客戶端DataControl對象。

(5) DataControl對象與HTML可視化控件綁定,Recordset 對象被轉(zhuǎn)換成為便于可視化控件使用的格式。

(6) 對客戶端Recordset對象所做的修改都將通過DataSpace對象返回給服務(wù)器程序DataFactory或自定義業(yè)務(wù)對象,服務(wù)器程序用這些修改后的記錄集更新數(shù)據(jù)源。

RDS運(yùn)行流程如圖2所示:

4.1 RDS對象的創(chuàng)建順序

先創(chuàng)建DataSpace對象:

<OBJECT ID=\"RDS1\" WIDTH=1 HEIGHT=1

CLASSID=\"CLSID:BD96C556-65A3-11D0-983A-00C04FC29E36\"> </OBJECT>

再由DataSpace對象創(chuàng)建DataFactory對象:

Set DF1 = DS1.CreateObject(\"RDSServer.DataFactory\",\"http://<%=Request.ServerVariables(\"SERVER_NAME\")%>\")

或者:

先創(chuàng)建DataControl對象(順序上與DataSpace和DataFactory沒有依賴關(guān)系):

<OBJECT CLASSID=\"clsid:BD96C556-65A3-11D0-983A-00C04FC29E33\" ID=\"DC1\">

<PARAM NAME=\"SQL\" VALUE=\"SELECT * FROM authors\">

<PARAM NAME=\"Connect\" VALUE=\"DSN=YourDSN\">

<PARAM NAME=\"Server\" VALUE=\"http://YourServer/\">

</OBJECT>

再由DataControl對象創(chuàng)建DataFactory對象:

Set DF1 = DC1.CreateObject(\"RDSServer.DataFactory\",\"http:// <%=Request.ServerVariables(\"SERVER_NAME\")%>\")

使用RDSServer.DataFactory對象的Query方法獲得Recordset對象:

Dim RS as ADODB.Recordset

Set DF1 = DS1.CreateObject(\"RDSServer.DataFactory\",\"http://yourServer\")

Set RS = DF1.Query (\"DSN=pubs\",\"SELECT * FROM authors\")

4.2 Recordset對象的使用

Web 頁上的可視控件無法直接訪問Recordset對象。但可以通過 DataControl訪問Recordset對象。當(dāng) DataControl的SourceRecordset屬性設(shè)置為Recordset對象時,DataControl 便可被可視控件使用。將可視控件對象的DATASRC參數(shù)設(shè)置為 RDS.DataControl,并將 DATAFLD 屬性設(shè)置為 Recordset 對象字段。

DC1.SourceRecordset = RS

<DIV DATASRC=\"#DC1\" DATAFLD=\"au_fname\"></DIV>

<DIV DATASCR=\"#DC1\" DATAFLD=\"au_lname\"></DIV>

5 RDS的安全問題

在創(chuàng)建DataControl對象時,如果使用Connect和SQL屬性,連接服務(wù)器的名稱以及數(shù)據(jù)庫的相關(guān)細(xì)節(jié)就暴露出來,獲得DSN、用戶標(biāo)識符和密碼信息的外部用戶可以編寫將任何查詢發(fā)送到該數(shù)據(jù)源的頁面。安全的做法是使用URL屬性。這樣,用戶所見到的是一個ASP網(wǎng)頁的URL地址,沒有任何有關(guān)服務(wù)器和數(shù)據(jù)庫的詳細(xì)信息。

<OBJECT CLASSID=\"clsid:BD96C556-65A3-11D0-983A-00C04FC29E33\" ID=\"DC1\" > <PARAM NAME=\"URL\" VALUE=\"DataPage.asp\"> </OBJECT>

如果希望對數(shù)據(jù)源有更多的限制訪問,可以取消注冊并刪除 DataFactory對象 (msadcf.dll),用自定義業(yè)務(wù)對象取代DataFactory對象。

6 結(jié) 語

RDS采用基于SSL(Secure Sockets Layer)的HTTPS協(xié)議,將記錄集透明地緩存到客戶端,在客戶端處理數(shù)據(jù)后將修改的記錄集提交給服務(wù)器更新數(shù)據(jù)源。避免反復(fù)訪問服務(wù)器數(shù)據(jù),節(jié)約了服務(wù)器資源,使得開發(fā)以數(shù)據(jù)為中心的基于網(wǎng)絡(luò)的數(shù)據(jù)庫應(yīng)用程序更簡單,提高了遠(yuǎn)程數(shù)據(jù)訪問的安全水平,從而為計(jì)量測試業(yè)務(wù)中利用該技術(shù)進(jìn)行遠(yuǎn)程數(shù)據(jù)訪問提供了技術(shù)支持。

參考文獻(xiàn)

[1]John V Petersen.ADO Jumpstart for Microsoft Visual FoxPro Developers,1999.

[2]Kamaljit Bath.Using the Customization Handler Feature in RDS 2.1,1999.

[3]Kamaljit Bath.Remote Data Service in MDAC,1998.

[4]Rob Thayer.Visual Basic 6 揭秘\\.北京:電子工業(yè)出版社,1999.

[5]習(xí)勝豐.基于RDS與MTS的N層事務(wù)性Web數(shù)據(jù)庫應(yīng)用程序的構(gòu)造與實(shí)現(xiàn)[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2003(11):19-21.

[6]李寧,許林英.MTS資源管理深入分析及應(yīng)用[J].計(jì)算機(jī)應(yīng)用研究,2002,19(5):30-40,48.

[7]丁鵬,劉莉.C/S,B/S模式中的分布式計(jì)算與MTS解決方案[J].計(jì)算機(jī)應(yīng)用研究.2000,17(12):60-62.

[8]彭江平,謝勇.利用RDS實(shí)現(xiàn)瀏覽器環(huán)境下的批量數(shù)據(jù)修改[J].微型機(jī)與應(yīng)用,2000,19(6):55-58.

[9]劉福明,顧文涓,李莉,等.基于MTS的三層結(jié)構(gòu)的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用研究,2002,19(5):92-94.

[10]鄧亞玲,王新房,潘永湘,等.RDS在Web基信息管理系統(tǒng)開發(fā)中的應(yīng)用[J].計(jì)算機(jī)工程與應(yīng)用,2002,38(3):135-137.

[11]賴學(xué)成,張薇薇.基于B/S結(jié)構(gòu)的數(shù)據(jù)綁定技術(shù)及遠(yuǎn)程數(shù)據(jù)服務(wù)應(yīng)用的構(gòu)筑[J].計(jì)算機(jī)工程,2001,27(1):130-132.

[12]李革新,陳建新.基于Web數(shù)據(jù)庫的開發(fā)方案及其編程模型研究[J].計(jì)算機(jī)工程,2001,27(12):191-193.

作者簡介 王瑩娜 女,1972年出生,碩士研究生,海軍704廠工程師。

主站蜘蛛池模板: 国产色网站| 久久中文字幕2021精品| 亚洲免费黄色网| 国产午夜人做人免费视频| 精品欧美一区二区三区在线| 色135综合网| 青草视频在线观看国产| 日本午夜视频在线观看| 韩国福利一区| 国产亚洲精品97AA片在线播放| 亚洲成人播放| 欧美成人在线免费| 91无码人妻精品一区二区蜜桃| 91丝袜乱伦| 国产91全国探花系列在线播放 | 久久性妇女精品免费| 毛片网站在线看| 成人毛片在线播放| 久久免费视频播放| 亚洲性一区| 九九九精品视频| 国产免费福利网站| 六月婷婷综合| 中国成人在线视频| 亚洲无码免费黄色网址| 国产精品不卡永久免费| 国产免费羞羞视频| 日本三级黄在线观看| 四虎国产精品永久一区| 国产精品第| 日韩毛片在线播放| 91小视频在线| 色播五月婷婷| 亚洲av无码久久无遮挡| 国产成人久久综合一区| 久久精品91麻豆| 久久久噜噜噜久久中文字幕色伊伊 | 91久久精品国产| 2020极品精品国产| 婷婷亚洲天堂| 青草国产在线视频| 无码精品福利一区二区三区| 久草网视频在线| A级毛片高清免费视频就| 亚洲欧美在线看片AI| 91精品国产综合久久香蕉922| 亚洲综合香蕉| 国产精品页| 四虎成人在线视频| 亚洲精品无码人妻无码| 无码粉嫩虎白一线天在线观看| 欧美一道本| 久久大香伊蕉在人线观看热2| 国产久操视频| 99久久99视频| 亚洲欧美综合精品久久成人网| 亚洲精品成人7777在线观看| 亚洲欧美不卡视频| 国产精品第一区在线观看| 激情综合图区| 孕妇高潮太爽了在线观看免费| 亚洲天堂网2014| 在线观看国产黄色| 一级做a爰片久久毛片毛片| 乱码国产乱码精品精在线播放| 亚洲国产日韩在线观看| 9久久伊人精品综合| 91小视频在线| 中国特黄美女一级视频| 影音先锋亚洲无码| 97影院午夜在线观看视频| 欧美成人二区| 伊人精品视频免费在线| 久热精品免费| 91在线免费公开视频| 国产va在线| 亚洲精品欧美重口| 亚洲精品日产AⅤ| 毛片网站免费在线观看| 日韩一级毛一欧美一国产| 中文字幕伦视频| 777午夜精品电影免费看|