一、 功能設(shè)計(jì)
“網(wǎng)絡(luò)硬盤”是將用戶的文件存放在互聯(lián)網(wǎng)上,方便用戶“攜帶”他們的文件,方便用戶與他的親朋好友“分享”他們的文件,所有操作是通過瀏覽器的頁(yè)面上完成。用戶可以完成下載、上傳" title="上傳">上傳、復(fù)制、移動(dòng)、刪除文件等操作,文件類型不作限制。管理員可以開設(shè)、凍結(jié)、刪除、修改下級(jí)賬號(hào),并能設(shè)定其下級(jí)用戶的家目錄、磁盤空間等操作。下面是對(duì)這些功能的詳細(xì)描述:
?1.1 帳號(hào)" title="帳號(hào)">帳號(hào)管理
?本系統(tǒng)的用戶管理是以域 (或者組)為單位進(jìn)行管理,每一個(gè)域有指定的管理員,并且每一個(gè)域在建立時(shí),被指定了特定的磁盤空間,域管理員對(duì)磁盤的分配只能在本空間范圍內(nèi)進(jìn)行,域管理員可以在本域范圍內(nèi)進(jìn)行用戶管理:
.?域管理
超級(jí)管理員可以建立、刪除指定的域,并可以為每一域設(shè)定域管理員帳號(hào),并可設(shè)置域磁盤空間的大小。在刪除域時(shí),回收本域的所有磁盤空間。
. 增加域用戶
域管理員增加新的域用戶及密碼,并設(shè)定用戶的家目錄、磁盤空間大小。
. 刪除域用戶
域管理員刪除指定域用戶,并回收其所有磁盤空間。
. 修改域用戶
域管理員可以對(duì)域內(nèi)任何一用戶的用戶名、密碼、磁盤空間進(jìn)行修改。
?1.2用戶文件操作
?? ?用戶可以圖形界面中對(duì)自已家目錄下的文件及目錄進(jìn)行任何操作:
. 目錄操作
可在家目錄下建立、刪除、移動(dòng)目錄。
.?文件操作
可在家目錄下刪除、移動(dòng)、復(fù)制文件,并且可把本地文件上傳到遠(yuǎn)端的家目錄下,也可把家目錄下的文件下載到本地磁盤中。
1.3文件共享操作
?用戶可以把家目錄下的指定的目錄共享給其所在域中的任何用戶,共享方式有:
.?完全共享
被授權(quán)共享的用戶可以對(duì)本目錄進(jìn)行刪除、移動(dòng)、復(fù)制文件,并可在共享目錄下建立、刪除、移動(dòng)目錄,也能上傳與下載文件。
.?只讀共享
被授權(quán)共享的用戶可以對(duì)本目錄進(jìn)行復(fù)制文件到自已的家目錄,也可以下載文件到本地磁盤中,但不能對(duì)共享目錄進(jìn)行寫操作。
二、?系統(tǒng)結(jié)構(gòu)
??? 由于考慮到本系統(tǒng)的可擴(kuò)展性及用戶的多樣性,系統(tǒng)采用B/S" title="B/S">B/S結(jié)構(gòu),域及用戶管理通過LDAP來實(shí)現(xiàn),用戶端通過Applet(或ActiveX)實(shí)現(xiàn),所有對(duì)遠(yuǎn)程的操作完全通過HTTP協(xié)議來實(shí)現(xiàn)。系統(tǒng)架構(gòu)如下圖:
??? 如上圖所示,管理員使用瀏覽器通過HTTP協(xié)議調(diào)用Servlet/Jsp,對(duì)LDAP Server進(jìn)行操作,完成對(duì)域和用戶的管理。用戶登錄后,首先獲得自已家目錄的信息,并從家目錄下的配置文件獲取共享文件的信息。用戶對(duì)文件的上傳與下載通過HTTP協(xié)議中的GET與POST來完成。
??? 由于考慮到系統(tǒng)將支持大龐大的用戶數(shù),而LDAP Server的特點(diǎn)是讀操作的效率高,寫操作效率相對(duì)低,因此用戶操作比較頻繁的共享操作使用用戶家目錄下的配置文件來實(shí)現(xiàn)。
三、?技術(shù)實(shí)現(xiàn)方法
??? 以下針對(duì)系統(tǒng)的功能進(jìn)行說明其實(shí)現(xiàn)方法" title="實(shí)現(xiàn)方法">實(shí)現(xiàn)方法:
?3.1帳號(hào)管理
??? 管理員的域操作以及用戶操作時(shí),不僅對(duì)LDAP Server進(jìn)行操作,而且同時(shí)還對(duì)文件系統(tǒng)" title="文件系統(tǒng)">文件系統(tǒng)進(jìn)行相應(yīng)的建立、刪除、移動(dòng)等操作。
3.2用戶文件操作
??? 當(dāng)用戶進(jìn)行下載與上傳操作時(shí),分別是通過Http中的GET與POST方法,用JSP對(duì)文件系統(tǒng)進(jìn)行I/O操作;而用戶的刪除、移動(dòng)、拷貝命令通過JSP轉(zhuǎn)換為操作系統(tǒng)相關(guān)的文件操作命令。
3.3文件共享操作
?
??? 當(dāng)用戶要把指定的目錄共享時(shí),首先取得其所在域中的所有用戶列表,通過圖形界面把共享目錄授權(quán)給用戶列表中的指定用戶,然后系統(tǒng)取得指定用戶家目錄中的配置文件,并把共享目錄的路徑加入到配置文件中,同時(shí)注明共享方式。
與此同時(shí),也在自已的家目錄中修改相應(yīng)的配置文件,注明目錄共享給誰(shuí),以便取消共享時(shí)能定位共享的用戶。
四、 數(shù)據(jù)結(jié)構(gòu)
4.1用戶信息
??? 用戶帳號(hào)存儲(chǔ)于LDAP Server中,其基本結(jié)構(gòu)如下:
dn: cn=username, dc=domain,dc=com
objectclass: storeuser
cn: username
sn: username
userpassword: 123456
mail: username @domain.com
mailhost: domain.com
storehost: store.domain.com
uid: username
homedirectory: /store/domain/001/username/
deliverymode: normal
storequota: 20000000M
creatorsname: cn=admin,dc=domain,dc=com
createtimestamp: 20030727000000
modifytimestamp: 20030727000000
modifiersname: cn= admin,dc= domain,dc=com
4.2共享配置文件
??? 在用戶家目錄下的共享配置文件如下:
#共享目錄????????目錄擁有者??權(quán)限
/store/domain/001/username/dir1???username ??r
/store/domain/001/username/dir2???username ??w
#目錄被共享???????共享人???o表示是自已的目錄
/store/domain/001/username1/dir???username2???o
五、?參照規(guī)范及標(biāo)準(zhǔn)
HTTP?1.0/1.1??HyperText Transmiting Protocol
JNDI?1.2??JAVA NAMING AND DIRECTORY INTERFACE
RFC 1487? --? X.500 Lightweight Directory Access Protocol (obsoleted by RFC 1777)
RFC 1558? -- A String Representation of LDAP Search Filters (obsoleted by RFC 1960)
RFC 1777? -- Lightweight Directory Access Protocol
RFC 1778 ?-- The String Representation of Standard Attribute Syntaxes
RFC 1779? -- String Representation of Distinguished Names
RFC 1959? -- An LDAP URL Format (obsoleted by RFC 2255)
RFC 1960? -- A String Representation of LDAP Search Filters (obsoleted by RFC 2254)
RFC 2251? -- Lightweight Directory Access Protocol (v3)
RFC 2252? -- Lightweight Directory Access Protocol (v3): Attribute Syntax Definitions
RFC 2253 ?-- Lightweight Directory Access Protocol (v3): UTF-8 String Representation of Distinguished Names
RFC 2254 -- The String Representation of LDAP Search Filters
RFC 2255? -- The LDAP URL Format
RFC 2256? -- A Summary of the X.500(96) User Schema for use with LDAPv3
RFC 1823 ?-- The LDAP Application Program Interface
RFC 2079? -- Definition of an X.500 Attribute Type and an Object Class to Hold Uniform Resource Identifiers
RFC 2116? -- X.500 Implementations Catalog-96
RFC 2164? -- Use of an X.500/LDAP directory to support MIXER address mapping
RFC 2247? -- Using DNS Domain names in LDAP/X.500 Distinguished Names
RFC 2307? -- An Approach for Using LDAP as a Network Information Service
RFC 2377? -- Naming Plan for Internet Directory-Enabled Applications
RFC 2559? -- Internet X.509 Public Key Infrastructure Operational Protocols - LDAPv2
RFC 2596? -- Use of Language Codes in LDAP
RFC 2649? -- An LDAP Control and Schema for Holding Operation Signatures
RFC 2696? -- LDAP Control Extension for Simple Paged Results Manipulation