国产在线导航,欧美日本中文,黄色在线观看网站永久免费乱码,chinese国产在线视频,亚洲欧洲第一视频,天天做人人爱夜夜爽2020毛片,亚洲欧美中文字幕在线网站

現在位置:范文先生網>理工論文>計算機信息技術>分布式網絡系統(tǒng)中的數據訪問設計與優(yōu)化

分布式網絡系統(tǒng)中的數據訪問設計與優(yōu)化

時間:2023-02-21 00:10:51 計算機信息技術 我要投稿
  • 相關推薦

分布式網絡系統(tǒng)中的數據訪問設計與優(yōu)化

分布式網絡系統(tǒng)中的數據訪問設計與優(yōu)化*

張均東,任  光,陳 

(大連海事大學 輪機工程學院,遼寧大連  116026

 

  要:

在基于局域網的大型分布式仿真和控制系統(tǒng)中,包括數據庫服務器在內的各計算機之間的信息交互方案的設計是系統(tǒng)性能優(yōu)異的關鍵,尤其是在計算機數量較多或待交互的單位時間信息量較大時更為重要。計算機間的信息交互涉及各機間的共享數據的讀取、存貯和更新等方面的內容,需采取有效的系統(tǒng)規(guī)劃、實時通訊和快速數據庫訪問等手段解決。本文全面論述了有關內容,給出了有效的解決方案。

關鍵詞:網絡系統(tǒng)、 信息交互、優(yōu)化設計

前言

隨著計算機和網絡技術的不斷提高,使用基于局域網的,分布式的計算機系統(tǒng)對大型、綜合或復雜的工業(yè)過程和運行環(huán)境進行系統(tǒng)仿真與運行模擬以及控制已越來越普遍。由于這樣的仿真與控制系統(tǒng)一般規(guī)模龐大或過程復雜,單獨一臺計算機無法完成整個系統(tǒng)任務,需要多機參與,構成計算機網絡,通過網上信息交互共同協調完成整個仿真與控制任務。各機之間信息交互的方式、頻率和數量決定了整個網絡系統(tǒng)的綜合性能。由于在這樣的系統(tǒng)中,機間的信息交互一般都非常頻繁,各機都要面臨數據更新、系統(tǒng)運行、結果存貯等過程的快速性問題,因此有關的設計是非常重要和關鍵的。

系統(tǒng)規(guī)劃與設計

無論是仿真還是控制系統(tǒng),合理的系統(tǒng)和數據規(guī)劃至關重要。通過系統(tǒng)和數據規(guī)劃可以優(yōu)化系統(tǒng)設計,解決各機任務均衡,資源充分利用等問題,在兼顧可靠性、安全性和故障可診斷性的同時充分發(fā)揮系統(tǒng)的整體效率和性能,并容許具有一定的可擴展性。

目前有許多分布式仿真和控制系統(tǒng)采用以數據庫為中心的設計方案。在這種設計方案中,網上的交互信息通過數據庫來進行,首先由產生交互信息的機器存入數據庫,然后由需要該交互信息的機器從數據庫中讀出來完成一個信息交互或更新過程。由于該信息交互通過一個中間環(huán)節(jié)即數據庫來進行,因此在網上的計算機數量較多或程序要求的數據更新較多較快時,易造成數據沖突和網絡堵塞,極易導致系統(tǒng)運行遲緩或死機,成為整個系統(tǒng)性能的瓶頸。

當然以數據庫為中心的分布式仿真和控制系統(tǒng)也有其優(yōu)點,其編程思路比較簡單清晰,容易被人理解和掌握。對于網上信息交互量不多的系統(tǒng),可以采用以數據庫為中心的系統(tǒng),同時可以通過數據規(guī)劃合理地分配各計算機的任務,使用一些編程技術來降低網上的信息流量,提高系統(tǒng)的性能。例如在程序中應盡量使用全局變量創(chuàng)建公用數據庫連接,避免每次不必要的數據連接重建時間。

如果系統(tǒng)較大、網上信息交互量較多或對系統(tǒng)實時性和可擴展性要求較高時,應采用實時網絡數據通訊的設計方案。在以數據庫為中心的系統(tǒng)設計方案中,由于數據的變化首先要存入數據庫,然后被其它程序訪問才能刷新,經歷了數據庫存取這一中間環(huán)節(jié)。如果網上有多個應用程序都需要知道該數據的變化,則都必須通過數據庫訪問才能更新。這樣就浪費了許多網絡資源,容量造成瓶頸。在采用實時網絡數據通訊的設計方案中,通過網絡實時通訊來解決網上各機器間的數據交互與刷新問題,其中對于多臺機器都需要的數據變化通過網絡廣播的方式,以定時和數據變化實時觸發(fā)傳送的機制向所需機器通知該數據已發(fā)生變化和具體的數值;對于只存在兩臺機器之間的信息交互可采用點對點的方式進行通訊。通訊的數據格式和組織可以自行定義。因此,與以數據庫為中心的方案相比,該設計方案減少了因數據刷新所需的多次訪問問題,大大減少了數據流量,同時網絡傳輸還可以增加數據正確性和合法性校驗,為操作者或系統(tǒng)管理員及時提供系統(tǒng)信息和出錯信息,便于系統(tǒng)故障診斷和系統(tǒng)調試。

如果把各子系統(tǒng)初始化數據都保存在服務器的數據庫中,則各機一起啟動時,由于都需要建立數據庫鏈接,讀取其中的初始化數據,容易造成起動時間過長的現象。為此,對于不必要存于服務器的數據可存于本地數據庫中,本地數據庫可采用ACCESS數據庫。對于一般不變的系統(tǒng)初始化數據也可以備存到本地數據庫中,供日常程序起動時使用。如果系統(tǒng)的初始化數據進行了更新,可以編制一段程序,根據數據庫服務器的數據庫版本號來更新本地數據庫。無論何種方案,數據庫的訪問總是不能避免的,如何提高數據庫的訪問速度非常值得研究。

提高數據庫訪問速度(SQL數據庫為例)

客戶機程序一般采用VC++,VB

,PowerBuilder,Delphi等支持訪問數據庫的集成開發(fā)環(huán)境進行開發(fā)。在編寫客戶端程序時,一般通過ODBC(Open Database Connectibvity) APIRDO(Remote Data Objects) [5],ADO(ActiveX Data Objects) [5]訪問數據庫,查詢或修改數據庫中的數據。其中ODBC API是被人們廣泛接受的用于數據庫訪問的應用程序編程接口。具有訪問數據庫速度快效率高,但編程復雜的特點;遠程數據對象(RDO)ODBC API函數進行了封裝,為編程人員提供了一個訪問遠程數據庫的高級接口,在程序中通過該對象可輕松對數據庫進行遠程訪問。組件對象(ADO)不僅繼承而且發(fā)展了RDO,它不但具有訪問遠程數據庫的能力,而且還具有訪問其它數據提供者(不一定是數據庫,可能是其他文件或其他應用程序所提供的數據)的能力。在VB中可很方便的使用RDO

ADO
來訪問數據庫,但訪問數據庫效率不高,速度較慢,靈活性也差。為了滿足系統(tǒng)的要求經常需要提高訪問數據庫的速度,具體方法有:

3.1  使用ODBC API函數

由于ODBC API函數的入口參數表中有些參數需要傳遞指針,而VB不支持指針,因此在VB中調用ODBC API函數會有一定的限制。另外,VB的字符串內存存儲格式與C語言不同,而ODBC API函數是用C語言開發(fā)的,這也限制了VBODBC API

函數之間的數據交換。為此需要開發(fā)一個動態(tài)鏈接庫(Dynamic Link Library - DLL),編制二個API函數分別以獲取參數指針和支持數據交換,從而實現在該動態(tài)鏈接庫的支持下,在VB中直接調用ODBC API函數的目的。

可以使用VC++6.0開發(fā)動態(tài)鏈接庫。VC++6.0可開發(fā)三種類型的動態(tài)鏈接庫:Win32 DLL、常規(guī) MFC DLL、擴展 MFC DLL。其中Win32 DLL、常規(guī) MFC DLL可被任意Win32編程環(huán)境(包括Visual Basic 6.0

)加載使用。常規(guī) MFC DLL在發(fā)行時必須附帶MFC42.DLL庫,而Win32 DLL可單獨發(fā)行[3]。如果只提供給VB編程環(huán)境使用,可建立Win32 DLL即可。

具體的開發(fā)步驟為:利用VC++6.0編程環(huán)境的AppWizard創(chuàng)建一個簡單Win32 DLL工程,工程名為SQLAPI,在此基礎上加入自己的代碼。代碼如下:

#include "stdafx.h"

#define DLLEXPORT

  extern "C" __declspec( dllexport) //定義導出宏

BOOL APIENTRY DllMain(HANDLE hModule,DWORD ul_reason_for_call,LPVOID lpReserved)

{  return TRUE;         }

DLLEXPORT long __stdcall GetAddress(void * Address) //按地址傳送

{  return (long) Address;       }//將地址強制轉換為長整形

DLLEXPORT long __stdcall strCopyToByte (char * BytesAddress,char * strAddress)

{  return (long) strcpy(BytesAddress, strAddress); }//

將字符串傳送到指定地址

經編譯鏈接生成SQLAPI.DLL動態(tài)鏈接庫,將其拷貝到C:\WINDOWS\SYSTEM(對于Windows C:\WINNT\SYSTEM32(對于Windows NT 2000)目錄下,這樣就可在VB中調用這兩個API函數實現對ODBC API的調用。ODBC調用的一般流程為:

1連接至數據源:分配環(huán)境句柄、設置環(huán)境屬性、分配聯接句柄、聯接數據源和設置聯接屬性。

2初始化應用程序:分配語句句柄、設置語句屬性,必要時進行數據綁定。

3建立和執(zhí)行SQL語句:a) 建立SQL語句,或使用硬編碼的SQL語句。b) 如果SQL語句含有參數,將每個參數綁定至應用程序變量。c) SQLExecDirect執(zhí)行該語句。如果語句要多次執(zhí)行,則進行語句準備,并用SQLExecute來執(zhí)行。

使用API函數可以加快數據庫的訪問,提高效率,另外也要注意SQL語句的語法優(yōu)化。對于巨表和多表訪問,SQL

【分布式網絡系統(tǒng)中的數據訪問設計與優(yōu)化】相關文章:

生活中的數據教學設計08-16

GIS訪問網絡數據庫中若干技術問題的探討08-06

ASP技術訪問WEB數據庫08-06

ASP技術訪問WEB數據庫08-06

基于ASP的Web數據庫訪問08-06

基于PHP的Web數據庫訪問08-06

ASP技術訪問WEB數據庫 208-06

ASP技術訪問Web數據庫的應用08-06

VB訪問數據庫的方法及接口的比較08-06