釧助仁
摘 要 監(jiān)控類軟件作為電廠實(shí)現(xiàn)生產(chǎn)、運(yùn)行、管理自動(dòng)化的重要部分,為電廠實(shí)現(xiàn)生產(chǎn)運(yùn)行設(shè)備自動(dòng)監(jiān)視、自動(dòng)控制、生產(chǎn)、運(yùn)行、管理信息自動(dòng)交換、快速發(fā)布起著重要的作用,但隨著電廠對(duì)生產(chǎn)運(yùn)行需求越加規(guī)范及C/S架構(gòu)本身存在的問題,采用C/S架構(gòu)搭建的監(jiān)控類軟件已經(jīng)無法適應(yīng)新時(shí)期的要求,出現(xiàn)了一些亟待解決的問題,而另一方面,電廠監(jiān)控類軟件中采用B/S架構(gòu)搭建的軟件越發(fā)凸顯其優(yōu)越性,如軟件更新比較容易、使用比較簡單、數(shù)據(jù)維護(hù)更新簡單快捷、軟件故障率低、運(yùn)行時(shí)間長等,因此,將C/S架構(gòu)的軟件遷移至B/S架構(gòu)的軟件成了電廠解決當(dāng)前存在的問題的一種經(jīng)濟(jì)、有效的手段。本文就架構(gòu)遷移進(jìn)行探討其可行性。
【關(guān)鍵詞】C/S B/S 監(jiān)控類軟件 遷移評(píng)價(jià)體系 無縫遷移 逆向工程再造
1 論文研究的目的及意義
監(jiān)控類軟件作為電廠實(shí)現(xiàn)生產(chǎn)、運(yùn)行、管理自動(dòng)化的重要部分。為電廠實(shí)現(xiàn)生產(chǎn)運(yùn)行設(shè)備自動(dòng)監(jiān)視、自動(dòng)控制;為生產(chǎn)、運(yùn)行、管理信息自動(dòng)交換、快速發(fā)布起著重要的作用。這些軟件的部署確實(shí)使電廠生產(chǎn)、運(yùn)行、管理信息化的水平得到了提高,為電廠提高了生產(chǎn)過程的效率與安全性,提高了運(yùn)行管理的及時(shí)性、全面性、準(zhǔn)確性,減少了人力資源成本、維護(hù)成本、管理成本。但隨著電廠對(duì)生產(chǎn)運(yùn)行需求由粗放式、手工式向精細(xì)化、自動(dòng)化的轉(zhuǎn)變,以及日趨規(guī)范化的生產(chǎn)運(yùn)行管理對(duì)軟件的可靠性、可維護(hù)性提出了更高的要求,電廠監(jiān)控類軟件中按照以前C/S架構(gòu)搭建的軟件已經(jīng)無法適應(yīng)新時(shí)期的要求,出現(xiàn)了一些亟待解決的問題,如:資源消耗率越來越高、進(jìn)程阻塞現(xiàn)象頻頻出現(xiàn)、數(shù)據(jù)更新越發(fā)困難、數(shù)據(jù)垃圾難于清理、維護(hù)責(zé)任越發(fā)不合理、使用越來越不方便等;而另一方面,電廠監(jiān)控類軟件中采用B/S架構(gòu)搭建的軟件越發(fā)凸顯其優(yōu)越性,如軟件更新比較容易、使用比較簡單、數(shù)據(jù)維護(hù)更新簡單快捷、軟件故障率低、運(yùn)行時(shí)間長等,因此,將電廠C/S架構(gòu)的監(jiān)控類軟件遷移至B/S架構(gòu),就成為了解決上述問題的一種可行方法。
但是,是否所有的監(jiān)控類軟件都適合采用B/S架構(gòu)?是否當(dāng)前的監(jiān)控類軟件都具有遷移的可能性?具有遷移可能性的軟件遷移后是否能確確實(shí)實(shí)解決遷移前存在的問題?需要遷移的軟件采用何種方式進(jìn)行遷移、其遷移方案是什么?遷移后的軟件會(huì)帶來哪些優(yōu)勢?這些就是本文所要探討的內(nèi)容。
2 C/S和B/S架構(gòu)介紹和優(yōu)缺點(diǎn)比較
C/S和B/S是兩種截然不同的軟件架構(gòu),兩者所涉及的適用范圍、開發(fā)技術(shù)、管理模式和運(yùn)行方法都存在較大的差異,軟件系統(tǒng)在兩者之間的遷移存在較大的難度,是一個(gè)系統(tǒng)性的工程。因此,在系統(tǒng)遷移初期必須做好系統(tǒng)遷移的可能性分析工作,了解C/S和B/S架構(gòu)的相關(guān)知識(shí),把握兩者間存在的技術(shù)特點(diǎn)、適用范圍和應(yīng)用差異,解決系統(tǒng)遷移中涉及的技術(shù)、難點(diǎn)、工作量、資源配置和步驟等問題,以提高系統(tǒng)遷移的成功率。
2.1 C/S架構(gòu)相關(guān)知識(shí)介紹
C/S(Client/Server)結(jié)構(gòu)即客戶機(jī)與服務(wù)器結(jié)構(gòu)。是軟件系統(tǒng)體系結(jié)構(gòu),具有很強(qiáng)的通信處理能力和圖像處理能力。但無論是二層網(wǎng)絡(luò)結(jié)構(gòu)還是三層結(jié)構(gòu),必需在客戶端安裝相應(yīng)軟件,需要客戶端的人為干預(yù),加之軟件產(chǎn)品的更新?lián)Q代十分快。所以系統(tǒng)存在伸縮性差和維護(hù)工作量大的缺點(diǎn)。
2.2 B/S架構(gòu)相關(guān)知識(shí)介紹
B/S(Browser/Server)結(jié)構(gòu)即瀏覽器/服務(wù)器結(jié)構(gòu)。Web方式是基于廣域網(wǎng),通過網(wǎng)頁發(fā)送信息,所有與系統(tǒng)有關(guān)信息都可以通過瀏覽器訪問方式獲取(極少部分事務(wù)邏輯在前端實(shí)現(xiàn)),提升系統(tǒng)的可伸展性和降低客戶端維護(hù)量。
2.3 C/S和B/S架構(gòu)的比較
C/S與B/S是過去10年世界開發(fā)模式技術(shù)架構(gòu)的兩大主流技術(shù),兩種技術(shù)本身存在許多的優(yōu)點(diǎn),都擁有一定的市場份額和客戶群,但隨著技術(shù)的不斷發(fā)展和主流應(yīng)用向B/S或更高級(jí)的ERP、中間件技術(shù)傾斜,C/S架構(gòu)開始走上了下坡路。
2.3.1 C/S架構(gòu)的優(yōu)勢與劣勢
(1)應(yīng)用服務(wù)器運(yùn)行數(shù)據(jù)負(fù)荷較輕。最簡單的C/S體系結(jié)構(gòu)的數(shù)據(jù)庫應(yīng)用由兩部分組成:客戶應(yīng)用程序(前臺(tái)程序)和數(shù)據(jù)庫服務(wù)器程序(后臺(tái)程序)。運(yùn)行前臺(tái)程序的機(jī)器稱為客戶電腦,運(yùn)行后臺(tái)程序的機(jī)器稱為應(yīng)用服務(wù)器。如需要對(duì)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行操作時(shí),客戶程序會(huì)自動(dòng)尋找服務(wù)器程序,向它發(fā)出請(qǐng)求,服務(wù)器程序根據(jù)事先預(yù)定的規(guī)則作出應(yīng)答,送回結(jié)果,所以應(yīng)用服務(wù)器運(yùn)行數(shù)據(jù)負(fù)荷較輕。
(2)數(shù)據(jù)的儲(chǔ)存管理功能較為透明。數(shù)據(jù)庫中數(shù)據(jù)的儲(chǔ)存管理功能,是由客戶機(jī)和服務(wù)器分別獨(dú)立進(jìn)行的。對(duì)于工作在前臺(tái)程序上的最終用戶,是“透明”的,他們無須過問背后的過程,就可以完成自己的一切工作。但在C/S體系下,數(shù)據(jù)庫不能真正成為公共、專業(yè)化的倉庫,它受到獨(dú)立的專門管理。
(3)C/S架構(gòu)的劣勢是維護(hù)成本高且投資大。首先,如果需要建立兩地間的“實(shí)時(shí)”數(shù)據(jù)同步,就必須在它們之間建立實(shí)時(shí)的通訊連接,才能保持兩地的數(shù)據(jù)庫服務(wù)器在線運(yùn)行,這樣網(wǎng)絡(luò)管理人員要同時(shí)對(duì)服務(wù)器與客戶端維護(hù)管理,這需要復(fù)雜的技術(shù)支持和高昂的投資。其次,傳統(tǒng)C/S架構(gòu)的軟件需要針對(duì)不同的操作系統(tǒng)開發(fā)不同的版本,由于軟件的更新?lián)Q代快,導(dǎo)致高代價(jià)和低效率。以此同時(shí)在JAVA語言出現(xiàn)之后,B/S架構(gòu)更加猛烈沖擊C/S。
2.3.2 B/S架構(gòu)的優(yōu)勢和劣勢
(1)簡化了客戶端。B/S架構(gòu)的軟件只需管理服務(wù)器,不同的客戶機(jī)上無需再安裝不同的應(yīng)用程序,所有的客戶端只是瀏覽器。
(2)簡化了系統(tǒng)的開發(fā)和維護(hù)。系統(tǒng)的開發(fā)者不需要再為不同級(jí)別的用戶開發(fā)不同的應(yīng)用程序,所有的功能都能在服務(wù)器上實(shí)現(xiàn),只要為不同級(jí)別的用戶設(shè)置不同的權(quán)限,不需要再對(duì)客戶端做任何維護(hù)。
(3)客戶端操作變得更簡單??蛻舳酥皇且粋€(gè)簡單易用的瀏覽器,使用者無需接受任何專門的培訓(xùn)就可以直接使用。
(4)成本降低,選擇更多。在服務(wù)器操作系統(tǒng)上可以選擇windows或Linux,都不影響客戶端運(yùn)行。其中Linux安全性高、免費(fèi)(包括數(shù)據(jù)庫也是免費(fèi))。
(5)應(yīng)用服務(wù)器運(yùn)行數(shù)據(jù)負(fù)荷較重。B/S架構(gòu)管理軟件只需安裝在服務(wù)器端,所有用戶的大部分需求都通過瀏覽器在服務(wù)器端實(shí)現(xiàn)。所以應(yīng)用服務(wù)器運(yùn)行數(shù)據(jù)負(fù)荷很重,一旦發(fā)生服務(wù)器“崩潰”等問題,后果不堪設(shè)想。為此許多用戶都有備份,以防萬一。
2.3.3 C/S與B/S架構(gòu)優(yōu)缺點(diǎn)比較
總結(jié)以上介紹,我們可以得出如表1所示的C/S架構(gòu)和B/S架構(gòu)優(yōu)劣分析表。
2.4 C/S遷移至B/S架構(gòu)的難點(diǎn)
根據(jù)金蝶軟件、IBM、Amazon公司在過去10年實(shí)施C/S至B/S架構(gòu)的案例情況,本文認(rèn)為,C/S遷移至B/S架構(gòu)至少存在以下兩個(gè)難點(diǎn):
2.4.1 C/S客戶端能否部署在服務(wù)器
采用C/S架構(gòu)的系統(tǒng),其客戶端和服務(wù)器端承擔(dān)了相當(dāng)?shù)臉I(yè)務(wù)處理工作,因此,如何將客戶端中承擔(dān)業(yè)務(wù)處理的程序遷移至服務(wù)器?能否無縫遷移至服務(wù)器?遷移的工作量有多大?遷移后的程序能否和服務(wù)器端程序整合?這些就是C/S客戶端在遷移過程中會(huì)遇到的難點(diǎn)問題。
2.4.2 B/S架構(gòu)能否達(dá)到C/S客戶端的性能
由于C/S中顯示部分由客戶端承擔(dān),因此,C/S能有效調(diào)用本地資源,提供高質(zhì)量、高速度、快速響應(yīng)的客戶端顯示界面,而B/S架構(gòu)雖然由性能強(qiáng)勁的服務(wù)器承擔(dān)幾乎所有的業(yè)務(wù)處理工作,但由于采用瀏覽器(Brower)作為客戶端,其本身的HTML語言自身存在的表現(xiàn)力不足、接口不夠強(qiáng)壯、反應(yīng)不夠靈敏和缺乏趣味性的表現(xiàn)力能否達(dá)到C/S客戶端的顯示效果、響應(yīng)速度?能否提供用戶與C/S客戶端媲美的使用體驗(yàn)?是C/S遷移至B/S架構(gòu)的過程中遇到的又一個(gè)難題。
3 遷移方案設(shè)計(jì)
3.1 無縫遷移
監(jiān)控類軟件遷移至服務(wù)器,其三個(gè)組成部分,一是系統(tǒng)所用的數(shù)據(jù)庫,二是用驅(qū)動(dòng)程序,三是用客戶端,均可無需太多修改的遷移至windows服務(wù)器,然后用ASP或PHP編寫網(wǎng)頁查詢頁面,將該數(shù)據(jù)庫中的歷史數(shù)據(jù)和當(dāng)前數(shù)據(jù)傳至網(wǎng)頁頁面進(jìn)行顯示,此方案只需修改數(shù)據(jù)庫的配置文件,增加一個(gè)網(wǎng)頁查詢程序,即可完整的實(shí)現(xiàn)原監(jiān)控類軟件系統(tǒng)的所有功能,遷移時(shí)間短、工作量小,但由于程序內(nèi)部沒有進(jìn)行重構(gòu)或優(yōu)化,原有的進(jìn)程阻塞、數(shù)據(jù)結(jié)構(gòu)不合理、數(shù)據(jù)大量冗余、數(shù)據(jù)更新不方便等問題依然存在,同時(shí)由于業(yè)務(wù)處理工作仍由客戶端完成,服務(wù)器資源利用率不高,系統(tǒng)與服務(wù)器整合度不足反而降低了系統(tǒng)的運(yùn)行效率。
3.2 部分代碼重用的逆向工程再造
逆向工程再造是軟件工程的一個(gè)重要的軟件開發(fā)思想,其通過對(duì)系統(tǒng)源代碼、界面和部分文檔的逆向思考,提取出該系統(tǒng)的需求說明,構(gòu)造出系統(tǒng)的內(nèi)部數(shù)據(jù)結(jié)構(gòu),分析出系統(tǒng)的數(shù)據(jù)庫設(shè)計(jì),給出系統(tǒng)的類、模塊、方法等技術(shù)說明,然后在這些逆向文檔的基礎(chǔ)上對(duì)系統(tǒng)進(jìn)行重新開發(fā),開發(fā)過程中重用原系統(tǒng)的部分代碼和設(shè)計(jì)方法,能有效整合和優(yōu)化新系統(tǒng)與新平臺(tái)的資源,提升新系統(tǒng)的運(yùn)行效率,解決原系統(tǒng)存在的諸多問題,但由于要進(jìn)行逆向構(gòu)造,對(duì)技術(shù)人員的要求比較高,開發(fā)周期較長。
4 總結(jié)和展望
B/S架構(gòu)雖然比C/S架構(gòu)有著更多的優(yōu)越性,但B/S架構(gòu)也存在著一些問題,如B/S架構(gòu)采用瀏覽器交換數(shù)據(jù),由于瀏覽器本身安全性需要第三方安全軟件的保護(hù),因此,采用B/S架構(gòu)的系統(tǒng)安全性不如C/S高;其次,B/S架構(gòu)在當(dāng)前雖然已經(jīng)采用了許多提高交互度的技術(shù),如Ajax,但和C/S一整套的客戶應(yīng)用相比還是太有限;再次,B/S的響應(yīng)速度也暫無法和C/S相比。
對(duì)于電廠而言,信息的安全性和可靠性遠(yuǎn)高于技術(shù)的先進(jìn)性,因此,不能單純的將B/S架構(gòu)視為監(jiān)控類軟件的首選,而應(yīng)該結(jié)合系統(tǒng)的應(yīng)用范圍、安全要求、性能要求等進(jìn)行綜合判斷,選擇最合適的系統(tǒng)架構(gòu)。就如德國的架構(gòu)大師Frank Buschman所說的一樣:沒有一種架構(gòu)是萬能的。
隨著新一代的開發(fā)架構(gòu),如ERP、中間件、云架構(gòu)等技術(shù)的興起,以及新的客戶端交互技術(shù)的出現(xiàn),B/S架構(gòu)會(huì)慢慢吸收眾家之所長,不斷完善,使自身被更多的用戶所喜愛。
參考文獻(xiàn)
[1]Gerard Bimont.火力發(fā)電廠電子監(jiān)控技術(shù)[J].華東電力,2008(02):41-43
[2]王清,趙輝等.基于B/S、C/S模型協(xié)調(diào)控制的電廠遠(yuǎn)程監(jiān)控系統(tǒng)研究[J].天津理工大學(xué)學(xué)報(bào),2009(10):36-38.
[3]佟鵬,高建強(qiáng)等.基于B/S模式的電廠性能監(jiān)測系統(tǒng)研究[J].熱力發(fā)電,2003(10):67-69.79.
[4]郭小寶,王爽心.基于B/S結(jié)構(gòu)的電廠經(jīng)濟(jì)指標(biāo)在線監(jiān)測系統(tǒng)[J].自動(dòng)化博覽,2005(05):56-58.
[5]Xu Zhigao,Gao Zhengping,Si Fengqi.Real-Time Information System of Power PlantBased on B/S Computing Mode[J].Journal of Southeast University(English Edition),2002(01):80-83.
作者單位
德宏師范高等專科學(xué)校 云南省德宏傣族景頗族自治州芒市 678400