Vấn đề là sao để đề tài có thể ứng dụng và hoạt động với mục đích thiết thực vào thực tế như chúng ta mong mỏi ?
Nhận định rằng cần quản lý chặt chẽ hệ thống, phân quyền hợp lý, đồng nhất việc khởi động server nhằm mục đích tăng khả năng hoạt động hiệu qủa hơn của server, hệ thống sẽ chắc chắn hơn và hiệu qủa cao hơn.
Thông qua đề tài này em đã bước đầu đi sâu vào tìm hiểu hệ quản trị cơ sở dữ liệu SQL cũng như Java để ứng dụng vào đề tài. Tuy chưa hoàn toàn tận dụng hết những ưu điểm của hệ quản trị cơ sở dữ liệu SQL Server, Java nhưng những gì đã tìm hiểu và ứng dụng vào đề tài cũng cho em một số hiểu biết về quản trị cơ sở dữ liệu SQL Server, Java nhằm đi sâu hơn nữa trong công việc tương lai của em.
Mặc dù đã cố gắng và đầu tư rất nhiều nhưng do thời gian có hạn nên đề tài còn nhiều hạn chế và chương trình có thể chưa tối ưu, đồng thời do kinh nghiệm lập trình chưa cao nên giao diện có nhiều điểm chưa phù hợp cũng như cách phân bổ màu sắc , hình ảnh . . . . chưa hợp lý.
77 trang |
Chia sẻ: baoanh98 | Lượt xem: 845 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Đề tài Thiết kế hệ thống FTP, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
CHƯƠNG I
GIỚI THIỆU ĐỀ TÀI
Với sự phát triển không ngừng của hệ thống mạng máy tính rộng khắp toàn cầu, việc sử dụng FTP không còn mấy xa lạ đối với cư dân Web. Truyền file (FTPl) nói chung và Internet nói riêng là một trong những dịch vụ khá phổ biến.
Thật vậy, đối với nhiều người thì FTP đồng nghĩa với Internet. Hệ thống truyền file là một phương tiện trợ giúp hữu hiệu cho con người, nhất là trong thời đại bùng nổ thông tin như hiện nay. Hàng ngày vô số File được gửi trên mạng, nhờ dịch vụ này con người có thể trao đổi dữ liệu với nhau một cách nhanh chóng, tiện ích và có tính chất kinh tế.
Với sự ra đời và phát triển mạnh mẽ các ứng dụng Multimedia đã làm cho các thông tin trên máy tính ngày càng phát triển càng thêm hấp dẫn, phong phú. Hiện nay, nhu cầu truyền dữ liệu ngày càng đa dạng hơn, không còn giới hạn ở dạng Text văn bản mà còn mở rộng cho phép ghép hình ảnh, âm thanh, video. . . . . giúp cho mọi người cảm thấy thoải mái, thuận tiện hơn trong việc truyền gởi dữ liệu mà không cần gặp mặt nhau. Với các công cụ lập trình ngày càng phát triển mạnh mẽ đã khai thác hầu như hoàn toàn những hỗ trợ của hệ điều hành thì việc viết một chương trình truyền file không còn nhiều vất vả nữa.
CHƯƠNG II
TÌM HIỂU CÁC HỆ THỐNG FTP CÓ SẴN
Ngày nay FTP hay dịch vụ truyền file đã trở nên phổ biến và hầu như không thể thiếu. FTP cho phép truyền file từ nơi này đến nơi khác thông qua mạng.
Hiện nay có rất nhiều dịch vụ FTP trên môi trường Internet cũng như trên môi trường ứng dụng. Qúa trình xây dựng ứng dụng FTP rất đa dạng, nhưng chủ yếu tập trung vào hai phần là FTP Client và FTP Server.
FTP Client
Là chương trình hoạt động phía máy khách cho phép người dùng thực hiện các thao tác trên các file .
Ví dụ như : CuteFTP, AbsoluteFTP, 3D-FTP, . . . . . . . .
Hầu hết các ứng dụng trên đều có các chức năng cơ bản là : upload, download, delete, rename, . . . .Các thao tác đều dựa trên việc tương tác lệnh giữa Client và Server. Nhận dữ liệu từ máy chủ và hiển thị cho người dùng
Một số FTP Client còn cho phép lọc (filter file). Nhằm giảm mức độ công việc cho server, tăng tốc chương trình.
Một số còn hỗ trợ chức năng resume, mà không phải bất kỳ FTP Client nào cũng có như CuteFTP. Khi việc upload/download bị ngắt giữa chừng do sự cố nào đó thì người dùng có thể thực hiện tiếp công việc đó ở lần sau khi bắt đầu mở máy.
Bên cạnh đó các FTP Client còn cung cấp cho người dùng một hàng đợi (Queue) làm cho người dùng cảm thấy rất thuận tiện trong việc download/upload các files/folders ở những thư mục khác nhau trên hệ thống.
FTP Server
Là chương trình hoạt động phía máy chủ, tiếp nhận yêu cầu, phản hồi thông tin và gởi dữ liệu về cho Client. Như Server-U FTP, . . . . . .
Hầu hết các FTP Server đều có các chức năng cơ bản sau : bên cạnh phu(c vụ các yêu cầu từ Client như yêu cầu thiết kênh truyền gởi dữ liệu, upload, download, delete, . . . . . còn có thiết lập tốc độ truyền, cấm địa chỉ kết nối, quy định số kết nối sẽ được tiếp nhận . . . . . .
Ngoài ra một số Server FTP còn quản trị các user của hệ thống như : tạo user, xoá user, cấm user, phân quyền cho user, tạo group, xóa group , thêm user vào group hay cấp quyền cho group. . . . . . .Các quyền sẽ được cấp ở đây sẽ là Read (được quyền download file), Write (được quyền upload file), Delete (được quyền xóa file), List (được quyền duyệt thư mục), Create (được quyền tạo thư mục), Remove (được quyền xóa thư mục) và Inherit (được quyền cho thừa kế các quyền đã có ). Mỗi user khi được tạo ra trên hệ thống sẽ được cấp cho một đặc quyền tương ứng để thao tác trên hệ thống như là No Privilege (không có đặc quyền nào cả chỉ là một user bình thường), Read-only Privilege (user có đặc quyền chỉ đọc chỉ được phép vào xem thông tin trên hệ thống), Group Administrator (user có đặc quyền này sẽ được quyền thực hiện các thao tác trên các group như thêm group, xóa group, . . .) và System Administrator (user có đặc quyền này sẽ có toàn quyền trên hệ thống) .. . . .
Giao thức FTP
Giao thức FTP được định nghĩa bởi RFC 959. Nó cung cấp những phương tiện để chuyển tới/từ những hệ thống máy tính từ xa. Thông thường người dùng chuyển một file cần quyền để đăng nhập và truy nhập những file trên hệ thống từ xa.
Một phiên làm việc FTP thông thường kéo theo sự tương tác của năm phần tử phần mềm :
User Interface ( Giao diện người dùng ) : Cung cấp giao diện người dùng và điều khiển phần phiên dịch giao thức phía client.
Client PI ( Protocol Interpreter ) : Đây là phần phiên dịch giao thức ( PI ) phía client. Nó phát đi những lệnh tới phần phiên dịch giao thức của server cũng như điều khiển quá trình chuyển dữ liệu phía client.
Server PI : Đây là phần phiên dịch giao thức của server. Nó đáp ứng những lệnh được phát đi bởi phần phiên dịch giao thức phía client và điều khiển qúa trình chuyển dữ liệu phía server.
Client DTP ( Data Transfer Process ) : Đây là tiến trình chuyển dữ liệu ( DTP ) phía client, có trách nhiệm truyền thông số với tiến trình chuyển dữ liệu phía server và hệ thống file cục bộ.
Server DTP : Đây là tiến trình chuyển dữ liệu phía server, có trách nhiệm truyền thông số với tiến trình chuyển dữ liệu phía client và hệ thống file từ xa.
Trong thời gian một phiên làm việc FTP sẽ có hai kết nối mạng riêng biệt, một giữa các PI và một giữa các DTP. Kết nối giữa các PI được gọi là kết nối điều khiển ( control connection ) . Kết nối giữa các DTP được gọi là kết nối dữ liệu (data connection).
Các kết nối điều khiển và dữ liệu sử dụng giao thức TCP.
Thường thì FTP server lắng nghe trên port thông dụng là port thứ 21 cho những yêu cầu kết nối điều khiển. Việc lựa chọn port cho kết nối dữ liệu phụ thuộc vào những lệnh được phát đi trên kết nối điều khiển. Theo quy ước, phía client gởi một thông báo điều khiển chỉ cho biết số port tại đó phía client đã chuẩn bị sẵn để nhận một yêu cầu kết nối dữ liệu vào.
Việc sử dụng những kết nối riêng biệt cho điều khiển và dữ liệu có lợi là hai kết nối có thể lựa chọn những chất lượng dịch vụ khác nhau như : khoảng trì hoãn tối thiểu cho kết nối điều khiển và cực đại cho kết nối dữ liệu, nó cũng tránh những vấn đề của việc cung cấp các mã thoát ( escape sequences ).
Khuôn dạng lệnh
Danh sách chi tiết tất cả các lệnh
Lệnh Ýù nghĩa
ABOR Hủy sự chuyển dữ liệu hoặc lệnh đang được thực hiện.
ACCT Vài hệ thống liên kết cả những tài khoản lẫn những người dùng với những đối tượng hệ thống file.
ALLO Cấp phát không gian cho file sắp được gửi đi. Tham số chỉ rõ số byte cần cấp phát.
APPE Nối vào cuối file đang tồn tại.
CDUP Chuyển lên thư mục cha của thư mục hiện tại trên server.
CWD Thay đổi thư mục làm việc trên server.
DELE Xóa file trên server.
HELP Yêu cầu thông tin trợ giúp từ server. Thí dụ, danh sách những lệnh được server hỗ trợ.
LIST Gửi một danh sách tên file ( bao gồm ngày tháng tạo, kích thước, và loại file hoặc thư mục ) trong thư mục hiện hành trên server trên kết nối dữ liệu.
MKD Tạo thư mục.
MODE Chỉ rõ chế độ truyền. Tham số là S (Stream), B (Block), hoặc C (Compression).
NLST Gửi một danh sách các file thỏa mãn một điều kiện nào đó trên kết nối dữ liệu.
NOOP Không làm gì cả. Lệnh thường dùng để kiểm tra trạng thái kết nối điều khiển.
PASV Chỉ ra rằng phần DTP của server lắng nghe một yêu cầu kết nối từ phần DTP của client.
PORT Chỉ ra số port mà phần DTP phía client đang lắng nghe một yêu cầu kết nối.
PWD Cho biết tên thư mục hiện hành trên server.
QUIT Logout hoặc cắt kết nối.
REIN Xác lập lại các giá trị ban đầu. Logout mà không cắt kết nối. Sẽ theo sau bằng một lệnh USER mới cho một người dùng khác.
REST Khởi động lại qúa trình truyền từ nơi đánh dấu ở phía server.
RETR Download file từ server.
RMD Xoá thư mục.
RNFR Chỉ ra tên đường dẫn cũ của file hoặc thư mục sẽ được đổi tên. Được theo sau bởi lệnh RNTO.
RNTO Chỉ ra tên đường dẫn mới của file hoặc thư mục sẽ được đổi tên.
SITE Truy vấn thông tin về server.
STAT Truy vấn trạng thái của lệnh trước đó hoặc của server.
STOR Lưu trữ file trên server và ghi đè lên file cũ nếu nó đã tồn tại.
STOU Chỉ ra rằng sẽ Upload file lên server với tên duy nhất ( Unique ).
STRU Chỉ ra cấu trúc file. Tham số là F ( File ), R ( Record ), hoặc P ( Page ).
SYST Báo cáo loại hệ điều hành trên hệ thống từ xa ( Remote System ).
TYPE Chỉ ra sự thể hiện kiểu file. Tham số là một trong những ký tự A ( ASCII ), E ( EBCDIC ), I ( Image ), L ( Local ) cho kiểu file và được theo sau bởi N (No printing controls), T (Telnet printing controls ) hoặc C (Fortran printing controls) để điều khiển định dạng hoặc một số chỉ rõ kích thước byte cục bộ. Chỉ có kiểu A và kiểu I là thường dùng.
USER Gửi tên đăng nhập lên server.
PASS Gửi mật khẩu ( không mã hóa ) của tên đăng nhập lên server.
Các dạng trả lời lệnh ( command reply ) trên kết nối điều khiển
Kiểu Mô tả
1yz Trả lời chấp nhận sơ bộ. Đợi một trả lời tiếp theo trứơc khi gửi lệnh khác.
2yz Trả lời chấp nhận hoàn tất. Lệnh cuối cùng được thực hiện thành công.
3yz Trả lời chấp nhận tạm thời. Một lệnh nữa phải được gửi.
4yz Trả lời hoàn tất phủ nhận nhất thời. Hoạt động yêu cầu không được thực hiện nhưng có thể thử lại.
5yz Trả lời hoàn tất phủ nhận lâu dài. Hoạt động yêu cầu không được thực hiện và không nên thử lại.
Chữ số “y” mã hóa thông tin chi tiết hơn
Chữ số y Ý nghĩa
0 Lỗi cú pháp
1 Thông tin
2 Tình trạng kết nối
3 Quyền và tài khoản
4 Chưa chỉ ra
5 Tình trạng hệ thống
Diễn giải
Begin Bắt đầu kết nối vào server
Cmd Gửi đi một lệnh
W Đợi hồi đáp từ phía server
S Lệnh thành công
F Lệnh không thành công
Các số 1, 2, 3, 4, 5 cho biết ký số đầu tiên của chuỗi hồi đáp.
Ví dụ một số lệnh có tham số thường dùng
HELP [SITE] Yêu cầu trợ giúp, ở đây tham số tùy chọn là SITE
USER lien Đăng nhập với tên “lien”
PASS lien Chỉ ra rằng mật khẩu đăng nhập là “lien”
CWD /FtpUpload Chuyển sang thư mục /FtpUpload trên server
MKD testDir Yêu cầu tạo thư mục tên testDir
RMD testDir Yêu cầu xóa thư mục tên testDir
MODE S Thiết lập chế độ truyền là Stream ( dòng dữ liệu )
TYPE I Cho biết là sẽ dùng kiểu dữ liệu nhị phân
NLST –L *.exe /CSDL/*.* Tìm các file .exe trong thư mục hiện tại và tất cả các file trong thư mục /CSDL
PORT 127,0,0,0,4,120 Client sẽ dùng port 1144 cho kết nối dữ liệu và địa chỉ là trên máy cục bộ ( địa chỉ khứ hồi)
RETR testFile.txt Yêu cầu Download file tên testFile.txt trên thư mục hiện hành
STOR testFile.txt Yêu cầu Upload file tên testFile.txt lên thư mục hiện hành
RNFR testFile.txt Yêu cầu đổi tên file testFile.txt
RNTO testFile.bak Đổi tên file từ lệnh RNFR thành testFile.bak
DELE testFile.txt Xóa file tên testFile.txt trên server
Những hồi đáp cần chú ý
220
Dịch vụ sẵn sàng cho người dùng mới.
331
Người sử dụng được chấp nhận, yêu cầu mật khẩu. Thay vì báo là USER không tồn tại sau khi tìm kiếm, thường thì server luôn trả lời lệnh USER bằng giá trị này mà không xét đến user đó có thật sự tồn tại không. Đây là một cơ chế chống tấn công bằng cách dò mật khẩu của các user có trong hệ thống.
230
Người dùng đã đăng nhập.
200
Lệnh được đồng ý.
226
Đóng kết nối dữ liệu.
250
Hoạt động file yêu cầu được chấp nhận và hoàn tất.
350
Cần thêm thông tin cho hoạt động về file được yêu cầu.
150
Kết nối dữ liệu ( ASCII hoặc nhị phân ) được thiết lập từ server đến client. Nếu là qúa trình Download thì thường kèm theo thông tin về kích thước file.
226
Hoàn tất việc truyền.
221
Dịch vụ đang đóng kết nối điều khiển.
125
Kết nối dữ liệu đã mở, bắt đầu truyền.
425
Không mở được kết nối dữ liệu.
503
Trình tự lệnh không hợp lệ.
530
Chưa đăng nhập.
CHƯƠNG III
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
Qúa trình hoạt động của FTP
Mô hình FTP
Các thuật ngữ trên mô hình
User Interface ( Giao diện người dùng ) : Cung cấp giao diện người dùng và điều khiển phần phiên dịch giao thức phía client.
Client PI ( Protocol Interpreter ) : Đây là phần phiên dịch giao thức ( PI ) phía client. Nó phát đi những lệnh tới phần phiên dịch giao thức của server cũng như điều khiển quá trình chuyển dữ liệu phía client.
Server PI : Đây là phần phiên dịch giao thức của server. Nó đáp ứng những lệnh được phát đi bởi phần phiên dịch giao thức phía client và điều khiển qúa trình chuyển dữ liệu phía server.
Client DTP ( Data Transfer Process ) : Đây là tiến trình chuyển dữ liệu ( DTP ) phía client, có trách nhiệm truyền thông số với tiến trình chuyển dữ liệu phía server và hệ thống file cục bộ.
Server DTP : Đây là tiến trình chuyển dữ liệu phía server, có trách nhiệm truyền thông số với tiến trình chuyển dữ liệu phía client và hệ thống file từ xa.
Nguyên tắc hoạt động
Trong thời gian một phiên làm việc FTP sẽ có hai kết nối mạng riêng biệt, một giữa các PI và một giữa các DTP. Kết nối giữa các PI được gọi là kết nối điều khiển ( control connection ) . Kết nối giữa các DTP được gọi là kết nối dữ liệu (data connection).
User-PI sẽ khởi tạo Control connection. Control connection sẽ theo giao thức Telnet. Ơû đây User-PI sẽ gửi các lệnh FTP cho server thông qua Control connection và các response tương ứng với các lệnh sẽ được Server-PI gởi trả về cho User-PI thông qua Control connection này.
Các lệnh FTP sẽ chỉ rõ các tham số sẽ được dùng để cung cấp cho việc thiết lập kênh truyền dữ liệu Data connect, như là : data port, transfer mode, representation type và structure. Ngoài ra nó còn cung cấp như là : store, retrieve, append, delete. . . ..
User-DTP sẽ lắng nghe trên port đã được chỉ định và server sẽ khởi tạo Data connection và gởi dữ liệu đã thỏa thuận trong các tham số. Port được dùng để thiết lập Data connection không nhất thiết phải giống như cổng đã thiết lập Control connection. Nhưng User-DTP phải lắng nghe trên port đã được chỉ định, tiếp nhận kết nối của Server và cuối cùng gởi hay nhận dữ liệu tùy vào các tham số trước đó.
Data connection này có thể được dùng cho việc gửi và nhận dữ liệu đồng thời.
Mối quan hệ giữa FTP Server và FTP Client
Files chỉ được truyền trên Data connection. Còn Control connection dùng cho việc gởi lệnh của Client và gởi trả hồi đáp (response) của Server.
Khi có nhu cầu gởi/nhận dữ liệu thì trước khi phát lệnh để gởi/nhận dữ liệu thì Client phải gởi các lệnh để cung cấp các thông số cho việc thiết lập Data connection như là : cổng, chế độ truyền, kiểu truyền . . . . .Sau khi đã được server chấp nhận các yêu cầu thiết lập trước đó thì Client bắt đầu gởi lệnh yêu cầu gởi/nhận dữ liệu.
Trong trường hợp có lỗi, hay bị sự cố thì Client sẽ căn cứ vào các mã hồi đáp của Server để xác định công việc kế tiếp. Mã hồi đáp này còn có tác dụng đồng nhất hoạt động giữa Client và Server.
Sơ đồ biểu diễn qúa trình xử lý các chức năng
Sơ đồ tổng quát
Sơ đồ chức năng : ( hình sau )
Sơ đồ biểu diễn qúa trình xử lý chi tiết các chức năng
Sơ đồ biểu diễn qúa trình xử lý của Server
Phân rã process 3 : Trước khi tiếp nhận các lệnh do Client gởi lên, phục vụ các yêu cầu từ Client thì Server sẽ kiểm tra Client đã qua qúa trình đăng nhập vào hệ thống hay chưa nếu chưa thì yêu cầu Client phải qua quá trình đăng nhập thì mới có hiệu lực. Nếu không thì Server sẽ không tiếp nhận hay đáp ứng bất kỳ yêu cầu của Client.
Process 3.2 : Nếu user chưa qua qúa trình đăng nhập thì yêu cầu user nên đăng nhập vào hệ thống trước khi gởi các yêu cầu. Trong qúa trình này Server sẽ giám sát chặt chẽ user qua từng lệnh. Trước hết user phải gởi username thông qua lệnh USER username. Sau đó Server sẽ yêu cầu nhập password, nếu ở đây user không nhập password mà nhập lệnh nào khác thì sẽ không được Server chấp nhận. Ngoài lệnh QUIT kết thúc phiên làm việc.
Process 3.3 : Sau khi user đã đăng nhập thành công vào hệ thống thì có thể gởi các yêu cầu lên Server thông qua các lệnh tương ứng. Ơû đây Server sau khi tiếp nhận một yêu cầu của Client, thì Server sẽ đi xác định quyền hạn của user đó. Nếu user đó không có quyền thì sẽ từ chối phục vụ yêu cầu đó. Nếu user hoàn toàn hợp lệ, có đủ quyền hạn thì sẽ phân tích lệnh để thực hiện các thao tác tiếp theo hay đáp ứng các yêu cầu cho đúng.
Sơ đồ biểu diễn qúa trình xử lý của Client trên cơ sở các thành phần giao diện đồ hoạ (GUI)
Phân rã process 5 : Tùy từng sự kiện mà Client sẽ gởi các lệnh tương ứng lên Server để yêu cầu phục vụ.
Process 5.1 : Sơ đồ xử lý sự kiện Connect. Khi người dùng nhấn nút Connect thì Client sẽ dùng username và password mà người dùng đã nhập đăng nhập vào hệ thống.
Proceess 5.2 : Sơ đồ xử lý sự kiện Delete các files/folders mà người dùng đã chọn. Sau khi người dùng đã chọn các files/folders và Delete các files/folders đó thì các files/folders này sẽ được đưa vào hàng đợi ( Queue ) và sau đó được thực thi lần lượt.
Process 5.3 : Sơ đồ xử lý sự kiện upload sau khi người dùng đã chọn các files/folders trên hệ thống và yêu cầu upload lên Server. Thì các files/folders này sẽ được đưa vào hàng đợi ( Queue ) và được thực thi.
Process 5.4 : Sơ đồ xử lý sự kiện download sau khi người dùng đã chọn các files/folders trên hệ thống và yêu cầu download xuống client. Thì các files/folders này sẽ được đưa vào hàng đợi ( Queue ) và được thực thi.
Process 5.5 : Sơ đồ xử lý việc thực thi các dữ liệu đã được lưu trong hàng đợi mà người dùng đã add vào đó. Khi người dùng muốn upload hay download các files/folders không cùng trên một thư mục thì người dùng có thể add “Add to queue” từng file/folder vào hàng đợi ( Queue ). Sau khi đã hoàn tất việc chọn lựa các files/folders trên các thư mục khác nhau và add chúng vào hàng đợi thì bắt đầu thực thi chúng (upload hay download).
Process xử lý việc upload hay download : Trước khi upload hay download một file thì Client phải gởi lệnh PORT thôngsốport để báo cho Server biết sẽ tạo data connection trên port đó để truyền nhận dữ liệu. Sau khi gởi lệnh PORT và nhận về hồi đáp (Response) từ Server thì Client bắt đầu phân tích. Nếu Server đồng ý thì Client sẽ gởi lệnh yêu cầu upload hay download, sau khi gởi lệnh cũng nhận về Response và phân tích nếu Server đồng ý thì tạo data connection để tiếp nhận kết nối từ Server thông qua data connection này. Sau khi tiếp nhận được kết nối từ Server thì sẽ thiết lập kênh truyền gởi dữ liệu nếu là upload và sẽ thiết lập kênh truyền nhận dữ liệu nếu là download. Sau đó sẽ gởi dữ liệu lên kênh truyền hay đọc dữ liệu từ kênh truyền về cho đến khi kết thúc.
Process 5.5.4 : Sơ đồ xử lý việc upload
Process 5.5.8 : Sơ đồ xử lý việc download
Sơ đồ xử lý và phân tích Response (hồi đáp) của các lệnh, để xác định công việc kế tiếp của Client
Đối với các lệnh : ABOR, ALLO, DELE, CWD, CDUP, SMNT, HELP, MODE, PASV, QUIT SITE, PORT, SYST, STAT, RMD, MKD, PWD, STRU and TYPE.
Đối với các lệnh : APPE, LIST, NLIST, REIN, RETR, STOR and STOU.
Process 5.5.6 : Sơ đồ xử lý Disconnect.
Sơ đồ biểu diễn việc quản trị các user và các group trên hệ thống
Mỗi user trên hệ thống sẽ được cấp cho một đặc quyền. Khi user đăng nhập vào hệ thống, tùy theo đặc quyền của mình user có thể thực hiện một số thao tác trên hệ thống như : thêm user, xóa user, . . . . . .
Phân rã process 9 : Sơ đồ xử lý việc quản trị user, như là thêm user, xoá user, thay đổi thông tin về user ( cấp thêm diraccess, cấp thêm quyền . . . )
Process 9.1 thêm user : Sơ đồ xử lý việc thêm user mới.
Process 9.2 : Sơ đồ xử lý việc xóa user. Khi xóa một user thì ta phải xóa luôn các diraccess của user đó, đồng thời loại bỏ user đó ra khỏi các group mà user đó thuộc trước khi xóa user ra khỏi hệ thống.
Process 9.3 : Sơ đồ xử lý việc cập nhật lại các diraccess cho user khi có thay đổi.
Phân rã process 10 : Sơ đồ xử lý việc quản trị group, như là thêm user, xóa group, thay đổi thông tin về group ( cấp thêm diraccess, cấp thêm quyền . . . )
Process 10.1 thêm group : Sơ đồ xử lý việc thêm group mới.
Process 10.2 : Sơ đồ xử lý việc xóa group. Khi xóa một user thì ta phải xóa luôn các diraccess của group đó, đồng thời loại bỏ các user thuộc group đó trước khi xóa group ra khỏi hệ thống.
Process 10.3 : Sơ đồ xử lý việc cập nhật lại các diraccess cho group khi có thay đổi.
Phân tích và thiết kế cơ sở dữ liệu
Mô hình thực thể kết hợp
Mô hình thực thể
Mô tả các thực thể
Thực thể USER
Mô tả thông tin về user của hệ thống. Mỗi user có một username duy nhất. Các username có thể có cùng password. Một user có thể thuộc nhiều group, userID được dùng làm khóa để quản lý user đó.
Thực thể Group
Mô tả thông tin về group. Mỗi group có một groupname duy nhất, groupID được dùng làm khóa để quản lý group đó. Mỗi group có thể có nhiều user.
Thực thể DirAccess
Mô tả thông tin về một DirAccess như dirname, đường dẫn vật lý. Mỗi DirAccess có một dirID duy nhất và được dùng làm khóa để quản lý DirAccess đó.
Thực thể Permission
Mô tả thông tin về các quyền sẽ được cấp cho các user hay các group. Mỗi quyền có một rightID duy nhất, được dùng làm khóa để quản lý quyền đó.
Các quyền sẽ được cấp cho các DirAccess của các user sẽ là các quyền sau :
Các quyền trên file :
Read : Quyền được đọc file. User có quyền sẽ được quyền download các file trong thư mục đó.
Write : Quyền được ghi file. User có quyền sẽ được quyền upload lên thư mục đó.
Delete : Quyền được xóa file.
Các quyền trên thư mục :
List : Quyền duyệt các file và thư mục con của thư mục.
Create : Quyền được tạo thư mục
Remove : Quyền được xóa thư mục
Quyền trên các file và thư mục con :
Inherit : quyền được thừa kế các quyền mà thư mục cha có.
Thực thể Privilege
Mô tả thông tin về các đặc quyền sẽ được cấp cho user. Mỗi đặc quyền sẽ có một privilegeID duy nhất, được dùng làm khóa để quản lý privilege đó.
Các đặc quyền của hệ thống sẽ bao gồm một số đặc quyền sau :
System Administrator
Group Administrator
Read-only Administrator
No Privilege
Chuyển đổi từ mô hình thực thể sang mô hình quan hệ
Quy tắc
Từ mô hình quan niệm là mô hình biểu diễn tất cả các đối tượng. Mỗi đối tượng là một thể hiện trong thế giới thực.
Trong mô hình quan hệ, chúng ta xét các mối quan hệ giữa từng đối tượng đó. Cụ thể thực hiện qua các bước sau :
Bước 1
Với từng thực thể đơn giản trong mô hình quan niệm, ta tạo một quan hệ Q tương ứng bao gồm các thuộc tính của thực thể đó. Đồng thời chọn khóa chính cho quan hệ Q.
Bước 2
Đối với mối liên kết 1 ngôi hoặc 2 ngôi (số ngôi là số thực thể tham gia vào mối liên kết ) là 1-1 thì ta lấy khóa của thực thể bên này đặt vào trong thực thể bên kia và ngược lại. Nên lấy khóa bên nhiều bỏ bên ít để tốn ít vùng nhớ lưu trữ.
Bước 3
Đối với mối liên kết 1 ngôi hoặc 2 ngôi (số ngôi là số thực thể tham gia vào mối liên kết ) là 1-n thì ta lấy khóa của thực thể bên 1 đặt vào trong quan hệ bên nhiều.
Bước 4
Đối với mối liên kết 1 ngôi hoặc 2 ngôi (số ngôi là số thực thể tham gia vào mối liên kết ) là n-n thì mối liên kết này được biến thành 1 quan hệ mới. Khóa của quan hệ mới là khóa của 2 thực thể tham gia vào mối liên kết.
Bước 5
Đối với mối liên kết 3 ngôi thì mối liên kết này được biến thành 1 quan hệ mới. Khóa của quan hệ mới là khóa của 3 thực thể tham gia vào mối liên kết.
Bước 6
Đối với hệ phân cấp kiểu cha (Supertype), kiểu con (Subtype) thì có bao nhiêu kiểu thực thể thì có bấy nhiêu quan hệ.
Quan hệ kiểu cha chứa khóa chung, thuộc tính chung kể cả thuộc tính dùng để phân loại kiểu con.
Quan hệ kiểu con chứa khóa chung và các thuộc tính riêng và có thể chứa khóa riêng, và quan hệ kiểu con thừa hưởng các thuộc tính chung của quan hệ kiểu cha.
Kết qủa của qúa trình biến đổ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 )
Mô tả các mối kết hợp
Mối quan hệ giữa user và group
Mỗi user có thể thuộc nhiều group hoặc không thuộc group nào.
Mỗi group có thể có nhiều user hoặc không có thành viên nào.
Mối quan hệ giữa user, diraccess và permission
Mỗi user có thể có nhiều DirAccess hoặc không có DirAccess nào. Mỗi một DirAccess của một user có thể được cấp một số quyền hoặc không có quyền nào trên DirAccess đó.
Mối quan hệ giữa group, diraccess và permission
Mỗi group có thể có nhiều DirAccess hoặc không có DirAccess nào. Mỗi một DirAccess của một group có thể được cấp một số quyền hoặc không có quyền nào trên DirAccess đó.
Mối quan hệ giữa user và privilege
Mỗi user sẽ được cấp cho một đặc quyền để tương tác với hệ thống. Trong hệ thống có thể có các user có đặc quyền giống nhau.
Sơ đồ liên kết các quan hệ
Các ràng buộc toàn vẹn
Ghi chú :
Bối cảnh là các quan hệ.
+ : Cần phải liểm tra ràng buộc toàn vẹn.
- : Không cần phải liểm tra ràng buộc toàn vẹn.
Ràng buộc có bối cảnh là một quan hệ
Ràng buộc toàn vẹn liên bộ ( khóa chính)
Ràng buộc 1 :
Bối cảnh : Ràng buộc trên UserTable
UserTable ( userID , username , password , fullname , status, valid_to_date , lock_home_dir , IDhomedir , description )
Điều kiện : Mỗi thông tin của một user có một userID riêng biệt không trùng với bất kỳ user nào khác.
"t1,t2 Ỵ UserTable : t1¹ t2 Þ t1[userID] ¹t2[userID]
Cuối "
Tầm ảnh hưởng :
RB1
Thêm
Xóa
Sửa
UserTable
+
-
+(userID)
Cài đặt :
Constraint prkuserID primary key(userID)
Ràng buộc 2 :
Bối cảnh : Ràng buộc trên GroupTable
GroupTable ( groupID , groupname , IDhomedir , description ).
Điều kiện : Mỗi thông tin của một group có một groupID riêng biệt không trùng với bất kỳ group nào khác.
"t1,t2 Ỵ GroupTable : t1¹ t2 Þ t1[groupID] ¹t2[groupID]
Cuối "
Tầm ảnh hưởng :
RB2
Thêm
Xóa
Sửa
GroupTable
+
-
+( groupID)
Cài đặt :
Constraint prkgroupID primary key(groupID)
Ràng buộc 3 :
Bối cảnh : Ràng buộc trên Privilege
Privilege(privilegeID, privilegename, description).
Điều kiện : Mỗi thông tin của một privilege có một privilegeID riêng biệt không trùng với bất kỳ privilege nào khác.
"t1,t2 Ỵ Privilege : t1¹ t2
Þ t1[privilegeID] ¹t2[privilegeID]
Cuối "
Tầm ảnh hưởng :
RB3
Thêm
Xóa
Sửa
Privilege
+
-
+( privilegeID)
Cài đặt :
Constraint prkprivilegeID primary key(privilegeID)
Ràng buộc 4 :
Bối cảnh : Ràng buộc trên DirAccess
DirAccess(dirID, dirPath, description).
Điều kiện : Mỗi thông tin của một diraccess có một dirID riêng biệt không trùng với bất kỳ diraccess nào khác.
"t1,t2 Ỵ DirAccess : t1¹ t2 Þ t1[dirID] ¹t2[dirID]
Cuối "
Tầm ảnh hưởng :
RB4
Thêm
Xóa
Sửa
DirAccess
+
-
+(dirID)
Cài đặt :
Constraint prkdirID primary key(dirID)
Ràng buộc 5 :
Bối cảnh : Ràng buộc trên Permission
Permission(rightID, rightname, description).
Điều kiện : Mỗi thông tin của một permission có một rightID riêng biệt không trùng với bất kỳ permission nào khác.
"t1,t2 Ỵ Permission : t1¹ t2 Þ t1[rightID] ¹t2[rightID]
Cuối "
Tầm ảnh hưởng :
RB5
Thêm
Xóa
Sửa
Permission
+
-
+( rightID)
Cài đặt :
Constraint prkrightID primary key(rightID)
Ràng buộc 6 :
Bối cảnh : Ràng buộc trên User_Group
User_Group(userID , groupID).
Điều kiện : userID và groupID là khóa chính của User_Group.
"t1,t2 Ỵ User_Group : t1¹ t2
Þ t1[userID , groupID] ¹t2[userID , groupID]
Cuối "
Tầm ảnh hưởng :
RB6
Thêm
Xóa
Sửa
User_Group
+
-
+( userID , groupID)
Cài đặt :
Constraint prkUser_Group primary key(userID , groupID)
Ràng buộc 7 :
Bối cảnh : Ràng buộc trên User_Dir_Per
User_Dir_Per (userID , dirID , rightID).
Điều kiện : userID, dirID và rightID là khóa chính của User_Dir_Per.
"t1,t2 Ỵ User_Dir_Per : t1¹ t2
Þ t1[userID,dirID,rightID] ¹t2[userID,dirID,rightID]
Cuối "
Tầm ảnh hưởng :
RB7
Thêm
Xóa
Sửa
User_Dir_Per
+
-
+( userID, dirID,rightID)
Cài đặt :
Constraint prkUser_Dir_Per primary key(userID,groupID,rightID)
Ràng buộc 8 :
Bối cảnh : Ràng buộc trên Group_Dir_Per
Group_Dir_Per (groupID , dirID , rightID).
Điều kiện : groupID, dirID và rightID là khóa chính của Group_Dir_Per.
"t1,t2 Ỵ User_Dir_Per : t1¹ t2
Þ t1[groupID,dirID,rightID] ¹t2[groupID,dirID,rightID]
Cuối "
Tầm ảnh hưởng :
RB8
Thêm
Xóa
Sửa
Group_Dir_Per
+
-
+( groupID, dirID,rightID)
Cài đặt :
Constraint prkGroup_Dir_Per primary key(groupID,dirID,rightID)
Ràng buộc toàn vẹn trên thuộc tính
Ràng buộc 9 :
Bối cảnh : Ràng buộc trên UserTable
Điều kiện : Mỗi user sẽ có một username duy nhất không trùng với user khác.
"t1,t2 Ỵ UserTable : t1¹ t2 Þ t1[username] ¹t2[username]
Cuối "
Tầm ảnh hưởng :
RB9
Thêm
Xóa
Sửa
UserTable
+
-
+(username)
Ràng buộc 10 :
Bối cảnh : Ràng buộc trên GroupTable
Điều kiện : Mỗi group sẽ có một groupname duy nhất không trùng với group khác.
"t1,t2 Ỵ GroupTable : t1¹ t2
Þ t1[username] ¹t2[groupname]
Cuối "
Tầm ảnh hưởng :
RB10
Thêm
Xóa
Sửa
GroupTable
+
-
+( groupname)
Ràng buộc 11 :
Bối cảnh : Ràng buộc trên DirAccess
Điều kiện : Mỗi diraccess sẽ có một dirPath duy nhất không trùng với dirPath của diraccess khác.
"t1,t2 Ỵ DirAccess : t1¹ t2 Þ t1[dirPath] ¹t2[dirPath]
Cuối "
Tầm ảnh hưởng :
RB11
Thêm
Xóa
Sửa
DirAccess
+
-
+(dirPath)
Ràng buộc có bối cảnh là nhiều quan hệ
Ràng buộc toàn vẹn về phụ thuộc tồn tại
Ràng buộc 12 :
Bối cảnh : Ràng buộc trên UserTable
Điều kiện : privilegeID là khóa ngoại của UserTable được tham chiếu từ Privilege.
"x1 Ỵ Privilege
Þ $x2 Ỵ UserTable : x1[privilegeID] Í x2[privilegeID]
Cuối "
Tầm ảnh hưởng :
RB12
Thêm
Xóa
Sửa
Privilege
-
+
+(privilegeID)
UserTable
+
-
+( privilegeID)
Từ điển dữ liệu
STT
Tên viết tắt
Tên thực thể
1
UserTable
User
2
GroupTable
Group
3
DirAccess
DirAccess
4
Privilege
Đặc quyền
5
Permission
Quyền
STT
Tên viết tắt
Tên thuộc tính
1
UserID
ID của user
2
Username
Username
3
password
Password
4
fullname
Tên đầy đủ của user
5
Status
Tình trạng của user
6
valid_to_date
Thời gian có hiệu lực
7
lock_home_dir
Phạm vi hoạt động
8
Description
Diễn giải, chú thích
9
groupID
ID của group
10
Groupname
Groupname
11
PrivilegeID
Mã loại đặc quyền
12
privilegename
Tên loại đặc quyền
13
DirID
Mã dirAccess
14
DirPath
Đường dẫn vật lý của dirAccess
15
Homedir
DirAccess là homedir của user ?
16
Inherit
Quyền trên dirAccess của user cho phép thừa kế ?
17
RigthID
Mã quyền
18
Rightname
Tên quyền
CHƯƠNG IV
HƯỚNG DẪN CÀI ĐẶT VÀ SỬ DỤNG CHƯƠNG TRÌNH
Đặc tả các chức năng
Lưu đồ giải thuật cho qúa trình xử lý của FTP Server
Lưu đồ giải thuật cho process 3.2
Lưu đồ giải thuật cho process 3.3
Lưu đồ giải thuật cho qúa trình xử lý của FTP Client
Lưu đồ giải thuật cho process 5.1
Lưu đồ giải thuật cho process 5.2
Lưu đồ giải thuật cho process 5.3
Lưu đồ giải thuật cho process 5.4
Lưu đồ giải thuật cho process 5.5
Lưu đồ giải thuật cho process 5.5.4
Lưu đồ giải thuật cho process 5.5.8
Lưu đồ giải thuật cho process 5.6
Lưu đồ giải thuật cho việc quản trị các user và các group trên hệ thống
Lưu đồ giải thuật cho process 9.1
Lưu đồ giải thuật cho process 9.2
Lưu đồ giải thuật cho process 9.3
Lưu đồ giải thuật cho process 10.1
Lưu đồ giải thuật cho process 10.2
Lưu đồ giải thuật cho process 10.3
Hướng dẫn sử dụng
Màn hình quản trị các và các group, khởi động FTP Server
Trước khi muốn thực hiện các thao tác trên user và group thì user phải đăng nhập vào hệ thống. Sau khi đăng nhập chương trình sẽ kiểm tra đặc quyền của user đó. Các đặc quyền của hệ thống là :
No Privilege : không có đặc quyền trên hệ thống chỉ là một user bình thường. Chỉ có quyền start/stop server.
Read-only Administrator : có quyền chỉ đọc. User có đặc quyền này chỉ có quyền xem các thông tin trên hệ thống.
Group Administrator : quyền quản trị các group.
System Administrator : quyền quản trị hệ thống, có toàn quyền trên hệ thống.
Sau khi đăng nhập thành công user có thể thực hiện các thao tác tương ứng với đặc quyền của mình. Nếu username hay password không hợp lệ sẽ thông báo.
Đối với User : Đối với user ta có thể xem và thay đổi thông tin về user, cho phép hay không cho phép user đó, thời gian sống, thay đổi đặc quyền, thay đổi homedir . . . . . .
Thay đổi homedir
Add user vào Group
quản lý các diraccess của user : có thể thêm,xóa, sửa các DrAccess. Có thể thêm hay bớt các quyền trên các diracces.
Thay đổi DirAccess
Đối với Group : Group có thể add user vào một Gruoup nào đó và cũng có thể xoá user đó ra khỏi Group. Có thể xem các thành viên trong Group, thay đổi thông tin của Group.
Group cũng có thể quản lý các DirAccess của nó. Tương tư như User, cũng có thể thêm các DirAccess,xóa, chỉnh sửa . . .
Chúng ta cũng có thể xem các thành User trong hệ thống
Hay các Group trong hệ thống
Màn hình giao diện của FTP Client
Muốn kết nối với Server thì người dùnh phải nhập username, passwoed, địa chỉ Server và số port.
Khi nhấn nút Connect chương trình sẽ kết nối với FTP Server, đăng nhập vào hệ thống. Nếu username và password hợp lệ thì Server sẽ gởi trả về thông báo.
Sau khi đăng nhập thành User có thể thực hiện các thao tác trên hệ thống như : download, upload, . . . .
CHƯƠNG V
NHẬN XÉT VÀ KẾT LUẬN
Ưu điểm của đề tài
FTP Client
Cho phép thực hiện các thao tác trên file và thư mục như download, upload, xóa file; upload, download, tạo, xóa thư mục.
Cung cấp hàng đợi (Queue) để tiện lợi cho người sửû dụng. Người dùng có thể nhặt từng file hay thư mục trên các thư mục khác nhau bỏ vào hàng đợi và thực hiện một lần.
FTP Server
Đáp ứng các yêu cầu từ Client như upload, download, xóa file, thay đổi thư mục làm việc, tạo thư mục, . . . . . . .
Ngoài ra hệ thống còn đáp ứng được nhu cầu quản trị các user và các group trên hệ thống.
Thêm, xóa, sửa các thông tin của user cũng như các DirAccess.
Có thể thêm hay bớt quyền trên các DirAccess của user.
Có thể add user vào group hay loại bỏ user ra khỏi group.
Thêm, xóa, sửa các thông tin của một group cũng như các DirAccess của group.
Cấp quyền hay bớt quyền cho group. Thêm user vào group hay loại bỏ user khỏi group.
Quản lý hệ thống thông qua các đặc quyền của user.
Hạn chế của đề tài
Do hạn chế về thời gian của một đề tài tốt nghiệp, bên cạnh FTP Server thì FTP Client còn chưa được hoàn thiện, chưa đầy đủ các chức năng, chỉ hoàn thành các chức năng cơ bản, chưa hoàn thành các chức năng chuyên sâu. Các chức năng chưa tốt, chưa ổn định, giao diện chưa thân thiện với người sử dụng, chưa có chức năng resume. Cần phải hoàn chỉnh nhiều hơn nữa.
Server chưa quản lý tốc độ truyền upload cũng như download
Chưa giám sát chặt chẽ các hoạt động của user.
Chưa hỗ trợ việc quản trị từ xa.
Hướng phát triển và mở rộng của đề tài
Cải thiện các chức năng chưa hoàn thiện, tối ưu chương trình .
Cho phép quản trị từ xa.
Kết nối các FTP Server lại với nhau. Khi user đăng nhập vào sẽ lấy về tất các các DirAccess của user đó trên các server mà user đó thuộc đưa về cho user.
Đưa ứng dụng lên môi trường Web.
Kết luận
Vấn đề là sao để đề tài có thể ứng dụng và hoạt động với mục đích thiết thực vào thực tế như chúng ta mong mỏi ?
Nhận định rằng cần quản lý chặt chẽ hệ thống, phân quyền hợp lý, đồng nhất việc khởi động server nhằm mục đích tăng khả năng hoạt động hiệu qủa hơn của server, hệ thống sẽ chắc chắn hơn và hiệu qủa cao hơn.
Thông qua đề tài này em đã bước đầu đi sâu vào tìm hiểu hệ quản trị cơ sở dữ liệu SQL cũng như Java để ứng dụng vào đề tài. Tuy chưa hoàn toàn tận dụng hết những ưu điểm của hệ quản trị cơ sở dữ liệu SQL Server, Java nhưng những gì đã tìm hiểu và ứng dụng vào đề tài cũng cho em một số hiểu biết về quản trị cơ sở dữ liệu SQL Server, Java nhằm đi sâu hơn nữa trong công việc tương lai của em.
Mặc dù đã cố gắng và đầu tư rất nhiều nhưng do thời gian có hạn nên đề tài còn nhiều hạn chế và chương trình có thể chưa tối ưu, đồng thời do kinh nghiệm lập trình chưa cao nên giao diện có nhiều điểm chưa phù hợp cũng như cách phân bổ màu sắc , hình ảnh . . . . chưa hợp lý.
Em xin nhận được sự đóng góp qúy báo của qúy thầy cô và các bạn để chương trình hoàn thiện hơn.