1. Trang chủ
  2. » Luận Văn - Báo Cáo

Xây dựng ứng dụng chia sẻ file

49 550 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 49
Dung lượng 2,02 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Xây dựng ứng dụng chia sẻ file

Trang 1

ĐẠ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

Trang 2

- -

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

Trang 3

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

Trang 4

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

CÀI ĐẶT – TRIỂN KHAI 30

Trang 5

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

Trang 6

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

Trang 7

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:

Trang 8

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

Trang 9

 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

Trang 10

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

Trang 11

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

Trang 12

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

<VirtualHost *:80>

JkMount /status stat JkMount / balancer JkMount /* balancer

</VirtualHost>

Trang 13

B6: Retart Apache Server

sudo /etc/init.d/apache2 restart

Tham khảo:

http://thetechnocratnotebook.blogspot.com/2012/05/installing-tomcat-7-and-apache2-with.html

Trang 14

3 HIGH LEVEL DESIGN WEB SHARE FILE APPLICATION

3.1 Kiến trúc Web Share File Aplication

Client1

Client2

Client3

Database Server 4 Database Server 2

Database Server 3

Application Tomcat Server 2

Application Tomcat Server 3

Application Tomcat Server 4

Server Load Balancing

Apache Web Server(mod_jk) Application Tomcat Server 1

Database Server 1

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

Trang 15

3.2 Package Diagram

3.2.1 Spring File 3T

Trang 16

3.2.2 RMI Server

3.3 Component Diagram

Index.html

Trang 17

3.4 Deployment Diagram

AppServer 0 Client 1

Client 2

App Server 1

App Server 2 Web Server

Database 1

Database 2

Database 3 Database

Server 0

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

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…

Trang 18

- 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

Login

uses

Xử lý hệ thống phân tán

Trang 19

3.5.4 Mô tả Use Case

Bảng 3.1: Danh sách các Use Case của hệ thố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

UC1.1 Đăng nhập Cho phép actor đăng nhập vào hệ

thống, kiểm tra quyền truy cập hệ thống

UC1.2 Đăng xuất Actor thoát khỏi hệ thống

UC3.2 Download file về

máy

UC3.3 Xóa file Xóa file đang được lưu trữ trên

server

Nguyến Văn Tiến

liệu, cân bằng tải

Đồng bộ file giữa các server, cân bằng tải khi download file

Võ Văn Tịnh Phạm Văn Trung

Trang 20

4.1.4 UML Activity Diagram (Đăng nhập)

Actor

Người dùng truy cập trang web

Hiển thị HomePage -User

-Admin

Trang 21

4.1.5 UML Sequence Diagram (Đăng nhập)

Trang 22

Login Label Text Hiển thị nội dung trang

nhập & mật khẩu

tại mà client truy cập

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…

Trang 23

4.2.4 UML Activity Diagram

Actor

Đăng nhập vào hệ thống

Hiển thị HomePage với các menu chức năng

Tất cả các người dùng hệ thống

4.2.5 UML Sequence Diagram

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

Trang 25

4.3.4 UML Activity Diagram

4.3.4.1 UC3.1 Upload file

Trang 26

Chọn page quản lý file

Chọn thư mục muốn upload file lên

Chọn Upload

Kiểm tra file tồn tại

Kiểm tra dung lượng lưu trữ còn đủ hay không

Thông báo file không tồn tại

Thông báo không đủ

Lấy ra server đang rảnh nhất

No

Kiểm tra Server chết

Lưu log cho

loop

Thông báo upload thấy bại

No

Thực hiện Upload file lên server vừa lấy

yes

-User -Admin

Trang 27

4.3.4.2 UC3.2 Download file

Truy cập page quản lý

file

Chọn file muốn download

Nhấn nút download

Kiểm tra file tồn tại

Thông báo file không tồn tại

Download file

No

Yes

Lấy ra server rảnh nhất

Truy xuất dữ liệu từ server đó

No

Kiểm tra server hiện tại chết

Thực hiện chuyển sang download từ server khác

Yes

Tất cả các người dùng

Trang 28

4.3.4.3 UC3.3 Xóa file

Truy cập page quản lý

file

Chọn file muốn xóa

Chọn Delete

Kiểm tra xóa được hay không

Thông báo không xóa được file

Yes

Xóa file trên tất cả các server

Lấy ra server rảnh nhất

Truy xuất dữ liệu từ server đó -User

-Admin

Trang 29

4.3.4.4 UC3.5 Share file

Truy cập page quản lý

Kiểm tra file tồn tại

Thông báo file khoont

Truy xuất dữ liệu từ server đó -User

-Admin

Trang 30

4.3.5 UML Sequence Diagram

4.3.5.1 UC3.1 Upload file

Actor :FileManagerGUI BUSFileManager DAOFileManager

Chọn thư mục muốn Upload

Kết quả Upload

Chọn file upload lên

Trang 31

4.3.5.2 UC3.2 Download file về máy

Actor :FileManagerGUI BUSFileManager DAOFileManager

Chọn file muốn download

CheckFileIsExist(strFilePath)

CheckFileIsExist(strFilePath)

Kiểm tra Nhấn nút download

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

CheckFileIsExist(strFilePath)

CheckFileIsExist(strFilePath)

Kiểm tra Nhấn nút xóa file xóa file

Kết quả kiểm tra file Kết quả kiểm tra file

Kết quả xóa Kết quả xóa

Trang 32

4.3.5.4 UC3.5 Share file

Actor :FileManagerGUI BUSFileManager DAOFileManager

Chọn file muốn share kiểm tra file tồn tại

Kiểm tra

Gửi yêu cầu share/download file

Mở trang download/get link

Kết quả kiểm tra

Chọn share/download

Kiểm tra file tồn tại

Kết quả kiểm tra Kết quả kiểm tra

Thực hiện yêu cầu

Mở trang download/get link

4.3.6 Screen Flow

Trang 33

File& Folder Label Text Quản lý file

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

Trang 34

4.4.4 UML Activity Diagram

File đã được upload lên một server

Truyền file qua RMI đến Server Kiểm tra xem server

tiếp theo còn sống

Kiểm tra file tồn tại

Kiểm tra tồn tại trong Database

trong log sống

Yes Xóa log

Trang 35

4.4.5 UML Sequence Diagram

File đã được nguời dùng upload lên 1 server

Truyền file qua RMI

Request kiểm tra trạng thái server

Đẩy file vừa up đến server khác

Kiểm tra file

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

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

Trang 36

4.5.4 UML Activity Diagram

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

Người dùng download file

Kiểm tra server hiện tại chết Chuyển sang download từ server khác

Yes No

-System

5 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

Ngày đăng: 10/10/2015, 14:18

HÌNH ẢNH LIÊN QUAN

Hình 1: Kiến trúc tổng quan của hệ thống 1 - Xây dựng ứng dụng chia sẻ file
Hình 1 Kiến trúc tổng quan của hệ thống 1 (Trang 14)
Hình II.3.1 Use Case diagram chính của hệ thống - Xây dựng ứng dụng chia sẻ file
nh II.3.1 Use Case diagram chính của hệ thống (Trang 18)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w