1.技術(shù)背景
1.1 B/S應(yīng)用模式介紹
當(dāng)Internet技術(shù)迅速發(fā)展時(shí),人們希望把應(yīng)用程序放到網(wǎng)絡(luò)上去執(zhí)行,即:將運(yùn)行在客戶機(jī)端的應(yīng)用軟件移植到服務(wù)器端,客戶機(jī)不再需要應(yīng)用程序,應(yīng)用軟件集中在服務(wù)器端,用戶通過(guò)瀏覽器來(lái)執(zhí)行應(yīng)用,這就是B/S模式。這種模式把Web技術(shù)和數(shù)據(jù)庫(kù)技術(shù)結(jié)合起來(lái),實(shí)現(xiàn)了開(kāi)發(fā)環(huán)境和應(yīng)用環(huán)境的分離,客戶端使用相對(duì)統(tǒng)一的瀏覽器代替客戶端軟件,B/S模式見(jiàn)圖1-1。
圖1-1 基于Web的客戶機(jī)/服務(wù)器應(yīng)用模式
1.2 ASP與ADO技術(shù)介紹
ASP即不是一種語(yǔ)言、也不是一種開(kāi)發(fā)工具,而是一種內(nèi)含于信息服務(wù)管理器中的易學(xué)易用、可以集成Script語(yǔ)言到HTML頁(yè)面的服務(wù)器端的腳本語(yǔ)言環(huán)境,其主要功能是為生成動(dòng)態(tài)的、交互式的Web服務(wù)器應(yīng)用程序提供一種功能強(qiáng)大的方式或技術(shù)。它是一種Web服務(wù)器端的技術(shù),它的所有命令和腳本均在服務(wù)器端解釋執(zhí)行、向數(shù)據(jù)庫(kù)發(fā)送SQL指令,執(zhí)行后再將結(jié)果以HTML格式傳送至客戶端的瀏覽器。
ActiveX數(shù)據(jù)對(duì)象(ADO)是一種易于使用的應(yīng)用程序接口(API),該接口將OLE DB封裝于以用于應(yīng)用程序的腳本語(yǔ)言中。編制動(dòng)態(tài)網(wǎng)頁(yè)時(shí),與數(shù)據(jù)庫(kù)連接用的就是ADO。
2.分廠網(wǎng)絡(luò)的建設(shè)
網(wǎng)絡(luò)的建設(shè)主要用到的硬件有服務(wù)器、客戶機(jī)、交換機(jī)、集線器、調(diào)制解調(diào)器、網(wǎng)卡、網(wǎng)線、廠內(nèi)電話線的等。分廠網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)見(jiàn)圖2-1。
圖2-1 分廠網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)圖
[說(shuō)明]上圖中分廠大樓內(nèi)的機(jī)器(如:設(shè)備科、技術(shù)科的機(jī)器)直接通過(guò)網(wǎng)線接入網(wǎng)絡(luò);離大樓較遠(yuǎn)的遠(yuǎn)程計(jì)算機(jī),如:運(yùn)一車間、運(yùn)二車間、運(yùn)三車間、分析儀表和廠內(nèi)的移動(dòng)用戶通過(guò)撥號(hào)接入網(wǎng)絡(luò)。
3.數(shù)據(jù)庫(kù)設(shè)計(jì)及實(shí)現(xiàn)
3.1表結(jié)構(gòu)及表間的關(guān)系
計(jì)控分廠儀表數(shù)據(jù)表,儀表數(shù)據(jù)變更記錄表與其他被參照表間的關(guān)系如圖3-1。在表間關(guān)系圖中,每一個(gè)表用一個(gè)矩形框表示,最上方是表名,下面是相應(yīng)的字段,字段旁有鑰匙圖標(biāo)的是本表的主鍵字段。各表之間的連線表示這兩個(gè)表有參照關(guān)系,連線的“鑰匙標(biāo)記”端指向被參照表的主鍵字段,連線的“多標(biāo)記”端指向參照表(主表)的外鍵字段,兩個(gè)表之間就是通過(guò)被參照表的主鍵字段和參照表的外鍵字段進(jìn)行聯(lián)系的,如:計(jì)控分廠儀表數(shù)據(jù)表與工藝單元表可以通過(guò)工藝單元字段進(jìn)行表連接。兩個(gè)表建立關(guān)系后,可以對(duì)INSERT和UPDATE操作強(qiáng)制關(guān)系,如:計(jì)控分廠儀表數(shù)據(jù)表INSERT或UPDATE一條記錄時(shí)它的工藝單元字段必須是工藝單元表的所有記錄中工藝單元字段中已經(jīng)存在的值,否則不能進(jìn)行這一操作。兩個(gè)表建立關(guān)系后,可以級(jí)聯(lián)更新相關(guān)字段,級(jí)聯(lián)刪除相關(guān)字段,即被參照表對(duì)記錄的主鍵字段進(jìn)行修改時(shí),參照表記錄的相應(yīng)外鍵字段自動(dòng)做相應(yīng)的修改;被參照表刪除記錄時(shí),參照表自動(dòng)刪除本表與之相關(guān)的記錄。表之間建立對(duì)應(yīng)關(guān)系,并選擇表間的強(qiáng)制關(guān)系,就不用再單獨(dú)編寫表間的觸發(fā)器,減少了代碼編寫的復(fù)雜性,有效地保證了數(shù)據(jù)的一致性和完整性。
圖3-1 表間關(guān)系
3.2數(shù)據(jù)的導(dǎo)入
在以往的工作中,儀表分廠已經(jīng)積累了大量的儀表數(shù)據(jù)信息,它們以文件的形式存儲(chǔ)在電腦中,主要有兩種格式:一種是ACCESS文件*.mdb,一種是EXCEL文件*.xls。為了集中管理數(shù)據(jù),降低維護(hù)成本,需要將原有的數(shù)據(jù)文件導(dǎo)入由SQLSERVER管理的數(shù)據(jù)庫(kù)中,并對(duì)數(shù)據(jù)進(jìn)行有效的整理,建立表之間的關(guān)系,保證數(shù)據(jù)的一致性和完整性,以便WEB頁(yè)面對(duì)數(shù)據(jù)信息進(jìn)行訪問(wèn)。下面是數(shù)據(jù)的導(dǎo)入方法:
在企業(yè)管理器的控制臺(tái)目錄下,找到shebei庫(kù),點(diǎn)擊右鍵,在出現(xiàn)的菜單中選擇“所有任務(wù)”,在級(jí)聯(lián)菜單中選擇“導(dǎo)入數(shù)據(jù)”,將出現(xiàn)DTS導(dǎo)入/導(dǎo)出向?qū)В凑障驅(qū)У奶崾具M(jìn)行數(shù)據(jù)的入。首先需要選擇數(shù)據(jù)源,如果導(dǎo)入的是EXCEL文件,則數(shù)據(jù)源選擇“Microsoft Excel 97
4.應(yīng)用軟件設(shè)計(jì)及實(shí)現(xiàn)
應(yīng)用系統(tǒng)需要實(shí)現(xiàn)數(shù)據(jù)的錄入、查詢、修改、刪除、數(shù)據(jù)的統(tǒng)計(jì)及報(bào)表的打印,以及數(shù)據(jù)的移動(dòng)等模塊,系統(tǒng)結(jié)構(gòu)見(jiàn)圖4-1。下面挑選兩個(gè)模塊介紹實(shí)現(xiàn)方法。
圖4-1 儀表設(shè)備管理系統(tǒng)結(jié)構(gòu)圖
4.1單表快速查詢模塊
對(duì)于數(shù)據(jù)量不是很大的基表(如:工藝單元表),進(jìn)行查詢時(shí)不需要輸入查詢條件。用戶點(diǎn)擊快速查詢模塊下拉菜單中對(duì)應(yīng)的表鏈接,便可顯示此表的所有記錄,見(jiàn)圖4-2。
圖4-2 單表查詢(工藝單元表)結(jié)果顯示畫面
在結(jié)果集界面中用戶可以利用上下移動(dòng)鍵查看記錄,程序設(shè)計(jì)為在每條記錄的主鍵字段內(nèi)容值上建立鏈接,點(diǎn)擊鏈接可以進(jìn)入這條記錄的編輯畫面,在編輯畫面可以對(duì)本條記錄進(jìn)行修改、刪除。
4.2報(bào)表及統(tǒng)計(jì)模塊
系統(tǒng)設(shè)計(jì)了多個(gè)報(bào)表統(tǒng)計(jì)內(nèi)容,下面僅以儀表月檢修計(jì)劃報(bào)表為例介紹。現(xiàn)場(chǎng)的每一塊儀表,都需要校驗(yàn),只是校驗(yàn)的周期不同。檢驗(yàn)周期有兩個(gè)月、三個(gè)月、一年、二年等不同時(shí)間,所以每個(gè)月都需要遍例儀表數(shù)據(jù)庫(kù),查詢出需要重新檢定的儀表進(jìn)行檢定,之后修改儀表數(shù)據(jù)庫(kù)的檢定日期字段。儀表數(shù)據(jù)庫(kù)的檢定周期字段是int數(shù)據(jù)類型,數(shù)據(jù)值為天數(shù),天數(shù)以每月為30天,每年為365天計(jì)算而得出。儀表數(shù)據(jù)庫(kù)的檢定日期字段是smalldatetime,是日期型數(shù)據(jù)類型。我們的需要是查出“檢定日期”加上“檢定周期”的天數(shù)值后所得的日期值超過(guò)了當(dāng)前系統(tǒng)日期值的記錄,即當(dāng)前日期與檢定日期的天數(shù)之差大于檢定周期值的記錄。當(dāng)前系統(tǒng)的日期值可以通過(guò)函數(shù)getdate()獲得,日期與日期的運(yùn)算由函數(shù)datediff(dy,檢定日期,getdate())完成,參數(shù)dy代表返回值為天數(shù),返回值為后兩個(gè)參數(shù)的天數(shù)之差。具體的SQL語(yǔ)句如下:
SELECT 儀表位號(hào),工藝單元,檢定人員,檢定日期,檢定周期,datediff(dy,檢定日期,getdate()) AS 超出時(shí)間
FROM 計(jì)控分廠儀表數(shù)據(jù)
WHERE datediff(dy,檢定日期,getdate())>檢定周期
經(jīng)過(guò)查詢,結(jié)果如圖4-3,給出了需要檢定的儀表位號(hào)及相關(guān)信息:
圖4-3需檢定儀表統(tǒng)計(jì)結(jié)果顯示
5.系統(tǒng)安全
本系統(tǒng)將在企業(yè)的內(nèi)部網(wǎng)絡(luò)上使用,不接入Internet 所以它的安全問(wèn)題主要是內(nèi)部的安全,利用完善的用戶安全控制機(jī)制可以最大程度保證儀表數(shù)據(jù)的安全。系統(tǒng)設(shè)置多重安全控制,從網(wǎng)絡(luò)訪問(wèn)、數(shù)據(jù)庫(kù)訪問(wèn)和應(yīng)用程序的訪問(wèn)設(shè)置三重密碼機(jī)制,對(duì)個(gè)人權(quán)限進(jìn)行詳細(xì)的劃分,保證系統(tǒng)的安全運(yùn)行。不同的用戶分配不同的權(quán)限,根據(jù)自己所擁有的權(quán)限對(duì)網(wǎng)上數(shù)據(jù)資源進(jìn)行訪問(wèn)。同時(shí),建立備份及恢復(fù)機(jī)制,在系統(tǒng)出現(xiàn)故障時(shí),及時(shí)對(duì)系統(tǒng)和數(shù)據(jù)庫(kù)進(jìn)行恢復(fù)。
6.結(jié)束語(yǔ)
目前,本系統(tǒng)已投入使用。本地人員可以直接查詢儀表數(shù)據(jù),遠(yuǎn)程用戶可以通過(guò)電話線登錄分廠網(wǎng)利用IE瀏覽器查看儀表相關(guān)數(shù)據(jù)。本系統(tǒng)的投運(yùn)提高了工作效率,減少了出錯(cuò)幾率。本系統(tǒng)是專為化工儀表數(shù)據(jù)管理設(shè)計(jì)開(kāi)發(fā)的網(wǎng)絡(luò)版應(yīng)用軟件,可以向其它石化企業(yè)推廣使用。