<p id="nxp5x"><big id="nxp5x"><noframes id="nxp5x">

    <var id="nxp5x"><video id="nxp5x"></video></var>

          <em id="nxp5x"></em>

              首 頁 本刊概況 出 版 人 發行統計 在線訂閱 歡迎投稿 市場分析 1 組織交流 1 關于我們
             
            1
               通信短波
            1
               新品之窗
            1
               優秀論文
            1
               通信趨勢
            1
               特別企劃
            1
               運營商動態
            1
               技術前沿
            1
               市場聚焦
            1
               通信視點
            1
               信息化論壇
            1
            當前位置:首頁 > 優秀論文
            基于WebOS的虛擬文件系統服務研究
            作者:袁繼飛 同濟大學計算機科學及技術系 上海 201804
            來源:不詳
            更新時間:2009/9/19 19:29:00
            正文:

            1 引言
            WebOS是目前互聯網研究的熱點之一,它是在分布式的網絡環境下,一種向用戶提供網絡服務的基于瀏覽器的操作系統[1]。自上世界80年代以來,有好幾個網絡操作系統實現了將遠程資源抽象成局域網資源,比如:Locus[2],Mach[3],Sprite[4],Amoeb[5]和V[6],他們還簡化了網絡應用程序的開發。WebOS最大的優點就是它的可移動性,平臺無關性,以及可協作性?梢苿有泽w現在用戶可以在任何地點登錄自己的帳戶進行操作;平臺無關性是指WebOS只需要一個瀏覽器就可以進行各種操作,而不需要特定操作系統;可協作性則是指用戶可以在網上協作完成一個文件。
            WebOS提供的一個最重要的服務就是虛擬文件服務[5](Virtual file system)。對用戶來說經常用到就是上傳文件到服務器,或者在不同服務器之間傳送文件,下載文件到本地。但是由于用戶在遠程操作文件,并且在同一個WebOS上同時可能有很多用戶在操作,所以從設計實現方面來考慮,安全性是WebOS虛擬文件系統的重要考慮因素。一方面要防止用戶誤操作修改或者下載系統文件,另外還得防止用戶訪問其他用戶的文件。虛擬文件服務還需要考慮到讓不同的用戶能夠實現文件共享,當然也需要可控制的權限。
            本文研究以一種靈活的模塊化的虛擬文件系統來管理用戶文件,而對于需要保護的文件則利用重命名來保護。我們首先研究一下這種模塊化的虛擬文件系統的主要難點:(a)在用戶的層面設計一種服務器-瀏覽器客戶端的文件模式[7],(b)構建一個高效率的中間層響應用戶的文件操作,并同時隱藏對用戶的文件權限檢查[8],(c)優化這個文件中間層的效率。
            2 WebOS和VFS
            2.1 Web虛擬文件系統VFS的特殊問題
            虛擬文件系統相對于普通的文件系統來說由于是在Web環境下,除了要考慮普通文件系統一些常見的問題之外,還有一些特殊的問題需要考慮。以下是基于WebOS的VFS經常面對的問題:
            1. 維護的開銷:Internet用戶的需求經常會變化,所以應用程序也會經常變化,從而需要VFS能及時擴展來支持應用程序的這種變化。所以,相對于普通文件系統很久不需要更新,WebOS的VFS通常需要經常更新。本文提出的將文件接口盡可能的模塊化就能有效的防止未來增加新功能時修改過多的代碼。
            2. 容易遭受攻擊:由于VFS的環境是Internet,向數量龐大的用戶群提供服務,所以如果被惡意攻擊者從外部獲取文件系統的權限,很容易導致VFS的崩潰。另外一方面,由于用戶眾多,所以必須對用戶的權限進行嚴格管理,防止用戶非法獲取其他用戶的文件。本文提出的隨機字符串文件命名法就是針對這種問題的一種解決方法。
            3. 響應時間的限制:在網絡的環境下,考慮到可能的網絡延遲,以及同一時刻可能會有很多的用戶同時進行相同的操作,所以VFS的文件操作需要減少不必要的時間,并且考慮到操作可能帶來的并發的沖突問題,以獲得更快的響應速度。
            2.2 WebOS的基本概念
            從用戶角度來看,WebOS(Web-based Operating System)可以稱為網絡操作系統,是一種基于瀏覽器的虛擬的操作系統,用戶通過瀏覽器可以在這個WebOS上運用基于Web的在線應用(Web Application)的操作來實現PC操作系統上的各種操作(包括文檔的存儲,編輯,媒體播放等等)。目前隨著在線網絡應用服務的不斷發展,在線存儲,在線Office等等都為網絡操作系統的發展提供了很好的基礎。
            從開發者角度來看,WebOS是一個向用戶提供網絡應用服務的平臺,他的主要目的就是解決網絡應用開發中的常見問題,給開發者提供一個同構化的開發平臺[10]。從而讓開發者只需要關注于應用程序的開發,而WebOS則負責資源管理,和瀏覽器的通信,以及安全問題等。
            2.3 WebOS的基本結構
            在探討WebOS的服務之前,我們必須了解WebOS的結構。整個這樣一個系統是一個客戶端-服務器的系統結構,而WebOS是服務器,客戶端一般是一個瀏覽器。如圖1所示:

            圖1 WebOS基本架構
            WebOS通常都是微內核平臺,內核是用來整合WebOS提供給開發者的接口的,類似于Windows中的編寫API的內核函數;蛘呖梢哉f,WebOS針對不同的任務有不同的服務接口,然后內核就是負責服務接口之間的通信以及定位。通過這樣的結構,應用程序不需要知道具體怎么激活一個服務,而只需要知道服務的名字,剩下就是讓內核去做其余的工作。WebOS中通常有以下一些系統服務[11],如圖2所示:

            圖2 WebOS常用服務
            2.4 VFS與網絡應用程序


            圖3 VFS與應用程序
            VFS就是WebOS系統服務中的一種,它負責WebOS中低層次文件操作工作。比如,應用程序并不是直接操作文件,而是利用一個為操作文件而設計的一個VFS服務。因此,對文件操作的安全性也有了保障,因為VFS會自動檢查應用程序的請求是否合法。一個典型的調用VFS服務的例子就是:
            service('vfs','delete',array('file.txt'))
            這行代碼可以調用VFS服務來刪除file.txt這個文件。
            2.5 VFS在WebOS中的部署
            由于本文所提及VFS是以模塊化的設計原則來實現的,所以只需要WebOS部署好了,VFS模塊的部署也是比較簡單的。下面以開源的EyeOS為例子來實現VFS的部署。
            EyeOS是以php腳本語言為基礎的一個開源的WebOS,部署要求也相對簡單。EyeOS提倡在Linux下部署,但是也可以在Windows下部署。在Linux下,部署EyeOS的通常配置是Apache+MySql+Php,各個不同版本的EyeOS對這三個軟件的版本要求不一樣。將那三個軟件安裝好之后,只需要將EyeOS的相關文件放到對應的目錄下面就可以在本機上實現對EyeOS的網頁訪問了。如果要想通過域名來訪問,還需要申請域名。
            VFS在EyeOS中的部署也是非常簡單,由于EyeOS將各種系統服務都模塊化了,所以每一個系統服務都是一個單獨的模塊,互相之間不會耦合。所以,我們只需要將VFS的模塊放到EyeOS的系統服務目錄,并且同時修改EyeOS的配置文件中虛擬文件服務的配置項,這樣VFS就算是部署成功了。以后如果用戶需要使用自己的VFS服務,也只需要替換文件,然后配置相關項就可以實現了,這就是模塊化的好處。

            3 VFS的原始實現和改進
            3.1 文件初始模塊化實現
            WebOS中的虛擬文件系統根據處理的對象可以分成兩類:一類是用戶創建的抽象文件,一類是真實的非抽象文件(以“real_”為前綴)。
            第一類文件一般是由用戶創建的抽象文件,VFS模塊會創建兩個文件:一個保存文件的內容,另外一個用XML格式的文件保存文件基本信息。比如調用VFS服務:
            service('vfs','create',array('file.txt'))
            則VFS會創建兩個文件,一個是file.txt_[RANDOM_STRING].***File,這個是保存內容的文件。另外一個文件是file.txt_[RANDOM_STRING].***Info,這個文件是xml格式的,并且保存了關于這個文件的一些基本信息,比如創建者,權限,創建時間等。
            第二類文件則是跟普通的文件一樣的真實文件,不會在創建的時候生成兩個文件,這類文件通常是系統配置文件和用戶配置文件,并且格式也是xml格式。
            3.2優點與不足
            模塊化帶來了很多好處:通過將功能分解,降低了各功能模塊之間的耦合度。如果需要替換某個模塊以實現更好的質量或效率的提高,就不會改變整個結構,只需要修改相應的模塊,工作量就會明顯減少。另外一個方面,這樣的設計也保證了封閉和開放與效率的平衡,既在一定程度上能保證易于修改,也就是易于優化和擴展,也在一定程度上保持良好的性能。

            把文件按照抽象文件和真實文件來分類主要是出于以下三個原因:
            (1) 方便虛擬文件系統針對不同的文件格式提煉出不同函數接口。由于用戶創建的文件每次都是以一個內容文件和一個Xml用戶信息文件成對出現,而真實文件則沒有這樣,所以通常情況下,針對文件的操作的接口都會有所不同。
            (2) 方便虛擬文件系統針對不同的文件格式進行權限檢查。進行權限檢查的函數接口雖然相同,但是對于用戶創建的抽象文件來說不僅需要檢查Xml文件里面的用戶信息,還需要查看文件內容,而針對真實文件的操作則只需要檢查真實文件本身即可。而且對于真實文件和虛擬文件的限制有很大不同。
            (3) 能夠更好實現模塊化。將文件分成兩類相當于將大模塊細分為兩個小的高聚合的模塊。如果以后會擴展功能,那么需要修改VFS這部分代碼就不一定需要修改全部而只需要修改部分。另外,模塊化也為將來的功能擴展提供了良好的接口環境,便于開發第三方擴展。

            不過,EyeOS的VFS只是針對是否是用戶創建的文件做了區分,而沒有針對用戶創建的不同文件:個人文件和group文件進行區分,這是模塊化做的不夠的一個方面。

            此外,用戶有時候會需要將真實文件和抽象文件進行互相轉化,VFS并沒有提供這樣的接口,這就導致系統管理員進行這樣的操作需要手動進行,十分不方便管理系統,這也是模塊化做的不足的一個方面。

            模塊化有明顯的好處,不過對于設計者來說,前期的設計就需要花費很多的時間。同時,這種設計多半不是一次性完成的,所以設計得時候要考慮適當的開放性。另外,現有的EyeOS系統對于模塊化還細分的不夠,特別是針對group用戶的文件操作接口并沒有單獨成為一個功能模塊,這樣導致開發者處理權限時沒有那么方便,所以這是一個可以繼續改進的地方。

            3.3 模塊化的改進
            3.3.1 文件分類改進
            文件分類改進主要著手于實現簡單而讓開發者容易理解的文件模塊化。具體來說主要是在接口層面針對個人文件和group文件進行分類,這樣既能方便開發者使用不同權限的函數接口。
            首先,利用已經存在的不同文件函數權限。在groups目錄下,抽象函數只能對用戶自己創建的函數進行修改和刪除。真實函數可以在用戶的目錄下任何地方創建和修改任何真實文件,但是真實函數不能讀寫groups目錄下的文件。這樣設置的原因是出于安全考慮,對groups目錄下的配置文件進行修改需要嚴格的權限檢查,所以必須由對權限檢查更加嚴格的抽象函數來訪問。
            其次,在文件分類這個層次上也采用了模塊化的設計思想,那就是主要根據用戶創建文件的性質進行分類,從而VFS也相應分為兩個相對獨立的服務,一個面向用戶創建的內容文件,一個面向用戶創建的配置文件以及系統文件。其實模塊化還可以細分一些,那就是將針對系統文件的函數分離出來,這樣模塊化后的結構顯得更加高內聚,對于將來的代碼重用或者功能擴展都有幫助。
            最后,才是針對文件不同的所有者,根據是用戶單獨擁有的文件還是一個group所擁有的文件來提供各種不同的文件服務。通過進行這樣的細分,VFS可以減少很多不必要的權限檢查,從而帶來整體性能的提高。 實現過程可以通過在XML文件中增加一個項目記錄所擁有的文件數來實現。在這樣處理之后可以針對不同的文件做一些特殊的處理。最典型的比如針對文件的大小的限制可以分別設置,通常說來允許上傳到groups目錄下的文件的大小都會比普通的文件大小要小一些。
            將虛擬文件系統進行足夠的模塊化其實最主要還是方便開發者,方便應用程序開發者將來對虛擬文件系統服務本身以及自己的應用程序進行適當修改,但是方便了開發者,最終的受益者仍然還是WebOS的普通用戶。
            3.3.2 系統文件安全性的保護改進
            由于將用戶創建的文件分成兩個文件,而其中一個xml文件是包含用戶信息和文件信息的文件,所以應該需要特別小心防止xml文件被其他用戶訪問。這里采用的是用隨機字符串命名文件的方法來實現。在每次自動創建xml文件的時候,在xml文件名的生成時,不是簡單的直接復制內容文件的文件名,而是采用php隨機字符串函數
            genRandomString($len)來修改xml的文件名。使用這種辦法雖然簡單但是很有效。一方面,創建xml的用戶由于是通過VFS來訪問xml文件,所以VFS可以利用正則表達式來訪問文件名變得和內容文件不一樣的xml文件。另一方面,其他用戶由于不知道xml文件的具體文件名,所以沒辦法訪問其他用戶創建xml文件,如果想通過VFS來訪問,必然會由于權限不夠而被拒絕。至于隨機字符串的長度,自然是越長安全性越好,考慮到各種操作系統對文件名長度的限制,一般36個字符長度已經夠用了。

            圖4 記錄文件信息的xml文件
            除了在文件名上面生成隨機字符串的方式外,在xml文件里面的password還可以利用一些加密算法將密碼進行加密,加密算法可以隨意選擇,另外其實用戶名都可以利用加密算法進行加密,不過這樣會損失一些性能。
            3.3.3 異常處理改進
            WebOS有一套自己的簡單而有效的異常處理機制,每一種特定的異常都會返回一個與異常很相近的字符串,但是并沒有返回相應的參數。這種簡單的機制雖然缺少了一些具體的參數,所以開發者遇到相應的異常不能針對性的處理。針對異常的改進主要是因為以前的異常返回信息量太少,沒有針對不同的函數接口的錯誤返回不同的錯誤代碼。這樣可以更方面開發者調試。
            改進后的異常通?梢苑譃4類:
            1 調用的服務參數與要求不符合:一般是參數個數不匹配,或者參數沒有初始化,或者參數類型不匹配。這種類型的異常通常是給開發人員查看的。
            2 有關文件是否存在的異常:通常是一些需要訪問文件的函數發現文件不存在或者是創建文件的函數發現文件已經存在。這種類型的異?赡軙苯臃祷亟o用戶,當然是經過處理之后,讓用戶忽略技術細節,而直接提醒他們。
            3 文件權限不夠的異常:這種類型的異常一般是用戶的文件操作需要的權限比用戶擁有的權限高從而被VFS所拒絕。這種類型異常也是經常返回給用戶,提醒需要更高等級的權限。
            4 系統異常:這種異常是WebOS本身底層實現的問題,比如一些內核函數出現異常,VFS通常需要包裝一下返回給開發者或者是普通用戶。VFS應該避免直接將這種異常返回給普通用戶,要不會帶來很惡劣的用戶體驗,而是應該將其包裝成更人性化的提示。

            4 未來的工作
            本文的目的就是證明在這種基于WebOS的虛擬文件系統服務當中,由于涉及到權限管理,用戶文件遠程管理,所以對虛擬文件服務進行相當程度的模塊化對于以后的開發工作是很有幫助的。所以未來的工作主要是對文件操作的各種接口函數進行進一步的模塊化。另外一方面就是考慮以后的遠程網絡應用程序調用,所以很有可能以后虛擬文件系統需要處理存放位置地理差異很大,虛擬文件系統要考慮遠程調用應用程序服務器上的存儲文件,這就涉及到WebOS服務器與應用程序服務器之間的交互,這也是未來研究的一個方向。
            5 總結
            在這篇論文里面,我們分析了在WebOS里面實現一個虛擬文件服務系統的特殊難點和要點。我們的WebOS原型EyeOS實現了一種可能的虛擬文件系統服務,以一種模塊化的文件服務方便于客戶配置和未來可能的功能增加或變更。在本文里,我們做了一下一些貢獻。首先,分析了在Internet條件下實現類似于普通單機上的文件系統服務的特定難點。其次,通過抽象文件系統與應用程序的通信,我們簡化了各種網絡應用程序的開發。另外,我們還論證了以模塊化的方法設計文件系統服務對于以后的WebOS功能升級或替換所帶來的好處。

            7 參考文獻
            [1] [Accetta et al. 1986] M. Accetta, R. Baron, W. Bolosky, D.Golub, R. Rashid, A. Tevanian, and M. Young.
            “Mach: A New Kernel Foundation For UNIXDevelopment”. In Proceedings of the 1986 USENIX Summer Conference, pp. 93–112, June 1986.
            [2] [Alexandrov et al. 1997] A. D. Alexandrov, M. Ibel, K. E.Schauser, and C. J. Scheiman. “Ufo: A Personal Global File System Based on User-Level Extensions to the Operating System”. In Proceedings of the 1997 USENIX Technical Conference, Anaheim, CA, January 1997.
            [3] [Cheriton 1988] D. R. Cheriton. “The V Distributed System”.In Communications of the ACM, pp. 314–
            333, March 1988.
            [4] [Dahlin et al. 1994] M. Dahlin, R.Wang, T. Anderson, and D.Patterson. “Cooperative Caching: Using Remote Client Memory to Improve File System Performance”.In Proceedings of the 1st USENIX Symposium on Operating Systems Design and Implementation, pp. 267–280, November 14–17 1994.
            [5] S.B. Lamine, J. Plaice, and P. Kropf. Problems of computing on the WEB. In A. Tentner, editor,High performance computing 1997, pages 296{301,Atlanta, Ga., 1997. SCS.
            [6] J. Plaice and S.B. Lamine. Intensional Program-ming II, chapter Eduction: A general model for computing. World Scientic, Singapure, 1997. To appear.
            [7] [Deering 1991] S. E. Deering. “Multicast Routing in a Datagram Internetwork”. PhD thesis, Stanford University,December 1991.

            作者簡介:袁繼飛,同濟大學電信學院軟件與理論研究生,研究方向WebOS與網絡應用程序的連接技術。<

             
             
               
            《通信市場》 中國·北京·復興路49號通信市場(100036) 點擊查看具體位置
            電話:86-10-6820 7724, 6820 7726
            京ICP備05037146號-8
            建議使用 Microsoft IE4.0 以上版本 800*600瀏覽 如果您有什么建議和意見請與管理員聯系
            欧美成人观看免费全部欧美老妇0