(馬鞍山師范高等??茖W校軟件工程系,安徽 馬鞍山 243041)
場景一:智能樓宇內部安裝了防災設備和系統(tǒng),這些系統(tǒng)都在專門軟件運行之下發(fā)揮作用。軟件的核心功能就是偵測煙霧、溫度、濕度等數(shù)據(jù),并判斷是否發(fā)生火災,如果確定為火災則在第一時間內開啟響應流程,包括自動打開滅火器、開啟消防水栓等。消防系統(tǒng)在工作中通常更多地依靠有線網絡進行數(shù)據(jù)傳輸。但是現(xiàn)實中火災也會損壞傳輸線路和防災設備,另外線路和設備自身也存在老化問題,從而中斷防災系統(tǒng)的工作。此時,需要傳感器主動開啟無線網絡工作狀態(tài),系統(tǒng)自動切換到無線工作模式,繼續(xù)實施自動救災。
在上述場景中,當火災發(fā)生時,如果線路老化或部分設備出現(xiàn)故障,導致有線傳輸網絡不通、系統(tǒng)無法正常運行,此時只是等待救援人員來維修以恢復系統(tǒng),將會錯失最佳救援時機。智能樓宇火災救難系統(tǒng)必須具備一定的自適應能力[1],能夠感知火災的發(fā)生,當線路或設備失效時能夠主動進行重配置,啟用新的工作模式,確保能及時開展救災。
自適應(Self-Adaption),在軟件工程領域,是指軟件在投入運行的過程中能自我感知環(huán)境的變化、需求的變更和自身狀態(tài)的改變,對感知的信息數(shù)據(jù)進行收集、分析和處理,對比常態(tài)下的數(shù)據(jù),在二者不一致或在超過閾值時,對軟件本身結構或行為進行調整,或者啟動軟件新的工作模式,繼續(xù)保持運行狀態(tài),從而滿足用戶要求的功能和性能,或完成既定的任務。自適應軟件(Self-Adaptive Software),是指具有自適應能力的軟件系統(tǒng)。在整個軟件生命周期中,自適應軟件能夠通過檢測用戶需求的調整、周圍環(huán)境的變化、以及軟件自身的缺陷或錯誤,啟動新的工作模式,或調整軟件的行為和結構,使得軟件保持在運行狀態(tài),并適應內部和外部的變化。動態(tài)自適應軟件在系統(tǒng)運行過程中,能夠不依靠外力而僅僅通過自身行為和結構的調整,來適應用戶需求變更、運行環(huán)境變化,并不斷修正自身缺陷以提高系統(tǒng)的可信度[2]。
隨著網絡的普及,大部分軟件都是網構軟件(基于Internet(互聯(lián)網)的軟件),朝著并行、異構的和分布式的方向發(fā)展。在分布式計算環(huán)境下,系統(tǒng)是由一個個結點構成的。結點可以是軟件組件,也可以是硬件設備。個體自適應指的是只涉及到單個結點的自適應。也就是說個體自適應僅僅限于單個結點范圍。群體自適應指的是涉及到多個結點的自適應。群體自適應由多個結點相互配合完成,這些結點具有相近的結構和工作機理,也可能具有不同的工作目標和管理策略。
Auxo模型是一種軟件自適應概念模型,它既涵蓋了個體自適應又包含了群體自適應,特殊情況下還允許第三方對軟件的自適應能力進行在線調整,以滿足環(huán)境開放和行為異構[3]。
軟件自適應基本周期中,個體層面上的直接映射就是Auxo個體自適應過程,包括由環(huán)境和狀態(tài)感知引起的個體決策以及由參數(shù)或結構調整引起的個體決策。在這兩個過程中,分別對應環(huán)境和狀態(tài)數(shù)據(jù)以及行為調整動作。Auxo個體自適應過程如圖1所示。
圖1 Auxo個體自適應過程
軟件自適應基本周期中,在個體自適應過程基礎之上,引入群體感知和群體決策等來對個體行為進行改變,獲取群體狀態(tài)和環(huán)境信息,實現(xiàn)群體自適應。所以,群體自適應離不開個體自適應,只有發(fā)生個體自適應才能實現(xiàn)群體自適應。Auxo群體自適應過程如圖2所示。
圖2 Auxo群體自適應過程
場景二:當火災發(fā)生時,智能樓宇內部的火災救難系統(tǒng)提供如下救災支持:支持一,消防員攜帶平板電腦、智能手機等移動終端進入火災樓宇,這些移動終端立即顯示出建筑物結構圖、建筑設計圖、建筑材料強度信息、火源點、安全出口路線等信息,同時設備快速計算并顯示當前最安全和最高效的搜索路線;支持二,消防員的移動終端在此時可以作為系統(tǒng)中的結點,發(fā)揮無線鏈路和中繼的作用,能夠隨人員移動而改變顯示信息,從而快速收集安防系統(tǒng)無法覆蓋的區(qū)域信息。
圖3 智能樓宇火災救難系統(tǒng)
圖4 參數(shù)調整的ThresholdAdjust策略連接子
圖5 結構調整的FloorSelection策略連接子
消防員移動終端上的軟件自適應就是個體自適應,這種個體自適應能夠通過加載某些組件或構件來對自身進行調整。當每個消防員移動終端都加入到智能樓宇系統(tǒng)中時,就構成一個較大的群體,其實現(xiàn)的自適應就是群體自適應。每個個體自適應都是群體自適應有機組成部分?;贏uxo概念模型的實現(xiàn)以上群體自適應過程如下:
(1)當消防員進入智能樓宇時,群體感知環(huán)節(jié)立即檢測到這一行為。
(2)群體自適應設備立即做出群體聚合決策,邀請進入智能樓宇的每個消防員移動終端加入到群體。
(3)進入智能樓宇的消防員移動終端收到群體自適應基礎設施所發(fā)通知,可以通過個體決策接受加入群體的邀請。
(4)進入智能樓宇的消防員移動終端從群體自適應設備處獲取必要的組件或構件,同時通過執(zhí)行結構適應動作以加載這些組件或構件,最終成為智能樓宇救災系統(tǒng)中的成員。
在場景一和場景二描繪的情形基礎之上,進行智能樓宇火災救難實驗。通過進入樓宇的消防員所攜帶的PDA(Personal Digital Assistant,又稱為掌上電腦)、智能手機和筆記本電腦,以及分布在樓宇各處的基于iMote2高性能無線智能傳感器等多種異構設備,裝載設備運行軟件,搭建了模擬的智能樓宇火災救難系統(tǒng)。實驗從多個角度驗證Auxo自適應概念模型對個體自適應和群體自適應的支持。
智能樓宇火災救難系統(tǒng)模擬場景:當火災發(fā)生時,樓宇各處的煙霧濃度和溫度等數(shù)據(jù)由安裝在樓宇多個位置的高性能智能傳感器iMote2實時收集。樓宇內每個樓層都安裝有火警上下文聚合結點,負責匯總各個智能傳感器iMote2收集的數(shù)據(jù)。樓宇中央服務器根據(jù)上下文聚合結點匯總的數(shù)據(jù)計算出當前火災發(fā)生的概率。如果火災發(fā)生的概率超過閾值,則判斷為發(fā)生火災,樓宇中央服務器立即發(fā)出警報,開啟火警燈。同時,樓宇中央服務器給當前進入樓內的每名人員所攜帶的智能手機、平板電腦等移動設備發(fā)送相應告警信息。當消防員進入樓宇后,通過查看其所攜帶的PDA,就可以準確知道樓宇火災發(fā)生的具體地點。PDA上還會顯示樓內建筑物相關信息,便于有效實施救災和逃生。智能樓宇火災救難系統(tǒng)所模擬的場景如圖3所示。
智能樓宇火災救難系統(tǒng)涉及到的軟件自適應行為包括群體聚合、環(huán)境驅動的參數(shù)調整和狀態(tài)驅動的參數(shù)調整,具體如表1所示。
表1 智能樓宇火災救難系統(tǒng)自適應行為
表1中自適應行為通過如下方式實現(xiàn):
(1)群體聚合
系統(tǒng)在運行過程中一直在監(jiān)視是否有消防員或工作人員進入智能樓宇。當消防員或其他工作人員進入智能樓宇時,其所攜帶的智能手機、平板電腦等移動設備將自動加入到智能樓宇火災救難系統(tǒng)中,這一過程是通過運行于移動設備之上的Auxo單元實現(xiàn)的,它向智能中央服務器注冊所發(fā)現(xiàn)服務,邀請其加入到智能樓宇火災救難系統(tǒng)中。
(2)環(huán)境驅動的參數(shù)調整
iMote2智能傳感器上運行有濕度和溫度感知構件,ThresholdAdjust策略連接子將該構件名為與SmartBuildingController的構件綁定在一起,綁定是通過構件的行為調整端口進行,有效實現(xiàn)依據(jù)當前濕度和濕度等環(huán)境參數(shù)值調整火警閾值。實現(xiàn)參數(shù)調整的ThresholdAdjust策略連接子如圖4所示:
(3)狀態(tài)驅動的結構調整
Floor1構件是否可用或失效需要定期檢查,這一過程是由FloorSelection策略連接子來執(zhí)行的。如果Floor1構件失效,系統(tǒng)就會建立從FireDetector到Floor2構件的連接。實現(xiàn)結構調整的FloorSelection策略連接子如圖5所示:
之前的自適應軟件研究大多集中于單個結點上軟件如何實現(xiàn)自適應。然而,在分布式計算環(huán)境下,既需要了解個體自適應實現(xiàn)方式,又需要掌握群體自適應實現(xiàn)方式。在智能樓宇火災救難場景中,借助Auxo軟件自適應模型,實現(xiàn)系統(tǒng)的自適應性:智能樓宇火災救難系統(tǒng)通過傳感器收集的數(shù)據(jù),匯總到各樓層上下文聚合結點,智能樓宇中央服務器判斷出是否發(fā)生火災,當感知到火災發(fā)生,如果自身線路和設備失效,系統(tǒng)會自動進行重配置,啟動無線傳輸網絡,盡可能保證系統(tǒng)能夠正常運行,最終達到自動救災的目的。