專利名稱::一種面向普適計算環境的構件化上下文處理方法
技術領域:
:本發明涉及普適計算領域,具體涉及一種面向普適計算環境的構件化上下文處理方法。
背景技術:
:計算技術的發展與普及使計算機得以融入人們的工作和生活,"無時無處不在而又不可見"的普適計算時代正在到來。普適計算實現了物理世界和信息世界的無縫整合,而這一整合的關鍵在于對上下文的處理。所謂上下文是指物理世界和信息世界可檢測的環境信息,例如光強、壓力、位置、網絡帶寬、計算資源狀態等。普適計算環境下的應用系統能覺察環境中有關的上下文,并據此對自身進行調整,從而使得用戶能夠近乎潛意識的獲取計算服務,計算得以真正融入生活。例如,在智能博物館場景中,普適計算環境下的應用1M可以按照游客當前位置、游客在展臺停留時間等上下文提供個性化的文物介紹給游客,從而使游客獲得更佳的參觀體驗。普適計算環境下的上下文由上下文名稱和上下文值組成,對上下文的處理包括上下文的獲取、加工和分發上下文獲取是指從傳感器直接獲取原始數據;上下文加工是對原始數據進行篩選、匯集和去除冗余等處理;上下文分發是指將加工后的上下文發送給感興趣的軟件實體(如特定應用程序)。1994年,Schilit提出鍵值(Key-Value)對的方法處理上下文,該方法將上下文組織成形式為上下文項和上下文值的表結構進行存儲和處理,直觀簡單,但不適合復雜上下文的處理。2002年美國佐治亞大學的Dey等開發了ContextToolkit工具管理上下文,該工具將傳感器在中間件層以對象的方式封裝為具有統一接口的軟件實體Widget,Widget獲取的上下文可供應用程序直接使用。SOCAM中的contextprovider,EEM框架中的ContextRepresenter等均釆用了類似的技術方案,但它們普遍基于過程的上下文訪問接口,上下文處理過程在編譯時被固化到程序中,可重用性和靈活性不強。構件是具有約定式規范接口以及明確依賴環境的軟件組裝單元,可以實現二進制級別的大粒度重用,提高軟件開發效率和質量。構件接口是構件方法與屬性的集合,其中方法是構件對外提供的功能,屬性是構件對外暴露的狀態。構件容器是構件的運行環境,通過容器與構件之間的標準化接口可以很方便地進行構件的部署與升級,降低應用系統開發和維護的復雜度。OMG(ObjectManagementGroup)對象管理組織制定的CORBA(CommonObjectRequestBrokerArchitecture)標準是分布式異構系統互操作的工業標準,CORBA構件模型(CORBAComponentModel,CCM)是OMG組織制定的一個完整的用于開發和部署分布式應用的服務器端構件模型規范,包括構件容器、構件開發方法等內容,是目前主流的構件規范之一。構件技術所具有的支持對較大規模的數據的獲取和加工、高度可重用性、可靈活地動態配置管理等特性對普適計算環境下上下文的處理具有重要意義,如何將構件技術與普適計算環境下的上下文處理技術相結合,提供一種普適計算環境中的構件化上下文處理方法是本領域技術人員極為關注的技術難題。目前還沒有公開技術資料涉及構件和上下文處理有機結合的成果或成熟技術方案。
發明內容本發明要解決的技術問題是為普適計算環境提供高度可重用、可靈活地動態配置管理的處理上下文的方法。為了實現上述目的,本發明使用符合CCM規范的構件封裝上下文獲取和加工過程,對符合CCM規范的構件容器擴展以完成上下文的分發。本發明包括以下五個步驟第一步,對符合CCM規范的構件容器進行擴展以支持上下文處理,包括增加上下文列表和策略執行部件,方法是(1)增加上下文列表以存儲上下文信息。在CCM構件容器中增加上下文列表。上下文列表為二維表格,表格中每一項記錄一個上下文,包括構件名(CORBA字符串類型)、上下文名稱(CORBA字符串類型)和上下文值(CORBAAny類型)三個字段。其中構件名是指封裝該上下文獲取和加工過程的構件名稱。此外,上下文列表設計有新增記錄、刷新記錄和讀取記錄的接口,供構件和容器中的策略執行部件訪問。(2)增加策略執行部件以執行策略。上下文處理包括上下文獲取、加工和分發。上下文的獲取和加工過程被封裝成構件,而上下文如何分發則以策略描述,并在構件容器中由策略執行部件執行。策略為基于XML(ExtensibleMarkupLanguage)的一組"條件-動作"規則,說明當上下文發生變化時應調用的構件及構件方法。策略執行部件負責解釋執行策略,監視上下文列表中的值并據之調用構件。策略執行部件由策略載入接口、策略執行者、策略執行者指針數組、上下文列表監視部件組成。其中*策略載入接口是一個CORBA對象,它使用符合W3C(WorldwideWebConsortium,萬維網協會)標準的XML解釋器解析待載入策略,并動態生成相應策略執行者。*策略執行者由一組CORBA對象和一組驅動接口組成,CORBA對象釆用結構(struct)的數據結構來存放策略所有信息,每一項對應一條策略,包括策略條件、動作類型、構件名、構件方法數據項。驅動接口對外提供驅動方法,驅動方法首先通過條件檢查語句確定策略的條件部份是否滿足,在滿足時通過CORBA的POA(PortableObjectAdapter,對象適配器)定位和調用該策略對應的構件。*策略執行者指針數組是二維指針數組,第一維是策略條件部分所涉及的上下文,第二維是該策略所對應的策略執行者的指針。所有策略執行者的指針均存儲在該數組中。*上下文列表監視部件是一個CORBA對象。它定期調用上下文列表的讀取記錄接口以獲取上下文值的變化,當上下文值變化時依據對應的上下文名稱在策略執行者指針數組的第一維中進行查找,若匹配上則調用該項策略執行者指針數組第二維對應的策略執行者的驅動方法;第二步,基于CCM規范開發構件,以封裝上下文獲取和加工過程上下文獲取和加工的過程以構件的形式封裝,首先根據CCM規范開發構件,然后在其構件實現中調用調用容器中上下文列表的接口每一個封裝上下文獲取和加工過程的構件均在該構件的初始化函數中調用容器中上下文列表的新增記錄接口,將本構件所提供的上下文加到上下文列表中,并在構件的其它部份調用上下文列表的刷新記錄接口來更新上下文列表中所存儲的上下文值。第三步,開發策略以描述如何進行上下文分發如前所述,策略為一組條件判斷的規則,說明當上下文發生變化時應調用的構件及構件方法。策略結構為"IF-THEN"形式,IF部份以"上下文名稱,上下文值的變化描述"形式指定哪個上下文發生何種變化,THEN部份說明此時應當調用哪個構件來進行處理。策略以XML格式的文件存儲在存儲器中。第四步,載入和運行構件使用符合CMM構件容器標準的構件載入機制加載封裝了上下文獲取和加工過程的構件和其它普通構件,并使用CMM構件容器標準的構件實例化機制驅動這些構件的運行。封裝了上下文獲取和加工過程的構件持續地將最新的上下文通過上下文列表的刷新記錄接口存入上下文列表。第五步,載入和激活策略。策略載入接口從硬盤或者傳感器等嵌入式設備的存儲器中讀取XML格式的策略文件,動態生成相應的策略執行者。上下文列表監視部件從上下文列表讀取記錄的接口獲知上下文值的變化,當上下文值變化時依據上下文名稱在策略執行者指針數組的第一維中進行查找,若匹配上則調用該項策略執行者指針數組第二維對應的驅動方法,驅動策略執行者執行其CORBA對象中所存儲的策略,調用該策略對應的構件方法,完成上下文分發動作。采用本發明可以達到如下的有益效果通過將構件技術引入到普適計算上下文處理過程中,使得上下文獲取和加工過程具備高度可重用性,使得上下文的獲取、加工和分發具有可靈活的動態管理和配置的特點。具體而言,有如下一些有益效果1.本發明以構件的形式封裝上下文的獲取和加工過程,支持對較大規模的上下文數據的獲取和加工,同時使得上下文的獲取和加工過程可以被二進制級大粒度重用;同時構件自身具有可靈活的動態管理和配置的特點,使得上下文的獲取和加工過程可以依環境或需求不同而通過標準構件技術進行動態管理或配置。2.本發明使用策略來描述如何進行上下文的分發,且策略被構件容器解釋執行,從而應用程序在開發和運行時,可以根據環境或用戶需求為應用程序配置不同的策略,使得上下文的分發可重用,應用程序能更好地為用戶提供服務。3.CCM等傳統構件技術未考慮上下文處理機制,無法有效應用于普適計算環境。本發明在保持與CCM構件技術兼容性的基礎上,通過擴充使之能夠支持普適計算環境下上下文的處理。圖l是本發明的總體流程圖2是本發明第一步中對CCM構件容器進行擴展的示意圖。具體實施例方式下面結合實施例對本發明做進一步說明實施例以火警監控場景為例。考慮到通常火警監控系統由煙霧傳感器、噴淋閥門、火警燈等組成,我們設計了如下火警監控場景某房間內部有基于煙霧濃度傳感器、噴淋閥門和火警燈,當探測到房間內部某個區域煙霧濃度高于指定閥值時,執行火警響應動作火警燈閃動、噴淋閥門打開。如圖1所示,其上下文處理步驟如下第一步,如圖2所示,對符合CCM規范的構件容器進行擴展,增加上下文列表和策略執行部件。上下文列表中按照上下文的構件名、名稱和上下文值的格式存儲上下文,策略執行部件由動態生成的策略執行者、策略執行者指針數組、上下文列表監視部件、策略載入接口組成。第二步,基于CCM規范開發構件以封裝上下文獲取和加工過程本實施例中煙霧濃度為待處理的上下文,開發煙霧濃度獲取構件以封裝該上下文獲取和加工過程。煙霧濃度構件的開發流程是首先使用CCM的IDL3(InterfaceDeclarationLanguage)定義構件接口,再使用具體的編程語言編寫實現。在編寫實現時,在構件初始化函數中調用上下文列表的新增記錄接口,將本構件所提供的煙霧濃度上下文加到上下文列表中;定期從煙霧傳感器讀取煙霧濃度值,并調用上下文列表的刷新記錄接口更新上下文列表中所存儲的煙霧濃度上下文值。此外,本實施例中還開發一個火警響應構件,完成火警燈閃動、噴淋閥門打開的功能,對外提供火警響應開啟和關閉的方法AlarmOn()和AlarmOff()。該構件是普通CCM構件,開發方法與普通CCM構件完全一致。第三步,開發策略以描述如何進行上下文分發使用XML描述如下策略"當煙霧濃度上下文值大于[閾值]時,則調用火警響應構件的AlamrOn()方法"、"當煙霧濃度上下文值小于[閾值]時,則調用火警響應構件的AlamrOff()方法"。其中[閾值]為某一具體的值,實際場景中當煙霧濃度大于該值即認為發生火警。并將策略存為XML格式的策略文件。第四步,載入和運行構件通過構件容器載入和運行煙霧濃度獲取構件及火警響應構件。煙霧濃度獲取構件定期將最新的煙霧濃度存入到構件容器的上下文列表中。第五步,載入和激活策略策略載入接口從存儲器中讀取第三步生成的策略文件,動態生成相應的策略執行者。上下文列表監視部件從上下文列表讀取記錄的接口獲知煙霧濃度上下文值的變化,當煙霧濃度上下文值變化時依據上下文名稱在策略執行者指針數組的第一維中進行查找,若匹配上則調用該項策略執行者指針數組的第二維對應的驅動方法,驅動該策略執行者執行其存儲的策略,完成調用火警響應構件的AlarmOn()或AlarmOff()方法,對火警燈和噴淋閥門進行控制。在本實施例中,煙霧濃度獲取構件可以被智能家居或其它應用重用,同時當煙霧濃度傳感器升級或是欲進行基于紅外的火警探測時,只需使用CCM的構件動態部署機制動態切換或升級構件即可;當火警監測應用程序被用于廚房、洛室等具有不同火警閾值的場所時,只需由管理員或用戶在線修改策略即可。本實施例是本發明的一個簡單實現,該過程可以方便的推廣到其它智能博物館監控等基于構件的大型普適計算應用中,為普適計算環境提供高度可重用、可靈活地動態配置管理的處理上下文的方法。權利要求1.一種面向普適計算環境的構件化上下文處理方法,其特征在于包括以下五個步驟第一步,對符合CCM規范的構件容器進行擴展,增加上下文列表以存儲上下文信息,增加策略執行部件以執行策略,方法是首先在CCM構件容器中增加上下文列表,上下文列表為二維表格,表格中每一項記錄一個上下文,包括構件名、上下文名稱和上下文值三個字段,構件名指封裝該上下文獲取和加工過程的構件名稱,上下文列表設計有新增記錄、刷新記錄和讀取記錄的接口;再在CCM構件容器中增加策略執行部件,策略執行部件由策略執行者、策略執行者指針數組、上下文列表監視部件、策略載入接口組成策略載入接口是一個CORBA對象,它使用符合W3C標準的XML解釋器解析待載入策略,并動態生成相應策略執行者;策略執行者由一組CORBA對象和一組驅動接口組成,CORBA對象采用結構的數據結構來存放策略所有信息,每一項對應一條策略,包括策略條件、動作類型、構件名、構件方法數據項;驅動接口對外提供驅動方法,驅動方法通過條件檢查語句確定策略的條件部份是否滿足,在滿足時通過CORBA的對象適配器POA定位和調用該策略對應的構件;策略執行者指針數組是二維指針數組,第一維是策略條件部分所涉及的上下文,第二維是該策略所對應的策略執行者的指針;上下文列表監視部件是一個CORBA對象,它定期調用上下文列表的讀取記錄接口以獲取上下文值的變化;第二步,基于CCM規范開發構件,以封裝上下文獲取和加工過程首先根據CCM規范開發構件,然后調用調用上下文列表的接口每一個封裝上下文獲取和加工過程的構件均在該構件的初始化函數中調用上下文列表的新增記錄接口,將本構件所提供的上下文加到上下文列表中,并在構件的其它部份調用上下文列表的刷新記錄接口來更新上下文列表中所存儲的上下文值;第三步,開發策略以描述如何進行上下文分發,策略為一組條件判斷的規則,說明當上下文發生變化時應調用的構件及構件方法,每個策略以文件形式存儲在存儲器中;第四步,載入和運行構件使用符合CMM構件容器標準的構件載入機制加載封裝了上下文獲取和加工過程的構件和其它普通構件,并使用CMM構件容器標準的構件實例化機制驅動這些構件的運行,封裝了上下文獲取和加工過程的構件持續地將最新的上下文通過上下文列表的刷新記錄接口存入上下文列表;第五步,載入和激活策略策略載入接口從存儲器中讀取策略文件,動態生成相應的策略執行者;上下文列表監視部件從上下文列表讀取記錄的接口獲知上下文值的變化,當上下文值變化時依據上下文名稱在策略執行者指針數組的第一維中進行查找,若匹配上則調用該項策略執行者指針數組第二維對應的驅動方法,驅動策略執行者執行其CORBA對象中所存儲的策略,調用該策略對應的構件方法,完成上下文分發動作。2.如權利要求1所述的面向普適計算環境的構件化上下文處理方法,其特征在于所述策略為"IF-THEN"形式,IF部份以"上下文名稱,上下文值的變化描述"形式指定哪個上下文發生何種變化,THEN部份說明此時應當調用哪個構件來進行處理。3.如權利要求1所述的面向普適計算環境的構件化上下文處理方法,其特征在于策略文件為XML格式。全文摘要本發明公開了一種面向普適計算環境的構件化上下文處理方法,要解決的技術問題是為普適計算環境提供高度可重用、可靈活地動態配置管理的處理上下文的方法。技術方案是先對符合CCM規范的構件容器增加上下文列表和策略執行部件,再基于CCM規范開發封裝上下文獲取和加工過程的構件,然后開發策略以描述如何進行上下文分發,接著載入和運行構件,完成上下文獲取、加工過程,最后載入和激活策略,完成上下文分發過程。本發明支持對較大規模的上下文數據的獲取和加工,同時上下文的獲取和加工過程既可被重用,又可以動態管理或配置,使用策略來描述如何進行上下文的分發使得上下文的分發可重用,能有效應用于普適計算環境。文檔編號G06F9/46GK101295261SQ20081003157公開日2008年10月29日申請日期2008年6月25日優先權日2008年6月25日發明者博丁,進馮,史殿習,歐陽建權,王懷民申請人:中國人民解放軍國防科學技術大學