Tài liệu Thiết kế hệ thống FTP ( FTP Servlet - FTP Client ): ... Ebook Thiết kế hệ thống FTP ( FTP Servlet - FTP Client )
77 trang |
Chia sẻ: huyen82 | Lượt xem: 1715 | Lượt tải: 1
Tóm tắt tài liệu Thiết kế hệ thống FTP ( FTP Servlet - FTP Client ), để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
CHÖÔNG I
GIÔÙI THIEÄU ÑEÀ TAØI
Vôùi söï phaùt trieån khoâng ngöøng cuûa heä thoáng maïng maùy tính roäng khaép toaøn caàu, vieäc söû duïng FTP khoâng coøn maáy xa laï ñoái vôùi cö daân Web. Truyeàn file (FTPl) noùi chung vaø Internet noùi rieâng laø moät trong nhöõng dòch vuï khaù phoå bieán.
Thaät vaäy, ñoái vôùi nhieàu ngöôøi thì FTP ñoàng nghóa vôùi Internet. Heä thoáng truyeàn file laø moät phöông tieän trôï giuùp höõu hieäu cho con ngöôøi, nhaát laø trong thôøi ñaïi buøng noå thoâng tin nhö hieän nay. Haøng ngaøy voâ soá File ñöôïc göûi treân maïng, nhôø dòch vuï naøy con ngöôøi coù theå trao ñoåi döõ lieäu vôùi nhau moät caùch nhanh choùng, tieän ích vaø coù tính chaát kinh teá.
Vôùi söï ra ñôøi vaø phaùt trieån maïnh meõ caùc öùng duïng Multimedia ñaõ laøm cho caùc thoâng tin treân maùy tính ngaøy caøng phaùt trieån caøng theâm haáp daãn, phong phuù. Hieän nay, nhu caàu truyeàn döõ lieäu ngaøy caøng ña daïng hôn, khoâng coøn giôùi haïn ôû daïng Text vaên baûn maø coøn môû roäng cho pheùp gheùp hình aûnh, aâm thanh, video. . . . . giuùp cho moïi ngöôøi caûm thaáy thoaûi maùi, thuaän tieän hôn trong vieäc truyeàn gôûi döõ lieäu maø khoâng caàn gaëp maët nhau. Vôùi caùc coâng cuï laäp trình ngaøy caøng phaùt trieån maïnh meõ ñaõ khai thaùc haàu nhö hoaøn toaøn nhöõng hoã trôï cuûa heä ñieàu haønh thì vieäc vieát moät chöông trình truyeàn file khoâng coøn nhieàu vaát vaû nöõa.
CHÖÔNG II
TÌM HIEÅU CAÙC HEÄ THOÁNG FTP COÙ SAÜN
Ngaøy nay FTP hay dòch vuï truyeàn file ñaõ trôû neân phoå bieán vaø haàu nhö khoâng theå thieáu. FTP cho pheùp truyeàn file töø nôi naøy ñeán nôi khaùc thoâng qua maïng.
Hieän nay coù raát nhieàu dòch vuï FTP treân moâi tröôøng Internet cuõng nhö treân moâi tröôøng öùng duïng. Quùa trình xaây döïng öùng duïng FTP raát ña daïng, nhöng chuû yeáu taäp trung vaøo hai phaàn laø FTP Client vaø FTP Server.
FTP Client
Laø chöông trình hoaït ñoäng phía maùy khaùch cho pheùp ngöôøi duøng thöïc hieän caùc thao taùc treân caùc file .
Ví duï nhö : CuteFTP, AbsoluteFTP, 3D-FTP, . . . . . . . .
Haàu heát caùc öùng duïng treân ñeàu coù caùc chöùc naêng cô baûn laø : upload, download, delete, rename, . . . .Caùc thao taùc ñeàu döïa treân vieäc töông taùc leänh giöõa Client vaø Server. Nhaän döõ lieäu töø maùy chuû vaø hieån thò cho ngöôøi duøng
Moät soá FTP Client coøn cho pheùp loïc (filter file). Nhaèm giaûm möùc ñoä coâng vieäc cho server, taêng toác chöông trình.
Moät soá coøn hoã trôï chöùc naêng resume, maø khoâng phaûi baát kyø FTP Client naøo cuõng coù nhö CuteFTP. Khi vieäc upload/download bò ngaét giöõa chöøng do söï coá naøo ñoù thì ngöôøi duøng coù theå thöïc hieän tieáp coâng vieäc ñoù ôû laàn sau khi baét ñaàu môû maùy.
Beân caïnh ñoù caùc FTP Client coøn cung caáp cho ngöôøi duøng moät haøng ñôïi (Queue) laøm cho ngöôøi duøng caûm thaáy raát thuaän tieän trong vieäc download/upload caùc files/folders ôû nhöõng thö muïc khaùc nhau treân heä thoáng.
FTP Server
Laø chöông trình hoaït ñoäng phía maùy chuû, tieáp nhaän yeâu caàu, phaûn hoài thoâng tin vaø gôûi döõ lieäu veà cho Client. Nhö Server-U FTP, . . . . . .
Haàu heát caùc FTP Server ñeàu coù caùc chöùc naêng cô baûn sau : beân caïnh phu(c vuï caùc yeâu caàu töø Client nhö yeâu caàu thieát keânh truyeàn gôûi döõ lieäu, upload, download, delete, . . . . . coøn coù thieát laäp toác ñoä truyeàn, caám ñòa chæ keát noái, quy ñònh soá keát noái seõ ñöôïc tieáp nhaän . . . . . .
Ngoaøi ra moät soá Server FTP coøn quaûn trò caùc user cuûa heä thoáng nhö : taïo user, xoaù user, caám user, phaân quyeàn cho user, taïo group, xoùa group , theâm user vaøo group hay caáp quyeàn cho group. . . . . . .Caùc quyeàn seõ ñöôïc caáp ôû ñaây seõ laø Read (ñöôïc quyeàn download file), Write (ñöôïc quyeàn upload file), Delete (ñöôïc quyeàn xoùa file), List (ñöôïc quyeàn duyeät thö muïc), Create (ñöôïc quyeàn taïo thö muïc), Remove (ñöôïc quyeàn xoùa thö muïc) vaø Inherit (ñöôïc quyeàn cho thöøa keá caùc quyeàn ñaõ coù ). Moãi user khi ñöôïc taïo ra treân heä thoáng seõ ñöôïc caáp cho moät ñaëc quyeàn töông öùng ñeå thao taùc treân heä thoáng nhö laø No Privilege (khoâng coù ñaëc quyeàn naøo caû chæ laø moät user bình thöôøng), Read-only Privilege (user coù ñaëc quyeàn chæ ñoïc chæ ñöôïc pheùp vaøo xem thoâng tin treân heä thoáng), Group Administrator (user coù ñaëc quyeàn naøy seõ ñöôïc quyeàn thöïc hieän caùc thao taùc treân caùc group nhö theâm group, xoùa group, . . .) vaø System Administrator (user coù ñaëc quyeàn naøy seõ coù toaøn quyeàn treân heä thoáng) .. . . .
Giao thöùc FTP
Giao thöùc FTP ñöôïc ñònh nghóa bôûi RFC 959. Noù cung caáp nhöõng phöông tieän ñeå chuyeån tôùi/töø nhöõng heä thoáng maùy tính töø xa. Thoâng thöôøng ngöôøi duøng chuyeån moät file caàn quyeàn ñeå ñaêng nhaäp vaø truy nhaäp nhöõng file treân heä thoáng töø xa.
Moät phieân laøm vieäc FTP thoâng thöôøng keùo theo söï töông taùc cuûa naêm phaàn töû phaàn meàm :
User Interface ( Giao dieän ngöôøi duøng ) : Cung caáp giao dieän ngöôøi duøng vaø ñieàu khieån phaàn phieân dòch giao thöùc phía client.
Client PI ( Protocol Interpreter ) : Ñaây laø phaàn phieân dòch giao thöùc ( PI ) phía client. Noù phaùt ñi nhöõng leänh tôùi phaàn phieân dòch giao thöùc cuûa server cuõng nhö ñieàu khieån quaù trình chuyeån döõ lieäu phía client.
Server PI : Ñaây laø phaàn phieân dòch giao thöùc cuûa server. Noù ñaùp öùng nhöõng leänh ñöôïc phaùt ñi bôûi phaàn phieân dòch giao thöùc phía client vaø ñieàu khieån quùa trình chuyeån döõ lieäu phía server.
Client DTP ( Data Transfer Process ) : Ñaây laø tieán trình chuyeån döõ lieäu ( DTP ) phía client, coù traùch nhieäm truyeàn thoâng soá vôùi tieán trình chuyeån döõ lieäu phía server vaø heä thoáng file cuïc boä.
Server DTP : Ñaây laø tieán trình chuyeån döõ lieäu phía server, coù traùch nhieäm truyeàn thoâng soá vôùi tieán trình chuyeån döõ lieäu phía client vaø heä thoáng file töø xa.
Trong thôøi gian moät phieân laøm vieäc FTP seõ coù hai keát noái maïng rieâng bieät, moät giöõa caùc PI vaø moät giöõa caùc DTP. Keát noái giöõa caùc PI ñöôïc goïi laø keát noái ñieàu khieån ( control connection ) . Keát noái giöõa caùc DTP ñöôïc goïi laø keát noái döõ lieäu (data connection).
Caùc keát noái ñieàu khieån vaø döõ lieäu söû duïng giao thöùc TCP.
Thöôøng thì FTP server laéng nghe treân port thoâng duïng laø port thöù 21 cho nhöõng yeâu caàu keát noái ñieàu khieån. Vieäc löïa choïn port cho keát noái döõ lieäu phuï thuoäc vaøo nhöõng leänh ñöôïc phaùt ñi treân keát noái ñieàu khieån. Theo quy öôùc, phía client gôûi moät thoâng baùo ñieàu khieån chæ cho bieát soá port taïi ñoù phía client ñaõ chuaån bò saün ñeå nhaän moät yeâu caàu keát noái döõ lieäu vaøo.
Vieäc söû duïng nhöõng keát noái rieâng bieät cho ñieàu khieån vaø döõ lieäu coù lôïi laø hai keát noái coù theå löïa choïn nhöõng chaát löôïng dòch vuï khaùc nhau nhö : khoaûng trì hoaõn toái thieåu cho keát noái ñieàu khieån vaø cöïc ñaïi cho keát noái döõ lieäu, noù cuõng traùnh nhöõng vaán ñeà cuûa vieäc cung caáp caùc maõ thoaùt ( escape sequences ).
Khuoân daïng leänh
Danh saùch chi tieát taát caû caùc leänh
Leänh YÙù nghóa
ABOR Huûy söï chuyeån döõ lieäu hoaëc leänh ñang ñöôïc thöïc hieän.
ACCT Vaøi heä thoáng lieân keát caû nhöõng taøi khoaûn laãn nhöõng ngöôøi duøng vôùi nhöõng ñoái töôïng heä thoáng file.
ALLO Caáp phaùt khoâng gian cho file saép ñöôïc göûi ñi. Tham soá chæ roõ soá byte caàn caáp phaùt.
APPE Noái vaøo cuoái file ñang toàn taïi.
CDUP Chuyeån leân thö muïc cha cuûa thö muïc hieän taïi treân server.
CWD Thay ñoåi thö muïc laøm vieäc treân server.
DELE Xoùa file treân server.
HELP Yeâu caàu thoâng tin trôï giuùp töø server. Thí duï, danh saùch nhöõng leänh ñöôïc server hoã trôï.
LIST Göûi moät danh saùch teân file ( bao goàm ngaøy thaùng taïo, kích thöôùc, vaø loaïi file hoaëc thö muïc ) trong thö muïc hieän haønh treân server treân keát noái döõ lieäu.
MKD Taïo thö muïc.
MODE Chæ roõ cheá ñoä truyeàn. Tham soá laø S (Stream), B (Block), hoaëc C (Compression).
NLST Göûi moät danh saùch caùc file thoûa maõn moät ñieàu kieän naøo ñoù treân keát noái döõ lieäu.
NOOP Khoâng laøm gì caû. Leänh thöôøng duøng ñeå kieåm tra traïng thaùi keát noái ñieàu khieån.
PASV Chæ ra raèng phaàn DTP cuûa server laéng nghe moät yeâu caàu keát noái töø phaàn DTP cuûa client.
PORT Chæ ra soá port maø phaàn DTP phía client ñang laéng nghe moät yeâu caàu keát noái.
PWD Cho bieát teân thö muïc hieän haønh treân server.
QUIT Logout hoaëc caét keát noái.
REIN Xaùc laäp laïi caùc giaù trò ban ñaàu. Logout maø khoâng caét keát noái. Seõ theo sau baèng moät leänh USER môùi cho moät ngöôøi duøng khaùc.
REST Khôûi ñoäng laïi quùa trình truyeàn töø nôi ñaùnh daáu ôû phía server.
RETR Download file töø server.
RMD Xoaù thö muïc.
RNFR Chæ ra teân ñöôøng daãn cuõ cuûa file hoaëc thö muïc seõ ñöôïc ñoåi teân. Ñöôïc theo sau bôûi leänh RNTO.
RNTO Chæ ra teân ñöôøng daãn môùi cuûa file hoaëc thö muïc seõ ñöôïc ñoåi teân.
SITE Truy vaán thoâng tin veà server.
STAT Truy vaán traïng thaùi cuûa leänh tröôùc ñoù hoaëc cuûa server.
STOR Löu tröõ file treân server vaø ghi ñeø leân file cuõ neáu noù ñaõ toàn taïi.
STOU Chæ ra raèng seõ Upload file leân server vôùi teân duy nhaát ( Unique ).
STRU Chæ ra caáu truùc file. Tham soá laø F ( File ), R ( Record ), hoaëc P ( Page ).
SYST Baùo caùo loaïi heä ñieàu haønh treân heä thoáng töø xa ( Remote System ).
TYPE Chæ ra söï theå hieän kieåu file. Tham soá laø moät trong nhöõng kyù töï A ( ASCII ), E ( EBCDIC ), I ( Image ), L ( Local ) cho kieåu file vaø ñöôïc theo sau bôûi N (No printing controls), T (Telnet printing controls ) hoaëc C (Fortran printing controls) ñeå ñieàu khieån ñònh daïng hoaëc moät soá chæ roõ kích thöôùc byte cuïc boä. Chæ coù kieåu A vaø kieåu I laø thöôøng duøng.
USER Göûi teân ñaêng nhaäp leân server.
PASS Göûi maät khaåu ( khoâng maõ hoùa ) cuûa teân ñaêng nhaäp leân server.
Caùc daïng traû lôøi leänh ( command reply ) treân keát noái ñieàu khieån
Kieåu Moâ taû
1yz Traû lôøi chaáp nhaän sô boä. Ñôïi moät traû lôøi tieáp theo tröùôc khi göûi leänh khaùc.
2yz Traû lôøi chaáp nhaän hoaøn taát. Leänh cuoái cuøng ñöôïc thöïc hieän thaønh coâng.
3yz Traû lôøi chaáp nhaän taïm thôøi. Moät leänh nöõa phaûi ñöôïc göûi.
4yz Traû lôøi hoaøn taát phuû nhaän nhaát thôøi. Hoaït ñoäng yeâu caàu khoâng ñöôïc thöïc hieän nhöng coù theå thöû laïi.
5yz Traû lôøi hoaøn taát phuû nhaän laâu daøi. Hoaït ñoäng yeâu caàu khoâng ñöôïc thöïc hieän vaø khoâng neân thöû laïi.
Chöõ soá “y” maõ hoùa thoâng tin chi tieát hôn
Chöõ soá y YÙ nghóa
0 Loãi cuù phaùp
1 Thoâng tin
2 Tình traïng keát noái
3 Quyeàn vaø taøi khoaûn
4 Chöa chæ ra
5 Tình traïng heä thoáng
Dieãn giaûi
Begin Baét ñaàu keát noái vaøo server
Cmd Göûi ñi moät leänh
W Ñôïi hoài ñaùp töø phía server
S Leänh thaønh coâng
F Leänh khoâng thaønh coâng
Caùc soá 1, 2, 3, 4, 5 cho bieát kyù soá ñaàu tieân cuûa chuoãi hoài ñaùp.
Ví duï moät soá leänh coù tham soá thöôøng duøng
HELP [SITE] Yeâu caàu trôï giuùp, ôû ñaây tham soá tuøy choïn laø SITE
USER lien Ñaêng nhaäp vôùi teân “lien”
PASS lien Chæ ra raèng maät khaåu ñaêng nhaäp laø “lien”
CWD /FtpUpload Chuyeån sang thö muïc /FtpUpload treân server
MKD testDir Yeâu caàu taïo thö muïc teân testDir
RMD testDir Yeâu caàu xoùa thö muïc teân testDir
MODE S Thieát laäp cheá ñoä truyeàn laø Stream ( doøng döõ lieäu )
TYPE I Cho bieát laø seõ duøng kieåu döõ lieäu nhò phaân
NLST –L *.exe /CSDL/*.* Tìm caùc file .exe trong thö muïc hieän taïi vaø taát caû caùc file trong thö muïc /CSDL
PORT 127,0,0,0,4,120 Client seõ duøng port 1144 cho keát noái döõ lieäu vaø ñòa chæ laø treân maùy cuïc boä ( ñòa chæ khöù hoài)
RETR testFile.txt Yeâu caàu Download file teân testFile.txt treân thö muïc hieän haønh
STOR testFile.txt Yeâu caàu Upload file teân testFile.txt leân thö muïc hieän haønh
RNFR testFile.txt Yeâu caàu ñoåi teân file testFile.txt
RNTO testFile.bak Ñoåi teân file töø leänh RNFR thaønh testFile.bak
DELE testFile.txt Xoùa file teân testFile.txt treân server
Nhöõng hoài ñaùp caàn chuù yù
220
Dòch vuï saün saøng cho ngöôøi duøng môùi.
331
Ngöôøi söû duïng ñöôïc chaáp nhaän, yeâu caàu maät khaåu. Thay vì baùo laø USER khoâng toàn taïi sau khi tìm kieám, thöôøng thì server luoân traû lôøi leänh USER baèng giaù trò naøy maø khoâng xeùt ñeán user ñoù coù thaät söï toàn taïi khoâng. Ñaây laø moät cô cheá choáng taán coâng baèng caùch doø maät khaåu cuûa caùc user coù trong heä thoáng.
230
Ngöôøi duøng ñaõ ñaêng nhaäp.
200
Leänh ñöôïc ñoàng yù.
226
Ñoùng keát noái döõ lieäu.
250
Hoaït ñoäng file yeâu caàu ñöôïc chaáp nhaän vaø hoaøn taát.
350
Caàn theâm thoâng tin cho hoaït ñoäng veà file ñöôïc yeâu caàu.
150
Keát noái döõ lieäu ( ASCII hoaëc nhò phaân ) ñöôïc thieát laäp töø server ñeán client. Neáu laø quùa trình Download thì thöôøng keøm theo thoâng tin veà kích thöôùc file.
226
Hoaøn taát vieäc truyeàn.
221
Dòch vuï ñang ñoùng keát noái ñieàu khieån.
125
Keát noái döõ lieäu ñaõ môû, baét ñaàu truyeàn.
425
Khoâng môû ñöôïc keát noái döõ lieäu.
503
Trình töï leänh khoâng hôïp leä.
530
Chöa ñaêng nhaäp.
CHÖÔNG III
PHAÂN TÍCH VAØ THIEÁT KEÁ HEÄ THOÁNG
Quùa trình hoaït ñoäng cuûa FTP
Moâ hình FTP
Caùc thuaät ngöõ treân moâ hình
User Interface ( Giao dieän ngöôøi duøng ) : Cung caáp giao dieän ngöôøi duøng vaø ñieàu khieån phaàn phieân dòch giao thöùc phía client.
Client PI ( Protocol Interpreter ) : Ñaây laø phaàn phieân dòch giao thöùc ( PI ) phía client. Noù phaùt ñi nhöõng leänh tôùi phaàn phieân dòch giao thöùc cuûa server cuõng nhö ñieàu khieån quaù trình chuyeån döõ lieäu phía client.
Server PI : Ñaây laø phaàn phieân dòch giao thöùc cuûa server. Noù ñaùp öùng nhöõng leänh ñöôïc phaùt ñi bôûi phaàn phieân dòch giao thöùc phía client vaø ñieàu khieån quùa trình chuyeån döõ lieäu phía server.
Client DTP ( Data Transfer Process ) : Ñaây laø tieán trình chuyeån döõ lieäu ( DTP ) phía client, coù traùch nhieäm truyeàn thoâng soá vôùi tieán trình chuyeån döõ lieäu phía server vaø heä thoáng file cuïc boä.
Server DTP : Ñaây laø tieán trình chuyeån döõ lieäu phía server, coù traùch nhieäm truyeàn thoâng soá vôùi tieán trình chuyeån döõ lieäu phía client vaø heä thoáng file töø xa.
Nguyeân taéc hoaït ñoäng
Trong thôøi gian moät phieân laøm vieäc FTP seõ coù hai keát noái maïng rieâng bieät, moät giöõa caùc PI vaø moät giöõa caùc DTP. Keát noái giöõa caùc PI ñöôïc goïi laø keát noái ñieàu khieån ( control connection ) . Keát noái giöõa caùc DTP ñöôïc goïi laø keát noái döõ lieäu (data connection).
User-PI seõ khôûi taïo Control connection. Control connection seõ theo giao thöùc Telnet. Ôû ñaây User-PI seõ göûi caùc leänh FTP cho server thoâng qua Control connection vaø caùc response töông öùng vôùi caùc leänh seõ ñöôïc Server-PI gôûi traû veà cho User-PI thoâng qua Control connection naøy.
Caùc leänh FTP seõ chæ roõ caùc tham soá seõ ñöôïc duøng ñeå cung caáp cho vieäc thieát laäp keânh truyeàn döõ lieäu Data connect, nhö laø : data port, transfer mode, representation type vaø structure. Ngoaøi ra noù coøn cung caáp nhö laø : store, retrieve, append, delete. . . ..
User-DTP seõ laéng nghe treân port ñaõ ñöôïc chæ ñònh vaø server seõ khôûi taïo Data connection vaø gôûi döõ lieäu ñaõ thoûa thuaän trong caùc tham soá. Port ñöôïc duøng ñeå thieát laäp Data connection khoâng nhaát thieát phaûi gioáng nhö coång ñaõ thieát laäp Control connection. Nhöng User-DTP phaûi laéng nghe treân port ñaõ ñöôïc chæ ñònh, tieáp nhaän keát noái cuûa Server vaø cuoái cuøng gôûi hay nhaän döõ lieäu tuøy vaøo caùc tham soá tröôùc ñoù.
Data connection naøy coù theå ñöôïc duøng cho vieäc göûi vaø nhaän döõ lieäu ñoàng thôøi.
Moái quan heä giöõa FTP Server vaø FTP Client
Files chæ ñöôïc truyeàn treân Data connection. Coøn Control connection duøng cho vieäc gôûi leänh cuûa Client vaø gôûi traû hoài ñaùp (response) cuûa Server.
Khi coù nhu caàu gôûi/nhaän döõ lieäu thì tröôùc khi phaùt leänh ñeå gôûi/nhaän döõ lieäu thì Client phaûi gôûi caùc leänh ñeå cung caáp caùc thoâng soá cho vieäc thieát laäp Data connection nhö laø : coång, cheá ñoä truyeàn, kieåu truyeàn . . . . .Sau khi ñaõ ñöôïc server chaáp nhaän caùc yeâu caàu thieát laäp tröôùc ñoù thì Client baét ñaàu gôûi leänh yeâu caàu gôûi/nhaän döõ lieäu.
Trong tröôøng hôïp coù loãi, hay bò söï coá thì Client seõ caên cöù vaøo caùc maõ hoài ñaùp cuûa Server ñeå xaùc ñònh coâng vieäc keá tieáp. Maõ hoài ñaùp naøy coøn coù taùc duïng ñoàng nhaát hoaït ñoäng giöõa Client vaø Server.
Sô ñoà bieåu dieãn quùa trình xöû lyù caùc chöùc naêng
Sô ñoà toång quaùt
Sô ñoà chöùc naêng : ( hình sau )
Sô ñoà bieåu dieãn quùa trình xöû lyù chi tieát caùc chöùc naêng
Sô ñoà bieåu dieãn quùa trình xöû lyù cuûa Server
Phaân raõ process 3 : Tröôùc khi tieáp nhaän caùc leänh do Client gôûi leân, phuïc vuï caùc yeâu caàu töø Client thì Server seõ kieåm tra Client ñaõ qua quùa trình ñaêng nhaäp vaøo heä thoáng hay chöa neáu chöa thì yeâu caàu Client phaûi qua quaù trình ñaêng nhaäp thì môùi coù hieäu löïc. Neáu khoâng thì Server seõ khoâng tieáp nhaän hay ñaùp öùng baát kyø yeâu caàu cuûa Client.
Process 3.2 : Neáu user chöa qua quùa trình ñaêng nhaäp thì yeâu caàu user neân ñaêng nhaäp vaøo heä thoáng tröôùc khi gôûi caùc yeâu caàu. Trong quùa trình naøy Server seõ giaùm saùt chaët cheõ user qua töøng leänh. Tröôùc heát user phaûi gôûi username thoâng qua leänh USER username. Sau ñoù Server seõ yeâu caàu nhaäp password, neáu ôû ñaây user khoâng nhaäp password maø nhaäp leänh naøo khaùc thì seõ khoâng ñöôïc Server chaáp nhaän. Ngoaøi leänh QUIT keát thuùc phieân laøm vieäc.
Process 3.3 : Sau khi user ñaõ ñaêng nhaäp thaønh coâng vaøo heä thoáng thì coù theå gôûi caùc yeâu caàu leân Server thoâng qua caùc leänh töông öùng. Ôû ñaây Server sau khi tieáp nhaän moät yeâu caàu cuûa Client, thì Server seõ ñi xaùc ñònh quyeàn haïn cuûa user ñoù. Neáu user ñoù khoâng coù quyeàn thì seõ töø choái phuïc vuï yeâu caàu ñoù. Neáu user hoaøn toaøn hôïp leä, coù ñuû quyeàn haïn thì seõ phaân tích leänh ñeå thöïc hieän caùc thao taùc tieáp theo hay ñaùp öùng caùc yeâu caàu cho ñuùng.
Sô ñoà bieåu dieãn quùa trình xöû lyù cuûa Client treân cô sôû caùc thaønh phaàn giao dieän ñoà hoaï (GUI)
Phaân raõ process 5 : Tuøy töøng söï kieän maø Client seõ gôûi caùc leänh töông öùng leân Server ñeå yeâu caàu phuïc vuï.
Process 5.1 : Sô ñoà xöû lyù söï kieän Connect. Khi ngöôøi duøng nhaán nuùt Connect thì Client seõ duøng username vaø password maø ngöôøi duøng ñaõ nhaäp ñaêng nhaäp vaøo heä thoáng.
Proceess 5.2 : Sô ñoà xöû lyù söï kieän Delete caùc files/folders maø ngöôøi duøng ñaõ choïn. Sau khi ngöôøi duøng ñaõ choïn caùc files/folders vaø Delete caùc files/folders ñoù thì caùc files/folders naøy seõ ñöôïc ñöa vaøo haøng ñôïi ( Queue ) vaø sau ñoù ñöôïc thöïc thi laàn löôït.
Process 5.3 : Sô ñoà xöû lyù söï kieän upload sau khi ngöôøi duøng ñaõ choïn caùc files/folders treân heä thoáng vaø yeâu caàu upload leân Server. Thì caùc files/folders naøy seõ ñöôïc ñöa vaøo haøng ñôïi ( Queue ) vaø ñöôïc thöïc thi.
Process 5.4 : Sô ñoà xöû lyù söï kieän download sau khi ngöôøi duøng ñaõ choïn caùc files/folders treân heä thoáng vaø yeâu caàu download xuoáng client. Thì caùc files/folders naøy seõ ñöôïc ñöa vaøo haøng ñôïi ( Queue ) vaø ñöôïc thöïc thi.
Process 5.5 : Sô ñoà xöû lyù vieäc thöïc thi caùc döõ lieäu ñaõ ñöôïc löu trong haøng ñôïi maø ngöôøi duøng ñaõ add vaøo ñoù. Khi ngöôøi duøng muoán upload hay download caùc files/folders khoâng cuøng treân moät thö muïc thì ngöôøi duøng coù theå add “Add to queue” töøng file/folder vaøo haøng ñôïi ( Queue ). Sau khi ñaõ hoaøn taát vieäc choïn löïa caùc files/folders treân caùc thö muïc khaùc nhau vaø add chuùng vaøo haøng ñôïi thì baét ñaàu thöïc thi chuùng (upload hay download).
Process xöû lyù vieäc upload hay download : Tröôùc khi upload hay download moät file thì Client phaûi gôûi leänh PORT thoângsoáport ñeå baùo cho Server bieát seõ taïo data connection treân port ñoù ñeå truyeàn nhaän döõ lieäu. Sau khi gôûi leänh PORT vaø nhaän veà hoài ñaùp (Response) töø Server thì Client baét ñaàu phaân tích. Neáu Server ñoàng yù thì Client seõ gôûi leänh yeâu caàu upload hay download, sau khi gôûi leänh cuõng nhaän veà Response vaø phaân tích neáu Server ñoàng yù thì taïo data connection ñeå tieáp nhaän keát noái töø Server thoâng qua data connection naøy. Sau khi tieáp nhaän ñöôïc keát noái töø Server thì seõ thieát laäp keânh truyeàn gôûi döõ lieäu neáu laø upload vaø seõ thieát laäp keânh truyeàn nhaän döõ lieäu neáu laø download. Sau ñoù seõ gôûi döõ lieäu leân keânh truyeàn hay ñoïc döõ lieäu töø keânh truyeàn veà cho ñeán khi keát thuùc.
Process 5.5.4 : Sô ñoà xöû lyù vieäc upload
Process 5.5.8 : Sô ñoà xöû lyù vieäc download
Sô ñoà xöû lyù vaø phaân tích Response (hoài ñaùp) cuûa caùc leänh, ñeå xaùc ñònh coâng vieäc keá tieáp cuûa Client
Ñoái vôùi caùc leänh : ABOR, ALLO, DELE, CWD, CDUP, SMNT, HELP, MODE, PASV, QUIT SITE, PORT, SYST, STAT, RMD, MKD, PWD, STRU and TYPE.
Ñoái vôùi caùc leänh : APPE, LIST, NLIST, REIN, RETR, STOR and STOU.
Process 5.5.6 : Sô ñoà xöû lyù Disconnect.
Sô ñoà bieåu dieãn vieäc quaûn trò caùc user vaø caùc group treân heä thoáng
Moãi user treân heä thoáng seõ ñöôïc caáp cho moät ñaëc quyeàn. Khi user ñaêng nhaäp vaøo heä thoáng, tuøy theo ñaëc quyeàn cuûa mình user coù theå thöïc hieän moät soá thao taùc treân heä thoáng nhö : theâm user, xoùa user, . . . . . .
Phaân raõ process 9 : Sô ñoà xöû lyù vieäc quaûn trò user, nhö laø theâm user, xoaù user, thay ñoåi thoâng tin veà user ( caáp theâm diraccess, caáp theâm quyeàn . . . )
Process 9.1 theâm user : Sô ñoà xöû lyù vieäc theâm user môùi.
Process 9.2 : Sô ñoà xöû lyù vieäc xoùa user. Khi xoùa moät user thì ta phaûi xoùa luoân caùc diraccess cuûa user ñoù, ñoàng thôøi loaïi boû user ñoù ra khoûi caùc group maø user ñoù thuoäc tröôùc khi xoùa user ra khoûi heä thoáng.
Process 9.3 : Sô ñoà xöû lyù vieäc caäp nhaät laïi caùc diraccess cho user khi coù thay ñoåi.
Phaân raõ process 10 : Sô ñoà xöû lyù vieäc quaûn trò group, nhö laø theâm user, xoùa group, thay ñoåi thoâng tin veà group ( caáp theâm diraccess, caáp theâm quyeàn . . . )
Process 10.1 theâm group : Sô ñoà xöû lyù vieäc theâm group môùi.
Process 10.2 : Sô ñoà xöû lyù vieäc xoùa group. Khi xoùa moät user thì ta phaûi xoùa luoân caùc diraccess cuûa group ñoù, ñoàng thôøi loaïi boû caùc user thuoäc group ñoù tröôùc khi xoùa group ra khoûi heä thoáng.
Process 10.3 : Sô ñoà xöû lyù vieäc caäp nhaät laïi caùc diraccess cho group khi coù thay ñoåi.
Phaân tích vaø thieát keá cô sôû döõ lieäu
Moâ hình thöïc theå keát hôïp
Moâ hình thöïc theå
Moâ taû caùc thöïc theå
Thöïc theå USER
Moâ taû thoâng tin veà user cuûa heä thoáng. Moãi user coù moät username duy nhaát. Caùc username coù theå coù cuøng password. Moät user coù theå thuoäc nhieàu group, userID ñöôïc duøng laøm khoùa ñeå quaûn lyù user ñoù.
Thöïc theå Group
Moâ taû thoâng tin veà group. Moãi group coù moät groupname duy nhaát, groupID ñöôïc duøng laøm khoùa ñeå quaûn lyù group ñoù. Moãi group coù theå coù nhieàu user.
Thöïc theå DirAccess
Moâ taû thoâng tin veà moät DirAccess nhö dirname, ñöôøng daãn vaät lyù. Moãi DirAccess coù moät dirID duy nhaát vaø ñöôïc duøng laøm khoùa ñeå quaûn lyù DirAccess ñoù.
Thöïc theå Permission
Moâ taû thoâng tin veà caùc quyeàn seõ ñöôïc caáp cho caùc user hay caùc group. Moãi quyeàn coù moät rightID duy nhaát, ñöôïc duøng laøm khoùa ñeå quaûn lyù quyeàn ñoù.
Caùc quyeàn seõ ñöôïc caáp cho caùc DirAccess cuûa caùc user seõ laø caùc quyeàn sau :
Caùc quyeàn treân file :
Read : Quyeàn ñöôïc ñoïc file. User coù quyeàn seõ ñöôïc quyeàn download caùc file trong thö muïc ñoù.
Write : Quyeàn ñöôïc ghi file. User coù quyeàn seõ ñöôïc quyeàn upload leân thö muïc ñoù.
Delete : Quyeàn ñöôïc xoùa file.
Caùc quyeàn treân thö muïc :
List : Quyeàn duyeät caùc file vaø thö muïc con cuûa thö muïc.
Create : Quyeàn ñöôïc taïo thö muïc
Remove : Quyeàn ñöôïc xoùa thö muïc
Quyeàn treân caùc file vaø thö muïc con :
Inherit : quyeàn ñöôïc thöøa keá caùc quyeàn maø thö muïc cha coù.
Thöïc theå Privilege
Moâ taû thoâng tin veà caùc ñaëc quyeàn seõ ñöôïc caáp cho user. Moãi ñaëc quyeàn seõ coù moät privilegeID duy nhaát, ñöôïc duøng laøm khoùa ñeå quaûn lyù privilege ñoù.
Caùc ñaëc quyeàn cuûa heä thoáng seõ bao goàm moät soá ñaëc quyeàn sau :
System Administrator
Group Administrator
Read-only Administrator
No Privilege
Chuyeån ñoåi töø moâ hình thöïc theå sang moâ hình quan heä
Quy taéc
Töø moâ hình quan nieäm laø moâ hình bieåu dieãn taát caû caùc ñoái töôïng. Moãi ñoái töôïng laø moät theå hieän trong theá giôùi thöïc.
Trong moâ hình quan heä, chuùng ta xeùt caùc moái quan heä giöõa töøng ñoái töôïng ñoù. Cuï theå thöïc hieän qua caùc böôùc sau :
Böôùc 1
Vôùi töøng thöïc theå ñôn giaûn trong moâ hình quan nieäm, ta taïo moät quan heä Q töông öùng bao goàm caùc thuoäc tính cuûa thöïc theå ñoù. Ñoàng thôøi choïn khoùa chính cho quan heä Q.
Böôùc 2
Ñoái vôùi moái lieân keát 1 ngoâi hoaëc 2 ngoâi (soá ngoâi laø soá thöïc theå tham gia vaøo moái lieân keát ) laø 1-1 thì ta laáy khoùa cuûa thöïc theå beân naøy ñaët vaøo trong thöïc theå beân kia vaø ngöôïc laïi. Neân laáy khoùa beân nhieàu boû beân ít ñeå toán ít vuøng nhôù löu tröõ.
Böôùc 3
Ñoái vôùi moái lieân keát 1 ngoâi hoaëc 2 ngoâi (soá ngoâi laø soá thöïc theå tham gia vaøo moái lieân keát ) laø 1-n thì ta laáy khoùa cuûa thöïc theå beân 1 ñaët vaøo trong quan heä beân nhieàu.
Böôùc 4
Ñoái vôùi moái lieân keát 1 ngoâi hoaëc 2 ngoâi (soá ngoâi laø soá thöïc theå tham gia vaøo moái lieân keát ) laø n-n thì moái lieân keát naøy ñöôïc bieán thaønh 1 quan heä môùi. Khoùa cuûa quan heä môùi laø khoùa cuûa 2 thöïc theå tham gia vaøo moái lieân keát.
Böôùc 5
Ñoái vôùi moái lieân keát 3 ngoâi thì moái lieân keát naøy ñöôïc bieán thaønh 1 quan heä môùi. Khoùa cuûa quan heä môùi laø khoùa cuûa 3 thöïc theå tham gia vaøo moái lieân keát.
Böôùc 6
Ñoái vôùi heä phaân caáp kieåu cha (Supertype), kieåu con (Subtype) thì coù bao nhieâu kieåu thöïc theå thì coù baáy nhieâu quan heä.
Quan heä kieåu cha chöùa khoùa chung, thuoäc tính chung keå caû thuoäc tính duøng ñeå phaân loaïi kieåu con.
Quan heä kieåu con chöùa khoùa chung vaø caùc thuoäc tính rieâng vaø coù theå chöùa khoùa rieâng, vaø quan heä kieåu con thöøa höôûng caùc thuoäc tính chung cuûa quan heä kieåu cha.
Keát quûa cuûa quùa trình bieán ñoåi nhö sau :
UserTable ( userID , username , password , fullname , status , valid_to_date , lock_home_dir , IDhomedir , description )
GroupTable ( groupID , groupname , IDhomedir , description )
DirAccess ( dirID , dirPath , description )
Permission ( rightID , rightname , description )
Privilege ( privilegeID , privilegename , description )
User_Group ( userID , groupID )
User_Dir_Per ( userID , dirID , rightID )
Group_Dir_Per ( groupID , dirID , rightID )
Moâ taû caùc moái keát hôïp
Moái quan heä giöõa user vaø group
Moãi user coù theå thuoäc nhieàu group hoaëc khoâng thuoäc group naøo.
Moãi group coù theå coù nhieàu user hoaëc khoâng coù thaønh vieân naøo.
Moái quan heä giöõa user, diraccess vaø permission
Moãi user coù theå coù nhieàu DirAccess hoaëc khoâng coù DirAccess naøo. Moãi moät DirAccess cuûa moät user coù theå ñöôïc caáp moät soá quyeàn hoaëc khoâng coù quyeàn naøo treân DirAccess ñoù.
Moái quan heä giöõa group, diraccess vaø permission
Moãi group coù theå coù nhieàu DirAccess hoaëc khoâng coù DirAccess naøo. Moãi moät DirAccess cuûa moät group coù theå ñöôïc caáp moät soá quyeàn hoaëc khoâng coù quyeàn naøo treân DirAccess ñoù.
Moái quan heä giöõa user vaø privilege
Moãi user seõ ñöôïc caáp cho moät ñaëc quyeàn ñeå töông taùc vôùi heä thoáng. Trong heä thoáng coù theå coù caùc user coù ñaëc quyeàn gioáng nhau.
Sô ñoà lieân keát caùc quan heä
Caùc raøng buoäc toaøn veïn
Ghi chuù :
Boái caûnh laø caùc quan heä.
+ : Caàn phaûi lieåm tra raøng buoäc toaøn veïn.
- : Khoâng caàn phaûi lieåm tra raøng buoäc toaøn veïn.
Raøng buoäc coù boái caûnh laø moät quan heä
Raøng buoäc toaøn veïn lieân boä ( khoùa chính)
Raøng buoäc 1 :
Boái caûnh : Raøng buoäc treân UserTable
UserTable ( userID , username , password , fullname , status, valid_to_date , lock_home_dir , IDhomedir , description )
Ñieàu kieän : Moãi thoâng tin cuûa moät user coù moät userID rieâng bieät khoâng truøng vôùi baát kyø user naøo khaùc.
"t1,t2 Î UserTable : t1¹ t2 Þ t1[userID] ¹t2[userID]
Cuoái "
Taàm aûnh höôûng :
RB1
Theâm
Xoùa
Söûa
UserTable
+
-
+(userID)
Caøi ñaët :
Constraint prkuserID primary key(userID)
Raøng buoäc 2 :
Boái caûnh : Raøng buoäc treân GroupTable
GroupTable ( groupID , groupname , IDhomedir , description ).
Ñieàu kieän : Moãi thoâng tin cuûa moät group coù moät groupID rieâng bieät khoâng truøng vôùi baát kyø group naøo khaùc.
"t1,t2 Î GroupTable : t1¹ t2 Þ t1[groupID] ¹t2[groupID]
Cuoái "
Taàm aûnh höôûng :
RB2
Theâm
Xoùa
Söûa
GroupTable
+
-
+( groupID)
Caøi ñaët :
Constraint prkgroupID primary key(groupID)
Raøng buoäc 3 :
Boái caûnh : Raøng buoäc treân Privilege
Privilege(privilegeID, privilegename, description).
Ñieàu kieän : Moãi thoâng tin cuûa moät privilege coù moät privilegeID rieâng bieät khoâng truøng vôùi baát kyø privilege naøo khaùc.
"t1,t2 Î Privilege : t1¹ t2
Þ t1[privilegeID] ¹t2[privilegeID]
Cuoái "
Taàm aûnh höôûng :
RB3
Theâm
Xoùa
Söûa
Privilege
+
-
+( privilegeID)
Caøi ñaët :
Constraint prkprivilegeID primary key(privilegeID)
Raøng buoäc 4 :
Boái caûnh : Raøng buoäc treân DirAccess
DirAccess(dirID, dirPath, description).
Ñieàu kieän : Moãi thoâng tin cuûa moät diraccess coù moät dirID rieâng bieät khoâng truøng vôùi baát kyø diraccess naøo khaùc.
"t1,t2 Î DirAccess : t1¹ t2 Þ t1[dirID] ¹t2[dirID]
Cuoái "
Taàm aûnh höôûng :
RB4
Theâm
Xoùa
Söûa
DirAccess
+
-
+(dirID)
Caøi ñaët :
Constraint prkdirID primary key(dirID)
Raøng buoäc 5 :
Boái caûnh : Raøng buoäc treân Permission
Permission(rightID, rightname, description).
Ñieàu kieän : Moãi thoâng tin cuûa moät permission coù moät rightID rieâng bieät khoâng truøng vôùi baát kyø permission naøo khaùc.
"t1,t2 Î Permission : t1¹ t2 Þ t1[rightID] ¹t2[rightID]
Cuoái "
Taàm aûnh höôûng :
RB5
Theâm
Xoùa
Söûa
Permission
+
-
+( rightID)
Caøi ñaët :
Constraint prkrightID primary key(rightID)
Raøng buoäc 6 :
Boái caûnh : Raøng buoäc treân User_Group
User_Group(userID , groupID).
Ñieàu kieän : userID vaø groupID laø._.