童恩棟,牛溫佳,譚紅艷,趙志軍,唐 暉
(中國科學院聲學研究所 北京 海淀區 100190)
現實世界中,網絡形式的系統隨處可見,如因特網、產品供應鏈網絡、交通網絡及社會關系網絡等。近年來隨著復雜網絡研究熱潮的興起[1-2],學者們研究了各種復雜網絡的特性。如何在復雜網絡環境下,保證網絡的高效性和可靠性,已經成為復雜網絡研究的重要課題。
無線傳感器網絡(WSN)指的是將紅外感應器、全球定位系統等具有傳感、數據處理和無線通信能力的傳感器節點通過自組織方式形成的網絡,用于協作地感知、采集和處理網絡覆蓋區域內被測對象的信息,并通過無線多跳的通信方式實現與人類社會的交互。由于其傳感器節點數量巨大,且傳感器節點的移動、失效等特征會導致傳感器網絡的結構不斷發生變化,因此,無線傳感器網絡是典型的復雜網絡,無線傳感器網絡研究是復雜網絡研究的一個重要方面。
由于傳感器網絡強大的數據收集能力,極大地擴展了人們獲取信息的能力。因此被應用在諸多領域,例如智能家居[1]、工業自動化[4]、精準農業[5]、智能監控[6]等。傳感器網絡存在節點和網絡協議等異構性,而Web服務由許多應用程序接口(API)組成,隱藏了服務實現細節,用戶只需通過網絡提交服務請求調用相應API獲得服務,保證了異構應用系統之間的互操作。因此,Web服務得到了廣泛應用。而傳感器網絡的每個應用就是一個Web服務。
Web服務流程包括服務的構建、發布和請求執行。服務由服務提供者提供,服務提供者將自己的服務接口信息在服務注冊中心注冊,以提供服務使用者發現和訪問服務。服務使用者根據自己的需求查詢服務注冊中心,獲得能夠滿足需求的服務描述,根據服務描述向服務提供者發送服務請求調用相應API。其中,Web服務通過Web服務描述語言(web service description language,WSDL)描述Web服務和說明如何與Web服務進行通信;通過統一描述、發現和集成協議(universal description discovery and integration,UDDI)向Web服務注冊中心定義API接口;通過基于簡單對象訪問協議(simple object access protocol,SOAP)在應用程序間交換信息。
面向服務架構(service-oriented architecture,SOA)將應用程序的業務邏輯(business logic)模塊化為不同功能單元(稱為原子服務),而這些服務之間通過定義良好的接口和契約聯系起來。由于SOA服務易于構建和共享原子服務的特點,很多研究[7-8]嘗試將SOA應用在傳感器網絡的服務構建中。目前關于SOA的研究可以歸為智能規劃[9]和工作流[10]兩類。其中工作流技術由于其相對成熟被廣泛應用[11]。二十世紀九十年代,由于普適計算[12]的提出,上下文感知工作流應運而生。上下文感知工作流是指工作流可以隨上下文的變化而動態地改變,以更準確地完成任務。傳統的上下文感知工作流盡管實現了工作流的動態改變,但在原子服務的重用方面考慮不夠。在服務請求執行方面,目前Web服務請求主要采用SOAP協議。SOAP請求消息一般搭載HTTP協議進行傳輸,并發控制也是基于傳統的HTTP并發控制方法,而沒有考慮SOAP請求消息的具體內容。
Web服務技術為Internet的服務管理提供了有效的技術支撐。然而,面向具體的傳感器網絡應用,Web服務呈現出以下兩個新特點:
1) 傳感器網絡的服務主要建立在各種傳感設備之上,通過與底層傳感設備的數據交互實現特定的功能。例如,一個溫度傳感器就可以構建入侵檢測和空調控制等多個服務。因此,傳感器網絡傳感設備種類和數量的增加將導致傳感器網絡中Web服務規模呈指數級增長趨勢。
2) 由于底層傳感設備的高度互聯,傳感器網絡的服務依賴關系也將更加緊密。在這種情況下,同一個服務資源往往可能要被多個服務調用和操作。例如,在提供游客實時視頻瀏覽的公園旅游場景下,攝像頭就屬于公共的服務資源。服務S1可以提供查詢攝像頭是否空閑的服務,而服務S2也可以提供對該攝像頭的移動操作。
由于上述傳感器網絡Web服務的新特點,需要設計面向傳感器網絡的服務管理方法,該服務管理方法應該在服務構建時重視傳感器網絡資源的重用,在服務請求執行時考慮服務間的依賴關系。Web服務管理可以進行改進以實現資源重用的環節包括服務的構建和服務的請求執行。因此,本文提出了一種面向傳感器網絡的服務構建與并發控制方法。該方法使用基于推理的上下文感知工作流用以構建服務以及改進的Web服務并發控制方法。具體方法如下:通過推理抽取出傳感器數據隱含的語義信息,進而使用語義信息刻畫原子服務的輸入輸出,實現上層業務邏輯與底層傳感數據的松耦合,從而構建更加動態的工作流。同時,在服務的請求執行方面,改進了已有的Web服務并發控制方法,考慮傳感器網絡服務間的依賴關系。在收到服務請求信息后,首先解析得到SOAP請求消息的具體內容,通過新增的并發控制模塊優化服務請求消息的執行,實現更有效的服務請求并發控制。
本文內容組織如下:第1節介紹了相關工作,第2、3節分別詳細介紹了本文提出的面向傳感器網絡的服務構建與并發控制,第4節通過實驗與案例分析該服務構建與并發控制在傳感器網絡中的優勢。最后,第5節對全文做了一個簡單總結。
本文提出的服務管理方法使用基于推理的上下文感知工作流構建服務和改進的并發控制方法優化服務請求。
上下文感知工作流源于上世紀九十年代提出的普適計算[12],隨后上下文感知成為工作流領域的研究熱點[13-15]。文獻[16]提出了CAWE(context-aware workflow execution),使用抽象的工作流實現上下文感知。工作流由抽象的原子服務組成,每個抽象的原子服務對應一組實現具體功能的原子服務實例。當前上下文用來決定使用哪一個原子服務實例,以實現上下文感知的工作流。文獻[17]把上下文作為條件構建服務子樹。當上下文改變時,工作流會通過選擇子樹實現工作流的動態重組,達到上下文感知的目的。以上工作雖然實現了工作流隨上下文改變而動態的改變,但因忽略了資源的重用,并不適用資源受限的傳感器網絡。
服務請求并發控制方面,基于SOAP的并發研究較少,但由于SOAP多由HTTP承載進行傳輸,因此HTTP的并發控制對本文有重要參考價值。HTTP并發訪問控制多使用線程池技術[18]。文獻[19]提出一條SOAP消息攜帶多條服務請求,在解析出SOAP的服務請求消息后,通過應用層增加的線程池處理SOAP消息攜帶的多條服務請求。因此,本文提出解析出SOAP的服務請求消息后,經并發控制模塊優化后由新增的線程池執行服務請求。
在本文的服務管理方法中,采用工作流技術來構建服務。二十世紀九十年代,普適計算[12]的提出,研究者們開始嘗試將上下文感知引入到工作流的管理中來,上下文感知工作流成為研究的熱點。
傳感器網絡能量、通信能力、計算存儲能力有限,且傳感器網絡服務高度依賴底層傳感器數據,傳統的上下文感知工作流與傳感器數據緊耦合,因此存在大量冗余的原子服務,造成傳感器網絡的資源浪費。以溫度控制服務(獲取房間內的溫度值并判斷是否需要打開/關閉空調)為例。在不同的環境下,溫度判斷的條件也各不相同(T>58 ℃,T>100 ℃等),因此需要相應地構建多個原子服務,但它們其實包含同一語義信息,即當前溫度高或低。
本文引入基于規則的推理技術,抽取出傳感器數據中的語義信息,進而服務提供商設計新的原子服務替代已有原子服務,其中新的原子服務的輸入輸出由推理出的語義信息進行刻畫,實現上層業務邏輯與底層傳感數據的松耦合,從而構建工作流時多個工作流可以共用相同的原子服務,最終提高工作流的動態性和資源的重用性。還是以溫度控制服務為例,構建新的原子服務(判斷當前溫度高或低)并使用語義信息(溫度高或低)作為輸入來替代已有的原子服務(判斷溫度值是否大于58 ℃或100 ℃等)。這樣,盡管所處環境不同,溫度控制服務可以共用新建的原子服務。圖1所示為基于推理的上下文感知工作流模型。

圖1 基于推理的上下文感知工作流模型

圖2 規則引擎工作流程
其中,規則引擎是該模型的核心,通過預先定義的規則抽取出當前傳感數據的語義信息;服務提供商建立原子服務,并使用抽取的語義信息對原子服務的輸入輸出進行刻畫,實現上層業務邏輯和底層傳感數據的松耦合,建立的原子服務存儲在原子服務存儲模塊中;工作流引擎用于工作流的建立,監控和執行。
規則引擎的工作包含規則匹配、規則選擇和規則執行3個階段。規則匹配過程中可能會存在多條規則被同時匹配成功,因此需要規則沖突算法選擇適當的規則來執行。圖2所示為規則引擎的工作流程。
其中,規則匹配階段采用RETE算法進行高效實現,規則沖突解決(即規則選擇)階段采用本文提出的基于上下文感知優先級的沖突消除算法實現。
RETE算法是一個用來實現產生式規則系統的高效匹配算法[20]。該算法的核心思想是一種根據規則的條件部分生成RETE網絡,數據由根節點進入網絡進行匹配,過程中網絡會儲存匹配結果,達到顯著降低計算量的效果[21]。
規則沖突的解決辦法多是采用對沖突中的規則分配不同優先級的方式。傳統的優先級取值是唯一的,而在上下文感知環境中,當前場景下某一規則可能有一優先級,而在另一場景下,該規則可能有另一不同的優先級取值。
本文提出的沖突解決算法基于上下文感知的優先級,同一規則在不同的場景下分配不同的優先級,從而可提高規則沖突解決方法的準確性。下面所示為本文的溫度控制服務引入上下文感知優先級規則實例如下。其中有3個優先級,括號內表示該優先級適用的上下文,包括默認的優先級5,室內的優先級10和室外的優先級15。進行規則選擇時,該上下文會與當前上下文進行匹配,若相同則為該規則分配該上下文對應的優先級。為沖突中的規則分配了不同的優先級后,沖突解決算法選擇執行擁有最高優先級的規則。

圖3 搭載在HTTP上的Web服務請求

目前,Web服務請求主要采用IBM、M icrosoft、UserLand和DevelopMentor在1998年共同提出,并于2000年提交給萬維網聯盟(W 3C)的SOAP[22]協議,當前的最新版本為SOAP1.2。SOAP是建立在XML語言基礎上的一個輕量的協議,用以規范在一個分布式環境下進行結構化的信息交換。一條SOAP消息就是一個普通的XML文檔,包含Envelope、Header、Body和Fault共4個基本元素,通過HTTP進行承載,如圖3所示。
對于搭載在HTTP上的Web服務請求,相應的并發控制機制如圖4所示。

圖4 傳統Web服務并發控制流程
搭載Web服務請求的HTTP消息到達Web服務器后,線程池分配線程用以處理HTTP消息。首先經過HTTP解析得到搭載的SOAP消息,進一步進行XML解析,獲得SOAP Body包含的服務請求內容,由相應的Web服務進行處理,經過與上述過程相反的過程對響應信息進行封裝并返回給服務請求端。最后,線程釋放該Web服務請求實例并放回線程池以循環執行Web服務請求。以上Web服務并發控制的核心在于:線程池維護確定數量的等待線程,每當有Web服務請求到達,線程池就分配一個線程為請求服務。為了運行這些線程,處理器為每個獨立線程安排一些處理器時間,處理器以順序輪換方式向線程提供時間片,實現多線程的并發處理。線程池的優勢在于服務器運行之初一次性創建多個線程并循環使用,將線程創建開銷分攤到多個任務上,可避免頻繁創建、銷毀線程帶來的巨大資源開銷,以及創建過多的線程耗盡系統資源。
由圖4可知,Web服務器在收到服務請求時即分配線程進行響應,而具體的服務請求內容是在經過HTTP及XML解析后獲得。傳統的Web服務并發控制方法缺陷在于:線程的分配沒有考慮HTTP消息中封裝的服務請求內容,多個HTTP請求被分配獨立的線程單獨執行。如果當前的多個HTTP請求封裝相同的服務請求,以及服務請求之間有沖突或有執行優先級之分,有可能會造成線程浪費、資源沖突和錯誤的發生。以提供游客實時視頻瀏覽的公園旅游場景為例,用戶A用請求服務S1詢問攝像頭是否空閑,而用戶B用請求服務S2移動攝像頭查看景點。當用戶A與用戶B的請求同時到達時,目前的Web服務并發控制方法是分配兩個獨立線程并隨機執行Web服務響應。但是,這兩個服務請求是存在優先級之分的,用戶B的請求應該優先于用戶A的請求執行,以避免用戶A查詢到攝像頭空閑而請求操作時攝像頭已被占用的矛盾。
在傳統的Web服務并發控制基礎上,本文將在解析出SOAP Body的內容后,設計新增的相應的并發控制模型實現Web服務并發控制方法。
本文首先從SOAP協議入手,在SOAP Body中定義服務設備資源統一描述框架,從而為下一步的優先級計算和并發控制奠定基礎。如表1所示。
采用上述8個屬性對服務設備資源進行描述。其中,ResourceURL、OperationName和OperationInput、OperationOutput取自SOAP本身,另外定義了ResourceID、ResourceType、ResourceList和OperationType等4個屬性。傳感器網絡Web服務高度依賴底層傳感器設備,因此需要唯一的ResourceID來標識服務設備資源,而傳感設備的高度互聯,同一傳感器可能被多個Web服務調用,不同傳感器設備也可以協同工作實現同一Web服務。本文采用ResourceList表示Web服務所關聯的多個服務設備資源,是一個由各服務設備資源ResourceID組成的集合。ResourceType指明服務設備資源的類型,如攝像頭、加濕器等,顯然,一個ResourceType可以對應多個ResourceID。OperationType指明可以對服務設備資源進行的操作類型,如查詢、操作。OperationInput和OperationOutput分別是服務設備資源操作的輸入和輸出,從服務I/O中獲取。例如,查詢攝像頭是否空閑的服務請求可以按照服務設備資源屬性定義統一刻畫。由于SOAP是基于XML描述的,因此只要增加解析處理,自定義的設備屬性標簽?ResourceList?和 ?Operation?等 可 以 很 容 易 地 嵌 入SOAP。圖5所示為使用服務設備資源統一描述框架描述的SOAP請求消息。

表1 服務設備資源屬性定義
使用服務設備資源統一描述框架對SOAP請求消息進行擴展,可增加服務設備資源信息。在解析出SOAP Body中的服務請求內容后,消息即被送到并發控制模塊,此時先前的線程釋放Web服務請求實例并放回第一線程池。通過新增并發控制模塊,本文提出改進的并發控制模型,如圖6所示。與傳統的Web服務并發控制流程不同,該并發控制維護兩個線程池。并發控制模塊接收到多線程送來的Web服務請求消息,根據一定的策略進行請求服務設備資源的重復和沖突檢測,優化服務請求內容及其執行順序,由第二線程池分配線程通過執行模塊完成相應的服務請求。通過并發控制模塊,可避免線程浪費、資源沖突和錯誤的發生。并發控制模塊內部組成如圖7所示。

圖5 SOAP請求消息格式

圖6 服務并發控制原理

圖7 并發控制模塊結構
并發控制模塊主要包括重復和沖突檢測、優先級設定和執行模塊。消息接收模塊負責接收解析的SOAP服務請求消息,并將請求消息送到預處理模塊。預處理模塊用于將解析得到的信息進行數學表示。首先,利用重復檢測方法進行重復檢測,使用過濾器過濾掉重復的服務請求,并送到沖突檢測模塊進行服務請求沖突檢測。若存在沖突,需要對沖突的服務請求賦予不同的優先級,優先級的設定依靠預先定義的規則及當前的場景。請求消息預處理模塊對標記優先級的請求進行排序,分配線程,并進一步使用尋址模塊通過消息發送模塊執行服務請求。
Web服務并發控制的出發點是避免請求的重復與沖突。若服務請求存在重復,則可以使用相同的線程完成相應的請求內容;若服務請求存在沖突,則需要對沖突的服務請求線程賦予不同的優先級。以下首先將重復和沖突檢測中用到的服務設備資源進行相應的數學定義和描述,接著給出具體的檢測計算方法。
服務器收到SOAP請求后將通過解析獲得各個具體屬性的取值。S服務的設備資源列表ResourceList可定義為RL(S)={RI1,RI2,,RIN},其中RIi為設備編號,且屬于自然數集合N。設備資源RI的設備操作類型可定義為OT(RI)={OT1,OT2,,OTp},其中OT1定義的查詢操作為客戶端發送請求并需要等待服務器端的響應;OT2定義的操作為客戶端發送請求后,除了確認信息外,不需要服務器端返回其他信息。由于目前該文提出的方法支持的僅有查詢(query)和操作(do)兩種操作類型,因此OT1=‘query’,OT2=‘do’,p=1,2。服務S的訪問地址URL可定義為URL(S)=L,其中L為字符串變量。同理,服務設備資源RI的操作名稱OperationName可定義為ON(RI)=p,其中p為字符串變量,且p=1,2。服務設備資源操作的輸入OperationInput可定義為OI(RI) = {OI1,OI2,,OIM},其中OIi為輸入變量。
服務請求的重復檢測需要通過比較兩個服務請求的訪問地址URL、OperationName和OperationInput來判斷,若全部相同則表示兩個服務請求是重復的;若至少有一項不同,則兩個服務請求是不同的。假設有兩個服務請求R1和R2同時到達,通過解析可以得到R1的服務訪問地址為R1?URL(S1),服務設備資源的操作名稱OperationName為R1?ON(RI1),服務設備資源的操作輸入OperationInput為R1?OI(RI1);同樣R2的服務訪問地址為R2?URL(S2),OperationName為R2?ON(RI2),OperationInput為R2?OI(RI2)。則判斷服務請求重復的條件表達式如下:

表達式為真則說明服務請求重復。
服務請求的沖突檢測不僅涉及兩個服務請求關聯的設備資源是否有重復,而且依賴服務請求對設備資源的操作類型。假設有兩個服務請求R1、R2,關聯的設備資源列表分別表示為R1?RL(S1)、R2?RL(S2),首先服務請求存在沖突的前提條件為RL(S)=R1?RL(S1)∩ R2?RL (S2)≠?,即兩個服務請求R1,R2關聯有相同的服務設備資源,因此存在沖突的可能。其次,服務請求R1、R2對其關聯的相同服務設備資源的不同操作類型決定了沖突是否存在。判斷依據如下:若R1、R2對其關聯的某一相同設備資源操作類型同為查詢,則不存在沖突;若R1(R2)為查詢、R2(R1)為操作或R1、R2同為操作則存在沖突。判斷條件如下:

其中,RIi∈RL(S)。
對于檢測到服務請求沖突的情況,需要進行優先級計算,并對沖突的服務請求賦予不同的優先級。與其他優先級計算方法不同的是,本文方法中優先級計算由靜態優先級計算和動態優先級計算兩部分組成,其中靜態優先級的計算又綜合考慮了規則和場景兩個因素,從而實現了上下文感知和動靜結合兩大特色功能。
靜態優先級是指優先級的計算值將不隨時間變化而改變,主要考慮利用預先定義的規則和場景計算服務請求的優先級。采用ECA規則(事件-條件-動作)預先指定部分可能沖突的優先級,其中E刻畫觸發該規則的沖突事件,C刻畫規則條件中包含的服務請求,A設定沖突服務請求的優先級。當有兩個服務請求R1、R2到達,且R1、R2均對RI1表示的攝像頭進行了操作,由沖突檢測可知服務請求R1與R2沖突,由此觸發規則r1。規則r1的條件部分表示當R1的操作名稱為“turn to east”,而R2的操作名稱為“turn to south”,且由當前場景獲取模塊得知當前攝像頭的方位為north時,出于減少攝像頭操作考慮,在規則r1的動作部分,設定R1的優先級為10,高于R2的優先級,其中優先級值屬于自然數集合N。事實上,在Web服務中,某個服務請求可能在一個場景下優先級較低,但在另一場景下優先級最高。因此,在規則定義中引入當前場景使得優先級的設定更加準確。
前面提到,目前該文提出的方法支持的服務設備資源操作類型僅有查詢(query)和操作(do)兩種,沖突檢測依據的也是不同服務請求對服務設備資源的操作類型。假設有兩個服務請求R1和R2,對于服務請求沖突的一種情況,即對服務設備資源的操作類型R1(R2)為查詢、R2(R1)為操作,表示為R1?OT (RI)= ={OT1},且R2?OT (RI)= ={OT2},利用規則設定操作的優先級永遠高于查詢的優先級,即do?Priority >query?Priority;對于服務請求沖突的另一種情況,即對服務設備資源的操作類型R1和R2均為操作,表示為R1?OT (RI)= =R2?OT (RI)= ={OT2}。優先級的計算僅使用規則是不夠的,還需要綜合靜態優先級和動態優先級。
從規則中,可以直接得到預先設定的優先級取值,表示為X。由于ECA規則和場景是預先定義的,因此無法考慮服務執行時間對靜態優先級的影響。若有一組沖突的服務請求R1,R2,,RN,按執行時間由長到短排序,可以得到一組序列RT={1,2,,N}。假設沖突服務請求RS(1≤S≤N)在RT序列中的序號為Y(1≤Y≤N),則靜態優先級計算公式可表示為Pstatic=pX+qY,(p+q=1)。其中,p表示規則預定義優先級數值的權重,而q表示執行時間對靜態優先級的計算權重。
動態優先級是指優先級隨服務請求在隊列中的等待時間而動態變化, 即隨等待時間增加優先級逐漸提升。系統通過不斷更新服務的等待時間,按從小到大順序產生一組等待時間序列RW={1,2,,M}。與執行時間序列不同的是,RW是每隔固定間隔更新的。假設沖突服務請求RS(1≤S≤M)在RW序列中的序號為Z(1≤Z≤M),則動態優先級計算公式為Pdynamic=Z。
綜合考慮靜態和動態優先級,得到統一的優先級計算公式:

式中,α和β分別為靜態和動態優先級對整個優先級計算的權重,α+β=1。
服務請求存在重復和沖突兩種情況。并發控制模型需要對這兩種情況設定不同的策略。對于服務請求重復的情況,可以通過共用線程來減少不必要的線程使用,首先通過過濾器將重復的服務請求轉化為一個服務請求,然后第二線程池分配線程,執行完畢后將響應結果返回給重復服務請求組內的每一個源地址。對于服務請求沖突的情況,按照本文提出的優先級計算公式,對沖突的服務請求賦予不同優先級,按優先級先后順序執行??傊?,并發控制模塊收到一系列服務請求后首先會對其進行排序。排序整體按照先來先服務的原則,但對于存在沖突的服務請求按照優先級高低順序排序。之后,服務請求被依次放入執行隊列,通過尋址模塊由第二線程池分配線程執行服務請求。

圖8 基于推理上下文感知工作流實現資源重用
本文按服務構建與并發控制兩部分對提出的服務管理方法進行實驗與案例分析。通過提供一個入侵檢測的應用場景,首先在服務構建實驗與案例分析部分,分析規則引擎匹配性能、上下文感知優先級在規則選擇上的應用,以及基于推理的上下文感知工作流如何實現傳感器網絡的資源重用。其次在并發控制案例分析部分,分析改進的并發控制方法在減少不必要的服務執行次數及沖突請求消除上,相對傳統并發控制方法在資源受限的傳感器網絡中應用的優勢。
首先,給出一個應用場景。一個家庭購買了多個傳感器用于構建入侵檢測服務,包括紅外傳感器和聲音傳感器,如圖8所示。傳統的工作流模型中,家庭男主人使用紅外和聲音傳感器構建了工作流H,而女主人使用聲音傳感器構建了工作流W。其實,工作流H和工作流W含有相同的語義信息,即入侵是否發生。因此,面向傳感器網絡的服務管理模型引入推理抽取出該語義信息,建立新的原子服務(入侵探測)替代已有的原子服務(紅外探測和聲音探測)。盡管男女主人使用不同的傳感器組合,構建工作流時可以共用同一原子服務,可實現原子服務的重用,構建的工作流即工作流R。
為了獲取傳感數據中的語義信息,首先需要為男女主人建立一些規則文件。其中,男主人對應規則H,女主人對應規則W。假設當前傳感數據為:紅外探測到周圍有人,并且聲音傳感器數值為750。那么,規則W將被選擇執行,輸出存在入侵檢測。如考慮春節場景,人們會燃放鞭炮,產生巨大聲響,導致入侵檢測系統誤報警。因此,領域專家建立規則E來解決該問題。規則E具有較低的默認優先級5和上下文感知優先級10。同樣在春節場景下,當傳感器數據為:紅外探測到周圍有人,并且聲音傳感器數值為850,規則H、規則W和規則E同時匹配,沖突產生,但規則H的優先級為6,規則W的優先級為7,而規則E的上下文感知優先級為10,由規則沖突消除算法可知,規則E會被選擇執行,即入侵檢測并沒有發生,由此避免了誤報警的發生。入侵檢測服務規則文件如下:


表2 規則列表

表3 傳感器數據列表
基于推理上下文感知工作流較傳統工作流增加了規則推理部分,因此增加了額外的計算時間。本文擴展了應用場景,增加了規則S和規則E1、規則E2,如表2所示,其中規則E1、規則E2為領域專家為解決潛在的沖突而建立的規則,本文假定領域專家定義的規則為最優規則。與傳感器數據數值的關系如圖9所示。增加的規則推理部分在規則匹配過程的響應時間,實驗結果顯示,規則匹配所增加的額外計算時間是可以接受的。

圖9 規則匹配性能分析
為了驗證基于上下文感知優先級在規則沖突解決中較高的準確性,選擇表3所示的一組傳感器數據進行規則匹配和沖突規則選擇,結果如表4所示??梢娀谏舷挛母兄膬炏燃壿^傳統優先級在沖突規則的選擇上具有更高的準確率。

表4 基于上下文感知和傳統優先級準確性比較
在服務請求方面,本文的并發控制方法的出發點是優化服務請求,避免重復請求相同的服務和消除服務請求的沖突。同樣以入侵檢測服務為例,房間有成員A、B、C、D,利用攝像頭camera_1、camera_2、camera_3,以及紅外傳感器和聲音傳感器組成的入侵檢測服務(工作流)。入侵檢測服務提供用戶查詢當前是否存在入侵,以及提供用戶使用攝像頭進行視頻監控。

表5 入侵檢測服務請求列表
假設有表5所示服務請求同時到達,傳統的Web服務并發會分別執行表中的服務請求。但本文提出的Web服務請求并發控制方法會在解析出具體服務請求內容后,執行重復和沖突檢測,并按照既定策略執行服務。
由于家庭成員A、B請求同一房間的入侵檢測服務,則S1=S2,R1?URL(S1)= R2?URL(S2)。另外,R1、R2調用入侵檢測服務的同一API,即R1.ON(S1)=R2?ON(S2)=“Status query”, R1?OI(S1)=R2?OI(S2)=“intrusion”。由服務請求重復判斷條件可得R1、R2為重復的服務請求。
對于服務請求R3、R4來說,R3?RLcamera_3},R3?RL (S3)∩ R4?RL (S4)≠?,滿足服務請求沖突的前提條件,即R3、R4服務請求關聯了相同的設備資源(camera_1)。此外,R3?OT (camera_1)=“do”, R4?OT(camera_1 , camera_2 , camera_3)=“query”,由服務請求沖突判斷條件可得服務請求R3、R4存在沖突。
并發控制流程為:1) 重復檢測模塊檢測到R1、R2為重復的服務請求后,會合并服務請求,入侵檢測服務執行結束后向家庭成員A、B返回執行結果,避免了不必要的服務執行。2) 沖突檢測模塊檢測到R3、R4為沖突的服務請求后,會進行優先級計算,R3?OT(camera_1)=“do”,R4?OT(camera_1,camera_2,camera_3)=“query”。因此,R3具有更高的優先級,會優先執行,避免了錯誤的發生。入侵檢測服務中改進的并發控制與傳統的并發控制的比較如表6所示。可見,改進后的并發控制方法減少了不必要的服務執行次數,并避免了服務執行中的沖突發生,更加適應資源受限的傳感器網絡的服務執行。

表6 改進的并發控制與傳統的并發控制的比較
由于傳感器網絡能量、通信能力、計算存儲能力有限,基于傳感器網絡的服務管理需要強調傳感器網絡的資源重用,避免不必要的資源浪費。本文提出的面向傳感器網絡的服務管理方法,使用基于推理的上下文感知工作流構建服務,并改進服務請求并發控制,實現了資源的重用,更加適應資源受限的傳感器網絡。無線傳感器網絡作為復雜網絡在工程技術領域的典型應用,其研究對于復雜網絡的研究將會發揮一定的推動作用。
[1] STROGATZ S H. Exploring complex networks[J]. Nature,2001, 410: 268-276.
[2] NEWMAN M E J. The structure and function of complex networks[J]. SIAM Review, 2003, 45:167-256.
[3] CHANG S S, YOUNG-BAE K. Design and implementation of intelligent home control systems based on active sensor networks[J]. IEEE Trans on Consumer Electronics, 2008,3(54): 1177-1184.
[4] CHUN Ou-yang, ROSA M L, HOFSTEDE A H M, et al.Toward web-scale workflows for film production[J]. IEEE Internet Computing, 2008, 5(12): 53-61.
[5] LIMA G H E L, SILVA L C , NETO P F R. WSN as a tool for supporting agriculture in the precision irrigation[C]//Proc of IEEE ICNS’2010. Cancun: IEEE, 2010: 137-142.
[6] WANG Xue, WANG Sheng, BI Dao-wei. Distributed visual-target surveillance system in w ireless sensor networks[J]. IEEE Trans on Systems, Man, and Cybernetics,Part B: Cybernetics, 2009, 5(39): 1134-1146.
[7] DELICATO F, PIRES P, PIRMEZ L, et al. A flexible middleware system for w ireless sensor networks[C]//Proc of ACM/IFIP/USENIX M iddleware’2003. New York:ACM,2003: 474-492.
[8] LEGUAY J, LOPEZ-RAMOS M, JEAN-MARIE K, et al.An efficient service oriented architecture for heterogeneous and dynamic w ireless sensor networks[C]//Proc of LCN’2008. Montreal:IEEE,2008: 740-747.
[9] NIU Wen-jia, LI Gang, ZHAO Zhi-jun, et al.Multi-granularity context model for dynam ic Web service composition[J]. Journal of Network and Computer Applications, 2011, 1(34):312-326。
[10] LUH Y, PAN C. Collaborative workflow solution for distributed product development[C]//Proc of IEEE CSCWD’2008. Xi’an: IEEE, 2008: 594-599.
[11] TSAI M. The workflow development for electronic manufacturing industry[C]//Proc of IEEE CSCWD’2008.Xi’an: IEEE, 2008: 688-692.
[12] WEISER M. Ubiquitous Computing[J]. Computer, 1993,10(26): 71-72.
[13] W IELAND M, KACZMARCZYK P, NICKLAS D.Context integration for smart workflows[C]//Proc of PerCom’2008. Hong Kong: [s.n.], 2008: 239-242.
[14] CHAARI T, EJIGU D, LAFOREST F, et al. A comprehensive approach to model and use context for adapting applications in pervasive environments[J]. Journal of Systems and Software, 2007, 12(80): 1973-1992.
[15] MODAFFERI S, BENATALLAH B, CASATI F, et al. A methodology for designing and managing context-aware workflows[M]. International Federation for Information Processing, Mobile Information Systems II. NewYork:Springer, 2005: 91-106.
[16] ARDISSONO L, FURNARI R, GOY A, et al. A framework for the management of context-aware workflow systems[C]//Proc of WEBIST’2007. Noordw ijkerhout:ACM, 2007: 1-9.
[17] JONGSUN C, YONGYUN C, JAEYOUNG C. A context-aware workflow system supporting a user’s dynam ic service demands in ubiquitous environments[C]//Proc of MUE’2007. Seoul: IEEE, 2007: 425-430.
[18] Kang DongHyun, Han Saeyoung, Yoo SeoHee, et al.Prediction-based dynamic thread pool scheme for efficient resource usage[C]//Proc of CIT Workshops’2008. Sydney:IEEE, 2008: 159-164.
[19] WANG Hao, TONG Yi-zhu, LIU Hong, et al.Application-aware interface for SOAP communication in web services[C]//Proc of CLUSTR’2006. Barcelona: IEEE,2006: 1-8.
[20] CHARLES F. Rete: A fast algorithm for the many pattern/many object pattern match problem[J]. Artificial Intelligences, 1982, 1(19): 17-37.
[21] DING Xiao, ZHONG Xiao-an. Improving rete algorithm to enhance performance of rule engine systems[C]//Proc of ICCDA’2010. Qinhuangdao: IEEE, 2010: 572-575.
[22] GUDGIN M, HADLEY M, MENDELSOHN N, et al.SOAP version 1.2 Part 1: messaging framework (2nd ed).[EB/OL][2010-02-02]. http://www.w3.org/TR/soap12-part1/.
編 輯 蔣 曉