Xây dựng ứng dụng chia sẻ file
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM BÁO CÁO MÔN HỌC XỬ LÝ PHÂN BỐ Đề tài XÂY DỰNG ỨNG DỤNG CHIA SẺ FILE Giảng viên hướng dẫn: Thầy NGUYỄN CÔNG HOAN Nhóm 5: PHẠM VĂN TRUNG – 11520438 VÕ VĂN TỊNH - 11520415 NGUYỄN VĂN TIẾN - 11520408 Lớp: SE339.F11 Tp. Hồ Chí Minh, tháng 1 năm 2015 LỜI CẢM ƠN ---------Lời đầu tiên, nhóm em xin chân thành cảm ơn Thầy Nguyễn Công Hoan! Thầy đã tận tình chỉ bảo, truyền đạt những kiến thức vô cùng bổ ích, quý báu cũng như những ví dụ cụ thể, sinh động, hấp dẫn để nhóm em có thể thực hiện tốt đề tài này. Nhóm em cũng xin cảm ơn Trường Đại Học Công Nghệ Thông Tin! Trường đã tạo thư viện học tập rất lý tưởng cho chúng em có thể họp nhóm hiệu quả. Nhóm em cũng xin gửi lời cảm ơn sâu sắc đến gia đình, bạn bè và những người thân đã động viên, cổ vũ về vật chất cũng như tinh thần giúp em vượt qua khó khăn, trở ngại để tiếp tục hoàn thành đề tài. Xin chân thành cảm ơn! Tp. HCM, tháng 1– 2015 Nhóm thực hiện MỤC LỤC 1 TÌM HIỂU WEB SHARE FILE OPEN SOURE ................................................... 1 2 CÔNG NGHỆ SỬ DỤNG TRONG HỆ THỐNG ................................................. 2 2.1 Công nghệ RMI trong xử lý phân bố ..................................................................... 2 2.1.1 Các đặt tính của RMI ...................................................................................... 2 2.1.2 Kiến trúc cơ bản của RMI ............................................................................... 3 2.1.3 Cách làm việc của RMI ................................................................................... 3 2.2 Load balancing (cân bằng tải) với mod_jk ............................................................ 4 2.2.1 Sơ lược về mod_jk .......................................................................................... 4 2.2.2 Cài đặt mod_jk ................................................................................................ 4 3 HIGH LEVEL DESIGN WEB SHARE FILE APPLICATION ........................... 8 3.1 Kiến trúc Web Share File Aplication ..................................................................... 8 3.2 Package Diagram ................................................................................................... 9 3.2.1 Spring File 3T.................................................................................................. 9 3.2.2 RMI Server .................................................................................................... 10 3.3 Component Diagram ............................................................................................ 10 3.4 Deployment Diagram ........................................................................................... 11 3.5 Actors and Use Cases Description ....................................................................... 11 3.5.1 Actor .............................................................................................................. 11 3.5.2 Use case diagram ........................................................................................... 12 3.5.3 Class diagram ................................................................................................ 12 3.5.4 Mô tả Use Case ............................................................................................. 13 4 DETAIL DESIGN................................................................................................ 13 4.1 UC1: Login .......................................................................................................... 13 4.1.1 Tác nhân ........................................................................................................ 13 4.1.2 Pre-Condition ................................................................................................ 13 4.1.3 Mô tả chức năng ............................................................................................ 13 4.1.4 UML Activity Diagram (Đăng nhập) ............................................................ 14 4.1.5 UML Sequence Diagram (Đăng nhập) ......................................................... 15 4.1.6 Screen Flow ................................................................................................... 15 4.2 UC2: HomePage .................................................................................................. 16 4.2.1 Tác nhân ........................................................................................................ 16 4.2.2 Pre-condition ................................................................................................. 16 4.2.3 Mô tả chức năng ............................................................................................ 16 4.2.4 UML Activity Diagram ................................................................................. 17 4.2.5 UML Sequence Diagram............................................................................... 17 4.2.6 Screen Flow ................................................................................................... 18 4.3 UC3: Quản lý file ................................................................................................. 18 4.3.1 Tác nhân ........................................................................................................ 18 4.3.2 Pre-condition ................................................................................................. 18 4.3.3 Mô tả chức năng ............................................................................................ 18 4.3.4 UML Activity Diagram ................................................................................. 19 4.3.5 UML Sequence Diagram............................................................................... 24 4.3.6 Screen Flow ................................................................................................... 26 4.4 UC4: Xử lý hệ thống phân tán ............................................................................. 27 4.4.1 Tác nhân ........................................................................................................ 27 4.4.2 Pre-condition ................................................................................................. 27 4.4.3 Mô tả chức năng ............................................................................................ 27 4.4.4 UML Activity Diagram ................................................................................. 28 4.4.5 UML Sequence Diagram............................................................................... 29 4.5 UC5: Đồng bộ hóa dữ liệu, cân bằng tải .............................................................. 29 4.5.1 Tác nhân ........................................................................................................ 29 4.5.2 Pre-condition ................................................................................................. 29 4.5.3 Mô tả chức năng ............................................................................................ 29 4.5.4 UML Activity Diagram ................................................................................. 30 5 CÀI ĐẶT – TRIỂN KHAI ................................................................................... 30 5.1 Cài đặt môi trường phát triển ............................................................................... 30 5.1.1 Install Tomcat ................................................................................................ 30 5.1.2 Cài MYSQL .................................................................................................. 31 5.2 Triển khai hệ thống .............................................................................................. 31 6 CHẠY THỬ VÀ KIỂM TRA HỆ THỐNG ........................................................ 33 6.1 Test Upload File lên server rồi phân tán file........................................................ 33 6.1.1 Log Console RMI ban đầu. ........................................................................... 33 6.1.2 Tiến hành upload trên GUI ........................................................................... 36 6.1.3 Console log RMI sau khi Upload .................................................................. 39 7 ĐÁNH GIÁ – KẾT LUẬN .................................................................................. 42 7.1 Đánh giá ............................................................................................................... 42 7.2 Kết luận ................................................................................................................ 42 7.3 Hướng phát triển .................................................................................................. 42 8 TÀI LIỆU THAM KHẢO ................................................................................... 43 NHẬN XÉT CỦA GIẢNG VIÊN ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… Nhóm 5 – SE339.F11 – Thầy Nguyễn Công Hoan 1 TÌM HIỂU WEB SHARE FILE OPEN SOURE Hiện nay có rất nhiều website chưa sẻ file mã nguồn mở trên thế giới, dưới đây là một số website mã nguồn mở phổ biến nhất, tốt nhất hiện nay: - HTTP Commander eXtplorer AjaXplorer KFM PAFM QuiXplorer BytesFall Explorer Website chia sẻ file – File Cloud 1 Nhóm 5 – SE339.F11 – Thầy Nguyễn Công Hoan 2 CÔNG NGHỆ SỬ DỤNG TRONG HỆ THỐNG 2.1 Công nghệ RMI trong xử lý phân bố Lập trình đối tượng phân tán là một trong những vấn đề nóng bỗng của công nghệ phân tán phần mềm ngày nay. Java là ngôn ngữ đi tiên phong với RMI (Remote Method Invocation) - một kĩ thuật cài đặt các đối tượng phân tán vô cùng hiệu quả và linh động. Thông thường các chương trình của chúng ta được viết dưới dạng thủ tục hoặc hàm và việc các hàm gọi lẫn nhau, truyền tham số hay kết quả cho nhau chỉ xảy ra ở máy cục bộ. Kỷ thuật RMI (Remote Method Invoke) – mang ý nghĩa triệu gọi phương thức từ xa – là cách thức giao tiếp giữa các đối tượng trong Java có mã lệnh cài đặt nằm trên các máy khác nhau có thể triệu gọi lẫn nhau. Để giải quyết một số vấn đề trong việc truyền thông giữa Client/Server. RMI không gọi trực tiếp mà thông qua lớp trung gian. Lớp này tồn tại ở cả hai phía Client và Server. Lớp ở máy Client gọi là Stub, lớp ở máy Server gọi là Skel (Skeletion). 2.1.1 Các đặt tính của RMI RMI là mô hình đối tượng phân tán của Java, nó giúp cho việc truyền thông giữa các đối tượng phân tán được dễ dàng hơn. RMI là API bậc cao được xây dựng dựa trên lập trình Socket. RMI không những cho phép chúng ta truyền dữ liệu giữa các đối tượng trên các hệ thống máy tính khác nhau, mà còn triệu gọi các phương thức trong các đối tượng ở xa (Remote Object). Việc truyền dữ liệu giữa các máy khác nhau được xử lý một cách trong suốt bởi máy ảo Java (Java virtual machine). Tương tự như mô hình Client/Server, RMI vẫn lấy/duy trì khái niệm của Client và Server, tuy nhiên cách tiếp cận (approach) của RMI linh hoạt hơn, mềm dẻo hơn so với môt hình Client/Server. Website chia sẻ file – File Cloud 2 Nhóm 5 – SE339.F11 – Thầy Nguyễn Công Hoan Một điều thuận lợi quan trong nhất của RMI là nó cung cấp cớ chế callbacks, nó cho phép Server triệu gọi các phương thức ở Client. 2.1.2 Kiến trúc cơ bản của RMI Remote interface: Nên extend từ java.rmi.remote.Nó khai báo tất cả các phương thức mà Client có thể triệu gọi. Tất cả các method trong interface này nên throw RemoteException Remote implementation: Được thực thi từ Remote interface và mở rộng từ UnicastRemoteObject. Triển khai các method được khai báo trong Interface tại đây. Nó là một Remote Object thực sự. Phát sinh hai lớp trung gian Stub và Skel. Server class bao gồm: o RMI registry: Bộ đăng kí này sẽ đăng kí một Remote object với Naming Registry. Giúp các Remote object được chấp nhận khi gọi các method từ xa. o Các class thực thi trên server. Client class: Truy vấn trên tên Remote object trên RMI registry, thông qua stub để gọi các phương thức trên server. 2.1.3 Cách làm việc của RMI Các Đối tượng ở phía Server đăng kí với bộ đăng kí RMI registry. Client kiểm tra các đối tượng ở xa trong RMI Registry. Vị trí của một đối tượng ở xa được xác định trong RMI Registry. Một stub được trả về cho Client. Remote object có thể được sử dụng tương tự như Local object để truy xuất đến toàn bộ tài nguyên. Việc truyền thông giữa Client và Server được xử lý bởi Stub và Skel. Website chia sẻ file – File Cloud 3 Nhóm 5 – SE339.F11 – Thầy Nguyễn Công Hoan 2.2 Load balancing (cân bằng tải) với mod_jk 2.2.1 Sơ lược về mod_jk Trong khi các ứng dụng web càng lúc càng nhiều người sử dụng thì tomcat có lẽ càng chịu tải. Chúng ta cần phải xem đến cơ chế cân bằng tải cho server. Thông thường có hai hướng xử lý trong cân bằng tải: sử dụng phần mềm cài đặt (mod_jk, HAProxy…), viết ứng dụng xử lý phân bố cho phần mềm. Ở trong đề tài này chúng em sẽ giới thiệu về cơ chế cân bằng tải cho tomcat với mod_jk. Mod_jk là một phiên bản thay thế cho mod_jserv, được sử dụng để xử lý các thông tin liên lạc giữa Tomcat và Apache. Lý do chọn mod_jk: Hiện nay có rất nhiều ứng dụng hỗ trợ để xử lý cơ chế load balancing cho tomcat. Mod_jserv: Quá phức tạp, nó đã được chuyển Apache/ Jserv, mod_jserv mang nhiều bits không cần thiết cho tomcat. Mod_jserv chỉ hỗ trợ Apche. Tomcat hỗ trợ nhiều máy chủ thông qua một lớp tương thích trong thư viện jk. Các vấn đề về hỗ trợ, tài liệu và sửa lỗi khó khăn. Mod_jk khắc phục được điều này. Các cách tiếp cận lớp được cung cấp bởi thư viện jk làm cho nó dễ dàng hỗ trợ cả hai Apache 1.3.x và Apache 2.xx. Mode_jk còn hỗ trợ tốt cho SSL. Khi một request được thực hiện thông qua HTTP và HTTPS thì mod_jserv không đáng tin cậy. Mod_jk có thể hỗ trợ tốt vấn đề này bằng cách sử dụng một giao thức Ajpv13 mới. 2.2.2 Cài đặt mod_jk 1. Sử dụng instance-1 là server chính dùng balancing cũng như chứa tomcat - Instance-1 : Apache(mod_jk), Tomcat7 - Instance-2: Tomcat7 - Instance-3: Tomcat7 - Instance-4: Tomcat7 2. Cài đặt mod_jk trên Instance-1 B1: Cài đặt Apache : sudo apt-get install apache2 B2: Cài đặt mod_jk trên Apache: sudo apt-get install libapache2-mod-jk B3: Tạo file config để định nghĩa các worker: sudo nano /etc/apache2/workers.properties Nội dung File: workers.properties worker.list=balancer,stat worker.tomcat1.type=ajp13 worker.tomcat1.port=8080 worker.tomcat1.host=localhost Website chia sẻ file – File Cloud 4 Nhóm 5 – SE339.F11 – Thầy Nguyễn Công Hoan worker.tomcat2.type=ajp13 worker.tomcat2.port=8080 worker.tomcat2.host=107.167.182.83 worker.tomcat3.type=ajp13 worker.tomcat3.port=8080 worker.tomcat3.host=104.155.209.128 worker.tomcat4.type=ajp13 worker.tomcat4.port=8080 worker.tomcat4.host=104.155.197.173 worker.balancer.type=lb worker.balancer.balance_workers=tomcat1,tomcat2,tomcat3,tomcat4 worker.stat.type=status B4: Định nghĩa lại đường dẫn worker mặc định của mod_jk Trong File: sudo nano /etc/apache2/mods-available/jk.conf Website chia sẻ file – File Cloud 5 Nhóm 5 – SE339.F11 – Thầy Nguyễn Công Hoan Tìm và thay đổi lại đường dẫn thành : /etc/apache2/workers.properties để mod_jk biết các worker. B5: Định nghĩa mod_jk trong Apache config sudo nano /etc/apache2/sites-enabled/000-default.conf Xóa hết và thêm bên dưới JkMount /status stat JkMount / balancer JkMount /* balancer Website chia sẻ file – File Cloud 6 Nhóm 5 – SE339.F11 – Thầy Nguyễn Công Hoan B6: Retart Apache Server sudo /etc/init.d/apache2 restart Tham khảo: http://thetechnocratnotebook.blogspot.com/2012/05/installing-tomcat7-and-apache2-with.html Website chia sẻ file – File Cloud 7 Nhóm 5 – SE339.F11 – Thầy Nguyễn Công Hoan 3 HIGH LEVEL DESIGN WEB SHARE FILE APPLICATION 3.1 Kiến trúc Web Share File Aplication Application Tomcat Server 2 Database Server 2 Server Load Balancing Client1 Apache Web Server(mod_jk) Application Tomcat Server 1 Application Tomcat Server 3 Client2 Database Server 1 Client3 Application Tomcat Server 4 Database Server 4 Database Server 3 Hình 1: Kiến trúc tổng quan của hệ thống 1 Hệ thống chia sẻ file được xây dựng nhằm phục vụ cho nhóm người dùng nhỏ để thử nghiệm tính ổn định và tìm hiểu cách xây dựng một hệ thống xử lý phân bố nên chỉ giới hạn số người dùng ở mức 2-10 người sử dụng, hệ thống server, database được đặt trên 5 máy, và cho phép người dùng có thể download và upload dữ liệu tại mỗi máy tính cá nhân, đồng bộ hóa dữ liệu giữa các database đảm bảo hệ thống hoạt động tốt với mức giới hạn trên. Website chia sẻ file – File Cloud 8 Nhóm 5 – SE339.F11 – Thầy Nguyễn Công Hoan 3.2 Package Diagram 3.2.1 Spring File 3T Website chia sẻ file – File Cloud 9 Nhóm 5 – SE339.F11 – Thầy Nguyễn Công Hoan 3.2.2 RMI Server 3.3 Component Diagram Index.html Website chia sẻ file – File Cloud 10 Nhóm 5 – SE339.F11 – Thầy Nguyễn Công Hoan 3.4 Deployment Diagram App Server 1 Database 1 App Server 2 Database 2 App Server 3 Database 3 Client 1 Client 2 Web Server AppServer 0 Database Server 0 Client 3 3.5 Actors and Use Cases Description 3.5.1 Actor Danh sách các actor STT Actor Name Definition & Interests 1 Admin Quản trị hệ thống, thêm xóa sửa cấp quyền cho User 2 User Upload, download, delete, share file 3 Guest User Download file 4 System Tự động chạy, phân tải, kiểm tra server cho hệ thống Mô tả các Actor: - Admin: người quản trị hệ thống, quản lý thiết lập các thông tin, cấu hình hệ thống. Người có toàn quyền trên hệ thống. Guest user: người dùng này chỉ có quyền download file do user chia sẻ. User: người dùng sử dụng hệ thống thông qua việc đăng ký, mỗi user có tài khoản trên hệ thống có một dung lượng lưu trữ nhất định trên hệ thống. Người dùng có thể thực hiện các thao tác quản lý file của mình trên hệ thống, như upload file lên, download file, cập nhật, sửa đổi, xóa, chia sẻ file cho mọi người, lấy link download file… Website chia sẻ file – File Cloud 11 Nhóm 5 – SE339.F11 – Thầy Nguyễn Công Hoan - System: actor này là hệ thống ứng dụng, tự động chạy để thực hiện các công việc kiểm tra xem trạng thái của file, của các server, cân bằng tải cho hệ thống… 3.5.2 Use case diagram Quản lý thông tin chung Download Upload Menu chức năng Guest user HomePage Quản lý file User Share file Cloud Share File System Delete file uses Login Đồng bộ hóa dữ liệu Xử lý hệ thống phân tán System Hình II.3.1 Use Case diagram chính của hệ thống 3.5.3 Class diagram MainController -userBO : UserBO -doHome() -doLogin() -doFileManager() -doDownloadFile() -doUploadFile() -doDeleteFile() -doGetLink() UserBO -memberName -memberName UserDAO -dataSource : DataSource +setDataSource() +getUserByUsername(String username) : User +logUserLogin(User user) +getLogUserLogin(User user) : List User -id : int -username : String -email : String -password : String -salt : String LogUserLogin -userid -time File -name -type -size -location -dateCreated -dateModified -checkSumMD5 -checkSumSHA1 Website chia sẻ file – File Cloud 12 Nhóm 5 – SE339.F11 – Thầy Nguyễn Công Hoan 3.5.4 Mô tả Use Case STT Code Tên 1 UC1 UC1.1 Login Đăng nhập UC1.2 Đăng xuất 2 UC2 HomePage 3 UC3 Quản lý file UC3.1 UC3.2 Upload file Download file về máy Xóa file UC3.3 4 UC3.4 UC4 5 UC5 4 Mô tả Programer Võ Văn Tịnh Cho phép actor đăng nhập vào hệ thống, kiểm tra quyền truy cập hệ thống Actor thoát khỏi hệ thống Trang mặc định của hệ thống khi đăng nhập Quản lý file trên hệ thống (upload, delete, search…) Tải file lên server Tải file về máy tính Xóa file đang được lưu trữ trên server Share file Chia sẻ file Xử lý hệ thống File được lưu ở nhiển nơi trên phân tán server Đồng bộ hóa dữ Đồng bộ file giữa các server, cân liệu, cân bằng tải bằng tải khi download file Bảng 3.1: Danh sách các Use Case của hệ thống Phạm Văn Trung Nguyến Văn Tiến Phạm Văn Trung Phạm Văn Trung Phạm Văn Trung Nguyến Văn Tiến Nguyến Văn Tiến Phạm Văn Trung Võ Văn Tịnh Võ Văn Tịnh Phạm Văn Trung DETAIL DESIGN 4.1 UC1: Login 4.1.1 Tác nhân Người dùng hệ thống: Admin, user… 4.1.2 Pre-Condition N/A 4.1.3 Mô tả chức năng Người dùng đăng nhập vào hệ thống để thực hiện các chức năng tương ứng của hệ thống tùy thuộc vào quyền của người dùng. Người dùng truy cập vào đăng nhập của hệ thống, tại đây người dùng có thể nhập tên đăng nhập và mật khẩu để đăng nhập hệ thống Website chia sẻ file – File Cloud 13 Nhóm 5 – SE339.F11 – Thầy Nguyễn Công Hoan 4.1.4 UML Activity Diagram (Đăng nhập) -User -Admin Actor Người dùng truy cập trang web Nhập tên đăng nhập & mật khẩu Thông báo sai tên đăng nhập hoặc mật khẩu No Kiểm tra tên đăng nhập & mật khẩu Yes Đăng nhập thành công Hiển thị HomePage Website chia sẻ file – File Cloud 14 Nhóm 5 – SE339.F11 – Thầy Nguyễn Công Hoan 4.1.5 UML Sequence Diagram (Đăng nhập) Actor :LoginGUI BUSUser DAOUser Nhập tên đăng nhập & mật khẩu CheckLogin(userName, password) CheckLogin(userName, password) Kiểm tra Tên đăng nhập hoặc mật khẩu không đúng Tên đăng nhập hoặc mật khẩu không đúng Nhập lại tên đăng nhập & mật khẩu CheckLogin(userName, password) CheckLogin(userName, password) Kiểm tra Đúng Đúng 4.1.6 Screen Flow Field name Mandatory Control Type Data Type Decriptions Input Username Textbox Text Nhập tên đăng nhập Password Textbox Text Nhập mật khẩu đăng nhập Output Website chia sẻ file – File Cloud 15 Nhóm 5 – SE339.F11 – Thầy Nguyễn Công Hoan Login Label Text Hiển thị nội dung trang Username Label Text Tên đăng nhập Password Label Text Mật khẩu Log in Button Nút đăng nhập Reset Button IP: … Label Nút làm mới lại tên đăng nhập & mật khẩu Hiển thị IP của server hiện tại mà client truy cập Text 4.2 UC2: HomePage 4.2.1 Tác nhân Người dùng hệ thống: Admin, user… 4.2.2 Pre-condition Đăng nhập vào hệ thống 4.2.3 Mô tả chức năng Màn hình homepage là màn hình hiển thị chính các thông tin về các file của người dùng, cũng như các tính năng chính của hệ thống. Đối với người dùng bình thường chỉ hiển thị một số thông tin về một số chức năng. Đối với Admin sẽ hiển thị toàn bộ các chức năng của hệ thống. Màn hình chính chứa menu chức năng cho người dùng sử dụng như upload file, quản lý file… Website chia sẻ file – File Cloud 16 Nhóm 5 – SE339.F11 – Thầy Nguyễn Công Hoan 4.2.4 UML Activity Diagram Tất cả các người dùng hệ thống Actor Đăng nhập vào hệ thống Thông báo đăng nhập lại No Yes Hiển thị HomePage với các menu chức năng Người dùng sử dụng các chức năng tương ứng với quyền vừa đăng nhập 4.2.5 UML Sequence Diagram User :LoginGUI :HomePage Truy cập vào hệ thống Kiểm tra đăng nhập Đăng nhập thành công Hiển thị menu chức năng Website chia sẻ file – File Cloud 17 Nhóm 5 – SE339.F11 – Thầy Nguyễn Công Hoan 4.2.6 Screen Flow Field name Mandatory Control Type Data Type Rules Screen Input Search Textbox Text HomePage Cloud Label Text HomePage Name user … Text HomePage … … … HomePage Output 4.3 UC3: Quản lý file 4.3.1 Tác nhân Người dùng hệ thống: Admin, user, guest user (download file) 4.3.2 Pre-condition Đăng nhập vào hệ thống 4.3.3 Mô tả chức năng Use case quản lý file cung cấp cho người dùng các tính năng cơ bản về quản lý tập tin, người dùng có thể upload, download, get link(share file), xóa, tìm kiếm file. Đồng thời cũng thông tin cho người dùng về các thông tin liên quan đến các tập tin như: tên, vị trí, loại, kích thước file… Website chia sẻ file – File Cloud 18 Nhóm 5 – SE339.F11 – Thầy Nguyễn Công Hoan 4.3.4 UML Activity Diagram 4.3.4.1 UC3.1 Upload file Website chia sẻ file – File Cloud 19 Nhóm 5 – SE339.F11 – Thầy Nguyễn Công Hoan -User -Admin Chọn page quản lý file Chọn thư mục muốn upload file lên Chọn Upload Chọn file cần Upload Thông báo file không tồn tại No Kiểm tra file tồn tại Yes No Thông báo không đủ bộ nhớ để lưu trữ Kiểm tra dung lượng lưu trữ Yes còn đủ hay không Upload file yes Thông báo upload thấy bại loop Lưu log cho Server die No Yes Kiểm tra Server chết No Lấy ra server đang rảnh nhất Thực hiện Upload file lên server vừa lấy Thông báo Upload thất bại No Kiểm tra Yes thành công Reload lại trang quản lý file Website chia sẻ file – File Cloud 20 Nhóm 5 – SE339.F11 – Thầy Nguyễn Công Hoan 4.3.4.2 UC3.2 Download file Tất cả các người dùng Truy cập page quản lý file Lấy ra server rảnh nhất Truy xuất dữ liệu từ server đó Chọn file muốn download Nhấn nút download Thông báo file không tồn tại No file tồn tại Kiểm traYes Download file Thực hiện chuyển sang download từ server khác Yes Kiểm tra server hiện tại chết No Website chia sẻ file – File Cloud 21 Nhóm 5 – SE339.F11 – Thầy Nguyễn Công Hoan 4.3.4.3 UC3.3 Xóa file -User -Admin Truy cập page quản lý file Lấy ra server rảnh nhất Truy xuất dữ liệu từ server đó Chọn file muốn xóa Chọn Delete Hiển thị thông báo hỏi có chắc chắn không Yes Xóa file trên tất cả các server Yes No Thông báo không xóa được file Kiểm tra xóa được hay không Yes Reload lại trang quản lý file Website chia sẻ file – File Cloud 22 Nhóm 5 – SE339.F11 – Thầy Nguyễn Công Hoan 4.3.4.4 UC3.5 Share file -User -Admin Truy cập page quản lý file Chọn file muốn chia sẻ Thông báo file khoont tồn tại Lấy ra server rảnh nhất Truy xuất dữ liệu từ server đó No Kiểm tra file tồn tại Yes Chọn share/ Download Mở trang view cho download/get link Website chia sẻ file – File Cloud 23 Nhóm 5 – SE339.F11 – Thầy Nguyễn Công Hoan 4.3.5 UML Sequence Diagram 4.3.5.1 UC3.1 Upload file Actor :FileManagerGUI Chọn thư mục muốn Upload file lên Chọn file upload lên BUSFileManager DAOFileManager CheckSizeOfFileIsValid(strFilePath) CheckSizeOfFileIsValid(strFilePath) Kiểm tra Kết quả kiểm tra dung lượng file Kết quả kiểm tra dung lượng file CheckSizeOfCloud() CheckSizeOfCloud() Kiểm tra Kết quả kiểm tra dung lượng cloud Kết quả kiểm tra dung lượng cloud Nhấn nút Upload Upload(strFilePath, strCloudPath) Upload(strFilePath, strCloudPath) Kiểm tra Kết quả Upload Website chia sẻ file – File Cloud Kết quả Upload 24 Nhóm 5 – SE339.F11 – Thầy Nguyễn Công Hoan 4.3.5.2 UC3.2 Download file về máy Actor :FileManagerGUI BUSFileManager DAOFileManager Chọn file muốn download Nhấn nút download CheckFileIsExist(strFilePath) CheckFileIsExist(strFilePath) Kiểm tra Kết quả kiểm tra file Kết quả kiểm tra file Kết quả download Kết quả download 4.3.5.3 UC3.3 Xóa file Actor :FileManagerGUI BUSFileManager DAOFileManager Chọn file muốn xóa Nhấn nút xóa file xóa file CheckFileIsExist(strFilePath) CheckFileIsExist(strFilePath) Kiểm tra Kết quả kiểm tra file Kết quả xóa Website chia sẻ file – File Cloud Kết quả kiểm tra file Kết quả xóa 25 Nhóm 5 – SE339.F11 – Thầy Nguyễn Công Hoan 4.3.5.4 UC3.5 Share file Actor :FileManagerGUI Chọn file muốn share BUSFileManager Kiểm tra file tồn tại DAOFileManager kiểm tra file tồn tại Kiểm tra Kết quả kiểm tra Kết quả kiểm tra Kết quả kiểm tra Chọn share/download Gửi yêu cầu share/download file Thực hiện yêu cầu Mở trang download/get link Mở trang download/get link 4.3.6 Screen Flow Field name Mandatory Control Type Data Type Rules Screen Output File Manager Label Text Quản lý file Manager Upload, Download, Get Link File & Folder Label Text Quản lý file Website chia sẻ file – File Cloud 26 Nhóm 5 – SE339.F11 – Thầy Nguyễn Công Hoan File& Folder Label Text Quản lý file Id: Label Text Quản lý file Name: Label Text Quản lý file Type: Label Text Quản lý file 4.4 UC4: Xử lý hệ thống phân tán 4.4.1 Tác nhân System 4.4.2 Pre-condition Đăng nhập vào hệ thống 4.4.3 Mô tả chức năng Hệ thống sẽ tự động thực hiện việc đưa file vừa được upload lên 1 server bất kỳ đến lưu trữ trên tất cả các server khác hiện có của hệ thống, đảm bảo file của người dùng không bị mất mát, thất lạc, đồng thời đảm bảo người dùng có thể truy cập quản lý file một cách dễ dàng. Đảm bảo file được upload lên server là duy nhất và giống nhau trên tất cả các server. Website chia sẻ file – File Cloud 27 Nhóm 5 – SE339.F11 – Thầy Nguyễn Công Hoan 4.4.4 UML Activity Diagram -System File đã được upload lên một server kiểm tra trạng thái server trong log Xóa log Lưu xuống log No Yes Kiểm tra xem server tiếp theo còn sống No Yes No Kiểm tra file tồn tại Yes Xóa log Kiểm tra server trong log sống Truyền file qua RMI đến Server Lưu thông tin file xuống Database Yes Kiểm tra tồn tại trong Database Tiếp tục phân tán đi đến các server khác Website chia sẻ file – File Cloud 28 Nhóm 5 – SE339.F11 – Thầy Nguyễn Công Hoan 4.4.5 UML Sequence Diagram System RMIServer Server RMI File đã được nguời dùng upload lên 1 server Database Server check phân tán dữ liệu Request kiểm tra trạng thái server Kiểm tra trạng thái các server khác Kết quả kiểm tra server Đẩy file vừa up đến server khác Truyền file qua RMI Kiểm tra file Lưu file xuống database server tương ứng kết quả lưu file phân tán kết quả lưu file phân tán 4.5 UC5: Đồng bộ hóa dữ liệu, cân bằng tải 4.5.1 Tác nhân System 4.5.2 Pre-condition Đăng nhập vào hệ thống 4.5.3 Mô tả chức năng Khi người dùng đăng nhập, truy cập vào hệ thống, hệ thống sẽ tự kiểm tra xem trong các server hiện có, server nào rảnh nhất để chuyển truy cập người dùng đến server đó. Khi người dùng download file về, hệ thống sẽ tự động kiểm tra liên tục xem server hiện đang download còn hoạt động không, nếu không hệ thống tự động chuyển sang server khác để người dùng tiếp tục download, và lưu lại trạng thái server bị die, ngược lại thì cứ tiếp tục download. Website chia sẻ file – File Cloud 29 Nhóm 5 – SE339.F11 – Thầy Nguyễn Công Hoan 4.5.4 UML Activity Diagram -System Người dùng download file Nguời dùng đang truy cập vào hệ thống Lấy ra server đang rảnh nhất Truy cập liệu từ server đó hiển thị cho người dùng 5 No Kiểm tra server hiện tại chết Yes Chuyển sang download từ server khác CÀI ĐẶT – TRIỂN KHAI 5.1 Cài đặt môi trường phát triển Cài Đặt môi trường chạy trên Ubuntu 5.1.1 Install Tomcat B1: Cập nhật ubuntu sudo apt-get update B2: Cài Đặt tomcat7 sudo apt-get install tomcat7 B3: Cài các gói quản lí sudo apt-get install tomcat7-docs tomcat7-admin tomcat7-examples B4: Cài Java cho tomcat sudo apt-get install default-jdk B5: Các thư viện liên quan sudo apt-get install ant git B6: Cấu hình thông tin đăng nhập tomcat sudo nano /etc/tomcat7/tomcat-users.xml Sửa và lưu lại Website chia sẻ file – File Cloud 30 Nhóm 5 – SE339.F11 – Thầy Nguyễn Công Hoan B7: Khởi động lại tomcat7 sudo service tomcat7 restart Có thể tham khảo thêm tại: https://www.digitalocean.com/community/tutorials/howto-install-apache-tomcat-7-on-ubuntu-14-04-via-apt-get 5.1.2 Cài MYSQL Sử Dụng câu lệnh sau: sudo apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql 5.2 Triển khai hệ thống 1. Cấu hình mod_jk trên Apache của server chính (Hưỡng dẫn phía trên) 2. Tạo Database và import Database trong File sql.sql 3. Deploy File .WAR lên tomcat7 Website chia sẻ file – File Cloud 31 Nhóm 5 – SE339.F11 – Thầy Nguyễn Công Hoan 4. Chạy Server RMI (Làm tương tự với các server con). Website chia sẻ file – File Cloud 32 Nhóm 5 – SE339.F11 – Thầy Nguyễn Công Hoan 6 CHẠY THỬ VÀ KIỂM TRA HỆ THỐNG Điều kiệu tất cả 4 Intance đều cài Tomcat7 và cái Apache(mod_jk) trên Instance-1 6.1 Test Upload File lên server rồi phân tán file 6.1.1 Log Console RMI ban đầu. Website chia sẻ file – File Cloud 33 Nhóm 5 – SE339.F11 – Thầy Nguyễn Công Hoan Website chia sẻ file – File Cloud 34 Nhóm 5 – SE339.F11 – Thầy Nguyễn Công Hoan Website chia sẻ file – File Cloud 35 Nhóm 5 – SE339.F11 – Thầy Nguyễn Công Hoan 6.1.2 Tiến hành upload trên GUI Website chia sẻ file – File Cloud 36 Nhóm 5 – SE339.F11 – Thầy Nguyễn Công Hoan Sau khi upload xong kiểm tra trên tất cả server Website chia sẻ file – File Cloud 37 Nhóm 5 – SE339.F11 – Thầy Nguyễn Công Hoan Website chia sẻ file – File Cloud 38 Nhóm 5 – SE339.F11 – Thầy Nguyễn Công Hoan Tất cả các server đã dc phân tán: Trường hợp một trong các server bị tắt RMI hoặc bị chết thì server phân tán sẽ lưu lại log và ngay khi server dc bật thì file đó sẽ được gửi đến. 6.1.3 Console log RMI sau khi Upload Instance-1 sẽ kiểm tra server nào rảnh qua RMI dựa vào các Thread mà server đó đang thực hiện trên hình chọn được server 4 Website chia sẻ file – File Cloud 39 Nhóm 5 – SE339.F11 – Thầy Nguyễn Công Hoan Instance-2 Website chia sẻ file – File Cloud 40 Nhóm 5 – SE339.F11 – Thầy Nguyễn Công Hoan Instance-3 Instance-4: trên hình sẽ tạo thread và phân tán File Website chia sẻ file – File Cloud 41 Nhóm 5 – SE339.F11 – Thầy Nguyễn Công Hoan 7 ĐÁNH GIÁ – KẾT LUẬN 7.1 Đánh giá Ứng dụng đã đáp ứng được các yêu cầu cơ bản nhất của một website chia sẻ file (upload, download, get link, phân tán file, đồng bộ file…) Hiệu suất hoạt động tương đối, ổn định, không phát sinh lỗi. 7.2 Kết luận Với khoảng thời gian tương đối ngắn để tìm hiểu về các cơ chế xử lý dạng client – server, xử lý phân tán, cân bằng tải hệ thống nhằm áp dụng vào việc thực hiện đề tài xây dựng ứng dụng chia sẻ file. Theo như những mục tiêu ban đầu mà các thành viên của nhóm đề ra, với nguồn nhân lực & thời gian có hạn nhóm đã hoàn thành một số chức năng của hệ thống: - Upload file Chia sẻ file Download file Phân tán file trên các server Xử lý đồng bộ trên nhiều server. Cân bằng tải. Một số công nghệ được áp dụng trong đề tài này: - Spring MVC để xây dựng website cho user tương tác Cơ chế RMI liên lạc giữa client-server. Cơ chế load balancing sử dụng mod_jk. Những chức năng chưa hoàn thành được: - Chưa tự xây dựng mới một cơ chế xử lý phân bố trên nhiều server. Một số chức năng còn chưa hoàn thiện. 7.3 Hướng phát triển - Sử dụng kỹ thuật xử lý phân bố và loadbalancing để phát triển ứng dụng thành một hệ thống hoàn chỉnh hơn. - Cải tiến hiệu suất làm việc của hệ thống, tăng dung lượng lưu trữ cho hệ thống. - Cải tiến giao diện sao cho người dụng tiện lợi nhất có thể. - Thêm tính năng download ngay trên hệ thống, không cần sử dụng trình download của trình duyệt. Website chia sẻ file – File Cloud 42 Nhóm 5 – SE339.F11 – Thầy Nguyễn Công Hoan 8 TÀI LIỆU THAM KHẢO [1] http://www.doko.vn/luan-van/ung-dung-chia-se-file-26179 [2] https://www.digitalocean.com/community/tutorials/how-to-install-linux-apachemysql-php-lamp-stack-on-ubuntu [3] http://digitalocean.com/community/tutorials/how-to-install-apache-tomcat-7-onubuntu-14-04-via-apt-get [4] http://www.mulesoft.com/tcat/apache-tomcat-mod-jk-connector-configuration [5] http://docs.oracle.com/javase/tutorial/rmi/example.html [6]http://www.scs.ryerson.ca/mes/courses/cps530/programs/rmi/Schildt/addTwoNum bers.html Website chia sẻ file – File Cloud 43 [...]... tra file Kết quả download Kết quả download 4.3.5.3 UC3.3 Xóa file Actor :FileManagerGUI BUSFileManager DAOFileManager Chọn file muốn xóa Nhấn nút xóa file xóa file CheckFileIsExist(strFilePath) CheckFileIsExist(strFilePath) Kiểm tra Kết quả kiểm tra file Kết quả xóa Website chia sẻ file – File Cloud Kết quả kiểm tra file Kết quả xóa 25 Nhóm 5 – SE339.F11 – Thầy Nguyễn Công Hoan 4.3.5.4 UC3.5 Share file. .. Upload(strFilePath, strCloudPath) Upload(strFilePath, strCloudPath) Kiểm tra Kết quả Upload Website chia sẻ file – File Cloud Kết quả Upload 24 Nhóm 5 – SE339.F11 – Thầy Nguyễn Công Hoan 4.3.5.2 UC3.2 Download file về máy Actor :FileManagerGUI BUSFileManager DAOFileManager Chọn file muốn download Nhấn nút download CheckFileIsExist(strFilePath) CheckFileIsExist(strFilePath) Kiểm tra Kết quả kiểm tra file. .. link Website chia sẻ file – File Cloud 23 Nhóm 5 – SE339.F11 – Thầy Nguyễn Công Hoan 4.3.5 UML Sequence Diagram 4.3.5.1 UC3.1 Upload file Actor :FileManagerGUI Chọn thư mục muốn Upload file lên Chọn file upload lên BUSFileManager DAOFileManager CheckSizeOfFileIsValid(strFilePath) CheckSizeOfFileIsValid(strFilePath) Kiểm tra Kết quả kiểm tra dung lượng file Kết quả kiểm tra dung lượng file CheckSizeOfCloud()... trí, loại, kích thước file Website chia sẻ file – File Cloud 18 Nhóm 5 – SE339.F11 – Thầy Nguyễn Công Hoan 4.3.4 UML Activity Diagram 4.3.4.1 UC3.1 Upload file Website chia sẻ file – File Cloud 19 Nhóm 5 – SE339.F11 – Thầy Nguyễn Công Hoan -User -Admin Chọn page quản lý file Chọn thư mục muốn upload file lên Chọn Upload Chọn file cần Upload Thông báo file không tồn tại No Kiểm tra file tồn tại Yes No... Xóa file trên tất cả các server Yes No Thông báo không xóa được file Kiểm tra xóa được hay không Yes Reload lại trang quản lý file Website chia sẻ file – File Cloud 22 Nhóm 5 – SE339.F11 – Thầy Nguyễn Công Hoan 4.3.4.4 UC3.5 Share file -User -Admin Truy cập page quản lý file Chọn file muốn chia sẻ Thông báo file khoont tồn tại Lấy ra server rảnh nhất Truy xuất dữ liệu từ server đó No Kiểm tra file. .. thể thực hiện các thao tác quản lý file của mình trên hệ thống, như upload file lên, download file, cập nhật, sửa đổi, xóa, chia sẻ file cho mọi người, lấy link download file Website chia sẻ file – File Cloud 11 Nhóm 5 – SE339.F11 – Thầy Nguyễn Công Hoan - System: actor này là hệ thống ứng dụng, tự động chạy để thực hiện các công việc kiểm tra xem trạng thái của file, của các server, cân bằng tải... database đảm bảo hệ thống hoạt động tốt với mức giới hạn trên Website chia sẻ file – File Cloud 8 Nhóm 5 – SE339.F11 – Thầy Nguyễn Công Hoan 3.2 Package Diagram 3.2.1 Spring File 3T Website chia sẻ file – File Cloud 9 Nhóm 5 – SE339.F11 – Thầy Nguyễn Công Hoan 3.2.2 RMI Server 3.3 Component Diagram Index.html Website chia sẻ file – File Cloud 10 Nhóm 5 – SE339.F11 – Thầy Nguyễn Công Hoan 3.4 Deployment... Data Type Rules Screen Output File Manager Label Text Quản lý file Manager Upload, Download, Get Link File & Folder Label Text Quản lý file Website chia sẻ file – File Cloud 26 Nhóm 5 – SE339.F11 – Thầy Nguyễn Công Hoan File& Folder Label Text Quản lý file Id: Label Text Quản lý file Name: Label Text Quản lý file Type: Label Text Quản lý file 4.4 UC4: Xử lý hệ thống phân tán 4.4.1 Tác nhân System 4.4.2... Chọn file muốn download Nhấn nút download Thông báo file không tồn tại No file tồn tại Kiểm traYes Download file Thực hiện chuyển sang download từ server khác Yes Kiểm tra server hiện tại chết No Website chia sẻ file – File Cloud 21 Nhóm 5 – SE339.F11 – Thầy Nguyễn Công Hoan 4.3.4.3 UC3.3 Xóa file -User -Admin Truy cập page quản lý file Lấy ra server rảnh nhất Truy xuất dữ liệu từ server đó Chọn file. .. Trang mặc định của hệ thống khi đăng nhập Quản lý file trên hệ thống (upload, delete, search…) Tải file lên server Tải file về máy tính Xóa file đang được lưu trữ trên server Share file Chia sẻ file Xử lý hệ thống File được lưu ở nhiển nơi trên phân tán server Đồng bộ hóa dữ Đồng bộ file giữa các server, cân liệu, cân bằng tải bằng tải khi download file Bảng 3.1: Danh sách các Use Case của hệ thống ... Xóa file Actor :FileManagerGUI BUSFileManager DAOFileManager Chọn file muốn xóa Nhấn nút xóa file xóa file CheckFileIsExist(strFilePath) CheckFileIsExist(strFilePath) Kiểm tra Kết kiểm tra file. .. file hệ thống (upload, delete, search…) Tải file lên server Tải file máy tính Xóa file lưu trữ server Share file Chia sẻ file Xử lý hệ thống File lưu nhiển nơi phân tán server Đồng hóa Đồng file. .. Actor :FileManagerGUI BUSFileManager DAOFileManager Chọn file muốn download Nhấn nút download CheckFileIsExist(strFilePath) CheckFileIsExist(strFilePath) Kiểm tra Kết kiểm tra file Kết kiểm tra file