1 前言
隨著無線網絡、移動計算和傳感器網絡技術的發展,普適計算的設想正逐漸變成現實。普適計算力圖使人們能夠以一種方便的方式實現在任意地點與任意對方的聯系,從而給傳統的應用帶來了新的挑戰。“普適計算”將我們從“以設備為中心”的計算模式帶入到“以人為中心”的計算模式,已成為當前計算模式發展的潮流。成為學術界和工業界研究的熱點和焦點。
在普適計算環境中,由于所面對的移動設備往往只具有有限的資源(如內存、電池和CPU),同時應用的執行上下文(如用戶的位置、手持設備的可視面積)也不斷發生變化,因此要求對應的應用必須是上下文相關的,從而使應用能夠根據上下文信息適配自身的行為。因此上下文相關技術成為普適計算環境中應用服務不可或缺的核心技術之一。不同的上下文來源所投遞的數據通常是異構的,并且更新頻率經常發生變化,同時要考慮準確性和異構的表達格式。這些統稱為上下文的質量QoC(Quality of Context),它是指用于描述信息質量的任何信息,而不是提供信息的過程和相應的硬件設備。如果不能反映上下文信息要建模的世界的真實狀態,信息將不正確;如果包括矛盾信息,則將導致不一致性的發生;如果上下文的某些方面不可知,則導致信息的不完整。學術界已展開大量的關于上下文質量的研究工作,但往往關注的只是上下文質量的部分方面,沒有從各個層面實現對上下文質量的綜合管理。
同時,中間件已經被廣泛地應用于分布式計算中。對于普適應用來說,通過中間件平臺能夠自動監測用戶、應用和外部環境間所發生的交互以及這些交互所導致的上下文變化,并做出相應的反應。而不需要用戶的干涉。為了提供上下文相關的服務,支持普適計算的中間件平臺必須能夠識別上下文的變化,同時通過聚合來提高上下文的質量或通過推理以產生更高級別的上下文,從而使應用能夠采用適當的動作來適配這些變化。在已有的研究中,很多上下文感知的系統已經先后被建立起來以支持普適應用,并開始關注上下文的質量管理問題。但這些系統只關注了上下文質量管理的部分方面。因此,我們基于上下文感知中間件提出了一種全面的針對上下文的質量管理框架,通過該框架能夠對上下文的質量進行有效的管理,從而能夠更好地支持普適應用的需求。
2 基于中間件的上下文質量管理框架
2.1 上下文感知中間件體系結構
圖1所示為我們前期工作中建立的基于上下文感知的中間件的體系結構。核心構件管理模塊為我們在前續工作所開發的遵循CORBA構件模型CCM的構件化中間件,為基于構件的應用、構件實例提供平臺無關的服務,為執行平臺資源提供了統一的平臺無關訪問。構件在容器中執行,為分布式應用的事務、安全、一致性和資源管理提供隱式的支持,從而使應用開發者能夠更著重于應用本身的開發。同時可以提供有效的商業邏輯的重用,容器能夠提供包括生命周期管理和構件發現在內的非功能性特性。
圖1 用于構件化應用的上下文感知中間件結構
同時,中間件提供下面3個核心服務模塊:
·上下文管理器模塊,對上下文進行監測和管理,以應對相關的變化。
·適配管理器模塊,對上下文的變化進行推理,并基于構件屬性的體系結構描述以決定相應的構件適配行為。
·配置器模塊,對應用變量進行重配置,以實現上下文相關的構件適配。
·自主管理器模塊,通過一定的自主策略,實現對構件和服務的動態綁定與替換。
上下文管理器負責傳感和捕捉上下文信息以及它們的變化,提供對上下文信息的訪問,并將上下文信息的變化通知適配管理器模塊。上下文管理器模塊同時負責存儲用戶對應用服務的需求和偏好,它必須提供靈活的上下文監測。我們將上下文管理器開發為一個構件化的框架,從而可以插入新的上下文傳感器模塊。上下文管理器模塊可以為上下文提供高級的推理操作。例如,它可以從基本的上下文元素中聚合出復雜的上下文元素或從上下文中派生出用戶需求。上下文管理器模塊同時保存上下文變化的歷史信息。
適配管理器模塊通過一定的適配規則負責對上下文的變化對應用所產生的沖擊進行推理。并為當前的上下文計劃和選擇最適合的應用變量。作為推理的一部分,適配管理器模塊需要在當前的上下文中訪問這些變量的應用。適配管理器模塊動態產生一個最適合上下文的應用變最的配置模板,通過這樣的配置模板來表示一個所有應用變量均被解決的模型。
配置器模塊負責協調應用的初始實例,并完成應用或設備的蓖配置。配置器模塊通過應用配置模板執行適配管理器決定的適配。適配管理器和配置器模塊基于公共的信息元素——配置模板進行操作,因而是緊耦合的關系。
2.2 基于本體的上下文質量管理模型
基于本體的建模方式通過定義一個公共的詞匯表以在一個具體的領域中進行上下文信息的共享,并且包括對領域中基本概念的可解釋的定義和這些概念之間的關系。因此,借助于本體對上下文信息進行建模能夠通過在用戶、設備和服務之間共享上下文信息的結構,以實現語義的互操作性。
我們將上下文本體劃分為上層本體和領域相關本體。上層本體是一個高層本體,捕獲一般的上下文知識。每一個領域中的上下文共享使用一種一般化的上下文模型建模的公共的概念,和細節特性有巨大的差別。因此.應用領域的分離鼓勵了一般概念的重用,并為定義應用相關的知識提供了一個靈活的接口,能夠減少上下文處理的負擔,并使得在移動客戶端上解釋上下文信息變得可能。領域相關的本體是一個定義了一般的概念細節和每個子領域的屬性的低層本體的集合。當環境發生變化時,每一個子領域中的低層本體可以從高層本體被動態地插入和拔出。
在文獻中,我們詳細分析了上下文處理的一般流程和上下文管理器的組成模塊。要進行上下文質量管理,首先要從上下文建模的方式上進行增強。
如圖2所示,在已有的基于本體的上下文的模型基礎上,我們為每個上下文對象添加了6個參數,通過這些參數中的一個或多個構成上下文質量管理元組。
圖2 基于本體的上下文質量管理模型
上下文的安全度(Security):上下文的安全性用來表示上下文安全地投遞給消費者的概率。這個參數能夠很好地用來反映上下文在傳遞過程中安全性保持的程度。
上下文的精度(Precision):定義為上下文信息描述一個現實世界形態的粒度。出于精度量化的目的,上下文信息值可以分為4種類型:布爾型、數值型、遞增集、加權集。
上下文的完整性(Completeness):定義為相對收集到的所有上下文的可用上下文的比率。這個參數用來衡量用戶定義的不同上下文之間的關系。
上下文的新鮮度(Freshness):是指上下文信息確定到被投遞給請求者期問所消耗的時問。因為過時的上下文對請求者來說是沒有用的,同樣上下文的新鮮度和信息的私有敏感度息息相關。上下文感知服務將評估應用的需求以及用戶的個人愛好,以決定所采取的緩存策略。
上下文的空間分辨度(Resolution):定義為上下文信息的實例可用的物理區域的精度。空間分辨度是一個用于保護用戶私人性的霞要指標,因為更本地化的信息代表了更高的私人敏感度。例如,用戶可能允許一個大樓安全系統訪問大樓中的人數。但不允許訪問這些人分別在什么房間中,從而避免系統推斷用戶是否在開會。
上下文的確定性(Certainty):定義為上下文信息的確定性。
2.3 基于質量管理的上下文處理流程
圖3所示為考慮質量管理的上下文管理器的結構。通過閾值、重復上下文檢測與消除、不一致上下文檢測與消除3個層次來完成對上下文的質量管理。其中閾值管理通過對上下文質量管理參數設定一定的閾值來對獲取的原始上下文進行初步的篩選,接下來在上下文的解釋和聚合過程對重復上下文和不一致上下文進行連貫的處理。
圖3 用于質量管理的上下文管理器結構
圖4給出了考慮質量管理的上下文處理過程。第一步為收集原始上下文,即在較短的周定時間內從不同的傳感器來源中收集原始的上下文信息。第二步是解析不一致性,我們之所以選擇在本步中解析不同原始上下文中存在的不一致性,是因為原始上下文中存在的不一致性將最終導致高層上下文中的不一致性,而這種高層的不一致性將是非常難以解決的。采用批處理的方式來處理原始的上下文,每一批原始上下文中的不一致性均在上下文推理之前清除完,從而使高層上下文的不一致性能夠被限制在一個特定的程度。第三步是重構原始上下文,將使用原始上下文更新上下文池并對相關性進行檢查。過時或不正確的高層上下文將在本步中被刪除。如果它們沒被刪除,將在推理后導致嚴重的上下文不一致性。然后,我們運用基于規則的推理以產生高層的上下文,這些推理器均配置為可追蹤,從而能夠在上下文池中對相關的圖進行更新。
2.4 重復上下文的檢測與丟棄
當系統完成基于閾值的原始上下文篩選后,接下來需要考慮的就是重復上下文的清除。在上下文模型中,為每個上下文設置了上下文ID。因此所謂蘑復上下文,就是具有相同的上下文ID,或者具有相同的上下文名/值對。
算法1給出了重復上下文的檢測方法。首先判斷新到達的上下文的ID號和名/值對。是否與現有的上下文重復。如果有上下文具有相同的ID號和名值對。則檢查這些上下文的來源。如果它們具有相同的來源,則它們分別來自不同的時段,根據相應的質量參數進行丟棄即可。如果它們來源不同,則上下文的收集過程存在錯誤,需要采取一定的檢查措施。
算法1 重復上下文檢測算法
INPUT:新到達的上下文
1.獲得上下文ID
2.如果存在具有相同ID的上下文
3.如果相應的上下文來源相同
4.如果具有相同的時間戳
5.找到重復的上下文,執行丟棄
6.否則檢查上下文的收集
7.如果找到具有相同名值對的上下文
8.按質量元組進行丟棄
2.5 不一致上下文檢測與丟棄
對于所檢測到的重復上下文,我們采取了前期工作中提出的如下的幾種不一致丟棄算法:
(1)全丟棄不一致性消除:對于檢測出的沖突上下文,要通過刪除相應的上下文來消除不一致性。所謂全丟棄不一致性消除是最為直觀的不一致性消除方法,即將產生沖突的上下文實例不加區分地完全刪除。
(2)最新上下文丟棄不一致性消除:相對于最新上下文丟棄不一致性消除算法來說,最新上下文丟棄不一致性消除并不丟棄所有發生沖突的上下文,因為很多沖突的發生是由于新進入的上下文實例和已有的上下文實例之間的沖突,甚至這部分已有的上下文實例可能即將加入上下文池進行存儲。因此通過比較上下文實例的starttime域和updatetime域,能夠判定上下文實例的新舊程度。
(3)基于確定性上下文丟棄:基于確定性上下文丟棄不一致性消除算法相對最新上下文丟棄算法具有更高的準確性,同時相對全丟棄不一致性消除算法能夠為應用保留更多的上下文信息。但基于確定性的上下文丟棄算法需要對每個上下文實例進行確定性的判定和比較,從而會加大算法的額外開銷,降低算法的效率。
(4)基于相關性上下文丟棄:對于不同的上下文來說,更頻繁的原始上下文比不頻繁的那些上下文具有更高的優先級,也可能是正確的上下文。然而。要為不同種類的上下文比較頻率是非常困難的。基于這個原因。考慮這些上下文彼此之間的相關性,也就是它們被使用的頻繁程度為每一個原始上下文進行度量,具有更大的相對頻率值的上下文近來更為頻繁,因此它們更可能是正確的上下文。當沖突發生時,丟棄具有較小的相對頻率值的上下文。下式為計算原始上下文的相對頻率的方法。
3 性能測試
如圖5所示,我們比較和分析了全丟棄、最新上下文丟棄、基于確定性上下文丟棄和基于相關性上下文丟棄幾種不一致性消除算法的作用。
圖5 非一致性解析的正確性概率分析
實驗中共使用3臺計算機,一個4G RAM、2 Xeon CPUs的工作站和兩個通過局域網互聯的PC客戶端。一個客戶端負責充當原始上下文的提供者,而另一個則充當上下文的消費者。在實驗中,為了簡化對上下文信息正確性的分析,只使用了兩種類型的傳感器。要指出的是,在這個試驗中盡管只使用了兩種類型的傳感器。我們的體系結構和算法也能夠不做任何修改地適用于更多的傳感器類型,因為它們針對語義上下文設計,而非物理傳感器。當引入新的傳感器類型時,唯一需要做的就是增加特定的原始上下文提供者。
從圖5中可以看出,基于確定性和基于相關性的不一致性消除算法具有更好的性能。同時在工作站上對上述算法的性能進行了比較和分析,發現隨著內存中總的上下文的增加,算法的效率將會相應地下降。
圖6以基于相關性的丟棄算法為例,當緩沖區上下文實例為1000~2000時,使用的時間為1.5s~2.0s。而在上下文實例為3000~4000時,需要6s。同時,全丟棄算法和最新丟棄算法相對來說具有較低的不一致性處理時間,而基于確定性的丟棄算法由于需要對上下文實例的確定性進行判定,因此具有相對最高的處理時間。
圖6 非一致性解析的性能分析
同時我們對幾種不同算法的錯誤率進行了比較。為了進行比較,我們將3個應用分別運行了600次(總共30個大循環,每個循環20次),并記錄了每一格循環的錯誤率。在試驗中,所有被記錄下來的錯誤是應用的不協調的行為,而系統的錯誤,如內存溢出等則不加以考慮。從試驗結果中同樣可以看出,隨著正確性概率的提高,各上下文不一致性管理機制能夠在不同程度上提高上下文感知應用的健壯性,大量由于上下文沖突所產生的不協調的行為被減少,從而提高了上下文感知應用的性能。
結束語上下文感知系統通常利用來自于不同的物理傳感器的感知上下文信息。而由于傳感器的易錯性,所產生的上下文信息的質量無法得到有效的保證。現有的上下文質量方面的研究往往只關注上下文質量的某一方面。因此,在前期工作的基礎上,本文提出了基于中間件的上下文質量管理框架,實現了對上下文質量的多層次的管理。實驗證明,該方法能夠有效提高上下文質量的管理效果。
核心關注:拓步ERP系統平臺是覆蓋了眾多的業務領域、行業應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業務領域的管理,全面涵蓋了企業關注ERP管理系統的核心領域,是眾多中小企業信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://www.guhuozai8.cn/