摘 要:越來(lái)越多的企業(yè)根據(jù)生產(chǎn)工作的需要,在某些特定場(chǎng)所部署了一些無(wú)人值守的遠(yuǎn)程設(shè)備,以實(shí)現(xiàn)數(shù)據(jù)采集、告警、控制與知識(shí)發(fā)現(xiàn)等功能。本文提出了一種遠(yuǎn)程設(shè)備知識(shí)獲取系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)方式,該方式具有廣泛的適用性。
關(guān) 鍵 詞:遠(yuǎn)程設(shè)備;知識(shí)獲取;多線程服務(wù)器
1.引言
隨著科學(xué)技術(shù)的發(fā)展,越來(lái)越多的現(xiàn)代化設(shè)備應(yīng)用到生產(chǎn)領(lǐng)域中。在顯著提高企業(yè)的生產(chǎn)效率的同時(shí),也給設(shè)備的維護(hù)帶來(lái)很多困難。生產(chǎn)線上關(guān)鍵生產(chǎn)設(shè)備的知識(shí)獲取將對(duì)企業(yè)的生產(chǎn)力產(chǎn)生重要的影響。目前遠(yuǎn)程設(shè)備知識(shí)獲取技術(shù)的主流是應(yīng)用Internet技術(shù),在TCP/IP協(xié)議和WWW規(guī)范的支持下,合理組織軟件結(jié)構(gòu),使客戶端通過(guò)訪問(wèn)網(wǎng)絡(luò)服務(wù)器來(lái)迅速獲取自己權(quán)限下的知識(shí)并及時(shí)做出響應(yīng)。[1]
本文所設(shè)計(jì)的遠(yuǎn)程設(shè)備知識(shí)獲取服務(wù)器系統(tǒng)可通過(guò)PC機(jī)對(duì)多臺(tái)基于傳感器本體的遠(yuǎn)程設(shè)備進(jìn)行知識(shí)獲取。本系統(tǒng)集合了總控服務(wù)控制、遠(yuǎn)程實(shí)時(shí)管理與日志發(fā)布等多項(xiàng)功能,涵蓋總控服務(wù)器與傳感器之間串行通信程序編寫(xiě)、遠(yuǎn)程控制程序編寫(xiě)、SQL數(shù)據(jù)庫(kù)操作與管理、WEB發(fā)布等方面。
2.遠(yuǎn)程設(shè)備知識(shí)獲取系統(tǒng)的體系結(jié)構(gòu)設(shè)計(jì)
2.1系統(tǒng)的拓?fù)浣Y(jié)構(gòu)
遠(yuǎn)程設(shè)備上安裝的傳感器通過(guò)無(wú)線信號(hào)發(fā)射器,將獲取的知識(shí)通過(guò)無(wú)線通信基站發(fā)送給總控服務(wù)器。服務(wù)器在接到數(shù)據(jù)后,通過(guò)知識(shí)產(chǎn)生算法,將知識(shí)存入知識(shí)倉(cāng)庫(kù)。工作人員通過(guò)監(jiān)控終端遠(yuǎn)程實(shí)時(shí)獲取遠(yuǎn)程設(shè)備的知識(shí)。系統(tǒng)拓?fù)浣Y(jié)構(gòu)圖如圖1所示。
2.2 系統(tǒng)的工作流程
遠(yuǎn)程設(shè)備知識(shí)獲取系統(tǒng)的工作流程如圖2所示。圖2中①表示遠(yuǎn)程設(shè)備上的傳感器本體將采集到的數(shù)據(jù)發(fā)送到總控服務(wù)器;②表示知識(shí)產(chǎn)生算法根據(jù)接收到的數(shù)據(jù)生成知識(shí)并存放到知識(shí)倉(cāng)庫(kù)中;③表示工作人員可以通過(guò)Internet遠(yuǎn)程訪問(wèn)設(shè)備知識(shí)信息;④表示工作人員可以通過(guò)遠(yuǎn)程終端將控制命令發(fā)送給總控服務(wù)器;⑤表示總控服務(wù)器通過(guò)無(wú)線通信基站向遠(yuǎn)程設(shè)備發(fā)送控制信號(hào)。[2]
3.遠(yuǎn)程設(shè)備知識(shí)獲取服務(wù)器的設(shè)計(jì)與實(shí)現(xiàn)
3.1多線程服務(wù)器設(shè)計(jì)
支持并發(fā)訪問(wèn)的服務(wù)器的實(shí)現(xiàn)方式有兩種:基于進(jìn)程和基于線程。由于創(chuàng)建進(jìn)程的代價(jià)要高于線程,并且進(jìn)程之間的數(shù)據(jù)共享和通訊機(jī)制較復(fù)雜,因此基于線程的方式效率更高。但是如果采用對(duì)于設(shè)備的每一次請(qǐng)求創(chuàng)建一個(gè)線程的方式,那么在控制設(shè)備較多的情況下,線程頻繁創(chuàng)建和銷毀的代價(jià)是很高的。如果采用線程緩沖池的設(shè)計(jì),在接收到設(shè)備請(qǐng)求后,隨機(jī)地選取一個(gè)空閑線程響應(yīng)設(shè)備的請(qǐng)求,則可以得到較快的響應(yīng)速度和較高的效率。[3]多線程服務(wù)器體系結(jié)構(gòu)如圖3所示。
3.2通用緩沖池的具體實(shí)現(xiàn)
數(shù)據(jù)緩沖池采用先進(jìn)先出的存取策略,使用一個(gè)隊(duì)列對(duì)象來(lái)實(shí)現(xiàn)。線程緩沖池使用一個(gè)鏈表類實(shí)現(xiàn),以方便地創(chuàng)建和注銷線程。每個(gè)線程用一個(gè)Handler類的實(shí)例為每個(gè)設(shè)備提供服務(wù)。鏈表中每個(gè)節(jié)點(diǎn)是一個(gè)線程類ServerThread的實(shí)例,保存該線程的線程號(hào)和指向下一個(gè)ServerThread類的實(shí)例的引用,ServerThread類繼承Thread類。這樣設(shè)計(jì)的緩沖池,具有通用性,在設(shè)計(jì)具體的應(yīng)用時(shí),可以根據(jù)不同的需要?jiǎng)?chuàng)建新的Handler類的子類,即可對(duì)不同設(shè)備提供不同的服務(wù)?;跀?shù)據(jù)緩沖池和線程緩沖池的實(shí)現(xiàn)的服務(wù)器,其核心算法的Java語(yǔ)言實(shí)現(xiàn)如下所示:
class ServerThread extends Thread{
private static final int MAX_NUMBER=15;
private DataPool dataPool = DataPool.getAnInstance();
private ThreadPool threadPool = new ThreadPool(MAX_NUMBER);
@Override
public void run() {
while (!isShutdown) {
if(!isPaused){
try {
Data
data = dataPool.getFirstData();
Handler handler = new Handler(data)
threadPool.execute(handler);
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
4.結(jié)束語(yǔ)
隨著企業(yè)設(shè)備信息化程度的提高,遠(yuǎn)程設(shè)備知識(shí)獲取系統(tǒng)的研究與運(yùn)用使得對(duì)智能生產(chǎn)設(shè)備的監(jiān)控管理工作變得更加方便,并促進(jìn)企業(yè)生產(chǎn)效率的提高。隨著移動(dòng)互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展和普及,遠(yuǎn)程設(shè)備知識(shí)獲取技術(shù)必將成為企業(yè)生產(chǎn)過(guò)程中的一種必不可少的管理監(jiān)控手段。
參考文獻(xiàn)
[1] 杜小勇,王琰,呂彬.語(yǔ)義網(wǎng)數(shù)據(jù)管理研究進(jìn)展[J].軟件學(xué)報(bào).2009,20(11):2950-2964.
[2] 鐘秀琴,等.基于本體的幾何學(xué)知識(shí)獲取及知識(shí)表示[J].計(jì)算機(jī)學(xué)報(bào).2010,33(1):167-174.
[3] 李兵,黃珊,石曉軍. 通用遠(yuǎn)程設(shè)備管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].微計(jì)算機(jī)信息.2011,27(11):81-83.
Design and Implementation of Remote Device Knowledge Acquisition System Based on Sensors
Ren Changning, Zheng Dongxia, Li Xucheng
(Computer Science and Technology Dept, Dalian Neusoft Institute of Information, Dalian Liaoning 116023)
Abstract:According to the needs of the production,more and more enterprises deploy some unmanned remote device in certain places,in order to realize data acquisition,alarm,control,and knowledge discovery,and other functions.This paper proposes a way of remote device knowledge acquisition system design and implementation,it has extensive applicability.
Key Words:Remote device;Knowledge acquisition;Multi-thread server