專利名稱:一種基于ContextFS上下文文件系統的文件服務方法
技術領域:
本發明涉及文件系統領域,主要是一種基于ContextFS上下文文件系統的文件服務方法。
背景技術:
隨著普適計算的發展和下一代存儲技術的逐漸成熟,大量的信息以文件的形式存放于各種文件系統中,傳統的文件系統與其它分布式文件存儲系統采用簡單的目錄結構來組織文件,目錄名僅僅作為一種的解決命名空間沖突的手段,而將復雜煩瑣的文件分類、檢索工作轉嫁給用戶;另一方面,傳統文件系統所支持的文件元數據匱乏,往往僅包含了創建時間、修改時間、所有人、讀寫權限等簡單元數據,這些元數據無法對基于內容的文件分類與檢索提供幫助;更進一步,以單個文件為最小單位來進行權限控制的手段缺乏靈活性,且對同一內容文件的不同片斷的多次存儲造成大量存儲資源的浪費。
如何解決這些傳統文件系統的問題,同時又能主動地為用戶提供正確、即時的數據服務,并且兼容基于現有傳統文件系統上的應用,基于ContextFS上下文文件系統提供了一種完美的解決方案。
發明內容
本發明要解決上述技術所存在的缺陷,提供一種基于ContextFS上下文文件系統的文件服務方法。
本發明解決其技術問題所采用的技術方案這種基于ContextFS上下文文件系統的文件服務方法,主要包括如下步驟1.1)、利用空間中或用戶隨身攜帶的各種可計算設備和傳感器獲得用戶在空間中的上下文信息,并確定用戶的身份;1.2)、根據用戶歷史操作或自定義偏好的歷史數據來確定該用戶的偏好上下文;1.3)、根據文件系統中的文件元數據和上下文信息組織構建虛擬目錄與虛擬文件,即文件系統以虛擬目錄與虛擬文件的形式向用戶提供適合當前上下文環境的數據服務;1.4)、當用戶訪問虛擬目錄與虛擬文件時,用戶和環境上下文信息被文件系統記錄并和文件語義信息一同保存并發給上下文文件系統。
本發明有益的效果是基于ContextFS上下文文件系統是一種以主動服務為特性,利用上下文驅動目錄、文件組織的分布式文件系統。為了兼容現有的文件系統與基于現有傳統文件系統上的應用,上下文文件系統處于本地文件系統之上,應用程序之下的中間層,它對應用提供所有標準文件系統支持的操作接口,同時它能夠根據獲得的上下文,與本地文件系統中文件的元數據,來重新組織生成虛擬目錄與虛擬文件。虛擬目錄與虛擬文件采用統一的命名空間并進行副本管理,有效的解決了多個用戶對同一個文件進行讀寫的情況,同時又維持命名空間的一致性。并可根據用戶攜帶的移動設備的計算能力,將原文件轉換成相應格式。
圖1是本發明的系統結構示意圖;圖2是本發明上下文文件系統數據流圖;圖3是本發明的系統接口部分結構示意圖;圖4是本發明的VFS體系結構示意圖;圖5是本發明的文件系統邏輯層次圖;圖6是本發明的上下文文件系統體系結構圖;具體實施方式
下面結合附圖和實施例對本發明作進一步介紹本發明所述的這種基于ContextFS上下文文件系統的文件服務方法,主要包括如下步驟1.1)、利用空間中或用戶隨身攜帶的各種可計算設備和傳感器(激光、紅外、聲納、GPR定位、成像儀器等)獲得用戶在空間中的上下文信息(包括時間、位置等信息),并確定用戶的身份;1.2)、根據用戶歷史操作或自定義偏好的歷史數據來確定該用戶的偏好上下文;1.3)、根據文件系統中的文件元數據和上下文信息(如何時何地被任何人讀寫的信息)組織構建虛擬目錄與虛擬文件,即文件系統以虛擬目錄與虛擬文件的形式向用戶提供適合當前上下文環境的數據服務;1.4)、當用戶訪問虛擬目錄與虛擬文件時(讀、寫、創建、刪除、移動等文件系統基本操作),用戶和環境上下文信息被文件系統記錄并和文件語義信息一同保存并發給上下文文件系統。
所述的虛擬目錄與虛擬文件采用統一的命名空間并進行副本管理,解決各種邏輯問題與沖突,支持多個用戶對同一文件進行修改。當用戶從其虛擬目錄中創建新文件或移動其他文件到該虛擬目錄時,文件將繼承所有當前上下文;當用戶從虛擬目錄刪除文件時,僅刪除該文件的當前上下文,使得其不再出現于當前虛擬目錄,當文件失去所有上下文時該文件才被刪除。所述的副本管理具體步驟如下
2.1)、用戶A對本文件系統中文件F發出讀取請求,系統檢查其權限,如果沒有讀權限則返回讀失敗;如果有讀權限,則讀請求會立即將請求的數據返回給用戶A;2.2.1)、用戶A對本文件系統中文件F發出寫入請求,系統檢查其權限,如果沒有寫權限則返回寫失敗;如果有寫權限,則判斷文件F的所有者是否是用戶A,如果是用戶A的文件則返回寫成功;2.2.2)、如果不是用戶A的文件,則創建用戶副本,文件F被復制成文件F.A,文件F.A的元數據被寫入文件元數據庫,這個副本除了所有者、存儲的物理位置和原文件不同外,其它文件元數據都和原文件一致,文件系統設定優先顯示用戶自身創建的文件F.A,對文件F的操作映射到文件F.A中,在文件F.A中寫入數據并返回寫成功到用戶A。
主動服務的上下文文件系統支持多種網絡和各種可計算設備訪問,當用戶采用不同的可計算設備(普通PC機、智能手機、PDA)訪問該文件系統時,根據用戶所在設備的計算能力轉換成適于該設備讀取的虛擬文件形式。如某PDA不能支持對PPT文檔的瀏覽,文件系統自動將PPT文檔轉換成該PDA能夠顯示的圖片格式,并使該PPT文檔在虛擬目錄中以圖片形式出現,具體的格式轉換主要包括下述步驟3.1)、根據可計算設備的配置信息,得到可以量化比較的權值,通過權值大小設定用戶可計算設備的計算能力,如果該設備上的程序中定義了格式轉換的規則,則按照規則轉換;如果未定義規則,則根據文件系統對設備計算能力的劃分選擇最接近該設備計算能力能處理的文件類型;3.2)、文件格式轉換時采用鏈式轉換,格式轉換程序作為上下文文件系統的一個插件,負責生成轉換鏈,并根據轉換鏈對各種文檔進行格式轉換,一個文件經過至少一次格式轉換,最終轉成相應格式,次轉換的中間結果可被保存起來;3.3)、格式轉換程序在多條轉換鏈中根據各個轉換所要消耗的計算能力,設定權值,并根據權值選擇合適的轉換鏈進行轉換。
所述的上下文文件系統根據文件語義和上下文信息自動組織文件內容,根據用戶所在場景和所需內容,確定用戶角色,結合文件語義,將文件的部分內容以獨立文件的形式提供給用戶。
1.上下文自動獲取如圖1所示,上下文獲取主要分以下步驟首先用戶態程序——上下文控件被安裝在空間中各個可計算設備和傳感器上。上下文控件由JAVA實現,其核心可以應用于多種平臺。控件可以利用空間中的無線網絡,通過發送廣播包的形式向空間中的上下文控件發現程序發送注冊信息。注冊信息包括設備及其所有者的相關信息,如當前設備類型、所有者名稱等等。
控件完成注冊后,控件發現程序根據空間中各個上下文訂閱程序的需求,發送新加入控件設備的IP地址和端口到所需的訂閱程序,其后訂閱程序將主動連接控件的端口,獲取從控件發來的上下文。訂閱程序為上下文文件系統服務,提供經過初步處理的上下文數據。訂閱程序可以根據其訂閱的多個不同控件發來的消息推斷出現在發生的事件,上下文訂閱程序也會將這些推斷結果也以上下文的形式發送給上下文文件系統。
如當前的時間是上午9點,根據日程安排,9點將有一個討論會,與會人員有A、B、C三人。那么當A或其它人進入智能空間(存在可計算設備和多種傳感器的空間)時,A所攜帶設備上的控件程序就會將A進入空間的上下文發送給上下文訂閱程序,訂閱程序根據A日程安排和當前的時間(9點)推斷出A的活動為參與討論會,并將這個推斷結果作為事件上下文發送給文件系統。
同時上下文訂閱程序也可以為歷史上下文數據庫服務,通過訂閱所有的上下文,并將這些上下文進行分類,數據挖掘并將結果和上下文數據一并寫入歷史上下文數據庫,訂閱程序需要專門開發以適應不同的應用場景,一個空間中也可以運行多個上下文訂閱程序。
當安裝了上下文控件程序的用戶設備進入智能空間后,負責向上下文文件系統提供上下文的訂閱程序就可以得到該設備的類型和相關信息,如能夠支持的文檔類型(txt、html、pdf...)和媒體文件類型(mp3、wma、avi...);并可以從歷史上下文數據庫中獲取用戶的偏好;從被訂閱的其它控件程序(如傳感器上安裝的控件程序)上獲取時間、位置上下文;以及根據上下文采用人工智能方法推斷出來的信息(如當前真正發生多個事件)。這些都被組織成上下文,一并發給上下文文件系統。
2.上下文文件系統實現如圖2,3所示,上下文文件系統的目標是利用當前環境上下文,自動的為用戶提供文件服務。系統的實現基于Linux內核。上下文文件系統在VFS(Virtual Filesystem Switch)之下,由內核向下提供的文件系統接口。ContextFS上下文文件系統實現內核提供的各個文件系統接口,完成文件系統的各個功能。
在Linux內核中為了實現對多種文件系統的支持,采用了VFS的結構,通過函數指針的方式將各種文件系統(如nfs,ext3,xfs等)掛載到VFS之下,使得用戶應用程序可以通過同一個文件系統操作界面,對于各種不同的文件系統(以及文件)進行操作。
如圖4所示,ContextFS上下文文件系統作為一個與EXT3、NFS等文件系統相同內核模塊,實現了VFS的接口,并可以被VFS調用。用戶可以通過mount(掛載)命令將上下文文件系統掛載到本地設備上,并用umount(卸載)命令卸載該文件系統。
以用戶讀為例,假設用戶空間某個應用程序要讀一個虛擬文件中,從偏移offset開始,大小為size的某段內容,并已經通過了權限的驗證。對于這個讀請求的系統調用,最終會被轉到內核空間中VFS模塊,由于VFS中采用了函數指針的形式,這個操作被進一步轉移到VFS下的ContextFS中具體執行,由于ContextFS是一個虛擬文件系統,它本身并不存儲文件和文件元數據,所以ContextFS會喚醒一個用戶態的守護進程,將這個請求封裝并轉發給那個守護進程,同時ContextFS自己進入等待狀態。用戶態進程首先查詢文件元數據庫,得到文件的真實物理存儲位置,文件可能存儲在本地文件系統中(如EXT3、NTFS等),也有可能存儲在其它網絡文件系統中(如NFS、CIFS等)。得到文件的真實存儲位置后,這個用戶空間中的進程會用同樣的方法通過VFS從對應的文件系統中取得相應的數據。最后,用戶空間的守護進程將喚醒并發送結果到ContextFS,ContextFS將結果返回給VFS,并最終返回給發送讀請求的用戶程序。
3.虛擬目錄原理與實現如圖5所示,虛擬目錄是上下文文件系統中的重要組成部分,虛擬目錄作為虛擬文件系統中提供給上層應用的接口,根據當前上下文自動完成利用語義組織文件;文件格式轉換如圖5標號(3);文件部分內容轉換如圖5標號(5);本地、遠程文件虛擬映射如圖5標號(1)中等功能。
在上下文文件系統中,底層文件系統上的文件,對應了真實存在于物理磁盤上的文件,它們被記錄在一個本地(即運行上下文文件系統的服務器)或遠程數據庫中,該數據庫維護文件的元數據,定義該數據庫為文件元數據數據庫。
文件元數據數據庫除了記錄上下文文件系統中所有文件的大小、存儲位置、所有者、創建者、創建位置、創建時間和創建事件等文件元數據外,還記錄了文件語義。文件語義是文件內容和形式相關的信息,它包括文件格式、可接受轉換的類型、各個類型以何種形式出現(可讀寫,只讀,只寫……)、文件內容摘要、文件片斷以及片斷語義。
如圖5所示,根據元數據數據庫中所記錄的底層文件系統中的文件,上下文文件系統在其上層構建虛擬文件,虛擬文件是對底層文件系統中文件的同名鏡像如圖5標號(2)、更名映射如圖5標號(4)、格式轉換后的文件如圖5標號(3)和部分內容的映射如圖5標號(5)。虛擬文件的動態生成是由上下文環境確定的,并被最終呈現在虛擬目錄中以供上層應用調用。
其中同名鏡像是指,上下文文件系統不對遠程文件系統中的文件內容以及文件名進行任何修改,僅僅利用文件元數據,直接提供文件給上層虛擬目錄;更名映射是指,上下文文件系統不對遠程文件系統中的文件內容進行修改,僅僅對文件進行了簡單的重命名(為了避免同名沖突,或是解決不同系統中長文件名、編碼等顯示問題等);格式轉換是指,上下文文件系統將根據某些規則(上下文信息,比如可計算設備的性能、當前負載等)對文件進行格式轉換,并將轉換后的文件提供給用戶(格式轉換可以是對整個文件的部分也可以是全部,可以多次轉換也可以一次轉換,轉換后的產生的信息可以緩存,可以保留(默認),也可以立即丟棄,這些和環境上下文、文件語義定義以及系統規則有關);文件部分內容的映射是指根據文件的語義描述對文件進行分斷,并將這些片斷以獨立文件的形式提供給用戶(文件片斷可以是對文件的虛擬映射也可以是對文件內容抽象的真實存在)。
4.下文文件系統體系及其應用場景上下文文件系統的體系結構如圖6所示,分成后臺、中間層、和用戶接入層三個部分。后臺的作用就是提供圖5中所示的底層遠程文件系統中的文件,它可由專用文件服務器、普通PC等日常工作設備(有良好網絡帶寬,和比較強的計算能力,但是不方便移動,操作系統Windows,Linux或MAC等)組成;后臺通過本地應用程序連接文件元數據數據庫。并對其本地文件系統中的文件進行元數據標記和語義標記,并通過相應的共享協議將這些文件共享給中間層。
中間層是運行ContextFS上下文文件系統的文件服務器,操作系統Linux,并支持多種文件共享協議如NFS(Linux下文件共享)/CIFS(windows下文件共享)/AFS(MAC下文件共享),這使得中間層可以訪問到各種平臺上組成的后臺所提供的文件,并構建圖5中的倒數第二層——底層文件系統中的文件。更進一步中間層獲得從各個傳感器過來的上下文信息(包括用戶接入層中接入設備的計算能力),根據上下文構建圖5中的虛擬文件系統中的文件;同時中間層系統支持有線與無線網絡,使得它能為各種平臺上的各種接入設備(有線設備、無線設備)提供文件服務,即以圖5中最頂層的虛擬目錄的形式提供給用戶接入層中的各種可計算設備使用。
上下文文件系統支持以構建場景為目的的虛擬場景建立,也支持以搜索、演示為目的的場景再現和對場景的時間遍歷。
以幾個應用場景為例子說明其調用過程場景1.假設在一個博物館參觀活動中,用戶沒有導游陪同,但卻需要獲得對當前看到的館藏物品的更詳細信息時,如果博物館擁有ContextFS上下文文件系統,用戶就可以使用各自的攜帶的可計算設備讀取適合自身計算能力的數據,比如用戶攜帶了智能手機,手機支持對圖片,視頻的瀏覽,但不能支持doc,ppt,excel等office文檔的瀏覽,這時當用戶訪問上下文文件系統時(列目錄的時候),用戶的用戶名(userid)會被傳入,上下文文件系統根據用戶的用戶名來查找與之相關的上下文信息(包括可能的歷史數據),通過這些上下文信息,文件系統了解到用戶所在的位置等信息,推理出用戶現在進行的活動,并了解到用戶所能提供的計算能力(即攜帶的可計算設備的計算能力),這時文件系統搜索文件元數據數據庫,取得與當前用戶需要的相關信息并以文件的形式列出在其的虛擬目錄中,這時原本的doc,ppt文檔在用戶的手持式設備上看起來就變成了jpg,gif文檔,當用戶訪問這些文檔時,格式轉換就發生了,文件系統使用格式轉換程序或調用格式轉換庫對文檔進行格式轉換,如用VBA(Visual Basic Scripting)讀取office文檔的內容,并將它們輸出到圖片文件中,這時用戶就可以看到文檔的內容了。
場景2.假設公司需要召開一個討論會,討論會的主題和人員已經被確定,每個發言人在各自的電腦上獨立編輯了與這個會議相關的文檔(比如介紹自己工作進展的文檔),并準備了相應的材料(包括視頻、圖片、PPT等等)。這時發言人可以為討論會構建虛擬場景(即由發言人直接提供仿真的上下文給虛擬文件系統),因為那些對ContextFS上下文文件系統有寫權限的用戶,當他們向虛擬目錄內寫入數據時,當前上下文環境的信息會作為文件元數據的一部分被記錄到文件元數據數據庫中。而數據本身會被保存到用戶指定的本地系統中。當然除了上下文信息外,文件語義信息也通過本地的程序自動或用戶手動被標記(主要是文件內容摘要部分),最后的所有文件元數據被寫入到文件元數據庫中,虛擬場景構造完成。
當會議開始時,每個與會者(包括發言的和不發言的)攜帶自己的移動設備(PDA、平版電腦、智能手機等)進入會場時,通過各種身份認證手段,取得自己的用戶名。上下文文件系統將根據用戶名判斷是否是與會者,并向與會者提供發言人的演講稿(即構造的虛擬場景在真實的環境中被再現),這些演講稿的格式也同上個例子中一樣,是根據用戶所能提供的計算能力來確定的。同時通過將一個文件分成多個文件片斷,并給每個片斷標上不同的文件語義。發言者可以讓與會者對同一個文件在不同時間看到不同的內容,也可以將同一個文件的多個文件片斷映射為多個不同的文件同時展示給與會者,甚至可以將不同文件的多個片斷組合成一個新的文件。我們以最簡單的文本文件為例我們對文本文件的不同部分添加語義標簽,用來描述這些部分語義信息(比如內容,或什么時候給什么人看,或是約束條件,如在某個信息被提供之后它才能被看到),這些標簽并不儲存在文本文件中,而是統一的作為文件語義信息保存在文件元數據數據庫中。通過第一部分所描述的上下文文件系統實現,在ContextFS的讀寫函數中,我們將對文件片斷的讀寫映射到對原文件某些部分的讀寫,而到底讀寫哪些部分,這由文件語義來決定,至于到底哪些片斷什么時候出現,什么時候組合等問題,這由系統規則和環境上下文來決定。
權利要求
1.一種基于ContextFS上下文文件系統的文件服務方法,其特征在于主要包括如下步驟1.1)、利用空間中或用戶隨身攜帶的各種可計算設備和傳感器獲得用戶在空間中的上下文信息,并確定用戶的身份;1.2)、根據用戶歷史操作或自定義偏好的歷史數據來確定該用戶的偏好上下文;1.3)、根據文件系統中的文件元數據和上下文信息組織構建虛擬目錄與虛擬文件,即文件系統以虛擬目錄與虛擬文件的形式向用戶提供適合當前上下文環境的數據服務;1.4)、當用戶訪問虛擬目錄與虛擬文件時,用戶和環境上下文信息被文件系統記錄并和文件語義信息一同保存并發給上下文文件系統。
2.根據權利要求1所述的基于ContextFS上下文文件系統的文件服務方法,其特征在于所述的虛擬目錄與虛擬文件采用統一的命名空間并進行副本管理,當用戶從其虛擬目錄中創建新文件或移動其他文件到該虛擬目錄時,文件將繼承所有當前上下文;當用戶從虛擬目錄刪除文件時,僅刪除該文件的當前上下文,使得其不再出現于當前虛擬目錄,當文件失去所有上下文時該文件才被刪除。
3.根據權利要求1所述的基于ContextFS上下文文件系統的文件服務方法,其特征在于當用戶采用不同的可計算設備訪問該文件系統時,根據用戶所在設備的計算能力轉換成適于所在設備能夠讀取的虛擬文件形式。
4.根據權利要求1所述的基于ContextFS上下文文件系統的文件服務方法,其特征在于所述的上下文文件系統根據文件語義和上下文信息自動組織文件內容,根據用戶所在場景和所需內容,確定用戶角色,結合文件語義,將文件的部分內容以獨立文件的形式提供給用戶。
5.根據權利要求2所述的基于ContextFS上下文文件系統的文件服務方法,其特征在于所述的副本管理具體步驟如下5.1)、用戶A對本文件系統中文件F發出讀取請求,系統檢查其權限,如果沒有讀權限則返回讀失敗;如果有讀權限,則讀請求會立即將請求的數據返回給用戶A;5.2.1)、用戶A對本文件系統中文件F發出寫入請求,系統檢查其權限,如果沒有寫權限則返回寫失敗;如果有寫權限,則判斷文件F的所有者是否是用戶A,如果是用戶A的文件則返回寫成功;5.2.2)、如果不是用戶A的文件,則創建用戶副本,文件F被復制成文件F.A,文件F.A的元數據被寫入文件元數據庫,這個副本除了所有者、存儲的物理位置和原文件不同外,其它文件元數據都和原文件一致,文件系統設定優先顯示用戶自身創建的文件F.A,對文件F的操作映射到文件F.A中,在文件F.A中寫入數據并返回寫成功到用戶A。
6.根據權利要求3所述的基于ContextFS上下文文件系統的文件服務方法,其特征在于所述的格式轉換主要包括下述步驟6.1)、根據可計算設備的配置信息,得到可以量化比較的權值,通過權值大小設定用戶可計算設備的計算能力,如果該設備上的程序中定義了格式轉換的規則,則按照規則轉換;如果未定義規則,則根據文件系統對設備計算能力的劃分選擇最接近該設備計算能力能處理的文件類型;6.2)、文件格式轉換時采用鏈式轉換,格式轉換程序作為上下文文件系統的一個插件,負責生成轉換鏈,并根據轉換鏈對各種文檔進行格式轉換,一個文件經過至少一次格式轉換,最終轉成相應格式,多次轉換的中間結果可被保存起來;6.3)、格式轉換程序在多條轉換鏈中根據各個轉換所要消耗的計算能力,設定權值,并根據權值選擇合適的轉換鏈進行轉換。
全文摘要
本發明涉及一種基于ContextFS上下文文件系統的文件服務方法,主要包括如下步驟利用空間中或用戶隨身攜帶的各種可計算設備和傳感器獲得用戶在空間中的上下文信息,并確定用戶的身份;根據用戶歷史操作或自定義偏好的歷史數據來確定該用戶的偏好上下文;根據文件系統中的文件元數據和上下文信息組織構建虛擬目錄與虛擬文件;當用戶訪問虛擬目錄與虛擬文件時,用戶和環境上下文信息被文件系統記錄并和文件語義信息一同保存并發給上下文文件系統。本發明有益的效果是本發明是一種以主動服務為特性,利用上下文驅動目錄、文件組織的分布式文件系統,它能夠根據獲得的上下文,與本地文件系統中文件的元數據,來重新組織生成虛擬目錄與虛擬文件。
文檔編號G06F17/30GK101082927SQ20071006983
公開日2007年12月5日 申請日期2007年7月2日 優先權日2007年7月2日
發明者楊建華, 吳朝暉, 湯斯亮, 陶美軍 申請人:浙江大學