劉永明,溫汝俊,陸 渝
(1.重慶市環(huán)境科學(xué)研究院,重慶401147;2.重慶市環(huán)境保護(hù)局,重慶401147;3.重慶工商大學(xué),重慶400067)
“空氣質(zhì)量日?qǐng)?bào)”對(duì)公眾發(fā)布是環(huán)境監(jiān)測(cè)工作的重要內(nèi)容之一[1],空氣質(zhì)量日?qǐng)?bào)主要依靠環(huán)境空氣質(zhì)量自動(dòng)監(jiān)測(cè)系統(tǒng)連續(xù)不斷地實(shí)時(shí)監(jiān)測(cè)數(shù)據(jù),并自動(dòng)傳輸?shù)街行目刂剖遥?jīng)數(shù)據(jù)處理和計(jì)算后得出當(dāng)天的空氣污染指數(shù),再向上級(jí)部門(mén)和社會(huì)媒體公布??諝赓|(zhì)量日?qǐng)?bào)業(yè)務(wù)流程可以分為3個(gè)階段[2],如圖1所示。
圖1 空氣質(zhì)量日?qǐng)?bào)業(yè)務(wù)流程
重慶市空氣質(zhì)量日?qǐng)?bào)的必測(cè)因子只包括SO2,NO2和PM10,日均值計(jì)算是采用上一天中午12時(shí)到次日12時(shí)的數(shù)據(jù)??諝赓|(zhì)量日?qǐng)?bào)主要包括污染指數(shù)、首要污染物、空氣質(zhì)量級(jí)別和空氣質(zhì)量狀況。2008年6月之前,主要發(fā)布主城區(qū)空氣質(zhì)量日?qǐng)?bào),由主城區(qū)11個(gè)大氣自動(dòng)監(jiān)測(cè)站(其中縉云山為清潔對(duì)照點(diǎn))的監(jiān)測(cè)數(shù)據(jù)構(gòu)成,2008年6月5日開(kāi)始傳輸主城以外的30個(gè)遠(yuǎn)郊區(qū)縣,共計(jì)40個(gè)站點(diǎn)數(shù)據(jù)。其中2007年1月1日~2008年6月4日還增設(shè)了經(jīng)開(kāi)區(qū)、高新區(qū)兩個(gè)站的數(shù)據(jù)。
1997年重慶市空氣質(zhì)量日?qǐng)?bào)開(kāi)始在“重慶環(huán)保在線”網(wǎng)站向社會(huì)發(fā)布,本文作者采用了當(dāng)時(shí)流行的ASP動(dòng)態(tài)服務(wù)器頁(yè)面技術(shù),VbScript編程,ODBC數(shù)據(jù)庫(kù)為FoxPro,空氣質(zhì)量日?qǐng)?bào)網(wǎng)站發(fā)布初步實(shí)現(xiàn)了動(dòng)態(tài)管理;2006年本文作者采用iwms商業(yè)網(wǎng)站管理系統(tǒng)構(gòu)建了新版“重慶環(huán)保在線”,網(wǎng)站在界面、內(nèi)容管理、后臺(tái)管理等功能上大幅度提升,為適應(yīng)新版網(wǎng)站載體的需求,自主開(kāi)發(fā)了基于ASP.NET(C#),ODBC數(shù)據(jù)庫(kù)為Microsoft Access的可獨(dú)立運(yùn)行的空氣質(zhì)量日?qǐng)?bào)發(fā)布系統(tǒng)并在“重慶環(huán)保在線”網(wǎng)站首頁(yè)和“空氣質(zhì)量日?qǐng)?bào)查詢”頁(yè)面調(diào)用,同時(shí)為重慶環(huán)保局網(wǎng)站、市政府公眾信息網(wǎng)、華龍網(wǎng)、重慶晚報(bào)網(wǎng)站等提供獨(dú)立調(diào)用。系統(tǒng)從2006年1月開(kāi)始運(yùn)行,整個(gè)“十一五”期間運(yùn)行狀況十分穩(wěn)定。
A S P.N E T結(jié)構(gòu)是一個(gè)三層系統(tǒng):U I層、業(yè)務(wù)邏輯層和數(shù)據(jù)層,如圖2所示。UI層負(fù)責(zé)與用戶交互,接收用戶的輸入并將服務(wù)器端傳來(lái)的數(shù)據(jù)呈現(xiàn)給客戶。業(yè)務(wù)邏輯層負(fù)責(zé)接收瀏覽器傳來(lái)的請(qǐng)求并將請(qǐng)求傳給數(shù)據(jù)層,同時(shí)將請(qǐng)求處理結(jié)果發(fā)給瀏覽器。它由W e b表單、X M LWeb服務(wù)和組件服務(wù)組成。其中Web表單是ASP.NET應(yīng)用程序的核心所在,它是向客戶呈現(xiàn)數(shù)據(jù)和信息的基礎(chǔ),也是響應(yīng)和處理客戶與顯示的Web表單交互成的信息和數(shù)據(jù)的基礎(chǔ)。數(shù)據(jù)層是通過(guò)A D O.N E T操縱數(shù)據(jù)為事務(wù)邏輯層提供數(shù)據(jù)服務(wù),如存儲(chǔ)數(shù)據(jù)操作結(jié)果、返回?cái)?shù)據(jù)檢索結(jié)果等[3]。
圖2 ASP.NET的系統(tǒng)結(jié)構(gòu)模型
與數(shù)據(jù)庫(kù)相連,A D O.N E T提供了如下3種方式:通過(guò)ODBC相連;通過(guò)OLEDB相連;直接與SQL Server相連。這3種方式由于應(yīng)用層次的差異,使得效率由低到高,獨(dú)立性由高到低。對(duì)于相連數(shù)據(jù)庫(kù)的數(shù)據(jù)處理,也有2種方式,即1種是通過(guò)DataSet來(lái)隔離異構(gòu)的數(shù)據(jù)源,另1種是以流方式從數(shù)據(jù)源讀取(DataReader方式)。傳統(tǒng)的應(yīng)用程序是通過(guò)先建立到數(shù)據(jù)庫(kù)的連接,在程序的整個(gè)運(yùn)行過(guò)程中維護(hù)連接的方式來(lái)設(shè)計(jì)的。ASP.NET采取了斷開(kāi)連接方式的數(shù)據(jù)結(jié)構(gòu)。當(dāng)瀏覽器向Web服務(wù)器請(qǐng)求網(wǎng)頁(yè)時(shí),服務(wù)器處理這個(gè)請(qǐng)求,并將所請(qǐng)求的網(wǎng)頁(yè)發(fā)送給瀏覽器,然后連接就被斷開(kāi),直到瀏覽器發(fā)出下一個(gè)請(qǐng)求。A D O.N E T的另一個(gè)創(chuàng)新是引入了數(shù)據(jù)集(Dataset)。一個(gè)數(shù)據(jù)集是內(nèi)存中提供數(shù)據(jù)關(guān)系圖的高速緩沖區(qū)。數(shù)據(jù)集對(duì)數(shù)據(jù)源一無(wú)所知,它們可以由程序或通過(guò)從數(shù)據(jù)倉(cāng)庫(kù)中調(diào)入數(shù)據(jù)而被生成、填充。不論數(shù)據(jù)從何處獲取,數(shù)據(jù)集都是通過(guò)使用同樣的程序模板而被操作的,并且它使用相同的潛在的數(shù)據(jù)緩沖區(qū)。
重慶空氣質(zhì)量日?qǐng)?bào)發(fā)布系統(tǒng)可以在 Windows2000server/XP/2003操作系統(tǒng)平臺(tái)上運(yùn)行,Web服務(wù)器為IIS,數(shù)據(jù)庫(kù)為Microsoft Access,開(kāi)發(fā)工具采用的Microsoft Visual Studio.net framework(C#)[4]和DreamWaver。數(shù)據(jù)展示在“重慶環(huán)保在線”對(duì)應(yīng)欄目。
工作流程為:自動(dòng)監(jiān)測(cè)站數(shù)據(jù)經(jīng)處理和計(jì)算后得出當(dāng)天的空氣污染指數(shù)并存入中間數(shù)據(jù)表,用戶用瀏覽器訪問(wèn)“重慶環(huán)保在線”首頁(yè)并在首頁(yè)特定位置找到數(shù)據(jù)上傳鏈接、進(jìn)入數(shù)據(jù)上傳界面(見(jiàn)圖3);選擇需要上傳的日?qǐng)?bào)中間數(shù)據(jù)表并上傳、點(diǎn)擊更新按鈕后,后臺(tái)將中間數(shù)據(jù)庫(kù)的新內(nèi)容追加到服務(wù)器上的日?qǐng)?bào)Access數(shù)據(jù)庫(kù),日?qǐng)?bào)最新數(shù)據(jù)在“重慶環(huán)保在線”首頁(yè)對(duì)應(yīng)欄目顯示出來(lái),達(dá)到 即時(shí)發(fā)布、即時(shí)見(jiàn)效的效果。
圖3 日?qǐng)?bào)中間數(shù)據(jù)表上傳模塊界面
數(shù)據(jù)庫(kù)為一切信息系統(tǒng)的基礎(chǔ),為適應(yīng)“重慶環(huán)保在線”采用iwms商業(yè)網(wǎng)站管理系統(tǒng)Access版,本空氣質(zhì)量日?qǐng)?bào)發(fā)布系統(tǒng)后臺(tái)數(shù)據(jù)庫(kù)采用 Microsoft Access,ODBC方式連接,依重慶環(huán)境監(jiān)測(cè)站歷史習(xí)慣中間數(shù)據(jù)表采用FoxPro表單。日?qǐng)?bào)數(shù)據(jù)庫(kù)結(jié)構(gòu)如圖4、圖5所示。在ClassInfo表中,ClassColor備注型字段保存指向色征的連接,比如:
<img src=./pic/classcolor5.jpg border=0style="filter:alpha(opacity=80);filter:chroma(color=FFFFFF)">
圖4 日?qǐng)?bào)后臺(tái)數(shù)據(jù)庫(kù)及關(guān)聯(lián)
圖5 日?qǐng)?bào)數(shù)據(jù)庫(kù)結(jié)構(gòu)
該模塊提供了日?qǐng)?bào)數(shù)據(jù)展示功能,顯示站點(diǎn)名稱、污染指數(shù)、污染狀況以及對(duì)應(yīng)的色征,并顯示日?qǐng)?bào)描述內(nèi)容的游走字幕,在首頁(yè)對(duì)應(yīng)欄目顯示。為重慶環(huán)境保護(hù)網(wǎng)、重慶市政府公眾信息網(wǎng)、華龍網(wǎng)、重慶晚報(bào)網(wǎng)站調(diào)用。如圖6所示。
圖6 日?qǐng)?bào)數(shù)據(jù)展示內(nèi)容
該模塊提供了日?qǐng)?bào)數(shù)據(jù)的查詢功能,輸入待定日期即可查詢當(dāng)日的空氣質(zhì)量日?qǐng)?bào)內(nèi)容,及選定分類信息可以快速地找到符合條件的新聞,并輸出查詢結(jié)果。如圖7所示。
圖7 日?qǐng)?bào)數(shù)據(jù)查詢界面
(1)首頁(yè)上傳模塊鏈接位置比較隱蔽,普通瀏覽者不易察覺(jué)。
(2)數(shù)據(jù)上傳模塊對(duì)上傳文件名以及后綴名過(guò)濾,非正確文件名及后綴名不能上傳,實(shí)踐證明,該雙重過(guò)濾優(yōu)于用戶名密碼登陸安全性設(shè)置,且無(wú)需登陸便可操作,避免了多人使用同一密碼的弊端。
(3)在上傳了正確中間數(shù)據(jù)表并且判斷有新數(shù)據(jù)后,更新按鈕方能生效,進(jìn)一步減少風(fēng)險(xiǎn)。
(4)當(dāng)天日?qǐng)?bào)數(shù)據(jù)上傳更新后,上傳按鍵、更新按鍵失效,需待第二天再次生效。
通過(guò)以上安全性設(shè)置,網(wǎng)站安全性得到保障,在整個(gè)“十一五”期間網(wǎng)站及空氣質(zhì)量日?qǐng)?bào)發(fā)布系統(tǒng)安全穩(wěn)定的運(yùn)行。
本空氣質(zhì)量日?qǐng)?bào)發(fā)布系統(tǒng)基于ASP.N E T(C#)+Accesss技術(shù)的應(yīng)用,實(shí)現(xiàn)了在瀏覽器界面上的對(duì)空氣質(zhì)量日?qǐng)?bào)的 “即時(shí)發(fā)布、即時(shí)見(jiàn)效”以及查詢、調(diào)用等功能,極大程度減輕了空氣質(zhì)量日?qǐng)?bào)相關(guān)工作人員的工作負(fù)擔(dān),大大提高了工作效率,并可實(shí)現(xiàn)遠(yuǎn)程操作,后經(jīng)擴(kuò)展成為區(qū)縣上報(bào)數(shù)據(jù)的有效工具,在整個(gè)“十一五”期間安全穩(wěn)定運(yùn)行。并為重慶環(huán)境保護(hù)網(wǎng)、重慶市政府公眾信息網(wǎng)、華龍網(wǎng)、重慶晚報(bào)網(wǎng)站提供調(diào)用,極大地提升了重慶市環(huán)境監(jiān)測(cè)中心的公信力,和我中心“十五”期間的日?qǐng)?bào)發(fā)布系統(tǒng)相比較,在性能上和功能上有了很大的改善和提高。空氣質(zhì)量日?qǐng)?bào)后臺(tái)數(shù)據(jù)庫(kù)結(jié)構(gòu)的優(yōu)化,使得空氣質(zhì)量日?qǐng)?bào)站點(diǎn)擴(kuò)充增減在數(shù)據(jù)庫(kù)一級(jí)便可操作完成;中間數(shù)據(jù)表的采用使系統(tǒng)對(duì)信息的管理更加及時(shí)、高效、安全、可靠;獨(dú)立的調(diào)用模塊、查詢模塊也方便了系統(tǒng)的管理和移植。
[1] 黎嘉明,鄭 燦.城市空氣質(zhì)量日?qǐng)?bào)自動(dòng)發(fā)布系統(tǒng)的研究與開(kāi)發(fā)[J].中國(guó)環(huán)境監(jiān)測(cè),2002.18(2):8-10.
[2] 李 順,魏斌.基于B/S結(jié)構(gòu)的城市空氣質(zhì)量日?qǐng)?bào)發(fā)布系統(tǒng)設(shè)計(jì)[J].上海環(huán)境科學(xué),2002.21(11):622-665.
[3] Michael Otey,Paul Conte著,陳恩義,吳 強(qiáng),劉洪波譯,SQL Server 2000開(kāi)發(fā)指南[M].北京:清華大學(xué)出版社,2002:447-449.
[4] 郭興峰,陳建偉.ASP.NET動(dòng)態(tài)網(wǎng)站開(kāi)發(fā)基礎(chǔ)教程(C#篇)[M].北京:清華大學(xué)出版社,2006:215-216.